(**
Top-level entry point into the library
Biokepi provides different levels of abstraction to construct (Ketrew) pipelines:
Biokepi.Setup module provides (optional) tools to create
a proper Biokepi.Machine.t that fits your computing environment (OS
environment, cluster schedulers, installation of tools, fetching of
reference data, etc.).
*) |
(**
The Embedded Bioinformatics Domain Specific Language
This Embedded DSL is implemented following the “Typed Tagless Final Interpreter” method. It's usage is as follows:
You can then compile this pipeline,
(you can apply any sub-module of
Or reuse it in further pipelines:
See the This framework is also extensible, one can add new constructs to the language or new transformations while reusing most of the work already done. *) |
module EDSL = struct
(** The definition of the Embedded DSL *) |
module type Semantics = Biokepi_pipeline_edsl.Semantics.Bioinformatics_base
(** Various compilers to “interpret” the EDSL. *) |
module Compile = struct
(** Compiler to SmartPrint.t displayable pseudo code,
see the smart-print library.
*) |
module To_display = Biokepi_pipeline_edsl.To_display
(** Compiler to Ketrew workflows using the Biokepi.Tools implementations.
The compiler is itself a functor, see the example:
*) |
module To_workflow = Biokepi_pipeline_edsl.To_workflow
(** Compiler to JSON (Yojson.Basic.t ). *) |
module To_json : Biokepi_pipeline_edsl.Semantics.Bioinformatics_base
with type 'a repr = var_count: int -> Yojson.Basic.json
and
type 'a observation = Yojson.Basic.json =
Biokepi_pipeline_edsl.To_json
(** Compiler to DOT graph descriptions. *) |
module To_dot : sig
include Biokepi_pipeline_edsl.Semantics.Bioinformatics_base
with
type 'a repr = var_count:int -> Biokepi_pipeline_edsl.To_dot.Tree.t
with type 'a observation =
parameters: Biokepi_pipeline_edsl.To_dot.parameters -> SmartPrint.t
type parameters = Biokepi_pipeline_edsl.To_dot.parameters = {
color_input:
name: string -> attributes: (string * string) list -> string option;
}
val default_parameters : parameters
end = Biokepi_pipeline_edsl.To_dot
end
(** Transformations on the EDSL. *) |
module Transform = struct
(** Apply as much EDSL functions as possible to their arguments (including
list_map ). *) |
module Apply_functions = Biokepi_pipeline_edsl.Transform_applications.Apply
end
(** Library of reusable pieces of pipeline. *) |
module Library = Biokepi_pipeline_edsl.Pipeline_library
end
(** The description of the computing infrastructure used in Biokepi.
The
Biokepi.Machine.t
instance to run the workflows.
The Biokepi.Setup module provides an extensive set of defaults to
simplify this.
*) |
module Machine = Biokepi_run_environment.Machine
(** Help with the creation of Biokepi.Machine.t instances. *) |
module Setup = struct
include Biokepi_environment_setup
end
(** Bioinformatics-specific extensions to the Ketrew.EDSL module. *) |
module KEDSL = Biokepi_run_environment.Common.KEDSL
(** Values describing the current version of the library. *) |
module Metadata = Biokepi_run_environment.Metadata
(** Implementations of the Bioinformatics Ketrew workflow-nodes.
This module provides a lower-level access to the bioinformatics tools to build Ketrew workflows.
It is used by the EDSL (through |
module Tools = Biokepi_bfx_tools
(** Earlier implementation of the Embedded DSL (kept for backwards
compatibility).
One defines pipelines using the
See *) |
module Pipeline = Biokepi_pipeline_edsl.Pipeline