Cheat Sheet

The ruffus module is a lightweight way to add support for running computational pipelines.

Each stage or task in a computational pipeline is represented by a python function
Each python function can be called in parallel to run multiple jobs.

1. Annotate functions with Ruffus decorators


Decorator Syntax  
@originate (Manual) @originate ( output_files, [extra_parameters,...] )  
@split (Manual) @split ( tasks_or_file_names, output_files, [extra_parameters,...] )  
@transform (Manual)
@transform ( tasks_or_file_names, suffix(suffix_string), output_pattern, [extra_parameters,...] )
@transform ( tasks_or_file_names, regex(regex_pattern), output_pattern, [extra_parameters,...] )
@merge (Manual) @merge (tasks_or_file_names, output, [extra_parameters,...] )  
@posttask (Manual)
@posttask ( signal_task_completion_function )
@posttask (touch_file( 'task1.completed' ))

See Decorators for a complete list of decorators

3. Run the pipeline

pipeline_run(multiprocess = N_PARALLEL_JOBS)