From be8740b00da5291127287052f5c3be43b05d6958 Mon Sep 17 00:00:00 2001 From: ebanks Date: Sun, 4 Jul 2010 17:26:38 +0000 Subject: [PATCH] Another edge case in left alignment for indels: deal with cases when insertions are ambiguously placed at ends of reads git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3715 348d0f76-0448-11de-a6fe-93d51630548a --- .../broadinstitute/sting/utils/sam/AlignmentUtils.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/java/src/org/broadinstitute/sting/utils/sam/AlignmentUtils.java b/java/src/org/broadinstitute/sting/utils/sam/AlignmentUtils.java index 121a334a3..c3d16d502 100644 --- a/java/src/org/broadinstitute/sting/utils/sam/AlignmentUtils.java +++ b/java/src/org/broadinstitute/sting/utils/sam/AlignmentUtils.java @@ -401,8 +401,12 @@ public class AlignmentUtils { CigarElement ce = cigar.getCigarElement(indexOfIndel-1); elements.add(new CigarElement(ce.getLength()-1, ce.getOperator())); elements.add(cigar.getCigarElement(indexOfIndel)); - ce = cigar.getCigarElement(indexOfIndel+1); - elements.add(new CigarElement(ce.getLength()+1, ce.getOperator())); + if ( indexOfIndel+1 < cigar.numCigarElements() ) { + ce = cigar.getCigarElement(indexOfIndel+1); + elements.add(new CigarElement(ce.getLength()+1, ce.getOperator())); + } else { + elements.add(new CigarElement(1, CigarOperator.M)); + } // get the last few elements for ( int i = indexOfIndel + 2; i < cigar.numCigarElements(); i++)