functor
  (How : sig
           type t
           val input_value :
             string ->
             (string * string) list ->
             var_count:int -> Biokepi_pipeline_edsl.To_json.t
           val function_call :
             string ->
             (string * Biokepi_pipeline_edsl.To_json.t) list ->
             Biokepi_pipeline_edsl.To_json.t
           val string : string -> Biokepi_pipeline_edsl.To_json.t
         end->
  sig
    val fastq :
      sample_name:string ->
      ?fragment_id:string ->
      r1:string -> ?r2:string -> unit -> var_count:int -> How.t
    val fastq_gz :
      sample_name:string ->
      ?fragment_id:string ->
      r1:string -> ?r2:string -> unit -> var_count:int -> How.t
    val bam :
      path:string ->
      ?sorting:[< `Coordinate | `Read_name ] ->
      reference_build:string -> unit -> var_count:int -> How.t
    val pair :
      (var_count:int -> How.t) ->
      (var_count:int -> How.t) -> var_count:int -> How.t
    val pair_first : (var_count:int -> How.t) -> var_count:int -> How.t
    val pair_second : (var_count:int -> How.t) -> var_count:int -> How.t
    val aligner :
      string ->
      string ->
      reference_build:string ->
      (var_count:int -> How.t) -> var_count:int -> How.t
    val one_to_one :
      string -> string -> (var_count:int -> How.t) -> var_count:int -> How.t
    val bwa_aln :
      ?configuration:Tools.Bwa.Configuration.Aln.t ->
      reference_build:string ->
      (var_count:int -> How.t) -> var_count:int -> How.t
    val bwa_mem :
      ?configuration:Tools.Bwa.Configuration.Mem.t ->
      reference_build:string ->
      (var_count:int -> How.t) -> var_count:int -> How.t
    val gunzip : (var_count:int -> How.t) -> var_count:int -> How.t
    val gunzip_concat : (var_count:int -> How.t) -> var_count:int -> How.t
    val concat : (var_count:int -> How.t) -> var_count:int -> How.t
    val merge_bams : (var_count:int -> How.t) -> var_count:int -> How.t
    val star :
      ?configuration:Tools.Star.Configuration.Align.t ->
      reference_build:string ->
      (var_count:int -> How.t) -> var_count:int -> How.t
    val hisat :
      ?configuration:Tools.Hisat.Configuration.t ->
      reference_build:string ->
      (var_count:int -> How.t) -> var_count:int -> How.t
    val mosaik :
      reference_build:string ->
      (var_count:int -> How.t) -> var_count:int -> How.t
    val stringtie :
      ?configuration:Tools.Stringtie.Configuration.t ->
      (var_count:int -> How.t) -> var_count:int -> How.t
    val indel_real_config :
      Tools.Gatk.Configuration.Indel_realigner.t *
      Tools.Gatk.Configuration.Realigner_target_creator.t -> string
    val gatk_indel_realigner :
      ?configuration:Tools.Gatk.Configuration.Indel_realigner.t *
                     Tools.Gatk.Configuration.Realigner_target_creator.t ->
      (var_count:int -> How.t) -> var_count:int -> How.t
    val gatk_indel_realigner_joint :
      ?configuration:Tools.Gatk.Configuration.Indel_realigner.t *
                     Tools.Gatk.Configuration.Realigner_target_creator.t ->
      (var_count:int -> How.t) -> var_count:int -> How.t
    val picard_mark_duplicates :
      ?configuration:Tools.Picard.Mark_duplicates_settings.t ->
      (var_count:int -> How.t) -> var_count:int -> How.t
    val gatk_bqsr :
      ?configuration:Tools.Gatk.Configuration.Bqsr.t *
                     Tools.Gatk.Configuration.Print_reads.t ->
      (var_count:int -> How.t) -> var_count:int -> How.t
    val seq2hla : (var_count:int -> How.t) -> var_count:int -> How.t
    val optitype :
      [< `DNA | `RNA ] -> (var_count:int -> How.t) -> var_count:int -> How.t
    val gatk_haplotype_caller :
      (var_count:int -> How.t) -> var_count:int -> How.t
    val bam_to_fastq :
      sample_name:string ->
      ?fragment_id:string ->
      [< `PE | `SE ] -> (var_count:int -> How.t) -> var_count:int -> How.t
    val variant_caller :
      string ->
      string ->
      normal:(var_count:int -> How.t) ->
      tumor:(var_count:int -> How.t) -> unit -> var_count:int -> How.t
    val mutect :
      ?configuration:Tools.Mutect.Configuration.t ->
      normal:(var_count:int -> How.t) ->
      tumor:(var_count:int -> How.t) -> unit -> var_count:int -> How.t
    val mutect2 :
      ?configuration:Tools.Gatk.Configuration.Mutect2.t ->
      normal:(var_count:int -> How.t) ->
      tumor:(var_count:int -> How.t) -> unit -> var_count:int -> How.t
    val somaticsniper :
      ?configuration:Tools.Somaticsniper.Configuration.t ->
      normal:(var_count:int -> How.t) ->
      tumor:(var_count:int -> How.t) -> unit -> var_count:int -> How.t
    val strelka :
      ?configuration:Tools.Strelka.Configuration.t ->
      normal:(var_count:int -> How.t) ->
      tumor:(var_count:int -> How.t) -> unit -> var_count:int -> How.t
    val varscan_somatic :
      ?adjust_mapq:int ->
      normal:(var_count:int -> How.t) ->
      tumor:(var_count:int -> How.t) -> unit -> var_count:int -> How.t
    val muse :
      ?configuration:Tools.Muse.Configuration.t ->
      normal:(var_count:int -> How.t) ->
      tumor:(var_count:int -> How.t) -> unit -> var_count:int -> How.t
    val virmid :
      ?configuration:Tools.Virmid.Configuration.t ->
      normal:(var_count:int -> How.t) ->
      tumor:(var_count:int -> How.t) -> unit -> var_count:int -> How.t
  end