From 69652e08c64762b2e114cbb8ffafd6efb8e89488 Mon Sep 17 00:00:00 2001 From: ebanks Date: Tue, 12 Oct 2010 14:46:21 +0000 Subject: [PATCH] Bug fix for reads that completely fall within an insertion: the I cigar string element was 1 base too long. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@4482 348d0f76-0448-11de-a6fe-93d51630548a --- .../sting/gatk/walkers/indels/IndelRealigner.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java b/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java index f497d8dd1..c30e6e112 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java @@ -923,7 +923,11 @@ public class IndelRealigner extends ReadWalker { if ( indelCE.getOperator() == CigarOperator.I ) { // for reads that end in an insertion if ( myPosOnAlt + aRead.getReadLength() < endOfFirstBlock + indelCE.getLength() ) { - readCigar.add(new CigarElement(myPosOnAlt + aRead.getReadLength() - endOfFirstBlock, CigarOperator.I)); + int partialInsertionLength = myPosOnAlt + aRead.getReadLength() - endOfFirstBlock; + // if we also started inside the insertion, then we need to modify the length by 1 base + if ( !sawAlignmentStart ) + partialInsertionLength--; + readCigar.add(new CigarElement(partialInsertionLength, CigarOperator.I)); aRead.setCigar(readCigar); return true; }