"{{ 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 }}.rtg.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 }}.rtg.cluster_config": "OnDemand ecs.sn1ne.2xlarge img-ubuntu-vpc", | |||||
"{{ project_name }}.benchmark.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/hap.py: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 }}.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 }}.rtg.docker": "registry-vpc.cn-shanghai.aliyuncs.com/pgx-docker-registry/rtg-tools:latest", | ||||
"{{ project_name }}.fastq_screen_conf": "oss://chinese-quartet/quartet-storage-data/reference_data/fastq_screen.conf", | |||||
"{{ project_name }}.fastq_screen_conf": "oss://pgx-reference-data/fastq_screen_reference/fastq_screen.conf", | |||||
"{{ 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", |
} | } | ||||
output { | output { | ||||
Array[File] qualimap = glob("result/*") | |||||
File genome_result = "result/genome_results.txt" | |||||
File pdf = "result/report.pdf" | |||||
Array[File] png = glob("reuslt/images_qualimapReport/*.png") | |||||
Array[File] txt = glob("result/raw_data_qualimapReport/*.txt") | |||||
} | } | ||||
} | } |
task benchmark { | task benchmark { | ||||
File gzvcf | |||||
File gzvcf_index | |||||
File vcf | |||||
File benchmarking_dir | File benchmarking_dir | ||||
File ref_dir | File ref_dir | ||||
String sample = basename(gzvcf,".vcf.gz") | |||||
String sample = basename(vcf,".vcf") | |||||
String sample_mark | String sample_mark | ||||
String fasta | String fasta | ||||
String docker | String docker | ||||
set -e | set -e | ||||
nt=$(nproc) | nt=$(nproc) | ||||
export HGREF=/cromwell_inputs/*/reference_data/GRCh38.d1.vd1.fa | export HGREF=/cromwell_inputs/*/reference_data/GRCh38.d1.vd1.fa | ||||
/opt/rtg-tools/dist/rtg-tools-3.10.1-4d58ead/rtg bgzip ${vcf} -c > ${sample}.rtg.vcf.gz | |||||
/opt/rtg-tools/dist/rtg-tools-3.10.1-4d58ead/rtg index -f vcf ${sample}.rtg.vcf.gz | |||||
if [ ${sample_mark} == "LCL5" ];then | if [ ${sample_mark} == "LCL5" ];then | ||||
/opt/hap.py/bin/hap.py ${benchmarking_dir}/LCL5.vcf.gz ${gzvcf} -f ${benchmarking_dir}/LCL5.bed.gz --threads $nt -o ${sample} | |||||
/opt/hap.py/bin/hap.py ${benchmarking_dir}/LCL5.vcf.gz ${sample}.rtg.vcf.gz -f ${benchmarking_dir}/LCL5.bed.gz --threads $nt -o ${sample} | |||||
elif [ ${sample_mark} == "LCL6" ]; then | elif [ ${sample_mark} == "LCL6" ]; then | ||||
/opt/hap.py/bin/hap.py ${benchmarking_dir}/LCL6.vcf.gz ${gzvcf} -f ${benchmarking_dir}/LCL6.bed.gz --threads $nt -o ${sample} | |||||
/opt/hap.py/bin/hap.py ${benchmarking_dir}/LCL6.vcf.gz ${sample}.rtg.vcf.gz -f ${benchmarking_dir}/LCL6.bed.gz --threads $nt -o ${sample} | |||||
elif [ ${sample_mark} == "LCL7" ]; then | elif [ ${sample_mark} == "LCL7" ]; then | ||||
/opt/hap.py/bin/hap.py ${benchmarking_dir}/LCL7.vcf.gz ${gzvcf} -f ${benchmarking_dir}/LCL6.bed.gz --threads $nt -o ${sample} | |||||
/opt/hap.py/bin/hap.py ${benchmarking_dir}/LCL7.vcf.gz ${sample}.rtg.vcf.gz -f ${benchmarking_dir}/LCL6.bed.gz --threads $nt -o ${sample} | |||||
elif [ ${sample_mark} == "LCL8" ]; then | elif [ ${sample_mark} == "LCL8" ]; then | ||||
/opt/hap.py/bin/hap.py ${benchmarking_dir}/LCL8.vcf.gz ${gzvcf} -f ${benchmarking_dir}/LCL6.bed.gz --threads $nt -o ${sample} | |||||
/opt/hap.py/bin/hap.py ${benchmarking_dir}/LCL8.vcf.gz ${sample}.rtg.vcf.gz -f ${benchmarking_dir}/LCL6.bed.gz --threads $nt -o ${sample} | |||||
else | else | ||||
echo "only for quartet samples" | echo "only for quartet samples" | ||||
fi | fi |
set -o pipefail | set -o pipefail | ||||
set -e | set -e | ||||
nt=$(nproc) | nt=$(nproc) | ||||
mkdir -p /cromwell_root/tmp | |||||
cp -r ${screen_ref_dir} /cromwell_root/tmp/ | |||||
fastq_screen --aligner bowtie2 --conf ${fastq_screen_conf} --top 100000 --threads $nt ${read1} | fastq_screen --aligner bowtie2 --conf ${fastq_screen_conf} --top 100000 --threads $nt ${read1} | ||||
fastq_screen --aligner bowtie2 --conf ${fastq_screen_conf} --top 100000 --threads $nt ${read2} | fastq_screen --aligner bowtie2 --conf ${fastq_screen_conf} --top 100000 --threads $nt ${read2} | ||||
>>> | >>> |
task rtg { | |||||
File vcf | |||||
String sample = basename(vcf,".vcf") | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
rtg bgzip ${vcf} -c > ${sample}.vcf.gz | |||||
rtg index -f vcf ${sample}.vcf.gz | |||||
>>> | |||||
runtime { | |||||
docker:docker | |||||
cluster: cluster_config | |||||
systemDisk: "cloud_ssd 40" | |||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File vcf_gz = "${sample}.vcf.gz" | |||||
File vcf_index = "${sample}.vcf.gz.tbi" | |||||
} | |||||
} |
import "./tasks/fastqc.wdl" as fastqc | import "./tasks/fastqc.wdl" as fastqc | ||||
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/zipindexVCF.wdl" as rtg | |||||
import "./tasks/benchmark.wdl" as benchmark | import "./tasks/benchmark.wdl" as benchmark | ||||
workflow {{ project_name }} { | workflow {{ project_name }} { | ||||
bai=sample[3] | bai=sample[3] | ||||
} | } | ||||
call rtg.rtg as rtg { | |||||
input: | |||||
vcf=sample[4] | |||||
} | |||||
call benchmark.benchmark as benchmark { | call benchmark.benchmark as benchmark { | ||||
input: | input: | ||||
gzvcf=rtg.vcf_gz, | |||||
gzvcf_index=rtg.vcf_index, | |||||
vcf=sample[4], | |||||
benchmarking_dir=benchmarking_dir, | benchmarking_dir=benchmarking_dir, | ||||
ref_dir=ref_dir, | ref_dir=ref_dir, | ||||
sample_mark=sample[5], | sample_mark=sample[5], |