PGx CN: scan-date batch warning (PCN-006), CN-consistent BAF evidence (PCN-010, --bafs-in-cn),

noise-outlier exclusion + robustness test (PCN-017/EDGE-026), platform from the CSV manifest (CLI-032)

Also: star-allele calls are checked for one manifest/build per run (PGX-011), duplications at the CN cap are
named xN (PGX-022), and tandem names attach supporting variants to their full copy.
This commit is contained in:
kemal committed 2026-09-29 17:11:34 +01:00
1 parent e1cfb3dfd0
commit 63d2cc56c8
8 files changed
+216 -25

No files matched your search

+1
View File
@@ -46,6 +46,7 @@ Generated from `src/simurg/core/errors.py` — do not edit by hand.
| `E_PGX_CN_FAILED` | error | PGx CN calling failed for the sample | PCN-002 |
| `E_PGX_CN_MISSING` | error | A sample has no PGx CN VCF (give --no-cn to run without) | PGX-011 |
| `E_PGX_GUIDELINE` | error | Guideline tables not present in the PGx DB | PGX-025 |
| `E_PGX_PLATFORM_UNKNOWN` | error | PGx CN platform (LCG/EX) unknown: give --csv or --platform | CLI-032 |
| `E_PGX_SOURCE` | error | PGx source tables missing; run scripts/pgx/fetch_sources.sh | PGX-001 |
| `E_PGX_TRAIN_TOO_SMALL` | error | Too few (passing) samples to train a PGx CN model | PCN-005 |
| `E_PGX_VCF_UNINDEXED` | error | SNV VCFs for PGx must be bgzipped and indexed | PGX-011 |
+13
View File
@@ -39,6 +39,19 @@ literature ≈ 0.4–0.5). Details: `V2_pgx_cn_demo36.json`.
* PCN-017 target (≥ 95 % per region) is met for GSTM1, UGT2B17, SULT1A1, CYP2A6.exon.1; not (yet) shown for the
CYP2D6 sub-regions.
## Additions
* PCN-006: a warning when the batch's IDAT scan dates span more than 14 days (no sample-sheet input in `pgx
copy-number call`, so the lot/batch-column check does not apply).
* PCN-010: `pgx_cn_baf_evidence.tsv` — per region the log-likelihood of CN 0 … 5 from the informative SNP BAFs
(binomial weights from the training cohort's B-allele frequency); `--bafs-in-cn` adds it to the CN posterior
(experimental, off by default). On the demo it agrees poorly with the LRR calls (e.g. GSTM1 2/36): the SNPs in
these regions do not separate the CN states here, so it stays informational.
* PCN-009 / EDGE-026: training excludes samples whose genome-wide level **or** noise is an outlier (robust |z| > 5);
`test_outlier_robustness` injects 10 % noisy, shifted arrays and requires ≥ 99 % unchanged calls for the others.
* CLI-032: the platform (LCG/EX) comes from the CSV manifest's `Assay Format` (`--csv`), or `--platform`; the demo
model records `EX`.
## Caveats (K-028)
* Trained and evaluated on the same 30 individuals (the spec requires ≥ 96 training samples; the priors were