Changes in Nipype

1.8.5 (September 21, 2022)

Bug-fix release in the 1.8.x series.

1.8.4 (September 01, 2022)

Bug-fix release in the 1.8.x series.

This release sets a maximum traits version to avoid new, breaking changes.

1.8.3 (July 14, 2022)

Bug-fix release in the 1.8.x series.

This release includes compatibility fixes for nibabel 4.x and resolves a denial-of-service bug when the etelemetry server is down that resulted in excessive (blocking) network hits that would cause any tools using nipype interfaces to take a very long time.

(Full changelog)

1.8.2 (June 06, 2022)

Bug-fix release in the 1.8.x series.

This release restores compatibility with networkx 2.8.3, which errors when graph nodes might conflict with pydot parsing.

(Full changelog)

1.8.1 (May 16, 2022)

Bug-fix release in the 1.8.x series.

The previous release vendored distutils.version.LooseVersion, and the vendored objects did not preserve compatibility with the distutils objects. This release switches to the looseversion package that ensures compatibility.

1.8.0 (May 10, 2022)

New feature release in the 1.8.x series.

The primary new features are a batch of PETSurfer interfaces.

This release drops support for Python < 3.7 and Numpy < 1.17, triggering a minor version bump. Additionally, matplotlib < 2.1 will stop working with some interfaces, but more recent versions will start working.

(Full changelog)

1.7.1 (April 05, 2022)

(Full changelog)

1.7.0 (October 20, 2021)

(Full changelog)

1.6.1 (June 16, 2021)

Bug-fix release in the 1.6.x series.

(Full changelog)

1.6.0 (November 28, 2020)

New feature release in the 1.6.x series.

In addition to the usual bug fixes, significant reductions were made in workflow startup costs.

(Full changelog)

1.5.1 (August 16, 2020)

Bug-fix release in the 1.5.x series.

This release includes small updates to ANTs utilities that lie somewhere between bug fixes and enhancements.

(Full changelog)

1.5.0 (June 03, 2020)

New feature release in the 1.5.x series.

In this release, the example scripts have been split out into their own package: niflow-nipype1-examples.

(Full changelog)

1.4.2 (February 14, 2020)

(Full changelog)

1.4.1 (January 27, 2020)

(Full changelog)

1.4.0 (December 20, 2019)

(Full changelog)

1.3.1 (November 12, 2019)

1.3.0 (November 11, 2019)

(Full changelog)

1.2.3 (September 23, 2019)

Python 1.2.3 will be the last version to support Python 3.4.

(Full changelog)

1.2.2 (September 07, 2019)

(Full changelog)

1.2.1 (August 19, 2019)

(Full changelog)

1.2.0 (May 09, 2019)

(Full changelog)

1.1.9 (February 25, 2019)

(Full changelog)

1.1.8 (January 28, 2019)

(Full changelog)

1.1.7 (December 17, 2018)

(Full changelog)

1.1.6 (November 26, 2018)

(Full changelog)

1.1.5 (November 08, 2018)

Hotfix release.

(Full changelog)

1.1.4 (October 31, 2018)

(Full changelog)

1.1.3 (September 24, 2018)

(Full changelog)

1.1.2 (August 11, 2018)

Hot-fix release, resolving incorrect dependencies in 1.1.1 wheel.

(Full changelog)

1.1.1 (July 30, 2018)

(Full changelog)

1.1.0 (July 04, 2018)

(Full changelog)

1.0.4 (May 29, 2018)

(Full changelog)

1.0.3 (April 30, 2018)

(Full changelog)

1.0.2 (March 27, 2018)

(Full changelog)

1.0.1 (February 27, 2018)

(Full changelog)

1.0.0 (January 24, 2018)

(Full changelog)

0.14.0 (November 29, 2017)

(Full changelog)

0.14.0rc1 (November 21, 2017)

0.13.1 (May 20, 2017)

0.13.0 (May 11, 2017)

