sig
  module File :
    sig type t = Biokepi_run_environment.Common.KEDSL.file_workflow end
  type json = Yojson.Basic.json
  type fastq_gz = Fastq_gz
  type fastq = Fastq
  type fastq_sample = Fastq_sample
  type bam =
      Biokepi_run_environment.Common.KEDSL.bam_file
      Biokepi_run_environment.Common.KEDSL.workflow_node
  type bam_pair = Bam_pair
  type vcf = Vcf
  type gtf = Gtf
  type seq2hla_hla_types = Seq2HLA_hla_types
  type optitype_hla_types = Optitype_hla_types
  type somatic = {
    normal : Biokepi_pipeline_edsl.Pipeline.bam;
    tumor : Biokepi_pipeline_edsl.Pipeline.bam;
  }
  type germline = Biokepi_pipeline_edsl.Pipeline.bam
  type fastq_sample_info = { sample_name : string; fragment_id : string; }
  module Variant_caller :
    sig
      type _ input =
          Somatic :
            Biokepi_pipeline_edsl.Pipeline.somatic -> Biokepi_pipeline_edsl.Pipeline.somatic
                                                      Biokepi_pipeline_edsl.Pipeline.Variant_caller.input
        | Germline :
            Biokepi_pipeline_edsl.Pipeline.germline -> Biokepi_pipeline_edsl.Pipeline.germline
                                                       Biokepi_pipeline_edsl.Pipeline.Variant_caller.input
      type 'a t = {
        name : string;
        configuration_json : Biokepi_pipeline_edsl.Pipeline.json;
        configuration_name : string;
        make_target :
          run_with:Biokepi_run_environment.Machine.t ->
          input:'Biokepi_pipeline_edsl.Pipeline.Variant_caller.input ->
          result_prefix:string ->
          ?more_edges:Biokepi_run_environment.Common.KEDSL.workflow_edge list ->
          unit -> Biokepi_run_environment.Common.KEDSL.file_workflow;
      }
    end
  type metadata_spec =
      [ `Add_tags of string list | `Add_tags_rec of string list ]
  type _ t =
      Fastq_gz :
        Biokepi_pipeline_edsl.Pipeline.File.t -> Biokepi_pipeline_edsl.Pipeline.fastq_gz
                                                 Biokepi_pipeline_edsl.Pipeline.t
    | Fastq :
        Biokepi_pipeline_edsl.Pipeline.File.t -> Biokepi_pipeline_edsl.Pipeline.fastq
                                                 Biokepi_pipeline_edsl.Pipeline.t
    | Bam_sample : string *
        Biokepi_pipeline_edsl.Pipeline.bam -> Biokepi_pipeline_edsl.Pipeline.bam
                                              Biokepi_pipeline_edsl.Pipeline.t
    | Bam_to_fastq :
        Biokepi_pipeline_edsl.Pipeline.fastq_sample_info option *
        [ `Paired | `Single ] *
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t -> 
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t
    | Paired_end_sample : Biokepi_pipeline_edsl.Pipeline.fastq_sample_info *
        Biokepi_pipeline_edsl.Pipeline.fastq Biokepi_pipeline_edsl.Pipeline.t *
        Biokepi_pipeline_edsl.Pipeline.fastq Biokepi_pipeline_edsl.Pipeline.t -> 
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t
    | Single_end_sample : Biokepi_pipeline_edsl.Pipeline.fastq_sample_info *
        Biokepi_pipeline_edsl.Pipeline.fastq Biokepi_pipeline_edsl.Pipeline.t -> 
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t
    | Gunzip_concat :
        Biokepi_pipeline_edsl.Pipeline.fastq_gz
        Biokepi_pipeline_edsl.Pipeline.t list -> Biokepi_pipeline_edsl.Pipeline.fastq
                                                 Biokepi_pipeline_edsl.Pipeline.t
    | Concat_text :
        Biokepi_pipeline_edsl.Pipeline.fastq Biokepi_pipeline_edsl.Pipeline.t
        list -> Biokepi_pipeline_edsl.Pipeline.fastq
                Biokepi_pipeline_edsl.Pipeline.t
    | Star : Biokepi_bfx_tools.Star.Configuration.Align.t *
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t -> Biokepi_pipeline_edsl.Pipeline.bam
                                            Biokepi_pipeline_edsl.Pipeline.t
    | Hisat : Biokepi_bfx_tools.Hisat.Configuration.t *
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t -> Biokepi_pipeline_edsl.Pipeline.bam
                                            Biokepi_pipeline_edsl.Pipeline.t
    | Stringtie : Biokepi_bfx_tools.Stringtie.Configuration.t *
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t -> 
        Biokepi_pipeline_edsl.Pipeline.gtf Biokepi_pipeline_edsl.Pipeline.t
    | Bwa : Biokepi_bfx_tools.Bwa.Configuration.Aln.t *
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t -> Biokepi_pipeline_edsl.Pipeline.bam
                                            Biokepi_pipeline_edsl.Pipeline.t
    | Bwa_mem : Biokepi_bfx_tools.Bwa.Configuration.Mem.t *
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t -> Biokepi_pipeline_edsl.Pipeline.bam
                                            Biokepi_pipeline_edsl.Pipeline.t
    | Mosaik :
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t -> Biokepi_pipeline_edsl.Pipeline.bam
                                            Biokepi_pipeline_edsl.Pipeline.t
    | Gatk_indel_realigner :
        Biokepi_bfx_tools.Gatk.Configuration.indel_realigner *
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t -> 
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
    | Picard_mark_duplicates :
        Biokepi_bfx_tools.Picard.Mark_duplicates_settings.t *
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t -> 
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
    | Gatk_bqsr :
        (Biokepi_bfx_tools.Gatk.Configuration.bqsr *
         Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t) -> 
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
    | Bam_pair :
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t *
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t -> 
        Biokepi_pipeline_edsl.Pipeline.bam_pair
        Biokepi_pipeline_edsl.Pipeline.t
    | Somatic_variant_caller :
        Biokepi_pipeline_edsl.Pipeline.somatic
        Biokepi_pipeline_edsl.Pipeline.Variant_caller.t *
        Biokepi_pipeline_edsl.Pipeline.bam_pair
        Biokepi_pipeline_edsl.Pipeline.t -> Biokepi_pipeline_edsl.Pipeline.vcf
                                            Biokepi_pipeline_edsl.Pipeline.t
    | Germline_variant_caller :
        Biokepi_pipeline_edsl.Pipeline.germline
        Biokepi_pipeline_edsl.Pipeline.Variant_caller.t *
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t -> 
        Biokepi_pipeline_edsl.Pipeline.vcf Biokepi_pipeline_edsl.Pipeline.t
    | Seq2HLA :
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t -> Biokepi_pipeline_edsl.Pipeline.seq2hla_hla_types
                                            Biokepi_pipeline_edsl.Pipeline.t
    | Optitype :
        ([ `DNA | `RNA ] *
         Biokepi_pipeline_edsl.Pipeline.fastq_sample
         Biokepi_pipeline_edsl.Pipeline.t) -> Biokepi_pipeline_edsl.Pipeline.optitype_hla_types
                                              Biokepi_pipeline_edsl.Pipeline.t
    | With_metadata : Biokepi_pipeline_edsl.Pipeline.metadata_spec *
        'Biokepi_pipeline_edsl.Pipeline.t -> 'a
                                               Biokepi_pipeline_edsl.Pipeline.t
  module Construct :
    sig
      type input_fastq =
          [ `Paired_end of
              Biokepi_pipeline_edsl.Pipeline.File.t list *
              Biokepi_pipeline_edsl.Pipeline.File.t list
          | `Single_end of Biokepi_pipeline_edsl.Pipeline.File.t list ]
      val input_fastq :
        dataset:string ->
        Biokepi_pipeline_edsl.Pipeline.Construct.input_fastq ->
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t
      val bam :
        dataset:string ->
        Biokepi_pipeline_edsl.Pipeline.bam ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
      val bam_to_fastq :
        ?sample_name:Biokepi_pipeline_edsl.Pipeline.fastq_sample_info ->
        [ `Paired | `Single ] ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t
      val bwa :
        ?configuration:Biokepi_bfx_tools.Bwa.Configuration.Aln.t ->
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
      val bwa_aln :
        ?configuration:Biokepi_bfx_tools.Bwa.Configuration.Aln.t ->
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
      val bwa_mem :
        ?configuration:Biokepi_bfx_tools.Bwa.Configuration.Mem.t ->
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
      val mosaik :
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
      val star :
        ?configuration:Biokepi_bfx_tools.Star.Configuration.Align.t ->
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
      val hisat :
        ?configuration:Biokepi_bfx_tools.Hisat.Configuration.t ->
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
      val stringtie :
        ?configuration:Biokepi_bfx_tools.Stringtie.Configuration.t ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.gtf Biokepi_pipeline_edsl.Pipeline.t
      val gatk_indel_realigner :
        ?configuration:Biokepi_bfx_tools.Gatk.Configuration.indel_realigner ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
      val picard_mark_duplicates :
        ?settings:Biokepi_bfx_tools.Picard.Mark_duplicates_settings.t ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
      val gatk_bqsr :
        ?configuration:Biokepi_bfx_tools.Gatk.Configuration.bqsr ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t
      val pair :
        normal:Biokepi_pipeline_edsl.Pipeline.bam
               Biokepi_pipeline_edsl.Pipeline.t ->
        tumor:Biokepi_pipeline_edsl.Pipeline.bam
              Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.bam_pair
        Biokepi_pipeline_edsl.Pipeline.t
      val germline_variant_caller :
        Biokepi_pipeline_edsl.Pipeline.germline
        Biokepi_pipeline_edsl.Pipeline.Variant_caller.t ->
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.vcf Biokepi_pipeline_edsl.Pipeline.t
      val gatk_haplotype_caller :
        Biokepi_pipeline_edsl.Pipeline.bam Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.vcf Biokepi_pipeline_edsl.Pipeline.t
      val somatic_variant_caller :
        Biokepi_pipeline_edsl.Pipeline.somatic
        Biokepi_pipeline_edsl.Pipeline.Variant_caller.t ->
        Biokepi_pipeline_edsl.Pipeline.bam_pair
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.vcf Biokepi_pipeline_edsl.Pipeline.t
      val mutect :
        ?configuration:Biokepi_bfx_tools.Mutect.Configuration.t ->
        Biokepi_pipeline_edsl.Pipeline.bam_pair
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.vcf Biokepi_pipeline_edsl.Pipeline.t
      val mutect2 :
        ?configuration:Biokepi_bfx_tools.Gatk.Configuration.Mutect2.t ->
        Biokepi_pipeline_edsl.Pipeline.bam_pair
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.vcf Biokepi_pipeline_edsl.Pipeline.t
      val somaticsniper :
        ?configuration:Biokepi_bfx_tools.Somaticsniper.Configuration.t ->
        Biokepi_pipeline_edsl.Pipeline.bam_pair
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.vcf Biokepi_pipeline_edsl.Pipeline.t
      val varscan_somatic :
        ?adjust_mapq:int ->
        Biokepi_pipeline_edsl.Pipeline.bam_pair
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.vcf Biokepi_pipeline_edsl.Pipeline.t
      val strelka :
        configuration:Biokepi_bfx_tools.Strelka.Configuration.t ->
        Biokepi_pipeline_edsl.Pipeline.bam_pair
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.vcf Biokepi_pipeline_edsl.Pipeline.t
      val virmid :
        configuration:Biokepi_bfx_tools.Virmid.Configuration.t ->
        Biokepi_pipeline_edsl.Pipeline.bam_pair
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.vcf Biokepi_pipeline_edsl.Pipeline.t
      val muse :
        configuration:Biokepi_bfx_tools.Muse.Configuration.t ->
        Biokepi_pipeline_edsl.Pipeline.bam_pair
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.vcf Biokepi_pipeline_edsl.Pipeline.t
      val seq2hla :
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.seq2hla_hla_types
        Biokepi_pipeline_edsl.Pipeline.t
      val optitype :
        [ `DNA | `RNA ] ->
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.t ->
        Biokepi_pipeline_edsl.Pipeline.optitype_hla_types
        Biokepi_pipeline_edsl.Pipeline.t
      val add_tags :
        ?recursively:bool ->
        string list ->
        'Biokepi_pipeline_edsl.Pipeline.t ->
        'Biokepi_pipeline_edsl.Pipeline.t
    end
  val to_file_prefix :
    ?read:[ `R1 of string | `R2 of string ] -> 'a t -> string
  val to_json : 'a t -> Biokepi_pipeline_edsl.Pipeline.json
  module Compiler :
    sig
      type 'a pipeline = 'Biokepi_pipeline_edsl.Pipeline.t
      type workflow_option_failure_mode =
          [ `Fail_if_not_happening | `Silent ]
      type workflow_option =
          [ `Map_reduce of [ `Gatk_indel_realigner ]
          | `Multi_sample_indel_realignment of
              Biokepi_pipeline_edsl.Pipeline.Compiler.workflow_option_failure_mode
          | `Parallel_alignment_over_fastq_fragments of
              [ `Bwa | `Bwa_mem | `Hisat | `Mosaik | `Star ] list *
              Biokepi_pipeline_edsl.Pipeline.Compiler.workflow_option_failure_mode ]
      type t = {
        reference_build : Biokepi_run_environment.Reference_genome.name;
        work_dir : string;
        machine : Biokepi_run_environment.Machine.t;
        options :
          Biokepi_pipeline_edsl.Pipeline.Compiler.workflow_option list;
        wrap_bam_node :
          Biokepi_pipeline_edsl.Pipeline.bam
          Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
          Biokepi_run_environment.Common.KEDSL.bam_file
          Biokepi_run_environment.Common.KEDSL.workflow_node ->
          Biokepi_run_environment.Common.KEDSL.bam_file
          Biokepi_run_environment.Common.KEDSL.workflow_node;
        wrap_vcf_node :
          Biokepi_pipeline_edsl.Pipeline.vcf
          Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
          Biokepi_run_environment.Common.KEDSL.single_file
          Biokepi_run_environment.Common.KEDSL.workflow_node ->
          Biokepi_run_environment.Common.KEDSL.single_file
          Biokepi_run_environment.Common.KEDSL.workflow_node;
        wrap_gtf_node :
          Biokepi_pipeline_edsl.Pipeline.gtf
          Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
          Biokepi_run_environment.Common.KEDSL.single_file
          Biokepi_run_environment.Common.KEDSL.workflow_node ->
          Biokepi_run_environment.Common.KEDSL.single_file
          Biokepi_run_environment.Common.KEDSL.workflow_node;
      }
      val create :
        ?wrap_bam_node:(Biokepi_pipeline_edsl.Pipeline.bam
                        Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
                        Biokepi_run_environment.Common.KEDSL.bam_file
                        Biokepi_run_environment.Common.KEDSL.workflow_node ->
                        Biokepi_run_environment.Common.KEDSL.bam_file
                        Biokepi_run_environment.Common.KEDSL.workflow_node) ->
        ?wrap_vcf_node:(Biokepi_pipeline_edsl.Pipeline.vcf
                        Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
                        Biokepi_run_environment.Common.KEDSL.single_file
                        Biokepi_run_environment.Common.KEDSL.workflow_node ->
                        Biokepi_run_environment.Common.KEDSL.single_file
                        Biokepi_run_environment.Common.KEDSL.workflow_node) ->
        ?wrap_gtf_node:(Biokepi_pipeline_edsl.Pipeline.gtf
                        Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
                        Biokepi_run_environment.Common.KEDSL.single_file
                        Biokepi_run_environment.Common.KEDSL.workflow_node ->
                        Biokepi_run_environment.Common.KEDSL.single_file
                        Biokepi_run_environment.Common.KEDSL.workflow_node) ->
        ?options:Biokepi_pipeline_edsl.Pipeline.Compiler.workflow_option list ->
        reference_build:Biokepi_run_environment.Reference_genome.name ->
        work_dir:string ->
        machine:Biokepi_run_environment.Machine.t ->
        unit -> Biokepi_pipeline_edsl.Pipeline.Compiler.t
      val has_option :
        Biokepi_pipeline_edsl.Pipeline.Compiler.t ->
        (Biokepi_pipeline_edsl.Pipeline.Compiler.workflow_option -> bool) ->
        bool
      val apply_with_metadata :
        metadata_spec:[< `Add_tags of string list
                       | `Add_tags_rec of string list ] ->
        (< is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;
           .. >
         as 'a)
        Biokepi_run_environment.Common.KEDSL.product
        Biokepi_run_environment.Common.KEDSL.workflow_node ->
        'Biokepi_run_environment.Common.KEDSL.product
        Biokepi_run_environment.Common.KEDSL.workflow_node
      val fastq_step :
        read:[ `R1 of string | `R2 of string ] ->
        compiler:Biokepi_pipeline_edsl.Pipeline.Compiler.t ->
        Biokepi_pipeline_edsl.Pipeline.fastq
        Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
        Biokepi_pipeline_edsl.Pipeline.File.t
      val fastq_sample_step :
        compiler:Biokepi_pipeline_edsl.Pipeline.Compiler.t ->
        Biokepi_pipeline_edsl.Pipeline.fastq_sample
        Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
        < escaped_sample_name : string; fragment_id : string option;
          fragment_id_forced : string;
          is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;
          paths : string * string option;
          r1 : Biokepi_run_environment.Common.KEDSL.single_file
               Biokepi_run_environment.Common.KEDSL.workflow_node;
          r2 : Biokepi_run_environment.Common.KEDSL.single_file
               Biokepi_run_environment.Common.KEDSL.workflow_node option;
          sample_name : string >
        Biokepi_run_environment.Common.KEDSL.product
        Biokepi_run_environment.Common.KEDSL.workflow_node
      val compile_aligner_step :
        compiler:Biokepi_pipeline_edsl.Pipeline.Compiler.t ->
        Biokepi_pipeline_edsl.Pipeline.bam
        Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
        Biokepi_run_environment.Common.KEDSL.bam_file
        Biokepi_run_environment.Common.KEDSL.workflow_node
      val compile_bam_pair :
        compiler:Biokepi_pipeline_edsl.Pipeline.Compiler.t ->
        Biokepi_pipeline_edsl.Pipeline.bam_pair
        Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
        [ `Normal of
            Biokepi_run_environment.Common.KEDSL.bam_file
            Biokepi_run_environment.Common.KEDSL.workflow_node ] *
        [ `Tumor of
            Biokepi_run_environment.Common.KEDSL.bam_file
            Biokepi_run_environment.Common.KEDSL.workflow_node ] *
        [ `Pipeline of
            Biokepi_pipeline_edsl.Pipeline.bam_pair
            Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ]
      val compile_variant_caller_step :
        compiler:Biokepi_pipeline_edsl.Pipeline.Compiler.t ->
        Biokepi_pipeline_edsl.Pipeline.vcf
        Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
        Biokepi_run_environment.Common.KEDSL.single_file
        Biokepi_run_environment.Common.KEDSL.product
        Biokepi_run_environment.Common.KEDSL.product
        Biokepi_run_environment.Common.KEDSL.workflow_node
      val compile_gtf_step :
        compiler:Biokepi_pipeline_edsl.Pipeline.Compiler.t ->
        Biokepi_pipeline_edsl.Pipeline.gtf
        Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
        < 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.product
        Biokepi_run_environment.Common.KEDSL.product
        Biokepi_run_environment.Common.KEDSL.workflow_node
      val seq2hla_hla_types_step :
        compiler:Biokepi_pipeline_edsl.Pipeline.Compiler.t ->
        Biokepi_pipeline_edsl.Pipeline.seq2hla_hla_types
        Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
        < is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;
          paths : string list >
        Biokepi_run_environment.Common.KEDSL.product
        Biokepi_run_environment.Common.KEDSL.workflow_node
      val optitype_hla_types_step :
        compiler:Biokepi_pipeline_edsl.Pipeline.Compiler.t ->
        Biokepi_pipeline_edsl.Pipeline.optitype_hla_types
        Biokepi_pipeline_edsl.Pipeline.Compiler.pipeline ->
        < is_done : Biokepi_run_environment.Common.KEDSL.Condition.t option;
          path : string >
        Biokepi_run_environment.Common.KEDSL.product
        Biokepi_run_environment.Common.KEDSL.workflow_node
    end
end