FreeSurfer Tutorial: Process Flow
This table shows the recon-all steps for stable version 5.1 of FreeSurfer.
See also the OtherUsefulFlags for other recon-all options.
| recon-all step | Individual Flag | Input | Command Line | Output | 
| recon-all -autorecon1 -subjid <subjid> | ||||
| -i <invol1> -i <invol2> | invol1.dcm | mri_convert invol1.dcm orig/001.mgz | orig/001.mgz | |
| invol2.dcm | mri_convert invol2.dcm orig/002.mgz | orig/002.mgz | ||
| orig/001.mgz | mri_robust_template --mov 001.mgz 002.mgz --average 1 --template rawavg.mgz --satit --inittp 1 --fixtp --noit --iscale --subsample 200 | rawavg.mgz | ||
| orig/002.mgz | ||||
| rawavg.mgz | mri_convert rawavg.mgz orig.mgz --conform | orig.mgz | ||
| orig.mgz | mri_add_xform_to_header -c transforms/talairach.xfm orig.mgz orig.mgz | orig.mgz | ||
| orig.mgz | talairach_avi --i orig.mgz --xfm transforms/talairach.auto.xfm | transforms/talairach.auto.xfm | ||
| transforms/talairach.auto.xfm | cp transforms/talairach.auto.xfm transforms/talairach.xfm | transforms/talairach.xfm | ||
| transforms/talairach.xfm | talairach_afd -T 0.005 -xfm transforms/talairach.xfm | transforms/talairach.xfm | ||
| 
 | awk -f $FREESURFER_HOME/bin/extract_talairach_avi_QA.awk transforms/talairach_avi.log | transforms/talairach_avi.log | ||
| orig.mgz, talairach.xfm | mri_nu_correct.mni --i orig.mgz --o nu.mgz --n 2 --uchar transforms/talairach.xfm | nu.mgz | ||
| nu.mgz | mri_normalize -g 1 nu.mgz T1.mgz | T1.mgz | ||
| nu.mgz | mri_em_register -skull nu.mgz $FREESURFER_HOME/average/RB_all_withskull_2008-03-26.gca transforms/talairach_with_skull.lta | transforms/talairach_with_skull.lta | ||
| T1.mgz | mri_watershed -T1 -brain_atlas $FREESURFER_HOME/average/RB_all_withskull_2008-03-26.gca transforms/talairach_with_skull.lta T1.mgz brainmask.auto.mgz | brainmask.auto.mgz | ||
| brainmask.auto.mgz | cp brainmask.auto.mgz brainmask.mgz | brainmask.mgz | ||
| 
 | 
 | 
 | 
 | |
