Brain Extraction is a crucial step in many analysis pipelines - particularly for structural analysis involving segmentation, where an accurate brain extraction is important. It is also important for registration, but in this case the brain extraction does not have to be highly accurate, and small errors are fine. Running BET, to perform the brain extraction, is very easy to do, but getting highly accurate results can involve some skill and patience.
Start by opening a terminal and going to the correct directory:
Most FSL programs can be run from the command-line without using a GUI, by
typing fully lowercase names (e.g.
bet). Many programs also have
a GUI, which can be started via the
fsl mini-GUI (type
fsl) or by typing a capitalised
version of the command name (e.g.
(Note that on Mac OS, the command line call to the GUI
_gui appended (e.g.
Bet_gui), because Macs can't
distinguish between lower-case and upper-case...)
fsl GUI and click on BET, to see
how this all works. Now exit both of these GUIs and start the
Bet GUI directly from the terminal (note:
& after the command to make it run in the background).
Using the Bet GUI, set the input file to
use the right-hand file selector button rather than typing this in by hand as
it minimises the chances of errors. Turn on various optional outputs (brain
extracted image, binary brain mask and skull surface image - see Advanced
Options tab) but leave the other settings as they are. Note that the GUI
suggests the default output name
When done click on Go to run BET and then exit the GUI once it's
done. You will see that when you pressed Go the actual command carried
out was printed in the terminal; many of the FSL GUIs will do this, in order
to help you see what's actually going on. Also in the terminal you will
Finished appear once BET has finished running (you may need
to hit return to get a visible prompt back after seeing
ls -lrt to see what files got created and
view the various outputs (this sorts the files according to file creation
date, with the most recent at the bottom, making it very easy to see what the
most recently created files in a directory are). Note that if this does not
give any output then your GUI is probably not running in the background, but
you can still make it run in the background by pressing
z, and then typing
bg in the terminal (and after this you
can run the
View the brain mask overlaid onto the original image by first loading the original image into FSLeyes and then adding the mask image. Change the transparency and colour of the overlay so that you can get a better view of the success of the brain extraction. Remember that for registration purposes the brain extraction can contain some small errors, but if you were going to use it for segmentation purposes then it would need to be much more accurate.
The usage for the command-line version of
bet <input> <output> [options]
output stand for filenames
options can be many, or none, of the available extra
You can just type
bet to see the usage
description (first line of the output) as well as a description of the many
options available. Have a look at the command that the GUI printed in the
terminal when you pressed OK previously, which gives an example
of how it works.
Using the command line, try setting the
-f option on the command line) to 0.2 and
0.8, in turn, to see the effect it has (save these with different output image
names and load both into FSLeyes). This option controls the threshold that
distinguishes brain from non-brain; if you reduce it from the default value of
0.5 then the brain estimate gets larger, and vice versa.
This part of the practical is optional, but you are encouraged to do it in the session, if you have time, or outside of the session. The objective is to learn how to deal with some more problematic brain extraction cases (which are relatively common with images that have large FOV and/or substantial bias field - so this is a highly useful skill).
Run BET on
sub3m0. Note that the cerebellum is
underestimated. We can improve this by changing the gradient threshold
-g (from its default of 0) to 0.5. This option causes the
overall fractional threshold (controlled globally by
to vary linearly with slice number - to get smaller at the bottom and
bigger at the top, or vice versa. Run this and note that we have now
underestimated the top slices! However by combining the gradient
option with the main (
-f) option we can get a good
overall result: try
-f 0.3 -g 0.2 (or maybe you can
do even better!).
The final example is of a head image with a large amount of neck
present - run BET on
bighead to see a problem. Because of
the neck, the initial brain surface is initialised too low in the
image. There are several ways to deal with this:
Cropping the image can be performed manually using
fslroi but is easier using the automated tool
robustfov. For example:
robustfov -i bighead -r bighead_crop
Run this command and look at the output image. It is then possible to
bet directly on this cropped image (try it and see how it
The second option, which leaves the large FOV, is to set the initial centre
by hand via the
-c option on the command line. Try this out
using FSLeyes to get a rough guess (in voxels) of where the centre of the
brain is in the image and use the values when you call bet with
-c option. Check the output and see whether it improves.
The third option, that can work better in some cases is to use the
-R option; this re-runs BET several times, each
starting its brain centre at the centre of the previously-estimated brain. Try
-R option instead of the
-c option above.
In general our recommendation is to combine the cropping and
-R option, as we have found this to be quite robust on a
range of images. However, it may not work on all images, which is why there
are a variety of options, as some types of images work better with one
strategy than with another. Therefore it is good to be familiar with a range