=========================
First release in the 1.4.x series.
This release includes enhancements and bug-fixes towards the release of the first
beta version of *dMRIPrep*.
It also contains new features that are necessary for the API overhaul that has
happened within the new *SDCFlows 2.x* series.
The new series include a cross-cutting (modalities, species) workflow to generate
EPI references.
Finally other *NiPreps* will also have a first release with specific support for
them: *NiRodents* and *NiBabies* (and their corresponding *fMRIPrep* extensions).
.. admonition:: *NiWorkflows* has been relicensed!
As of the first release candidate of the 1.4 series, the license has changed
from BSD 3-clause to the Apache License 2.0.
Amongst several terms that are changing, the following two premises are relevant
if you derive code from the new series:
* *You must give any other recipients of the Work or Derivative Works a copy
of this License*; and
* *You must cause any modified files to carry prominent notices stating that
You changed the files*.
A list of prominent changes can be found below. (With thanks to Lea Waller for the contributions)
* DOC: Ensure copyright notice in all headers' comment (635)
* FIX: Set slope and intercept to 1/0 if not otherwise provided (649)
* FIX: ``DerivativesDataSink`` warning when it has multiple source files (647)
* FIX: ``FSDetectInputs`` mutually exclusive options for ``ReconAll`` (646)
* FIX: Remove pandas warning about use of keyword arguments (645)
* FIX: Improve ``SimpleBeforeAfterRPT`` contour visibility (643)
* FIX: ``DerivativesDataSink`` dismissing entity writing reportlet (638)
* FIX: Ensure ``IntensityClip`` input is a 3D file (621)
* FIX: Limit memory usage in ``EstimateReferenceImage`` (629)
* FIX: Purge removed ``--disable`` flag from *svgo* call (626)
* FIX: Re-add ``sbref_file`` input to reference volume interface (624)
* FIX: Update svgutils after breaking API changes (620)
* FIX: Address issues with ``RobustAverage`` global signal measurement (607)
* FIX: ``NonsteadyStatesDetector`` wrongly using Nipype's ``is_outlier`` (605)
* FIX: Change in *svgutils*' API on 0.3.2 breaks reportlets (599)
* FIX: Check for ``in_segm`` input, not ``seg_file`` (typo) (592)
* FIX: Use the mask to calculate FOV rather than the fixed image in ``GenerateSamplingReference`` (583)
* FIX: Allow omission of ``<res>`` for template normalization (582)
* FIX: Include ``_T2starw`` ``_MTw`` and ``_TSE``-suffixes in ``build_path`` options (584)
* FIX: ``DerivativesDataSink`` warning when it has multiple source files (573)
* ENH: Allow ``SimpleBeforeAfterRPT`` plotting of image rotated to cardinal axes (650)
* ENH: Update visual report specification with fieldmaps (634)
* ENH: Expose the output of the ``ValidateImage`` node as an output in EPI reference workflow (636)
* ENH: Add an inversion operation to ``IntensityClip`` (616)
* ENH: Cross-cutting (modalities, species) workflow to generate EPI references (610)
* ENH: Add a ``RobustAverage`` interface and split volume selection (602)
* ENH: Revise some patterns of the ``BIDSLayout`` config to aid *SDCFlows* new API (585)
* ENH: Upstream *fMRIPrep*'s ``init_bbreg_wf`` to integrate it in *dMRIPrep* (586)
* MAINT: Pin *svgutils* to previous versions (596)
* MAINT: Drop gh-pages history, reducing repository size (622)
* MAINT: Add DS030 dataset, with clipped (55 timepoints) BOLD data (609)
* MAINT: Migrate ``ds003_downsampled`` to ``nipreps-data`` (608)
* MAINT: Move mask-regressions test-data to datalad + nipreps-data (606)
* MAINT: Refactor structure of interfaces (603)
* MAINT: Drop Python 3.6, test setuptools builds, pip installations, and revise Docker pinned versions (593)
* MAINT: CircleCI housekeeping (580)
* RF: Write derivatives once, using deterministic gzip settings (641)
.. caution::
The ``niworkflows.interfaces`` submodule has been refactored.
To migrate from previous series, please modify the following imports:
* ``images.MatchHeader`` -> ``header.MatchHeader``
* ``images.ValidateImage`` -> ``header.ValidateImage``
* ``images.Demean`` -> ``nibabel.Demean``
* ``images.FilledImageLike`` -> ``nibabel.FilledImageLike``
* ``images.RegridToZooms`` -> ``nibabel.RegridToZooms``
* ``masks.ROIsPlot`` -> ``reportlets.masks.ROIsPlot``
* ``masks.ComputeEPIMask`` -> ``nilearn.ComputeEPIMask``
* ``mni.RobustMNINormalization`` -> ``norm.SpatialNormalization``
* New ``niworkflows.interfaces.reportlets`` submodule
* ``report_base`` -> ``reportlets.base``
* ``masks`` -> ``reportlets.masks``
* ``registration`` -> ``reportlets.registration``
* ``segmentation`` -> ``reportlets.segmentation``
* ``utils.GenerateSamplingReference`` -> ``nibabel.GenerateSamplingReference``
* ``utils.CopyXForm`` -> ``header.CopyXForm``
* ``utils.NormalizeMotionParams`` -> ``confounds.NormalizeMotionParams``
* ``utils.AddTPMs`` -> ``probmaps.AddTPMs``
* ``utils.TPM2ROI`` -> ``probmaps.TPM2ROI``
* ``utils.AddTSVHeader`` -> ``utility.AddTSVHeader``
* ``utils.JoinTSVColumns`` -> ``utility.JoinTSVColumns``
* ``utils.DictMerge`` -> ``utility.DictMerge``
* ``utils.TSV2JSON`` -> ``utility.TSV2JSON``
Beware that interface aliases at the top ``niworkflows.interfaces`` level have
been removed:
* ``ExpandModel``, ``SpikeRegressors`` from ``confounds``
* ``BET`` -> ``reportlets.masks.BETRPT``
* ``FAST`` -> ``reportlets.segmentation.FASTRPT``
* ``FLIRT``, ``ApplyXFM``, ``RobustMNINormalization``, ``Registration``,
``ApplyTransforms``, ``SimpleBeforeAfter`` now under ``reportlets.registration``
as ``FLIRTRPT``, ``ApplyXFMRPT``, ``RobustMNINormalizationRPT``, ``ANTSRegistrationRPT``,
``ANTSApplyTransformsRPT``, ``SimpleBeforeAfterRPT``.
* ``CopyXForm``, ``CopyHeader``, ``SanitizeImage`` now under ``header``
* ``NormalizeMotionParams`` now under ``confounds``.
* ``FMRISummary``, ``CompCorVariancePlot``, ``ConfoundsCorrelationPlot`` from ``plotting``