0.13.0-rc1 (January 4, 2017)

Release 0.12.1 (August 3, 2016)

Release 0.12.0 (July 12, 2016)

Release 0.11.0 (September 15, 2015)

Release 0.10.0 (October 10, 2014)

  • ENH: New miscelaneous interfaces: SplitROIs (mapper), MergeROIs (reducer)

    to enable parallel processing of very large images.

  • ENH: Updated FSL interfaces: BEDPOSTX and XFibres, former interfaces are still

    available with the version suffix: BEDPOSTX4 and XFibres4. Added gpu versions of BEDPOSTX: BEDPOSTXGPU, BEDPOSTX5GPU, and BEDPOSTX4GPU

  • ENH: Added experimental support for MIPAV algorithms thorugh JIST plugins

  • ENH: New dipy interfaces: Denoise, Resample

  • ENH: New Freesurfer interfaces: Tkregister2 (for conversion of fsl style matrices to freesurfer format), MRIPretess

  • ENH: New FSL interfaces: WarpPoints, WarpPointsToStd, EpiReg, ProbTrackX2, WarpUtils, ConvertWarp

  • ENH: New miscelaneous interfaces: AddCSVRow, NormalizeProbabilityMapSet, AddNoise

  • ENH: New AFNI interfaces: Eval, Means, SVMTest, SVMTrain

  • ENH: FUGUE interface has been refactored to use the name_template system, 3 examples

    added to doctests, some bugs solved.

  • API: Interfaces to external packages are no longer available in the top-level

    nipype namespace, and must be imported directly (e.g. from nipype.interfaces import fsl).

  • ENH: Support for elastix via a set of new interfaces: Registration, ApplyWarp,

    AnalyzeWarp, PointsWarp, and EditTransform

  • ENH: New ANTs interface: ApplyTransformsToPoints, LaplacianThickness

  • ENH: New Diffusion Toolkit interface: TrackMerge

  • ENH: New MRtrix interface: FilterTracks

  • ENH: New metrics group in algorithms. Now Distance, Overlap, and FuzzyOverlap

    are found in nipype.algorithms.metrics instead of misc. Overlap interface extended to allow files containing multiple ROIs and volume physical units.

  • ENH: New interface in algorithms.metrics: ErrorMap (a voxel-wise diff map).

  • ENH: New FreeSurfer workflow: create_skullstripped_recon_flow()

  • ENH: Deep revision of workflows for correction of dMRI artifacts. New dmri_preprocessing


  • ENH: New data grabbing interface that works over SSH connections, SSHDataGrabber

  • ENH: New color mode for write_graph

  • ENH: You can now force MapNodes to be run serially

  • ENH: Added ANTS based openfmri workflow

  • ENH: MapNode now supports flattening of nested lists

  • ENH: Support for headless mode using Xvfb

  • ENH: nipype_display_crash has a debugging mode

  • FIX: MRTrix tracking algorithms were ignoring mask parameters.

  • FIX: FNIRT registration pathway and associated OpenFMRI example script

  • FIX: spm12b compatibility for Model estimate

  • FIX: Batch scheduler controls the number of maximum jobs properly

  • FIX: Update for FSL 5.0.7 which deprecated Contrast Manager

Release 0.9.2 (January 31, 2014)

  • FIX: DataFinder was broken due to a typo

  • FIX: Order of DataFinder outputs was not guaranteed, it’s human sorted now

  • ENH: New interfaces: Vnifti2Image, VtoMat

Release 0.9.1 (December 25, 2013)

  • FIX: installation issues

