sig
  module type Semantics = Biokepi_pipeline_edsl.Semantics.Bioinformatics_base
  module Compile :
    sig
      module To_display = Biokepi_pipeline_edsl.To_display
      module To_workflow = Biokepi_pipeline_edsl.To_workflow
      module To_json :
        sig
          type 'a repr = var_count:int -> Yojson.Basic.json
          val lambda : ('a repr -> 'b repr) -> ('-> 'b) repr
          val apply : ('-> 'b) repr -> 'a repr -> 'b repr
          type 'a observation = Yojson.Basic.json
          val observe : (unit -> 'a repr) -> 'a observation
          val list : 'a repr list -> 'a list repr
          val list_map : 'a list repr -> f:('-> 'b) repr -> 'b list repr
          val pair : 'a repr -> 'b repr -> ('a * 'b) repr
          val pair_first : ('a * 'b) repr -> 'a repr
          val pair_second : ('a * 'b) repr -> 'b repr
          val to_unit : 'a repr -> unit repr
          val fastq :
            sample_name:string ->
            ?fragment_id:string ->
            r1:string -> ?r2:string -> unit -> [ `Fastq ] repr
          val fastq_gz :
            sample_name:string ->
            ?fragment_id:string ->
            r1:string -> ?r2:string -> unit -> [ `Gz of [ `Fastq ] ] repr
          val bam :
            path:string ->
            ?sorting:[ `Coordinate | `Read_name ] ->
            reference_build:string -> unit -> [ `Bam ] repr
          val gunzip : [ `Gz of 'a ] repr -> 'a repr
          val gunzip_concat : [ `Gz of 'a ] list repr -> 'a repr
          val concat : 'a list repr -> 'a repr
          val merge_bams : [ `Bam ] list repr -> [ `Bam ] repr
          val bam_to_fastq :
            sample_name:string ->
            ?fragment_id:string ->
            [ `PE | `SE ] -> [ `Bam ] repr -> [ `Fastq ] repr
          val bwa_aln :
            ?configuration:Biokepi_bfx_tools.Bwa.Configuration.Aln.t ->
            reference_build:Biokepi_run_environment.Reference_genome.name ->
            [ `Fastq ] repr -> [ `Bam ] repr
          val bwa_mem :
            ?configuration:Biokepi_bfx_tools.Bwa.Configuration.Mem.t ->
            reference_build:Biokepi_run_environment.Reference_genome.name ->
            [ `Fastq ] repr -> [ `Bam ] repr
          val star :
            ?configuration:Biokepi_bfx_tools.Star.Configuration.Align.t ->
            reference_build:Biokepi_run_environment.Reference_genome.name ->
            [ `Fastq ] repr -> [ `Bam ] repr
          val hisat :
            ?configuration:Biokepi_bfx_tools.Hisat.Configuration.t ->
            reference_build:Biokepi_run_environment.Reference_genome.name ->
            [ `Fastq ] repr -> [ `Bam ] repr
          val mosaik :
            reference_build:Biokepi_run_environment.Reference_genome.name ->
            [ `Fastq ] repr -> [ `Bam ] repr
          val stringtie :
            ?configuration:Biokepi_bfx_tools.Stringtie.Configuration.t ->
            [ `Bam ] repr -> [ `Gtf ] repr
          val gatk_indel_realigner :
            ?configuration:Biokepi_bfx_tools.Gatk.Configuration.indel_realigner ->
            [ `Bam ] repr -> [ `Bam ] repr
          val gatk_indel_realigner_joint :
            ?configuration:Biokepi_bfx_tools.Gatk.Configuration.indel_realigner ->
            ([ `Bam ] * [ `Bam ]) repr -> ([ `Bam ] * [ `Bam ]) repr
          val picard_mark_duplicates :
            ?configuration:Biokepi_bfx_tools.Picard.Mark_duplicates_settings.t ->
            [ `Bam ] repr -> [ `Bam ] repr
          val gatk_bqsr :
            ?configuration:Biokepi_bfx_tools.Gatk.Configuration.bqsr ->
            [ `Bam ] repr -> [ `Bam ] repr
          val seq2hla : [ `Fastq ] repr -> [ `Seq2hla_result ] repr
          val optitype :
            [ `DNA | `RNA ] -> [ `Fastq ] repr -> [ `Optitype_result ] repr
          val gatk_haplotype_caller : [ `Bam ] repr -> [ `Vcf ] repr
          val mutect :
            ?configuration:Biokepi_bfx_tools.Mutect.Configuration.t ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
          val mutect2 :
            ?configuration:Biokepi_bfx_tools.Gatk.Configuration.Mutect2.t ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
          val somaticsniper :
            ?configuration:Biokepi_bfx_tools.Somaticsniper.Configuration.t ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
          val varscan_somatic :
            ?adjust_mapq:int ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
          val strelka :
            ?configuration:Biokepi_bfx_tools.Strelka.Configuration.t ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
          val virmid :
            ?configuration:Biokepi_bfx_tools.Virmid.Configuration.t ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
          val muse :
            ?configuration:Biokepi_bfx_tools.Muse.Configuration.t ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
        end
      module To_dot :
        sig
          type 'a repr
          val lambda : ('a repr -> 'b repr) -> ('-> 'b) repr
          val apply : ('-> 'b) repr -> 'a repr -> 'b repr
          type 'a observation = SmartPrint.t
          val observe : (unit -> 'a repr) -> 'a observation
          val list : 'a repr list -> 'a list repr
          val list_map : 'a list repr -> f:('-> 'b) repr -> 'b list repr
          val pair : 'a repr -> 'b repr -> ('a * 'b) repr
          val pair_first : ('a * 'b) repr -> 'a repr
          val pair_second : ('a * 'b) repr -> 'b repr
          val to_unit : 'a repr -> unit repr
          val fastq :
            sample_name:string ->
            ?fragment_id:string ->
            r1:string -> ?r2:string -> unit -> [ `Fastq ] repr
          val fastq_gz :
            sample_name:string ->
            ?fragment_id:string ->
            r1:string -> ?r2:string -> unit -> [ `Gz of [ `Fastq ] ] repr
          val bam :
            path:string ->
            ?sorting:[ `Coordinate | `Read_name ] ->
            reference_build:string -> unit -> [ `Bam ] repr
          val gunzip : [ `Gz of 'a ] repr -> 'a repr
          val gunzip_concat : [ `Gz of 'a ] list repr -> 'a repr
          val concat : 'a list repr -> 'a repr
          val merge_bams : [ `Bam ] list repr -> [ `Bam ] repr
          val bam_to_fastq :
            sample_name:string ->
            ?fragment_id:string ->
            [ `PE | `SE ] -> [ `Bam ] repr -> [ `Fastq ] repr
          val bwa_aln :
            ?configuration:Biokepi_bfx_tools.Bwa.Configuration.Aln.t ->
            reference_build:Biokepi_run_environment.Reference_genome.name ->
            [ `Fastq ] repr -> [ `Bam ] repr
          val bwa_mem :
            ?configuration:Biokepi_bfx_tools.Bwa.Configuration.Mem.t ->
            reference_build:Biokepi_run_environment.Reference_genome.name ->
            [ `Fastq ] repr -> [ `Bam ] repr
          val star :
            ?configuration:Biokepi_bfx_tools.Star.Configuration.Align.t ->
            reference_build:Biokepi_run_environment.Reference_genome.name ->
            [ `Fastq ] repr -> [ `Bam ] repr
          val hisat :
            ?configuration:Biokepi_bfx_tools.Hisat.Configuration.t ->
            reference_build:Biokepi_run_environment.Reference_genome.name ->
            [ `Fastq ] repr -> [ `Bam ] repr
          val mosaik :
            reference_build:Biokepi_run_environment.Reference_genome.name ->
            [ `Fastq ] repr -> [ `Bam ] repr
          val stringtie :
            ?configuration:Biokepi_bfx_tools.Stringtie.Configuration.t ->
            [ `Bam ] repr -> [ `Gtf ] repr
          val gatk_indel_realigner :
            ?configuration:Biokepi_bfx_tools.Gatk.Configuration.indel_realigner ->
            [ `Bam ] repr -> [ `Bam ] repr
          val gatk_indel_realigner_joint :
            ?configuration:Biokepi_bfx_tools.Gatk.Configuration.indel_realigner ->
            ([ `Bam ] * [ `Bam ]) repr -> ([ `Bam ] * [ `Bam ]) repr
          val picard_mark_duplicates :
            ?configuration:Biokepi_bfx_tools.Picard.Mark_duplicates_settings.t ->
            [ `Bam ] repr -> [ `Bam ] repr
          val gatk_bqsr :
            ?configuration:Biokepi_bfx_tools.Gatk.Configuration.bqsr ->
            [ `Bam ] repr -> [ `Bam ] repr
          val seq2hla : [ `Fastq ] repr -> [ `Seq2hla_result ] repr
          val optitype :
            [ `DNA | `RNA ] -> [ `Fastq ] repr -> [ `Optitype_result ] repr
          val gatk_haplotype_caller : [ `Bam ] repr -> [ `Vcf ] repr
          val mutect :
            ?configuration:Biokepi_bfx_tools.Mutect.Configuration.t ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
          val mutect2 :
            ?configuration:Biokepi_bfx_tools.Gatk.Configuration.Mutect2.t ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
          val somaticsniper :
            ?configuration:Biokepi_bfx_tools.Somaticsniper.Configuration.t ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
          val varscan_somatic :
            ?adjust_mapq:int ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
          val strelka :
            ?configuration:Biokepi_bfx_tools.Strelka.Configuration.t ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
          val virmid :
            ?configuration:Biokepi_bfx_tools.Virmid.Configuration.t ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
          val muse :
            ?configuration:Biokepi_bfx_tools.Muse.Configuration.t ->
            normal:[ `Bam ] repr ->
            tumor:[ `Bam ] repr -> unit -> [ `Vcf ] repr
        end
    end
  module Transform :
    sig
      module Apply_functions =
        Biokepi_pipeline_edsl.Transform_applications.Apply
    end
  module Library = Biokepi_pipeline_edsl.Pipeline_library
end