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 |
either of these flags will work to run the entire recon-all process. |
||||
-all |
|||||
-legacy |
use this flag on data that was previously processed with a different version of freesurfer. Use this flag THE FIRST TIME only. It will automatically keep all your prior edits (talairach, control points, white matter etc). |
||||
-clean-tal |
trashes any manual edits to the talairach, makes talairach.xfm and talairach.auto.xfm the same and runs using the automatically generated talairach.xfm |
||||
-clean-seed |
trashes all saved seed point for the cutting planes and uses the automatically set cutting planes. |
||||
-clean-cp |
trashes control points and runs the normalization without control points. |
||||
-clean-bm |
trashes any manual edits to the brainmask.mgz volume, makes brainmask.mgz and brainmask.auto.mgz the same and runs using the automatically generated brainmask.mgz |
||||
-clean-wm |
trashes any manual edits to the wm.mgz volume and runs using the automatically generated wm.mgz. |
||||
-clean-aseg |
trashes any manual edits to the aseg.mgz and runs using the automatically generated aseg.mgz |
||||
-clean-cpwm |
combination of -clean-cp and -clean-wm. |
||||
-clean |
use this flag to clear all of your manual edits and run it completely fresh. |
||||
-noaseg |
use this flag on subjects that either can not use an aseg (i.e., baby brains or non-human primates) or those that you will never want an aseg for. It skips the subcortical segmentation and will not try and use it in any of the subsequent steps. |
||||
-no-ca-align |
-careg |
brainmask.mgz |
["mri_ca_register"] -mask brainmask.mgz -T transforms/talairach.lta norm.mgz $FREESURFER_HOME/average/RB40_talairach_2005-12-30.gca transforms/talairach.m3z |
transforms/talairach.m3z |
description |
transforms/talairach.lta |
|||||
norm.mgz |
|||||
-calabel |
norm.mgz |
["mri_ca_label"] 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 |
|||
-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 |
