Skip to content

Latest commit

 

History

History
2369 lines (1394 loc) · 58.1 KB

CHANGELOG.rst

File metadata and controls

2369 lines (1394 loc) · 58.1 KB

This document contains the fslpy release history in reverse chronological order.

3.21.1 (Friday 27th September 2024)

Changed

3.21.0 (Tuesday 23rd July 2024)

Changed

  • Behaviour of the imcp / immv commands has been adjusted so that when an image file is copied/moved, and converted to a different format (e.g. .nii to .nii.gz), the image data and header slope/intercept fields are not modified (!462).

3.20.0 (Wednesday 10th July 2024)

Added

3.19.1 (Wednesday 26th June 2024)

Fixed

  • Minor Updates for compatibility with numpy 2.0 (!458).

3.19.0 (Friday 24th May 2024)

Added

Deprecated

  • Deprecated the :func:`.bedpostx_postproc_gpu` wrapper function - the bedpostx_postproc_gpu.sh and bedpostx_postproc.sh scripts are not intended to be called directly (!455).

3.18.3 (Saturday 4th May 2024)

Fixed

  • Fixed an issue with :mod:fsl.wrappers functions not finding output files when $FSLOUTPUTTYPE is set to something other than NIFTI_GZ (!452).

3.18.2 (Wednesday 3rd April 2024)

Fixed

3.18.1 (Tuesday 5th March 2024)

Fixed

  • Fixed an issue which could cause :mod:`fsl.wrappers` functions to crash when being executed concurrently (!446).

3.18.0 (Thursdday 22nd February 2024)

Added

  • New wrapper function for the FLIRT midtrans command (!443).
  • The :class:`.Image` class now accepts a version parameter, as an easy way of specifying the NIfTI file format version (!443).

3.17.0 (Friday 9th February 2024)

Added

  • New wrapper function for the FLIRT makerot command (!441).
  • New wrapper functions for the imcp, immv, imrm, imln, imglob and imtest commands. These are all implemented within fslpy, so the wrapper functions invoke them directly (i.e. within the same process) (!441).

3.16.1 (Wednesday 17th January 2024)

Added

  • The :func:`run` function now allows the log{'stdout'] and log{'stderr'} options (used for capturing the standard output/error streams of a called process) to be either file-likes or callables (!438).

3.16.0 (Thursday 21st December 2023)

Added

3.15.4 (Monday 27th November 2023)

Added

  • New silent option to the :func:`.run` function = passing silent=True is equivalent to passing log={'tee':False} (!428).
  • New prefix option to the :func:`.tempdir` function, which is passed through to tempfile.mkdtemp (!429).

3.15.3 (Thursday 16th November 2023)

Changed

  • Adjusted the :func:`.loadLabelFile` function to accept files with missing entries, and files which only contain the MELODIC directory path and list of noisy components (!424, !425).

Fixed

3.15.2 (Wednesday 4th October 2023)

Fixed

3.15.1 (Monday 25th September 2023)

Fixed

  • Fixed a problem with some unit tests (!420).

3.15.0 (Monday 25th September 2023)

Added

  • New :func:`.cluster` wrapper function for the FSL cluster / fsl-cluster command (!417).

Changed

3.14.1 (Thursday 31st August 2023)

Fixed

  • Fixed a bug in :meth:`.Image.__setitem__` - change listeners were being passed an un-normalised slice object (with slices for trailing dimensions of length 1 present) (!414).

3.14.0 (Wednesday 30th August 2023)

Added

  • New :func:`.affine.flip` function, for applying a flip/inversion to the axes of an affine transformation (!403).

Changed

  • The sform/qform fields of a :class:`.DeformationField` instance are automatically set from the reference image if they are not already set (!402).
  • Replaced setup.py-based build system with pyproject.toml (!402).
  • Tests have been moved into the fsl/tests/ package (!402).
  • Updated the `immv/imcp scripts to support FSLOUTPUTTYPE=ANALYZE (!405).

Fixed

  • Updated the `immv/imcp scripts to honour the $FSLOUTPUTTYPE environment variable more closely - conversions between NIFTI1 and NIFTI2 were not being performed correctly (!405).

3.13.3 (Monday 17th July 2023)

Changed

  • Callback functions registered with :class:`.Notifier` instances no longer need to accept three arguments (!400).

3.13.2 (Monday 3rd July 2023)

Added

  • New scaleAtOrigin option to the :func:`.affine.compose` function, which allows the origin to be preserved by scaling parameters (!398).

3.13.1 (Tuesday 13th June 2023)

Fixed

  • Fixed some minor issues with API documentation (!396).

3.13.0 (Monday 12th June 2023)

Added

Changed

Deprecated

3.12.1 (Tuesday 23rd May 2023)

