diff --git a/protected/gatk-protected/src/main/java/org/broadinstitute/sting/gatk/walkers/indels/ReadBin.java b/protected/gatk-protected/src/main/java/org/broadinstitute/sting/gatk/walkers/indels/ReadBin.java index 758256c82..b086568e6 100644 --- a/protected/gatk-protected/src/main/java/org/broadinstitute/sting/gatk/walkers/indels/ReadBin.java +++ b/protected/gatk-protected/src/main/java/org/broadinstitute/sting/gatk/walkers/indels/ReadBin.java @@ -81,7 +81,7 @@ class ReadBin implements HasGenomeLocation { final int readStart = read.getSoftStart(); final int readStop = read.getSoftEnd(); if ( loc == null ) - loc = parser.createGenomeLoc(read.getReferenceName(), readStart, readStop); + loc = parser.createGenomeLoc(read.getReferenceName(), readStart, Math.max(readStop, readStart)); // in case it's all an insertion else if ( readStop > loc.getStop() ) loc = parser.createGenomeLoc(loc.getContig(), loc.getStart(), readStop); diff --git a/protected/gatk-protected/src/test/java/org/broadinstitute/sting/gatk/walkers/indels/ReadBinUnitTest.java b/protected/gatk-protected/src/test/java/org/broadinstitute/sting/gatk/walkers/indels/ReadBinUnitTest.java index bc65f1a48..58dd9be13 100644 --- a/protected/gatk-protected/src/test/java/org/broadinstitute/sting/gatk/walkers/indels/ReadBinUnitTest.java +++ b/protected/gatk-protected/src/test/java/org/broadinstitute/sting/gatk/walkers/indels/ReadBinUnitTest.java @@ -81,6 +81,7 @@ public class ReadBinUnitTest { {"20S80M", 80}, {"80M20S", 1}, {"20S60M20S", 50}, + {"50I", 60}, {"100M", 500} }; } @@ -94,7 +95,7 @@ public class ReadBinUnitTest { @Test(enabled = true, dataProvider = "reads") public void testAddingReads(String cigarString, int alignmentStart) { final GATKSAMRecord read = createReadAndAddToBin(cigarString, alignmentStart); - final GenomeLoc readLoc = parser.createGenomeLoc(read.getReferenceName(), read.getReferenceIndex(), read.getSoftStart(), read.getSoftEnd()); + final GenomeLoc readLoc = parser.createGenomeLoc(read.getReferenceName(), read.getReferenceIndex(), read.getSoftStart(), Math.max(read.getSoftStart(), read.getSoftEnd())); Assert.assertEquals(readBin.getLocation(), readLoc); readBin.clear(); }