157 lines
3.8 KiB
Plaintext
Executable File
157 lines
3.8 KiB
Plaintext
Executable File
task cnv_single {
|
|
String name
|
|
String output_dir
|
|
String rmdup_bam
|
|
String project
|
|
String probe
|
|
|
|
command <<<
|
|
if [ ! -d ${output_dir}/cnv ];then
|
|
mkdir ${output_dir}/cnv
|
|
fi
|
|
|
|
cnvkit.py batch ${rmdup_bam} \
|
|
-r $PUBLIC/cnvkit/${probe}gene_pool_normal_reference.cnn \
|
|
--drop-low-coverage \
|
|
--scatter \
|
|
--diagram \
|
|
--output-dir ${output_dir}/cnv \
|
|
-p 5
|
|
|
|
cnvkit.py scatter \
|
|
${output_dir}/cnv/${name}.rmdup.cnr -s ${output_dir}/cnv/${name}.rmdup.cns \
|
|
--y-max 3 --y-min -3 \
|
|
--title ${name}.cns \
|
|
-o ${output_dir}/cnv/${name}.cnv.png
|
|
|
|
>>>
|
|
|
|
output {
|
|
String cnv_cns = "${output_dir}/cnv/${name}.rmdup.cns"
|
|
}
|
|
}
|
|
|
|
task cnv_paired {
|
|
String name
|
|
String ref
|
|
String bed
|
|
String output_dir
|
|
String project
|
|
String tumor_rmdup_bam
|
|
String normal_rmdup_bam
|
|
|
|
command <<<
|
|
if [ ! -d ${output_dir}/cnv ];then
|
|
mkdir ${output_dir}/cnv
|
|
fi
|
|
|
|
cnvkit.py batch \
|
|
${tumor_rmdup_bam} \
|
|
--normal ${normal_rmdup_bam} \
|
|
--targets ${bed} \
|
|
--fasta ${ref} \
|
|
--access $PUBLIC/cnvkit/access-5k-mappable.hg19.bed \
|
|
--output-reference ${output_dir}/cnv/normal_reference.cnn \
|
|
--annotate $PUBLIC/cnvkit/refFlat.txt \
|
|
--drop-low-coverage \
|
|
--scatter \
|
|
--output-dir ${output_dir}/cnv \
|
|
-p 5
|
|
|
|
cnvkit.py scatter \
|
|
${output_dir}/cnv/${name}.rmdup.cnr -s ${output_dir}/cnv/${name}.rmdup.cns \
|
|
--y-max 3 --y-min -3 \
|
|
--title ${name}.cns \
|
|
-o ${output_dir}/cnv/${name}.cnv.png
|
|
|
|
>>>
|
|
|
|
output {
|
|
String cnv_cns = "${output_dir}/cnv/${name}.rmdup.cns"
|
|
}
|
|
|
|
}
|
|
|
|
task cnv_sum {
|
|
String cns
|
|
String name
|
|
String output_dir
|
|
String project
|
|
String cancer
|
|
|
|
command <<<
|
|
filter_cnv.pl ${cns} ${output_dir}/cnv/${name}.rmdup.cns.filter.txt ${project}
|
|
target_therapy_cnv.pl ${output_dir}/cnv/${name}.rmdup.cns.filter.txt \
|
|
${output_dir}/cnv/${name}.rmdup.cns.filter ${cancer}
|
|
>>>
|
|
output {
|
|
String cnv_filter = "${output_dir}/cnv/${name}.rmdup.cns.filter.txt"
|
|
}
|
|
}
|
|
|
|
workflow call_cnv {
|
|
|
|
Boolean run=true
|
|
|
|
String tumor
|
|
String tumor_rmdup_bam
|
|
String? normal
|
|
String? normal_rmdup_bam
|
|
String ref
|
|
String bed
|
|
String output_dir
|
|
String project
|
|
String cancer
|
|
String probe
|
|
|
|
if (run) {
|
|
# 单样本
|
|
if (!defined(normal)) {
|
|
call cnv_single {
|
|
input:
|
|
name=tumor,
|
|
output_dir=output_dir,
|
|
rmdup_bam=tumor_rmdup_bam,
|
|
project=project,
|
|
probe=probe
|
|
}
|
|
call cnv_sum as cnv_single_sum {
|
|
input:
|
|
cns=cnv_single.cnv_cns,
|
|
name=tumor,
|
|
output_dir=output_dir,
|
|
cancer=cancer,
|
|
project=project
|
|
}
|
|
}
|
|
# 双样本
|
|
if (defined(normal)) {
|
|
call cnv_paired {
|
|
input:
|
|
name=tumor,
|
|
ref=ref,
|
|
bed=bed,
|
|
output_dir=output_dir,
|
|
project=project,
|
|
tumor_rmdup_bam=tumor_rmdup_bam,
|
|
normal_rmdup_bam=normal_rmdup_bam
|
|
}
|
|
call cnv_sum as cnv_paired_sum {
|
|
input:
|
|
cns=cnv_paired.cnv_cns,
|
|
name=tumor,
|
|
output_dir=output_dir,
|
|
cancer=cancer,
|
|
project=project
|
|
}
|
|
}
|
|
}
|
|
|
|
output {
|
|
String cnv_filter = "${output_dir}/cnv/${tumor}.rmdup.cns.filter.txt"
|
|
}
|
|
}
|
|
|
|
|
|
|