pipeline/wdl/fusion.wdl

113 lines
2.8 KiB
Plaintext
Raw Normal View History

2023-10-10 11:09:16 +08:00
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=2 -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
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.vcf
# fusion.filter.pl ${output_dir}/fusion/${name}.fusion.vcf ${output_dir}/fusion/${name}.fusion.filter.vcf
#
# svtyper \
# -B ${rmdup_bam} \
# -i ${output_dir}/fusion/${name}.fusion.filter.vcf \
# -T ${ref} \
# -o ${output_dir}/fusion/${name}.fusion.gt.vcf
>>>
output {
String vcf = "${output_dir}/fusion/${name}.fusion.vcf"
}
}
workflow call_fusion {
String name
String sorted_bam
String rmdup_bam
String output_dir
String ref
String umi
if (umi) {
call rmdup_picard {
input:
name=name,
sorted_bam=sorted_bam,
output_dir=output_dir,
ref=ref
}
call fusion_calling {
input:
name=name,
rmdup_bam=rmdup_picard.rmdup_bam,
output_dir=output_dir,
ref=ref
}
}
if (!umi) {
call fusion_calling {
input:
name=name,
rmdup_bam=rmdup_bam,
output_dir=output_dir,
ref=ref
}
}
output {
String fusion_vcf = "${output_dir}/fusion/${name}.fusion.vcf"
}
}