Something went wrong on our end
Forked from
FSL / fslpy
1927 commits behind the upstream repository.
-
Paul McCarthy authoredPaul McCarthy authored
To find the state of this project's repository at the time of any of these versions, check out the tags.
CHANGELOG.rst 9.70 KiB
This document contains the fslpy
release history in reverse chronological
order.
1.6.0 (Under development)
- The new :class:`.Mesh` class is now the base class for all mesh types. It has been written to allow multiple sets of vertices to be associated with a mesh object (to support e.g. white matter, inflated, spherical models for a GIFTI/freeusrfer mesh).
- The new :class:`.VTKMesh` class must now be used for loading VTK model files, instead of the old :class:`.TriangleMesh` class.
- The new :class:`.Mesh` class uses the
trimesh
library (https://github.com/mikedh/trimesh) to perform various geometrical operations, accessible via new :meth:`.Mesh.rayIntersection`, :meth:`.Mesh.planeIntersection`, :meth:`.Mesh.nearestVertex` methods. - The :class:`.Nifti` and :class:`.Mesh` classes have new methods allowing arbitrary metadata to be stored with the image, as key-value pairs. These are provided by a new mixin class, :class:`.Meta`.
- Freesurer geometry files can now be loaded via the :class:`.FreesurferMesh` class.
- Freesurfer
mgz
/mgh
image files can now be loaded via the new :mod:`.mghimage` module. Internally, these image files are converted to NIFTI - the :class:`.MGHImage` class derives from the :class:`.Image` class. - Meta-data access methods on the :class:`.DicomImage` class have been deprecated, as their functionality is provided by the new :class:`.Meta` mixin.
- The :class:`.TriangleMesh` class has been deprecated in favour of the new :class:`.Mesh` class.
- Optional dependencies
wxpython
,indexed_gzip
,trimesh
, andrtree
are now listed separately, sofslpy
can be used without them (although relevant functionality will be disabled if they are not present).
1.5.4 (Wednesday January 10th 2018)
- Actually included the fix that was supposed to be in version 1.5.3.
1.5.3 (Tuesday January 9th 2018)
- Bug fix to :meth:`.ImageWrapper.__expandCoverage` - was not correctly handling
large images with lots of
nan
values.
1.5.2 (Tuesday January 2nd 2018)
- Fixed issue with
MANIFEST.in
file.
1.5.1 (Thursday December 14th 2017)
- Fixed bug in :func:`.dicom.scanDir` function related to data series ordering.
1.5.0 (Wednesday December 13th 2017)
- New module :mod:`.dicom`, which provides a thin wrapper on top of Chris Rorden's dcm2niix.
- New module :mod:`.tempdir`, which has a convenience function for creating temporary directories.
- Fixed small issue in :meth:`.Image.dtype` - making sure that it access image data via the :class:`.ImageWrapper`, rather than via the Nifti1Image object.
1.4.2 (Tuesday December 5th 2017)
- New function :func:`.transform.rmsdev` function, which implements the RMS deviation equation for comparing two affine transformations (FMRIB Technical Report TR99MJ1, available at https://www.fmrib.ox.ac.uk/datasets/techrep/).
- Some small bugfixes to the :mod:`.atlasq` and :mod:`.atlases` moduless.
1.4.1 (Thursday November 9th 2017)
- Fixed bug in
setup.py
.
1.4.0 (Thursday November 9th 2017)
- The :func:`.uniquePrefix` function now raises a :exc:`~.path.PathError` instead of a :exc:`.ValueError`, when an invalid path is provided.
- The :mod:`fsl.utils.async` module is now deprecated, as
async
will become a reserved word in Python 3.7. It has been renamed tofsl.utils.idle
, with no other API changes. - For image file pairs, the
hdr
extension now takes precedence over theimg
extension, when using the :func:`fsl.data.image.addExt` (and related) functions. - The :func:`fsl.utils.path.addExt` function accepts a new parameter,
unambiguous
which causes it to allow an ambiguous prefix, and return all matching paths. - New :mod:`~fsl.scripts.atlasq` application, intended to replace the FSL
atlasquery
tool. - New :mod:`~fsl.scripts.imglob` application, intended to replace the FSL
imglob
tool. - The :meth:`.Image.resample` method explicitly raises a
ValueError
if incompatible shapes are provided.
1.3.1 (Wednesday October 25th 2017)
- Fixed bug in :meth:`.Platform.wxPlatform` causing it to always return
WX_UNKNOWN
.
1.3.0 (Wednesday October 25th 2017)
- :class:`.Atlas` classes can now pass
kwargs
through to the :class:`.Image` constructor. - :class:`.LabelAtlas` image values no longer need to match the index of the
label into the :class:`.AtlasDescription`
labels
list. This means that label atlas XML files may contain non-sequential label values. - :class:`.Cache` now implements
__getitem__
and__setitem__
- The :func:`.image.read_segments` function (monkey-patched into
nibabel
) is deprecated, as it is no longer necessary as ofnibabel
2.2.0. - :func:`.platform.isWidgetAlive` is deprecated in favour of an equivalent
function in the
fsleyes-widgets
library. -
scipy
is now explicitly listed as a requirement (this should have been done in 1.2.1).
1.2.2 (Saturday October 21st 2017)
- The :func:`.image.read_segments` function is only monkey-patched into
nibabel
2.1.0, as it breaks when used with 2.2.0.
1.2.1 (Saturday October 7th 2017)
- If an :class:`.Image` is passed an existing
nibabel
header object, it creates a copy, rather than using the original. - New :meth:`.Image.resample` method, which resamples the image data to a different resolution.
- New :meth:`.LabelAtlas.coordLabel`, :meth:`.LabelAtlas.maskLabel`,
:meth:`.ProbabilisticAtlas.coordProportions` and
:meth:`.ProbabilisticAtlas.maskProportions` methods. The
coord
methods perform coordinate queries in voxel or world coordinates, and themask
methods perform mask-based queries.
1.2.0 (Thursday September 21st 2017)
- :meth:`fsl.data.image.Nifti.voxelsToScaledVoxels` method deprecated in favour of new :meth:`.Nifti.voxToScaledVoxMat` and :meth:`Nifti.scaledVoxToVoxMat` properties.
1.1.0 (Monday September 11th 2017)
- The :mod:`fsl` package is now a
pkgutil
-style namespace package, so it can be used for different projects. - Updates to :class:`fsl.data.image.Nifti` and :class:`fsl.data.image.Image`
to add support for images with more than 4 dimensions:
- New
ndims
property -is4DImage
method deprecated
1.0.5 (Thursday August 10th 2017)
- New functions and further adjustments in :mod:`fsl.utils.transform` module:
- :func:`.transform.rotMatToAffine` converts a
(3, 3)
rotation matrix into a(4, 4)
affine.- :func:`.transform.transformNormal` applies an affine transform to one or more vectors.
- :func:`.transform.veclength` calculates the length of a vector
- :func:`.transform.normalise` normalises a vector
- :func:`.transform.scaleOffsetXform` adjusted to have more flexibility with respect to inputs.
- :func:`.transform.decompose` can return rotations either as three axis-angles, or as a rotation matrix
- Updates to :class:`fsl.data.mesh.TriangleMesh` -
vertices
andindices
are nowproperty
attributes. New lazily generatednormals
andvnormals
properties (face and vertex normals respectively). Option to__init__
to fix the face winding order of a mesh. - :func:`fsl.utils.memoize.memoize` decorator made into a class rather than a
function. The new :class:`.Memoize` class has an
invalidate
method, which clears the cache.
1.0.4 (Friday July 14th 2017)
- Python 2/3 compatibility fix to :mod:`fsl.utils.callfsl`.
- Fix to :func:`fsl.utils.transform.scaleOffsetXform` - accepts inputs that are not lists.
- :func:`fsl.utils.transform.compose` accepts either a sequence of three
axis angles, or a
(3, 3)
rotation matrix.
1.0.3 (Sunday June 11th 2017)
- Fix to :mod:`fsl.utils.async` which was breaking environments where multiple
wx.App
instances were being created.
1.0.2 (Thursday June 8th 2017)
- Python 2/3 compatibility fixes
- New :func:`fsl.version.patchVersion` function.
1.0.1 (Sunday 4th June 2017)
- New version number parsing functions in :mod:`fsl.version`.
1.0.0 (Saturday May 27th 2017)
- Removed many GUI-related modules - they have been moved to the
fsleyes-widgets
project. The following modules have been removed: - :mod:`fsl.utils.colourbarbitmap` - :mod:`fsl.utils.dialog` - :mod:`fsl.utils.imagepanel` - :mod:`fsl.utils.layout` - :mod:`fsl.utils.platform` - :mod:`fsl.utils.runwindow` - :mod:`fsl.utils.status` - :mod:`fsl.utils.textbitmap` - :mod:`fsl.utils.typedict` - :mod:`fsl.utils.webpage` - :mod:`fsl.utils.settings` module rewritten. It no longer uses
wx
, but instead stores plain-text andpickle
files in the user's home directory. - Software GL renderer test in :mod:`fsl.utils.platform` is more lenient
- New :class:`.AtlasLabel` class
- :meth:`.Image.__init__` allows arguments to be passed through to
nibabel.load
. - New :meth:`.Nifti.strval` method to handle escaped strings in NIFTI headers.
- Python 2/3 compatibility fixes
0.11.0 (Thursday April 20th 2017)
- First public release as part of FSL 5.0.10