From 9a60e72364724a2f4d27fd14dfee8e86c3ded76c Mon Sep 17 00:00:00 2001 From: delangel Date: Fri, 29 Oct 2010 02:03:36 +0000 Subject: [PATCH] Trivial change to LeftAlignVariants: make walker return number of aligned variants on map(), and print out the # of aligned variants at the end of the traversal. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@4595 348d0f76-0448-11de-a6fe-93d51630548a --- .../variantutils/LeftAlignVariants.java | 37 ++++++++++++------- 1 file changed, 24 insertions(+), 13 deletions(-) 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 e8c6dd566..851bf98fa 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignVariants.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LeftAlignVariants.java @@ -76,26 +76,35 @@ public class LeftAlignVariants extends RodWalker { return 0; Collection VCs = tracker.getVariantContexts(ref, "variant", null, context.getLocation(), true, false); - for ( VariantContext vc : VCs ) - alignAndWrite(vc, ref); - return 0; + int changedSites = 0; + for ( VariantContext vc : VCs ) + changedSites += alignAndWrite(vc, ref); + + return changedSites; } public Integer reduceInit() { return 0; } - public Integer reduce(Integer value, Integer sum) { return 0; } - - public void onTraversalDone(Integer result) {} - - private void alignAndWrite(VariantContext vc, final ReferenceContext ref) { - if ( vc.isBiallelic() && vc.isIndel() ) - writeLeftAlignedIndel(vc, ref); - else - writer.add(vc, ref.getBase()); + public Integer reduce(Integer value, Integer sum) { + return sum + value; } - private void writeLeftAlignedIndel(final VariantContext vc, final ReferenceContext ref) { + public void onTraversalDone(Integer result) { + System.out.println(result + " variants were aligned"); + } + + + private int alignAndWrite(VariantContext vc, final ReferenceContext ref) { + if ( vc.isBiallelic() && vc.isIndel() ) + return writeLeftAlignedIndel(vc, ref); + else { + writer.add(vc, ref.getBase()); + return 0; + } + } + + private int writeLeftAlignedIndel(final VariantContext vc, final ReferenceContext ref) { final byte[] refSeq = ref.getBases(); // get the indel length @@ -133,8 +142,10 @@ public class LeftAlignVariants extends RodWalker { newVC = updateAllele(newVC, newAllele); writer.add(newVC, refSeq[indelIndex-1]); + return 1; } else { writer.add(vc, ref.getBase()); + return 0; } }