Adding VariantContext.hasAlternateAllele functionality

This commit is contained in:
Eric Banks 2012-04-24 11:07:46 -04:00
parent 66f3315548
commit 74ad008163
1 changed files with 16 additions and 4 deletions

View File

@ -592,15 +592,27 @@ public class VariantContext implements Feature { // to enable tribble intergrati
/** /**
* @return True if this context contains Allele allele, or false otherwise * @return True if this context contains Allele allele, or false otherwise
*/ */
public boolean hasAllele(Allele allele) { public boolean hasAllele(final Allele allele) {
return hasAllele(allele, false); return hasAllele(allele, false, getAlleles());
} }
public boolean hasAllele(Allele allele, boolean ignoreRefState) { public boolean hasAllele(final Allele allele, final boolean ignoreRefState) {
return hasAllele(allele, ignoreRefState, getAlleles());
}
public boolean hasAlternateAllele(final Allele allele) {
return hasAllele(allele, false, getAlternateAlleles());
}
public boolean hasAlternateAllele(final Allele allele, final boolean ignoreRefState) {
return hasAllele(allele, ignoreRefState, getAlternateAlleles());
}
private boolean hasAllele(final Allele allele, final boolean ignoreRefState, final List<Allele> allelesToConsider) {
if ( allele == REF || allele == ALT ) // optimization for cached cases if ( allele == REF || allele == ALT ) // optimization for cached cases
return true; return true;
for ( Allele a : getAlleles() ) { for ( Allele a : allelesToConsider ) {
if ( a.equals(allele, ignoreRefState) ) if ( a.equals(allele, ignoreRefState) )
return true; return true;
} }