Welcome to pipe-tree’s documentation!

Note

The pipe-tree package has been renamed to fsl-pipe. Please switch to this new package following instructions on the README (https://git.fmrib.ox.ac.uk/ndcn0236/pipe-tree). The documentation for fsl-pipe can be found at https://open.win.ox.ac.uk/pages/ndcn0236/fsl-pipe

Framework to build pipelines in a declerative manner based on FileTrees. Pipe-tree has the following features:

  • The directory tree containing the input, intermediate, and output files are defined separately from the pipeline code in the convenient file-tree format

  • The pipeline writer only defines the individual recipes in regular python code (e.g., how to convert file A into file B or file B into C), which pipe-tree will stitch together into a complete pipeline.

  • Users can run part of the pipeline by defining which files they actually want to produce.

  • By default, the pipeline will skip any jobs for which the output files already exist.

  • Jobs can be run locally in sequence as normal python functions or in parallel by submitting to a cluster queue (using fsl_sub) or by using dask.

Install using

pip install git+https://git.fmrib.ox.ac.uk/ndcn0236/pipe-tree.git

Typical usage:

from pipe_tree import pipe, In, Out, Ref, Var

@pipe
def job(input_file: In, output_file: Out):
    # code to convert `input_file` to `output_file`

pipe.cli()  # runs command line interface