Skip to content
Snippets Groups Projects
Commit 2aa93074 authored by Paul McCarthy's avatar Paul McCarthy :mountain_bicyclist:
Browse files

Merge branch 'enh/transforms' into 'master'

enh/transforms

See merge request fsl/fslpy!113
parents 0d60759d bbc60c76
No related branches found
No related tags found
No related merge requests found
Showing
with 107 additions and 11 deletions
...@@ -12,6 +12,18 @@ Added ...@@ -12,6 +12,18 @@ Added
* New :mod:`.image.roi` module, for exracting an ROI of an image, or expanding * New :mod:`.image.roi` module, for exracting an ROI of an image, or expanding
its field-of-view. its field-of-view.
* New :meth:`.Image.getAffine` method, for retrieving an affine between any of
the voxel, FSL, or world coordinate systems.
* New :mod:`fsl.transforms` package, which contains classes and functions for
working with linear and non-linear FLIRT and FNIRT transformations.
* New static methods :meth:`.Nifti.determineShape`,
:meth:`.Nifti.determineAffine`, :meth:`.Nifti.generateAffines`, and
:meth:`.Nifti.identifyAffine`.
* New prototype :mod:`fsl.transforms.x5` module, for reading/writing linear
and non-linear X5 files (*preliminary release, subject to change*).
* New prototype :mod:`.fsl_convert_x5` :mod:`.fsl_apply_x5` programs, for
working with X5 transformations (*preliminary release, subject to change*).
Changed Changed
...@@ -20,6 +32,16 @@ Changed ...@@ -20,6 +32,16 @@ Changed
* The :mod:`.resample_image` script has been updated to support resampling of * The :mod:`.resample_image` script has been updated to support resampling of
images with more than 3 dimensions. images with more than 3 dimensions.
* `h5py <https://www.h5py.org/>`_ has been added to the ``fslpy`` dependencies.
Deprecated
^^^^^^^^^^
* The :mod:`fsl.utils.transform` module has been deprecated its functions can
now be found in the :mod:`fsl.transforms.affine` and
:mod:`fsl.transform.flirt` modules.
2.3.1 (Friday July 5th 2019) 2.3.1 (Friday July 5th 2019)
...@@ -169,7 +191,7 @@ Added ...@@ -169,7 +191,7 @@ Added
* Simple built-in :mod:`.deprecated` decorator. * Simple built-in :mod:`.deprecated` decorator.
* New :mod:`fsl.data.utils` module, which currently contains one function * New :mod:`fsl.data.utils` module, which currently contains one function
:func:`.guessType`, which guesses the data type of a file/directory path. :func:`.guessType`, which guesses the data type of a file/directory path.
* New `.commonBase` function for finding the common prefix of a set of * New :func:`.commonBase` function for finding the common prefix of a set of
file/directory paths. file/directory paths.
...@@ -209,7 +231,7 @@ Fixed ...@@ -209,7 +231,7 @@ Fixed
^^^^^ ^^^^^
* Fixed an issue with the `.dicom.loadSeries` using memory-mapping for * Fixed an issue with the :func:`.dicom.loadSeries` using memory-mapping for
image files that would subsequently be deleted. image files that would subsequently be deleted.
* Fixed an issue in the :class:`.GiftiMesh` class, where * Fixed an issue in the :class:`.GiftiMesh` class, where
``numpy``/``nibabel`` was returning read-only index arrays. ``numpy``/``nibabel`` was returning read-only index arrays.
......
...@@ -91,6 +91,10 @@ The ``rtree`` library assumes that ``libspatialindex`` is installed on ...@@ -91,6 +91,10 @@ The ``rtree`` library assumes that ``libspatialindex`` is installed on
your system. your system.
The :mod:`fsl.transform.x5` module uses `h5py <https://www.h5py.org/>`_,
which requires ``libhdf5``.
Documentation Documentation
------------- -------------
......
/* override table width restrictions */
.wy-table-responsive table td, .wy-table-responsive table th {
white-space: normal;
}
.wy-table-responsive {
margin-bottom: 24px;
max-width: 100%;
overflow: visible;
}
...@@ -33,7 +33,8 @@ date = datetime.date.today() ...@@ -33,7 +33,8 @@ date = datetime.date.today()
# ones. # ones.
extensions = [ extensions = [
'sphinx.ext.autodoc', 'sphinx.ext.autodoc',
'sphinx.ext.autosummary', 'sphinx.ext.viewcode',
'sphinx.ext.autosummary',
'sphinx.ext.mathjax', 'sphinx.ext.mathjax',
'sphinx.ext.graphviz', 'sphinx.ext.graphviz',
'sphinx.ext.todo', 'sphinx.ext.todo',
...@@ -121,6 +122,7 @@ pygments_style = 'sphinx' ...@@ -121,6 +122,7 @@ pygments_style = 'sphinx'
# a list of builtin themes. # a list of builtin themes.
html_theme = 'sphinx_rtd_theme' html_theme = 'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme # Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the # further. For a list of options available for each theme, see the
# documentation. # documentation.
...@@ -148,7 +150,13 @@ html_theme = 'sphinx_rtd_theme' ...@@ -148,7 +150,13 @@ html_theme = 'sphinx_rtd_theme'
# Add any paths that contain custom static files (such as style sheets) here, # Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files, # relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css". # so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = [] html_static_path = ['_static']
html_context = {
'css_files': [
'_static/theme_overrides.css', # overrides for wide tables in RTD theme
],
}
# Add any extra paths that contain custom files (such as robots.txt or # Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied # .htaccess) here, relative to this directory. These files are copied
...@@ -354,7 +362,7 @@ epub_exclude_files = ['search.html'] ...@@ -354,7 +362,7 @@ epub_exclude_files = ['search.html']
autoclass_content = 'class' autoclass_content = 'class'
# Document private members and special members (e.g. __init__) # Document private members and special members (e.g. __init__)
autodocsourc_default_flags = ['private-members', 'special-members'] autodoc_default_flags = ['private-members', 'special-members']
# Documentation for python modules is in the same order # Documentation for python modules is in the same order
# as the source code. # as the source code.
...@@ -368,7 +376,7 @@ def autodoc_skip_member(app, what, name, obj, skip, options): ...@@ -368,7 +376,7 @@ def autodoc_skip_member(app, what, name, obj, skip, options):
if what == 'class': if what == 'class':
attName = name.split('.')[-1] attName = name.split('.')[-1]
return skip or attName.startswith('_sync_') return skip or attName.startswith('_sync_')
return skip or False return skip or False
......
...@@ -34,7 +34,7 @@ the following labels (this convention has been inherited from `nibabel ...@@ -34,7 +34,7 @@ the following labels (this convention has been inherited from `nibabel
* *BF* : bug fix * *BF* : bug fix
* *RF* : refactoring * *RF* : refactoring
* *NF* : new feature * *ENH*: enhancement/new feature
* *BW* : addresses backward-compatibility * *BW* : addresses backward-compatibility
* *OPT* : optimization * *OPT* : optimization
* *BK* : breaks something and/or tests fail * *BK* : breaks something and/or tests fail
...@@ -102,7 +102,7 @@ Unit and integration tests are currently run with ``py.test`` and ...@@ -102,7 +102,7 @@ Unit and integration tests are currently run with ``py.test`` and
``coverage``. ``coverage``.
- Aim for 100% code coverage. - Aim for 100% code coverage.
- Tests must pass on python 2.7, 3.4, 3.5, and 3.6 - Tests must pass on python 3.5, 3.6, and 3.7.
Coding conventions Coding conventions
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
fsl.data fsl.data
fsl.scripts fsl.scripts
fsl.utils fsl.utils
fsl.transform
fsl.version fsl.version
fsl.wrappers fsl.wrappers
......
``fsl.scripts.fsl_convert_x5``
==============================
.. automodule:: fsl.scripts.fsl_convert_x5
:members:
:undoc-members:
:show-inheritance:
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
:hidden: :hidden:
fsl.scripts.atlasq fsl.scripts.atlasq
fsl.scripts.fsl_convert_x5
fsl.scripts.fsl_ents fsl.scripts.fsl_ents
fsl.scripts.imcp fsl.scripts.imcp
fsl.scripts.imglob fsl.scripts.imglob
......
``fsl.transform.affine``
========================
.. automodule:: fsl.transform.affine
:members:
:undoc-members:
:show-inheritance:
``fsl.utils.transform`` ``fsl.transform.flirt``
======================= =======================
.. automodule:: fsl.utils.transform .. automodule:: fsl.transform.flirt
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
``fsl.transform.fnirt``
=======================
.. automodule:: fsl.transform.fnirt
:members:
:undoc-members:
:show-inheritance:
``fsl.transform.nonlinear``
===========================
.. automodule:: fsl.transform.nonlinear
:members:
:undoc-members:
:show-inheritance:
``fsl.transform``
=================
.. toctree::
:hidden:
fsl.transform.affine
fsl.transform.flirt
fsl.transform.fnirt
fsl.transform.nonlinear
fsl.transform.x5
.. automodule:: fsl.transform
:members:
:undoc-members:
:show-inheritance:
``fsl.transform.x5``
====================
.. automodule:: fsl.transform.x5
:members:
:undoc-members:
:show-inheritance:
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
fsl.utils.run fsl.utils.run
fsl.utils.settings fsl.utils.settings
fsl.utils.tempdir fsl.utils.tempdir
fsl.utils.transform
fsl.utils.weakfuncref fsl.utils.weakfuncref
.. automodule:: fsl.utils .. automodule:: fsl.utils
......
doc/images/fnirt_coefficient_field.png

97 KiB

File added
doc/images/fnirt_warp_field.png

81.9 KiB

File added
doc/images/nonlinear_registration_process.png

66.3 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment