FreeSurfer Tutorial: Useful recon-all flags.

The following flags can be used in conjunction with individual steps or the entire process:

recon-all flag

Used with step

Input

Command Line

Output

Description

-autorecon-all

-all

-legacy

-clean-tal

-clean-seed

-clean-cp

-clean-bm

-clean-wm

-clean-aseg

-clean-wm

-clean-cpwm

-clean

-no-ca-align

-noaseg

-subcortseg

-gcareg

brainmask.mgz

["mri_em_register"] -mask brainmask.mgz nu.mgz $FREESURFER_HOME/average/RB40_talairach_2005-12-30.gca transforms/talairach.lta

transforms/talairach.lta

runs the subcortical segmentation and associated statistics

nu.mgz

-canorm

brainmask.mgz

["mri_ca_normalize"] -mask brainmask.mgz nu.mgz $FREESURFER_HOME/average/RB40_talairach_2005-12-30.gca transforms/talairach.lta norm.mgz

norm.mgz

nu.mgz

transforms/talairach.lta

-careg

brainmask.mgz

["mri_ca_register"] -align -mask brainmask.mgz -T transforms/talairach.lta norm.mgz $FREESURFER_HOME/average/RB40_talairach_2005-12-30.gca transforms/talairach.m3z

transforms/talairach.m3z

transforms/talairach.lta

norm.mgz

-rmneck

nu.mgz

["mri_remove_neck"] -radius 25 nu.mgz transforms/talairach.m3z $FREESURFER_HOME/average/RB40_talairach_2005-12-30.gca nu_noneck.mgz

nu_noneck.mgz

transforms/talairach.m3z

-skull-lta

transforms/talairach.lta

["mri_em_register"] -skull -t transforms/talairach.lta nu_noneck.mgz $FREESURFER_HOME/average/RB40_talairach_with_skull_2005-12-30.gca transforms/talairach_with_skull.lta

transforms/talairach_with_skull.lta

nu_noneck.mgz

-calabel

norm.mgz

["mri_ca_label"] -align norm.mgz transforms/talairach.m3z $FREESURFER_HOME/average/RB40_talairach_2005-12-30.gca aseg.auto.mgz

aseg.auto.mgz

transforms/talairach.m3z

aseg.auto.mgz

cp aseg.auto.mgz aseg.mgz

aseg.mgz

-segstats

aseg.mgz

["mri_segstats"] --seg mri/aseg.mgz --sum stats/aseg.stats --pv mri/norm.mgz --in mri/norm.mgz --ctab-default --excludeid 0 --brain-vol-from-seg --brainmask mri/brainmask.mgz --in-intensity-name orig --in-intensity-units MR --etiv --subject <subjid>

stats/aseg.stats

-cc-xyz <X Y Z>

-fill

wm.mgz

["mri_fill"] -a ../scripts/ponscc.cut.log -C X Y Z -xform transforms/talairach.xfm wm.mgz filled.mgz

filled.mgz

manually sets the corpus callosum seed point

-pons-xyz <X Y Z>

-fill

wm.mgz

["mri_fill"] -a ../scripts/ponscc.cut.log -P X Y Z -xform transforms/talairach.xfm wm.mgz filled.mgz

filled.mgz

manually sets the pons seed point

-rh-xyz <X Y Z>

-fill

wm.mgz

["mri_fill"] -a ../scripts/ponscc.cut.log -rh X Y Z -xform transforms/talairach.xfm wm.mgz filled.mgz

filled.mgz

manually sets the right hemisphere seed point

-lh-xyz <X Y Z>

-fill

wm.mgz

["mri_fill"] -a ../scripts/ponscc.cut.log -lh X Y Z -xform transforms/talairach.xfm wm.mgz filled.mgz

filled.mgz

manually sets the left hemisphere seed point

-old-atlas

-gcareg

brain.mgz

