import "./tasks/mapping.wdl" as mapping import "./tasks/Metrics.wdl" as Metrics import "./tasks/Dedup.wdl" as Dedup import "./tasks/deduped_Metrics.wdl" as deduped_Metrics import "./tasks/Realigner.wdl" as Realigner import "./tasks/BQSR.wdl" as BQSR import "./tasks/Haplotyper.wdl" as Haplotyper import "./tasks/corealigner.wdl" as corealigner import "./tasks/PON.wdl" as PON import "./tasks/TNseq.wdl" as TNseq import "./tasks/TNscope.wdl" as TNscope import "./tasks/somatic.wdl" as somatic import "./tasks/processSomatic.wdl" as processSomatic import "./tasks/somaticFilter.wdl" as somaticFilter import "./tasks/annovar.wdl" as annovar import "./tasks/vcf2maf.wdl" as vcf2maf workflow {{ project_name }} { String sample_id File tumor_fastq_1 File tumor_fastq_2 File normal_fastq_1 File normal_fastq_2 String SENTIEON_INSTALL_DIR String SENTIEON_LICENSE String sentieon_docker String annovar_docker String maftools_docker File ref_dir String fasta File dbmills_dir String db_mills File dbsnp_dir String dbsnp File? regions File database String disk_size String cluster_config Boolean set_pon File? pon_vcf File? cosmic_dir String? cosmic_vcf Boolean germline Boolean TNseq Boolean TNscope Boolean Varscan call mapping.mapping as tumor_mapping { input: group=sample_id + '_tumor', sample=sample_id + '_tumor', fastq_1=tumor_fastq_1, fastq_2=tumor_fastq_2, SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, pl="ILLUMINAL", fasta=fasta, ref_dir=ref_dir, docker=sentieon_docker, disk_size=disk_size, cluster_config=cluster_config } call Metrics.Metrics as tumor_Metrics { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, fasta=fasta, ref_dir=ref_dir, sorted_bam=tumor_mapping.sorted_bam, sorted_bam_index=tumor_mapping.sorted_bam_index, sample=sample_id + '_tumor', docker=sentieon_docker, disk_size=disk_size, cluster_config=cluster_config } call Dedup.Dedup as tumor_Dedup { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, sorted_bam=tumor_mapping.sorted_bam, sorted_bam_index=tumor_mapping.sorted_bam_index, sample=sample_id + '_tumor', docker=sentieon_docker, disk_size=disk_size, cluster_config=cluster_config } call deduped_Metrics.deduped_Metrics as tumor_deduped_Metrics { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, fasta=fasta, ref_dir=ref_dir, Dedup_bam=tumor_Dedup.Dedup_bam, Dedup_bam_index=tumor_Dedup.Dedup_bam_index, sample=sample_id + '_tumor', docker=sentieon_docker, disk_size=disk_size, cluster_config=cluster_config } call Realigner.Realigner as tumor_Realigner { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, fasta=fasta, ref_dir=ref_dir, Dedup_bam=tumor_Dedup.Dedup_bam, Dedup_bam_index=tumor_Dedup.Dedup_bam_index, db_mills=db_mills, dbmills_dir=dbmills_dir, sample=sample_id + '_tumor', docker=sentieon_docker, disk_size=disk_size, regions=regions, cluster_config=cluster_config } call BQSR.BQSR as tumor_BQSR { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, fasta=fasta, ref_dir=ref_dir, realigned_bam=tumor_Realigner.realigner_bam, realigned_bam_index=tumor_Realigner.realigner_bam_index, db_mills=db_mills, dbmills_dir=dbmills_dir, dbsnp=dbsnp, dbsnp_dir=dbsnp_dir, sample=sample_id + '_tumor', regions=regions, docker=sentieon_docker, disk_size=disk_size, cluster_config=cluster_config } call mapping.mapping as normal_mapping { input: group=sample_id + '_normal', sample=sample_id + '_normal', fastq_1=normal_fastq_1, fastq_2=normal_fastq_2, SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, pl="ILLUMINAL", fasta=fasta, ref_dir=ref_dir, docker=sentieon_docker, disk_size=disk_size, cluster_config=cluster_config } call Metrics.Metrics as normal_Metrics { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, fasta=fasta, ref_dir=ref_dir, sorted_bam=normal_mapping.sorted_bam, sorted_bam_index=normal_mapping.sorted_bam_index, sample=sample_id + '_normal', docker=sentieon_docker, disk_size=disk_size, cluster_config=cluster_config } call Dedup.Dedup as normal_Dedup { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, sorted_bam=normal_mapping.sorted_bam, sorted_bam_index=normal_mapping.sorted_bam_index, sample=sample_id + '_normal', docker=sentieon_docker, disk_size=disk_size, cluster_config=cluster_config } call deduped_Metrics.deduped_Metrics as normal_deduped_Metrics { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, fasta=fasta, ref_dir=ref_dir, Dedup_bam=normal_Dedup.Dedup_bam, Dedup_bam_index=normal_Dedup.Dedup_bam_index, sample=sample_id + '_normal', docker=sentieon_docker, disk_size=disk_size, cluster_config=cluster_config } call Realigner.Realigner as normal_Realigner { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, fasta=fasta, ref_dir=ref_dir, Dedup_bam=normal_Dedup.Dedup_bam, Dedup_bam_index=normal_Dedup.Dedup_bam_index, db_mills=db_mills, dbmills_dir=dbmills_dir, sample=sample_id + '_normal', docker=sentieon_docker, disk_size=disk_size, regions=regions, cluster_config=cluster_config } call BQSR.BQSR as normal_BQSR { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, fasta=fasta, ref_dir=ref_dir, realigned_bam=normal_Realigner.realigner_bam, realigned_bam_index=normal_Realigner.realigner_bam_index, db_mills=db_mills, dbmills_dir=dbmills_dir, dbsnp=dbsnp, dbsnp_dir=dbsnp_dir, sample=sample_id + '_normal', regions=regions, docker=sentieon_docker, disk_size=disk_size, cluster_config=cluster_config } if (germline) { call Haplotyper.Haplotyper as Haplotyper { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, sample=sample_id + '_normal', fasta=fasta, ref_dir=ref_dir, recaled_bam=normal_BQSR.recaled_bam, recaled_bam_index=normal_BQSR.recaled_bam_index, dbsnp=dbsnp, dbsnp_dir=dbsnp_dir, regions=regions, docker=sentieon_docker, disk_size=disk_size, cluster_config=cluster_config } } call corealigner.corealigner as corealigner { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, fasta=fasta, ref_dir=ref_dir, sample=sample_id, docker=sentieon_docker, db_mills=db_mills, dbmills_dir=dbmills_dir, dbsnp=dbsnp, dbsnp_dir=dbsnp_dir, tumor_recaled_bam=tumor_BQSR.recaled_bam, tumor_recaled_bam_index=tumor_BQSR.recaled_bam_index, normal_recaled_bam=normal_BQSR.recaled_bam, normal_recaled_bam_index=normal_BQSR.recaled_bam_index, disk_size=disk_size, cluster_config=cluster_config } if (TNseq) { call TNseq.TNseq as TNseq { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, fasta=fasta, ref_dir=ref_dir, regions=regions, corealigner_bam=corealigner.corealigner_bam, corealigner_bam_index=corealigner.corealigner_bam_index, dbsnp=dbsnp, dbsnp_dir=dbsnp_dir, set_pon=set_pon, pon_vcf=pon_vcf, cosmic_vcf=cosmic_vcf, cosmic_dir=cosmic_dir, tumor_name=sample_id + "_tumor", normal_name=sample_id + "_normal", docker=sentieon_docker, sample=sample_id, disk_size=disk_size, cluster_config=cluster_config } call annovar.annovar as TNseq_annovar { input: sample=sample_id, vcf=TNseq.TNseq_vcf, database=database, docker=annovar_docker, cluster_config=cluster_config, disk_size=disk_size } call vcf2maf.vcf2maf as TNseq_vcf2maf { input: sample=sample_id, multianno_txt=TNseq_annovar.multianno_txt, docker=maftools_docker, cluster_config=cluster_config, disk_size=disk_size } } if (TNscope) { call TNscope.TNscope as TNscope { input: SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, SENTIEON_LICENSE=SENTIEON_LICENSE, fasta=fasta, ref_dir=ref_dir, regions=regions, corealigner_bam=corealigner.corealigner_bam, corealigner_bam_index=corealigner.corealigner_bam_index, dbsnp=dbsnp, dbsnp_dir=dbsnp_dir, set_pon=set_pon, pon_vcf=pon_vcf, cosmic_vcf=cosmic_vcf, cosmic_dir=cosmic_dir, tumor_name=sample_id + "_tumor", normal_name=sample_id + "_normal", docker=sentieon_docker, sample=sample_id, disk_size=disk_size, cluster_config=cluster_config } call annovar.annovar as TNscope_annovar { input: sample=sample_id, vcf=TNscope.TNscope_vcf, database=database, docker=annovar_docker, cluster_config=cluster_config, disk_size=disk_size } call vcf2maf.vcf2maf as TNscope_vcf2maf { input: sample=sample_id, multianno_txt=TNscope_annovar.multianno_txt, docker=maftools_docker, cluster_config=cluster_config, disk_size=disk_size } } if (Varscan) { call somatic.somatic as somatic { input: sample=sample_id, tumor_bam=tumor_BQSR.recaled_bam, tumor_bam_index=tumor_BQSR.recaled_bam_index, normal_bam=normal_BQSR.recaled_bam, normal_bam_index=normal_BQSR.recaled_bam_index, ref_dir=ref_dir, fasta=fasta, docker=varscan_docker, disk_size=disk_size, cluster_config=cluster_config } call processSomatic.processSomatic as processSomatic { input: sample=sample_id, varscan_snp=somatic.varscan_snp, varscan_indel=somatic.varscan_indel, docker=varscan_docker, disk_size=disk_size, cluster_config=cluster_config } call somaticFilter.somaticFilter as somaticFilter { input: sample=sample_id, varscan_snp_somatic_hc=processSomatic.varscan_snp_somatic_hc, varscan_snp_germline_hc=processSomatic.varscan_snp_germline_hc, varscan_snp_loh_hc=processSomatic.varscan_snp_loh_hc, varscan_indel_somatic_hc=processSomatic.varscan_indel_somatic_hc, varscan_indel_germline_hc=processSomatic.varscan_indel_germline_hc, varscan_indel_loh_hc=processSomatic.varscan_indel_loh_hc, varscan_indel=somatic.varscan_indel, docker=varscan_docker, disk_size=disk_size, cluster_config=cluster_config } call annovar.annovar as snp_somatic_annovar { input: sample=sample_id, vcf=somaticFilter.varscan_snp_somatic_filter, database=database, docker=annovar_docker, cluster_config=cluster_config, disk_size=disk_size } call vcf2maf.vcf2maf as snp_somatic_vcf2maf { input: sample=sample_id, multianno_txt=snp_somatic_annovar.multianno_txt, docker=maftools_docker, cluster_config=cluster_config, disk_size=disk_size } call annovar.annovar as snp_loh_annovar { input: sample=sample_id, vcf=somaticFilter.varscan_snp_loh_filter, database=database, docker=annovar_docker, cluster_config=cluster_config, disk_size=disk_size } call vcf2maf.vcf2maf as snp_loh_vcf2maf { input: sample=sample_id, multianno_txt=snp_loh_annovar.multianno_txt, docker=maftools_docker, cluster_config=cluster_config, disk_size=disk_size } call annovar.annovar as indel_somatic_annovar { input: sample=sample_id, vcf=somaticFilter.varscan_indel_somatic_filter, database=database, docker=annovar_docker, cluster_config=cluster_config, disk_size=disk_size } call vcf2maf.vcf2maf as indel_somatic_vcf2maf { input: sample=sample_id, multianno_txt=indel_somatic_annovar.multianno_txt, docker=maftools_docker, cluster_config=cluster_config, disk_size=disk_size } call annovar.annovar as indel_loh_annovar { input: sample=sample_id, vcf=somaticFilter.varscan_indel_loh_filter, database=database, docker=annovar_docker, cluster_config=cluster_config, disk_size=disk_size } call vcf2maf.vcf2maf as indel_loh_vcf2maf { input: sample=sample_id, multianno_txt=indel_loh_annovar.multianno_txt, docker=maftools_docker, cluster_config=cluster_config, disk_size=disk_size } } }