MSSStest is a program for implementing the method described in the article The Multiple Sclerosis Severity Score. R. Roxburgh S. Seaman et al. (2004), accepted for publication by Neurology. It calculates MSSS scores and uses these scores to test for differences between disease progression rates in different groups defined by genotype at some locus. A brief description of the method is given below.
Suppose one is interested in determining whether the genotype at some locus of interest affects the rate of progression of disease of people with Multiple Sclerosis (MS). One method would be to calculate the mean EDSS score in patients with each of the genotypes and test whether they are significantly different. However, this approach is inefficient if patients have their EDSS assessed at different durations of disease, as patients who have had MS longer typically have higher EDSS scores regardless of their genotype. By adjusting for duration, a more powerful test can be developed.
Given a dataset of EDSS scores measured on patients at different durations of disease, a table is generated to convert ESSS scores to MSSS scores. This is done as follows. For each i (i=0, ..., 30), all patients having durations between i-2 years and i+2 years are ranked according to their EDSS scores. Suppose there are Ni such patients. Then, for each possible EDSS value (0, 1, 1.5, ..., 9.5), the average rank for that value is calculated. Suppose that for year i and an EDSS of j, this average rank is Rij. Rij is divided by Ni + 1 and then multiplied by 10, to yield a number between 0 and 10. This is the MSSS score for a person whose EDSS is measured as j when their duration is i years. This procedure is repeated for each value of i in turn.
A patient having an MSSS of x progresses faster than 10x% of MS patients in the population and slower than (100-10x)%. So, for example, an MSSS of 5.0 means progressing at the median rate. A patient whose MSSS is 9.0 is a fast progressor, progressing faster than 90% of patients. A patient whose MSSS is 1.0 is a slow progressor, progressing faster than just 10% of patients. Using data on 9892 patients from 11 (mainly European) countries, we derived an MSSS table. This is the `Global MSSS' table, which can be used to look up, for each patient in a study, the MSSS score that corresponds to their EDSS and duration. However, an alternative is to generate an MSSS table from any particular set of data being analysed. This is a `Local MSSS' table.
Once MSSS scores have been assigned to patients (whether using the Global or a Local table), the Kruskal-Wallis test can be used to compare median MSSS in the different genotype groups. The Kruskal-Wallis test is similar to the ANOVA test, but is a non-parametric test, i.e. it does not assume normally distributed data. If there are only two genotype groups, the Kruskal-Wallis test is identical to the Wilcoxon test (also known as the Mann Whitney U test). Patients with duration 0 years are excluded from the test because EDSS assessments in the first year are not adequately predictive of later disease progression.
The MSSStest program performs this Kruskal-Wallis test, having first assigned MSSS scores using either the Global MSSS table or a Local MSSS table generated from the data provided. We recommend that in nearly all cases, the Global table should be used. A Local table should be used only if the sample is large (>1000 patients) and the method of recruitment of patients is such that the distribution of EDSS conditional on duration is very different from that of the combined cohort of 9892 patients used to calculate the Global table. This could be, for example, if a study recruited only fast and/or slow progressors.
P-values for the Kruskal-Wallis test can be obtained either by using an asymptotic (large sample) approximation or by an exact, permutation method. The asymptotic method should be fine for large samples. However, if the sample is small, ask MSSStest to also calculate a permutation p-value. In most cases, this should be very similar to that calculated by the asymptotic method. If they are very different, the sample is too small for the asymptotic approximation to be reliable and the permutation p-value should be used instead.
Another application of the MSSS is to describe disease severity in a single dataset. If all patients entered into MSSStest are in a single dataset it will calculate the mean Global MSSS for this dataset but will not perform a Kruskal-Wallis test. The mean is calculated excluding patients with duration 0 years because EDSS assessments in the first year are not adequately predictive of later disease progression.
This should be a tab or space delimited text file (ASCII) file. It should contain one row for each individual in the data set. Five columns are required. The first two columns are simply labels for the individuals in the data set. They are not used to perform the test. The first column is the family number and the second column is the number of the individual in the family. The third column is for the EDSS score. The fourth is for the disease duration at the time the EDSS was measured, rounded down to the next lowest whole year. The fifth is for the group to which the individual belongs. Groups are coded numerically and should be between 0 and 99. An example edss.txt file is provided. Note that no header row is allowed.
This is the Global MSSS table: a matrix for converting EDSS scores into MSSS scores. It is not necessary to understand it, but if you are interested, row i corresponds to an EDSS score of i/2 (e.g. the fifth row is for EDSS=2.5) and column j corresponds to a duration of j-1 years.
MSSStest produces the two output files.
This contains a summary of the results of the Kruskal-Wallis test or in the case of a single test just the mean MSSS.
This is the same as edss.txt, except that an extra, sixth column is added which contains each individual's MSSS scores.
Versions of MSSStest are available for Windows and Linux - see the download page:
If you wish to use the program on a platform other than Windows or Linux, we also provide source code on the download page. MSSStest is written in C++ and may be compiled using a suitable C++ compiler. The files roxburgh.cpp and neededroutines.cpp are C++ source files and neededroutines.h is a "header" file.
In unix, compilation would normally be by:
CC -o MSSStest.exe neededroutines.cpp roxburgh.cpp -lm -lc
where CC is the command name of the compiler. This produces the executable file MSSStest.exe. Alternatively, a makefile is also included (this may require editing for your C++ compiler).