| recon-all -autorecon2 -subjid <subjid> | ||||
| brainmask.mgz | mri_em_register -mask brainmask.mgz nu.mgz $FREESURFER_HOME/average/RB_all_2008-03-26.gca transforms/talairach.lta | transforms/talairach.lta | ||
| nu.mgz | ||||
| brainmask.mgz | mri_ca_normalize -mask brainmask.mgz nu.mgz $FREESURFER_HOME/average/RB_all_2008-03-26.gca transforms/talairach.lta norm.mgz | norm.mgz | ||
| nu.mgz | ||||
| transforms/talairach.lta | ||||
| brainmask.mgz | mri_ca_register -align-after -nobigventricles -mask brainmask.mgz -T transforms/talairach.lta norm.mgz $FREESURFER_HOME/average/RB_all_2008-03-26.gca transforms/talairach.m3z | transforms/talairach.m3z | ||
| transforms/talairach.lta | ||||
| norm.mgz | ||||
| transforms/talairach.m3z | mri_ca_register -invert-and-save transforms/talairach.m3z | transforms/talairach.m3z.inv.x.mgz | ||
| transforms/talairach.m3z.inv.y.mgz | ||||
| transforms/talairach.m3z.inv.z.mgz | ||||
| nu.mgz | mri_remove_neck -radius 25 nu.mgz transforms/talairach.m3z $FREESURFER_HOME/average/RB_all_2008-03-26.gca nu_noneck.mgz | nu_noneck.mgz | ||
| transforms/talairach.m3z | ||||
| transforms/talairach.lta | mri_em_register -skull -t transforms/talairach.lta nu_noneck.mgz $FREESURFER_HOME/average/RB_all_withskull_2008-03-26.gca transforms/talairach_with_skull.lta | transforms/talairach_with_skull.lta | ||
| nu_noneck.mgz | ||||
| norm.mgz | mri_ca_label -align -nobigventricles norm.mgz transforms/talairach.m3z $FREESURFER_HOME/average/RB_all_2008-03-26.gca aseg.auto_noCCseg.mgz | aseg.auto_noCCseg.mgz | ||
| transforms/talairach.m3z | ||||
| aseg.auto_noCCseg.mgz | mri_cc -aseg aseg.auto_noCCseg.mgz -o aseg.auto.mgz <subjid> | aseg.auto.mgz | ||
| aseg.auto.mgz | cp aseg.auto.mgz aseg.mgz | aseg.mgz | ||
| brainmask.mgz | mri_normalize -aseg aseg.mgz -mask brainmask.mgz norm.mgz brain.mgz | brain.mgz | ||
| norm.mgz | ||||
| aseg.mgz | ||||
| brain.mgz | mri_mask -T 5 brain.mgz brainmask.mgz brain.finalsurfs.mgz | brain.finalsurfs.mgz | ||
| brainmask.mgz | ||||
| brain.mgz | mri_segment brain.mgz wm.seg.mgz | wm.seg.mgz | ||
| wm.seg.mgz | mri_edit_wm_with_aseg wm.seg.mgz brain.mgz aseg.mgz wm.asegedit.mgz | wm.asegedit.mgz | ||
| aseg.mgz | ||||
| brain.mgz | ||||
| wm.asegedit.mgz | mri_pretess wm.asegedit.mgz wm norm.mgz wm.mgz | wm.mgz | ||
| norm.mgz | ||||
| -fill | wm.mgz | mri_fill -a ../scripts/ponscc.cut.log -xform transforms/talairach.lta -segmentation aseg.auto_noCCseg.mgz wm.mgz filled.mgz | filled.mgz | |
| aseg.auto_noCCseg.mgz | ../scripts/ponscc.cut.log | |||
| transforms/talairach.lta | ||||
| filled.mgz | mri_pretess filled.mgz 255 norm.mgz filled-pretess255.mgz | filled-pretess255.mgz | ||
| norm.mgz | ||||
| filled-pretess255.mgz | mri_tessellate filled-pretess255.mgz 255 lh.orig.nofix | lh.orig.nofix | ||
| filled.mgz | mri_pretess filled.mgz 127 norm.mgz filled-pretess127.mgz | filled-pretess127.mgz | ||
| norm.mgz | ||||
| filled-pretess127.mgz | mri_tessellate filled-pretess127.mgz 127 rh.orig.nofix | rh.orig.nofix | ||
| ?h.orig.nofix | mris_extract_main_component ?h.orig.nofix ?h.orig.nofix | ?h.orig.nofix | ||
| 
 | rm -f filled-pretess255.mgz filled-pretess127.mgz | 
 | ||
| ?h.orig.nofix | mris_smooth -nw ?h.orig.nofix ?h.smoothwm.nofix | ?h.smoothwm.nofix | ||
| ?h.smoothwm.nofix | mris_inflate -no-save-sulc ?h.smoothwm.nofix ?h.inflated.nofix | ?h.inflated.nofix | ||
| ?h.inflated.nofix | mris_sphere -q ?h.inflated.nofix ?h.qsphere.nofix | ?h.qsphere.nofix | ||
| -fix | ?h.orig.nofix | cp ?h.orig.nofix ?h.orig | ?h.orig | |
| ?h.inflated.nofix | cp ?h.inflated.nofix ?h.inflated | ?h.inflated | ||
| ?h.qsphere.nofix | mris_fix_topology -mgz -sphere qsphere.nofix -ga <subjid> ?h | ?h.orig | ||
| ?h.orig | mris_euler_number ?h.orig | ?h.orig | ||
| ?h.orig | mris_remove_intersection ?h.orig ?h.orig | ?h.orig | ||
| 
 | rm ?h.inflated | 
 | ||
| -white | aseg.mgz, brain.finalsurfs.mgz, wm.mgz, filled.mgz | mris_make_surfaces -whiteonly -noaparc -mgz -T1 brain.finalsurfs <subjid> ?h | ?h.white | |
| ?h.orig | ||||
| ?h.curv | ||||
| ?h.area | ||||
| ?h.cortex.label | ||||
| ?h.white | mris_smooth -n 3 -nw ?h.white ?h.smoothwm | ?h.smoothwm | ||
| ?h.smoothwm | mris_inflate ?h.smoothwm ?h.inflated | ?h.inflated | ||
| ?h.sulc | ||||
| ?h.inflated | mris_curvature -thresh .999 -n -a 5 -w -distances 10 10 ?h.inflated | ?h.inflated.H | ||
| ?h.inflated.K | ||||
| 
 | 
 | 
 | 
 | 
 | 
