FreeSurfer Tutorial: Process Flow

This table shows the recon-all steps for the current dev version of FreeSurfer (available here). It does not document the stable, publicly released, version of Freesurfer (v6.0). See ReconAllTableStableV6.0 to see a process flow for the latest stable version 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>

invol1.dcm or .nii or .mgz

mri_convert invol1.dcm orig/001.mgz

orig/001.mgz

-i <invol2> optional

invol2.dcm or .nii or .mgz

mri_convert invol2.dcm orig/002.mgz

orig/002.mgz

-T2 <invol> or
-FLAIR <invol> optional

invol.dcm or .nii or .mgz

mri_convert --no_scale 1 invol.dcm orig/T2raw.mgz

orig/T2raw.mgz

-motioncor

orig/001.mgz

mri_robust_template --mov 001.mgz 002.mgz --average 1 --template rawavg.mgz --satit --inittp 1 --fixtp --noit --iscale --iscaleout --subsample 200 --lta

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

-talairach

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

awk -f $FREESURFER_HOME/bin/extract_talairach_avi_QA.awk transforms/talairach_avi.log

transforms/talairach_avi.log

-nuintensitycor

orig.mgz

mri_nu_correct.mni --i orig.mgz --o nu.mgz --uchar transforms/talairach.xfm --n 2

nu.mgz

talairach.xfm

-normalization

nu.mgz

mri_normalize -g 1 -mprage nu.mgz T1.mgz

T1.mgz

-skullstrip

nu.mgz

mri_em_register -skull nu.mgz $FREESURFER_HOME/average/RB_all_withskull_2016-05-10.vc700.gca transforms/talairach_with_skull.lta

transforms/talairach_with_skull.lta

T1.mgz

mri_watershed -T1 -brain_atlas $FREESURFER_HOME/average/RB_all_withskull_2016-05-10.vc700.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 step

Individual Flag

Input

Command Line

Output

recon-all -autorecon2 -subjid <subjid>

-gcareg

brainmask.mgz

mri_em_register -uns 3 -mask brainmask.mgz nu.mgz $FREESURFER_HOME/average/RB_all_2016-05-10.vc700.gca transforms/talairach.lta

transforms/talairach.lta

nu.mgz

-canorm

brainmask.mgz

mri_ca_normalize -c ctrl_pts.mgz -mask brainmask.mgz nu.mgz $FREESURFER_HOME/average/RB_all_2016-05-10.vc700.gca transforms/talairach.lta norm.mgz

norm.mgz

nu.mgz

transforms/talairach.lta

-careg

brainmask.mgz

mri_ca_register -align-after -nobigventricles -mask brainmask.mgz -T transforms/talairach.lta norm.mgz $FREESURFER_HOME/average/RB_all_2016-05-10.vc700.gca transforms/talairach.m3z

transforms/talairach.m3z

transforms/talairach.lta

norm.mgz

-calabel

norm.mgz

mri_ca_label -relabel_unlikely 9 .3 -prior 0.5 -align norm.mgz transforms/talairach.m3z $FREESURFER_HOME/average/RB_all_2016-05-10.vc700.gca aseg.auto_noCCseg.mgz

aseg.auto_noCCseg.mgz

transforms/talairach.m3z

aseg.auto_noCCseg.mgz

mri_cc -lta <subjid>/mri/transforms/cc_up.lta -aseg aseg.auto_noCCseg.mgz -o aseg.auto.mgz <subjid>

aseg.auto.mgz

aseg.auto.mgz

cp aseg.auto.mgz aseg.presurf.mgz

aseg.presurf.mgz

-normalization2

brainmask.mgz

mri_normalize -mprage -aseg aseg.presurf.mgz -mask brainmask.mgz norm.mgz brain.mgz

brain.mgz

norm.mgz

aseg.presurf.mgz

-maskbfs

brain.mgz

mri_mask -T 5 brain.mgz brainmask.mgz brain.finalsurfs.mgz

brain.finalsurfs.mgz

brainmask.mgz

-segmentation

brain.mgz

mri_segment -mprage brain.mgz wm.seg.mgz

wm.seg.mgz

wm.seg.mgz

mri_edit_wm_with_aseg wm.seg.mgz brain.mgz aseg.presurf.mgz wm.asegedit.mgz

wm.asegedit.mgz

aseg.presurf.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

-tessellate

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

-smooth1

?h.orig.nofix

