sig
  module Remove = Biokepi_run_environment.Workflow_utilities.Remove
  module Configuration :
    sig
      val default_gap_open_penalty : int
      val default_gap_extension_penalty : int
      module Common :
        sig
          type t = {
            name : string;
            gap_open_penalty : int;
            gap_extension_penalty : int;
          }
          val default : Biokepi_bfx_tools.Bwa.Configuration.Common.t
          val name : Biokepi_bfx_tools.Bwa.Configuration.Common.t -> string
          val to_json :
            Biokepi_bfx_tools.Bwa.Configuration.Common.t ->
            [> `Assoc of (string * [> `Int of int | `String of string ]) list ]
        end
      module Aln = Common
      module Mem = Common
    end
  val index :
    reference_build:string ->
    run_with:Biokepi_run_environment.Machine.t ->
    < 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 read_group_header_option :
    [< `Aln | `Mem ] -> sample_name:string -> read_group_id:string -> string
  val mem_align_to_sam :
    reference_build:string ->
    ?configuration:Configuration.Mem.t ->
    fastq:< escaped_sample_name : string;
            is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;
            paths : string * string option; .. >
          Biokepi_run_environment.Common.KEDSL.workflow_node ->
    result_prefix:string ->
    run_with:Biokepi_run_environment.Machine.t ->
    unit ->
    < 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 align_to_sam :
    reference_build:string ->
    ?configuration:Configuration.Aln.t ->
    fastq:< escaped_sample_name : string;
            is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;
            paths : string * string option; .. >
          Biokepi_run_environment.Common.KEDSL.workflow_node ->
    result_prefix:string ->
    run_with:Biokepi_run_environment.Machine.t ->
    unit ->
    < 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
end