Quellcode durchsuchen

first commit

master
liuruimei vor 4 Jahren
Commit
287dc0fa64
7 geänderte Dateien mit 187 neuen und 0 gelöschten Zeilen
  1. +2
    -0
      README.md
  2. +9
    -0
      defaults
  3. +17
    -0
      inputs
  4. +30
    -0
      tasks/bed_to_interval_list.wdl
  5. +47
    -0
      tasks/deduped_Metrics.wdl
  6. +28
    -0
      tasks/reference_dict.wdl
  7. +54
    -0
      workflow.wdl

+ 2
- 0
README.md Datei anzeigen

@@ -0,0 +1,2 @@
WES capture efficiency (from bam file)


+ 9
- 0
defaults Datei anzeigen

@@ -0,0 +1,9 @@
{
"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/"
}

+ 17
- 0
inputs Datei anzeigen

@@ -0,0 +1,17 @@
{
"{{ 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 }}"
}




+ 30
- 0
tasks/bed_to_interval_list.wdl Datei anzeigen

@@ -0,0 +1,30 @@
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"
}
}

+ 47
- 0
tasks/deduped_Metrics.wdl Datei anzeigen

@@ -0,0 +1,47 @@
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"
}
}

+ 28
- 0
tasks/reference_dict.wdl Datei anzeigen

@@ -0,0 +1,28 @@
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"
}
}

+ 54
- 0
workflow.wdl Datei anzeigen

@@ -0,0 +1,54 @@
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
}
}


Laden…
Abbrechen
Speichern