ANN: DIPY 1.0.0 - a historic release

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

Note:

  • 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

or

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

https://dipy.org/contributors

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+

Reconstruction

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.

Segmentation

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.

Simulations

  • 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

Interpolation

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

Tracking

The voxel_size parameter has been removed from the following function:

  • dipy.tracking.utils.connectivity_matrix
  • dipy.tracking.utils.density_map
  • dipy.tracking.utils.stremline_mapping
  • dipy.tracking._util._mapping_to_voxel

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.

Streamlines

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

Other

  • 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
2 Likes