PGx: all CPIC gene kinds — G6PD, variant-based, HLA tags, *0 CN genes (PGX-006/007/021)
ci / test (3.12) (push) Failing after 9s
ci / test (3.13) (push) Failing after 11s

- DB build resolves the PGX-007 tag variants from the manifest's probes; coverage over all gene kinds.
- Variant-based genes reported per variant (rs.. REF/ALT | Reference) with the CPIC lowest-activity diplotype;
  tagging genes as positive/negative with the population caveat; GSTM1/GSTT1/UGT2B17 *0 from targeted CN.
- Case-insensitive phenotype keys (MT-RNR1). GeT-RM check extended to VKORC1 and the CN genes:
  131/144 gene calls (docs/validation/V2_pgx_star.md).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01814GKVzZVL3FuF3DeiZXhv
This commit is contained in:
kemalandClaude Opus 5.5 committed 2026-09-29 16:24:33 +01:00
1 parent 4dafce3f18
commit 58dbd8f514
10 files changed
+336 -23

No files matched your search

+6
View File
@@ -97,6 +97,12 @@ def run_phenotype(o: PhenoOptions, rep: Reporter) -> int:
res = None
else:
res, per = gene_phenotype(t, feas)
if g.get("call_type") == "tagging_variant": # PGX-007: the CPIC result is the tag status itself
from simurg.pgx.phenotype import PhenotypeResult
res, per = PhenotypeResult(g["genotype"], None), []
elif g.get("call_type") == "copy_number":
res, per = None, []
flags = list(g.get("flags", [])) + (res.flags if res else [])
top = g["candidates"][0] if g["candidates"] else {}
top_alleles = top.get("alleles", [])