top | previous | next

FreeSurfer Tutorial: Volumetric Group Analysis

If you are using the tutorial data you will need to set your SUBJECTS_DIR to the directory with the group analysis data in it:

setenv SUBJECTS_DIR $TUTORIAL_DATA/buckner_data/tutorial_subjs/group_analysis_tutorial
cd $SUBJECTS_DIR

Volumetric Group Analysis

During the normal FreeSurfer processing stream, via the recon-all script, (a freesurfer tutorial is available.) some statistical output files are generated. They are kept in each subjects stats/ subdirectory, and are a result of the subcortical segmentation, aseg, and the cortical parcellation, aparc. These tables include information on each labeled region for the individual subject.

aseg.stats

The statistical output from the subcortical segmentation, called aseg.stats, is a regular text file and will contain the volumes of specific structures.

At the head of the text file there will be information about the command that was run, the version used, the user who ran it and a time stamp. Following this there is information about the volume of the entire brain:

# Title Segmentation Statistics
#
# generating_program mri_segstats
# cvs_version $Id: mri_segstats.c,v 1.11.2.5 2006/04/13 18:57:07 nicks Exp $
# cmdline mri_segstats --seg mri/aseg.mgz --sum stats/aseg.stats --pv mri/norm.mgz --ctab-default 
--excludeid 0 --brain-vol-from-seg --brainmask mri/brainmask.mgz --in mri/norm.mgz --in-intensity-name norm 
--in-intensity-units MR --etiv --subject 004
# sysname  Linux
# hostname node0350
# machine  x86_64
# user     FS-user
# anatomy_type volume
#
# SUBJECTS_DIR /buckner_data/group_study
# subjectname 004
# BrainMaskFile  mri/brainmask.mgz
# BrainMaskFileTimeStamp  2006/24/03 13:47:46
# Measure BrainMask, BrainMaskNVox, Number of Brain Mask Voxels, 1744896, unitless
# Measure BrainMask, BrainMaskVol, Brain Mask Volume, 1744896.000000, mm^3
# Measure BrainSeg, BrainSegNVox, Number of Brain Segmentation Voxels, 1255291, unitless
# Measure BrainSeg, BrainSegVol, Brain Segmentation Volume, 1255291.000000, mm^3# Measure IntraCranialVol, ICV, Intracranial Volume, 1679242.759627, mm^3
# SegVolFile mri/aseg.mgz
# SegVolFileTimeStamp  2006/24/03 21:52:14
# ColorTable /space/freesurfer/centos4.0_x86_64/stable/FreeSurferColorLUT.txt
# ColorTableTimeStamp 2006/22/03 05:48:11
# InVolFile  mri/norm.mgz
# InVolFileTimeStamp  2006/24/03 13:55:16
# InVolFrame 0
# PVVolFile  mri/norm.mgz
# PVVolFileTimeStamp  2006/24/03 13:55:16
# ExcludeSegId 0
# VoxelVolume_mm3 1

This shows the number of voxels in the brainmask (BrainMaskNVox), the volume of the brainmask (BrainMaskVol), the number of voxels in the brainseg (BrainSegNVox), the volume of the brainseg (BrainSegVol), and the intracranial volume (ICV). This part of the file also tells us that the brainmask.mgz volume is being used as BrainMask (BrainMaskFile  mri/brainmask.mgz) and the aseg.mgz segmentation is being used as the SegVol (SegVolFile mri/aseg.mgz). The number of voxels and the volumes should be the same for this subject, since this part of the file also tells us that the voxel volume is 1 mm3 (VoxelVolume_mm3 1) - and volume is measured in mm3.

The next section of this file defines the column headers, field name, and units for the rest of the table:

