From d6277b70d8e860ac4ef37d7438687480e79eb111 Mon Sep 17 00:00:00 2001 From: Eric Banks Date: Tue, 24 Apr 2012 11:32:28 -0400 Subject: [PATCH] Forgot to consider the optimized case in hasAllele --- .../sting/utils/variantcontext/VariantContext.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContext.java b/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContext.java index a7956ec2d..39b351e50 100755 --- a/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContext.java +++ b/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContext.java @@ -593,25 +593,26 @@ public class VariantContext implements Feature { // to enable tribble intergrati * @return True if this context contains Allele allele, or false otherwise */ public boolean hasAllele(final Allele allele) { - return hasAllele(allele, false, getAlleles()); + return hasAllele(allele, false, true); } public boolean hasAllele(final Allele allele, final boolean ignoreRefState) { - return hasAllele(allele, ignoreRefState, getAlleles()); + return hasAllele(allele, ignoreRefState, true); } public boolean hasAlternateAllele(final Allele allele) { - return hasAllele(allele, false, getAlternateAlleles()); + return hasAllele(allele, false, false); } public boolean hasAlternateAllele(final Allele allele, final boolean ignoreRefState) { - return hasAllele(allele, ignoreRefState, getAlternateAlleles()); + return hasAllele(allele, ignoreRefState, false); } - private boolean hasAllele(final Allele allele, final boolean ignoreRefState, final List allelesToConsider) { - if ( allele == REF || allele == ALT ) // optimization for cached cases + private boolean hasAllele(final Allele allele, final boolean ignoreRefState, final boolean considerRefAllele) { + if ( (considerRefAllele && allele == REF) || allele == ALT ) // optimization for cached cases return true; + final List allelesToConsider = considerRefAllele ? getAlleles() : getAlternateAlleles(); for ( Allele a : allelesToConsider ) { if ( a.equals(allele, ignoreRefState) ) return true;