165 lines
4.6 KiB
Plaintext
165 lines
4.6 KiB
Plaintext
task rmdup_picard {
|
|
String name
|
|
String sorted_bam
|
|
String output_dir
|
|
String ref
|
|
|
|
command <<<
|
|
|
|
if [ ! -d ${output_dir}/fusion ];then
|
|
mkdir ${output_dir}/fusion
|
|
fi
|
|
|
|
java -XX:+UseParallelGC -XX:ParallelGCThreads=8 -Xmx12G -jar $PICARD MarkDuplicates \
|
|
I=${sorted_bam} \
|
|
O=${output_dir}/alignment/${name}.picard.rmdup.bam \
|
|
CREATE_INDEX=true \
|
|
M=${output_dir}/alignment/${name}.picard.rmdup.metrics.txt \
|
|
R=${ref}
|
|
|
|
>>>
|
|
output {
|
|
String rmdup_bam = "${output_dir}/alignment/${name}.picard.rmdup.bam"
|
|
}
|
|
|
|
}
|
|
|
|
task fusion_calling {
|
|
String name
|
|
String rmdup_bam
|
|
String output_dir
|
|
String ref
|
|
String tumor_bamdst_depth
|
|
|
|
command <<<
|
|
|
|
if [ ! -d ${output_dir}/fusion ];then
|
|
mkdir ${output_dir}/fusion
|
|
fi
|
|
|
|
# Extract the discordant paired-end alignments.
|
|
samtools view -b -F 1294 ${rmdup_bam} > ${output_dir}/fusion/${name}.discordants.bam
|
|
|
|
# Extract the split-read alignments
|
|
samtools view -h ${rmdup_bam} \
|
|
| /dataseq/jmdna/software/lumpy-sv/scripts/extractSplitReads_BwaMem -i stdin \
|
|
| samtools view -Sb - \
|
|
> ${output_dir}/fusion/${name}.splitters.bam
|
|
|
|
lumpyexpress \
|
|
-B ${rmdup_bam} \
|
|
-S ${output_dir}/fusion/${name}.splitters.bam \
|
|
-D ${output_dir}/fusion/${name}.discordants.bam \
|
|
-o ${output_dir}/fusion/${name}.fusion.raw.vcf
|
|
|
|
vcf_filter.py \
|
|
-i ${output_dir}/fusion/${name}.fusion.raw.vcf \
|
|
-e 'INFO/PE[0] >1 && INFO/SR[0] > 4 ' \
|
|
| svtyper -B ${rmdup_bam} -T ${ref} -o ${output_dir}/fusion/${name}.fusion.vcf
|
|
|
|
table_annovar.pl \
|
|
${output_dir}/fusion/${name}.fusion.vcf \
|
|
/dataseq/jmdna/software/annovar/humandb/ \
|
|
-buildver hg19 -nastring . -vcfinput -remove -otherinfo \
|
|
-protocol refGene \
|
|
-operation g \
|
|
-outfile ${output_dir}/fusion/${name}.fusion
|
|
|
|
filter_fusion.pl ${tumor_bamdst_depth} \
|
|
${output_dir}/fusion/${name}.fusion.hg19_multianno.vcf \
|
|
${output_dir}/fusion/${name}.fusion.hg19_multianno.filter.txt
|
|
|
|
vcf_filter.py \
|
|
-e 'INFO/SVTYPE = "DEL" | INFO/SVTYPE = "DUP" | INFO/SVTYPE = "INS" ' \
|
|
-i ${output_dir}/fusion/${name}.fusion.hg19_multianno.vcf \
|
|
-o ${output_dir}/fusion/${name}.longindel.hg19_multianno.vcf \
|
|
|
|
>>>
|
|
|
|
output {
|
|
String vcf_txt = "${output_dir}/fusion/${name}.fusion.hg19_multianno.filter.txt"
|
|
String longvcf = "${output_dir}/fusion/${name}.longindel.hg19_multianno.vcf"
|
|
}
|
|
|
|
}
|
|
|
|
task fusion_sum {
|
|
String name
|
|
String output_dir
|
|
String vcf_txt
|
|
String longvcf
|
|
String project
|
|
String cancer
|
|
|
|
command <<<
|
|
target_therapy_fusion.pl \
|
|
${vcf_txt} \
|
|
${longvcf} \
|
|
${output_dir}/fusion/${name}.fusion.hg19_multianno.filter \
|
|
${output_dir}/fusion/${name}.longindel.hg19_multianno.longindel.pos.txt ${project} ${cancer}
|
|
>>>
|
|
output {
|
|
String fusion = "${output_dir}/fusion/${name}.fusion.hg19_multianno.filter.txt"
|
|
}
|
|
}
|
|
|
|
workflow call_fusion {
|
|
|
|
String name
|
|
String sorted_bam
|
|
String rmdup_bam
|
|
String output_dir
|
|
String ref
|
|
Boolean umi
|
|
String tumor_bamdst_depth
|
|
String project
|
|
String cancer
|
|
|
|
if (umi) {
|
|
call rmdup_picard {
|
|
input:
|
|
name=name,
|
|
sorted_bam=sorted_bam,
|
|
output_dir=output_dir,
|
|
ref=ref
|
|
}
|
|
call fusion_calling as fusion_calling_umi {
|
|
input:
|
|
name=name,
|
|
rmdup_bam=rmdup_picard.rmdup_bam,
|
|
output_dir=output_dir,
|
|
ref=ref,
|
|
tumor_bamdst_depth=tumor_bamdst_depth
|
|
}
|
|
|
|
}
|
|
|
|
if (!umi) {
|
|
call fusion_calling as fusion_calling {
|
|
input:
|
|
name=name,
|
|
rmdup_bam=rmdup_bam,
|
|
output_dir=output_dir,
|
|
ref=ref,
|
|
tumor_bamdst_depth=tumor_bamdst_depth
|
|
}
|
|
call fusion_sum as fusion_sum {
|
|
input:
|
|
vcf_txt=fusion_calling.vcf_txt,
|
|
longvcf=fusion_calling.longvcf,
|
|
name=name,
|
|
output_dir=output_dir,
|
|
cancer=cancer,
|
|
project=project
|
|
|
|
}
|
|
}
|
|
|
|
output {
|
|
String fusion_vcf = "${output_dir}/fusion/${name}.fusion.vcf"
|
|
}
|
|
}
|
|
|
|
|
|
|