nipype.pipeline.engine.workflows module

Defines functionality for pipelined execution of interfaces

The Workflow class provides core functionality for batch processing.

class nipype.pipeline.engine.workflows.Workflow(name, base_dir=None)

Bases: nipype.pipeline.engine.base.EngineBase

Controls the setup and execution of a pipeline of processes.


Add nodes to a workflow


nodes (list) – A list of EngineBase-based objects


Clone a workflow


Will reset attributes used for executing workflow. See _init_runtime_fields.


name (alphanumeric name) – unique name for the workflow

connect(*args, **kwargs)

Connect nodes in the pipeline.

This routine also checks if inputs and outputs are actually provided by the nodes that are being connected.

Creates edges in the directed graph using the nodes and edges specified in the connection_list. Uses the NetworkX method DiGraph.add_edges_from.


args (list or a set of four positional arguments) –

Four positional arguments of the form:

connect(source, sourceoutput, dest, destinput)

source : nodewrapper node sourceoutput : string (must be in source.outputs) dest : nodewrapper node destinput : string (must be in dest.inputs)

A list of 3-tuples of the following form:

[(source, target,
    [('sourceoutput/attribute', 'targetinput'),


[(source, target, [(('sourceoutput1', func, arg2, ...),
                            'targetinput'), ...]),
sourceoutput1 will always be the first argument to func
and func will be evaluated and the results sent to targetinput

currently func needs to define all its needed imports within the
function as we use the inspect module to get at the source code
and execute it remotely

Disconnect nodes See the docstring for connect for format.

export(filename=None, prefix='output', format='python', include_config=False)

Export object into a different format

  • filename (string) – file to save the code to; overrides prefix

  • prefix (string) – prefix to use for output file

  • format (string) – one of “python”

  • include_config (boolean) – whether to include node and workflow config values


Return an internal node by name

property inputs

List names of all nodes in a workflow

property outputs

Remove nodes from a workflow


nodes (list) – A list of EngineBase-based objects

run(plugin=None, plugin_args=None, updatehash=False)

Execute the workflow

  • plugin (plugin name or object) – Plugin to use for execution. You can create your own plugins for execution.

  • plugin_args (dictionary containing arguments to be sent to plugin) – constructor. see individual plugin doc strings for details.

write_graph(dotfilename='', graph2use='hierarchical', format='png', simple_form=True)

Generates a graphviz dot file and a png file

  • graph2use (‘orig’, ‘hierarchical’ (default), ‘flat’, ‘exec’, ‘colored’) – orig - creates a top level graph without expanding internal workflow nodes; flat - expands workflow nodes recursively; hierarchical - expands workflow nodes recursively with a notion on hierarchy; colored - expands workflow nodes recursively with a notion on hierarchy in color; exec - expands workflows to depict iterables

  • format (‘png’, ‘svg’)

  • simple_form (boolean (default: True)) – Determines if the node name used in the graph should be of the form ‘nodename (package)’ when True or ‘nodename.Class.package’ when False.

write_hierarchical_dotfile(dotfilename=None, colored=False, simple_form=True)