"{{ project_name }}.inputSamplesFile": "{{ inputSamplesFile }}", | "{{ project_name }}.inputSamplesFile": "{{ inputSamplesFile }}", | ||||
"{{ project_name }}.fastqscreen.docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/fastqscreen:0.12.0", | "{{ project_name }}.fastqscreen.docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/fastqscreen:0.12.0", | ||||
"{{ project_name }}.screen_ref_dir": "oss://pgx-reference-data/fastq_screen_reference/", | "{{ project_name }}.screen_ref_dir": "oss://pgx-reference-data/fastq_screen_reference/", | ||||
"{{ project_name }}.rtg.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/rtg-tools:latest", | |||||
"{{ project_name }}.fastq_screen_conf": "oss://pgx-reference-data/fastq_screen_reference/fastq_screen.conf", | "{{ project_name }}.fastq_screen_conf": "oss://pgx-reference-data/fastq_screen_reference/fastq_screen.conf", | ||||
"{{ project_name }}.multiqc.cluster_config": "OnDemand ecs.sn1ne.4xlarge img-ubuntu-vpc", | |||||
"{{ project_name }}.multiqc.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/multiqc:v1.8", | |||||
"{{ project_name }}.bamqc.cluster_config": "OnDemand ecs.sn1ne.8xlarge img-ubuntu-vpc", | "{{ project_name }}.bamqc.cluster_config": "OnDemand ecs.sn1ne.8xlarge img-ubuntu-vpc", | ||||
"{{ project_name }}.fastqscreen.disk_size": "100", | "{{ project_name }}.fastqscreen.disk_size": "100", | ||||
"{{ project_name }}.bamqc.disk_size": "500", | "{{ project_name }}.bamqc.disk_size": "500", | ||||
"{{ project_name }}.multiqc.disk_size": "100", | |||||
"{{ project_name }}.bamqc.docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/qualimap:2.0.0", | "{{ project_name }}.bamqc.docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/qualimap:2.0.0", | ||||
"{{ project_name }}.ref_dir": "oss://chinese-quartet/quartet-storage-data/reference_data/" | "{{ project_name }}.ref_dir": "oss://chinese-quartet/quartet-storage-data/reference_data/" | ||||
} | } |
task bamqc { | task bamqc { | ||||
File bam | File bam | ||||
File bai | File bai | ||||
String bamname = basename(bam,".bam") | |||||
String docker | String docker | ||||
String cluster_config | String cluster_config | ||||
String disk_size | String disk_size | ||||
set -e | set -e | ||||
nt=$(nproc) | nt=$(nproc) | ||||
/opt/qualimap/qualimap bamqc -bam ${bam} -outformat PDF:HTML -nt $nt -outdir result --java-mem-size=32G | /opt/qualimap/qualimap bamqc -bam ${bam} -outformat PDF:HTML -nt $nt -outdir result --java-mem-size=32G | ||||
tar -zcvf ${bamname}_qualimap.zip ./result | |||||
>>> | >>> | ||||
runtime { | runtime { | ||||
} | } | ||||
output { | output { | ||||
File zip = "${bamname}_qualimap.zip" | |||||
File genome_result = "result/genome_results.txt" | File genome_result = "result/genome_results.txt" | ||||
File pdf = "result/report.pdf" | File pdf = "result/report.pdf" | ||||
Array[File] png = glob("reuslt/images_qualimapReport/*.png") | |||||
Array[File] txt = glob("result/raw_data_qualimapReport/*.txt") | |||||
File coverage = "result/raw_data_qualimapReport/coverage_histogram.txt" | |||||
File insert_size = "result/raw_data_qualimapReport/insert_size_histogram.txt" | |||||
File genome_fraction = "result/raw_data_qualimapReport/genome_fraction_coverage.txt" | |||||
File gc_dist = "result/raw_data_qualimapReport/mapped_reads_gc-content_distribution.txt" | |||||
} | } | ||||
} | } |
task multiqc { | |||||
Array[File] read1_zip | |||||
Array[File] read2_zip | |||||
Array[File] txt1 | |||||
Array[File] txt2 | |||||
Array[File] genome_result | |||||
Array[File] coverage | |||||
Array[File] insert_size | |||||
Array[File] genome_fraction | |||||
Array[File] gc_dist | |||||
Array[File] summary | |||||
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/bamqc | |||||
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=" " genome_result} ${sep=" " coverage} ${sep=" " insert_size} ${sep=" " genome_fraction} ${sep=" " gc_dist} /cromwell_root/tmp/bamqc | |||||
cp ${sep=" " summary} /cromwell_root/tmp/benchmark | |||||
multiqc /cromwell_root/tmp/ | |||||
ls > filelist | |||||
>>> | |||||
runtime { | |||||
docker:docker | |||||
cluster:cluster_config | |||||
systemDisk:"cloud_ssd 40" | |||||
dataDisk:"cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File filelist = "filelist" | |||||
File multiqc_html = "multiqc_report.html" | |||||
Array[File] multiqc_txt = glob("multiqc_data/*") | |||||
} | |||||
} |
import "./tasks/fastqscreen.wdl" as fastqscreen | import "./tasks/fastqscreen.wdl" as fastqscreen | ||||
import "./tasks/bamqc.wdl" as bamqc | import "./tasks/bamqc.wdl" as bamqc | ||||
import "./tasks/benchmark.wdl" as benchmark | import "./tasks/benchmark.wdl" as benchmark | ||||
import "./tasks/multiqc.wdl" as multiqc | |||||
workflow {{ project_name }} { | |||||
workflow project_name { | |||||
File inputSamplesFile | File inputSamplesFile | ||||
Array[Array[File]] inputSamples = read_tsv(inputSamplesFile) | Array[Array[File]] inputSamples = read_tsv(inputSamplesFile) | ||||
fasta=fasta | fasta=fasta | ||||
} | } | ||||
} | } | ||||
call multiqc.multiqc as multiqc { | |||||
input: | |||||
read1_zip=fastqc.read1_zip, | |||||
read2_zip=fastqc.read2_zip, | |||||
txt1=fastqscreen.txt1, | |||||
txt2=fastqscreen.txt2, | |||||
genome_result=bamqc.genome_result, | |||||
coverage=bamqc.coverage, | |||||
insert_size=bamqc.insert_size, | |||||
genome_fraction=bamqc.genome_fraction, | |||||
gc_dist=bamqc.gc_dist, | |||||
summary=benchmark.summary | |||||
} | |||||
} | } | ||||