|
Size: 15335
Comment:
|
Size: 18457
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| [[FsTutorial|top]] | [[FsTutorial|previous]] '''<<TableOfContents>>''' |
|
| Line 4: | Line 8: |
| Make sure you have set you SUBJECTS_DIR to correct location. == Relationship between segmentation, parcellation, and LookUp Table (LUT) == Open your subjectID in tkmedit using the following command ---- {{{ tkmedit <subjectID> orig.mgz -aux aparc+aseg.mgz \ |
Make sure you have set your SUBJECTS_DIR to correct location as ---- {{{ setenv SUBJECTS_DIR $TUTORIAL_DATA/group_analysis_tutorial cd $SUBJECTS_DIR }}} ---- == Relationship between segmentation, parcellation and LookUp Table (LUT) == In this exercise, you will examine a segmentation, parcellation, and color lookup table to understand how they are related. Open the subject in tkmedit using the following command ---- {{{ tkmedit 004 orig.mgz -aux aparc+aseg.mgz \ |
| Line 18: | Line 30: |
| tksurfer <subjectID> lh inflated -annot aparc.annot }}} ---- Run the following command to display the contents of LUT |
tksurfer 004 lh inflated -annot aparc.annot }}} ---- Finally, run the following command to display the contents of LUT |
| Line 27: | Line 39: |
| Click on a point on the image loaded in tkmedit. You can see the structure name in the tkmedit toolbar. Look at the Aux value, find value in LUT, which you have opened using the command mentioned above. See that it is the same structure as listedin tkmedit. Click on a point in tksurfer and see structure name. Note that the name does not have lh or rh in it. Click on the Save Point tool button, and then click on Goto Point tool button in tkmedit. You will notice that the structure name in tkmedit has lh or rh in it. |
You can hit the 'Page Up' and 'Page Down' buttons to see the rest of the file. Or click [[FsTutorial/AnatomicalROI/FreeSurferColorLUT|here]] to view the contents of the file. Things to do -- Navigating between tkmedit and LUT: 1. Click on a point on the image loaded in tkmedit. 1. See the structure name in the tkmedit Tools window (under the Cursor section). 1. Look at the Aux (aparc+aseg.mgz) value in the tkmedit Tools window. For example, it may say 1024. 1. Find that value in the LUT, which you have opened using the command mentioned above. 1. Verify that it is the same structure as listed in tkmedit. Things to do -- Navigating between tksurfer, tkmedit and LUT: 1. Click on a point in tksurfer in the superior temporal gyrus. If you don't know it's location, you can hover over the different areas to see their label underneath the Mouse section of the Tools window. 1. Note that the name displayed in the tksurfer Tools window does not have lh or rh in it. This is because you loaded only one hemisphere. 1. In tksurfer, click on the Save Point button {{attachment:icon_cursor_save.gif}} 1. In tkmedit, click on Goto Point button {{attachment:icon_cursor_goto.gif}}. 1. Verify the structure name in the tkmedit Tools window. Note that it DOES have an lh or rh in it. 1. The Aux (aparc+aseg.mgz) value should be 1030. 1. In FreeSurferColorLUT.txt, verify that 1030 is ctx-lh-superiortemporal |
| Line 35: | Line 61: |
| To load an existing label, for example lh.cortex.label, run ---- {{{ less <subjectID>/label/lh.cortex.label |
To load an existing label, for example lh.BA45.label, run ---- {{{ less 004/label/lh.BA45.label |
| Line 44: | Line 70: |
| tkmedit <subjectID> orig.mgz }}} ---- Then on the tkmedit toolbar, go to '''File-> Label --> Load Label --> lh.cortex.label''' To load the label in tksurfer, make sure you load the subject in tksurfer. ---- {{{ tksurfer subject lh inflated }}} ---- On the tksurfer toolbar, go to '''File --> Label --> Load Label --> lh.cortex.label''' You can also load the label from the tksurfer tool bar using Ctrl - right mouse button on the 'Show labels' tool button. Browse the label you want to load and click 'OK' |
tkmedit 004 orig.mgz }}} ---- Then on the menu bar at the top of tkmedit tools window, go to '''File --> Label --> Load Label --> Browse --> lh.BA45.label''' and hit 'OK' in both windows. {{attachment:label.jpg}} This label can be edited when the Select Voxels button is chosen. Use the middle mouse button to add to the label. Use the right mouse button to delete from the label. If this was your own subject, you would want to make sure you save your edits by going to File --> Label --> Save Label but it's not necessary for this tutorial. To load the label in tksurfer, first load the subject. ---- {{{ tksurfer 004 lh inflated }}} ---- On the menu bar at the top of tksurfer tools window, go to '''File --> Label --> Load Label --> Browse --> lh.BA45.label''' {{attachment:tksurferlabel.jpg}} Information on how to create and edit labels in tksurfer can be found on [[https://surfer.nmr.mgh.harvard.edu/fswiki/tksurfer_labeledit|this wiki]]. |
| Line 59: | Line 92: |
| During the normal FreeSurfer processing stream, via the recon-all script, [[http://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial|(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. ---- {{{ cd $SUBJECTS_DIR/subject/stats less aseg.stats }}} ---- Details are as follows when you run the command line above. |
During the normal FreeSurfer processing stream, via the recon-all script, [[http://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial|(a freesurfer tutorial is available.)]] some statistical output files are generated. They are kept in each subjects' {{{stats/}}} subdirectory and are generated for the subcortical segmentation (aseg) and the cortical parcellation (aparc). These tables include information on each labeled region for the individual subject. |
| Line 69: | Line 97: |
| The statistical output from the subcortical segmentation, called {{{aseg.stats}}}, is a regular text file and will contain the volumes of specific structures. For example, you can obtain information such as the volume of left hippocampus and it's mean intensity from this file. 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: |
The statistical output from the subcortical segmentation, called {{{aseg.stats}}}, is a regular text file and will contain the volumes of specific structures. For example, you can obtain information such as the volume of left hippocampus and its mean intensity from this file. ---- {{{ cd $SUBJECTS_DIR/004/stats emacs aseg.stats }}} ---- 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. 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 mm^3^ {{{(VoxelVolume_mm3 1)}}} - and volume is measured in mm^3^. <<BR>> The next section of this file defines the column headers, field name, and units for the rest of the table. We can expect to see the ''Segmentation Id'', ''Number of Voxels'', ''Volume'', ''Structure Name'', ''Intensity normMean'', ''Intensity normStdDev'', ''Intensity normMin'', ''Intensity normMax'', and ''Intensity normRange'' for each entry in the table.<<BR>> The remainder of the table shows this information for all the structures that are labeled in the aseg. |
| Line 74: | Line 115: |
| # | |
| Line 76: | Line 116: |
| # 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 |
# cvs_version $Id: mri_segstats.c,v 1.33.2.4 2008/12/21 18:04:48 greve Exp $ # cmdline mri_segstats --seg mri/aseg.mgz --sum stats/aseg.stats --pv mri/norm.mgz --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 --surf-wm-vol --ctab /usr/local/freesurfer/stable4/ASegStatsLUT.txt |
| Line 81: | Line 120: |
| # hostname node0350 | # hostname node0304 |
| Line 85: | Line 124: |
| # # SUBJECTS_DIR /buckner_data/group_study |
# SUBJECTS_DIR /autofs/space/birn_045/users/BWH/buckner_data/tutorial_subjs |
| Line 89: | Line 127: |
| # 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 |
# BrainMaskFileTimeStamp 2009/01/11 15:41:05 # Measure BrainMask, BrainMaskNVox, Number of Brain Mask Voxels, 1750402, unitless # Measure BrainMask, BrainMaskVol, Brain Mask Volume, 1750402.000000, mm^3 # Measure BrainSegNotVent, BrainSegVolNotVent, Brain Segmentation Volume Without Ventricles, 1175182.000000, mm^3 # Measure BrainSeg, BrainSegNVox, Number of Brain Segmentation Voxels, 1235011, unitless # Measure BrainSeg, BrainSegVol, Brain Segmentation Volume, 1235011.000000, mm^3 # Measure IntraCranialVol, ICV, Intracranial Volume, 1796495.343836, mm^3 |
| Line 95: | Line 135: |
| # SegVolFileTimeStamp 2006/24/03 21:52:14 # ColorTable /space/freesurfer/centos4.0_x86_64/stable/FreeSurferColorLUT.txt # ColorTableTimeStamp 2006/22/03 05:48:11 |
# SegVolFileTimeStamp 2008/11/22 04:53:19 # ColorTable /usr/local/freesurfer/stable4/ASegStatsLUT.txt # ColorTableTimeStamp 2009/01/11 07:09:19 |
| Line 99: | Line 139: |
| # InVolFileTimeStamp 2006/24/03 13:55:16 | # InVolFileTimeStamp 2008/11/21 19:10:07 |
| Line 102: | Line 142: |
| # PVVolFileTimeStamp 2006/24/03 13:55:16 | # PVVolFileTimeStamp 2008/11/21 19:10:07 # surface-based-volume mm3 lh-cerebral-white-matter 256451.250000 # surface-based-volume mm3 rh-cerebral-white-matter 256024.875000 # surface-based-volume mm3 tot-cerebral-white-matter 512476.125000 |
| Line 105: | Line 148: |
| }}} 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 mm^3^ {{{(VoxelVolume_mm3 1)}}} - and volume is measured in mm^3^. <<BR>> The next section of this file defines the column headers, field name, and units for the rest of the table: {{{ |
- - - |
| Line 126: | Line 166: |
| # 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.<<BR>> 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. |
- - - #ColHeaders Index SegId NVoxels Volume_mm3 StructName normMean normStdDev normMin normMax normRange 1 2 219775 219775.0 Left-Cerebral-White-Matter 104.1449 9.6298 23.0000 180.0000 157.0000 2 3 249186 249186.0 Left-Cerebral-Cortex 68.4475 10.9191 19.0000 154.0000 135.0000 3 4 31217 31217.0 Left-Lateral-Ventricle 21.2879 9.9687 6.0000 82.0000 76.0000 4 5 1380 1380.0 Left-Inf-Lat-Vent 37.2319 12.6153 13.0000 85.0000 72.0000 5 7 13337 13337.0 Left-Cerebellum-White-Matter 86.1768 7.6600 42.0000 124.0000 82.0000 6 8 49087 49087.0 Left-Cerebellum-Cortex 58.4803 9.5375 19.0000 96.0000 77.0000 - - - }}} |
| Line 179: | Line 183: |
| 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. For example, you can obtain information such as, How big is right superior temporal gyrus and it's average thickness from this file. 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: {{{ |
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. For example, you can obtain information such as, how big is left superior temporal gyrus and its average thickness from this file. ---- {{{ cd $SUBJECTS_DIR/004/stats less lh.aparc.stats }}} ---- 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. 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)}}}.<<BR>> The next section of this file defines the column headers, field name, and units for the rest of the table. 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.<<BR>> The remainder of the table shows this information for all the structures that are labeled in the aparc. {{{ |
| Line 185: | Line 199: |
| # # CreationTime 2006/04/25-09:31:20-GMT |
# CreationTime 2009/01/13-02:24:40-GMT |
| Line 188: | Line 201: |
| # 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 |
# cvs_version $Id: mris_anatomical_stats.c,v 1.54.2.4 2009/01/09 22:23:40 nicks Exp $ # mrisurf.c-cvs_version $Id: mrisurf.c,v 1.557.2.17 2009/01/08 17:16:51 nicks Exp $ # cmdline mris_anatomical_stats -mgz -f ../stats/lh.aparc.stats -b -a ../label/lh.aparc.annot -c ../label/aparc.annot.ctab 004 lh |
| Line 192: | Line 205: |
| # hostname node0350 | # hostname node0323 |
| Line 195: | Line 208: |
| # # SUBJECTS_DIR /buckner_data/group_study |
# SUBJECTS_DIR /autofs/space/birn_045/users/BWH/buckner_data/tutorial_subjs |
| Line 201: | Line 213: |
| # 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)}}}.<<BR>> The next section of this file defines the column headers, field name, and units for the rest of the table: {{{ # NTableCols 10 |
# AnnotationFileTimeStamp 2009/01/12 02:40:55 # Measure Cortex, NumVert, Number of Vertices, 151295, unitless # Measure Cortex, SurfArea, Surface Area, 100640, mm^2 - - - |
| Line 227: | Line 234: |
| # 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.<<BR>> 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 . . . . }}} |
- - - #ColHeaders StructName NumVert SurfArea GrayVol ThickAvg ThickStd MeanCurv GausCurv FoldInd CurvInd unknown 13332 8382 11785 1.313 1.553 0.117 0.146 1134 56.2 bankssts 1372 939 2157 2.249 0.512 0.138 0.048 17 2.9 caudalanteriorcingulate 1188 783 2316 2.561 0.829 0.176 0.102 38 4.9 caudalmiddlefrontal 3278 2160 6170 2.555 0.565 0.143 0.056 45 7.8 cuneus 2460 1561 3093 1.800 0.406 0.165 0.071 47 6.9 entorhinal 544 371 1617 3.130 0.717 0.183 0.177 36 4.2 fusiform 5421 3746 10126 2.281 0.708 0.155 0.067 98 14.7 inferiorparietal 7558 5112 13237 2.269 0.589 0.154 0.066 154 19.6 - - - }}} |
| Line 266: | Line 253: |
| This section will run you through using the stats directory in the subjects to perform group stats on the thickness, area, volume, etc. of certain structures that may be of interest to your study. The following commands will help you combine the data of the subjects you are analyzing into one table that will be easily read into a spreadsheet program. Set you SUBJECTS_DIR to the location where you have your subject IDs to be analyzed |
This section will run you through using the stats directory in the subjects to perform group stats of certain structures that may be of interest to your study. The following commands will help you combine the data of the subjects you are analyzing into one table that will be easily read into a spreadsheet program. We have considered 6 subjects as examples (004, 021, 040, 067, 080, 092) in the following sections. Set your SUBJECTS_DIR to the path where you have your subjects to be analyzed. ---- {{{ setenv SUBJECTS_DIR $TUTORIAL_DATA/group_analysis_tutorial cd $SUBJECTS_DIR }}} ---- |
| Line 272: | Line 265: |
| Consider an example where you want create a table of segmentation volumes of 6 subjects namely, 004, 021, 040, 067, 080, 092. | This section explains how to create a table of segmentation volumes using the 6 subjects mentioned above. |
| Line 278: | Line 271: |
| --t /tmp/aseg.vol.table }}} ---- where 11, 17 and 18 correspond to the segmentation label of left caudate, left hippocampus and left amygdala respectively. To load the resulting table into a spreadsheet, run ---- {{{ oocalc /tmp/aseg.vol.table }}} ---- and then select '''Space''' in the '''Separated''' by menu. |
--t aseg.vol.table }}} ---- where 11, 17 and 18 correspond to the segmentation label of left caudate, left hippocampus and left amygdala respectively. You can get the segmentation labels and the corresponding subcortical structures using the following command: ---- {{{ less $FREESURFER_HOME/FreeSurferColorLUT.txt }}} ---- For tutorial purposes, click [[FsTutorial/AnatomicalROI/FreeSurferColorLUT|here]] to view the contents of the file. The file {{{aseg.vol.table}}} is your output - a text file consisting of the subjects mentioned in the command above and the values for the structures requested. The information in this text file is formatted so it can be easily imported into a spreadsheet program. If you do the {{{ls}}} command, you should see that the text file {{{aseg.vol.table}}} has been created. To see what the file looks like, do: ---- {{{ more aseg.vol.table }}} ---- After running the ''asegstats2table'' command, to load the resulting table into a spreadsheet, run ---- {{{ oocalc aseg.vol.table }}} ---- and then select '''Space''' in the '''Separated by''' menu. {{attachment:spreadsheet.jpg}} '''Note:''' the ''oocalc'' command is meant to be run on a Linux machine. Mac users could install the OpenOffice 3.0 to open the table in a spreadsheet and run the command ---- {{{ /Applications/OpenOffice.org.app/Contents/MacOS/scalc aseg.vol.table }}} ---- |
| Line 291: | Line 309: |
| About the subject IDs, you'll notice that in the examples we've considered here, each subject is a 3 digit number. Therefore oocalc thinks it is a number and removes leading 0s. This is an oocalc issue but probably it would not happen if subject names has characters in them instead of integers. | About the subject IDs, you'll notice that in the examples we've considered here, each subject is a 3 digit number. Therefore ''oocalc'' thinks it is a number and removes leading 0s. This is an oocalc issue but probably it would not happen if subject names had characters in them instead of integers. |
| Line 294: | Line 312: |
Purpose of this section is to demonstrate how you can change what measure you collect for your spreadsheet from volume to mean intensity using the ''asegstats2table'' command. ---- {{{ asegstats2table \ --subjects 004 021 040 067 080 092 \ --segno 11 17 18 \ --meas mean \ --t aseg.mean-intensity.table }}} ---- Things to do: 1. You can load the table into a spreadsheet as explained in the previous section. 1. Refer to the file ''FreeSurferColorLUT.txt'' for the segmentation labels and the corresponding subcortical structures. ---- {{{ less $FREESURFER_HOME/FreeSurferColorLUT.txt }}} ---- For tutorial purposes, click [[FsTutorial/AnatomicalROI/FreeSurferColorLUT|here]] to view the contents of the file. === Table of white matter parcellation volumes === The purpose of this section is to show how you can change which segmentation atlas you get stats from (and thus which structures): ---- {{{ asegstats2table \ --subjects 004 021 040 067 080 092 \ --segno 3007 3021 3022 4022 \ --stats wmparc.stats \ --t wmparc.vol.table }}} ---- Things to do: 1. You can load the table into a spreadsheet. 1. Refer to the file ''FreeSurferColorLUT.txt'' for the segmentation labels and the corresponding subcortical structures. ---- {{{ less $FREESURFER_HOME/FreeSurferColorLUT.txt }}} ---- For tutorial purposes, click [[FsTutorial/AnatomicalROI/FreeSurferColorLUT|here]] to view the contents of the file === Table of the surface area of each cortical parcellation in the Desikan atlas === This section explains how to create a table of the surface area of each cortical parcellation in the Desikan atlas (surface area is the default measure). ---- {{{ aparcstats2table --hemi lh \ --subjects 004 021 040 067 080 092 \ --t lh.aparc.area.table }}} ---- You can now load the resulting table into a spreadsheet. === Table of the average thickness of each cortical parcellation in the Destrieux atlas === The purpose of this section is to show how to change the summary measure and the parcellation atlas. ---- {{{ aparcstats2table --hemi lh \ --subjects 004 021 040 067 080 092 \ --meas thickness \ --parc aparc.a2005s \ --t lh.aparc.a2005.thickness.table }}} ---- You can now load the resulting table into a spreadsheet. |
Anatomical ROI analysis
This tutorial gives a brief introduction to anatomical ROI analysis which includes working with label files, extracting ROI measures from the anatomical data, group statistics etc. Make sure you have set your SUBJECTS_DIR to correct location as
setenv SUBJECTS_DIR $TUTORIAL_DATA/group_analysis_tutorial cd $SUBJECTS_DIR
Relationship between segmentation, parcellation and LookUp Table (LUT)
In this exercise, you will examine a segmentation, parcellation, and color lookup table to understand how they are related.
Open the subject in tkmedit using the following command
tkmedit 004 orig.mgz -aux aparc+aseg.mgz \ -seg aparc+aseg.mgz $FREESURFER_HOME/FreeSurferColorLUT.txt
Open another terminal to load the subject in tksurfer, using the following command.
tksurfer 004 lh inflated -annot aparc.annot
Finally, run the following command to display the contents of LUT
less $FREESURFER_HOME/FreeSurferColorLUT.txt
You can hit the 'Page Up' and 'Page Down' buttons to see the rest of the file. Or click here to view the contents of the file.
Things to do -- Navigating between tkmedit and LUT:
- Click on a point on the image loaded in tkmedit.
- See the structure name in the tkmedit Tools window (under the Cursor section).
- Look at the Aux (aparc+aseg.mgz) value in the tkmedit Tools window. For example, it may say 1024.
- Find that value in the LUT, which you have opened using the command mentioned above.
- Verify that it is the same structure as listed in tkmedit.
Things to do -- Navigating between tksurfer, tkmedit and LUT:
- Click on a point in tksurfer in the superior temporal gyrus. If you don't know it's location, you can hover over the different areas to see their label underneath the Mouse section of the Tools window.
- Note that the name displayed in the tksurfer Tools window does not have lh or rh in it. This is because you loaded only one hemisphere.
In tksurfer, click on the Save Point button
In tkmedit, click on Goto Point button
. - Verify the structure name in the tkmedit Tools window. Note that it DOES have an lh or rh in it.
- The Aux (aparc+aseg.mgz) value should be 1030.
- In FreeSurferColorLUT.txt, verify that 1030 is ctx-lh-superiortemporal
Label files
This section gives the details of commands to load an existing label file in text editor, tkmedit, and tksurfer.
To load an existing label, for example lh.BA45.label, run
less 004/label/lh.BA45.label
To load a label in tkmedit, first load the subject you want to work on, in tkmedit.
tkmedit 004 orig.mgz
Then on the menu bar at the top of tkmedit tools window, go to File --> Label --> Load Label --> Browse --> lh.BA45.label and hit 'OK' in both windows.
This label can be edited when the Select Voxels button is chosen. Use the middle mouse button to add to the label. Use the right mouse button to delete from the label. If this was your own subject, you would want to make sure you save your edits by going to File --> Label --> Save Label but it's not necessary for this tutorial.
To load the label in tksurfer, first load the subject.
tksurfer 004 lh inflated
On the menu bar at the top of tksurfer tools window, go to File --> Label --> Load Label --> Browse --> lh.BA45.label
Information on how to create and edit labels in tksurfer can be found on this wiki.
Individual Stats files
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 generated for 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. For example, you can obtain information such as the volume of left hippocampus and its mean intensity from this file.
cd $SUBJECTS_DIR/004/stats emacs aseg.stats
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. 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. We can expect to see the Segmentation Id, Number of Voxels, Volume, Structure Name, Intensity normMean, Intensity 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.
# Title Segmentation Statistics # generating_program mri_segstats # cvs_version $Id: mri_segstats.c,v 1.33.2.4 2008/12/21 18:04:48 greve Exp $ # cmdline mri_segstats --seg mri/aseg.mgz --sum stats/aseg.stats --pv mri/norm.mgz --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 --surf-wm-vol --ctab /usr/local/freesurfer/stable4/ASegStatsLUT.txt # sysname Linux # hostname node0304 # machine x86_64 # user FS-user # anatomy_type volume # SUBJECTS_DIR /autofs/space/birn_045/users/BWH/buckner_data/tutorial_subjs # subjectname 004 # BrainMaskFile mri/brainmask.mgz # BrainMaskFileTimeStamp 2009/01/11 15:41:05 # Measure BrainMask, BrainMaskNVox, Number of Brain Mask Voxels, 1750402, unitless # Measure BrainMask, BrainMaskVol, Brain Mask Volume, 1750402.000000, mm^3 # Measure BrainSegNotVent, BrainSegVolNotVent, Brain Segmentation Volume Without Ventricles, 1175182.000000, mm^3 # Measure BrainSeg, BrainSegNVox, Number of Brain Segmentation Voxels, 1235011, unitless # Measure BrainSeg, BrainSegVol, Brain Segmentation Volume, 1235011.000000, mm^3 # Measure IntraCranialVol, ICV, Intracranial Volume, 1796495.343836, mm^3 # SegVolFile mri/aseg.mgz # SegVolFileTimeStamp 2008/11/22 04:53:19 # ColorTable /usr/local/freesurfer/stable4/ASegStatsLUT.txt # ColorTableTimeStamp 2009/01/11 07:09:19 # InVolFile mri/norm.mgz # InVolFileTimeStamp 2008/11/21 19:10:07 # InVolFrame 0 # PVVolFile mri/norm.mgz # PVVolFileTimeStamp 2008/11/21 19:10:07 # surface-based-volume mm3 lh-cerebral-white-matter 256451.250000 # surface-based-volume mm3 rh-cerebral-white-matter 256024.875000 # surface-based-volume mm3 tot-cerebral-white-matter 512476.125000 # ExcludeSegId 0 # VoxelVolume_mm3 1 - - - # 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 - - - #ColHeaders Index SegId NVoxels Volume_mm3 StructName normMean normStdDev normMin normMax normRange 1 2 219775 219775.0 Left-Cerebral-White-Matter 104.1449 9.6298 23.0000 180.0000 157.0000 2 3 249186 249186.0 Left-Cerebral-Cortex 68.4475 10.9191 19.0000 154.0000 135.0000 3 4 31217 31217.0 Left-Lateral-Ventricle 21.2879 9.9687 6.0000 82.0000 76.0000 4 5 1380 1380.0 Left-Inf-Lat-Vent 37.2319 12.6153 13.0000 85.0000 72.0000 5 7 13337 13337.0 Left-Cerebellum-White-Matter 86.1768 7.6600 42.0000 124.0000 82.0000 6 8 49087 49087.0 Left-Cerebellum-Cortex 58.4803 9.5375 19.0000 96.0000 77.0000 - - -
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. For example, you can obtain information such as, how big is left superior temporal gyrus and its average thickness from this file.
cd $SUBJECTS_DIR/004/stats less lh.aparc.stats
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. 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. 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 aparc.
# Table of FreeSurfer cortical parcellation anatomical statistics # CreationTime 2009/01/13-02:24:40-GMT # generating_program mris_anatomical_stats # cvs_version $Id: mris_anatomical_stats.c,v 1.54.2.4 2009/01/09 22:23:40 nicks Exp $ # mrisurf.c-cvs_version $Id: mrisurf.c,v 1.557.2.17 2009/01/08 17:16:51 nicks Exp $ # cmdline mris_anatomical_stats -mgz -f ../stats/lh.aparc.stats -b -a ../label/lh.aparc.annot -c ../label/aparc.annot.ctab 004 lh # sysname Linux # hostname node0323 # machine x86_64 # user FS-user # SUBJECTS_DIR /autofs/space/birn_045/users/BWH/buckner_data/tutorial_subjs # anatomy_type surface # subjectname 004 # hemi lh # AnnotationFile ../label/lh.aparc.annot # AnnotationFileTimeStamp 2009/01/12 02:40:55 # Measure Cortex, NumVert, Number of Vertices, 151295, unitless # Measure Cortex, SurfArea, Surface Area, 100640, mm^2 - - - # 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 - - - #ColHeaders StructName NumVert SurfArea GrayVol ThickAvg ThickStd MeanCurv GausCurv FoldInd CurvInd unknown 13332 8382 11785 1.313 1.553 0.117 0.146 1134 56.2 bankssts 1372 939 2157 2.249 0.512 0.138 0.048 17 2.9 caudalanteriorcingulate 1188 783 2316 2.561 0.829 0.176 0.102 38 4.9 caudalmiddlefrontal 3278 2160 6170 2.555 0.565 0.143 0.056 45 7.8 cuneus 2460 1561 3093 1.800 0.406 0.165 0.071 47 6.9 entorhinal 544 371 1617 3.130 0.717 0.183 0.177 36 4.2 fusiform 5421 3746 10126 2.281 0.708 0.155 0.067 98 14.7 inferiorparietal 7558 5112 13237 2.269 0.589 0.154 0.066 154 19.6 - - -
Group stats files
This section will run you through using the stats directory in the subjects to perform group stats of certain structures that may be of interest to your study. The following commands will help you combine the data of the subjects you are analyzing into one table that will be easily read into a spreadsheet program. We have considered 6 subjects as examples (004, 021, 040, 067, 080, 092) in the following sections.
Set your SUBJECTS_DIR to the path where you have your subjects to be analyzed.
setenv SUBJECTS_DIR $TUTORIAL_DATA/group_analysis_tutorial cd $SUBJECTS_DIR
Table of segmentation volumes
This section explains how to create a table of segmentation volumes using the 6 subjects mentioned above.
asegstats2table --subjects 004 021 040 067 080 092 \ --segno 11 17 18 \ --t aseg.vol.table
where 11, 17 and 18 correspond to the segmentation label of left caudate, left hippocampus and left amygdala respectively. You can get the segmentation labels and the corresponding subcortical structures using the following command:
less $FREESURFER_HOME/FreeSurferColorLUT.txt
For tutorial purposes, click here to view the contents of the file.
The file aseg.vol.table is your output - a text file consisting of the subjects mentioned in the command above and the values for the structures requested. The information in this text file is formatted so it can be easily imported into a spreadsheet program. If you do the ls command, you should see that the text file aseg.vol.table has been created. To see what the file looks like, do:
more aseg.vol.table
After running the asegstats2table command, to load the resulting table into a spreadsheet, run
oocalc aseg.vol.table
and then select Space in the Separated by menu.
Note: the oocalc command is meant to be run on a Linux machine. Mac users could install the OpenOffice 3.0 to open the table in a spreadsheet and run the command
/Applications/OpenOffice.org.app/Contents/MacOS/scalc aseg.vol.table
In the table, the first cell is volume indicating that the measure is a volume in mm3. In addition to segmentations, you can also get IntraCranialVol (ICV) and BrainSegVol into the table.
About the subject IDs, you'll notice that in the examples we've considered here, each subject is a 3 digit number. Therefore oocalc thinks it is a number and removes leading 0s. This is an oocalc issue but probably it would not happen if subject names had characters in them instead of integers.
Table of segmentation mean intensities
Purpose of this section is to demonstrate how you can change what measure you collect for your spreadsheet from volume to mean intensity using the asegstats2table command.
asegstats2table \ --subjects 004 021 040 067 080 092 \ --segno 11 17 18 \ --meas mean \ --t aseg.mean-intensity.table
Things to do:
- You can load the table into a spreadsheet as explained in the previous section.
Refer to the file FreeSurferColorLUT.txt for the segmentation labels and the corresponding subcortical structures.
less $FREESURFER_HOME/FreeSurferColorLUT.txt
For tutorial purposes, click here to view the contents of the file.
Table of white matter parcellation volumes
The purpose of this section is to show how you can change which segmentation atlas you get stats from (and thus which structures):
asegstats2table \ --subjects 004 021 040 067 080 092 \ --segno 3007 3021 3022 4022 \ --stats wmparc.stats \ --t wmparc.vol.table
Things to do:
- You can load the table into a spreadsheet.
Refer to the file FreeSurferColorLUT.txt for the segmentation labels and the corresponding subcortical structures.
less $FREESURFER_HOME/FreeSurferColorLUT.txt
For tutorial purposes, click here to view the contents of the file
Table of the surface area of each cortical parcellation in the Desikan atlas
This section explains how to create a table of the surface area of each cortical parcellation in the Desikan atlas (surface area is the default measure).
aparcstats2table --hemi lh \ --subjects 004 021 040 067 080 092 \ --t lh.aparc.area.table
You can now load the resulting table into a spreadsheet.
Table of the average thickness of each cortical parcellation in the Destrieux atlas
The purpose of this section is to show how to change the summary measure and the parcellation atlas.
aparcstats2table --hemi lh \ --subjects 004 021 040 067 080 092 \ --meas thickness \ --parc aparc.a2005s \ --t lh.aparc.a2005.thickness.table
You can now load the resulting table into a spreadsheet.
