import "./tasks/split_gvcf_files.wdl" as split_gvcf_files import "./tasks/GVCFtyper.wdl" as GVCFtyper import "./tasks/benchmark.wdl" as benchmark import "./tasks/filtered.wdl" as filtered import "./tasks/mendelian.wdl" as mendelian import "./tasks/merge_mendelian.wdl" as merge_mendelian import "./tasks/quartet_mendelian.wdl" as quartet_mendelian import "./tasks/D5_D6.wdl" as D5_D6 import "./tasks/merge_family.wdl" as merge_family workflow {{ project_name }} { Array[File] gvcf Array[File] gvcf_idx String BENCHMARKdocker String MENDELIANdocker String DIYdocker String SENTIEON_INSTALL_DIR String SENTIEONdocker String fasta File ref_dir File benchmarking_dir File del_bed String project String disk_size String BIGcluster_config String SMALLcluster_config call GVCFtyper.GVCFtyper as GVCFtyper { input: ref_dir=ref_dir, SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, fasta=fasta, vcf=gvcf, vcf_idx=gvcf_idx, project=project, docker=SENTIEONdocker, cluster_config=BIGcluster_config, disk_size=disk_size } call split_gvcf_files.split_gvcf_files as split_gvcf_files { input: merged_gvcf=GVCFtyper.merged_gvcf, docker=DIYdocker, project=project, cluster_config=SMALLcluster_config, disk_size=disk_size } Array[File] single_gvcf = split_gvcf_files.splited_vcf scatter (idx in range(length(single_gvcf))) { call benchmark.benchmark as benchmark { input: vcf=single_gvcf[idx], benchmarking_dir=benchmarking_dir, ref_dir=ref_dir, fasta=fasta, docker=BENCHMARKdocker, cluster_config=BIGcluster_config, disk_size=disk_size, } } Boolean sister_tag = read_boolean(split_gvcf_files.sister_tag) Boolean quartet_tag = read_boolean(split_gvcf_files.quartet_tag) if (sister_tag) { call D5_D6.D5_D6 as D5_D6 { input: splited_vcf=split_gvcf_files.splited_vcf, project=project, docker=DIYdocker, cluster_config=SMALLcluster_config, disk_size=disk_size, } } if (quartet_tag) { call merge_family.merge_family as merge_family { input: splited_vcf=split_gvcf_files.splited_vcf, project=project, docker=DIYdocker, cluster_config=SMALLcluster_config, disk_size=disk_size, } Array[File] family_vcfs = merge_family.family_vcf scatter (idx in range(length(family_vcfs))) { call filtered.filtered as filtered { input: raw_vcf=family_vcfs[idx], del_bed=del_bed, docker=BENCHMARKdocker, cluster_config=BIGcluster_config, disk_size=disk_size } call mendelian.mendelian as mendelian { input: family_vcf=filtered.noDEL_vcf, ref_dir=ref_dir, fasta=fasta, docker=MENDELIANdocker, cluster_config=BIGcluster_config, disk_size=disk_size } call merge_mendelian.merge_mendelian as merge_mendelian { input: D5_trio_vcf=mendelian.D5_trio_vcf, D6_trio_vcf=mendelian.D6_trio_vcf, family_vcf=family_vcfs[idx], docker=DIYdocker, cluster_config=SMALLcluster_config, disk_size=disk_size } } call quartet_mendelian.quartet_mendelian as quartet_mendelian { input: project_mendelian_summary=merge_mendelian.project_mendelian_summary, project=project, docker=DIYdocker, cluster_config=SMALLcluster_config, disk_size=disk_size } } }