pipeline/wdl/pollution.wdl

96 lines
2.5 KiB
Plaintext
Executable File

# pollution
task run_pollution {
String name
String output_dir
String probe
String vcf
String? vcf2
command {
if [ ! -d ${output_dir}/pollution ];then
mkdir ${output_dir}/pollution
fi
pollution.py -n ${name} \
-v ${vcf} \
-v2 ${vcf2} \
-o ${output_dir}/pollution \
-p ${probe} \
-b $PUBLIC/pollution/${probe}_contaminate_ref.bed \
-c $PUBLIC/pollution/${probe}_contaminate_cnvkit.bed
}
output {
String cnvkit_tumor_vcf = "${output_dir}/pollution/${name}_cnvkit_tumor.vcf"
String cnvkit_normal_vcf = "${output_dir}/pollution/${name}_cnvkit_normal.vcf"
}
}
task run_generate_png {
String name
String probe
String cnvkit_tumor_vcf
String cnvkit_normal_vcf
String cnv_cnr
String cnv_cns
String output_dir
command {
cnvkit.py scatter ${cnv_cnr} -s ${cnv_cns} -v ${cnvkit_tumor_vcf} -o ${output_dir}/pollution/${name}_pollution_cnvkit_tumor.png
cnvkit.py scatter ${cnv_cnr} -s ${cnv_cns} -v ${cnvkit_normal_vcf} -o ${output_dir}/pollution/${name}_pollution_cnvkit_normal.png
}
}
workflow call_pollution {
Boolean run=true
String tumor
String? normal
String output_dir
String probe
String raw_vcf
String initial_vcf
String normal_vcf
String cnv_cnr
String cnv_cns
if (run) {
if (defined(normal)) {
call run_pollution as run_pollution_paired {
input:
name=tumor,
output_dir=output_dir,
probe=probe,
vcf=initial_vcf,
vcf2=normal_vcf
}
call run_generate_png {
input:
name=tumor,
probe=probe,
cnvkit_tumor_vcf=run_pollution_paired.cnvkit_tumor_vcf,
cnvkit_normal_vcf=run_pollution_paired.cnvkit_normal_vcf,
cnv_cnr=cnv_cnr,
cnv_cns=cnv_cns,
output_dir=output_dir
}
}
if (!defined(normal)) {
call run_pollution as run_pollution_single {
input:
name=tumor,
output_dir=output_dir,
probe=probe,
vcf=initial_vcf
}
}
}
output {
String pollution_res = "${output_dir}/pollution/${tumor}_pollution.txt"
}
}