-
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 29.45 KiB
This document contains the fslpy
release history in reverse chronological
order.
2.8.4 (Monday 2nd March 2020)
Added
- Added a new
partial_fill
option to :meth:`.FileTree.read`, which effectively eliminates any variables which only have one value. This was added to accommodate some behavioural changes that were introduced in 2.8.2.
2.8.3 (Friday 28th February 2020)
Fixed
- Fixed a bug in the :meth:`.Image.save` method.
2.8.2 (Thursday 27th February 2020)
Fixed
- Fixed some subtle bugs in the :func:`.filetree.utils.get_all` function.
2.8.1 (Thursday 20th February 2020)
Fixed
- Fixed a bug where an error would be raised on attempts to load an image file without a BIDS-compatible name from a BIDS-like directory.
2.8.0 (Wednesday 29th January 2020)
Added
- New :meth:`.Nifti.adjust` method, for creating a copy of a :class:`.Nifti` header with adjusted shape, pixdims, and affine. This can be useful for creating a resampling reference.
- New :func:`.affine.rescale` function, for adjusting a scaling matrix.
- New :func:`.mghimage.voxToSurfMat` function, for creating a voxel-to-freesurfer affine transform from any image.
Changed
- The :class:`.ImageWrapper` now maintains its own image data cache, rather
than depending on
nibabel
. - Internal changes to avoid using the deprecated
nibabel.dataobj_images.DataobjImage.get_data
method.
Fixed
- Improved the algorithm used by the :func:`.mesh.needsFixing` function.
- The :meth:`.fslmaths.run` method now accepts :attr:`.wrappers.LOAD` as an output specification.
- Fixed a bug in the :class:`.Mesh` class to prevent indices from being loaded as floating point type.
- Fixed a bug in the :func:`.resample` function.
- Fixed a bug in the :class:`.MGHImage` class, which was causing pixdims to be overridden by scales derived from the affine.
Deprecated
- :func:`.calculateMatrix` - its functionality has been moved to the :func:`.affine.rescale` function.
2.7.0 (Wednesday 6th November 2019)
Added
- New
until
option to the :func:`.idle.block` function. - New :meth:`.Idle.neverQueue` setting, which can be used to force all tasks passed to :func:`.idle.idle` to be executed synchronously.
- New :meth:`.IdleLoop.synchronous` context manager, to temporarily change the value of :meth:`.IdleLoop.neverQueue`.
- New :mod:`.bids` module, containing a few simple functions for working with BIDS datasets.
- New :func:`.image.loadMetadata` function, and
loadMeta
option to the :class:`.Image` class, to automatically find and load any sidecar JSON files associated with an image file.
Changed
- Internal reorganisation in the :mod:`.idle` module.
Fixed
- Fixed incorrect usage of
setuptools.find_packages
, which was causing unit tests to be installed.
Deprecated
- :func:`.idle.inIdle` - replaced by :meth:`.IdleLoop.inIdle`.
- :func:`.idle.cancelIdle` - replaced by :meth:`.IdleLoop.cancelIdle`.
- :func:`.idle.idleReser` - replaced by :meth:`.IdleLoop.idleReset`.
- :func:`.idle.getIdleTimeout` - replaced by :meth:`.IdleLoop.callRate`.
- :func:`.idle.setIdleTimeout` - replaced by :meth:`.IdleLoop.callRate`.
2.6.2 (Monday 7th October 2019)
Changed
- Added a debugging hook in the :mod:`.idle` module.
- The :func:`.fslsub.submit` function is now more flexible in the way it accepts the command and input arguments.
- The :func:`.run.prepareArgs` function has been renamed (from
_prepareArgs
).
2.6.1 (Thursday 19th September 2019)
Changed
-
fslpy
is no longer tested against Python 3.5, and is now tested against Python 3.6, 3.7, and 3.8.
2.6.0 (Tuesday 10th September 2019)
Added
- New :meth:`.Image.iscomplex` attribute.
- Support for a new
Statistic
atlas type.
Changed
- The :class:`.Cache` class has a new
lru
option, allowing it to be used as a least-recently-used cache. - The :mod:`.filetree` module has been refactored to make it easier for the :mod:`.query` module to work with file tree hierarchies.
- The :meth:`.LabelAtlas.get` method has a new
binary
flag, allowing either a binary mask, or a mask with the original label value, to be returned. - The :mod:`.dicom` module has been updated to work with the latest version of
dcm2niix
.
Deprecated
- :meth:`.ProbabilisticAtlas.proportions`, :meth:`.ProbabilisticAtlas.maskProportions`, and :meth:`.ProbabilisticAtlas.labelProportions` have been deprecated in favour of :meth:`.StatisticAtlas.values`, :meth:`.StatisticAtlas.maskValues`, and :meth:`.StatisticAtlas.labelValues`
2.5.0 (Tuesday 6th August 2019)
Added
- 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
- The :mod:`.vest.looksLikeVestLutFile` function has been made slightly more lenient.
-
h5py 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.4.0 (Wednesday July 24th 2019)
Added
- New :mod:`.image.roi` module, for extracting an ROI of an image, or expanding its field-of-view.
Changed
- The :mod:`.resample_image` script has been updated to support resampling of images with more than 3 dimensions.
2.3.1 (Friday July 5th 2019)
Fixed
- The :class:`.Bitmap` class now supports greyscale images and palette images.
2.3.0 (Tuesday June 25th 2019)
Added
- New :class:`.Bitmap` class, for loading bitmap images. The
:meth:`.Bitmap.asImage` method can be used to convert a
Bitmap
into an :class:`.Image`. - The :class:`.Image` class now has support for the
RGB24
andRGBA32
NIfTI data types. - New :attr:`.Image.nvals` property, for use with
RGB24
/RGBA32
images. - New :meth:`.LabelAtlas.get` and :meth:`ProbabilisticAtlas.get` methods, which return an :class:`.Image` for a specific region.
- The :meth:`.AtlasDescription.find` method also now a
name
parameter, allowing labels to be looked up by name. - New :meth:`.FileTree.defines` and :meth:`.FileTree.on_disk` methods, to replace the :func:`.FileTree.exists` method.
Fixed
- The :func:`.makeWriteable` function will always create a copy of an
array
if its base is abytes
object. - Fixed a bug in the :meth:`.GitfitMesh.loadVertices` method.
- Fixed a bug in the :meth:`.Mesh.addVertices` method where the wrong face normals could be used for newly added vertex sets.
2.2.0 (Wednesday May 8th 2019)
Added
- New :mod:`.resample_image` script.
- New :mod:`.resample` module (replacing the :func:`.Image.resample` method), containing functions to resample an :class:`.Image`.
- New :func:`.resample.resampleToPixdim` and :func:`.resample.resampleToReference` functions, convenience wrappers around :func:`.resample.resample`.
- New :func:`.idle.block` function.
Changed
- The :func:`.resample` function (formerly :meth:`.Image.resample`) now
accepts
origin
andmatrix
parameters, which can be used to adjust the alignment of the voxel grids of the input and output images. - The :func:`.transform.decompose` function now accepts both
(3, 3)
and(4, 4)
matrices.
Fixed
- Minor fixes to some :mod:`.filetree.filetree` tree definitions.
Deprecated
- The :meth:`.Image.resample` method has been deprecated in favour of the :func:`.resample.resample` function.
2.1.0 (Saturday April 13th 2019)
Added
- New tensor conversion routines in the :mod:`.dtifit` module (Michiel Cottaar).
- New :func:`.makeWriteable` function which ensures that a
numpy.array
is writeable, and creates a copy if necessary
Changed
- The :class:`.GiftiMesh` class no longer creates copies of the mesh vertex/index arrays. This means that, these arrays will be flagged as read-only.
- The :class:`.Mesh` class handles vertex data sets requiring different triangle unwinding orders, at the cost of potentially having to store two copies of the mesh indices.
Fixed
- The :class:`.FeatDesign` class now handles "compressed" voxelwise EV files, such as those generated by PNM.
2.0.1 (Monday April 1st 2019)
Fixed
- Fixed a bug with the :func:`.gifti.relatedFiles` function returning duplicate files.
2.0.0 (Friday March 20th 2019)
Added
- New :mod:`fsl.utils.filetree` package for defining and working with file/directory templates (Michiel Cottaar).
- Simple built-in :mod:`.deprecated` decorator.
- New :mod:`fsl.data.utils` module, which currently contains one function :func:`.guessType`, which guesses the data type of a file/directory path.
- New :func:`.commonBase` function for finding the common prefix of a set of file/directory paths.
Changed
- Removed support for Python 2.7 and 3.4.
- Minimum required version of
nibabel
is now 2.3. - The :class:`.Image` class now fully delegates to
nibabel
for managing file handles. - The :class:`.GiftiMesh` class can now load surface files which contain
vertex data, and will accept surface files which end in
.gii
, rather than requiring files which end in.surf.gii
. - The
name
property of :class:`.Mesh` instances can now be updated.
Removed
- Many deprecated items removed.
Deprecated
- Deprecated the :func:`.loadIndexedImageFile` function, and the
indexed
flag to the :class:`.Image` constructor.
1.13.3 (Friday February 8th 2019)
Fixed
- Fixed an issue with the :func:`.dicom.loadSeries` using memory-mapping for image files that would subsequently be deleted.
- Fixed an issue in the :class:`.GiftiMesh` class, where
numpy
/nibabel
was returning read-only index arrays.
1.13.2 (Friday November 30th 2018)
Changed
- The :meth:`.Image.resample` method now supports images with more than three dimensions.
- The :func:`fsl.utils.fslsub.submit` now returns the job-id as a string rather than a one-element tuple. It now also accepts a nested sequence of job ids rather than just a flat sequence. This will also changes the output from the function wrappers in :mod:`fsl.wrappers` if submitted.
Fixed
- Fix to the :class:`.ImageWrapper` regarding complex data types.
1.13.1 (Friday November 23rd 2018)
Fixed
- Added a missing
image
attribute in the :class:`.VoxelwiseConfoundEV` class. - Make sure that FEAT
Cluster
objects (created by the :func:`.loadClusterResults` function) containp
andlogp
attributes, even when cluster thresholding was not used.
1.13.0 (Thursday 22nd November 2018)
Added
- New wrapper functions for :func:`.fsl_anat`, :func:`.applytopup` (Martin Craig).
- New :func:`.fileOrText` decorator for use in wrapper functions (Martin Craig).