Deletions are marked like this. | Additions are marked like this. |
Line 29: | Line 29: |
isxconcat-sess -sf sessidlist -analysis workmem.sm05.lh -contrast encode-v-base -o group | isxconcat-sess -sf sessidlist -analysis workmem.sm05.lh -contrast encode-v-base -o my-group |
Line 34: | Line 34: |
* -o group : output folder is called 'group' | * -o my-group : output folder is called 'my-group' |
Line 46: | Line 46: |
isxconcat-sess -sf sessidlist -analysis workmem.sm05.rh -contrast encode-v-base -o group isxconcat-sess -sf sessidlist -analysis workmem.sm05.mni305 -contrast encode-v-base -o group }}} When this is complete, a directory called 'group' will be created. cd into this directory and see what's there: {{{ cd $FSFTUTDIR/group |
isxconcat-sess -sf sessidlist -analysis workmem.sm05.rh -contrast encode-v-base -o my-group isxconcat-sess -sf sessidlist -analysis workmem.sm05.mni305 -contrast encode-v-base -o my-group }}} When this is complete, a directory called 'my-group' will be created. cd into this directory and see what's there: {{{ cd $FSFTUTDIR/my-group |
Line 66: | Line 66: |
cd $FSFTUTDIR/group/workmem.sm05.lh | cd $FSFTUTDIR/my-group/workmem.sm05.lh |
Line 77: | Line 77: |
* encode-v-base - group contrast folder | * encode-v-base - folder with lower-level contrasts for the group of sessions |
Line 88: | Line 88: |
* Note: using 'group' instead of 'my-group' | |
Line 93: | Line 94: |
= Running the GLM = | = Run the Group GLM = |
Line 113: | Line 114: |
= Visualizing the Results of the Group GLM = | = Visualize the Results of the Group GLM = |
Line 118: | Line 119: |
Line 142: | Line 142: |
View the [[FsFastGroupLevel/ClusterSummaryLh|cache.th30.pos.sig.cluster.summary]] table | View the left hemisphere [[FsFastGroupLevel/ClusterSummaryLh|cache.th30.pos.sig.cluster.summary]] table |
Line 147: | Line 147: |
View the clusters on the surface | |
Line 153: | Line 154: |
* All clusters are whole-brain corrected at p<.05 * Annotation gives cluster number |
|
Line 163: | Line 166: |
View the right hemisphere [[FsFastGroupLevel/ClusterSummaryRh|cache.th30.pos.sig.cluster.summary]] table {{{ cat my-glm.wls/osgm/cache.th30.pos.sig.cluster.summary }}} |
|
Line 178: | Line 186: |
mri_glmfit --y ces.nii.gz --wls cesvar.nii.gz --osgm --glmdir my-glm.wls --mask ../subcort.mask.nii.gz | mri_glmfit --y ces.nii.gz --wls cesvar.nii.gz --osgm --glmdir my-glm.wls --nii.gz |
Line 181: | Line 189: |
{{attachment:mni.group.encode.cor128.jpg}}{{attachment:mni.group.encode.sag149.jpg}} * Left image is coronal slice 128 * Right image is sagittal slice 149 * No activation in cortical areas To correct the subcortical analysis for multiple comparisons run: |
|
Line 185: | Line 198: |
* As with the surface-based analysis, a summary file is created called grf.th3.pos.sig.cluster.summary * Creates grf.th3.pos.sig.ocn.anat.nii.gz and grf.th3.pos.sig.ocn.lut. These are segmentations of the clusters. View the subcortical [[FsFastGroupLevel/ClusterSummaryMni305|grf.th3.pos.sig.cluster.summary]] table {{{ cat my-glm.wls/osgm/grf.th3.pos.sig.cluster.summary }}} View the corrected results in the volume: {{{ tkmedit fsaverage orig.mgz \ -ov my-glm.wls/osgm/grf.th3.pos.sig.cluster.nii.gz \ -seg ./my-glm.wls/osgm/grf.th3.pos.sig.ocn.anat.nii.gz \ ./my-glm.wls/osgm/grf.th3.pos.sig.ocn.lut }}} = Merging the Results = {{{ cd $FSFTUTDIR/group cat workmem.sm05.lh/encode-v-base/my-glm.wls/osgm/cache.th30.pos.sig.cluster.summary cat workmem.sm05.rh/encode-v-base/my-glm.wls/osgm/cache.th30.pos.sig.cluster.summary cat workmem.sm05.mni305/encode-v-base/my-glm.wls/osgm/grf.th3.pos.sig.cluster.summary }}} Merge the corrected results into a single volume {{{ vlrmerge --o encode.merged.nii.gz \ --lh workmem.sm05.lh/encode-v-base/my-glm.wls/osgm/cache.th30.pos.sig.cluster.nii.gz \ --rh workmem.sm05.rh/encode-v-base/my-glm.wls/osgm/cache.th30.pos.sig.cluster.nii.gz \ --vol workmem.sm05.mni305/encode-v-base/my-glm.wls/osgm/grf.th3.pos.sig.cluster.nii.gz \ --scm workmem.sm05.mni305/subcort.mask.nii.gz }}} Creates encode.merged.nii.gz by mapping the left and right hemispheres to the volume and merging with the subcotical results. View the merged volume {{{ tkmedit fsaverage orig.mgz -aparc+aseg -ov junk.nii.gz -fminmax 1.3 5 }}} {{attachment:merged.group.encode.cor128.jpg}}{{attachment:merged.group.encode.sag149.jpg}} All activation in this image has been corrected for multiple comparisons a p<.05. |
top | previous | FSFAST Tutorial Top
Contents
1. Group Level Analysis
In general, the group analysis for fMRI is very similar to that of the structural data. There is a tutorial for this at GroupAnalysis. There are several specific differences for fMRI which are described here.
In the structrual GroupAnalysis, you would:
- Run mris_preproc to resample each subject into the common space and then concatenate all of your subjects (one subject for each frame) into one file.
- Smoothed the data on the surface, then
- Run mri_glmfit and mri_glmfit-sim
For the function MRI group analysis you will need to:
- Concatenate individuals into one file (isxconcat-sess)
- Do not smooth (already smoothed during first-level analysis)
- Run mri_glmfit using weighted least squares (WLS)
- Correct for multiple comparisons
- Perform the above in each space (lh, rh, and mni305)
- Correct for multiple comparisons across the three spaces
- Optionally merge the three spaces into one volume space
2. Concatenating the Data
In the structural stream (see GroupAnalysis), the subject's data were concatenated into one file with mris_preproc . For the functional stream, the program is called isxconcat-sess:
isxconcat-sess -sf sessidlist -analysis workmem.sm05.lh -contrast encode-v-base -o my-group
- -sf sessidlist : use all the subjects listed in sessidlist (order is important!)
- -analysis workmem.sm05.lh : analysis from mkanalysis-sess and selxavg3-sess
- -contrast encode-v-base : contrast from mkcontrast-sess
- -o my-group : output folder is called 'my-group'
- Note: -all-contrasts can be used instead of -contrast
- Gets the contrast values (ces.nii.gz) for each subject and concatenates them into one file
- Does the same for the contrast variances (cesvar.nii.gz)
- Creates other files as well that can be used for checking for quality
Run the concatenation for the right hemisphere and mni305 spaces
isxconcat-sess -sf sessidlist -analysis workmem.sm05.rh -contrast encode-v-base -o my-group isxconcat-sess -sf sessidlist -analysis workmem.sm05.mni305 -contrast encode-v-base -o my-group
When this is complete, a directory called 'my-group' will be created. cd into this directory and see what's there:
cd $FSFTUTDIR/my-group ls
- grouplist.txt : list of the sessions
subjectlist.txt : list of the corresponding FreeSurfer subject IDs
- sess.info.txt : other information about each session
- workmem.sm05.lh - left hemisphere analysis output folder
- workmem.sm05.rh - right hemisphere analysis output folder
- workmem.sm05.mni305 - MNI 305 analysis output folder
Go into the workmem.sm05.lh and see what's there:
cd $FSFTUTDIR/my-group/workmem.sm05.lh ls
You will see several files and folders:
- analysis.info - copy of the analysis.info created by mkanalysis-sess
- meanfunc.nii.gz - a stack of the mean functional images for each session
- masks.nii.gz - a stack of the masks of all the individual subjects
- mask.nii.gz - a single mask based on the intersection of all masks
- fsnr.nii.gz - a stack of the functional SNRs for each session
- ffxdof.dat - text file with the total number of DOF summed over all sessions
- encode-v-base - folder with lower-level contrasts for the group of sessions
Each of the volumes is in the output space (lh, rh, mni305), as can be verified with mri_info.
Go into the contrast folder and see what's there:
cd $FSFTUTDIR/group/workmem.sm05.lh/encode-v-base ls
- Note: using 'group' instead of 'my-group'
- ces.nii.gz - stack of all the contrast values from the lower level, one for each session
- cesvar.nii.gz - stack of all the contrast variances from the lower level, one for each session
These are going to be the inputs for the group GLM analysis.
3. Run the Group GLM
Details on how to run the GLM are given in GroupAnalysis, including the use of FSGD files to construct complicated group-level design matrices. Here we are going to use a very simple design in which test whether the mean across the groups equals 0 (the One Sample Group Mean, or OSGM). This just requires a design matrix with a single column of all ones (created with the --osgm flag):
mri_glmfit --y ces.nii.gz \ --wls cesvar.nii.gz \ --osgm \ --surface fsaverage lh \ --glmdir my-glm.wls \ --nii.gz
- --y ces.nii.gz : the input values to analyze
- --wls cesvar.nii.gz : variance weighting
- --osgm : use One-Sample Group Mean
- --surface fsaverage lh : indicates surface based data (not used for volume data)
- --glmdir my-glm.wls : output directory
- --nii.gz : use compressed NIFTI as output format
The one difference between this and the call in the structrual steam is the presence of the '--wls cesvar.nii.gz' option. cesvar.nii.gz is the variance of each session at each voxel. This is used to de-weight a session with high variance. This is not a true mixed effects analysis (this has been referred to as 'psuedo mixed effects'; see Thirion, 2007, Neuroimage). This step is not performed in the structural stream because we do not have variance information for each subject.
4. Visualize the Results of the Group GLM
tksurfer fsaverage lh inflated -aparc -overlay my-glm.wls/osgm/sig.nii.gz
5. Correct for Multiple Comparisons
The correction is the same as for the structural group analysis. For example, run:
mri_glmfit-sim --glmdir my-glm.wls --cache 3 pos --cwpvalthresh .0166
- --glmdir my-glm.wls : output from mri_glmfit command
- --cache 2 pos
- Use pre-cached simulation
Voxel-wise threshold of 2 (p<.01)
- Use positive contrast values
--cwpvalthresh .0166 : Cluster-wise p-value threshold. Only keep clusters that have p<.0166
Using a cluster-wise p-value threshold of p < .0166 corrects across all three spaces for p<.05 (ie, .0166 = .05/3). This corrections for a whole brain (ie, lh, rh, and subcortical) analysis.
This will create several outputs, though there are three that are most important:
- cache.th30.pos.sig.cluster.summary - cluster summary table (simple ASCII text)
- cache.th30.pos.sig.cluster.nii.gz - overlay with significant clusters
- cache.th30.pos.ocn.annot - annotation of significant clusters
View the left hemisphere cache.th30.pos.sig.cluster.summary table
cat my-glm.wls/osgm/cache.th30.pos.sig.cluster.summary
View the clusters on the surface
tksurfer fsaverage lh inflated \ -overlay my-glm.wls/osgm/cache.th30.pos.sig.cluster.nii.gz \ -annot ./my-glm.wls/osgm/cache.th30.pos.sig.ocn.annot
All clusters are whole-brain corrected at p<.05
- Annotation gives cluster number
6. Right Hemisphere
Perform the same operations above for the right hemisphere (ie, go into workmem.sm05.rh):
cd $FSFTUTDIR/group/workmem.sm05.rh/encode-v-base mri_glmfit --y ces.nii.gz --wls cesvar.nii.gz --osgm --surface fsaverage rh --glmdir my-glm.wls --nii.gz mri_glmfit-sim --glmdir my-glm.wls --cache 3 pos --cwpvalthresh .0166
View the right hemisphere cache.th30.pos.sig.cluster.summary table
cat my-glm.wls/osgm/cache.th30.pos.sig.cluster.summary
7. Subcortical (MNI 305 Space)
Perform the same operations above for the MNI 305 space analysis (ie, go into workmem.sm05.mni305). There are a couple of things that are different about this analysis.
cd $FSFTUTDIR/group/workmem.sm05.mni305/encode-v-base ls
This directory has the same files as the surface-based results, though their dimensions are different. All the volumes here are true volumes.
The mri_glmfit command is the same as for the surface-based analysis but without the (--surface fsaverage lh) part and with the specification of a mask
cd $FSFTUTDIR/group/workmem.sm05.mni305/encode-v-base mri_glmfit --y ces.nii.gz --wls cesvar.nii.gz --osgm --glmdir my-glm.wls --nii.gz tkmedit fsaverage orig.mgz -aparc+aseg -overlay my-glm.wls/osgm/sig.nii.gz
- Left image is coronal slice 128
- Right image is sagittal slice 149
- No activation in cortical areas
To correct the subcortical analysis for multiple comparisons run:
mri_glmfit-sim --glmdir my-glm.wls --grf 3 pos --cwpvalthresh .0166
- As with the surface-based analysis, a summary file is created called grf.th3.pos.sig.cluster.summary
- Creates grf.th3.pos.sig.ocn.anat.nii.gz and grf.th3.pos.sig.ocn.lut. These are segmentations of the clusters.
View the subcortical grf.th3.pos.sig.cluster.summary table
cat my-glm.wls/osgm/grf.th3.pos.sig.cluster.summary
View the corrected results in the volume:
tkmedit fsaverage orig.mgz \ -ov my-glm.wls/osgm/grf.th3.pos.sig.cluster.nii.gz \ -seg ./my-glm.wls/osgm/grf.th3.pos.sig.ocn.anat.nii.gz \ ./my-glm.wls/osgm/grf.th3.pos.sig.ocn.lut
8. Merging the Results
cd $FSFTUTDIR/group cat workmem.sm05.lh/encode-v-base/my-glm.wls/osgm/cache.th30.pos.sig.cluster.summary cat workmem.sm05.rh/encode-v-base/my-glm.wls/osgm/cache.th30.pos.sig.cluster.summary cat workmem.sm05.mni305/encode-v-base/my-glm.wls/osgm/grf.th3.pos.sig.cluster.summary
Merge the corrected results into a single volume
vlrmerge --o encode.merged.nii.gz \ --lh workmem.sm05.lh/encode-v-base/my-glm.wls/osgm/cache.th30.pos.sig.cluster.nii.gz \ --rh workmem.sm05.rh/encode-v-base/my-glm.wls/osgm/cache.th30.pos.sig.cluster.nii.gz \ --vol workmem.sm05.mni305/encode-v-base/my-glm.wls/osgm/grf.th3.pos.sig.cluster.nii.gz \ --scm workmem.sm05.mni305/subcort.mask.nii.gz
Creates encode.merged.nii.gz by mapping the left and right hemispheres to the volume and merging with the subcotical results.
View the merged volume
tkmedit fsaverage orig.mgz -aparc+aseg -ov junk.nii.gz -fminmax 1.3 5
All activation in this image has been corrected for multiple comparisons a p<.05.