29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
from genomic_consultant.store.query import GenomicStore
|
|
from genomic_consultant.utils.models import FilterConfig, Variant
|
|
|
|
|
|
def test_filter_by_gene_and_af():
|
|
store = GenomicStore(
|
|
variants=[
|
|
Variant(chrom="1", pos=1, ref="A", alt="T", gene="GENE1", allele_frequency=0.02),
|
|
Variant(chrom="1", pos=2, ref="G", alt="C", gene="GENE2", allele_frequency=0.0001),
|
|
]
|
|
)
|
|
res = store.get_variants_by_gene("ind", ["GENE2"], filters=FilterConfig(max_af=0.001))
|
|
assert len(res) == 1
|
|
assert res[0].gene == "GENE2"
|
|
|
|
|
|
def test_consequence_include_exclude():
|
|
store = GenomicStore(
|
|
variants=[
|
|
Variant(chrom="1", pos=1, ref="A", alt="T", gene="GENE1", consequence="missense_variant"),
|
|
Variant(chrom="1", pos=2, ref="G", alt="C", gene="GENE1", consequence="synonymous_variant"),
|
|
]
|
|
)
|
|
res = store.get_variants_by_gene(
|
|
"ind", ["GENE1"], filters=FilterConfig(consequence_includes=["missense"], consequence_excludes=["synonymous"])
|
|
)
|
|
assert len(res) == 1
|
|
assert res[0].consequence == "missense_variant"
|