Skip to content

Commit

Permalink
Merge pull request #1 from nipy/master
Browse files Browse the repository at this point in the history
Update to current master
  • Loading branch information
blakedewey committed Apr 28, 2015
2 parents 6da246d + b315a96 commit 8b83ea1
Show file tree
Hide file tree
Showing 420 changed files with 97,107 additions and 1,496 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -13,3 +13,4 @@
.settings
.pydevproject
.idea/
/documentation.zip
1 change: 0 additions & 1 deletion .travis.yml
Expand Up @@ -2,7 +2,6 @@ cache:
- apt
language: python
python:
- 2.6
- 2.7
env:
- INSTALL_DEB_DEPENDECIES=true
Expand Down
55 changes: 49 additions & 6 deletions CHANGES
@@ -1,36 +1,79 @@
Next release
============

* ENH: Updated N4BiasCorrection input spec to include weight image and spline order. Made
* FIX: Enable absolute path definitions in DCMStack (https://github.com/nipy/nipype/pull/1089,
replaced by https://github.com/nipy/nipype/pull/1093)
* ENH: New mesh.MeshWarpMaths to operate on surface-defined warpings
(https://github.com/nipy/nipype/pull/1016)
* FIX: Refactor P2PDistance, change name to ComputeMeshWarp, add regression tests,
fix bug in area weighted distance, and added optimizations
(https://github.com/nipy/nipype/pull/1016)
* ENH: Add an option not to resubmit Nodes that finished running when using SGEGraph (https://github.com/nipy/nipype/pull/1002)
* FIX: FUGUE is now properly listing outputs. (https://github.com/nipy/nipype/pull/978)
* ENH: Improved FieldMap-Based (FMB) workflow for correction of susceptibility distortions in EPI seqs.
(https://github.com/nipy/nipype/pull/1019)
* ENH: Dropped support for now 7 years old Python 2.6 (https://github.com/nipy/nipype/pull/1069)
* FIX: terminal_output is not mandatory anymore (https://github.com/nipy/nipype/pull/1070)
* ENH: Added "nipype_cmd" tool for running interfaces from the command line (https://github.com/nipy/nipype/pull/795)
* FIX: Fixed Camino output naming (https://github.com/nipy/nipype/pull/1061)
* ENH: Add the average distance to ErrorMap (https://github.com/nipy/nipype/pull/1039)
* ENH: Inputs with name_source can be now chained in cascade (https://github.com/nipy/nipype/pull/938)
* ENH: Improve JSON interfaces: default settings when reading and consistent output creation
when writing (https://github.com/nipy/nipype/pull/1047)
* FIX: AddCSVRow problems when using infields (https://github.com/nipy/nipype/pull/1028)
* FIX: Removed unused ANTS registration flag (https://github.com/nipy/nipype/pull/999)
* FIX: Amend create_tbss_non_fa() workflow to match FSL's tbss_non_fa command. (https://github.com/nipy/nipype/pull/1033)
* FIX: remove unused mandatory flag from spm normalize (https://github.com/nipy/nipype/pull/1048)
* ENH: Update ANTSCorticalThickness interface (https://github.com/nipy/nipype/pull/1013)
* FIX: Edge case with sparsemodels and PEP8 cleanup (https://github.com/nipy/nipype/pull/1046)
* ENH: New io interfaces for JSON files reading/writing (https://github.com/nipy/nipype/pull/1020)
* ENH: Enhanced openfmri script to support freesurfer linkage (https://github.com/nipy/nipype/pull/1037)
* BUG: matplotlib is supposed to be optional (https://github.com/nipy/nipype/pull/1003)
* FIX: Fix split_filename behaviour when path has no file component (https://github.com/nipy/nipype/pull/1035)
* ENH: Updated FSL dtifit to include option for grad non-linearities (https://github.com/nipy/nipype/pull/1032)
* ENH: Updated Camino tracking interfaces, which can now use FSL bedpostx output.
New options also include choice of tracker, interpolator, stepsize and
curveinterval for angle threshold (https://github.com/nipy/nipype/pull/1029)
* FIX: Interfaces redirecting X crashed if $DISPLAY not defined (https://github.com/nipy/nipype/pull/1027)
* FIX: Bug crashed 'make api' (https://github.com/nipy/nipype/pull/1026)
* ENH: Updated antsIntroduction to handle RA and RI registrations (https://github.com/nipy/nipype/pull/1009)
* ENH: Updated N4BiasCorrection input spec to include weight image and spline order. Made
argument formatting consistent. Cleaned ants.segmentation according to PEP8.
(https://github.com/nipy/nipype/pull/990/files)
* ENH: SPM12 Normalize interface (https://github.com/nipy/nipype/pull/986)
* FIX: Utility interface test dir (https://github.com/nipy/nipype/pull/986)
* FIX: IPython engine directory reset after crash (https://github.com/nipy/nipype/pull/987)
* ENH: Resting state fMRI example with NiPy realignment and no SPM (https://github.com/nipy/nipype/pull/992)
* FIX: Corrected Freesurfer SegStats _list_outputs to avoid error if summary_file is
* FIX: Corrected Freesurfer SegStats _list_outputs to avoid error if summary_file is
undefined (issue #994)(https://https://github.com/nipy/nipype/pull/996)
* FIX: OpenfMRI support and FSL 5.0.7 changes (https://github.com/nipy/nipype/pull/1006)
* FIX: Output prefix in SPM Normalize with modulation (https://github.com/nipy/nipype/pull/1023)
* ENH: Usability improvements in cluster environments (https://github.com/nipy/nipype/pull/1025)
* ENH: ANTs JointFusion() (https://github.com/nipy/nipype/pull/1042)
* ENH: Added csvReader() utility (https://github.com/nipy/nipype/pull/1044)
* FIX: typo in nipype.interfaces.freesurfer.utils.py Tkregister2 (https://github.com/nipy/nipype/pull/1083)
* FIX: SSHDataGrabber outputs now return full path to the grabbed/downloaded files. (https://github.com/nipy/nipype/pull/1086)

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
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
* 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,
* 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
Expand All @@ -46,7 +89,7 @@ Release 0.10.0 (October 10, 2014)
* 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: 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.
Expand Down
8 changes: 8 additions & 0 deletions bin/nipype_cmd
@@ -0,0 +1,8 @@
#!/usr/bin/env python
# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*-
# vi: set ft=python sts=4 ts=4 sw=4 et:
import sys
from nipype.utils.nipype_cmd import main

if __name__ == '__main__':
main(sys.argv)
1 change: 0 additions & 1 deletion bin/nipype_display_crash
Expand Up @@ -74,7 +74,6 @@ if __name__ == "__main__":
default=None,
help='Directory to run the node in' + defstr)
args = parser.parse_args()
print args.debug, args.ipydebug
debug = 'ipython' if args.ipydebug else args.debug
if debug == 'ipython':
import sys
Expand Down
3 changes: 3 additions & 0 deletions doc/devel/interface_specs.rst
Expand Up @@ -358,6 +358,9 @@ CommandLine
``name_source``
Indicates the list of input fields from which the value of the current File
output variable will be drawn. This input field must be the name of a File.
Chaining is allowed, meaning that an input field can point to another as
``name_source``, which also points as ``name_source`` to a third field.
In this situation, the templates for substitutions are also accumulated.

``name_template``
By default a ``%s_generated`` template is used to create the output
Expand Down
10 changes: 10 additions & 0 deletions doc/devel/software_using_nipype.rst
Expand Up @@ -28,6 +28,11 @@ Forward

`Forward <http://cyclotronresearchcentre.github.io/forward/>`_ is set of tools simplifying the preparation of accurate electromagnetic head models for EEG forward modeling. It uses Nipype Workflows and Interfaces.

Limbo
-----

`Limbo <https://github.com/Gilles86/in_limbo>`_ is a toolbox for finding brain regions that are neither significantly active nor inactive, but rather “in limbo”. It was build using custom Nipype Interfaces and Workflows.

Lyman
-----

Expand All @@ -38,6 +43,11 @@ Medimsight

`Medimsight <https://www.medimsight.com>`_ is a commercial service medical imaging cloud platform. It uses Nipype to interface with various neuroimaging software.

MIA
---

`MIA <http://mia.sourceforge.net>`_ MIA is a a toolkit for gray scale medical image analysis. It provides Nipype interfaces for easy integration with other software.

Mindboggle
----------

Expand Down
2 changes: 1 addition & 1 deletion doc/quickstart.rst
Expand Up @@ -16,7 +16,7 @@ Downloading and installing
Beginner's guide
================

Beginner's tutorials (IPython Notebooks). `Availible here`__
Beginner's tutorials (IPython Notebooks). `Available here`__

Michael Notter's Nipype guide. `Available here`__

Expand Down
5 changes: 5 additions & 0 deletions doc/users/config_file.rst
Expand Up @@ -120,6 +120,11 @@ Execution
characters will be replaced by their hash. (possible values: ``true`` and
``false``; default value: ``true``)

*poll_sleep_duration*
This controls how long the job submission loop will sleep between submitting
all pending jobs and checking for job completion. To be nice to cluster
schedulers the default is set to 60 seconds.

Example
~~~~~~~

Expand Down
1 change: 1 addition & 0 deletions doc/users/index.rst
Expand Up @@ -37,6 +37,7 @@
saving_workflows
spmmcr
mipav
nipypecmd



Expand Down
2 changes: 1 addition & 1 deletion doc/users/install.rst
Expand Up @@ -107,7 +107,7 @@ recommendations.
Must Have
~~~~~~~~~

Python_ 2.6 - 2.7
Python_ 2.7

Nibabel_ 1.0 - 1.4
Neuroimaging file i/o library
Expand Down
68 changes: 68 additions & 0 deletions doc/users/nipypecmd.rst
@@ -0,0 +1,68 @@
.. _nipypecmd:

============================================================
Running Nipype Interfaces from the command line (nipype_cmd)
============================================================

The primary use of Nipype_ is to build automated non-interactive pipelines.
However, sometimes there is a need to run some interfaces quickly from the command line.
This is especially useful when running Interfaces wrapping code that does not have
command line equivalents (nipy or SPM). Being able to run Nipype interfaces opens new
possibilities such as inclusion of SPM processing steps in bash scripts.

To run Nipype Interafces you need to use the nipype_cmd tool that should already be installed.
The tool allows you to list Interfaces available in a certain package:

.. testcode::


$nipype_cmd nipype.interfaces.nipy

Available Interfaces:
SpaceTimeRealigner
Similarity
ComputeMask
FitGLM
EstimateContrast
FmriRealign4d

After selecting a particular Interface you can learn what inputs it requires:

.. testcode::


$nipype_cmd nipype.interfaces.nipy ComputeMask --help

usage:nipype_cmd nipype.interfaces.nipy ComputeMask [-h] [--M M] [--cc CC]
[--ignore_exception IGNORE_EXCEPTION]
[--m M]
[--reference_volume REFERENCE_VOLUME]
mean_volume

Run ComputeMask

positional arguments:
mean_volume mean EPI image, used to compute the threshold for the
mask

optional arguments:
-h, --help show this help message and exit
--M M upper fraction of the histogram to be discarded
--cc CC Keep only the largest connected component
--ignore_exception IGNORE_EXCEPTION
Print an error message instead of throwing an
exception in case the interface fails to run
--m M lower fraction of the histogram to be discarded
--reference_volume REFERENCE_VOLUME
reference volume used to compute the mask. If none is
give, the mean volume is used.

Finally you can run run the Interface:

.. testcode::

$nipype_cmd nipype.interfaces.nipy ComputeMask mean.nii.gz

All that from the command line without having to start python interpreter manually.

.. include:: ../links_names.txt
33 changes: 30 additions & 3 deletions doc/users/plugins.rst
Expand Up @@ -136,27 +136,54 @@ particular node might use more resources than other nodes in a workflow.
this local configuration::

node.plugin_args = {'qsub_args': '-l nodes=1:ppn=3', 'overwrite': True}
SGEGraph
~~~~~~~~
SGEGraph_ is a exuction plugin working with Sun Grid Engine that allows for
submitting entire graph of dependent jobs at once. This way Nipype does not
need to run a monitoring process - SGE takes care of this.

.. note::

When rerunning unfinished workflows using SGEGraph you may decide not to
submit jobs for Nodes that previously finished running. This can speed up
execution, but new or modified inputs that would previously trigger a Node
to rerun will be ignored. The following option turns on this functionality::

workflow.run(plugin='SGEGraph', plugin_args = {'dont_resubmit_completed_jobs': True})

LSF
---

Submitting via LSF is almost identical to SGE above:
Submitting via LSF is almost identical to SGE above above except for the optional arguments field::

workflow.run(plugin='LSF')
workflow.run(plugin='LSF')

Optional arguments::

template: custom template file to use
bsub_args: any other command line args to be passed to bsub.

SLURM
-----

Submitting via SLURM is almost identical to SGE above except for the optional arguments field:

workflow.run(plugin='SLURM')

Optional arguments::

template: custom template file to use
sbatch_args: any other command line args to be passed to bsub.

HTCondor
--------

DAGMan
~~~~~~

With its DAGMan_ component HTCondor_ (previously Condor) allows for submitting
entire graphs of dependent jobs at once. With the ``CondorDAGMan`` plug-in
entire graphs of dependent jobs at once (similar to SGEGraph_). With the ``CondorDAGMan`` plug-in
Nipype can utilize this functionality to submit complete workflows directly and
in a single step. Consequently, and in contrast to other plug-ins, workflow
execution returns almost instantaneously -- Nipype is only used to generate the
Expand Down

0 comments on commit 8b83ea1

Please sign in to comment.