From cd352f502d8226ed29851dca9c928bfc70355ce8 Mon Sep 17 00:00:00 2001 From: Guillermo del Angel Date: Fri, 17 Feb 2012 10:21:37 -0500 Subject: [PATCH] Corner case bug fix: if a read starts with an insertion, when computing the consensus allele for calling the insertion was only added to the last element in the consensus key hash map. Now, an insertion that partially overlaps with several candidate alleles will have their respective count increased for all of them --- .../IndelGenotypeLikelihoodsCalculationModel.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/IndelGenotypeLikelihoodsCalculationModel.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/IndelGenotypeLikelihoodsCalculationModel.java index fe2086d47..6321ef1f6 100755 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/IndelGenotypeLikelihoodsCalculationModel.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/IndelGenotypeLikelihoodsCalculationModel.java @@ -152,15 +152,13 @@ public class IndelGenotypeLikelihoodsCalculationModel extends GenotypeLikelihood // case 1: current insertion is prefix of indel in hash map consensusIndelStrings.put(s,cnt+1); foundKey = true; - break; - } + } else if (indelString.startsWith(s)) { // case 2: indel stored in hash table is prefix of current insertion // In this case, new bases are new key. consensusIndelStrings.remove(s); consensusIndelStrings.put(indelString,cnt+1); foundKey = true; - break; } } if (!foundKey) @@ -176,8 +174,7 @@ public class IndelGenotypeLikelihoodsCalculationModel extends GenotypeLikelihood // case 1: current insertion is suffix of indel in hash map consensusIndelStrings.put(s,cnt+1); foundKey = true; - break; - } + } else if (indelString.endsWith(s)) { // case 2: indel stored in hash table is suffix of current insertion // In this case, new bases are new key. @@ -185,7 +182,6 @@ public class IndelGenotypeLikelihoodsCalculationModel extends GenotypeLikelihood consensusIndelStrings.remove(s); consensusIndelStrings.put(indelString,cnt+1); foundKey = true; - break; } } if (!foundKey) @@ -233,9 +229,7 @@ public class IndelGenotypeLikelihoodsCalculationModel extends GenotypeLikelihood maxAlleleCnt = curCnt; bestAltAllele = s; } -// if (DEBUG) -// System.out.format("Key:%s, number: %d\n",s,consensusIndelStrings.get(s) ); - } //gdebug- + } if (maxAlleleCnt < minIndelCountForGenotyping) return aList;