Release 0.9.0 (December 20, 2013)

  • ENH: SelectFiles: a streamlined version of DataGrabber

  • ENH: new tools for defining workflows: JoinNode, synchronize and itersource

  • ENH: W3C PROV support with optional RDF export built into Nipype

  • ENH: Added support for Simple Linux Utility Resource Management (SLURM)

  • ENH: AFNI interfaces refactor, prefix, suffix are replaced by


  • ENH: New SPM interfaces:
    • spm.ResliceToReference,

    • spm.DicomImport

  • ENH: New AFNI interfaces:
    • afni.AFNItoNIFTI

    • afni.TCorr1D

  • ENH: Several new interfaces related to Camino were added:
    • camino.SFPICOCalibData

    • camino.Conmat

    • camino.QBallMX

    • camino.LinRecon

    • camino.SFPeaks

    One outdated interface no longer part of Camino was removed:
    • camino.Conmap

  • ENH: Three new mrtrix interfaces were added:
    • mrtrix.GenerateDirections

    • mrtrix.FindShPeaks

    • mrtrix.Directions2Amplitude

  • ENH: New FSL interfaces:
    • fsl.PrepareFieldmap

    • fsl.TOPUP

    • fsl.ApplyTOPUP

    • fsl.Eddy

  • ENH: New misc interfaces:
    • FuzzyOverlap,

    • P2PDistance

  • ENH: New workflows: nipype.workflows.dmri.fsl.epi.[fieldmap_correction&topup_correction]

  • ENH: Added simplified outputname generation for command line interfaces.

  • ENH: Allow ants use a single mask image

  • ENH: Create configuration option for parameterizing directories with hashes

  • ENH: arrange nodes by topological sort with disconnected subgraphs

  • ENH: uses the nidm iri namespace for uuids

  • ENH: remove old reporting webpage

  • ENH: Added support for Vagrant

  • API: ‘name’ is now a positional argument for Workflow, Node, and MapNode constructors

  • API: SPM now defaults to SPM8 or SPM12b job format

  • API: DataGrabber and SelectFiles use human (or natural) sort now

  • FIX: Several fixes related to Camino interfaces:
    • ProcStreamlines would ignore many arguments silently (target, waypoint, exclusion ROIS, etc.)

    • DTLUTGen would silently round the “step”, “snr” and “trace” parameters to integers

    • PicoPDFs would not accept more than one lookup table

    • PicoPDFs default pdf did not correspond to Camino default

    • Track input model names were outdated (and would generate an error)

    • Track numpds parameter could not be set for deterministic tractography

    • FA created output files with erroneous extension

  • FIX: Deals properly with 3d files in SPM Realign

  • FIX: SPM with MCR fixed

  • FIX: Cleaned up input and output spec metadata

  • FIX: example openfmri script now makes the contrast spec a hashed input

  • FIX: FILMGLS compatibility with FSL 5.0.5

  • FIX: Freesurfer recon-all resume now avoids setting inputs

  • FIX: File removal from node respects file associations img/hdr/mat, BRIK/HEAD

Release 0.8.0 (May 8, 2013)

  • ENH: New interfaces: nipy.Trim, fsl.GLM, fsl.SigLoss, spm.VBMSegment, fsl.InvWarp,


  • ENH: Allow control over terminal output for commandline interfaces

  • ENH: Added preliminary support for generating Python code from Workflows.

  • ENH: New workflows for dMRI and fMRI pre-processing: added motion artifact correction

    with rotation of the B-matrix, and susceptibility correction for EPI imaging using fieldmaps. Updated eddy_correct pipeline to support both dMRI and fMRI, and new parameters.

  • ENH: Minor improvements to FSL’s FUGUE and FLIRT interfaces

  • ENH: Added optional dilation of parcels in cmtk.Parcellate

  • ENH: Interpolation mode added to afni.Resample

  • ENH: Function interface can accept a list of strings containing import statements

    that allow external functions to run without their imports defined in the function body

  • ENH: Allow node configurations to override master configuration

  • FIX: SpecifyModel works with 3D files correctly now.

