From 6b8bed34d01856b4ae4fb45154b1f9fd3c9dba64 Mon Sep 17 00:00:00 2001 From: Guillermo del Angel Date: Sat, 30 Mar 2013 19:05:04 -0400 Subject: [PATCH] Big bad bug fix: feature added to LeftAlignAndTrimVariants to left align multiallelic records didn't work. -- Corrected logic to pick biallelic vc to left align. -- Added integration test to make sure this feature is tested and feature to trim bases is also tested. --- ...ftAlignAndTrimVariantsIntegrationTest.java | 10 ++++++++++ .../LeftAlignAndTrimVariants.java | 20 +++++++++++-------- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/protected/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignAndTrimVariantsIntegrationTest.java b/protected/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignAndTrimVariantsIntegrationTest.java index 0b3d9c930..a7d32d43b 100644 --- a/protected/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignAndTrimVariantsIntegrationTest.java +++ b/protected/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignAndTrimVariantsIntegrationTest.java @@ -64,4 +64,14 @@ public class LeftAlignAndTrimVariantsIntegrationTest extends WalkerTest { Arrays.asList("bcf05f56adbb32a47b6d6b27b327d5c2")); executeTest("test left alignment", spec); } + + @Test + public void testLeftAlignmentWithTrimmingAndMultialleliecs() { + WalkerTestSpec spec = new WalkerTestSpec( + "-T LeftAlignAndTrimVariants -o %s -R " + b37KGReference + " --variant:vcf " + privateTestDir + "forHardLeftAlignVariantsTest.vcf --no_cmdline_in_header -trim -split", + 1, + Arrays.asList("4ae03954f8bd66e73fd005c49ea301db")); + executeTest("test left alignment with trimming and hard multiple alleles", spec); + + } } diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignAndTrimVariants.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignAndTrimVariants.java index 25e3e9857..9168d17f0 100644 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignAndTrimVariants.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignAndTrimVariants.java @@ -138,18 +138,22 @@ public class LeftAlignAndTrimVariants extends RodWalker { if (splitMultiallelics) { final List vcList = GATKVariantContextUtils.splitVariantContextToBiallelics( vc); for (final VariantContext biallelicVC: vcList) { - final VariantContext v = (trimAlleles ? GATKVariantContextUtils.trimAlleles(vc,true,true):biallelicVC); + final VariantContext v = (trimAlleles ? GATKVariantContextUtils.trimAlleles(biallelicVC,true,true):biallelicVC); result = alignAndWrite(v, ref); - + writer.add(result.first); + changedSites += result.second; } } - else if (trimAlleles) - result = alignAndWrite(GATKVariantContextUtils.trimAlleles(vc,true,true), ref); - else - result = alignAndWrite(vc,ref); + else { + if (trimAlleles) + result = alignAndWrite(GATKVariantContextUtils.trimAlleles(vc,true,true), ref); + else + result = alignAndWrite(vc,ref); + writer.add(result.first); + changedSites += result.second; + + } - writer.add(result.first); - changedSites += result.second; } return changedSites;