From 337b54136f765a5497b68859adcde0109dff42e8 Mon Sep 17 00:00:00 2001 From: ebanks Date: Fri, 4 Mar 2011 21:00:08 +0000 Subject: [PATCH] 2 fixes. For Mark: when insertions can be partially left-aligned, we were reading off the wrong bases. For GS post: the stored VariantContext.REFERENCE_BASE_FOR_INDEL_KEY needs to be updated when left-aligning because it can change. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@5375 348d0f76-0448-11de-a6fe-93d51630548a --- .../sting/gatk/walkers/variantutils/LeftAlignVariants.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignVariants.java b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignVariants.java index 2054c083d..bb39e2765 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignVariants.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignVariants.java @@ -139,10 +139,15 @@ public class LeftAlignVariants extends RodWalker { int indelIndex = originalIndex-difference; byte[] newBases = new byte[indelLength]; - System.arraycopy(refSeq, indelIndex, newBases, 0, indelLength); + System.arraycopy((vc.isDeletion() ? refSeq : originalIndel), indelIndex, newBases, 0, indelLength); Allele newAllele = Allele.create(newBases, vc.isDeletion()); newVC = updateAllele(newVC, newAllele); + // we need to update the reference base just in case it changed + Map attrs = new HashMap(newVC.getAttributes()); + attrs.put(VariantContext.REFERENCE_BASE_FOR_INDEL_KEY, refSeq[indelIndex-1]); + newVC = VariantContext.modifyAttributes(newVC, attrs); + writer.add(newVC, refSeq[indelIndex-1]); return 1; } else {