113 lines
2.8 KiB
Plaintext
113 lines
2.8 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=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"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|