Surface-based Group fMRI Analysis
The purpose of this tutorial is to get you acquainted with the concepts needed to perform fMRI integration in FreeSurfer by interacting with the data from several subjects in a group analysis. You will not learn how to perform fMRI analysis here; that knowledge is already assumed. This tutorial also does not assume any particular directory structure (as would happen in FS-FAST). This tutorial makes use of data from the Functional Biomedical Informatics Research Network (fBIRN).
1. fMRI Basics
In fMRI, stimuli are presented to a subject, which induces a BOLD hemodynamic response function (HRF) in certain areas of the brain. The analysis is performed by first performing motion correction, then correlating each voxel's time course with the stimulus schedule convolved with an assumed HRF shape. The result is an estimate of the HRF amplitude for each condition at each voxel, contrasts of the HRF amplitudes of various conditions, the variance of this contrast, and some measure of the significance (eg, p, t, F, or z) map. All these maps are aligned with the motion correction template, which should be used as the registration template.
2.1. If You're at an Organized Course
If you are taking one of the formally organized courses, everything has been set up for you on the provided laptop. The only thing you will need to do is run the following commands in every new terminal window (aka shell) you open throughout this tutorial. Copy and paste the commands below to get started:
export SUBJECTS_DIR=$TUTORIAL_DATA/buckner_data/tutorial_subjs cd $SUBJECTS_DIR/multimodal/fmri
To copy: Highlight the command in the box above, right click and select copy (or use keyboard shortcut Ctrl+c), then use the middle button of your mouse to click inside the terminal window to paste the command (or use keyboard shortcut Ctrl+Shift+v). Press enter to run the command.
These two commands set the SUBJECTS_DIR variable to the directory where the data is stored and then navigates into the directory within the SUBJECTS_DIR that you will use for this part of the tutorial. You can now skip ahead to the tutorial (below the gray line).
2.2. If You're not at an Organized Course
If you are NOT taking one of the formally organized courses, then to follow this exercise exactly be sure you've downloaded the tutorial data set before you begin. If you choose not to download the data set you can follow these instructions on your own data, but you will have to substitute your own specific paths and subject names. These are the commands that you need to run before getting started:
<source_freesurfer> export TUTORIAL_DATA=<path_to_your_tutorial_data> export SUBJECTS_DIR=$TUTORIAL_DATA/buckner_data/tutorial_subjs cd $SUBJECTS_DIR/multimodal/fmri
If you are not using the tutorial data you should set your SUBJECTS_DIR to the directory in which the recon(s) of the subject(s) you will use for this tutorial are located.
There are five subjects from the fBIRN Phase I acquisition. They are fbirn-10?, where "?" is 1, 3, 4, 5, 6 (note that #2 is missing). Each has a FreeSurfer reconstruction by the name fbirn-anat-10?.v6. The individual registration and ROI Analysis tutorials have already been performed on all subjects. You must perform registration on your individual subjects before group analysis. These data are the results from a sensorimotor paradigm (flashing checkerboard, audible tone, and finger tapping). The raw fMRI data were motion corrected but not smoothed. Each subject has four volumes:
motion correction template
contrast effect size
variance of contrast effect size
signed significance of contrast (-log10(p))
The contrast is the contrast between the ON and the OFF of the stimulus paradigm (ie, a comparison against baseline). The sig.nii volume has signed -log10(p) values. So, if the p-value = .01, -log10(p) = 2. If the contrast was positive, then the value would be +2, if negative (ie, ON<OFF), then the value would be -2.
3. Check Registration
First (and always), check the registration (see the Registration Tutorial for more information). This registration should already be good, so there is no need to make any modifications. In a real analysis, you should check the registrations for all subjects, but that is not necessary here.
freeview -v $SUBJECTS_DIR/fbirn-anat-101.v6/mri/orig.mgz:visible=0 \ fbirn-101/template.nii:reg=fbirn-101/register.lta -f \ $SUBJECTS_DIR/fbirn-anat-101.v6/surf/lh.white \ $SUBJECTS_DIR/fbirn-anat-101.v6/surf/rh.white \ -viewport cor
4. Surface-based Group fMRI Analysis
The group analysis is done in three stages:
- Assemble data
- Spatially smooth data on surface (if desired)
- GLM Analysis
4.1. Assemble Data
Assembling the data is the only step that is different than an anatomical (eg, thickness) analysis. You still run mris_preproc, but with different arguments:
mris_preproc --target fsaverage --hemi lh \ --iv fbirn-101/ces.nii fbirn-101/register.lta \ --iv fbirn-103/ces.nii fbirn-103/register.lta \ --iv fbirn-104/ces.nii fbirn-104/register.lta \ --iv fbirn-105/ces.nii fbirn-105/register.lta \ --iv fbirn-106/ces.nii fbirn-106/register.lta \ --projfrac 0.5 \ --out lh.ces.mgh
- The target surface is the left hemisphere of fsaverage.
- Each input volume and corresponding registration is listed separately.
- The fMRI data are sampled half-way between the white and pial surfaces ("--projfrac 0.5").
The output is a surface file of volume sourced data resampled onto fsaverage (lh) and concatenated into one file called lh.ces.mgh. It has the same size as any other surface overlay for fsaverage eg, lh.thickness. To see its dimensions, run:
You will see "dimensions: 163842 x 1 x 1 x 5", indicating that there are 163842 "columns" (ie, vertices), 1 "row", and 1 "slice". There are 5 frames, one for each subject.
4.2. Surface Smoothing
mri_surf2surf --hemi lh --s fsaverage --fwhm 5 --cortex \ --sval lh.ces.mgh --tval lh.ces.sm05.mgh
- Full-Width/Half-Max (fwhm) is 5 mm. The optimal smoothing filter depends on the size of the effect you are looking for (the so-called "matched-filter theorem"). In general, if you have bigger groups of subjects and/or expect focal differences use a smaller kernel.
- The smoothing is only performed in regions of legitimate cortex (--cortex, which uses the lh.cortex.label).
4.3. GLM Fit
This performs a one-sample, group mean (OSGM) just looking for places where the contrast effect size (CES) is different than 0.
mri_glmfit --y lh.ces.sm05.mgh --surf fsaverage lh \ --osgm --glmdir lh.ces.sm05.osgm --cortex
freeview -f \ $SUBJECTS_DIR/fsaverage/surf/lh.inflated:annot=aparc.annot:annot_outline=1:overlay=lh.ces.sm05.osgm/osgm/sig.mgh:overlay_threshold=2,5 \ -viewport 3d
Note that the activation is sparse because there are only five subjects, but the activation is where we expected to see it.
5. Group ROI fMRI Analysis
The purpose of this tutorial is to combine individual stats files into one summary table file. The table files can be opened with any text editor, or also loaded into a spreadsheet program such as MS Excel or OpenOffice Calc if you have one installed. The individual ROI analyses were performed as described in the Individual fMRI Integration Tutorial. Namely, stats files were created by mri_segstats using no functional contraint, an unsigned (abs) constraint, and a positive (pos) constraint to create stats files in each directory. Furthermore, only 4 segmentations were summarized:
5.1. Measure Volume of Positive Activation in Each ROI
asegstats2table \ --meas volume \ --tablefile ces.pos-masked.vol.stats \ --i fbirn-101/ces.pos-masked.bb.stats \ fbirn-103/ces.pos-masked.bb.stats \ fbirn-104/ces.pos-masked.bb.stats \ fbirn-105/ces.pos-masked.bb.stats \ fbirn-106/ces.pos-masked.bb.stats
Click here to see the output (ces.pos-masked.vol.stats), or run:
The values are the volume in mm3 of the ON>OFF voxels whose p-values < .01.
- The value in the first column is just the row number (starting from 0). Normally, the subject name would be here, but the subject name was not specified as input in the above command.
5.2. Measure Mean HRF Contrast of Unsigned Activation in Each ROI
asegstats2table \ --meas mean \ --tablefile ces.abs-masked.mean.stats \ --i fbirn-101/ces.abs-masked.bb.stats \ fbirn-103/ces.abs-masked.bb.stats \ fbirn-104/ces.abs-masked.bb.stats \ fbirn-105/ces.abs-masked.bb.stats \ fbirn-106/ces.abs-masked.bb.stats
Click here to see the output (ces.abs-masked.mean.stats), or run:
The values are the mean HRF values (raw MR units) of the ON>OFF or ON<OFF voxels whose p-values < .01.
- Some of the values are negative. This is possible because the mask is unsigned (abs).
- In particular, the cross-subject average of Left-Hippocampus is near 0. This is expected because the sensorimotor task should not activate hippocampus.
5.3. Measure Mean HRF Contrast of Positive Activation in Each ROI
asegstats2table \ --meas mean \ --tablefile ces.pos-masked.mean.stats \ --i fbirn-101/ces.pos-masked.bb.stats \ fbirn-103/ces.pos-masked.bb.stats \ fbirn-104/ces.pos-masked.bb.stats \ fbirn-105/ces.pos-masked.bb.stats \ fbirn-106/ces.pos-masked.bb.stats
Click here to see the output (ces.pos-masked.mean.stats), or run:
The values are the mean HRF values (raw MR units) of the ON>OFF voxels whose p-values < .01.
- NONE of the values are negative. This is because the mask is positive (pos).
- In particular, the cross-subject average of Left-Hippocampus is NOT close to 0 because only positive values were chosen. So, one must be careful how to interpret and draw conclusions from these numbers.
By the end of this exercise, you should know how to:
- Complete the surface based group analysis using the mris_preproc, mri_surf2surf, and mri_glmfit commands
- Combine individual stats into one summary table file using the asegstats2table command
You can test your knowledge of this tutorial by clicking here for a quiz!