Skip to main content

FSL Python library

Project description

The fslpy project is a FSL programming library written in Python. It is used by FSLeyes.

fslpy is tested against Python versions 3.8, 3.9, 3.10, and 3.11.


Install fslpy and its core dependencies via pip:

pip install fslpy

fslpy is also available on conda-forge:

conda install -c conda-forge fslpy


All of the core dependencies of fslpy are listed in the pyproject.toml file.

Some optional dependencies (labelled extra in pyproject.toml) provide addditional functionality:

  • wxPython: The fsl.utils.idle module has functionality to schedule functions on the wx idle loop.

  • indexed_gzip: The class can use indexed_gzip to keep large compressed images on disk instead of decompressing and loading them into memory..

  • trimesh/rtree: The class has some methods which use trimesh to perform geometric queries on the mesh.

  • Pillow: The class uses Pillow to load image files.

If you are using Linux, you need to install wxPython first, as binaries are not available on PyPI. Install wxPython like so, changing the URL for your specific platform:

pip install -f wxpython

Once wxPython has been installed, you can type the following to install the remaining optional dependencies:

pip install "fslpy[extra]"

Dependencies for testing and documentation are also listed in pyproject.toml, and are respectively labelled as test and doc.

Non-Python dependencies

The module requires the presence of Chris Rorden’s dcm2niix program.

The rtree library assumes that libspatialindex is installed on your system.

The fsl.transform.x5 module uses h5py, which requires libhdf5.


API documentation for fslpy is hosted at

fslpy is documented using sphinx. You can build the API documentation by running:

pip install ".[doc]"
sphinx-build doc html

The HTML documentation will be generated and saved in the html/ directory.


Run the test suite via:

pip install ".[test]"

Some tests will only pass if the test environment meets certain criteria - refer to the tool.pytest.init_options section of [pyproject.toml](pyproject.toml) for a list of [pytest marks]( which can be selectively enabled or disabled.


If you are interested in contributing to fslpy, check out the contributing guide.


The module is little more than a thin wrapper around Chris Rorden’s dcm2niix program.

The example.mgz file, used for testing, originates from the nibabel test data set.

Project details

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fslpy-3.18.2.tar.gz (4.8 MB view hashes)

Uploaded Source

Built Distribution

fslpy-3.18.2-py3-none-any.whl (4.8 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page