sig
  val rm_path :
    host:Biokepi_run_environment.Common.KEDSL.Host.t ->
    string ->
    < is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option >
    Biokepi_run_environment.Common.KEDSL.workflow_node
  val generic_installation :
    run_program:Biokepi_run_environment.Machine.Make_fun.t ->
    host:Biokepi_run_environment.Common.KEDSL.Host.t ->
    install_path:string ->
    install_program:Biokepi_run_environment.Common.KEDSL.Program.t ->
    witness:(< is_done : Biokepi_run_environment.Common.KEDSL.Condition.t
                         option;
               .. >
             as 'a)
            Biokepi_run_environment.Common.KEDSL.product ->
    url:string ->
    ?unarchived_directory:string ->
    string -> 'Biokepi_run_environment.Common.KEDSL.workflow_node
  module Tool_def = Biokepi_run_environment.Machine.Tool.Definition
  type installable = {
    tool_definition : Tool_def.t;
    url : string;
    install_program :
      path:string -> Biokepi_run_environment.Common.KEDSL.Program.t;
    init_program :
      path:string -> Biokepi_run_environment.Common.KEDSL.Program.t;
    witness :
      host:Biokepi_run_environment.Common.KEDSL.Host.t ->
      path:string -> Biokepi_run_environment.Common.KEDSL.unknown_product;
    unarchived_directory : string option;
  }
  val noop : Biokepi_run_environment.Common.KEDSL.Program.t
  val installable_tool :
    url:string ->
    ?install_program:(path:string ->
                      Biokepi_run_environment.Common.KEDSL.Program.t) ->
    ?init_program:(path:string ->
                   Biokepi_run_environment.Common.KEDSL.Program.t) ->
    witness:(host:Biokepi_run_environment.Common.KEDSL.Host.t ->
             path:string ->
             Biokepi_run_environment.Common.KEDSL.unknown_product) ->
    ?unarchived_directory:string ->
    Tool_def.t -> Biokepi_environment_setup.Tool_providers.installable
  val render_installable_tool :
    run_program:Biokepi_run_environment.Machine.Make_fun.t ->
    host:Biokepi_run_environment.Common.KEDSL.Host.t ->
    install_tools_path:string ->
    Biokepi_environment_setup.Tool_providers.installable ->
    Biokepi_run_environment.Machine.Tool.t
  val add_to_dollar_path :
    path:string -> Biokepi_run_environment.Common.KEDSL.Program.t
  val make_and_copy_bin :
    string -> path:string -> Biokepi_run_environment.Common.KEDSL.Program.t
  val witness_file :
    string ->
    host:Biokepi_run_environment.Common.KEDSL.Host.t ->
    path:string -> < is_done : Ketrew_pure.Target.Condition.t option >
  val witness_list :
    string list ->
    host:Biokepi_run_environment.Common.KEDSL.Host.t ->
    path:string -> < is_done : Ketrew_pure.Target.Condition.t option >
  val bwa : Biokepi_environment_setup.Tool_providers.installable
  val stringtie : Biokepi_environment_setup.Tool_providers.installable
  val vcftools : Biokepi_environment_setup.Tool_providers.installable
  val bedtools : Biokepi_environment_setup.Tool_providers.installable
  val mosaik : Biokepi_environment_setup.Tool_providers.installable
  val star : Biokepi_environment_setup.Tool_providers.installable
  val hisat :
    Tool_def.t -> Biokepi_environment_setup.Tool_providers.installable
  val kallisto : Biokepi_environment_setup.Tool_providers.installable
  val samtools : Biokepi_environment_setup.Tool_providers.installable
  val cufflinks : Biokepi_environment_setup.Tool_providers.installable
  val somaticsniper : Biokepi_environment_setup.Tool_providers.installable
  val varscan : Biokepi_environment_setup.Tool_providers.installable
  val picard : Biokepi_environment_setup.Tool_providers.installable
  type broad_jar_location =
      [ `Fail of string | `Scp of string | `Wget of string ]
  val get_broad_jar :
    run_program:Biokepi_run_environment.Machine.Make_fun.t ->
    host:Biokepi_run_environment.Common.KEDSL.Host.t ->
    install_path:string ->
    [< `Fail of '& string | `Scp of string | `Wget of string ] ->
    < exists : Ketrew_pure.Target.Condition.t;
      is_bigger_than : int -> Ketrew_pure.Target.Condition.t;
      is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;
      path : string >
    Biokepi_run_environment.Common.KEDSL.workflow_node
  val mutect_tool :
    run_program:Biokepi_run_environment.Machine.Make_fun.t ->
    host:Biokepi_run_environment.Common.KEDSL.Host.t ->
    install_tools_path:string ->
    [< `Fail of '& string | `Scp of string | `Wget of string ] ->
    Biokepi_run_environment.Machine.Tool.t
  val gatk_tool :
    run_program:Biokepi_run_environment.Machine.Make_fun.t ->
    host:Biokepi_run_environment.Common.KEDSL.Host.t ->
    install_tools_path:string ->
    [< `Fail of '& string | `Scp of string | `Wget of string ] ->
    Biokepi_run_environment.Machine.Tool.t
  val strelka : Biokepi_environment_setup.Tool_providers.installable
  val virmid : Biokepi_environment_setup.Tool_providers.installable
  val muse : Biokepi_environment_setup.Tool_providers.installable
  val default_jar_location :
    string ->
    unit -> Biokepi_environment_setup.Tool_providers.broad_jar_location
  val default_toolkit :
    run_program:Biokepi_run_environment.Machine.Make_fun.t ->
    host:Biokepi_run_environment.Common.KEDSL.Host.t ->
    install_tools_path:string ->
    ?mutect_jar_location:(unit ->
                          Biokepi_environment_setup.Tool_providers.broad_jar_location) ->
    ?gatk_jar_location:(unit ->
                        Biokepi_environment_setup.Tool_providers.broad_jar_location) ->
    unit -> Biokepi_run_environment.Machine.Tool.Kit.t
end