''Author: Doug Greve''
This document describes how to perform a repeated measures ANOVA using
the FSGD file and mri_glmfit in Freesurfer. This includes a two
time-point longitudinal analysis in which the same subject was scanned
twice or more with each scan being run through Freesurfer separately
(using the [[ LongitudinalProcessing | longitudinal stream]]). It also includes a cross-over
analysis in which each subject of a cohort has a matching subject in
another cohort. This is a generalization of the paired analysis
(see PairedAnalysis).
Note that this approach does not model the temporal correlation within each subject.<
>
Check out [[ LongitudinalStatistics ]] for an overview on the different analysis methods available in Freesurfer.
<>
= Overall Strategy =
1. Analyze each time point of subject in the [[ LongitudinalProcessing | longitudinal stream ]] (if doing a structural analysis)
1. Sample each time point onto the average surface.
1. Concatenate all time points into one file.
1. Smooth on the surface (optional)
1. Perform analysis with mri_glmfit on this file using DOSS (not DODS)
Steps 2-3 will be performed by one command (mris_preproc), Step 4 by
mri_surf2surf, and step 5 by mri_glmfit. A single [[FsgdFormat|FSGD]] file
can be used for all steps.
= Create the FSGD File =
The [[FsgdFormat|FSGD]] file lists all time points for all
subjects. Set up a class for each subject. Declare Ntp-1 variables
(where Ntp is the number of time points per subject). For example, if
you had 3 time points, you would declare two variables (see below):
{{{
GroupDescriptorFile 1
Class Subject1
Class Subject2
Class Subject3
Variables TP1-vs-TP2 TP1-vs-TP3
Input subject1-tp1 Subject1 1 1
Input subject1-tp2 Subject1 -1 0
Input subject1-tp3 Subject1 0 -1
Input subject2-tp1 Subject2 1 1
Input subject2-tp2 Subject2 -1 0
Input subject2-tp3 Subject2 0 -1
Input subject3-tp1 Subject3 1 1
Input subject3-tp2 Subject3 -1 0
Input subject3-tp3 Subject3 0 -1
}}}
Note that you do not need a TP2-vs-TP3 column. If you add such a
column, the analysis will fail!
The design matrix that will be created with the DOSS model will be
{{{
1 0 0 1 1
1 0 0 -1 0
1 0 0 0 -1
0 1 0 1 1
0 1 0 -1 0
0 1 0 0 -1
0 0 1 1 1
0 0 1 -1 0
0 0 1 0 -1
}}}
The matrix has 5 columns. Each of the Ns=3 subjects gets its own
column, and each variable (Nv=2) gets its own column for a total of 5.
Because of the way it was set up, the 4th column (variable 1) codes
for the difference between TP1 and TP2, and the 5th column (variable
2) codes for the difference between TP1 and TP3.
= Create Contrasts (Different with DOSS vs DODS!)=
== Contrast 1 (tp1-vs-tp2.mtx) ==
Null Hypothesis: does the difference between time point 1 and time
point 2 differ from 0:
{{{
0 0 0 1 0
}}}
This will be a t-test. Positive values mean that TP1 > TP2.
== Contrast 2 (tp1-vs-tp3.mtx) ==
Null Hypothesis: does the difference between TP1 and TP3
differ from 0:
{{{
0 0 0 0 1
}}}
This will be a t-test. Positive values mean that TP1 > TP3.
== Contrast 3 (tp2-vs-tp3.mtx) ==
Null Hypothesis: does the difference between TP2 and TP3
differ from 0:
{{{
0 0 0 -1 1
}}}
This will be a t-test. Positive values mean that TP2 > TP3.
== Contrast 4 (tp-effect.mtx) ==
Null Hypothesis: Is there an effect of time point?
{{{
0 0 0 1 0
0 0 0 0 1
}}}
This will be a F-test.
== Contrast 4 (mean.mtx) ==
Null Hypothesis: does the mean across all subjects equal 0 after
removing the effect of time point.
{{{
1 1 1 0 0
}}}
This will be a t-test. Positive values indicate the group mean is > 0.
= Run mris_preproc =
The mris_preproc command will be:
{{{
mris_preproc --target fsaverage --hemi lh \
--meas thickness --out lh.thickness.mgh \
--fsgd rmanova.fsgd
}}}
This peforms Steps 2-3 above, saving the data to
lh.thickness.mgh.
= Spatially Smooth (optional) =
This just spatially smooths by 5mm FWHM. You would do the same thing
on a non-RMANOVA analysis. The output is lh.thickness.sm05.mgh, which
is fed to the next stage.
{{{
mri_surf2surf --s fsaverage --hemi lh --fwhm 5\
--sval lh.thickness.mgh \
--tval lh.thickness.sm05.mgh
}}}
= Run mri_glmfit with DOSS =
Note the "doss" flag after the fsgd file.
{{{
mri_glmfit
--glmdir lh.rmanova
--y lh.thickness.sm05.mgh
--fsgd rmanova.fsgd doss
--C tp1-vs-tp2.mtx
--C tp1-vs-tp3.mtx
--C tp2-vs-tp3.mtx
--C tp-effect.mtx
--C mean.mtx
}}}
Note: you may have more options than are listed below, depending on
your application.