Initial commit
This commit is contained in:
35
src/genomic_consultant/orchestration/workflows.py
Normal file
35
src/genomic_consultant/orchestration/workflows.py
Normal file
@@ -0,0 +1,35 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from typing import List
|
||||
|
||||
from genomic_consultant.acmg.tagger import ACMGConfig, tag_variant
|
||||
from genomic_consultant.panels.panels import GenePanel
|
||||
from genomic_consultant.store.query import GenomicStore
|
||||
from genomic_consultant.utils.models import FilterConfig, SuggestedClassification, Variant
|
||||
|
||||
|
||||
@dataclass
|
||||
class PanelVariantResult:
|
||||
variant: Variant
|
||||
acmg: SuggestedClassification
|
||||
|
||||
|
||||
@dataclass
|
||||
class PanelAnalysisResult:
|
||||
individual_id: str
|
||||
panel: GenePanel
|
||||
variants: List[PanelVariantResult]
|
||||
|
||||
|
||||
def run_panel_variant_review(
|
||||
individual_id: str,
|
||||
panel: GenePanel,
|
||||
store: GenomicStore,
|
||||
acmg_config: ACMGConfig,
|
||||
filters: FilterConfig | None = None,
|
||||
) -> PanelAnalysisResult:
|
||||
"""Query variants for a panel and attach ACMG evidence suggestions."""
|
||||
variants = store.get_variants_by_gene(individual_id=individual_id, genes=panel.genes, filters=filters)
|
||||
enriched = [PanelVariantResult(variant=v, acmg=tag_variant(v, acmg_config)) for v in variants]
|
||||
return PanelAnalysisResult(individual_id=individual_id, panel=panel, variants=enriched)
|
||||
Reference in New Issue
Block a user