The current version of FAST replaces both FAST v4.0 and FAST v3; it is the only version of FAST in FSL. Hence, for example, SIENA has now been changed from using FAST3 to FAST4. The v3 multi-channel segmentation program mfast has also been removed; this functionality is now an option within the main fast program. See the conversion table below to see how fast4 and fast3 options are related.

Research Overview

FAST (FMRIB's Automated Segmentation Tool) segments a 3D image of the brain into different tissue types (Grey Matter, White Matter, CSF, etc.), whilst also correcting for spatial intensity variations (also known as bias field or RF inhomogeneities). The underlying method is based on a hidden Markov random field model and an associated Expectation-Maximization algorithm. The whole process is fully automated and can also produce a bias field-corrected input image and a probabilistic and/or partial volume tissue segmentation. It is robust and reliable, compared to most finite mixture model-based methods, which are sensitive to noise.

If you use FAST in your research, please quote the article:

  • Zhang, Y. and Brady, M. and Smith, S. Segmentation of brain MR images through a hidden Markov random field model and the expectation-maximization algorithm. IEEE Trans Med Imag, 20(1):45-57, 2001.

Software Overview

The different FAST programs are:

Fast - FAST GUI fast - command-line program PREPROCESSING

Before running FAST an image of a head should first be brain-extracted, using BET. The resulting brain-only image can then be fed into FAST.

Fast GUI


If there is only one input image (i.e., you are not carrying out multi-channel segmentation) then leave the Number of input channels at 1. Otherwise, set appropriately.

Now select the Input image(s).

Now set the Image type. This aids the segmentation in identifying which classes are which tissue type. Note that this option is not used for multi-channel segmentation.

Now select the Output image(s) basename. Output images will have filenames derived from this basename. For example, the main ouput, the Binary segmentation: All classes in one image will have filename <basename>_seg. If multi-channel segmentation is carried out, some of the optional outputs will have basenames derived instead from the input names (but into the directory of the outputbasename). For example, the main segmentation output will be as described above, but the restored images (one for each input image) will be named according to the input images.

Now choose the Number of classes to be segmented. Normally you will want 3 (Grey Matter, White Matter and CSF). However, if there is very poor grey/white contrast you may want to reduce this to 2; alternatively, if there are strong lesions showing up as a fourth class, you may want to increase this. Also, if you are segmenting T2-weighted images, you may need to select 4 classes so that dark non-brain matter is processed correctly (this is not a problem with T1-weighted as CSF and dark non-brain matter look similar).

The various output images are:

Advanced Options

Bias field iterations determines the number of passes made during the initial bias field estimation stage. A greater number of iterations can help esitmate particularly strong bias fields.

Bias field smoothing controls the amount of smoothness expected in the estimated bias field. The value entered is the Full-Width Half-Maximum (FWHM) in mm. A larger value here will impose more smoothness on the estimated bias field.

Use a-priori probability maps tells FAST to start by registering the input image to standard space and then use standard tissue-type probability maps (from the MNI152 dataset) instead of the initial K-means segmentation, in order to estimate the initial parameters of the classes. This can help in cases where there is very bad bias field. By default the a-priori probability maps are only used to initialise the segmentation; however, you can also optionally tell FAST to use these priors in the final segmentation - this can help, for example, with the segmentation of deep grey structures.

Use file of initial tissue-type means tells FAST to use a text file with mean intensity values (separated by newlines) for the starting mean values of the different classes to be segmented. This is then used instead of the automated K-means starting parameter estimation.


Type fast to get usage. This is used for both single-channel and multi-channel segmentation program. fast [options] file(s)

Main inputs/options:


image, or multi-channel set of images, to be segmented

-S <n> or --channels=<n>

number of image channels

-t <n> or --type=<n>

type of image (n=1 for T1, n=2 for T2, n=3 for PD)

-o <base> or --out=<base>

basename for outputs

-n <n> or --class=<n>

number of tissue-type classes


output estimated bias field


output restored image (bias-corrected image)

Advanced options:

-H <v> or --Hyper=<v>

MRF beta value for main segmentation phase (increasing this gives spatially smoother segmentations)

-R <v> or --mixel=<v>

MRF beta value for mixeltype (increasing this gives spatially smoother mixeltypes and hence PVEs - NB: mixeltype is the classification of what tissue-types are non-zero in a voxel)


use prior probability maps for initialisation (must specify FLIRT transform to standard space)

-P <file> or --Prior

use prior probability maps at all segmentation stages

-s <file> or --manualseg=<file>

file specifying initial tissue-type means

Tissue Volume Quantification

Estimating the tissue volume for a given class can be done using FAST and we recommend using the partial volume estimates for the most accurate quantification. The actual volume of tissue can be calculated easily from the corresponding partial volume map by summing up all the values. This can be done using fslstats and then multiplying the mean value by the volume (in voxels).

For example, for an image called structural_bet that fast was run on, the tissue volume of tissue class 1 can be found by running the following:

This prints the total tissue volume in voxels (which is also stored in the variable tissuevol). Note that to get the volume in mm3 just replace the {print $1} with {print $2} in the first line above. Alternatively, this can be done in the single line:

Conversion table for fast3 and fast4 options

The following table gives equivalent options for fast3 (and mfast) and fast4:





-t <n> or --type=<n>

Type of image (e.g. T1, T2, PD) - Note space in fast4 version e.g. t 2 not t2

-c <n>

-n <n> or --class=<n>

Number of tissue-type classes to estimate

-od <base>

-o <base> or --out=<base>

Basename for all output files


-g or --segments

Output separate image for each (hard) segmentation class



Output one probability map (of hard seg) per class



Output bias corrected (restored) image

no equivalent


Output estimated bias field


no equivalent

Output bias field correction image (reciprocal of the estimated bias field)


no equivalent

Suppress segmentation outputs

-m <file>

-s <file> or --manualseg=<file>

Input file with manual starting values for class intensities


no equivalent

2D segmentation mode (for 3D images)

-i <n>

-O <n> or --fixed=<n>

Number of main-loop iterations

-l <n>

-l <m> or --lowpass=<m>

Bias field smoothing : n is iterations, m is FWHM in mm - rough guide is m ≅ 2 √n


no equivalent

Disable automatic parameter updating

-b <v>

-H <v> or --Hyper=<v>

Main MRF beta value (initial segmentation calculation)

-oba <n>

no equivalent

Output dialted bias correction field (extra n iterations of smoothing)



Enable partial volume classification



Do not do partial volume classification



Output partial volume (PVE) images (one per class)

--b <v>

-R <v> or --mixel=<v>

MRF beta value for PVE classification (fast3) or mixeltype in PVE classification (fast4) - these are related but not exactly equivalent


no equivalent

Disable parameter updating during PVE classification


-v or --verbose

Turn on verbose/diagnostic output (fast3 has 6 levels, fast4 is binary)


-a <standard2input.mat>

Use prior probability maps for initialisation (fast4 requires a FLIRT matrix whereas fast3 requires extra argument -ap)

-ap <prefix>

no equivalent

path and filename prefix for where to find pre-registered prior probability maps (fast4 requires transformation matrix with -a instead)


-P or --Prior

Use prior probability maps throughout calculations (must be used with -Ap for fast3 or -a for fast4)

-Ap <prefix>

no equivalent

Path and filename prefix for where to find pre-registered prior probability maps

nearly equivalent to -ap or -Ap

-A <prior1> <prior2> <prior3>

Path/filenames for alternative prior images

no equivalent

-I <n> or --iter=<n>

Loop iterations during initial bias-field removal phase

no equivalent

-f <v> or --fHard=<v>

MRF beta value during initial bias-field removal phase

no equivalent

-W <n> or --init=<n>

Number of segmentation-initialisation iterations

no equivalent

-N or --nobias

Do not remove bias field



-s <n>

-S <n> or --channels=<n>

Number of input channels (images)

CategoryStructural CategoryFast


FAST (last edited 10:14:49 26-04-2020 by ThomasNichols)