|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- import "./tasks/mapping.wdl" as mapping
- import "./tasks/Dedup.wdl" as Dedup
- import "./tasks/qualimap.wdl" as qualimap
- import "./tasks/deduped_Metrics.wdl" as deduped_Metrics
- import "./tasks/sentieon.wdl" as sentieon
- import "./tasks/Realigner.wdl" as Realigner
- import "./tasks/BQSR.wdl" as BQSR
- import "./tasks/Haplotyper_gVCF.wdl" as Haplotyper_gVCF
- import "./tasks/GVCFtyper.wdl" as GVCFtyper
- import "./tasks/filter_bed.wdl" as filter_bed
- import "./tasks/split_gvcf_files.wdl" as split_gvcf_files
- import "./tasks/benchmark.wdl" as benchmark
- import "./tasks/multiqc.wdl" as multiqc
- import "./tasks/merge_sentieon_metrics.wdl" as merge_sentieon_metrics
- import "./tasks/extract_tables.wdl" as extract_tables
- import "./tasks/mendelian.wdl" as mendelian
- import "./tasks/merge_mendelian.wdl" as merge_mendelian
- import "./tasks/quartet_mendelian.wdl" as quartet_mendelian
- import "./tasks/fastqc.wdl" as fastqc
- import "./tasks/fastqscreen.wdl" as fastqscreen
- import "./tasks/D5_D6.wdl" as D5_D6
- import "./tasks/merge_family.wdl" as merge_family
-
-
- workflow {{ project_name }} {
-
- File inputSamplesFile
- Array[Array[File]] inputSamples = read_tsv(inputSamplesFile)
-
- String SENTIEON_INSTALL_DIR
- String SENTIEON_LICENSE
- String SENTIEONdocker
- String FASTQCdocker
- String FASTQSCREENdocker
- String BENCHMARKdocker
- String MENDELIANdocker
- String DIYdocker
- String MULTIQCdocker
- String BEDTOOLSdocker
- String QUALIMAPdocker
-
- String fasta
- File ref_dir
- File dbmills_dir
- String db_mills
- File dbsnp_dir
- String dbsnp
- File bed
- File benchmark_region
-
- File screen_ref_dir
- File fastq_screen_conf
- File benchmarking_dir
-
- String project
-
- String disk_size
- String BIGcluster_config
- String SMALLcluster_config
-
- scatter (quartet in inputSamples){
-
- call mapping.mapping as mapping {
- input:
- SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
- SENTIEON_LICENSE=SENTIEON_LICENSE,
- group=quartet[2],
- sample=quartet[2],
- pl="ILLUMINAL",
- fasta=fasta,
- ref_dir=ref_dir,
- fastq_1=quartet[0],
- fastq_2=quartet[1],
- docker=SENTIEONdocker,
- disk_size=disk_size,
- cluster_config=BIGcluster_config
- }
-
- call fastqc.fastqc as fastqc {
- input:
- read1=quartet[0],
- read2=quartet[1],
- docker=FASTQCdocker,
- cluster_config=BIGcluster_config,
- disk_size=disk_size
- }
-
- call fastqscreen.fastq_screen as fastqscreen {
- input:
- read1=quartet[0],
- read2=quartet[1],
- screen_ref_dir=screen_ref_dir,
- fastq_screen_conf=fastq_screen_conf,
- docker=FASTQSCREENdocker,
- cluster_config=BIGcluster_config,
- disk_size=disk_size
- }
-
- call Dedup.Dedup as Dedup {
- input:
- SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
- sorted_bam=mapping.sorted_bam,
- sorted_bam_index=mapping.sorted_bam_index,
- sample=quartet[2],
- docker=SENTIEONdocker,
- disk_size=disk_size,
- cluster_config=BIGcluster_config
- }
-
- call qualimap.qualimap as qualimap {
- input:
- bam=Dedup.Dedup_bam,
- bai=Dedup.Dedup_bam_index,
- bed=bed,
- docker=QUALIMAPdocker,
- disk_size=disk_size,
- cluster_config=BIGcluster_config
- }
-
- call deduped_Metrics.deduped_Metrics as deduped_Metrics {
- input:
- SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
- fasta=fasta,
- ref_dir=ref_dir,
- bed=bed,
- Dedup_bam=Dedup.Dedup_bam,
- Dedup_bam_index=Dedup.Dedup_bam_index,
- sample=quartet[2],
- docker=SENTIEONdocker,
- disk_size=disk_size,
- cluster_config=BIGcluster_config
- }
-
- call sentieon.sentieon as sentieon {
- input:
- quality_yield=deduped_Metrics.deduped_QualityYield,
- wgs_metrics_algo=deduped_Metrics.deduped_wgsmetrics,
- aln_metrics=deduped_Metrics.dedeuped_aln_metrics,
- is_metrics=deduped_Metrics.deduped_is_metrics,
- sample=quartet[2],
- docker=SENTIEONdocker,
- cluster_config=SMALLcluster_config,
- disk_size=disk_size
- }
-
- call Realigner.Realigner as Realigner {
- input:
- SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
- fasta=fasta,
- ref_dir=ref_dir,
- Dedup_bam=Dedup.Dedup_bam,
- Dedup_bam_index=Dedup.Dedup_bam_index,
- db_mills=db_mills,
- dbmills_dir=dbmills_dir,
- sample=quartet[2],
- docker=SENTIEONdocker,
- disk_size=disk_size,
- cluster_config=BIGcluster_config
- }
-
- call BQSR.BQSR as BQSR {
- input:
- SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
- fasta=fasta,
- ref_dir=ref_dir,
- realigned_bam=Realigner.realigner_bam,
- realigned_bam_index=Realigner.realigner_bam_index,
- db_mills=db_mills,
- dbmills_dir=dbmills_dir,
- dbsnp=dbsnp,
- dbsnp_dir=dbsnp_dir,
- sample=quartet[2],
- docker=SENTIEONdocker,
- disk_size=disk_size,
- cluster_config=BIGcluster_config
- }
-
- call Haplotyper_gVCF.Haplotyper_gVCF as Haplotyper_gVCF {
- input:
- SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
- fasta=fasta,
- ref_dir=ref_dir,
- recaled_bam=BQSR.recaled_bam,
- recaled_bam_index=BQSR.recaled_bam_index,
- sample=quartet[2],
- docker=SENTIEONdocker,
- disk_size=disk_size,
- cluster_config=BIGcluster_config
- }
- }
-
- call GVCFtyper.GVCFtyper as GVCFtyper {
- input:
- ref_dir=ref_dir,
- SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR,
- fasta=fasta,
- vcf=Haplotyper_gVCF.vcf,
- vcf_idx=Haplotyper_gVCF.vcf_idx,
- project=project,
- docker=SENTIEONdocker,
- cluster_config=BIGcluster_config,
- disk_size=disk_size
- }
-
- call filter_bed.filter_bed as filter_bed {
- input:
- gvcf=GVCFtyper.gvcf,
- bed=bed,
- benchmark_region=benchmark_region,
- project=project,
- docker=BEDTOOLSdocker,
- cluster_config=SMALLcluster_config,
- disk_size=disk_size
- }
-
-
- call split_gvcf_files.split_gvcf_files as split_gvcf_files {
- input:
- filtered_gvcf=filter_bed.filtered_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,
- filtered_bed=filter_bed.filtered_bed,
- ref_dir=ref_dir,
- fasta=fasta,
- docker=BENCHMARKdocker,
- cluster_config=BIGcluster_config,
- disk_size=disk_size
- }
-
- }
-
- call multiqc.multiqc as multiqc {
- input:
- read1_zip=fastqc.read1_zip,
- read2_zip=fastqc.read2_zip,
- txt1=fastqscreen.txt1,
- txt2=fastqscreen.txt2,
- summary=benchmark.summary,
- zip=qualimap.zip,
- docker=MULTIQCdocker,
- cluster_config=SMALLcluster_config,
- disk_size=disk_size
- }
-
- call merge_sentieon_metrics.merge_sentieon_metrics as merge_sentieon_metrics {
- input:
- quality_yield_header=sentieon.quality_yield_header,
- wgs_metrics_algo_header=sentieon.wgs_metrics_algo_header,
- aln_metrics_header=sentieon.aln_metrics_header,
- is_metrics_header=sentieon.is_metrics_header,
- quality_yield_data=sentieon.quality_yield_data,
- wgs_metrics_algo_data=sentieon.wgs_metrics_algo_data,
- aln_metrics_data=sentieon.aln_metrics_data,
- is_metrics_data=sentieon.is_metrics_data,
- project=project,
- docker=MULTIQCdocker,
- cluster_config=SMALLcluster_config,
- disk_size=disk_size
- }
-
- call extract_tables.extract_tables as extract_tables {
- input:
- quality_yield_summary=merge_sentieon_metrics.quality_yield_summary,
- wgs_metrics_summary=merge_sentieon_metrics.wgs_metrics_summary,
- aln_metrics_summary=merge_sentieon_metrics.aln_metrics_summary,
- is_metrics_summary=merge_sentieon_metrics.is_metrics_summary,
- fastqc=multiqc.fastqc,
- fastqscreen=multiqc.fastqscreen,
- hap=multiqc.hap,
- project=project,
- docker=DIYdocker,
- cluster_config=SMALLcluster_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
- }
- }
- }
-
-
|