WES capture efficiency (from bam file) | |||||
{ | |||||
"SENTIEON_INSTALL_DIR": "/opt/sentieon-genomics", | |||||
"fasta": "GRCh38.d1.vd1.fa", | |||||
"picard_docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/picard:2.20.2", | |||||
"sentieon_docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/sentieon-genomics:v2019.11.28", | |||||
"disk_size": "200", | |||||
"SMALLcluster_config": "OnDemand bcs.ps.g.xlarge img-ubuntu-vpc", | |||||
"ref_dir": "oss://pgx-reference-data/GRCh38.d1.vd1/" | |||||
} |
{ | |||||
"{{ project_name }}.SENTIEON_INSTALL_DIR": "{{ SENTIEON_INSTALL_DIR }}", | |||||
"{{ project_name }}.Dedup_bam": "{{ Dedup_bam }}", | |||||
"{{ project_name }}.fasta": "{{ fasta }}", | |||||
"{{ project_name }}.disk_size": "{{ disk_size }}", | |||||
"{{ project_name }}.sentieon_docker": "sentieon_docker", | |||||
"{{ project_name }}.picard_docker": "picard_docker", | |||||
"{{ project_name }}.bed": "{{ bed }}", | |||||
"{{ project_name }}.SMALLcluster_config": "{{ SMALLcluster_config }}", | |||||
"{{ project_name }}.interval_list_name": "{{ interval_list_name }}", | |||||
"{{ project_name }}.Dedup_bam_index": "{{ Dedup_bam_index }}", | |||||
"{{ project_name }}.sample": "{{ sample }}", | |||||
"{{ project_name }}.ref_dir": "{{ ref_dir }}" | |||||
} | |||||
task bed_to_interval_list { | |||||
File reference_bed_dict | |||||
File bed | |||||
String interval_list_name | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
set -o pipefail | |||||
set -e | |||||
java -jar /usr/bin/picard/picard.jar BedToIntervalList \ | |||||
I=${bed} \ | |||||
O=${interval_list_name}.txt \ | |||||
SD=${reference_bed_dict} | |||||
>>> | |||||
runtime { | |||||
docker:docker | |||||
cluster: cluster_config | |||||
systemDisk: "cloud_ssd 40" | |||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File interval_list = "${interval_list_name}.txt" | |||||
} | |||||
} |
task deduped_Metrics { | |||||
File ref_dir | |||||
File bed | |||||
File interval_list | |||||
String SENTIEON_INSTALL_DIR | |||||
String sample | |||||
String fasta | |||||
File Dedup_bam | |||||
File Dedup_bam_index | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
set -o pipefail | |||||
set -e | |||||
export SENTIEON_LICENSE=192.168.0.55:8990 | |||||
nt=$(nproc) | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${Dedup_bam} --interval ${bed} --algo CoverageMetrics --omit_base_output ${sample}_deduped_coverage_metrics --algo MeanQualityByCycle ${sample}_deduped_mq_metrics.txt --algo QualDistribution ${sample}_deduped_qd_metrics.txt --algo GCBias --summary ${sample}_deduped_gc_summary.txt ${sample}_deduped_gc_metrics.txt --algo AlignmentStat ${sample}_deduped_aln_metrics.txt --algo InsertSizeMetricAlgo ${sample}_deduped_is_metrics.txt --algo QualityYield ${sample}_deduped_QualityYield.txt --algo WgsMetricsAlgo ${sample}_deduped_WgsMetricsAlgo.txt --algo HsMetricAlgo --targets_list ${interval_list} --baits_list ${interval_list} ${sample}_deduped_HsMetricAlgo.txt | |||||
>>> | |||||
runtime { | |||||
docker:docker | |||||
cluster: cluster_config | |||||
systemDisk: "cloud_ssd 40" | |||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File deduped_coverage_metrics_sample_summary = "${sample}_deduped_coverage_metrics.sample_summary" | |||||
File deduped_coverage_metrics_sample_statistics = "${sample}_deduped_coverage_metrics.sample_statistics" | |||||
File deduped_coverage_metrics_sample_interval_statistics = "${sample}_deduped_coverage_metrics.sample_interval_statistics" | |||||
File deduped_coverage_metrics_sample_cumulative_coverage_proportions = "${sample}_deduped_coverage_metrics.sample_cumulative_coverage_proportions" | |||||
File deduped_coverage_metrics_sample_cumulative_coverage_counts = "${sample}_deduped_coverage_metrics.sample_cumulative_coverage_counts" | |||||
File deduped_mean_quality = "${sample}_deduped_mq_metrics.txt" | |||||
File deduped_qd_metrics = "${sample}_deduped_qd_metrics.txt" | |||||
File deduped_gc_summary = "${sample}_deduped_gc_summary.txt" | |||||
File deduped_gc_metrics = "${sample}_deduped_gc_metrics.txt" | |||||
File dedeuped_aln_metrics = "${sample}_deduped_aln_metrics.txt" | |||||
File deduped_is_metrics = "${sample}_deduped_is_metrics.txt" | |||||
File deduped_QualityYield = "${sample}_deduped_QualityYield.txt" | |||||
File deduped_wgsmetrics = "${sample}_deduped_WgsMetricsAlgo.txt" | |||||
File deduped_HsMetricAlgo = "${sample}_deduped_HsMetricAlgo.txt" | |||||
} | |||||
} |
task reference_dict { | |||||
File ref_dir | |||||
String fasta | |||||
String docker | |||||
String cluster_config | |||||
String disk_size | |||||
command <<< | |||||
set -o pipefail | |||||
set -e | |||||
java -jar /usr/bin/picard/picard.jar CreateSequenceDictionary \ | |||||
R=${ref_dir}/${fasta}\ | |||||
O=reference_bed_dict.txt | |||||
>>> | |||||
runtime { | |||||
docker:docker | |||||
cluster: cluster_config | |||||
systemDisk: "cloud_ssd 40" | |||||
dataDisk: "cloud_ssd " + disk_size + " /cromwell_root/" | |||||
} | |||||
output { | |||||
File reference_bed_dict= "reference_bed_dict.txt" | |||||
} | |||||
} |
import "./tasks/reference_dict.wdl" as reference_dict | |||||
import "./tasks/bed_to_interval_list.wdl" as bed_to_interval_list | |||||
import "./tasks/deduped_Metrics.wdl" as deduped_Metrics | |||||
workflow project_name { | |||||
File ref_dir | |||||
String fasta | |||||
String SMALLcluster_config | |||||
String disk_size | |||||
String picard_docker | |||||
String sentieon_docker | |||||
File bed | |||||
String interval_list_name | |||||
String SENTIEON_INSTALL_DIR | |||||
String sample | |||||
File Dedup_bam | |||||
File Dedup_bam_index | |||||
call reference_dict.reference_dict as reference_dict { | |||||
input: | |||||
ref_dir=ref_dir, | |||||
fasta=fasta, | |||||
docker=picard_docker, | |||||
cluster_config=SMALLcluster_config, | |||||
disk_size=disk_size | |||||
} | |||||
call bed_to_interval_list.bed_to_interval_list as bed_to_interval_list { | |||||
input: | |||||
bed=bed, | |||||
interval_list_name=interval_list_name, | |||||
reference_bed_dict=reference_dict.reference_bed_dict, | |||||
docker=picard_docker, | |||||
cluster_config=SMALLcluster_config, | |||||
disk_size=disk_size | |||||
} | |||||
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_bam, | |||||
Dedup_bam_index=Dedup_bam_index, | |||||
sample=sample, | |||||
docker=sentieon_docker, | |||||
interval_list=bed_to_interval_list.interval_list, | |||||
disk_size=disk_size, | |||||
cluster_config=SMALLcluster_config | |||||
} | |||||
} | |||||