.. -*- mode: rst -*-
.. vim:syntax=rest

.. _changelog:

Dipy Development Changelog
-----------------------------

Dipy is a diffusion MR imaging library written in Python

'Close gh-' statements refer to GitHub issues that are available at::

  http://github.com/dipy/dipy/issues

The full VCS changelog is available here:

  http://github.com/dipy/dipy/commits/master

Releases
~~~~~~~~

Dipy
++++

The code found in Dipy was created by the people found in the AUTHOR file.

* 1.6.0 (Monday, January 16, 2023)

- NF: Unbiased groupwise linear bundle registration added.
- NF: MAP+ constraints added.
- Generalized PCA to less than 3 spatial dims.
- Add positivity constraints to QTI.
- Ability to apply Symmetric Diffeomorphic Registration to points/streamlines.
- New Human Connectome Project (HCP) data fetcher added.
- New Healthy Brain Network (HBN) data fetcher added.
- Multiple Workflows updated (DTIFlow, LPCAFlow, MPPCA) and added (RUMBAFlow).
- Ability to handle VTP files.
- Large codebase cleaning.
- Large documentation update.
- Closed 75 issues and merged 41 pull requests.

* 1.5.0 (Friday, March 11, 2022)

- New reconstruction model added: Q-space Trajectory Imaging (QTI).
- New reconstruction model added: Robust and Unbiased Model-BAsed Spherical Deconvolution (RUMBA-SD).
- New reconstruction model added: Residual block Deep Neural Network (ResDNN).
- Masking management in Affine Registration added.
- Multiple Workflows updated (DTIFlow, DKIFlow, ImageRegistrationFlow) and added (MotionCorrectionFlow).
- Compatibility with Python 3.10 added.
- Migrations from Azure Pipeline to Github Actions.
- Large codebase cleaning.
- New parallelisation module added.
- ``dipy.io.bvectxt`` module deprecated.
- New DIPY Horizon features (ROI Visualizer, random colors flag).
- Large documentation update.
- Closed 129 issues and merged 72 pull requests.

* 1.4.1 (Thursday, May 6, 2021)

- Patch2Self and its documentation updated.
- BUAN and Recobundles documentation updated.
- Standardization and improvement of the multiprocessing / multithreading rules.
- Community and governance information added.
- New surface seeding module for tractography named `mesh`.
- Large update of Cython code in respect of the last standard.
- Large documentation update.
- Closed 61 issues and merged 28 pull requests.

* 1.4.0 (Tuesday, March 14, 2021)

- New self-supervised denoising algorithm Patch2Self added.
- BUAN and RecoBundles documentation updated.
- Response function refactored and clarified.
- B-tensor allowed with response functions.
- Large Command Line Interface (CLI) documentation updated.
- Public API for Registration added.
- Large documentation update.
- Closed 47 issues and merged 19 pull requests.

* 1.3.0 (Tuesday, November 3, 2020)

- Gibbs ringing correction 10X faster.
- Spherical harmonics basis definitions updated.
- Added SMT2 metrics from mean signal diffusion kurtosis.
- New interface functions added to the registration module.
- New linear transform added to the registration module.
- New tutorials for DIPY command line interfaces.
- Fixed compatibility issues with different dependencies.
- Tqdm (multiplatform progress bar for data downloading) dependency added.
- Large documentation update.
- Bundle section highlight from BUAN added in Horizon.
- Closed 134 issues and merged 49 pull requests.

* 1.2.0 (Tuesday, September 9, 2020)

- New command line interfaces for group analysis: BUAN.
- Added b-tensor encoding for gradient table.
- Better support for single shell or multi-shell response functions.
- Stats module refactored.
- Numpy minimum version is 1.2.0.
- Fixed compatibilities with FURY 0.6+, VTK9+, CVXPY 1.1+.
- Added multiple tutorials for DIPY command line interfaces.
- Updated SH basis convention.
- Improved performance of tissue classification.
- Fixed a memory overlap bug (multi_median).
- Large documentation update (typography / references).
- Closed 256 issues and merged 94 pull requests.

* 1.1.1 (Friday, January 10, 2020)

