mris_ca_train - Creates a cortical parcellation atlas file based on one or more annotated subjects. mris_ca_train builds probabilistic information estimated from a manually labeled training set (of annotated subjects). Note that an "annotation" is synonymous with a "parcellation", and is used for backwards compatibility. The manual labeling can be carried out directly on surface models using drawing tools in tksurfer, or volumetrically, then sampled onto the surfaces using mris_sample_parc. This information is then used by mris_ca_label to automatically assign a neuroanatomical label to each location on a cortical surface model. This procedure incorporates both geometric information derived from the cortical model (sulcus and curvature), and neuroanatomical convention, as found in the training set. The result of mris_ca_train and mris_ca_label is a complete labeling of cortical sulci and gyri.


mris_ca_train [options] <hemi> <canonsurf> <annotfile> <subject1> [subject2 ...] <outputfile>


Positional Arguments


-sdir, -nbrs, -orig, -norm1, -norm2, -norm3, -ic, -sulc, -sulconly, -a, -t, -v, -n, --help, --version


hemisphere: rh or lh


Name of canonical surface file to input from every subject, usually lh.sphere.reg or rh.sphere.reg


Name of per-subject annotation file to input from every subject, eg: lh.my_manual_labeling.annot

<subject1> [subject 2...]



classifier array output file, eg: ./lh.my_atlas.gcs

Required Positional Arguments

hemi canonsurf annotfile subject1 outputfile

Optional Flagged Arguments

-sdir <subject dir>

specify a subjects directory (default=$SUBJECTS_DIR)

-nbrs <number>

neighborhood size (default=2)

-orig <filename>

specify filename of original surface (default=smoothwm)


GCSA normalize input #1 after reading (default: disabled)


GCSA normalize input #2 after reading (default: disabled)


GCSA normalize input #3 after reading (default: disabled)

-ic <number_priors> <number_classifiers>

parameters passed to the classifier routine (default: -ic 7 4)


specify sulc as only input (default: sulcus and curvature)


same as -sulc

-a <number>

number of averages (default=5)

-t <filename>

specify parcellation table input file (default: none)

-v <number>

diagnostic level (default=0)

-n <number>

number of inputs (default=1)


print help info


print version info



classifier array output file, containing probabilistic information estimated from the manually labeled training set


mris_ca_train -n 2 \
    -t ./my_color_file.txt \
    lh \
    sphere.reg \
    my_manual_labeling \

In this example, mris_ca_train would look for an annotation file named lh.my_manual_labeling.annot in each of the subjects listed in $SUBJECTS label dir (e.g. $SUBJECTS_DIR/$s/label), and also assumes that a canonical surface file named lh.sphere.reg exists in the surf dir of each subject.

An annotation file is created in tksurfer. See wiki pages tksurfer_labeledit or TkSurferLabel. File->Label->Export Annotation is what exports all labels that have been assigned to a structure into the .annot file. To make assignments, open the 'Labels' window, via View->Windows->Labels, and assign each label to a structure and it's associated color. If you want to modify the set of available structures (and their colors), then you should create a new file in the same format as $FREESURFER_HOME/FreeSurferColorLUT.txt and select File->Lable->Load Color Table.

The -n 2 option tells it to use two feature dimensions for classification: curv and sulc (which is what is used by default).

The -t ./my_color_file.txt option will read in the file my_color_file.txt and embed it in the atlas, so that mris_ca_label will put it in the automatically generated .annot files, so that later, tksurfer (and other things) can read it in.

The format of the my_color_file.txt file consists of a set of lines like:

  0  unknown                         1   1   1   0
  1  oasis.chubs.ifc                25 100  40   0

The first line is a 'default' label, that must be named 'unknown', that must be included in the colortable when creating a .annot file when mris_label2annot was run. It will be the label for any vertex not labelled by one of the other labels. The second line in this colortable is an example of a valid label. The numbers are RGBA (red, green, blue, alphas) codes, where alpha is not used. Note that 'unknown' must have a non-zero color (ie cannot be 0 0 0 0).



See Also

mris_sample_parc, mris_ca_label, SurfaceRegAndTemplates


CorticalParcellation, FreeSurfer, FsFast


Automatically Parcellating the Human Cerebral Cortex, Fischl et al., (2004). Cerebral Cortex, 14:11-22.

Reporting Bugs

Report bugs to <>



mris_ca_train (last edited 2011-10-19 15:33:06 by NickSchmansky)