# TableCol  1 ColHeader Index
# TableCol  1 FieldName Index
# TableCol  1 Units     NA
# TableCol  2 ColHeader SegId
# TableCol  2 FieldName Segmentation Id
# TableCol  2 Units     NA
# TableCol  3 ColHeader NVoxels
# TableCol  3 FieldName Number of Voxels
# TableCol  3 Units     unitless
# TableCol  4 ColHeader Volume_mm3
# TableCol  4 FieldName Volume
# TableCol  4 Units     mm^3
# TableCol  5 ColHeader StructName
# TableCol  5 FieldName Structure Name
# TableCol  5 Units     NA
# TableCol  6 ColHeader normMean
# TableCol  6 FieldName Intensity normMean
# TableCol  6 Units     MR
# TableCol  7 ColHeader normStdDev
# TableCol  7 FieldName Itensity normStdDev
# TableCol  7 Units     MR
# TableCol  8 ColHeader normMin
# TableCol  8 FieldName Intensity normMin
# TableCol  8 Units     MR
# TableCol  9 ColHeader normMax
# TableCol  9 FieldName Intensity normMax
# TableCol  9 Units     MR
# TableCol 10 ColHeader normRange
# TableCol 10 FieldName Intensity normRange
# TableCol 10 Units     MR
# NRows 403
# NTableCols 10

We can expect to see the Segmentation Id, Number of Voxels, Volume, Structure Name, Intensity normMean, Itensity normStdDev, Intensity normMin, Intensity normMax, and Intensity normRange for each entry in the table.

The remainder of the table shows this information for all the structures that are labeled in the aseg:

# ColHeaders  Index SegId NVoxels Volume_mm3 StructName normMean normStdDev normMin normMax normRange
  2   2    237201   237201.0  Left-Cerebral-White-Matter       107.5612    11.3261    31.0000   188.0000   157.0000
  3   3    249096   249096.0  Left-Cerebral-Cortex              69.8956    11.0623     0.0000   139.0000   139.0000
  4   4     31329    31329.0  Left-Lateral-Ventricle            23.0385    11.1648     7.0000    91.0000    84.0000
  5   5      1735     1735.0  Left-Inf-Lat-Vent                 42.2160    15.5492    14.0000    94.0000    80.0000
  7   7     13767    13767.0  Left-Cerebellum-White-Matter      87.6124     7.8224    43.0000   116.0000    73.0000
  8   8     48245    48245.0  Left-Cerebellum-Cortex            60.1777     9.4993    25.0000    94.0000    69.0000
 10  10      7025     7025.0  Left-Thalamus-Proper              89.5336    11.9082    19.0000   126.0000   107.0000
 11  11      5252     5252.0  Left-Caudate                      77.3650    11.3959    45.0000   105.0000    60.0000
 12  12      7993     7993.0  Left-Putamen                      81.3400     9.7069    28.0000   115.0000    87.0000
 13  13      2144     2144.0  Left-Pallidum                     97.6942    11.7513    36.0000   121.0000    85.0000
.
.
.
.

You can use the data in this table to perform group stats on the volumes of certain structures that may be of interest to your study. There is a way to combine this data, for your entire group, into one table that will be easily read into a spreadsheet program, by using asegstats2table. You can do this for the tutorial set of subjects with this sample command line:


asegstats2table --subjects 004 008 017 021 032 039 040 045 049 067 \
073 074 080 084 091 092 093 095 097 099 102 103 106 108 111 114 123 \
124 128 129 130 131 133 136 138 140 141 144 145 149 \
--meas vol --t asegstats.txt


This will combine the volumes from all of your subjects asegs.stats files into one table, asegstats.txt. This table can now be imported into any spreadsheet program for statistical analysis.

aparc.stats

The statistical output from the cortical parcellation, called lh.aparc.stats and rh.aparc.stats, is a regular text file and will contain the thickness of specific structures.

At the head of the text file there will be information about the command that was run, the version used, the user who ran it and a time stamp. Following this there is information about the volume of the entire brain:

# Table of FreeSurfer cortical parcellation anatomical statistics
#
# CreationTime 2006/04/25-09:31:20-GMT
# generating_program mris_anatomical_stats
# cvs_version $Id: mris_anatomical_stats.c,v 1.35.2.1 2006/04/21 19:45:19 nicks Exp $
# mrisurf.c-cvs_version $Id: mrisurf.c,v 1.441.2.3 2006/04/12 02:03:02 nicks Exp  $
# cmdline mris_anatomical_stats -mgz -f ../stats/lh.aparc.stats -b -a ../label/l h.aparc.annot -c ../stats/aparc.annot.ctab 004 lh
# sysname  Linux
# hostname node0350
# machine  x86_64
# user     FS-user
#
# SUBJECTS_DIR /buckner_data/group_study
# anatomy_type surface
# subjectname 004
# hemi lh
# AnnotationFile ../label/lh.aparc.annot
# AnnotationFileTimeStamp 2006/25/03 05:31:10
# TotalWhiteMatterVolume  634178 mm^3
# Measure Cortex, NumVert, Number of Vertices, 150889, unitless
# Measure Cortex, SurfArea, Surface Area,  102409, mm^2