- New module for deep learning ``dipy.nn`` (uses TensorFlow 2.0).
- Improved DKI performance and increased utilities.
- Non-linear and RESTORE fits from DTI compatible now with DKI.
- Numerical solutions for estimating axial, radial and mean kurtosis.
- Added Kurtosis Fractional Anisotropy by Glenn et al. 2015.
- Added Mean Kurtosis Tensor by Hansen et al. 2013.
- Nibabel minimum version is 3.0.0.
- Azure CI added and Appveyor CI removed.
- New command line interfaces for LPCA, MPPCA and Gibbs unringing.
- New MSMT CSD tutorial added.
- Horizon refactored and updated to support StatefulTractograms.
- Speeded up all cython modules by using a smarter configuration setting.
- All tutorials updated to API changes and 2 new tutorials added.
- Large documentation update.
- Closed 126 issues and merged 50 pull requests.

* 1.0.0 (Monday, 5 August 2019)

- Critical :doc:`API changes <api_changes>`
- Large refactoring of tracking API.
- New denoising algorithm: MP-PCA.
- New Gibbs ringing removal.
- New interpolation module: ``dipy.core.interpolation``.
- New reconstruction models: MTMS-CSD, Mean Signal DKI.
- Increased coordinate systems consistency.
- New object to manage safely tractography data: StatefulTractogram
- New command line interface for downloading datasets: FetchFlow
- Horizon updated, medical visualization interface powered by QuickBundlesX.
- Removed all deprecated functions and parameters.
- Removed compatibility with Python 2.7.
- Updated minimum dependencies version (Numpy, Scipy).
- All tutorials updated to API changes and 3 new added.
- Large documentation update.
- Closed 289 issues and merged 98 pull requests.

* 0.16.0 (Sunday, 10 March 2019)

- Horizon, medical visualization interface powered by QuickBundlesX.
- New Tractometry tools: Bundle Analysis / Bundle Profiles.
- New reconstruction model: IVIM MIX (Variable Projection).
- New command line interface: Affine and Diffeomorphic Registration.
- New command line interface: Probabilistic, Deterministic and PFT Tracking.
- Integration of Cython Guidelines for developers.
- Replacement of Nose by Pytest.
- Documentation update.
- Closed 103 issues and merged 41 pull requests.

* 0.15 (Wednesday, 12 December 2018)

- Updated RecoBundles for automatic anatomical bundle segmentation.
- New Reconstruction Model: qtau-dMRI.
- New command line interfaces (e.g. dipy_slr).
- New continuous integration with AppVeyor CI.
- Nibabel Streamlines API now used almost everywhere for better memory management.
- Compatibility with Python 3.7.
- Many tutorials added or updated (5 New).
- Large documentation update.
- Moved visualization module to a new library: FURY.
- Closed 287 issues and merged 93 pull requests.

* 0.14 (Tuesday, 1 May 2018)

- RecoBundles: anatomically relevant segmentation of bundles
- New super-fast clustering algorithm: QuickBundlesX
- New tracking algorithm: Particle Filtering Tracking.
- New tracking algorithm: Probabilistic Residual Bootstrap Tracking.
- Integration of the Streamlines API for reading, saving and processing tractograms.
- Fiber ORientation Estimated using Continuous Axially Symmetric Tensors (Forecast).
- New command line interfaces.
- Deprecated fvtk (old visualization framework).
- A range of new visualization improvements.
- Large documentation update.

* 0.13 (Monday, 24 October 2017)

- Faster local PCA implementation.
- Fixed different issues with OpenMP and Windows / OSX.
- Replacement of cvxopt by cvxpy.
- Replacement of Pytables by h5py.
- Updated API to support the latest numpy version (1.14).
- New user interfaces for visualization.
- Large documentation update.

* 0.12 (Tuesday, 26 June 2017)

- IVIM Simultaneous modeling of perfusion and diffusion.
- MAPL, tissue microstructure estimation using Laplacian-regularized MAP-MRI.
- DKI-based microstructural modelling.
- Free water diffusion tensor imaging.
- Denoising using Local PCA.
- Streamline-based registration (SLR).
- Fiber to bundle coherence (FBC) measures.
- Bayesian MRF-based tissue classification.
- New API for integrated user interfaces.
- New hdf5 file (.pam5) for saving reconstruction results.
- Interactive slicing of images, ODFS, and peaks.
- Updated API to support the latest numpy versions.
- New system for automatically generating command line interfaces.
- Faster computation of the Cross-Correlation metric for registration.

* 0.11 (Sunday, 21 February 2016)

- New framework for the contextual enhancement of ODFs.
- Compatibility with numpy (1.11).
- Compatibility with VTK 7.0 which supports Python 3.x.
- Faster PIESNO for noise estimation.
- Reorient gradient directions according to motion correction parameters.
- Supporting Python 3.3+ but not 3.2.
- Reduced memory usage in DTI.
- DSI now can use datasets with multiple b0s.
- Fixed different issues with Windows 64bit and Python 3.5.

