PGx star alleles: pgx star-allele call (PGX-011..021), probe masks vs 1000G, GeT-RM validation (K-029)
- simurg/pgx/star.py: solver-free diplotype enumeration incl. CN forms (deletion, xN), wildcards, array-equivalence classes, raw_score/score with CPIC frequency priors; calibrated error model (spec PGX-012 amended). - pipeline/pgx_star.py: DB gene models, SNV + PGx CN VCF evidence, masks, diplotype_summary.tsv + pgx_calls.json. - scripts/pgx: derive_masks.py (array vs 1000G 30x over HTTPS, GS calibration), getrm_truth.py, validate_star_getrm.py. - GSA v4 PGx demo vs GeT-RM (16 CEPH): 100/109 gene calls; CYP2D6/2C19/2C9 41/45 (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:
1 parent
bf9fdaa2f3
commit
d91c8ea576
15 files changed
+1168
-5
No files matched your search
@@ -0,0 +1,240 @@
|
||||
{
|
||||
"individuals": 30,
|
||||
"genes": {
|
||||
"CYP2B6": {
|
||||
"n": 14,
|
||||
"top": 12,
|
||||
"equivalent": 12,
|
||||
"not_comparable": 1
|
||||
},
|
||||
"CYP2C19": {
|
||||
"n": 15,
|
||||
"top": 14,
|
||||
"equivalent": 15
|
||||
},
|
||||
"CYP2C9": {
|
||||
"n": 15,
|
||||
"top": 15,
|
||||
"equivalent": 15
|
||||
},
|
||||
"CYP2D6": {
|
||||
"n": 15,
|
||||
"top": 12,
|
||||
"equivalent": 14
|
||||
},
|
||||
"CYP3A5": {
|
||||
"n": 15,
|
||||
"top": 15,
|
||||
"equivalent": 15
|
||||
},
|
||||
"CYP4F2": {
|
||||
"n": 9,
|
||||
"top": 8,
|
||||
"equivalent": 8
|
||||
},
|
||||
"NAT2": {
|
||||
"n": 9,
|
||||
"top": 8,
|
||||
"equivalent": 8
|
||||
},
|
||||
"NUDT15": {
|
||||
"n": 1,
|
||||
"top": 1,
|
||||
"equivalent": 1
|
||||
},
|
||||
"SLCO1B1": {
|
||||
"n": 15,
|
||||
"top": 9,
|
||||
"equivalent": 9
|
||||
},
|
||||
"TPMT": {
|
||||
"n": 16,
|
||||
"top": 15,
|
||||
"equivalent": 15
|
||||
},
|
||||
"UGT1A1": {
|
||||
"n": 9,
|
||||
"top": 0,
|
||||
"equivalent": 1
|
||||
}
|
||||
},
|
||||
"legacy_nomenclature_genes": [
|
||||
"SLCO1B1",
|
||||
"UGT1A1"
|
||||
],
|
||||
"total": {
|
||||
"n": 109,
|
||||
"top": 100,
|
||||
"equivalent": 103
|
||||
},
|
||||
"discordant": [
|
||||
{
|
||||
"individual": "NA12156",
|
||||
"gene": "CYP4F2",
|
||||
"truth": "(*2)/*3",
|
||||
"call": "*1/*3",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA12156",
|
||||
"gene": "SLCO1B1",
|
||||
"truth": "*1/*21",
|
||||
"call": "*1/*37",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA12156",
|
||||
"gene": "UGT1A1",
|
||||
"truth": "*60/*28",
|
||||
"call": "*28/*80",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA12044",
|
||||
"gene": "TPMT",
|
||||
"truth": "*1/*21",
|
||||
"call": "*1/*1",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA07019",
|
||||
"gene": "UGT1A1",
|
||||
"truth": "*1/*60",
|
||||
"call": "*1/*1",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA06991",
|
||||
"gene": "UGT1A1",
|
||||
"truth": "*60/*60",
|
||||
"call": "*1/*1",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA12878",
|
||||
"gene": "CYP2D6",
|
||||
"truth": "*3/(*68)+*4",
|
||||
"call": "*4x2/*1;*4x2/*82",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA12878",
|
||||
"gene": "UGT1A1",
|
||||
"truth": "*60/*28",
|
||||
"call": "*28/*80",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA11993",
|
||||
"gene": "SLCO1B1",
|
||||
"truth": "*1/*17",
|
||||
"call": "*1/*15",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA11993",
|
||||
"gene": "UGT1A1",
|
||||
"truth": "(*28 + *60)/*60",
|
||||
"call": "*28/*80",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA12003",
|
||||
"gene": "UGT1A1",
|
||||
"truth": "*60/*28",
|
||||
"call": "*28/*80",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA07029",
|
||||
"gene": "CYP2B6",
|
||||
"truth": "*6/(*27)",
|
||||
"call": "*1/*6",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA07029",
|
||||
"gene": "CYP2C19",
|
||||
"truth": "*8/*17",
|
||||
"call": "*1/*17",
|
||||
"within_equivalents": true
|
||||
},
|
||||
{
|
||||
"individual": "NA07029",
|
||||
"gene": "UGT1A1",
|
||||
"truth": "*1/*1",
|
||||
"call": "*1/*28",
|
||||
"within_equivalents": true
|
||||
},
|
||||
{
|
||||
"individual": "NA12892",
|
||||
"gene": "CYP2B6",
|
||||
"truth": "*1/*1",
|
||||
"call": "*1/*5",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA11832",
|
||||
"gene": "NAT2",
|
||||
"truth": "*5/(*12)",
|
||||
"call": "*1/*5",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA11832",
|
||||
"gene": "SLCO1B1",
|
||||
"truth": "*1/*1",
|
||||
"call": "*14/*20",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA11832",
|
||||
"gene": "UGT1A1",
|
||||
"truth": "(*28 + *60)/*60",
|
||||
"call": "*28/*80",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA10838",
|
||||
"gene": "CYP2D6",
|
||||
"truth": "*2/*4",
|
||||
"call": "*1/*4;*2/*4",
|
||||
"within_equivalents": true
|
||||
},
|
||||
{
|
||||
"individual": "NA10838",
|
||||
"gene": "SLCO1B1",
|
||||
"truth": "*1/*1",
|
||||
"call": "*1/*14",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA12813",
|
||||
"gene": "CYP2D6",
|
||||
"truth": "*2/*4",
|
||||
"call": "*1/*4;*2/*4",
|
||||
"within_equivalents": true
|
||||
},
|
||||
{
|
||||
"individual": "NA12813",
|
||||
"gene": "SLCO1B1",
|
||||
"truth": "*1/*21",
|
||||
"call": "*1/*20",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA12813",
|
||||
"gene": "UGT1A1",
|
||||
"truth": "(*28 + *60)/(*28 + *60)",
|
||||
"call": "*80/*80",
|
||||
"within_equivalents": false
|
||||
},
|
||||
{
|
||||
"individual": "NA11881",
|
||||
"gene": "SLCO1B1",
|
||||
"truth": "*1/(*15)",
|
||||
"call": "*14/*15",
|
||||
"within_equivalents": false
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user