FreeSurfer Tutorial: Process Flow
This table shows the recon-all steps for stable version 5.3 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  | 
  mri_nu_correct.mni --n 1 --proto-iters 1000 --distance 50 --no-rescale --i orig.mgz --o orig_nu.mgz  | 
  orig_nu.mgz  | 
||
orig_nu.mgz  | 
  talairach_avi --i orig_nu.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 -uns 3 -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 -c ctrl_pts.mgz -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 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 -keep-in 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.2010-03-25.gcs ?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  | 
||||
rawavg.mgz  | 
  pctsurfcon --s <subjid> -?h-only  | 
  ?h.w-c.pct.mgz  | 
||
label/?h.aparc.annot  | 
  mris_anatomical_stats -mgz -cortex label/?h.cortex.label -f stats/?h.aparc.stats -b -a label/?h.aparc.annot -c label/aparc.annot.ctab <subjid> ?h white  | 
  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 -cortex label/?h.cortex.label -f stats/?h.aparc.a2009s.stats -b -a label/?h.aparc.a2009s.annot -c label/aparc.annot.a2009s.ctab <subjid> ?h white  | 
  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  | 
|
  | 
||||
