Filters API

Advanced Filtering System for VarAnnote v1.0.0

Provides comprehensive variant filtering capabilities including: - Quality score filtering - Population frequency thresholds - Clinical significance filters - Gene-based filtering - Consequence type filtering - Custom filter expressions

class varannote.utils.filters.FilterOperator(value)[source]

Bases: Enum

Filter operators

EQUALS = '=='
NOT_EQUALS = '!='
GREATER_THAN = '>'
GREATER_EQUAL = '>='
LESS_THAN = '<'
LESS_EQUAL = '<='
CONTAINS = 'contains'
NOT_CONTAINS = 'not_contains'
IN = 'in'
NOT_IN = 'not_in'
REGEX = 'regex'
IS_NULL = 'is_null'
IS_NOT_NULL = 'is_not_null'
class varannote.utils.filters.ClinicalSignificance(value)[source]

Bases: Enum

Clinical significance categories

PATHOGENIC = 'Pathogenic'
LIKELY_PATHOGENIC = 'Likely_pathogenic'
UNCERTAIN_SIGNIFICANCE = 'Uncertain_significance'
LIKELY_BENIGN = 'Likely_benign'
BENIGN = 'Benign'
CONFLICTING = 'Conflicting'
NOT_PROVIDED = 'Not_provided'
class varannote.utils.filters.FilterRule(field, operator, value, description=None)[source]

Bases: object

Individual filter rule

field: str
operator: FilterOperator
value: Any
description: Optional[str] = None
__init__(field, operator, value, description=None)
class varannote.utils.filters.FilterSet(name, rules, logic='AND', description=None, enabled=True)[source]

Bases: object

Collection of filter rules with logic

name: str
rules: List[FilterRule]
logic: str = 'AND'
description: Optional[str] = None
enabled: bool = True
__init__(name, rules, logic='AND', description=None, enabled=True)
class varannote.utils.filters.VariantFilter[source]

Bases: object

Advanced variant filtering system

Features: - Multiple filter criteria - Logical combinations (AND/OR) - Custom filter expressions - Predefined filter sets - Performance optimization

__init__()[source]

Initialize variant filter

apply_filter(variants, filter_set)[source]

Apply filter set to variants

Parameters:
Return type:

List[Dict[str, Any]]

Returns:

Filtered list of variants

apply_multiple_filters(variants, filter_sets, combine_logic='AND')[source]

Apply multiple filter sets

Parameters:
  • variants (List[Dict[str, Any]]) – List of variant dictionaries

  • filter_sets (List[FilterSet]) – List of filter sets to apply

  • combine_logic (str) – How to combine filter sets (AND/OR)

Return type:

List[Dict[str, Any]]

Returns:

Filtered list of variants

create_quality_filter(min_quality=0.0, max_population_freq=1.0, include_uncertain=True)[source]

Create quality-based filter set

Return type:

FilterSet

create_clinical_filter(significance_levels=None, exclude_benign=False, require_review=False)[source]

Create clinical significance filter set

Return type:

FilterSet

create_gene_filter(gene_list=None, gene_types=None, exclude_intergenic=True)[source]

Create gene-based filter set

Return type:

FilterSet

create_consequence_filter(consequence_types=None, severity_threshold='moderate')[source]

Create consequence-based filter set

Return type:

FilterSet

create_custom_filter(expression)[source]

Create custom filter from expression

Parameters:

expression (str) – Filter expression (e.g., “quality_score > 0.8 AND population_frequency < 0.01”)

Return type:

FilterSet

Returns:

FilterSet object

get_predefined_filter(name)[source]

Get predefined filter set by name

Return type:

Optional[FilterSet]

list_predefined_filters()[source]

List available predefined filter names

Return type:

List[str]

get_filter_statistics(variants, filter_set)[source]

Get statistics about filter application

Return type:

Dict[str, Any]

varannote.utils.filters.get_variant_filter()[source]

Get global variant filter instance

Return type:

VariantFilter

varannote.utils.filters.apply_quality_filter(variants, min_quality=0.0, max_population_freq=1.0)[source]

Apply quality filter to variants

Return type:

List[Dict[str, Any]]

varannote.utils.filters.apply_clinical_filter(variants, significance_levels=None)[source]

Apply clinical significance filter to variants

Return type:

List[Dict[str, Any]]

varannote.utils.filters.apply_predefined_filter(variants, filter_name)[source]

Apply predefined filter to variants

Return type:

List[Dict[str, Any]]