Fixed

  • The :mod:`fsl.scripts.Text2Vest` now handles column vector inputs correctly (!387, !388).
  • The :func:`.tempdir` function was not changing back to the original working directory when the override argument was used (!388).

3.12.0 (Friday 19th May 2023)

Added

Changed

  • The :func:`.fslmaths` wrapper function now allows the -dt and -odt options to be set (!381).
  • Assertions (from the :mod:`.assertions` module) called within wrapper functions are now disabled if the command is to be submitted via fsl_sub (!382).
  • The :class:`.Image` class will now resolve symlinks when loading images from file (!383).

Fixed

3.11.3 (Thursday 2nd March 2023)

Fixed

3.11.2 (Monday 27th February 2023)

Fixed

3.11.1 (Friday 24th February 2023)

Added

Fixed

  • fixed the :class:`.fslstats` wrapper to handle index masks (the -K option) with missing label values (!374).

3.11.0 (Monday 20th February 2023)

Added

Changed

Fixed

3.10.0 (Wednesday 29th June 2022)

Added

Deprecated

3.9.6 (Wednesday 15th June 2022)

Added

3.9.5 (Thursday 2nd June 2022)

Changed

Fixed

3.9.4 (Friday 27th May 2022)

Changed

  • Changed the behaviour of :meth:`.Image.__getitem__` so that, if image data is accessed with a boolean mask array (e.g. image[mask > 0]), the image data is loaded into memory (!341).

3.9.3 (Friday 27th May 2022)

Fixed

3.9.2 (Friday 20th May 2022)

Changed

3.9.1 (Friday 13th May 2022)

Changed

  • Adjusted the :func:`.applyArgStyle` function so that it allows separate specification of the style to use for single-character arguments. This fixes some usage issues with commands such as FSL fast, which have regular --= arguments, but also single-character arguments which expect multiple positional values (!335).

3.9.0 (Tuesday 12th April 2022)

Added

Changed

Fixed

Deprecated

3.8.2 (Tuesday 15th February 2022)

Fixed

  • The the :func:`.topup` wrapper function now allows multiple file names to be passed to the --imain argument (!324).

3.8.1 (Tuesday 28th December 2021)

Fixed

  • The :func:`.melodic` wrapper function no longer requires its input argument to be a NIFTI image or file (!321).

3.8.0 (Thursday 23rd December 2021)

Added

Fixed

  • Fixed an issue with API documentation generation (!317).

3.7.1 (Friday 12th November 2021)

Changed

  • BIDS and dcm2niix .json sidecar files with control characters are now accepted (!312).

Fixed

  • Fixed an issue with temporary input files created by :mod:`fsl.wrappers` functions not being deleted (!313).

3.7.0 (Friday 20th August 2021)

Added

Changed

  • Performance of the :mod:`.imglob`, :mod:`.imln`, :mod:`imtest`, :mod:`.imrm` and :mod:`.remove_ext` scripts has been improved, by re-organising them to avoid unnecessary and expensive imports such as numpy (!310).
  • The default behaviour of the :func:`fsl.utils.run.run` function (and hence that of all :mod:`fsl.wrappers` functions) has been changed so that the standard output and error of the called command is now forwarded to the calling Python process, in addition to being returned from run as strings. In other words, the default behaviour of run('cmd'), is now equivalent to run('cmd', log={"tee":True}). The previous default behaviour can be achieved with run('cmd', log={"tee":False}) (!309).
  • The :func:`fsl.utils.run.run` and :func:`fsl.utils.run.runfsl` functions (and hence all :mod:`fsl.wrappers` functions) have been modified to use fsl.wrappers.fsl_sub instead of fsl.utils.fslsub.submit. This is an internal change which should not affect the usage of the run, runfsl or wrapper functions (!309).

Deprecated

3.6.4 (Tuesday 3rd August 2021)

Added

3.6.3 (Wednesday 28th July 2021)

Changed

  • When creating an Image object with loadData=False, the calcRange argument is ignored, as it would otherwise cause the data to be loaded (!301).

3.6.2 (Wednesday 23rd June 2021)

Changed

  • The fsl.wrappers.fast wrapper passes -v to fast if v=True or verbose=True is specified.

3.6.1 (Thursday 27th May 2021)

Changed

  • Removed the dataclasses backport from requirements (!297).

3.6.0 (Monday 19th April 2021)

Changed

