ROI Analyses in FreeSurfer

Note: This is a short post jotting down my thoughts on FreeSurfer ROI analysis. This will be developed into a longer post later; however, this is a topic I've been looking into for some time, and I want to keep track of my sources. 

Regions of interest (ROIs) are groups of voxels that parameter estimates (or other data) are extracted from. With volumetric data, you specify the x-, y-, and z-coordinates of the origin for your ROI, and then build a sphere around it. (Spheres aren't the only method, but they are common.) You can do this with, for example: AFNI's 3dUndump; SPM's Marsbar toolbox; FSL's fslmaths.

I haven't been able to find out how to do a similar procedure with FreeSurfer. FS is 2D, so the ROI would probably be a circle instead of a sphere. Once your ROI is defined, then you could extract thickness, volume, and other measurements from the ROI.

See this post by Doug Greve about using a vertex as the base for an ROI:

Also keep this:


setenv SUBJECTS_DIR `pwd`

#Create 5mm sphere ROI with 3dUndump
3dUndump -srad 5 -prefix S2.nii -master MNI_caez*+tlrc.HEAD -orient LPI -xyz ROI_file.txt
#Convert to NIFTI
#3dAFNItoNIFTI S2+tlrc

#View in tkmedit
tkmedit -f MNI_caez_N27.nii -overlay S2.nii -fthresh 0.5

#Register anatomical template to fsaverage (FreeSurfer template)
fslregister --s fsaverage --mov MNI_caez_N27.nii --reg tmp.dat

#View ROI on fsaverage
tkmedit fsaverage T1.mgz -overlay S2.nii -overlay-reg tmp.dat -fthresh 0.5 -surface lh.white -aux-surface rh.white

#Map ROI to fsaverage surface
mri_vol2surf --mov S2.nii \
        --reg tmp.dat \
        --projdist-max 0 1 0.1 \
        --interp nearest \
        --hemi lh \
        --out lh.fsaverage.S2.mgh \

#Check how well the ROI maps onto the inflated surface
tksurfer fsaverage lh inflated -overlay lh.fsaverage.S2.mgh -fthresh 0.5

If you want to extract data from an ROI label, use the mri_segstats option. For example, let's say that I have all of my subjects stacked together in a single dataset using the mris_preproc option, and I have the right hemisphere volume maps in a single dataset. If my ROI is called ROI.mgh, I would use this command:

mri_segstats --i ../../rh.volume.StudyName.10.mgh --seg ROI.mgh --excludeid 0 --avgwf ROI_results.dat

Which would print the average volume over the ROI into the file ROI_results.dat.