mris_smooth -nw ?h.orig.nofix ?h.smoothwm.nofix

?h.smoothwm.nofix

-inflate1

?h.smoothwm.nofix

mris_inflate -no-save-sulc ?h.smoothwm.nofix ?h.inflated.nofix

?h.inflated.nofix

-qsphere

?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.presurf.mgz

mris_make_surfaces -aseg ../mri/aseg.presurf -whiteonly -noaparc -mgz -T1 brain.finalsurfs <subjid> ?h

?h.white

brain.finalsurfs.mgz

wm.mgz

filled.mgz

?h.orig

?h.curv

?h.area

?h.cortex.label

-smooth2

?h.white

mris_smooth -n 3 -nw ?h.white ?h.smoothwm

?h.smoothwm

-inflate2

?h.smoothwm

mris_inflate ?h.smoothwm ?h.inflated

?h.inflated

?h.sulc

-curvHK

?h.white

mris_curvature -w ?h.white

?h.white.H

?h.white.K

?h.inflated

mris_curvature -thresh .999 -n -a 5 -w -distances 10 10 ?h.inflated

?h.inflated.H

?h.inflated.K

-curvstats

?h.smoothwm

mris_curvature_stats -m --writeCurvatureFiles -G -o ../stats/?h.curv.stats -F smoothwm <subjid> ?h curv sulc

stats/?h.curv.stats

?h.curv

?h.sulc

recon-all step

Individual Flag

Input

Command Line

Output

recon-all -autorecon3 -subjid <subjid>

-sphere

?h.inflated

mris_sphere ?h.inflated ?h.sphere

?h.sphere

?h.smoothwm

-surfreg

?h.sphere

mris_register -curv ?h.sphere $FREESURFER_HOME/average/?h.average.curvature.filled.buckner40.tif ?h.sphere.reg

?h.sphere.reg

-jacobian_white

?h.white

mris_jacobian ?h.white ?h.sphere.reg ?h.jacobian_white

?h.jacobian_white

?h.sphere.reg

-avgcurv

?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

-cortparc

aseg.presurf.mgz

mris_ca_label -l ../label/lh.cortex.label -aseg mri/aseg.presurf.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.cortex.label

?h.sphere.reg

-pial

aseg.presurf.mgz

mris_make_surfaces -orig_white white -orig_pial white -aseg ../mri/aseg.presurf -nowhite -mgz -T1 brain.finalsurfs <subjid> ?h

?h.pial

brain.finalsurfs.mgz

wm.mgz

filled.mgz

?h.orig

?h.curv.pial

?h.area.pial

label/?h.aparc.annot

?h.thickness

-T2pial or
-FLAIRpial optional

orig/T2raw.mgz

bbregister --s <subjid> --mov mri/orig/T2raw.mgz --lta mri/transforms/T2raw.lta --init-fsl --T2

transforms/T2raw.lta

orig/T2raw.mgz

mri_convert -odt short -at mri/transforms/T2raw.lta -rt cubic -ns 1 -rl mri/orig.mgz mri/orig/T2raw.mgz mri/T2.prenorm.mgz

T2.prenorm.mgz

transforms/T2raw.lta

aseg.presurf.mgz

mri_normalize -sigma 0.5 -nonmax_suppress 0 -min_dist 1 -aseg mri/aseg.presurf.mgz -surface surf/rh.white identity.nofile -surface surf/lh.white identity.nofile mri/T2.prenorm.mgz mri/T2.mgz

T2.mgz

?h.white

T2.prenorm.mgz

?h.pial

cp -v surf/?h.pial surf/?h.woT2.pial

?h.woT2.pial

aseg.presurf.mgz

mris_make_surfaces -orig_white white -orig_pial woT2.pial -aseg ../mri/aseg.presurf -nowhite -mgz -T1 brain.finalsurfs -T2 ../mri/T2 -nsigma_above 2 -nsigma_below 5 <subjid> ?h

?h.pial

brain.finalsurfs.mgz

wm.mgz

filled.mgz

?h.curv.pial

?h.white

label/?h.aparc.annot

?h.area.pial

T2.mgz

?h.thickness

?h.woT2.pial

-cortribbon

aseg.presurf.mgz

mris_volmask --label_left_white 2 --label_left_ribbon 3 --label_right_white 41 --label_right_ribbon 42 --save_ribbon <subjid>

?h.ribbon.mgz

?h.white

?h.pial

ribbon.mgz

-parcstats