["mri_em_register"] -mask brain.mgz -p .5 -fsamples fsamples.mgz nu.mgz $FREESURFER_HOME/average/talairach_mixed.gca transforms/talairach.lta

transforms/talairach.lta

Use this flag in conjunction with other steps of recon-all and it will default to the old set of atlases. Uses talairach_mixed.gca for the subcortical segmentation, ?h.average.tif for the surface morph, and ?h.atlas2002_simple.gcs for the cortical parcellations.

nu.mgz

-canorm

brain.mgz

["mri_ca_normalize"] -mask brain.mgz nu.mgz $FREESURFER_HOME/average/talairach_mixed.gca transforms/talairach.lta norm.mgz

norm.mgz

nu.mgz

transforms/talairach.lta

-careg

brain.mgz

["mri_ca_register"] -cross-sequence -mask brain.mgz -T transforms/talairach.lta norm.mgz $FREESURFER_HOME/average/talairach_mixed.gca transforms/talairach.m3z

transforms/talairach.m3z

transforms/talairach.lta

norm.mgz

-calabel

norm.mgz

["mri_ca_label"] -cross-sequence norm.mgz transforms/talairach.m3z $FREESURFER_HOME/average/talairach_mixed.gca aseg.mgz

aseg.mgz

transforms/talairach.m3z

-surfreg

?h.sphere

["mris_register"] -w 0 -curv ?h.sphere $FREESURFER_HOME/average?h.average.tif ?h.sphere.reg

?h.sphere.reg

-contrasurfreg

rh.sphere

["mris_register"] -w 0 -curv -reverse rh.sphere $FREESURFER_HOME/average?h.average.tif rh.lh.sphere.reg

rh.lh.sphere.reg

lh.sphere

["mris_register"] -w 0 -curv -reverse lh.sphere $FREESURFER_HOME/average?h.average.tif lh.rh.sphere.reg

lh.rh.sphere.reg

-avgcurv

?h.sphere.reg

["mrisp_paint"] -a 5 $FREESURFER_HOME/average?h.average.tif ?h.sphere.reg ?h.avg_curv

?h.avg_curv

-cortparc

?h.sphere.reg

["mris_ca_label"] -t $CPAnnotTable subj ?h sphere.reg $FREESURFER_HOME/average/?h.atlas2002_simple.gcs ?h.aparc.annot

label/?h.aparc.annot

-deface

orig.mgz

mri_deface orig.mgz $FREESURFER_HOME/average/talairach_mixed_with_skull.gca $FREESURFER_HOME/average/face.gca orig_defaced.mgz

orig_defaced.mgz

removes the face from the orig volume to anonymize it.

The following flags can be used after certain manual intervention to regenerate accurate volumes and surfaces:

recon-all step

Individual Flag

Input

Command Line

Output

["recon-all"] -autorecon2-cp -subjid subj (use this after setting control points. This flag will preserve your wm.mgz edits and remake all necessary volumes and surfaces)

-normalization2

brain.mgz

["mri_normalize"] -f $SUBJECTS_DIR/subjid/tmp/control.dat -mask brain.mgz nu.mgz T1.mgz

T1.mgz

nu.mgz

T1.mgz

["mri_mask"] T1.mgz brain.mgz brain.mgz

brain.mgz

brain.mgz

-segmentation

brain.mgz

["mri_segment"] -keep brain.mgz wm.mgz

wm.mgz

-edit_wm_with_aseg

wm.mgz

["mri_edit_wm_with_aseg"] wm.mgz aseg.mgz wm.mgz

wm.mgz

aseg.mgz

-fill

wm.mgz

["mri_fill"] -a ../scripts/ponscc.cut.log -xform transforms/talairach.xfm -segmentation aseg.mgz wm.mgz filled.mgz

filled.mgz

aseg.mgz

../scripts/ponscc.cut.log

-tessellate

filled.mgz

