task extract_tables { | |||||
File quality_yield_summary | |||||
File wgs_metrics_summary | |||||
File aln_metrics_summary | |||||
File is_metrics_summary | |||||
File hap | |||||
File fastqc | |||||
File fastqscreen | |||||
String project | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
python /opt/extract_tables.py -quality ${quality_yield_summary} -depth ${wgs_metrics_summary} -aln ${aln_metrics_summary} -is ${is_metrics_summary} -fastqc ${fastqc} -fastqscreen ${fastqscreen} -hap ${hap} -project ${project} | |||||
cat variants.calling.qc.txt | cut -f12- | grep -v 'SNV' | awk '{for(i=1;i<=NF;i++) {sum[i] += $i; sumsq[i] += ($i)^2}} | |||||
END {for (i=1;i<=NF;i++) { | |||||
printf "%f %f \n", sum[i]/NR, sqrt((sumsq[i]-sum[i]^2/NR)/NR)} | |||||
}' >> reference_datasets_aver-std.txt | |||||
>>> | |||||
runtime { | |||||
docker:docker | |||||
cluster:cluster_config | |||||
systemDisk:"cloud_ssd 40" | |||||
dataDisk:"cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File pre_alignment = "pre_alignment.txt" | |||||
File post_alignment = "post_alignment.txt" | |||||
File variant_calling = "variants.calling.qc.txt" | |||||
File precision_recall = "reference_datasets_aver-std.txt" | |||||
} | |||||
} |
task multiqc { | |||||
Array[File] read1_zip | |||||
Array[File] read2_zip | |||||
Array[File] txt1 | |||||
Array[File] txt2 | |||||
Array[File] summary | |||||
Array[File] zip | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
set -o pipefail | |||||
set -e | |||||
mkdir -p /cromwell_root/tmp/fastqc | |||||
mkdir -p /cromwell_root/tmp/fastqscreen | |||||
mkdir -p /cromwell_root/tmp/benchmark | |||||
cp ${sep=" " read1_zip} ${sep=" " read2_zip} /cromwell_root/tmp/fastqc | |||||
cp ${sep=" " txt1} ${sep=" " txt2} /cromwell_root/tmp/fastqscreen | |||||
cp ${sep=" " summary} /cromwell_root/tmp/benchmark | |||||
multiqc /cromwell_root/tmp/ | |||||
cat multiqc_data/multiqc_general_stats.txt > multiqc_general_stats.txt | |||||
cat multiqc_data/multiqc_fastq_screen.txt > multiqc_fastq_screen.txt | |||||
cat multiqc_data/multiqc_happy_data.json > multiqc_happy_data.json | |||||
>>> | |||||
runtime { | |||||
docker:docker | |||||
cluster:cluster_config | |||||
systemDisk:"cloud_ssd 40" | |||||
dataDisk:"cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File multiqc_html = "multiqc_report.html" | |||||
Array[File] multiqc_txt = glob("multiqc_data/*") | |||||
File fastqc = "multiqc_general_stats.txt" | |||||
File fastqscreen = "multiqc_fastq_screen.txt" | |||||
File hap = "multiqc_happy_data.json" | |||||
} | |||||
} |
import "./tasks/GVCFtyper.wdl" as GVCFtyper | import "./tasks/GVCFtyper.wdl" as GVCFtyper | ||||
import "./tasks/split_gvcf_files.wdl" as split_gvcf_files | import "./tasks/split_gvcf_files.wdl" as split_gvcf_files | ||||
import "./tasks/benchmark.wdl" as benchmark | import "./tasks/benchmark.wdl" as benchmark | ||||
import "./tasks/multiqc.wdl" as multiqc | |||||
import "./tasks/merge_sentieon_metrics.wdl" as merge_sentieon_metrics | 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/mendelian.wdl" as mendelian | ||||
import "./tasks/merge_mendelian.wdl" as merge_mendelian | import "./tasks/merge_mendelian.wdl" as merge_mendelian | ||||
import "./tasks/quartet_mendelian.wdl" as quartet_mendelian | import "./tasks/quartet_mendelian.wdl" as quartet_mendelian | ||||
} | } | ||||
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 { | call merge_sentieon_metrics.merge_sentieon_metrics as merge_sentieon_metrics { | ||||
input: | input: | ||||
quality_yield_header=sentieon.quality_yield_header, | quality_yield_header=sentieon.quality_yield_header, | ||||
docker=MULTIQCdocker, | docker=MULTIQCdocker, | ||||
cluster_config=SMALLcluster_config, | cluster_config=SMALLcluster_config, | ||||
disk_size=disk_size | 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 sister_tag = read_boolean(split_gvcf_files.sister_tag) |