Installing FSL on Linux is relatively straightforward, but the instructions for installing FIX have changed substantially. Older installations required a separate FIX download and dependencies in R and MATLAB. Current FSL releases include a Python-based implementation of FIX.

My original installation notes used fslinstaller.py and fix-1.06.15.tar.gz. This article preserves those steps as a legacy setup reference and distinguishes them from the recommended approach for a new installation. The commands added for the current release are based on the FSL documentation; I have not rerun them specifically for this article.

What Are FSL and FIX?

FSL is a collection of tools for functional, structural, and diffusion MRI analysis.

FIX (FMRIB's ICA-based Xnoiseifier) is used to identify noise-related independent components in fMRI data and remove their contributions from the time series. It operates on single-session ICA results from MELODIC or FEAT and uses a trained classifier to distinguish signal from noise components.

There are now two distinct installation scenarios:

Version Installation Status
Python-based FIX Included with FSL 6.0.7.8 and newer Current version
R/MATLAB-based FIX Installed separately from a FIX archive Legacy version; no longer supported

The commands in the legacy section below should not be treated as the default installation method for a new FSL environment.

1. Installing FSL on Linux

Current method: getfsl.sh

For a new Linux installation, the official FSL installation guide recommends getfsl.sh:

curl -Ls https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/releases/getfsl.sh | sh -s 

The script normally installs FSL into your home directory. Follow the installer's messages, then close and reopen your terminal.

Check the resulting environment:

echo "$FSLDIR" fslmaths command -v fix 

echo "$FSLDIR" should display the FSL installation directory, and fslmaths should display its usage information. command -v fix shows which fix executable, if any, is selected by your shell. These checks do not, by themselves, demonstrate that an fMRI dataset can be processed successfully.

For a standard FSL 6.0.7.8-or-newer installation, Python-based FIX is included, so a separate R/MATLAB FIX installation is not needed.

Original method: fslinstaller.py

My earlier notes used the Python installer downloaded from the FSL installation page:

python fslinstaller.py 

This remains a documented option for customized installations. On systems where the python command is unavailable, the installer can be invoked with python3:

python3 fslinstaller.py 

The historical notes did not record the installed FSL version or the Linux distribution, so I cannot identify the exact FSL release used in that setup.

2. Installing the Legacy R/MATLAB FIX

Legacy instructions: The following steps reproduce the procedure described in my original installation notes. This version of FIX is no longer supported, and these steps have not been revalidated on a current Ubuntu release.

Download and extract FIX

The original setup used an archive named fix-1.06.15.tar.gz, obtained from the older FIX installation materials. After placing that archive in ~/Downloads, extract it:

cd ~/Downloads tar -xvf fix-1.06.15.tar.gz 

The next steps assume the extracted directory is named fix. Inspect the archive contents if its directory structure differs. The current legacy FIX documentation points to a fix-master.tar.gz download instead; the archive name and directory layout may therefore differ from the original notes.

Install the R packages recorded in the original setup

The commands in my notes were:

sudo apt-get install r-base r-cran-devtools sudo apt-get install r-cran-party r-cran-modeltools r-cran-randomforest 

These are the packages recorded in the original procedure, not an exhaustive dependency list. According to the official documentation for the old version, FIX also depends on MATLAB with the Statistics and Signal Processing toolboxes, and on R (version 3.3.0 or newer) with the packages kernlab, ROCR, class, party, e1071, and randomForest.

Package availability and compatibility depend on the operating system, R version, and MATLAB installation. Consult the README bundled with the exact FIX archive for its additional setup requirements. The original notes do not establish that every dependency was installed and tested.

Move FIX into /usr/local

The original installation placed the extracted fix directory under /usr/local:

sudo mv ~/Downloads/fix /usr/local/ 

This assumes that /usr/local/fix does not already exist. Avoid overwriting an existing installation. For systems that also contain Python-based FIX, keeping the legacy executable outside the active PATH can prevent ambiguity.

Check the legacy executable

The final command recorded in the original notes was:

/usr/local/fix/fix --help 

This is a basic command-line check, not an end-to-end validation. The original post did not include terminal output, successful ICA classification, or cleaned fMRI results, so those outcomes should not be inferred from this command.

3. Using the Modern Python-Based FIX

For new work, use the Python version included with FSL 6.0.7.8 or later. It does not require the separate legacy R/MATLAB FIX installation.

The official FIX guide provides the following example of running FIX with a pretrained model:

fix rest.ica UKBiobank 20 -m 

Here, rest.ica represents a complete single-session MELODIC or FEAT ICA output directory, UKBiobank is a supplied pretrained classification model, 20 is the classification threshold, and -m requests additional cleanup of motion confounds.

This is an official usage example, not a command newly tested for this article. A compatible ICA output directory and a model appropriate for the acquisition and preprocessing protocol are required. The official guide recommends checking the resulting component labels and, for major studies, training a classifier on representative study data.

When processing succeeds, one of the output files is filtered_func_data_clean.nii.gz. Simply obtaining a help message from fix does not verify that the full workflow and its data prerequisites are ready.

4. Avoiding Conflicts Between FIX Versions

If both versions are installed, confirm which executable will run:

command -v fix echo "$FSLDIR" 

The shell selects the first matching executable on PATH, which may be the legacy /usr/local/fix/fix rather than the Python version bundled with FSL. Do not assume that the command named fix refers to the version you intended to use.

The model formats are also different: the older FIX uses .RData model files, whereas Python-based FIX uses .pyfix_model files. For users migrating a custom legacy model, the modern FSL documentation describes a conversion utility:

convert_fix_model mymodel.RData mymodel.pyfix_model 

This conversion requires R and is shown here as a documented migration option, not as a command executed during the original installation.

Conclusion

The original procedure installed FSL through fslinstaller.py and recorded a separate installation of R/MATLAB-based FIX 1.06.15. That workflow is useful as a historical reference for maintaining older neuroimaging environments, but it should not be presented as the current default setup.

For a new Linux environment, use the official FSL installation procedure and the Python-based FIX included with FSL 6.0.7.8 and newer. Whatever version you use, verifying the executable is only the first step; actual FIX processing also depends on the ICA inputs, classifier model, and preprocessing configuration.

References

AI disclosure: This article documents my own technical setup and results. An LLM was used to help draft, organize, and edit the English text. I remain responsible for its technical accuracy.