From f1189bac5a7332d24d7b0cfbaa253cc72e20d386 Mon Sep 17 00:00:00 2001 From: ebanks Date: Wed, 14 Apr 2010 16:58:55 +0000 Subject: [PATCH] Bug fix: final map call wasn't being triggered (because we returned when ref==null before applying update0) git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3168 348d0f76-0448-11de-a6fe-93d51630548a --- .../walkers/varianteval2/CountVariants.java | 4 +--- .../walkers/varianteval2/VariantEval2Walker.java | 15 +++++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/varianteval2/CountVariants.java b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/varianteval2/CountVariants.java index f707e8479..139c16441 100755 --- a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/varianteval2/CountVariants.java +++ b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/varianteval2/CountVariants.java @@ -9,8 +9,6 @@ import org.broadinstitute.sting.playground.utils.report.tags.Analysis; import org.broadinstitute.sting.playground.utils.report.tags.DataPoint; import org.broadinstitute.sting.utils.StingException; -import java.util.List; -import java.util.Arrays; @Analysis(name = "Count Variants", description = "Counts different classes of variants in the sample") public class CountVariants extends VariantEvaluator { @@ -91,7 +89,7 @@ public class CountVariants extends VariantEvaluator { } public void update0(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { - nProcessedLoci += context.getSkippedBases() + 1; + nProcessedLoci += context.getSkippedBases() + (ref == null ? 0 : 1); } public String update1(VariantContext vc1, RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { diff --git a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/varianteval2/VariantEval2Walker.java b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/varianteval2/VariantEval2Walker.java index 483007253..02f7c4dd9 100755 --- a/java/src/org/broadinstitute/sting/oneoffprojects/walkers/varianteval2/VariantEval2Walker.java +++ b/java/src/org/broadinstitute/sting/oneoffprojects/walkers/varianteval2/VariantEval2Walker.java @@ -405,9 +405,6 @@ public class VariantEval2Walker extends RodWalker { public Integer map(RefMetaDataTracker tracker, ReferenceContext ref, AlignmentContext context) { //System.out.printf("map at %s with %d skipped%n", context.getLocation(), context.getSkippedBases()); - if ( ref == null ) - return 0; - Map vcs = getVariantContexts(tracker, context); //Collection comps = getCompVariantContexts(tracker, context); @@ -425,6 +422,10 @@ public class VariantEval2Walker extends RodWalker { // we always call update0 in case the evaluation tracks things like number of bases covered evaluation.update0(tracker, ref, context); + // the other updateN methods don't see a null context + if ( tracker == null ) + continue; + // now call the single or paired update function switch ( evaluation.getComparisonOrder() ) { case 1: @@ -444,7 +445,7 @@ public class VariantEval2Walker extends RodWalker { } } - if ( group.enableInterestingSiteCaptures && captureInterestingSitesOfEvalSet(group) ) + if ( tracker != null && group.enableInterestingSiteCaptures && captureInterestingSitesOfEvalSet(group) ) writeInterestingSite(interestingReasons, vc, ref.getBase()); } @@ -536,8 +537,10 @@ public class VariantEval2Walker extends RodWalker { // todo -- we need to deal with dbSNP where there can be multiple records at the same start site. A potential solution is to // todo -- allow the variant evaluation to specify the type of variants it wants to see and only take the first such record at a site Map bindings = new HashMap(); - bindVariantContexts(bindings, evalNames, tracker, context, false); - bindVariantContexts(bindings, compNames, tracker, context, true); + if ( tracker != null ) { + bindVariantContexts(bindings, evalNames, tracker, context, false); + bindVariantContexts(bindings, compNames, tracker, context, true); + } return bindings; }