Legend:
Library
Module
Module type
Parameter
Class
Class type
A library to build scientific workflows.
This module introduces a type 'a workflow that describes a set of inter-dependent steps that will eventually generate a value of type 'a. Steps may be either command lines to be executed, or OCaml expressions to be evaluated.
To build shell-based workflows, use the Shell_dsl module, that provides a set of combinators to write shell scripts easily. For instance, the following function shows how to create a gzipped file using the output of another workflow:
let gzip (x : 'a pworkflow) : 'a gz pworkflow =
Workflow.shell ~descr:"unix.gzip" [
cmd "gzip" [ string "-c" ; dep x ; string ">" dest ]
]
Base types
type'a workflow
Representation of a computational pipeline. Constructors are provided in the Workflow module. Note that a workflow is just a recipe to build some result. Building the workflow won't actually generate anything. In order to run the workflow, you have to run it using an execution engine like the one provided by bistro.engine.
type'a path
Abstract representation of a path in the filesystem. The type parameter can be used to provide information on the format of a file (this is an instance of phantom-typing).