"vcf2maf_r_docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/r-base:4.0.2", | "vcf2maf_r_docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/r-base:4.0.2", | ||||
"bcftools_docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/bcftools:v1.9", | "bcftools_docker": "registry.cn-shanghai.aliyuncs.com/pgx-docker-registry/bcftools:v1.9", | ||||
"database": "oss://pgx-reference-data/annovar/", | "database": "oss://pgx-reference-data/annovar/", | ||||
"regions": "oss://pgx-reference-data/reference/wes_bedfiles/agilent_v6/agilent_v6.bed", | |||||
"PONmode": true, | |||||
"regions": "oss://pgx-reference-data/reference/wes_bedfiles/agilent_v6/agilent_v6_cosmic_hg38.bed", | |||||
"set_pon": true, | |||||
"cosmic_vcf": "CosmicCodingMuts.hg38.v91.vcf", | "cosmic_vcf": "CosmicCodingMuts.hg38.v91.vcf", | ||||
"cosmic_dir": "oss://pgx-reference-data/reference/cosmic/", | "cosmic_dir": "oss://pgx-reference-data/reference/cosmic/", | ||||
"disk_size": "200", | "disk_size": "200", |
{ | { | ||||
"{{ project_name }}.fastq_1": "{{ fastq_1 }}", | |||||
"{{ project_name }}.fastq_2": "{{ fastq_2 }}", | |||||
"{{ project_name }}.normal_recaled_bam": "{{ normal_recaled_bam }}", | |||||
"{{ project_name }}.normal_recaled_bam_index": "{{ normal_recaled_bam_index }}", | |||||
"{{ project_name }}.type": "{{ type }}", | |||||
"{{ project_name }}.fasta": "{{ fasta }}", | "{{ project_name }}.fasta": "{{ fasta }}", | ||||
"{{ project_name }}.ref_dir": "{{ ref_dir }}", | "{{ project_name }}.ref_dir": "{{ ref_dir }}", | ||||
"{{ project_name }}.dbsnp": "{{ dbsnp }}", | "{{ project_name }}.dbsnp": "{{ dbsnp }}", | ||||
"{{ project_name }}.sentieon_docker": "{{ sentieon_docker }}", | "{{ project_name }}.sentieon_docker": "{{ sentieon_docker }}", | ||||
"{{ project_name }}.annovar_docker": "{{ annovar_docker }}", | "{{ project_name }}.annovar_docker": "{{ annovar_docker }}", | ||||
"{{ project_name }}.vcf2maf_r_docker": "{{ vcf2maf_r_docker }}", | "{{ project_name }}.vcf2maf_r_docker": "{{ vcf2maf_r_docker }}", | ||||
"{{ project_name }}.bcftools_docker": "{{ bcftools_docker }}", | |||||
"{{ project_name }}.database": "{{ database }}", | "{{ project_name }}.database": "{{ database }}", | ||||
"{{ project_name }}.inputSamplesFile": "{{ inputSamplesFile }}", | |||||
"{{ project_name }}.regions": "{{ regions }}", | "{{ project_name }}.regions": "{{ regions }}", | ||||
"{{ project_name }}.PONmode": "{{ PONmode }}", | |||||
"{{ project_name }}.set_pon": "{{ set_pon }}", | |||||
"{{ project_name }}.pon_vcf": "{{ pon_vcf }}", | |||||
"{{ project_name }}.cosmic_vcf": "{{ cosmic_vcf }}", | "{{ project_name }}.cosmic_vcf": "{{ cosmic_vcf }}", | ||||
"{{ project_name }}.cosmic_dir": "{{ cosmic_dir }}", | "{{ project_name }}.cosmic_dir": "{{ cosmic_dir }}", | ||||
"{{ project_name }}.disk_size": "{{ disk_size }}", | "{{ project_name }}.disk_size": "{{ disk_size }}", |
File regions | File regions | ||||
String dbsnp | String dbsnp | ||||
String db_mills | String db_mills | ||||
File realigned_bam1 | |||||
File realigned_bam_index1 | |||||
File realigned_bam | |||||
File realigned_bam_index | |||||
String docker | String docker | ||||
String cluster_config | String cluster_config | ||||
String disk_size | String disk_size | ||||
export SENTIEON_LICENSE=${SENTIEON_LICENSE} | export SENTIEON_LICENSE=${SENTIEON_LICENSE} | ||||
nt=$(nproc) | nt=$(nproc) | ||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${realigned_bam1} --interval ${regions} --algo QualCal -k ${dbsnp_dir}/${dbsnp} -k ${dbmills_dir}/${db_mills} ${sample}_recal_data.table | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${realigned_bam} --interval ${regions} --algo QualCal -k ${dbsnp_dir}/${dbsnp} -k ${dbmills_dir}/${db_mills} ${sample}_recal_data.table | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${realigned_bam1} -q ${sample}_recal_data.table --algo QualCal -k ${dbsnp_dir}/${dbsnp} -k ${dbmills_dir}/${db_mills} ${sample}_recal_data.table.post --algo ReadWriter ${sample}.sorted.deduped.realigned.recaled.bam | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${realigned_bam} -q ${sample}_recal_data.table --algo QualCal -k ${dbsnp_dir}/${dbsnp} -k ${dbmills_dir}/${db_mills} ${sample}_recal_data.table.post --algo ReadWriter ${sample}.sorted.deduped.realigned.recaled.bam | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt --algo QualCal --plot --before ${sample}_recal_data.table --after ${sample}_recal_data.table.post ${sample}_recal_data.csv | ${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt --algo QualCal --plot --before ${sample}_recal_data.table --after ${sample}_recal_data.table.post ${sample}_recal_data.csv | ||||
${SENTIEON_INSTALL_DIR}/bin/sentieon plot QualCal -o ${sample}_bqsrreport.pdf ${sample}_recal_data.csv | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon plot bqsr -o ${sample}_bqsrreport.pdf ${sample}_recal_data.csv | |||||
>>> | >>> | ||||
String SENTIEON_INSTALL_DIR | String SENTIEON_INSTALL_DIR | ||||
String SENTIEON_LICENSE | String SENTIEON_LICENSE | ||||
String sample | String sample | ||||
Boolean PONmode | |||||
File ref_dir | File ref_dir | ||||
String fasta | String fasta | ||||
set -e | set -e | ||||
export SENTIEON_LICENSE=${SENTIEON_LICENSE} | export SENTIEON_LICENSE=${SENTIEON_LICENSE} | ||||
nt=$(nproc) | nt=$(nproc) | ||||
if [ ${PONmode} ]; then | |||||
mkdir -p /cromwell_root/tmp/cosmic/ | |||||
cp ${cosmic_dir}/${cosmic_vcf} /cromwell_root/tmp/cosmic/ | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/cosmic/${cosmic_vcf} | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt -r ${ref_dir}/${fasta} -i ${normal_recaled_bam} --algo TNhaplotyper --detect_pon --cosmic /cromwell_root/tmp/cosmic/${cosmic_vcf} --dbsnp ${dbsnp_dir}/${dbsnp} ${sample}_pon.vcf | |||||
else | |||||
touch ${sample}_pon.vcf | |||||
fi | |||||
mkdir -p /cromwell_root/tmp/cosmic/ | |||||
cp ${cosmic_dir}/${cosmic_vcf} /cromwell_root/tmp/cosmic/ | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/cosmic/${cosmic_vcf} | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt -r ${ref_dir}/${fasta} -i ${normal_recaled_bam} --algo TNhaplotyper --detect_pon --cosmic /cromwell_root/tmp/cosmic/${cosmic_vcf} --dbsnp ${dbsnp_dir}/${dbsnp} ${sample}_pon.vcf | |||||
>>> | >>> | ||||
runtime { | runtime { |
String cluster_config | String cluster_config | ||||
String fasta | String fasta | ||||
File corealigner_bam | |||||
File corealigner_bam_index | |||||
File? corealigner_bam | |||||
File? corealigner_bam_index | |||||
File tumor_recaled_bam | |||||
File tumor_recaled_bam_index | |||||
String dbsnp | String dbsnp | ||||
String disk_size | String disk_size | ||||
Boolean PONmode | |||||
Boolean set_pon | |||||
String? cosmic_vcf | String? cosmic_vcf | ||||
File? cosmic_dir | File? cosmic_dir | ||||
File panel_of_normal_vcf | |||||
File? pon_vcf | |||||
String pon_command = if set_pon then "--pon /cromwell_root/tmp/PON/$(basename ${pon_vcf}) --cosmic /cromwell_root/tmp/PON/${cosmic_vcf}" else "" | |||||
String input_command = if defined(corealigner_bam) then "-i ${corealigner_bam} --tumor_sample ${tumor_name} --normal_sample ${normal_name}" else "-i ${tumor_recaled_bam} --tumor_sample ${tumor_name}" | |||||
command <<< | command <<< | ||||
set -o pipefail | set -o pipefail | ||||
export SENTIEON_LICENSE=${SENTIEON_LICENSE} | export SENTIEON_LICENSE=${SENTIEON_LICENSE} | ||||
nt=$(nproc) | nt=$(nproc) | ||||
if [ ${PONmode} ]; then | |||||
mkdir -p /cromwell_root/tmp/cosmic/ | |||||
cp ${cosmic_dir}/${cosmic_vcf} /cromwell_root/tmp/cosmic/ | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/cosmic/${cosmic_vcf} | |||||
PONcommand="--pon ${panel_of_normal_vcf} --cosmic /cromwell_root/tmp/cosmic/${cosmic_vcf}" | |||||
else | |||||
PONcommand="" | |||||
fi | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt -r ${ref_dir}/${fasta} -i ${corealigner_bam} --algo TNscope --tumor_sample ${tumor_name} --normal_sample ${normal_name} --dbsnp ${dbsnp_dir}/${dbsnp} PONcommand ${sample}.TNscope.TN.vcf | |||||
mkdir -p /cromwell_root/tmp/PON/ | |||||
cp ${cosmic_dir}/${cosmic_vcf} /cromwell_root/tmp/PON/ | |||||
cp ${pon_vcf} /cromwell_root/tmp/PON/ | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/PON/${cosmic_vcf} | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/PON/$(basename ${pon_vcf}) | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt -r ${ref_dir}/${fasta} --algo TNscope ${input_command} --dbsnp ${dbsnp_dir}/${dbsnp} ${pon_command} ${sample}.TNscope.TN.vcf | |||||
>>> | >>> | ||||
task TNseq { | task TNseq { | ||||
File ref_dir | File ref_dir | ||||
File dbsnp_dir | File dbsnp_dir | ||||
Array[String] sample | |||||
String sample | |||||
String SENTIEON_INSTALL_DIR | String SENTIEON_INSTALL_DIR | ||||
String SENTIEON_LICENSE | String SENTIEON_LICENSE | ||||
String tumor_name | String tumor_name | ||||
String cluster_config | String cluster_config | ||||
String fasta | String fasta | ||||
Array[File] corealigner_bam | |||||
Array[File] corealigner_bam_index | |||||
File? corealigner_bam | |||||
File? corealigner_bam_index | |||||
File tumor_recaled_bam | |||||
File tumor_recaled_bam_index | |||||
String dbsnp | String dbsnp | ||||
String disk_size | String disk_size | ||||
Boolean PONmode | |||||
Boolean set_pon | |||||
String? cosmic_vcf | String? cosmic_vcf | ||||
File? cosmic_dir | File? cosmic_dir | ||||
File panel_of_normal_vcf | |||||
File? pon_vcf | |||||
String pon_command = if set_pon then "--pon /cromwell_root/tmp/PON/$(basename ${pon_vcf}) --cosmic /cromwell_root/tmp/PON/${cosmic_vcf}" else "" | |||||
String input_command = if defined(corealigner_bam) then "-i ${corealigner_bam} --tumor_sample ${tumor_name} --normal_sample ${normal_name}" else "-i ${tumor_recaled_bam} --tumor_sample ${tumor_name}" | |||||
command <<< | command <<< | ||||
set -o pipefail | set -o pipefail | ||||
export SENTIEON_LICENSE=${SENTIEON_LICENSE} | export SENTIEON_LICENSE=${SENTIEON_LICENSE} | ||||
nt=$(nproc) | nt=$(nproc) | ||||
if [ ${PONmode} ]; then | |||||
mkdir -p /cromwell_root/tmp/cosmic/ | |||||
cp ${cosmic_dir}/${cosmic_vcf} /cromwell_root/tmp/cosmic/ | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/cosmic/${cosmic_vcf} | |||||
PONcommand="--pon ${panel_of_normal_vcf} --cosmic /cromwell_root/tmp/cosmic/${cosmic_vcf}" | |||||
else | |||||
PONcommand="" | |||||
fi | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt -r ${ref_dir}/${fasta} -i ${sep=" -i " corealigner_bam} --algo TNhaplotyper --tumor_sample ${tumor_name} --normal_sample ${normal_name} --dbsnp ${dbsnp_dir}/${dbsnp} PONcommand ${sep=" " sample}.TNseq.TN.vcf | |||||
mkdir -p /cromwell_root/tmp/PON/ | |||||
cp ${cosmic_dir}/${cosmic_vcf} /cromwell_root/tmp/PON/ | |||||
cp ${pon_vcf} /cromwell_root/tmp/PON/ | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/PON/${cosmic_vcf} | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon util vcfindex /cromwell_root/tmp/PON/$(basename ${pon_vcf}) | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -t $nt -r ${ref_dir}/${fasta} --algo TNhaplotyper ${input_command} --dbsnp ${dbsnp_dir}/${dbsnp} ${pon_command} ${sample}.TNseq.TN.vcf | |||||
>>> | >>> | ||||
} | } | ||||
output { | output { | ||||
File TNseq_vcf= "${sep=" " sample}.TNseq.TN.vcf" | |||||
File TNseq_vcf_index = "${sep=" " sample}.TNseq.TN.vcf.idx" | |||||
File TNseq_vcf= "${sample}.TNseq.TN.vcf" | |||||
File TNseq_vcf_index = "${sample}.TNseq.TN.vcf.idx" | |||||
} | } | ||||
} | } |
String docker | String docker | ||||
String cluster_config | String cluster_config | ||||
String disk_size | String disk_size | ||||
Boolean PONmode | |||||
Boolean set_pon | |||||
command <<< | command <<< | ||||
set -o pipefail | set -o pipefail | ||||
set -e | set -e | ||||
if [ ${PONmode} ]; then | |||||
if [ ${set_pon} ]; then | |||||
mkdir -p /cromwell_root/tmp/bcftools/ | mkdir -p /cromwell_root/tmp/bcftools/ | ||||
for i in ${sep=" " pon_vcf} | for i in ${sep=" " pon_vcf} | ||||
do | do |
File dbsnp_dir | File dbsnp_dir | ||||
File dbmills_dir | File dbmills_dir | ||||
Array[String] sample | |||||
String sample | |||||
String SENTIEON_INSTALL_DIR | String SENTIEON_INSTALL_DIR | ||||
String SENTIEON_LICENSE | String SENTIEON_LICENSE | ||||
String docker | String docker | ||||
String dbsnp | String dbsnp | ||||
String db_mills | String db_mills | ||||
Array[File] tumor_recaled_bam | |||||
Array[File] tumor_recaled_bam_index | |||||
Array[File] normal_recaled_bam | |||||
Array[File] normal_recaled_bam_index | |||||
File tumor_recaled_bam | |||||
File tumor_recaled_bam_index | |||||
File normal_recaled_bam | |||||
File normal_recaled_bam_index | |||||
String disk_size | String disk_size | ||||
set -e | set -e | ||||
export SENTIEON_LICENSE=${SENTIEON_LICENSE} | export SENTIEON_LICENSE=${SENTIEON_LICENSE} | ||||
nt=$(nproc) | nt=$(nproc) | ||||
#${sep=" " tumor_recaled_bam} | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${sep=" -i " tumor_recaled_bam} -i ${sep=" -i " normal_recaled_bam} --algo Realigner -k ${dbmills_dir}/${db_mills} -k ${dbsnp_dir}/${dbsnp} ${sep=" " sample}_corealigned.bam | |||||
${SENTIEON_INSTALL_DIR}/bin/sentieon driver -r ${ref_dir}/${fasta} -t $nt -i ${tumor_recaled_bam} -i ${normal_recaled_bam} --algo Realigner -k ${dbmills_dir}/${db_mills} -k ${dbsnp_dir}/${dbsnp} ${sample}_corealigned.bam | |||||
>>> | >>> | ||||
runtime { | runtime { | ||||
} | } | ||||
output { | output { | ||||
File corealigner_bam = "${sep=" " sample}_corealigned.bam" | |||||
File corealigner_bam_index = "${sep=" " sample}_corealigned.bam.bai" | |||||
File corealigner_bam = "${sample}_corealigned.bam" | |||||
File corealigner_bam_index = "${sample}_corealigned.bam.bai" | |||||
} | } | ||||
} | } | ||||
import "./tasks/deduped_Metrics.wdl" as deduped_Metrics | import "./tasks/deduped_Metrics.wdl" as deduped_Metrics | ||||
import "./tasks/Realigner.wdl" as Realigner | import "./tasks/Realigner.wdl" as Realigner | ||||
import "./tasks/BQSR.wdl" as BQSR | import "./tasks/BQSR.wdl" as BQSR | ||||
#import "./tasks/corealigner.wdl" as corealigner | |||||
import "./tasks/corealigner.wdl" as corealigner | |||||
import "./tasks/PON.wdl" as PON | import "./tasks/PON.wdl" as PON | ||||
import "./tasks/bcftools.wdl" as bcftools | |||||
#import "./tasks/TNseq.wdl" as TNseq | |||||
#import "./tasks/TNscope.wdl" as TNscope | |||||
#import "./tasks/annovar.wdl" as annovar | |||||
#import "./tasks/vcf2maf.wdl" as vcf2maf | |||||
import "./tasks/TNseq.wdl" as TNseq | |||||
import "./tasks/TNscope.wdl" as TNscope | |||||
import "./tasks/annovar.wdl" as annovar | |||||
import "./tasks/vcf2maf.wdl" as vcf2maf | |||||
workflow {{ project_name }} { | workflow {{ project_name }} { | ||||
File inputSamplesFile | |||||
Array[Array[File]] inputSamples = read_tsv(inputSamplesFile) | |||||
#Array[String] sample | |||||
File fastq_1 | |||||
File fastq_2 | |||||
File? normal_recaled_bam | |||||
File? normal_recaled_bam_index | |||||
String type | |||||
String SENTIEON_INSTALL_DIR | String SENTIEON_INSTALL_DIR | ||||
String SENTIEON_LICENSE | String SENTIEON_LICENSE | ||||
String sentieon_docker | String sentieon_docker | ||||
String annovar_docker | String annovar_docker | ||||
String vcf2maf_r_docker | String vcf2maf_r_docker | ||||
String bcftools_docker | |||||
File ref_dir | File ref_dir | ||||
String fasta | String fasta | ||||
File dbsnp_dir | File dbsnp_dir | ||||
String dbsnp | String dbsnp | ||||
File regions | File regions | ||||
File database | |||||
String disk_size | String disk_size | ||||
String cluster_config | String cluster_config | ||||
Boolean PONmode | |||||
Boolean set_pon | |||||
File? pon_vcf | |||||
File? cosmic_dir | File? cosmic_dir | ||||
String? cosmic_vcf | String? cosmic_vcf | ||||
Boolean set_annovar | Boolean set_annovar | ||||
File? database | |||||
Boolean set_vcf2maf | Boolean set_vcf2maf | ||||
scatter (sample in inputSamples) { | |||||
call mapping.mapping as tumor_mapping { | |||||
input: | |||||
group=sample[0] + "_tumor", | |||||
sample=sample[0] + "_tumor", | |||||
fastq_1=sample[1], | |||||
fastq_2=sample[2], | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
pl="ILLUMINAL", | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call mapping.mapping as mapping { | |||||
input: | |||||
group=sample + '_' + type, | |||||
sample=sample + '_' + type, | |||||
fastq_1=fastq_1, | |||||
fastq_2=fastq_2, | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
pl="ILLUMINAL", | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call Metrics.Metrics as tumor_Metrics { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
sorted_bam=tumor_mapping.sorted_bam, | |||||
sorted_bam_index=tumor_mapping.sorted_bam_index, | |||||
sample=sample[0] + "_tumor", | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call Metrics.Metrics as Metrics { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
sorted_bam=mapping.sorted_bam, | |||||
sorted_bam_index=mapping.sorted_bam_index, | |||||
sample=sample + '_' + type, | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call Dedup.Dedup as tumor_Dedup { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
sorted_bam=tumor_mapping.sorted_bam, | |||||
sorted_bam_index=tumor_mapping.sorted_bam_index, | |||||
sample=sample[0] + "_tumor", | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call Dedup.Dedup as Dedup { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
sorted_bam=mapping.sorted_bam, | |||||
sorted_bam_index=mapping.sorted_bam_index, | |||||
sample=sample + '_' + type, | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call deduped_Metrics.deduped_Metrics as tumor_deduped_Metrics { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
Dedup_bam=tumor_Dedup.Dedup_bam, | |||||
Dedup_bam_index=tumor_Dedup.Dedup_bam_index, | |||||
sample=sample[0] + "_tumor", | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call deduped_Metrics.deduped_Metrics as deduped_Metrics { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
Dedup_bam=Dedup.Dedup_bam, | |||||
Dedup_bam_index=Dedup.Dedup_bam_index, | |||||
sample=sample + '_' + type, | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call Realigner.Realigner as tumor_Realigner { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
Dedup_bam=tumor_Dedup.Dedup_bam, | |||||
Dedup_bam_index=tumor_Dedup.Dedup_bam_index, | |||||
db_mills=db_mills, | |||||
dbmills_dir=dbmills_dir, | |||||
sample=sample[0] + "_tumor", | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
regions=regions, | |||||
cluster_config=cluster_config | |||||
} | |||||
call Realigner.Realigner as Realigner { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
Dedup_bam=Dedup.Dedup_bam, | |||||
Dedup_bam_index=Dedup.Dedup_bam_index, | |||||
db_mills=db_mills, | |||||
dbmills_dir=dbmills_dir, | |||||
sample=sample + '_' + type, | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
regions=regions, | |||||
cluster_config=cluster_config | |||||
} | |||||
call BQSR.BQSR as BQSR { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
realigned_bam=Realigner.realigner_bam, | |||||
realigned_bam_index=Realigner.realigner_bam_index, | |||||
db_mills=db_mills, | |||||
dbmills_dir=dbmills_dir, | |||||
dbsnp=dbsnp, | |||||
dbsnp_dir=dbsnp_dir, | |||||
sample=sample + '_' + type, | |||||
regions=regions, | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call BQSR.BQSR as tumor_BQSR { | |||||
if (set_pon && type == "normal") { | |||||
call PON.PON as PON { | |||||
input: | input: | ||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | ||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | SENTIEON_LICENSE=SENTIEON_LICENSE, | ||||
sample=sample, | |||||
fasta=fasta, | fasta=fasta, | ||||
ref_dir=ref_dir, | ref_dir=ref_dir, | ||||
realigned_bam1=tumor_Realigner.realigner_bam, | |||||
realigned_bam_index1=tumor_Realigner.realigner_bam_index, | |||||
db_mills=db_mills, | |||||
dbmills_dir=dbmills_dir, | |||||
normal_recaled_bam=BQSR.recaled_bam, | |||||
normal_recaled_bam_index=BQSR.recaled_bam_index, | |||||
cosmic_vcf=cosmic_vcf, | |||||
cosmic_dir=cosmic_dir, | |||||
dbsnp=dbsnp, | dbsnp=dbsnp, | ||||
dbsnp_dir=dbsnp_dir, | dbsnp_dir=dbsnp_dir, | ||||
sample=sample[0] + "_tumor", | |||||
regions=regions, | |||||
docker=sentieon_docker, | docker=sentieon_docker, | ||||
disk_size=disk_size, | disk_size=disk_size, | ||||
cluster_config=cluster_config | cluster_config=cluster_config | ||||
} | } | ||||
} | } | ||||
scatter (sample in inputSamples) { | |||||
call mapping.mapping as normal_mapping { | |||||
input: | |||||
group=sample[0] + "_normal", | |||||
sample=sample[0] + "_normal", | |||||
fastq_1=sample[3], | |||||
fastq_2=sample[4], | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
pl="ILLUMINAL", | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call Metrics.Metrics as normal_Metrics { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
sorted_bam=normal_mapping.sorted_bam, | |||||
sorted_bam_index=normal_mapping.sorted_bam_index, | |||||
sample=sample[0] + "_normal", | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call Dedup.Dedup as normal_Dedup { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
sorted_bam=normal_mapping.sorted_bam, | |||||
sorted_bam_index=normal_mapping.sorted_bam_index, | |||||
sample=sample[0] + "_normal", | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call deduped_Metrics.deduped_Metrics as normal_deduped_Metrics { | |||||
if (type == "tumor" && defined(normal_recaled_bam)) { | |||||
call corealigner.corealigner as corealigner { | |||||
input: | input: | ||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | ||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | SENTIEON_LICENSE=SENTIEON_LICENSE, | ||||
fasta=fasta, | fasta=fasta, | ||||
ref_dir=ref_dir, | ref_dir=ref_dir, | ||||
Dedup_bam=normal_Dedup.Dedup_bam, | |||||
Dedup_bam_index=normal_Dedup.Dedup_bam_index, | |||||
sample=sample[0] + "_normal", | |||||
sample=sample, | |||||
docker=sentieon_docker, | docker=sentieon_docker, | ||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call Realigner.Realigner as normal_Realigner { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
Dedup_bam=normal_Dedup.Dedup_bam, | |||||
Dedup_bam_index=normal_Dedup.Dedup_bam_index, | |||||
db_mills=db_mills, | |||||
dbmills_dir=dbmills_dir, | |||||
sample=sample[0] + "_normal", | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
regions=regions, | |||||
cluster_config=cluster_config | |||||
} | |||||
call BQSR.BQSR as normal_BQSR { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
realigned_bam1=normal_Realigner.realigner_bam, | |||||
realigned_bam_index1=normal_Realigner.realigner_bam_index, | |||||
db_mills=db_mills, | db_mills=db_mills, | ||||
dbmills_dir=dbmills_dir, | dbmills_dir=dbmills_dir, | ||||
dbsnp=dbsnp, | dbsnp=dbsnp, | ||||
dbsnp_dir=dbsnp_dir, | dbsnp_dir=dbsnp_dir, | ||||
sample=sample[0] + "_normal", | |||||
regions=regions, | |||||
docker=sentieon_docker, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
call PON.PON as PON { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
sample=sample[0], | |||||
PONmode=PONmode, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
normal_recaled_bam=normal_BQSR.recaled_bam, | |||||
normal_recaled_bam_index=normal_BQSR.recaled_bam_index, | |||||
cosmic_vcf=cosmic_vcf, | |||||
cosmic_dir=cosmic_dir, | |||||
dbsnp=dbsnp, | |||||
dbsnp_dir=dbsnp_dir, | |||||
docker=sentieon_docker, | |||||
tumor_recaled_bam=BQSR.recaled_bam, | |||||
tumor_recaled_bam_index=BQSR.recaled_bam_index, | |||||
normal_recaled_bam=normal_recaled_bam, | |||||
normal_recaled_bam_index=normal_recaled_bam_index, | |||||
disk_size=disk_size, | disk_size=disk_size, | ||||
cluster_config=cluster_config | cluster_config=cluster_config | ||||
} | } | ||||
File bam_to_use = corealigner.corealigner_bam | |||||
} | } | ||||
call bcftools.bcftools as bcftools { | |||||
if (type == "tumor" && !defined(normal_recaled_bam)) { | |||||
File bam_to_use = BQSR.recaled_bam | |||||
} | |||||
#File bam_to_use = select_first([corealigner.corealigner_bam, BQSR.recaled_bam]) | |||||
call TNseq.TNseq as TNseq { | |||||
input: | input: | ||||
PONmode=PONmode, | |||||
pon_vcf=PON.pon_vcf, | |||||
docker=bcftools_docker, | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
corealigner_bam=corealigner.corealigner_bam, | |||||
corealigner_bam_index=corealigner.corealigner_bam_index, | |||||
tumor_recaled_bam=BQSR.recaled_bam, | |||||
tumor_recaled_bam_index=BQSR.recaled_bam_index, | |||||
dbsnp=dbsnp, | |||||
dbsnp_dir=dbsnp_dir, | |||||
set_pon=set_pon, | |||||
pon_vcf=pon_vcf, | |||||
cosmic_vcf=cosmic_vcf, | |||||
cosmic_dir=cosmic_dir, | |||||
tumor_name=sample + "_tumor", | |||||
normal_name=sample + "_normal", | |||||
docker=sentieon_docker, | |||||
sample=sample, | |||||
disk_size=disk_size, | disk_size=disk_size, | ||||
cluster_config=cluster_config | cluster_config=cluster_config | ||||
} | } | ||||
} | |||||
call TNscope.TNscope as TNscope { | |||||
input: | |||||
SENTIEON_INSTALL_DIR=SENTIEON_INSTALL_DIR, | |||||
SENTIEON_LICENSE=SENTIEON_LICENSE, | |||||
fasta=fasta, | |||||
ref_dir=ref_dir, | |||||
corealigner_bam=corealigner.corealigner_bam, | |||||
corealigner_bam_index=corealigner.corealigner_bam_index, | |||||
tumor_recaled_bam=BQSR.recaled_bam, | |||||
tumor_recaled_bam_index=BQSR.recaled_bam_index, | |||||
dbsnp=dbsnp, | |||||
dbsnp_dir=dbsnp_dir, | |||||
set_pon=set_pon, | |||||
pon_vcf=pon_vcf, | |||||
cosmic_vcf=cosmic_vcf, | |||||
cosmic_dir=cosmic_dir, | |||||
tumor_name=sample + "_tumor", | |||||
normal_name=sample + "_normal", | |||||
docker=sentieon_docker, | |||||
sample=sample, | |||||
disk_size=disk_size, | |||||
cluster_config=cluster_config | |||||
} | |||||
if (set_annovar && defined(TNscope.TNscope_vcf) && defined(TNseq.TNseq_vcf)){ | |||||
call annovar.annovar as annovar { | |||||
input: | |||||
docker=annovar_docker, | |||||
database=database, | |||||
tnscope_vcf_file=TNscope.TNscope_vcf, | |||||
tnseq_vcf_file=TNseq.TNseq_vcf, | |||||
sample=sample, | |||||
cluster_config=cluster_config, | |||||
disk_size=disk_size | |||||
} | |||||
if (set_vcf2maf){ | |||||
call vcf2maf.vcf2maf as vcf2maf { | |||||
input: | |||||
docker=vcf2maf_r_docker, | |||||
multianno_tnscope_txt=annovar.multianno_tnscope_txt, | |||||
multianno_tnseq_txt=annovar.multianno_tnseq_txt, | |||||
sample=sample, | |||||
cluster_config=cluster_config, | |||||
disk_size=disk_size | |||||
} | |||||
} | |||||
} | |||||
} |