(5) multiqc | (5) multiqc | ||||
(6) VcfStats | |||||
注:可查询multiqc支持的指控模块,按需求添加 <https://multiqc.info/docs/#multiqc-modules> | |||||
{ | { | ||||
"{{ project_name }}.benchmarking_dir": "oss://chinese-quartet/quartet-result-data/NCTR_benchmarking_20181215/", | "{{ project_name }}.benchmarking_dir": "oss://chinese-quartet/quartet-result-data/NCTR_benchmarking_20181215/", | ||||
"{{ project_name }}.vcfstat.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/rtg-hap:latest", | |||||
"{{ project_name }}.fasta": "GRCh38.d1.vd1.fa", | "{{ project_name }}.fasta": "GRCh38.d1.vd1.fa", | ||||
"{{ project_name }}.fastqc.disk_size": "150", | "{{ project_name }}.fastqc.disk_size": "150", | ||||
"{{ project_name }}.benchmark.cluster_config": "OnDemand ecs.sn1ne.4xlarge img-ubuntu-vpc", | "{{ project_name }}.benchmark.cluster_config": "OnDemand ecs.sn1ne.4xlarge img-ubuntu-vpc", | ||||
"{{ project_name }}.fastqscreen.cluster_config": "OnDemand ecs.sn1ne.4xlarge img-ubuntu-vpc", | "{{ project_name }}.fastqscreen.cluster_config": "OnDemand ecs.sn1ne.4xlarge img-ubuntu-vpc", | ||||
"{{ project_name }}.fastqc.cluster_config": "OnDemand ecs.sn1ne.4xlarge img-ubuntu-vpc", | "{{ project_name }}.fastqc.cluster_config": "OnDemand ecs.sn1ne.4xlarge img-ubuntu-vpc", | ||||
"{{ project_name }}.benchmark.disk_size": "150", | "{{ project_name }}.benchmark.disk_size": "150", | ||||
"{{ project_name }}.vcfstat.disk_size": "100", | |||||
"{{ project_name }}.fastqc.docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/fastqc:v0.11.5", | "{{ project_name }}.fastqc.docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/fastqc:v0.11.5", | ||||
"{{ project_name }}.benchmark.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/rtg-hap:latest", | "{{ project_name }}.benchmark.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/rtg-hap:latest", | ||||
"{{ 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 }}.mergeNum.docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/gatk:v2019.01", | |||||
"{{ 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 }}.mergeNum.disk_size": "100", | |||||
"{{ 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.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 }}.multiqc.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/multiqc:v1.8", | ||||
"{{ project_name }}.mergeNum.cluster_config": "OnDemand ecs.sn1ne.xlarge img-ubuntu-vpc", | |||||
"{{ 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 }}.vcfstat.cluster_config": "OnDemand ecs.sn1ne.4xlarge 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 }}.multiqc.disk_size": "100", |
set -o pipefail | set -o pipefail | ||||
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 | |||||
tar -zcvf ${bamname}_qualimap.zip ./result | |||||
/opt/qualimap/qualimap bamqc -bam ${bam} -outformat PDF:HTML -nt $nt -outdir ${bamname} --java-mem-size=32G | |||||
tar -zcvf ${bamname}_qualimap.zip ${bamname} | |||||
>>> | >>> | ||||
runtime { | runtime { |
task mergeNum { | |||||
Array[File] vcfnumber | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
set -o pipefail | |||||
set -e | |||||
for i in ${seq=" " vcfnumber} | |||||
do | |||||
cat $i | cut -d':' -f2 | tr '\n' '\t' | sed s'/\t$/\n/g' >> vcfstats | |||||
done | |||||
sed '1i\File\tFailed Filters\tPassed Filters\tSNPs\tMNPs\tInsertions\tDeletions\tIndels\tSame as reference\tSNP Transitions/Transversions\tTotal Het/Hom ratio\tSNP Het/Hom ratio\tMNP Het/Hom ratio\tInsertion Het/Hom ratio\tDeletion Het/Hom ratio\tIndel Het/Hom ratio\tInsertion/Deletion ratio\tIndel/SNP+MNP ratio' vcfstats > vcfstats.txt | |||||
>>> | |||||
runtime { | |||||
docker:docker | |||||
cluster:cluster_config | |||||
systemDisk:"cloud_ssd 40" | |||||
dataDisk:"cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File vcfstat="vcfstats.txt" | |||||
} | |||||
} |
Array[File] txt1 | Array[File] txt1 | ||||
Array[File] txt2 | Array[File] txt2 | ||||
Array[File] genome_result | |||||
Array[File] coverage | |||||
Array[File] insert_size | |||||
Array[File] genome_fraction | |||||
Array[File] gc_dist | |||||
Array[File] zip | |||||
Array[File] summary | Array[File] summary | ||||
cp ${sep=" " read1_zip} ${sep=" " read2_zip} /cromwell_root/tmp/fastqc | cp ${sep=" " read1_zip} ${sep=" " read2_zip} /cromwell_root/tmp/fastqc | ||||
cp ${sep=" " txt1} ${sep=" " txt2} /cromwell_root/tmp/fastqscreen | 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=" " zip} /cromwell_root/tmp/bamqc | |||||
cp ${sep=" " summary} /cromwell_root/tmp/benchmark | cp ${sep=" " summary} /cromwell_root/tmp/benchmark | ||||
for i in `ls /cromwell_root/tmp/bamqc` | |||||
do | |||||
tar -zxvf $i | |||||
done | |||||
multiqc /cromwell_root/tmp/ | multiqc /cromwell_root/tmp/ | ||||
ls > filelist | ls > filelist |
task vcfstat { | |||||
File vcf | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
set -o pipefail | |||||
set -e | |||||
rtg vcfstats ${vcf} > onestats.txt | |||||
>>> | |||||
runtime { | |||||
docker:docker | |||||
cluster:cluster_config | |||||
systemDisk:"cloud_ssd 40" | |||||
dataDisk:"cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File vcfnumber="onestats.txt" | |||||
} | |||||
} |
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 | import "./tasks/multiqc.wdl" as multiqc | ||||
import "./tasks/vcfstat.wdl" as vcfstat | |||||
import "./tasks/mergeNum.wdl" as mergeNum | |||||
workflow {{ project_name }} { | workflow {{ project_name }} { | ||||
sample_mark=sample[5], | sample_mark=sample[5], | ||||
fasta=fasta | fasta=fasta | ||||
} | } | ||||
call vcfstat.vcfstat as vcfstat { | |||||
input: | |||||
vcf=sample[4] | |||||
} | |||||
} | } | ||||
call multiqc.multiqc as multiqc { | call multiqc.multiqc as multiqc { | ||||
input: | input: | ||||
read2_zip=fastqc.read2_zip, | read2_zip=fastqc.read2_zip, | ||||
txt1=fastqscreen.txt1, | txt1=fastqscreen.txt1, | ||||
txt2=fastqscreen.txt2, | 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, | |||||
zip=bamqc.zip, | |||||
summary=benchmark.summary | summary=benchmark.summary | ||||
} | } | ||||
call mergeNum.mergeNum as mergeNum { | |||||
input: | |||||
vcfnumber=vcfstat.vcfnumber | |||||
} | |||||
} | } | ||||