From 32a96e3ab3b101a3e9b252a926f69d7a53cb4480 Mon Sep 17 00:00:00 2001 From: Eric Banks Date: Fri, 21 Mar 2014 15:01:34 -0400 Subject: [PATCH] Fix for reads that are all insertions (e.g. 50I) and causing the IndelRealigner to error out. --- .../org/broadinstitute/sting/gatk/walkers/indels/ReadBin.java | 2 +- .../sting/gatk/walkers/indels/ReadBinUnitTest.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) 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(); }