Skip to content

FSL installation

Installing FSL

FSL is available ready to run for macOS (Intel and Apple Silicon) and Linux (Intel). Installation on Windows is possible via the Windows Subsystem for Linux (WSL). FSL source code is downloaded and installed part of a standard installation, if you wish to compile the code yourself.

The installation procedure will download a large amount of data, so make sure you have a power source, a good internet connection, and some time to spare.

Click on one of the following links for detailed instructions on installing FSL:

Updating an existing installation

From FSL 6.0.7 onwards, it is possible to update a FSL installation in-place. Simply run the update_fsl_release command in a terminal, and follow the prompts.

If you have trouble updating, or want a fresh installation, simply delete your existing FSL installation directory, and then follow the normal installations instructions above.

Using FSL on a cluster / with GPUs

Certain FSL tools are able to take advantage of GPUs and HPC cluster systems for improved performance, and for running analyses at scale.

Cluster aware tools

Several of the more compute-intensive tools can take advantage of cluster computing, via SLURM or Some of Grid Engine (or Altair® Grid Engine®). We would largely recommend using SLURM if you are building a cluster from scratch, as packages are readily available for the major Linux distributions.

  • FEAT will run multiple first-level analyses in parallel if they are setup all together in one GUI setup. At second level, if full FLAME (stages 1+2) is selected then all the slices are processed in parallel.
  • MELODIC will run multiple single-session analyses (or single-session preprocessing if a multi-session/subject analysis is being done) in parallel if they are setup all together in one GUI setup.
  • TBSS will run all registrations in parallel.
  • BEDPOSTX low-level diffusion processing will run all slices in parallel.
  • FSLVBM will run all registrations in parallel, both at the template-creation stage and at the final registrations stage.
  • POSSUM will process all slices in parallel.

All the above tools interact with a compute cluster via a single central script fsl_sub; if no cluster is available then this script silently runs all the requested jobs in series. To customise FSL for your local compute cluster and clustering software, refer to the fsl_sub documentation.

GPU / CUDA capable tools

Some FSL tools are able to be accelerated with CUDA-compatible NVIDIA GPUs - this includes bedpostx_gpu, eddy, probtrackx2_gpu, and mmorf. From FSL 6.0.7.17 onwards, these tools are compiled against the CUDA 11.0 toolkit, and should work with any GPU that supports CUDA compute capability 3.5 or higher.

The CUDA toolkit is statically linked into the executable files, so all that is needed to run them is a compatible NVIDIA GPU and CUDA driver - you do not need to install the CUDA Toolkit in order to run these tools.

If you need to run any of these tools on an older GPU, you can recompile the code against the CUDA Toolkit of your choice. Get in touch with us if you need advice.

Information for advanced users

The standard FSL installation procedure is similar on all platforms, and involves downloading and running a shell script called getfsl.sh.

If your system already has Python installed, you can download and run the fslinstaller.py script directly instead of running the getfsl.sh script. The fslinstaller.py script accepts a number of options which can be used to customise the installation (e.g. installation directory, shell profile configuration, etc). Run python fslinstaller.py --help, or refer to the fslinstaller.py README for more details.

FSL is released as a set of conda packages, making it possible to build your own workflow for installing and using FSL. FSL can be installed into docker/singularity containers, and custom FSL installations can be created by using conda directly. You may also wish to compile the FSL C/C++ tools from source for your own system.

You can find more information on configuring/customising your FSL installation here.

Installing older versions of FSL

The fslinstaller.py script can be used to install versions of FSL from 6.0.6 and newer. By default the latest version will be installed, but you can choose a different version with the -V flag, e.g.:

python fslinstaller.py -V 6.0.6

If you need to install a version of FSL which is older than 6.0.6, you will need to use a different installer script - you can download a legacy version of the fslinstaller.py script from here.