Release 0.7.0 (Dec 18, 2012)

  • ENH: Add basic support for LSF plugin.

  • ENH: New interfaces: ICC, Meshfix, ants.Register, C3dAffineTool, ants.JacobianDeterminant,

    afni.AutoTcorrelate, DcmStack

  • ENH: New workflows: ants template building (both using ‘ANTS’ and the new ‘antsRegistration’)

  • ENH: New examples: how to use ANTS template building workflows (smri_ants_build_tmeplate),

    how to set SGE specific options (smri_ants_build_template_new)

  • ENH: added no_flatten option to Merge

  • ENH: added versioning option and checking to traits

  • ENH: added deprecation metadata to traits

  • ENH: Slicer interfaces were updated to version 4.1

Release 0.6.0 (Jun 30, 2012)

  • API: display variable no longer encoded as inputs in commandline interfaces

  • ENH: input hash not modified when environment DISPLAY is changed

  • ENH: support for 3d files for TSNR calculation

  • ENH: Preliminary support for graph submission with SGE, PBS and Soma Workflow

  • ENH: New interfaces: MySQLSink, nipy.Similarity, WatershedBEM, MRIsSmooth,

    NetworkBasedStatistic, Atropos, N4BiasFieldCorrection, ApplyTransforms, fs.MakeAverageSubject, epidewarp.fsl, WarpTimeSeriesImageMultiTransform, AVScale, mri_ms_LDA

  • ENH: simple interfaces for spm

  • FIX: CompCor component calculation was erroneous

  • FIX: filename generation for AFNI and PRELUDE

  • FIX: improved slicer module autogeneration

  • FIX: added missing options for BBRegsiter

  • FIX: functionality of remove_unnecessary_ouputs cleaned up

  • FIX: local hash check works with appropriate inputs

  • FIX: Captures all stdout from commandline programs

  • FIX: Afni outputs should inherit from TraitedSpec

Release 0.5.3 (Mar 23, 2012)

  • FIX: SPM model generation when output units is in scans

Release 0.5.2 (Mar 14, 2012)

  • API: Node now allows specifying node level configuration for SGE/PBS clusters

  • API: Logging to file is disabled by default

  • API: New location of log file -> .nipype/nipype.cfg

  • ENH: Changing logging options via config works for distributed processing

  • FIX: Unittests on debian (logging and ipython)

Release 0.5 (Mar 10, 2012)

  • API: FSL defaults to Nifti when OUTPUTTYPE environment variable not found

  • API: By default inputs are removed from Node working directory

  • API: InterfaceResult class is now versioned and stores class type not instance

  • API: Added FIRST interface

  • API: Added max_jobs paramter to plugin_args. limits the number of jobs

    executing at any given point in time

  • API: crashdump_dir is now a config execution option

  • API: new config execution options for controlling hash checking, execution and

    logging behavior when running in distributed mode.

  • API: Node/MapNode has new attribute that allows it to run on master thread.

  • API: IPython plugin now invokes IPython 0.11 or greater

  • API: Canned workflows are now all under a different package structure

  • API: SpecifyModel event_info renamed to event_files

  • API: DataGrabber is always being rerun (unless overwrite is set to False on

    Node level)

  • API: “stop_on_first_rerun” does not stop for DataGrabber (unless overwrite is

    set to True on Node level)

  • API: Output prefix can be set for spm nodes (SliceTiming, Realign, Coregister,

    Normalize, Smooth)

  • ENH: Added fsl resting state workflow based on behzadi 2007 CompCorr method.

  • ENH: TSNR node produces mean and std-dev maps; allows polynomial detrending

  • ENH: IdentityNodes are removed prior to execution

  • ENH: Added Michael Notter’s beginner’s guide

  • ENH: Added engine support for status callback functions

  • ENH: SPM create warped node

  • ENH: All underlying interfaces (including python ones) are now optional

  • ENH: Added imperative programming option with Nodes and caching

  • ENH: Added debug mode to configuration

  • ENH: Results can be stored and loaded without traits exceptions

  • ENH: Added concurrent log handler for distributed writing to log file

  • ENH: Reporting can be turned off using config

  • ENH: Added stats files to FreeSurferOutput

  • ENH: Support for Condor through qsub emulation

  • ENH: IdentityNode with iterable expansion takes place after remaining Identity

    Node removal

  • ENH: Crashfile display script added

  • ENH: Added FmriRealign4d node wrapped from nipy

  • ENH: Added TBSS workflows and examples

  • ENH: Support for openfmri data processing

  • ENH: Package version check

  • FIX: Fixed spm preproc workflow to cater to multiple functional runs

  • FIX: Workflow outputs displays nodes with empty outputs

  • FIX: SUSAN workflow works without usans

  • FIX: SGE fixed for reading custom templates

  • FIX: warping in SPM realign, Dartel and interpolation parameters

  • FIX: Fixed voxel size parameter in freesurfer mri_convert

  • FIX: 4D images in spm coregister

  • FIX: Works around matlab tty bug

  • FIX: Overwriting connection raises exception

  • FIX: Outputs are loaded from results and not stored in memory for during

    distributed operation

  • FIX: SPM threshold uses SPM.mat name and improved error detection

  • FIX: Removing directory contents works even when a node has no outputs

  • FIX: DARTEL workflows will run only when SPM 8 is available

  • FIX: SPM Normalize estimate field fixed

  • FIX: hashmethod argument now used for calculating hash of old file

  • FIX: Modelgen now allows FSL style event files