* 0.10 (Thursday, 2 December 2015)

* Compatibility with new versions of scipy (0.16) and numpy (1.10).
* New cleaner visualization API, including compatibility with VTK 6, and functions to create your own interactive visualizations.
* Diffusion Kurtosis Imaging(DKI): Google Summer of Code work by Rafael Henriques.
* Mean Apparent Propagator (MAP) MRI for tissue microstructure estimation.
* Anisotropic Power Maps from spherical harmonic coefficients.
* New framework for affine registration of images.

* 0.9.2 (Wednesday, 18 March 2015)

* Anatomically Constrained Tissue Classifiers for Tracking
* Massive speedup of Constrained Spherical Deconvolution (CSD)
* Recursive calibration of the response function for CSD
* New experimental framework for clustering
* Improvements and 10X speedup for Quickbundles
* Improvements in Linear Fascicle Evaluation (LiFE)
* New implementation of Geodesic Anisotropy
* New efficient transformation functions for registration
* Sparse Fascicle Model supports acquisitions with multiple b-values


* 0.8.0 (Tuesday, 6 Jan 2015)

* Nonlinear Image-based Registration (SyN)
* Streamline-based Linear Registration (SLR)
* Linear Fascicle Evaluation (LiFE)
* Cross-validation for reconstruction models
* Sparse Fascicle Model (SFM)
* Non-local means denoising (NLMEANS)
* New modular tracking machinery
* Closed 388 issues and merged 155 pull requests
* A variety of bug-fixes and speed improvements

* 0.7.1 (Thursday, 16 Jan 2014)

* Made installing Dipy easier and more universal
* Fixed automated seeding problems for tracking
* Removed default parameter for odf_vertices in EuDX

* 0.7.0 (Monday, 23 Dec 2013)

* Constrained Spherical Deconvolution (CSD)
* Simple Harmonic Oscillator based Reconstruction and Estimation (SHORE)
* Sharpening Deconvolution Transform (SDT)
* Signal-to-noise ratio estimation
* Parallel processing enabled for all reconstruction models using `peaks_from_model`
* Simultaneous peak and ODF visualization
* Streamtube visualization
* Electrostatic repulsion for sphere generation
* Connectivity matrices and density maps
* Streamline filtering through specific ROIs using `target`
* Brain extraction and foreground extraction using `median_otsu`
* RESTORE fitting for DTI
* Westin's Tensor maps
* Access to more publicly available datasets directly through Dipy functions.
* 3x more tutorials than the previous release


* 0.6.0 (Sunday, 24 Mar 2013)

* Cython 0.17+ enforced
* New reconstruction models API
* Diffusion Spectrum Imaging (DSI)
* DSI with deconvolution
* Generalized Q-sampling Imaging 2 (GQI2)
* Modular fiber tracking
  * deterministic
  * probabilistic
* Fast volume indexing (a faster ndindex)
* Spherical Harmonic Models
  * Opdt (Tristan-Vega et. al)
  * CSA odf (Aganj et. al)
  * Analytical Q-ball (Descoteaux et. al)
  * Tuch's Q-ball (Tuch et. al)
* Visualization of spherical functions
* Peak finding in odfs
* Non-linear peak finding
* Sphere Object
* Gradients Object
* 2D sphere plotting
* MultiTensor and Ball & Sticks voxel simulations
* Fetch/Download data for examples
* Software phantom generation
* Angular similarity for comparisons between multiple peaks
* SingleVoxelModel to MultiVoxelModel decorator
* Mrtrix and fibernavigator SH bases
* More Benchmarks
* More Tests
* Color FA and other Tensor metrics added
* Scripts for the ISBI 2013 competition
* Fit_tensor script added
* Radial basis function interpolation on the sphere
* New examples/tutorials


* 0.5.0 (Friday, 11 Feb 2011)

  * Initial release.

    * Reconstruction algorithms e.g. GQI, DTI
    * Tractography generation algorithms e.g. EuDX
    * Intelligent downsampling of tracks
    * Ultra-fast tractography clustering
    * Resampling datasets with anisotropic voxels to isotropic
    * Visualizing multiple brains simultaneously
    * Finding track correspondence between different brains
    * Reading many different file formats e.g. Trackvis or Nifti
    * Dealing with huge tractography without memory restrictions
    * Playing with datasets interactively without storing
    * And much more and even more to come in next releases