["mri_tessellate"] filled.mgz 255 ../surf/lh.orig

lh.orig

["mri_tessellate"] filled.mgz 128 ../surf/rh.orig

rh.orig

-smooth1

?h.orig

["mris_smooth"] ?h.orig ?h.smoothwm

?h.smoothwm

-inflate1

?h.smoothwm

["mris_inflate"] ?h.smoothwm ?h.inflated

?h.inflated

-qsphere

?h.inflated

["mris_sphere"] -w 0 -inflate -in 200 -q ?h.inflated ?h.qsphere

?h.qsphere

-fix

?h.qsphere

["mris_fix_topology"] subj ?h

?h.orig

-euler

?h.orig

["mris_euler_number"] ?h.orig

?h.orig.euler

-smooth2

?h.orig

["mris_smooth"] ?h.orig ?h.smoothwm

?h.smoothwm

-inflate2

?h.smoothwm

["mris_inflate"] ?h.smoothwm ?h.inflated

?h.inflated

-finalsurfs

brain.mgz

["mris_make_surfaces"] -w 0 subj ?h

?h.white

?h.orig

?h.pial

?h.thickness

-cortribbon

orig.mgz

["mri_surf2vol"] --mkmask --hemi ?h --fillribbon --template orig.mgz --volregidentity subj --outvol ?h.ribbon.mgz

?h.ribbon.mgz

?h.white

?h.pial

recon-all step

Individual Flag

Input

Command Line

Output

["recon-all"] -autorecon2-wm -subjid subj (use this after doing manual wm edits. This flag will regenerate all necessary volumes and surfaces)

-fill

wm.mgz

["mri_fill"] -a ../scripts/ponscc.cut.log -xform transforms/talairach.xfm -segmentation aseg.mgz wm.mgz filled.mgz

filled.mgz

aseg.mgz

../scripts/ponscc.cut.log

-tessellate

filled.mgz

["mri_tessellate"] filled.mgz 255 ../surf/lh.orig

lh.orig

["mri_tessellate"] filled.mgz 128 ../surf/rh.orig

rh.orig

-smooth1

?h.orig

["mris_smooth"] ?h.orig ?h.smoothwm

?h.smoothwm

-inflate1

?h.smoothwm

["mris_inflate"] ?h.smoothwm ?h.inflated

?h.inflated

-qsphere

?h.inflated

["mris_sphere"] -w 0 -inflate -in 200 -q ?h.inflated ?h.qsphere

?h.qsphere

-fix

?h.qsphere

["mris_fix_topology"] subj ?h

?h.orig

-euler

?h.orig

["mris_euler_number"] ?h.orig

?h.orig.euler

-smooth2

?h.orig

["mris_smooth"] ?h.orig ?h.smoothwm

?h.smoothwm

-inflate2

?h.smoothwm

["mris_inflate"] ?h.smoothwm ?h.inflated

?h.inflated

-finalsurfs

brain.mgz

["mris_make_surfaces"] -w 0 subj ?h

?h.white

?h.orig

?h.pial

?h.thickness

-cortribbon

orig.mgz

["mri_surf2vol"] --mkmask --hemi ?h --fillribbon --template orig.mgz --volregidentity subj --outvol ?h.ribbon.mgz

?h.ribbon.mgz

?h.white

?h.pial

recon-all step

Individual Flag

Input

Command Line

Output

["recon-all"] -autorecon2-pial -subjid subj (use this after editing brain.mgz to alter pial surface. This flag will regenerate all final surfaces)

-finalsurfs

brain.mgz

["mris_make_surfaces"] -w 0 subj ?h

?h.white

?h.orig

?h.pial

?h.thickness

-cortribbon

orig.mgz

["mri_surf2vol"] --mkmask --hemi ?h --fillribbon --template orig.mgz --volregidentity subj --outvol ?h.ribbon.mgz

?h.ribbon.mgz

?h.white

?h.pial