Release 0.4.1 (Jun 16, 2011)

  • Minor bugfixes

Release 0.4 (Jun 11, 2011)

  • API: Timestamp hashing does not use ctime anymore. Please update your hashes by

    running workflows with updatehash=True option NOTE: THIS IS THE DEFAULT CONFIG NOW, so unless you updatehash, workflows will rerun

  • API: Workflow run function no longer supports (inseries, createdirsonly).

    Functions used in connect string must be pickleable

  • API: SPM EstimateContrast: ignore_derivs replaced by use_derivs

  • API: All interfaces: added new config option ignore_exception

  • API: SpecifModel no longer supports (concatenate_runs, output_specs). high_pass_filter

    cutoff is mandatory (even if its set to np.inf). Additional interfaces SpecifySPMModel and SpecifySparseModel support other types of data.

  • API: fsl.DTIFit input “save” is now called “save_tensor”

  • API: All inputs of IdentityInterfaces are mandatory by default. You can turn

    this off by specifying mandatory_inputs=False to the constructor.

  • API: fsl FILMGLS input “autocorr_estimate” is now called “autocorr_estimate_only”

  • API: fsl ContrastMgr now requires access to specific files (no longer accepts

    the result directory)

  • API: freesurfer.GLMFit input “surf” is now a boolean with three corresponding

    inputs – subject_id, hemi, and surf_geo

  • ENH: All commandline interfaces display stdout and stderr

  • ENH: All interfaces raise exceptions on error with an option to suppress

  • ENH: Supports a plugin interface for execution (current support for multiprocessing,

    IPython, SGE, PBS)

  • ENH: MapNode runs in parallel under IPython, SGE, MultiProc, PBS

  • ENH: Optionally allows keeping only required outputs

  • ENH: New interface: utility.Rename to change the name of files, optionally

    using python string-formatting with inputs or regular expressions matching

  • ENH: New interface: freesurfer.ApplyMask (mri_mask)

  • ENH: New FSL interface – SwapDimensions (fslswapdim)

  • ENH: Sparse models allow regressor scaling and temporal derivatives

  • ENH: Added support for the component parts of FSL’s TBSS workflow (TBSSSkeleton

    and DistanceMap)

  • ENH: dcm2nii interface exposes bvals, bvecs, reoriented and cropped images

  • ENH: Added several higher-level interfaces to the fslmaths command:
    • ChangeDataType, Threshold, MeanImage, IsotropicSmooth, ApplyMask, TemporalFilter DilateImage, ErodeImage, SpatialFilter, UnaryMaths, BinaryMaths, MultiImageMaths

  • ENH: added support for networx 1.4 and improved iterable expansion

  • ENH: Replaced BEDPOSTX and EddyCurrent with nipype pipelines

  • ENH: Ability to create a hierarchical dot file

  • ENH: Improved debugging information for rerunning nodes

  • ENH: Added ‘stop_on_first_rerun’ option

  • ENH: Added support for Camino

  • ENH: Added support for Camino2Trackvis

  • ENH: Added support for Connectome Viewer

  • BF: dcm2nii interface handles gzipped files correctly

  • BF: FNIRT generates proper outputs

  • BF: fsl.DTIFit now properly collects tensor volume

  • BF: updatehash now removes old result hash file

