diff --git a/pipes/WDL/tasks/tasks_assembly.wdl b/pipes/WDL/tasks/tasks_assembly.wdl index 3717b76ab..ae5715e40 100644 --- a/pipes/WDL/tasks/tasks_assembly.wdl +++ b/pipes/WDL/tasks/tasks_assembly.wdl @@ -679,17 +679,21 @@ task run_discordance { # bcftools call snps while treating each RG as a separate sample bcftools mpileup \ - -G readgroups.txt -d 10000 -a "FORMAT/AD" -q 1 -m 2 -Ou \ + -G readgroups.txt -d 10000 -a "FORMAT/DP,FORMAT/AD" \ + -q 1 -m 2 -Ou \ -f "${reference_fasta}" "${reads_aligned_bam}" \ | bcftools call \ - -m --ploidy 1 \ - --threads `nproc` \ + -P 0 -m --ploidy 1 \ + --threads $(nproc) \ -Ov -o everything.vcf + # mask all GT calls when less than 3 reads + cat everything.vcf | bcftools filter -e 'FMT/DP<3' -S . > filtered.vcf + cat filtered.vcf | bcftools filter -i 'MAC>0' > "${out_basename}.discordant.vcf" + # tally outputs set +o pipefail # to handle empty grep - cat everything.vcf | bcftools filter -i 'MAC=0' | grep -v '^#' | wc -l | tee num_concordant - cat everything.vcf | bcftools filter -i 'MAC>0' > "${out_basename}.discordant.vcf" + cat filtered.vcf | bcftools filter -i 'MAC=0' | grep -v '^#' | wc -l | tee num_concordant cat "${out_basename}.discordant.vcf" | bcftools filter -i 'TYPE="snp"' | grep -v '^#' | wc -l | tee num_discordant_snps cat "${out_basename}.discordant.vcf" | bcftools filter -i 'TYPE!="snp"' | grep -v '^#' | wc -l | tee num_discordant_indels } diff --git a/test/input/WDL/test_outputs-assemble_refbased-local.json b/test/input/WDL/test_outputs-assemble_refbased-local.json index 3c8fdaf20..829701192 100644 --- a/test/input/WDL/test_outputs-assemble_refbased-local.json +++ b/test/input/WDL/test_outputs-assemble_refbased-local.json @@ -9,5 +9,5 @@ "assemble_refbased.assembly_length_unambiguous": 18889, "assemble_refbased.assembly_length": 18889, "assemble_refbased.replicate_discordant_indels": 0, - "assemble_refbased.replicate_discordant_snps": 7 + "assemble_refbased.replicate_discordant_snps": 0 }