This shows the total white matter volume (TotalWhiteMatterVolume), the number of vertices in the cortex (NumVert), and the surface area of the cortex (SurfArea). This part of the file also tells us that the lh.aparc.annot is being used as the annotation file (AnnotationFile ../label/lh.aparc.annot).

The next section of this file defines the column headers, field name, and units for the rest of the table:

# NTableCols 10
# TableCol  1 ColHeader StructName
# TableCol  1 FieldName Structure Name
# TableCol  1 Units     NA
# TableCol  2 ColHeader NumVert
# TableCol  2 FieldName Number of Vertices
# TableCol  2 Units     unitless
# TableCol  3 ColHeader SurfArea
# TableCol  3 FieldName Surface Area
# TableCol  3 Units     mm^2
# TableCol  4 ColHeader GrayVol
# TableCol  4 FieldName Gray Matter Volume
# TableCol  4 Units     mm^3
# TableCol  5 ColHeader ThickAvg
# TableCol  5 FieldName Average Thickness
# TableCol  5 Units     mm
# TableCol  6 ColHeader ThickStd
# TableCol  6 FieldName Thickness StdDev
# TableCol  6 Units     mm
# TableCol  7 ColHeader MeanCurv
# TableCol  7 FieldName Integrated Rectified Mean Curvature
# TableCol  7 Units     mm^-1
# TableCol  8 ColHeader GausCurv
# TableCol  8 FieldName Integrated Rectified Gaussian Curvature
# TableCol  8 Units     mm^-2
# TableCol  9 ColHeader  FoldInd
# TableCol  9 FieldName  Folding Index
# TableCol  9 Units      unitless
# TableCol 10 ColHeader CurvInd
# TableCol 10 FieldName Intrinsic Curvature Index
# TableCol 10 Units     unitless

We can expect to see the Structure Name, Number of Vertices, Surface Area, Gray Matter Volume, Average Thickness, Thickness StDev, Integrated Rectified Mean Curvature, Integrated Rectified Gaussian Curvature, Folding Index and Intrinsic Curvature Index for each entry in the table.

The remainder of the table shows this information for all the structures that are labeled in the aseg:

# ColHeaders StructName NumVert SurfArea GrayVol ThickAvg ThickStd MeanCurv GausCurv FoldInd CurvInd
unknown                                 15085  10384  21630  2.006 1.096     0.123     0.038  168.313  26.766
bankssts                                 1126    770   1563  2.132 0.462     0.103     0.024    7.056   1.004
caudalanteriorcingulate                   931    636   2125  2.721 0.675     0.127     0.031   15.801   0.991
caudalmiddlefrontal                      3577   2403   6575  2.447 0.535     0.120     0.028   34.901   3.674
corpuscallosum                           1035    680   1215  2.123 0.902     0.136     0.023   17.731   0.799
cuneus                                   2966   1958   3769  1.740 0.473     0.140     0.033   37.320   3.630
entorhinal                                683    419   1620  2.819 0.632     0.090     0.021    5.349   0.429
fusiform                                 6622   4607  11486  2.190 0.634     0.130     0.032   77.276   7.884
.
.
.
.

You can use the data in this table to perform group stats on the thickness, area, volume, etc. of certain structures that may be of interest to your study. There is a way to combine this data, for your entire group, into one table that will be easily read into a spreadsheet program, by using aparcstats2table. You can do this for the tutorial set of subjects with this sample command line:


aparcstats2table --subjects 004 008 017 021 032 039 040 045 049 067 \
073 074 080 084 091 092 093 095 097 099 102 103 106 108 111 114 123 \
124 128 129 130 131 133 136 138 140 141 144 145 149 \
--hemi lh --meas area --t aparcstatsAREA.txt


This will combine the areas from all of your subjects lh.aparc.stats files into one table, aparcstatsAREA.txt. This table can now be imported into any spreadsheet program for statistical analysis. You can change your command to run on the other hemisphere, or on a different measure (volume, thickness).