Release 0.3.4 (Jan 12, 2011)

  • API: hash values for float use a string conversion up to the 10th decimal place.

  • API: Iterables in output path will always be generated as _var1_val1_var2_val2 pairs

  • ENH: Added support to nipy: GLM fit, contrast estimation and calculating mask from EPI

  • ENH: Added support for manipulating surface files in Freesurfer:
    • projecting volume images onto the surface

    • smoothing along the surface

    • transforming a surface image from one subject to another

    • using tksurfer to save pictures of the surface

  • ENH: Added support for flash processing using FreeSurfer

  • ENH: Added support for flirt matrix in BBRegister

  • ENH: Added support for FSL convert_xfm

  • ENH: hashes can be updated again without rerunning all nodes.

  • ENH: Added multiple regression design for FSL

  • ENH: Added SPM based Analyze to Nifti converter

  • ENH: Added increased support for PyXNAT

  • ENH: Added support for MCR-based binary version of SPM

  • ENH: Added SPM node for calculating various threshold statistics

  • ENH: Added distance and dissimilarity measurements

  • BF: Diffusion toolkit gets installed

  • BF: Changed FNIRT interface to accept flexible lists (rather than 4-tuples)

    on all options specific to different subsampling levels

Release 0.3.3 (Sep 16, 2010)

  • API: subject_id in ModelSpec is now deprecated

  • API: spm.Threshold - does not need mask, beta, RPV anymore - takes only one image (stat_image - mind the name change) - works with SPM2 SPM.mat - returns additional map - pre topological FDR

  • ENH: Added support for Diffusion toolkit

  • ENH: Added support for FSL slicer and overlay

  • ENH: Added support for dcm2nii

  • BF: DataSink properly handles lists of lists now

  • BF: DataGrabber has option for raising Exception on getting empty lists

  • BF: Traits logic for ‘requires’ metadata

  • BF: allows workflows to be relocatable

  • BF: nested workflows with connections don’t raise connection not found error

  • BF: multiple workflows with identical nodenames and iterables do not create nestsed workflows

Release 0.3.2 (Aug 03, 2010)


  • all outputs from nodes are now pickled as part of workflow processing

  • added git developer docs

Bugs fixed

  • FreeSurfer

    • Fixed bugs in SegStats doctest

Release 0.3.1 (Jul 29, 2010)

Bugs fixed

  • FreeSurfer

    • Fixed bugs in glmfit and concatenate

    • Added group t-test to freesurfer tutorial

Release 0.3 (Jul 27, 2010)

Incompatible changes

  • Complete redesign of the Interface class - heavy use of Traits.

  • Changes in the engine API - added Workflow and MapNode. Compulsory name argument.

Features added

  • General:

    • Type checking of inputs and outputs using Traits from ETS.

    • Support for nested workflows.

    • Preliminary Slicer and AFNI support.

    • New flexible DataGrabber node.

    • AtlasPick and Threshold nodes.

    • Preliminary support for XNAT.

    • Doubled number of the tutorials.

  • FSL:

    • Added DTI processing nodes (note that TBSS nodes are still experimental).

    • Recreated FEAT workflow.

  • SPM:

    • Added New Segment and many other nodes.

    • Redesigned second level analysis.