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; }