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
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?
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
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