A historic release DIPY 1.0.0!

Aug. 27, 2019, 2:26 p.m.


We are excited to announce a new major and historic release of Diffusion Imaging in Python (DIPY). DIPY 1.0.0 is out!

Please cite using the following DOI: 10.3389/fninf.2014.00008

DIPY 1.0.0 (Monday, 5 August 2019)

This release received contributions from 17 developers (the full release notes are at: https://dipy.org/documentation/1.0.0./release_notes/release1.0/). Thank you all for your contributions and feedback!

A new DIPY era is starting: this release is compatible with python 3.5+ and breaks backward compatibility with 0.x.x. Please click here to check API changes or look at the end of this email. The 0.16.x series will have extended bug-fix-only support for Python 2.7 until June 2020.

Highlights of this release include:

Critical API changes

New awesome website

Large refactoring of tracking API

New denoising algorithm: MP-PCA

New Gibbs ringing removal

New interpolation module: dipy.core.interpolation

New reconstruction models: Mean Signal DKI, MTMS-CSD

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


DIPY 0.16.x will be the last series to support python 2. The next release, DIPY 1.0, will support python 3 only.

To upgrade or install DIPY

Run the following command in your terminal:

pip install --upgrade dipy


conda install -c conda-forge dipy

This version of DIPY depends on nibabel (2.4.0+).

For visualization you need FURY (0.3.0+).

Questions or suggestions?

For any questions go to http://dipy.org, or send an e-mail to dipy@python.org

We also have an instant messaging service and chat room available at https://gitter.im/nipy/dipy

On behalf of the DIPY developers,

Eleftherios Garyfallidis, Ariel Rokem, Serge Koudoro


API Changes

Some of the changes introduced in the 1.0 release will break backwards compatibility with previous versions. This release is compatible with Python 3.5+


The spherical harmonics bases mrtrix and fibernav have been renamed to tournier07 and descoteaux07 after the deprecation cycle started in the 0.15 release.

We changed dipy.data.default_sphere from symmetric724 to repulsion724 which is more evenly distributed.


The API of dipy.segment.mask.median_otsu has changed in the following ways: if you are providing a 4D volume, vol_idx is now a required argument. The order of parameters has also changed.

Tractogram loading and saving

The API of dipy.io.streamlines.load_tractogram and dipy.io.streamlines.save_tractogram has changed in the following ways: When loading trk, tck, vtk, fib, or dpy) a reference nifti file is needed to guarantee proper spatial transformation handling.

Spatial transformation handling

Functions from dipy.tracking.streamlines were modified to enforce the affine parameter and uniform docstrings. deform_streamlines select_by_rois, orient_by_rois, _extract_vals and values_from_volume.

Functions from dipy.tracking.utils were modified to enforce the affine parameter and uniform docstring. density_map connectivity_matrix, seeds_from_mask, random_seeds_from_mask, target, target_line_based, near_roi, length and path_length were all modified.

The function affine_for_trackvis, move_streamlines, flexi_tvis_affine and get_flexi_tvis_affine were deleted.

Functions from dipy.tracking.life were modified to enforce the affine parameter and uniform docstring. voxel2streamline, setup and fit from class FiberModel were all modified.

afq_profile from dipy.stats.analysis was modified in a similar way.


dipy.sims.voxel.SingleTensor has been replaced by dipy.sims.voxel.single_tensor

dipy.sims.voxel.MultiTensor has been replaced by dipy.sims.voxel.multi_tensor

dipy.sims.voxel.SticksAndBall has been replaced by dipy.sims.voxel.sticks_and_ball


All interpolation functions have been moved to a new module name dipy.core.interpolation


The voxel_size parameter has been removed from the following function:





The dipy.reconst.peak_direction_getter.PeaksAndMetricsDirectionGetter has been renamed dipy.reconst.peak_direction_getter.EuDXDirectionGetter.

The LocalTracking and ParticleFilteringTracking functions were moved from dipy.tracking.local.localtrackingto dipy.tracking.local_tracking. They now need to be imported from dipy.tracking.local_tracking.

functions argument tissue_classifier were renamed stopping_criterion

The TissueClassifier were renamed StoppingCriterion and moved from dipy.tracking.local.tissue_classifier to dipy.tracking.stopping_criterion. They now need to be imported from dipy.tracking.stopping_criterion.

TissueClassifier -> StoppingCriterion

BinaryTissueClassifier -> BinaryStoppingCriterion

ThresholdTissueClassifier -> ThresholdStoppingCriterion

ConstrainedTissueClassifier -> AnatomicalStoppingCriterion

ActTissueClassifier -> ActStoppingCriterion

CmcTissueClassifier -> CmcStoppingCriterion

The dipy.tracking.local.tissue_classifier.TissueClass was renameddipy.tracking.stopping_criterion.StreamlineStatus.

The EuDX tracking function has been removed. EuDX tractography can be performed using dipy.tracking.local_tracking using dipy.reconst.peak_direction_getter.EuDXDirectionGetter.


dipy.io.trackvis has been removed. Use dipy.io.streamline instead.


dipy.external package has been removed.

dipy.fixes package has been removed.

dipy.segment.quickbundes module has been removed.

dipy.reconst.peaks module has been removed.

Compatibility with Python 2.7 has been removed