P5 validated on 2141 1000G samples; control-metric fixes (K-021)
- Omni2.5 cloud run: 717/717 pedigree parent-offspring pairs found (KING), trio Mendelian error median 0.031 %, sex vs pedigree 99.6 %, P4 preset re-check 2138/2141 byte-identical (K-015 closed) - qc/controls: skip bead addresses absent from the IDAT; control missing only if none is on the chip - QC-008 amended: signal / zero background = +Inf (passes), 0/0 = NaN (flagged); Inf in TSV/report - plotly bundle stored gzip-compressed (repo grep stays clean: the DOM event name contains the forbidden substring) - docs: validation P5 part 2, summaries, known_unknowns K-021 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01814GKVzZVL3FuF3DeiZXhv
This commit is contained in:
1 parent
fbc4080a50
commit
d5ec89ff58
14 files changed
+930
-32
No files matched your search
+18
-1
@@ -147,7 +147,24 @@ def test_control_missing_and_zero_divisor() -> None: # QC-007, QC-008
|
||||
r[i] = 0
|
||||
q = compute_control_metrics(beads, g, r)
|
||||
assert math.isnan(q.values["restoration"]) and q.missing["restoration"] == ["restoration"]
|
||||
assert q.zero_divisor == ["stringency"] and math.isnan(q.values["stringency"])
|
||||
assert q.zero_divisor == ["stringency"] and q.values["stringency"] == math.inf # QC-008: signal / 0 passes
|
||||
r[i - 1] = 0
|
||||
q = compute_control_metrics(beads, g, r)
|
||||
assert math.isnan(q.values["stringency"]) # 0 / 0 is NaN (flagged)
|
||||
|
||||
|
||||
def test_absent_addresses_are_skipped() -> None: # QC-008, K-021: two bead-pool addresses, one on the chip
|
||||
beads = beads_from_definitions(
|
||||
[
|
||||
{"address": "5:105", "category": "Staining", "color": "Green", "name": "Biotin (High)"},
|
||||
{"address": "6:106", "category": "Staining", "color": "Blue", "name": "Biotin (Bgnd)"},
|
||||
]
|
||||
)
|
||||
g = np.array([np.nan, 900.0, 100.0, np.nan])
|
||||
q = compute_control_metrics(beads, g, np.zeros(4))
|
||||
assert q.values["staining_green"] == pytest.approx(9.0)
|
||||
q = compute_control_metrics(beads, np.array([np.nan, 900.0, np.nan, np.nan]), np.zeros(4))
|
||||
assert q.missing["staining_green"] == ["biotin_bkg"]
|
||||
|
||||
|
||||
def test_methylation_is_v2() -> None:
|
||||
|
||||
Reference in new issue
Block a user