Initial commit

This commit is contained in:
2025-11-28 11:52:04 +08:00
commit f74dc351f7
51 changed files with 2402 additions and 0 deletions

28
tests/test_store.py Normal file
View File

@@ -0,0 +1,28 @@
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"