import "./tasks/variantsNorm.wdl" as variantsNorm import "./tasks/merge_info.wdl" as merge_info import "./tasks/mendelian.wdl" as mendelian import "./tasks/zipIndex.wdl" as zipIndex import "./tasks/VCFrename.wdl" as VCFrename import "./tasks/mergeSister.wdl" as mergeSister import "./tasks/reformVCF.wdl" as reformVCF import "./tasks/merge.wdl" as merge import "./tasks/bed_annotation.wdl" as bed_annotation import "./tasks/votes.wdl" as votes workflow {{ project_name }} { File inputSamplesFile Array[Array[File]] inputSamples = read_tsv(inputSamplesFile) File ref_dir File repeat_bed String fasta String cluster_config String disk_size scatter (quartet in inputSamples){ call variantsNorm.variantsNorm as LCL5variantsNorm{ input: vcf=quartet[0], ref_dir=ref_dir, fasta=fasta, sampleName=quartet[4], cluster_config=cluster_config, disk_size=disk_size } call variantsNorm.variantsNorm as LCL6variantsNorm{ input: vcf=quartet[1], ref_dir=ref_dir, fasta=fasta, sampleName=quartet[5], cluster_config=cluster_config, disk_size=disk_size } call variantsNorm.variantsNorm as LCL7variantsNorm{ input: vcf=quartet[2], ref_dir=ref_dir, fasta=fasta, sampleName=quartet[6], cluster_config=cluster_config, disk_size=disk_size } call variantsNorm.variantsNorm as LCL8variantsNorm{ input: vcf=quartet[3], ref_dir=ref_dir, fasta=fasta, sampleName=quartet[7], cluster_config=cluster_config, disk_size=disk_size } call mendelian.mendelian as LCL5mendelian { input: child_vcf=LCL5variantsNorm.normed_vcf, LCL7_vcf=LCL7variantsNorm.normed_vcf, LCL8_vcf=LCL8variantsNorm.normed_vcf, LCL7_name=quartet[6], LCL8_name=quartet[7], child_name=quartet[4], ref_dir=ref_dir, fasta=fasta, cluster_config=cluster_config, disk_size=disk_size } call mendelian.mendelian as LCL6mendelian { input: child_vcf=LCL6variantsNorm.normed_vcf, LCL7_vcf=LCL7variantsNorm.normed_vcf, LCL8_vcf=LCL8variantsNorm.normed_vcf, LCL7_name=quartet[6], LCL8_name=quartet[7], child_name=quartet[5], ref_dir=ref_dir, fasta=fasta, cluster_config=cluster_config, disk_size=disk_size } call zipIndex.zipIndex as LCL5zipIndex { input: vcf=LCL5mendelian.trio_vcf, cluster_config=cluster_config, disk_size=disk_size } call zipIndex.zipIndex as LCL6zipIndex { input: vcf=LCL6mendelian.trio_vcf, cluster_config=cluster_config, disk_size=disk_size } call VCFrename.VCFrename as LCL5VCFrename { input: trio_vcf_gz=LCL5zipIndex.vcf_gz, trio_vcf_idx=LCL5zipIndex.vcf_idx, mother_name=quartet[7], father_name=quartet[6], child_name=quartet[4], family_name=quartet[8], child="LCL5", cluster_config=cluster_config, disk_size=disk_size } call VCFrename.VCFrename as LCL6VCFrename { input: trio_vcf_gz=LCL6zipIndex.vcf_gz, trio_vcf_idx=LCL6zipIndex.vcf_idx, mother_name=quartet[7], father_name=quartet[6], child_name=quartet[5], family_name=quartet[8], child="LCL6", cluster_config=cluster_config, disk_size=disk_size } call mergeSister.mergeSister as mergeSister { input: LCL5_trio_vcf_gz=LCL5VCFrename.rename_trio_vcf_gz, LCL5_trio_vcf_idx=LCL5VCFrename.rename_trio_vcf_idx, LCL6_trio_vcf_gz=LCL6VCFrename.rename_trio_vcf_gz, LCL6_trio_vcf_idx=LCL6VCFrename.rename_trio_vcf_idx, family_name=quartet[8], cluster_config=cluster_config, disk_size=disk_size } call reformVCF.reformVCF as reformVCF { input: family_mendelian_info=mergeSister.family_mendelian_info, family_name=quartet[8], cluster_config=cluster_config, disk_size=disk_size } call merge_info.merge_info as LCL5mergeInfo { input: vcfInfo=LCL5variantsNorm.normed_txt, mendelianInfo=reformVCF.LCL5_family_info_txt, sample=quartet[4], cluster_config=cluster_config, disk_size=disk_size } call merge_info.merge_info as LCL6mergeInfo { input: vcfInfo=LCL6variantsNorm.normed_txt, mendelianInfo=reformVCF.LCL6_family_info_txt, sample=quartet[5], cluster_config=cluster_config, disk_size=disk_size } call merge_info.merge_info as LCL7mergeInfo { input: vcfInfo=LCL7variantsNorm.normed_txt, mendelianInfo=reformVCF.LCL7_family_info_txt, sample=quartet[6], cluster_config=cluster_config, disk_size=disk_size } call merge_info.merge_info as LCL8mergeInfo { input: vcfInfo=LCL8variantsNorm.normed_txt, mendelianInfo=reformVCF.LCL8_family_info_txt, sample=quartet[7], cluster_config=cluster_config, disk_size=disk_size } call zipIndex.zipIndex as LCL5allInfozipIndex { input: vcf=LCL5mergeInfo.all_info, cluster_config=cluster_config, disk_size=disk_size } call zipIndex.zipIndex as LCL6allInfozipIndex { input: vcf=LCL6mergeInfo.all_info, cluster_config=cluster_config, disk_size=disk_size } call zipIndex.zipIndex as LCL7allInfozipIndex { input: vcf=LCL7mergeInfo.all_info, cluster_config=cluster_config, disk_size=disk_size } call zipIndex.zipIndex as LCL8allInfozipIndex { input: vcf=LCL8mergeInfo.all_info, cluster_config=cluster_config, disk_size=disk_size } } ### family info merge call merge.merge as LCL5merge { input: family_vcf_gz=LCL5allInfozipIndex.vcf_gz, family_vcf_idx=LCL5allInfozipIndex.vcf_idx, sample="LCL5", cluster_config=cluster_config, disk_size=disk_size } call bed_annotation.bed_annotation as LCL5bed_annotation { input: merged_vcf_gz=LCL5merge.merged_vcf_gz, merged_vcf_idx=LCL5merge.merged_vcf_idx, repeat_bed=repeat_bed, sample='LCL5', cluster_config=cluster_config, disk_size=disk_size } call votes.votes as LCL5votes { input: repeat_annotated_vcf=LCL5bed_annotation.repeat_annotated_vcf, vcf_dup=LCL5merge.vcf_dup, sample='LCL5', prefix='LCL5', cluster_config=cluster_config, disk_size=disk_size } call merge.merge as LCL6merge { input: family_vcf_gz=LCL6allInfozipIndex.vcf_gz, family_vcf_idx=LCL6allInfozipIndex.vcf_idx, sample="LCL6", cluster_config=cluster_config, disk_size=disk_size } call bed_annotation.bed_annotation as LCL6bed_annotation { input: merged_vcf_gz=LCL6merge.merged_vcf_gz, merged_vcf_idx=LCL6merge.merged_vcf_idx, repeat_bed=repeat_bed, sample='LCL6', cluster_config=cluster_config, disk_size=disk_size } call votes.votes as LCL6votes { input: repeat_annotated_vcf=LCL6bed_annotation.repeat_annotated_vcf, vcf_dup=LCL6merge.vcf_dup, sample='LCL6', prefix='LCL6', cluster_config=cluster_config, disk_size=disk_size } call merge.merge as LCL7merge { input: family_vcf_gz=LCL7allInfozipIndex.vcf_gz, family_vcf_idx=LCL7allInfozipIndex.vcf_idx, sample="LCL7", cluster_config=cluster_config, disk_size=disk_size } call bed_annotation.bed_annotation as LCL7bed_annotation { input: merged_vcf_gz=LCL7merge.merged_vcf_gz, merged_vcf_idx=LCL7merge.merged_vcf_idx, repeat_bed=repeat_bed, sample='LCL7', cluster_config=cluster_config, disk_size=disk_size } call votes.votes as LCL7votes { input: repeat_annotated_vcf=LCL7bed_annotation.repeat_annotated_vcf, vcf_dup=LCL7merge.vcf_dup, sample='LCL7', prefix='LCL7', cluster_config=cluster_config, disk_size=disk_size } call merge.merge as LCL8merge { input: family_vcf_gz=LCL8allInfozipIndex.vcf_gz, family_vcf_idx=LCL8allInfozipIndex.vcf_idx, sample="LCL8", cluster_config=cluster_config, disk_size=disk_size } call bed_annotation.bed_annotation as LCL8bed_annotation { input: merged_vcf_gz=LCL8merge.merged_vcf_gz, merged_vcf_idx=LCL8merge.merged_vcf_idx, repeat_bed=repeat_bed, sample='LCL8', cluster_config=cluster_config, disk_size=disk_size } call votes.votes as LCL8votes { input: repeat_annotated_vcf=LCL8bed_annotation.repeat_annotated_vcf, vcf_dup=LCL8merge.vcf_dup, sample='LCL8', prefix='LCL8', cluster_config=cluster_config, disk_size=disk_size } }