import "./tasks/split_gvcf_files.wdl" as split_gvcf_files import "./tasks/benchmark.wdl" as benchmark 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 }} { File gvcf String BENCHMARKdocker String MENDELIANdocker String DIYdocker String fasta File ref_dir File benchmarking_dir String project String disk_size String BIGcluster_config String SMALLcluster_config call split_gvcf_files.split_gvcf_files as split_gvcf_files { input: gvcf=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 mendelian.mendelian as mendelian { input: family_vcf=family_vcfs[idx], 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 } } }