| recon-all -autorecon3 -subjid <subjid> | ||||
| ?h.inflated,?h.smoothwm | mris_sphere ?h.inflated ?h.sphere | ?h.sphere | ||
| ?h.sphere | mris_register -curv ?h.sphere $FREESURFER_HOME/average/?h.average.curvature.filled.buckner40.tif ?h.sphere.reg | ?h.sphere.reg | ||
| ?h.white | mris_jacobian ?h.white ?h.sphere.reg ?h.jacobian_white | ?h.jacobian_white | ||
| ?h.sphere.reg | ||||
| ?h.sphere.reg | mrisp_paint -a 5 $FREESURFER_HOME/average/?h.average.curvature.filled.buckner40.tif#6 ?h.sphere.reg ?h.avg_curv | ?h.avg_curv | ||
| aseg.mgz, ?h.cortex.label | mris_ca_label -l ../label/lh.cortex.label -aseg mri/aseg.mgz <subjid> ?h ?h.sphere.reg $FREESURFER_HOME/average/?h.curvature.buckner40.filled.desikan_killiany.2007-06-20gcs ?h.aparc.annot | label/?h.aparc.annot | ||
| ?h.sphere.reg | ||||
| -pial | aseg.mgz, brain.finalsurfs.mgz, wm.mgz, filled.mgz | mris_make_surfaces -white NOWRITE -mgz -T1 brain.finalsurfs <subjid> ?h | ?h.pial | |
| ?h.orig, label/?h.aparc.annot | ||||
| ?h.curv.pial, ?h.area.pial | ||||
| ?h.thickness | ||||
| ?h.area | mris_calc -o ?h.area.mid ?h.area add ?h.area.pial | ?h.area.mid | ||
| ?h.area.pial | ||||
| ?h.area.mid | mris_calc -o ?h.area.mid ?h.area.mid div 2 | ?h.area.mid | ||
| ?h.area.mid | mris_calc -o ?h.volume ?h.area.mid mul ?h.thickness | ?h.volume | ||
| ?h.thickness | ||||
| label/?h.aparc.annot | mris_anatomical_stats -mgz -f stats/?h.aparc.stats -b -a label/?h.aparc.annot -c label/aparc.annot.ctab <subjid> ?h | stats/?h.aparc.stats label/aparc.annot.ctab | ||
| aseg.mgz, ?h.cortex.label | mris_ca_label -l ../label/lh.cortex.label -aseg aseg.mgz <subjid> ?h ?h.sphere.reg $FREESURFER_HOME/average/?h.destrieux.simple.2009-07-29.gcs label/?h.aparc.a2009s.annot | label/?h.aparc.a2009s.annot | ||
| ?h.sphere.reg | ||||
| label/?h.aparc.a2009s.annot | mris_anatomical_stats -mgz -f stats/?h.aparc.a2009s.stats -b -a label/?h.aparc.a2009s.annot -c label/aparc.annot.a2009s.ctab <subjid> ?h | stats/?h.aparc.a2009s.stats stats/aparc.annot.a2009s.ctab | ||
| aseg.mgz | mris_volmask --label_left_white 2 --label_left_ribbon 3 --label_right_white 41 --label_right_ribbon 42 --save_ribbon --save_distance <subjid> | ?h.ribbon.mgz, ribbon.mgz | ||
| ?h.white | ||||
| ?h.pial | ||||
| aseg.mgz | mri_segstats --seg mri/aseg.mgz --sum stats/aseg.stats --pv mri/norm.mgz --empty --excludeid 0 --excl-ctxgmwm --supratent --subcortgray --totalgray --in mri/norm.mgz --in-intensity-name norm --in-intensity-units MR --etiv --surf-wm-vol --surf-ctx-vol --ctab $FREESURFER_HOME/ASegStatsLUT.txt --subject <subjid> | stats/aseg.stats | ||
| aseg.mgz | mri_aparc2aseg --s <subjid> --ribbon | aparc+aseg.mgz | ||
| ?h.ribbon.mgz | ||||
| label/?h.aparc.annot | ||||
| aseg.mgz | mri_aparc2aseg --s <subjid> --ribbon --a2009s | aparc.a2009s+aseg.mgz | ||
| ?h.ribbon.mgz | ||||
| label/?h.aparc.a2009s.annot | ||||
| aparc+aseg.mgz | mri_aparc2aseg --s <subjid> --labelwm --hypo-as-wm --rip-unknown --ribbon --o mri/wmparc.mgz --ctxseg aparc+aseg.mgz | wmparc.mgz | ||
| wmparc.mgz | mri_segstats --seg mri/wmparc.mgz --sum stats/wmparc.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 <subjid> --surf-wm-vol --ctab $FREESURFER_HOME/FreeSurferColorLUT.txt | stats/wmparc.stats | ||
| ?h.sphere.reg | mri_label2label --srcsubject fsaverage --srclabel fsaverage/label/?h.BA*.label --trgsubject <subjid> --trglabel ?h.BA*.label --hemi ?h --regmethod surface | label/?h.BA*.label | ||
| -label-exvivo-ec | ?h.sphere.reg | mris_spherical_average -erode 1 -orig white -t 0.4 -o <subjid> label ?h.entorhinal ?h sphere.reg ?h.EC_average ?h.entorhinal_exvivo.label | label/?h.entorhinal_exvivo.label | |
| 
 | ||||