label/?h.aparc.annot

mris_anatomical_stats -th3 -mgz -cortex ../label/?h.cortex.label -f stats/?h.aparc.stats -b -a label/?h.aparc.annot -c label/aparc.annot.ctab <subjid> ?h

stats/?h.aparc.stats

wm.mgz, ribbon.mgz

label/aparc.annot.ctab

?h.white

?h.pial

?h.thickness

-cortparc2

aseg.presurf.mgz

mris_ca_label -l ../label/lh.cortex.label -aseg aseg.presurf.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.cortex.label

-parcstats2

label/?h.aparc.a2009s.annot

mris_anatomical_stats -th3 -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

stats/?h.aparc.a2009s.stats

wm.mgz, ribbon.mgz

label/aparc.annot.a2009s.ctab

?h.white

?h.pial

?h.thickness

-cortparc3

aseg.presurf.mgz

mris_ca_label ../label/lh.cortex.label -aseg aseg.presurf.mgz <subjid> ?h ?h.sphere.reg $FREESURFER_HOME/average/?h.DKTatlas.2016-03-20.gcs ../label/?h.aparc.DKTatlas.annot

label/?h.aparc.DKTatlas.annot

?h.sphere.reg

label/?h.cortex.label

-parcstats3

label/?h.aparc.DKTatlas.annot

mris_anatomical_stats -th3 -mgz -cortex ../label/?h.cortex.label -f stats/?h.aparc.DKTatlas.stats -b -a label/?h.aparc.DKTatlas.annot -c label/aparc.annot.DKTatlas.ctab <subjid> ?h

stats/?h.aparc.DKTatlas.stats

wm.mgz, ribbon.mgz

label/aparc.annot.DKTatlas.ctab

?h.white

?h.pial

?h.thickness

-pctsurfcon

rawavg.mgz

pctsurfcon --s <subjid> --?h-only

?h.w-g.pct.mgh

orig.mgz

?h.cortex.label

stats/?h.w-g.pct.stats

?h.white

-hyporelabel

aseg.presurf.mgz

mri_relabel_hypointensities aseg.presurf.mgz ../surf aseg.presurf.hypos.mgz

aseg.presurf.hypos.mgz

?h.white

-aparc2aseg

aseg.presurf.hypos.mgz

mri_aparc2aseg --s <subjid> --ribbon

aparc+aseg.mgz

?h.ribbon.mgz

label/?h.aparc.annot

ribbon.mgz

aseg.presurf.hypos.mgz

mri_aparc2aseg --s <subjid> --ribbon --annot aparc.a2009s

aparc.a2009s+aseg.mgz

?h.ribbon.mgz

label/?h.aparc.a2009s.annot

ribbon.mgz

aseg.presurf.hypos.mgz

mri_aparc2aseg --s <subjid> --ribbon --annot aparc.DKTatlas

aparc.DKTatlas+aseg.mgz

?h.ribbon.mgz

label/?h.aparc.DKTatlas.annot

ribbon.mgz

-apas2aseg

aparc+aseg.mgz

apas2aseg --i aparc+aseg.mgz --o aseg.mgz

aseg.mgz

-segstats

brainmask.mgz, norm.mgz, aseg.mgz, aseg.presurf.mgz, ribbon.mgz

mri_segstats --seg mri/aseg.mgz --sum stats/aseg.stats --pv mri/norm.mgz --empty --brainmask mri/brainmask.mgz --brain-vol-from-seg --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 --totalgray --euler --ctab $FREESURFER_HOME/ASegStatsLUT.txt --subject <subjid>

stats/aseg.stats

?h.orig.nofix, ?h.white, ?h.pial

-wmparc

aparc+aseg.mgz

mri_aparc2aseg --s <subjid> --labelwm --hypo-as-wm --rip-unknown --ribbon --o mri/wmparc.mgz --ctxseg aparc+aseg.mgz

wmparc.mgz

talairach.xfm, brainmask.mgz, norm.mgz, ribbon.mgz, wmparc.mgz, aseg.presurf.mgz, ?h.white, ?h.pial

mri_segstats --seg mri/wmparc.mgz --sum stats/wmparc.stats --pv mri/norm.mgz --excludeid 0 --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

-balabels

?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*_exvivo.label label/?h.perirhinal_exvivo.label label/?h.entorhinal_exvivo.label

ReconAllDevTable (last edited 2017-02-17 11:53:55 by LeeTirrell)