From 7f0c63865362c938a00897a20f9d30b06a5d2ec9 Mon Sep 17 00:00:00 2001 From: ebanks Date: Tue, 1 Jun 2010 02:07:20 +0000 Subject: [PATCH] Fix for the indel cleaner: I forgot to "unclip" the cigar string (even though the clipped bases were removed) before using it as an alternate consensus in a particular instance. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3468 348d0f76-0448-11de-a6fe-93d51630548a --- .../sting/gatk/walkers/indels/IndelRealigner.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 3c881442a..2a54a7ab8 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java @@ -719,6 +719,7 @@ public class IndelRealigner extends ReadWalker { return null; // create the new consensus + ArrayList elements = new ArrayList(c.numCigarElements()-1); StringBuilder sb = new StringBuilder(); for (int i = 0; i < indexOnRef; i++) sb.append((char)reference[i]); @@ -732,8 +733,9 @@ public class IndelRealigner extends ReadWalker { int elementLength = ce.getLength(); switch( ce.getOperator() ) { case D: - indelCount++; refIdx += elementLength; + indelCount++; + elements.add(ce); break; case M: altIdx += elementLength; @@ -745,6 +747,7 @@ public class IndelRealigner extends ReadWalker { sb.append((char)reference[refIdx+j]); } refIdx += elementLength; + elements.add(new CigarElement(elementLength, CigarOperator.M)); break; case I: for (int j = 0; j < elementLength; j++) { @@ -757,6 +760,7 @@ public class IndelRealigner extends ReadWalker { } altIdx += elementLength; indelCount++; + elements.add(ce); break; case S: default: @@ -771,7 +775,7 @@ public class IndelRealigner extends ReadWalker { sb.append((char)reference[i]); byte[] altConsensus = StringUtil.stringToBytes(sb.toString()); // alternative consensus sequence we just built from the current read - return new Consensus(altConsensus, c, indexOnRef); + return new Consensus(altConsensus, new Cigar(elements), indexOnRef); } // create a Consensus from just the indel string that falls on the reference