Deprecated

  • Deprecated a number of GUI-specific properties in the :mod:`fsl.utils.platform` module, including frozen, haveGui, canHaveGui, inSSHSession, inVNCSession, wxPlatform, wxFlavour, glVersion, glRenderer, and glIsSoftwareRenderer. Equivalent functions are being added to the fsleyes-widgets library (!285).
  • The :mod:`fsl.utils.filetree` package has been deprecated, and will be removed in a future version of fslpy - it is now published as a separate library on [PyPI](https://pypi.org/project/file-tree/) (!286).

Fixed

  • Fixed an edge-case in the :mod:`.gifti` module, where a surface with a single triangle was being loaded incorrectly (!288).
  • Fixed an issue in the :func:`~.fslsub.func_to_cmd` function, where it was unintentionally leaving flie handles open (!291).

3.5.3 (Tuesday 9th February 2021)

Fixed

3.5.2 (Friday 29th January 2021)

Fixed

  • Adjusted the :func:`.dicom.scanDir` function so that it will set a default value for SeriesDescription if it is not present in the dcm2niix json output (!279).
  • Fixed some issues with API documentation generation (!279).

3.5.1 (Thursday 21st January 2021)

Added

Fixed

  • Adjustments to :mod:`.dicom` tests to work with different versions of dcm2niix (!277).

3.5.0 (Wednesday 20th January 2021)

Added

Fixed

  • Windows/WSL-specific workaround to the :func:`fsl.utils.run.run` function to avoid console windows from popping up, when used from a graphical program (!272).

3.4.0 (Tuesday 20th October 2020)

Added

Changed

  • Calls to functions in the :mod:`.assertions` module are disabled when a wrapper function is called with cmdonly=True.

3.3.3 (Wednesday 13th October 2020)

Changed

  • The :func:`.fileOrImage` (and related) decorators will not manipulate the return value of a decorated function if an argument cmdonly=True is passed. This is so that wrapper functions will directly return the command that would be executed when cmdonly=True.

3.3.2 (Tuesday 12th October 2020)

Changed

  • Most :func:`.wrapper` functions now accept an argument called cmdonly which, if True, will cause the generated command-line call to be returned, instead of executed.

3.3.1 (Thursday 8th October 2020)

Changed

Fixed

  • Fixed a bug in the :func:`.affine.decompose` function which was corrupting the scale estimates when given an affine containing shears.

3.3.0 (Tuesday 22nd September 2020)

Added

Changed

  • Updates to the BIDS filetree specification.

Fixed

  • The :class:`.CoefficientField` class now works with alternate reference images (i.e. a reference image with different dimensions to that which was originally used when the non-linear transformation was calculated).

3.2.2 (Thursday 9th July 2020)

Changed

  • The :func:`.fslsub.func_to_cmd` function allows more fine-grained control over whether the script file is removed after the job has finished running.

3.2.1 (Tuesday 23rd June 2020)

Changed

  • Minor updates to documentation.

3.2.0 (Thursday 11th June 2020)

Added

  • A new :func:`.fslsub.hold` function to wait on previously submitted jobs, to be used in place of the wait function.

Removed

3.1.0 (Thursday 21st May 2020)

Added

Changed

  • :func:`.Image` objects created from numpy arrays will be NIFTI1 or NIFTI2, depending on the value of the $FSLOUTPUTTYPE environment variable.

Fixed

  • Updated the :func:`.fast` wrapper to support some single-character command-line flags.

3.0.1 (Wednesday 15th April 2020)

Changed

  • The :func:`.isMelodicDir` function now accepts directories that do not end with .ica, as long as all required files are present.
  • Added the dataclasses backport, so fslpy is now compatible with Python 3.6 again.

3.0.0 (Sunday 29th March 2020)

Added

Changed

Fixed

Removed

  • Removed the deprecated .StatisticAtlas.proportions, .StatisticAtlas.coordProportions, and .StatisticAtlas.maskProportions methods.
  • Removed the deprecated indexed option to :meth:`.Image.__init__`.
  • Removed the deprecated .Image.resample method.
  • Removed the deprecated .image.loadIndexedImageFile function.
  • Removed the deprecatd .FileTreeQuery.short_names and .Match.short_name properties.
  • Removed the deprecated .idle.inIdle, .idle.cancelIdle, .idle.idleReset, .idle.getIdleTimeout, and .idle.setIdleTimeout functions.
  • Removed the deprecated resample.calculateMatrix function.

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

2.8.2 (Thursday 27th February 2020)

Fixed

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

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

Deprecated

2.7.0 (Wednesday 6th November 2019)

Added

Changed

Fixed

  • Fixed incorrect usage of setuptools.find_packages, which was causing unit tests to be installed.

Deprecated

2.6.2 (Monday 7th October 2019)

Changed

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

Changed

  • The :class:`.Cache` class has a new lru option, allowing it to be used as a least-recently-used cache.
  • The :mod:`fsl.utils.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

2.5.0 (Tuesday 6th August 2019)

Added

Changed

Deprecated

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

2.3.0 (Tuesday June 25th 2019)

Added

Fixed

2.2.0 (Wednesday May 8th 2019)

Added

Changed

Fixed

Deprecated

2.1.0 (Saturday April 13th 2019)

Added

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

2.0.1 (Monday April 1st 2019)

Fixed

2.0.0 (Friday March 20th 2019)

Added

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

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

1.13.1 (Friday November 23rd 2018)

Fixed

1.13.0 (Thursday 22nd November 2018)

Added

Changed

  • Various minor changes and enhancements to the FSL function :mod:`.wrappers` interfaces (Martin Craig).

Fixed

  • The immv and imcp scripts now accept incorrect file extensions on input arguments.

1.12.0 (Sunday October 21st 2018)

Changed

Deprecated

  • The extract_noise script.

1.11.1 (Friday September 14th 2018

Fixed

1.11.0 (Thursday September 13th 2018)

Added

Changed

  • Development (test and documentation dependencies) are no longer listed in setup.py - they now need to be installed manually.
  • Removed conda build infrastructure.

1.10.3 (Sunday September 9th 2018)

Added

1.10.2 (Friday September 7th 2018)

Fixed

1.10.1 (Friday August 3rd 2018)

Changed

  • Minor adjustmenets to improve Windows compatibility.

Fixed

1.10.0 (Wednesday July 18th 2018)

Added

Changed

  • When using the :func:`.run.run` function, the command output/error streams are now forwarded immediately.
  • Removed dependency on pytest-runner.

1.9.0 (Monday June 4th 2018)

Added

  • New :meth:`.Image.data` property method, for easy access to image data as a numpy array.
  • New log option to the :func:`.run.run` function, allowing more fine-grained control over sub-process output streams.
  • New :meth:`.Platform.fsldevdir` property, allowing the $FSLDEVDIR environment variable to be queried/changed.

Changed

Deprecated

1.8.1 (Friday May 11th 2018)

Changed

1.8.0 (Thursday May 3rd 2018)

Added

Changed

  • The :func:`.tempdir` function has an option to not change to the newly created directory.

Deprecated

1.7.2 (Monday March 19th 2018)

Added

1.7.1 (Monday March 12th 2018)

Changed

Fixed

1.7.0 (Tuesday March 6th 2018)

Added

  • The :mod:`fsl.utils.assertions` module contains a range of functions which can be used to assert that some condition is met.
  • The :mod:`fsl.utils.ensure` module contains a range of functions (currently just one) which can be used to ensure that some condiution is met.

Changed

Fixed

Deprecated

1.6.8 (Monday February 12th 2018)

  • The atlasq, immv, imcp and imglob scripts suppress some warnings.

1.6.7 (Friday February 9th 2018)

  • More further adjustments to the conda package build.
  • Adjustments to pypi source distribution - the requirements-extra.txt file was not being included.

1.6.6 (Thursday February 8th 2018)

  • Further adjustments to the conda package build.

1.6.5 (Tuesday February 6th 2018)

  • Adjustments to the conda package build.

1.6.4 (Monday February 5th 2018)

1.6.3 (Friday February 2nd 2018)

  • Minor enhancements to the :class:`.WeakFunctionRef` class.
  • Some bugfixes to the :mod:`fsl.utils.imcp` module, with respect to handling relative path names, moving file groups (e.g. .img/.hdr pairs), and non-existent directories.

1.6.2 (Tuesday January 30th 2018)

  • Updates to the conda installation process.
  • A new script is installed when fslpy is installed via pip or conda - atlasquery, which emulates the FSL atlasquery tool.

1.6.1 (Monday January 29th 2018)

  • Removed lxml as a dependency - this was necessary in older versions of trimesh.

1.6.0 (Friday January 26th 2018)

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)

1.5.2 (Tuesday January 2nd 2018)

  • Fixed issue with MANIFEST.in file.

1.5.1 (Thursday December 14th 2017)

1.5.0 (Wednesday December 13th 2017)

1.4.2 (Tuesday December 5th 2017)

1.4.1 (Thursday November 9th 2017)

  • Fixed bug in setup.py.

1.4.0 (Thursday November 9th 2017)

1.3.1 (Wednesday October 25th 2017)

1.3.0 (Wednesday October 25th 2017)

1.2.2 (Saturday October 21st 2017)

1.2.1 (Saturday October 7th 2017)

1.2.0 (Thursday September 21st 2017)

1.1.0 (Monday September 11th 2017)

1.0.5 (Thursday August 10th 2017)

1.0.4 (Friday July 14th 2017)

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)

1.0.1 (Sunday 4th June 2017)

1.0.0 (Saturday May 27th 2017)

0.11.0 (Thursday April 20th 2017)

  • First public release as part of FSL 5.0.10