FreeSurfer Tutorial: Useful recon-all flags.

This page extends ReconAllDevTable. The following flags can be used in conjunction with individual steps or the entire process:

-autorecon-all

either of these flags will work to run the entire recon-all process.

-all

-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-xopts

delete pre-existing expert options file

-clean-cw256

-clean-lta

moves *.lta files to trash

-clean-pfh

trashes preflood height volumes (skullstrip)

-clean-bfse

trashes edits to brain.finalsurfs.manedit.mgz

-clean

use this flag to clear all of your manual edits and run it completely fresh.

-deface

removes the face from the orig volume to anonymize it.

-dontrun

useful for debugging. just prints the commands that will run (does not execute them).

-gcut

use this flag when skull strip leaves a little bit of dura behind. In this case, adjusting the watershed parameters won't be as useful and manual edits will take too long.
INFO: Care must be taken to thoroughly inspect your data when using -gcut. In particular, inpsect the edges of gm and cerebellum for over-aggressive cutting. Add -segmentation brainmask.gcuts.mgz to tkmedit to view the voxels which gcut has removed.

-mprage

changes some of the assumptions about CNR and SNR, and will use a higher threshold to allow the control points to grow more liberally than in general.

-3T

Enables the two 3T specific options that recon-all supports: nu intensity correction params, and the special schwartz atlas

-multistrip

use this flag on a subject when you would like to get skullstrip results using several different watershed preflood heights simultaneously. Output will be nu, orig, and T1 volumes stripped at these heights: 5, 10, 20, 30. You can change which preflood heights are used by setting this variable first: setenv WATERSHED_PREFLOOD_HEIGHTS '20 30 40 50'. Be sure to use -clean-bm with this flag.

-noaseg

use this flag on subjects that either cannot use an aseg (i.e., baby brains or non-human primates) or for those for which you will never want an aseg. It skips the subcortical segmentation and will not try and use it (aseg.mgz) in any of the subsequent steps.

-norandomness

use this flag on a subject when it is necessary to ensure that results are exactly the same from run to run. it seeds the random number generator used by some algorithms with the same number, removing any variability.

-notal-check

use this flag when running a subject after receiving an error about Tailarach Failure Detection and the tailarach transform looks fine after checking it with this command line: tkregister2 --mgz --s <subjid> --fstal

-no-wsgcaatlas

use this flag when you have reason to believe that certain anatomy could be an outlier, and is responsible for causing the skullstripping step to fail or produce poor skullstripping (wsgcaatlas = with skull gaussian classifier array atlas)

-time

this flag can be added to report the time each step takes

-canorm-usecps

This flag uses control points to change the aseg. This can be particularly useful when you have an overlabeled putamen (the strategy would be to put the control points in white matter surrounding the putamen. It is advised to do these types of edits first before using control points to edit the surfaces (the default use of control points).

-vno_match_check

Confirms that the surface data is out of sync in case an error indicates that there is a size mismatch. Then run from whatever stage that is out of sync.

recon-all flag

Used with step

Description

-no-ca-align

-careg

this flag should be used if the data to be processed comes from the same scanner platform and pulse sequence as the atlas. With the FreeSurfer RB40 atlas this means MPRAGE on a 1.5T Siemens scanner.

-calabel

-subcortseg

-gcareg

runs the subcortical segmentation and associated statistics

-canorm

-careg

-rmneck

-skull-lta

-calabel

-segstats

-cc-crs <c r s>

-fill

manually sets the corpus callosum seed point

-pons-crs <c r s>

-fill

manually sets the pons seed point

-rh-crs <c r s>

-fill

manually sets the right hemisphere seed point

-lh-crs <c r s>

-fill

manually sets the left hemisphere seed point

-jacobian_dist0

Computes how much an individual surface must be distorted in order to perfectly match the atlas (ie, distance contraints are turned off).

The following flags can be used after certain manual intervention to regenerate accurate volumes and surfaces (if a data set has or needs spherical morphing, add the -autorecon3 flag):

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)

-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 -autorecon2-noaseg -subjid subj (use this after doing aseg edits. This flag will regenerate all necessary volumes and surfaces)

-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 -autorecon-pial -subjid subj (use this after editing brainmask.mgz or brain.finalsurfs.mgz to alter pial surface. This flag will regenerate all final surfaces)
**note** this flag includes all the steps in -autorecon3 therefore it is not necessary to pass the -autorecon3 flag after this

-maskbfs

brain.mgz

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

brain.finalsurfs.mgz

brainmask.mgz

-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

-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

-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

recon-all step

Individual Flag

Input

Command Line

Output

recon-all -autorecon2-perhemi -subjid subj (use this to run only the steps that are run per-hemisphere, in conjunction with the '-hemi' flag. This is useful if one hemisphere failed and you need to run them separately)

-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

OtherUsefulFlags (last edited 2017-04-25 13:53:01 by AndrewHoopes)