BistroA library to build scientific workflows.
This module introduces a type 'a worfklow 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 ]
]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.
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).
Type alias for workflows that produce a directory
module Template_dsl : sig ... endRepresentation of scripts
module Shell_dsl : sig ... endCommand-line construction
module Workflow : sig ... endWorkflow constructors
module Private : sig ... endAccess to internal representation
class type text_file = object ... endclass type 'a sexp_value = object ... endclass type binary_file = object ... endclass type pdf = object ... endclass type html = object ... endclass type png = object ... endclass type svg = object ... endclass type tsv = object ... endclass type 'a zip = object ... endclass type 'a gz = object ... endclass type 'a bz2 = object ... endclass type 'a tar = object ... end