Skip to content
Snippets Groups Projects
README.rst 3.43 KiB
Newer Older
Paul McCarthy's avatar
Paul McCarthy committed
.. image:: https://git.fmrib.ox.ac.uk/fsl/fslpy/badges/master/build.svg
   :target: https://git.fmrib.ox.ac.uk/fsl/fslpy/commits/master/

.. image:: https://git.fmrib.ox.ac.uk/fsl/fslpy/badges/master/coverage.svg
   :target: https://git.fmrib.ox.ac.uk/fsl/fslpy/commits/master/

Paul McCarthy's avatar
Paul McCarthy committed
.. image:: https://img.shields.io/pypi/v/fslpy.svg
Paul McCarthy's avatar
Paul McCarthy committed
   :target: https://pypi.python.org/pypi/fslpy/
Paul McCarthy's avatar
Paul McCarthy committed

.. image:: https://anaconda.org/conda-forge/fslpy/badges/version.svg
   :target: https://anaconda.org/conda-forge/fslpy

Paul McCarthy's avatar
Paul McCarthy committed

The ``fslpy`` project is a `FSL <http://fsl.fmrib.ox.ac.uk/fsl/fslwiki/>`_
programming library written in Python. It is used by `FSLeyes
Paul McCarthy's avatar
Paul McCarthy committed
<https://git.fmrib.ox.ac.uk/fsl/fsleyes/fsleyes/>`_.
``fslpy`` is tested against Python versions 3.5, 3.6 and 3.7.


Installation
------------


Install ``fslpy`` and its core dependencies via pip::

    pip install fslpy


Paul McCarthy's avatar
Paul McCarthy committed
``fslpy`` is also available on `conda-forge <https://conda-forge.org/>`_::

    conda install -c conda-forge fslpy


All of the core dependencies of ``fslpy`` are listed in the `requirements.txt
<requirements.txt>`_ file.

Some extra dependencies are listed in `requirements.txt
<requirements-extra.txt>`_ which provide addditional functionality:

Paul McCarthy's avatar
Paul McCarthy committed
- ``wxPython``: The `fsl.utils.idle <fsl/utils/idle.py>`_ module has
  functionality  to schedule functions on the ``wx`` idle loop.
Paul McCarthy's avatar
Paul McCarthy committed
- ``indexed_gzip``: The `fsl.data.image.Image <fsl/data/image.py>`_ class
  can use ``indexed_gzip`` to keep large compressed images on disk instead
  of decompressing and loading them into memory..
Paul McCarthy's avatar
Paul McCarthy committed
- ``trimesh``/``rtree``: The `fsl.data.mesh.TriangleMesh <fsl/data/mesh.py>`_
  class has some methods which use ``trimesh`` to perform geometric queries
  on the mesh.
If you are using Linux, you need to install wxPython first, as binaries are
not available on PyPI. Change the URL for your specific platform::
Paul McCarthy's avatar
Paul McCarthy committed
    pip install -f https://extras.wxpython.org/wxPython4/extras/linux/gtk2/ubuntu-16.04/ wxpython


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


Once wxPython has been installed, you can simply 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 <requirements-dev.txt>`_ file.


Non-Python dependencies
^^^^^^^^^^^^^^^^^^^^^^^


The ``fsl.data.dicom`` module requires the presence of Chris Rorden's
`dcm2niix <https://github.com/rordenlab/dcm2niix>`_ program.


Documentation
-------------

``fslpy`` is documented using `sphinx <http://http://sphinx-doc.org/>`_. 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/``.
Paul McCarthy's avatar
Paul McCarthy committed
Contributing
------------


If you are interested in contributing to ``fslpy``, check out the
`contributing guide <doc/contributing.rst>`_.


Paul McCarthy's avatar
Paul McCarthy committed
Credits
-------

Paul McCarthy's avatar
Paul McCarthy committed
The `fsl.data.dicom <fsl/data/dicom.py>`_ module is little more than a thin
wrapper around Chris Rorden's `dcm2niix
<https://github.com/rordenlab/dcm2niix>`_ program.


The `example.mgz <tests/testdata/example.mgz>`_ file, used for testing,
originates from the ``nibabel`` test data set.