package bistro

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module BistroSource

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

Sourcetype '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.

Sourcetype '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).

Sourceclass type regular_file_t = object ... end

Base class for files when typing a path

Sourceclass type directory_t = object ... end

Base class for directories when typing a path

Sourcetype 'a file = (regular_file_t as 'a) path workflow

Type alias for workflows that produce a regular file

Sourcetype 'a directory = < directory_t ; contents : 'a > path workflow

Type alias for workflows that produce a directory

Building shell-based workflow

Sourcetype container_image
Sourcemodule Template_dsl : sig ... end

Representation of scripts

Sourcemodule Shell_dsl : sig ... end

Command-line construction

Sourcemodule Workflow : sig ... end

Workflow constructors

File formats

Sourceclass type text = object ... end
Sourceclass type 'a sexp_value = object ... end
Sourceclass type binary_file = object ... end
Sourceclass type pdf = object ... end
Sourceclass type html = object ... end
Sourceclass type png = object ... end
Sourceclass type svg = object ... end
Sourceclass type tsv = object ... end
Sourceclass type csv = object ... end
Sourceclass type 'a zip = object ... end
Sourceclass type 'a gz = object ... end
Sourceclass type 'a bz2 = object ... end
Sourceclass type 'a tar = object ... end
Sourcemodule Private : sig ... end

Access to internal representation