fslpy
The fslpy
project is a FSL
programming library written in Python. It is used by FSLeyes.
fslpy
is tested against Python versions 3.7, 3.8, 3.9, and 3.10.
Installation
Install fslpy
and its core dependencies via pip:
pip install fslpy
fslpy
is also available on conda-forge:
conda install -c conda-forge fslpy
Dependencies
All of the core dependencies of fslpy
are listed in the
requirements.txt file.
Some extra dependencies are listed in requirements-extra.txt which provide addditional functionality:
-
wxPython
: The fsl.utils.idle module has functionality to schedule functions on thewx
idle loop. -
indexed_gzip
: The fsl.data.image.Image class can useindexed_gzip
to keep large compressed images on disk instead of decompressing and loading them into memory.. -
trimesh
/rtree
: The fsl.data.mesh.TriangleMesh class has some methods which usetrimesh
to perform geometric queries on the mesh. -
Pillow
: The fsl.data.bitmap.Bitmap class usesPillow
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 https://extras.wxpython.org/wxPython4/extras/linux/gtk2/ubuntu-16.04/ wxpython
Once wxPython has been installed, you can type the following to install the rest of the extra dependencies:
pip install fslpy[extras]
Dependencies for testing and documentation are listed in the requirements-dev.txt file.
Non-Python dependencies
The fsl.data.dicom 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
.
Documentation
API documentation for fslpy
is hosted at
https://open.win.ox.ac.uk/pages/fsl/fslpy/.
fslpy
is documented using sphinx. You
can build the API documentation by running:
pip install -r requirements-dev.txt
python setup.py doc
The HTML documentation will be generated and saved in the doc/html/
directory.
Tests
Run the test suite via:
pip install -r requirements-dev.txt
python setup.py test
A test report will be generated at report.html
, and a code coverage report
will be generated in htmlcov/
.
Contributing
If you are interested in contributing to fslpy
, check out the
contributing guide.
Credits
The fsl.data.dicom 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.