Module Biokepi.Machine (.ml)

module Machine: Biokepi_run_environment.Machine
The description of the computing infrastructure used in Biokepi.

The Biokepi_run_environment.Machine provides an API to interact with the computing environment, it is used by all the programs in Biokepi.Tools (and hence by the Biokepi.EDSL through the Biokepi.EDSL.Compile.To_workflow compiler). It is used to:

The user of the library has to provide (at least) one Biokepi.Machine.t instance to run the workflows. The Biokepi.Setup module provides an extensive set of defaults to simplify this.

module Tool: sig .. end
module Make_fun: sig .. end
Jobs in Biokepi ask the computing environment (defined below in Biokepi_run_environment.Machine) for resources.
type t = {
   name : string;
   host : Common.KEDSL.Host.t;
   pyensembl_cache_dir : string option;
   get_reference_genome : string -> Reference_genome.t;
   toolkit : Tool.Kit.t;
   run_program : Make_fun.t;
   work_dir : string;
   max_processors : int;
}
val create : host:Common.KEDSL.Host.t ->
?pyensembl_cache_dir:string ->
get_reference_genome:(string -> Reference_genome.t) ->
toolkit:Tool.Kit.t ->
run_program:Make_fun.t ->
work_dir:string ->
max_processors:int -> string -> t
val name : t -> string
val as_host : ?with_shell:string ->
t -> Common.KEDSL.Host.t
val get_pyensembl_cache_dir : t -> string option
val get_reference_genome : t -> string -> Reference_genome.t
val get_tool : t ->
Tool.Definition.t ->
Tool.Kit.tool
val run_program : t ->
Make_fun.t
val max_processors : t -> int

Get the maximum number of processors that a single job can use in the Machine.t (i.e. usually the “number-of-threads” paramters of most tools)
val quick_run_program : t ->
Make_fun.t
val run_stream_processor : ?self_ids:string list ->
t ->
Make_fun.t
Run a program that does not use much memory and runs on one core.
val run_download_program : t ->
Make_fun.t
Run a program that does not use much memory, runs on one core, and needs the internet.
val run_big_program : t ->
?processors:int ->
?self_ids:string list -> Make_fun.t
val work_dir : t -> string