Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/research/dead-ends.md
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ Artifacts: `data/enzymes/ugt_ivive_sf.json` (all-1.0 audited registry), `src/sis
- **Hierarchical multi-assay target-denoising** — data fatal: of 5,338 unique CLint compounds **exactly 1** has cross-source measurements (field max ~50) → Dawid-Skene unidentifiable. Mechanism also wrong: Bowman & Benet 2019 (our own cited source) shows interlab variance is *systematic per-protocol bias*, not random noise — averaging averages bias.
- **Calibrated-CLint-uncertainty → meta *routing*** — the inverse-variance mechanism already ran: DE-26 M7 Local-BMA **+0.082 worse**, M9 +0.014 worse. Only the *PI-recalibration* half survives (touches the interval, not the point estimate → cannot trip co-calibration), and only for *coverage/UQ*, not point-AAFE. CLint-CV ranks |Cmax fold-error| weakly (SRCC≈0.16).
- **Per-subclass measured-input routing (aggregate)** — the ML track is `predict_cmax(smiles, dose)`, **structurally blind to measured ADME**, so the strongest meta track (3.01) is frozen and the shipped measured "≈11% gain" is *engine-only* and never propagates to the meta headline. Capability already shipped; the "targeted-selection" wrapper adds nothing testable.
- **+BSA / albumin-mediated PSu,inf (OATP)** — *keep as correctness only, not a lever*: a real primary-literature mechanistic fix (Li/Benet 2020, ~1.9–2.0 fold, no scaling) but **inert** — touches 1 holdout drug (pravastatin, inviolable) and 0 prospective → ΔMeta≈0.000. Ships under correctness-over-benchmark (spec `2026-06-04-oatp-ecm-reanchor-design.md`).
- **+BSA / albumin-mediated PSu,inf (OATP)** — *keep as correctness only, not a lever*: a real primary-literature mechanistic fix (Li/Benet 2020, ~1.9–2.0 fold, no scaling) but **inert** — touches 1 holdout drug (pravastatin, inviolable) and 0 prospective → ΔMeta≈0.000. Ships under correctness-over-benchmark (spec `2026-06-04-oatp-ecm-reanchor-design.md`). **Status 2026-07-06:** the abundance re-anchor (off holdout pravastatin → non-holdout pitavastatin) and the auto-ECM xfail closure shipped (statin FE-gates green, #103); the **+BSA PS reparameterization itself is formally DEFERRED as data-blocked** — the per-substrate PSu,inf(+BSA)/Kp values live only in the paywalled Li/Benet 2020 primary source (AAPS J; not to be fabricated), and even implemented it is near-zero-*observable* (the abundance re-anchors to pitavastatin, so only *relative* statin PS shifts; pravastatin stays validation-only) on top of headline-inert. Re-open only if the primary-source table becomes available.
- **Structure→F as engine prior/anchor** — collides DE-28 (repo's own structure→F predictor = scaffold-CV R²=−0.09; the external "Q²=0.58" is the optimistic/AD-filtered tail) + DE-43 damping + circularity (engine E and structure→F are both functions of the same SMILES → no orthogonal information = DE-23 in F clothing).

**Why the whole class fails (unifying):** CLint enters the pipeline **only through the engine track**, which the fixed-weight meta damps to ~18% pass-through (DE-43) under r>0.986 track co-calibration (DE-26). So any CLint improvement *in isolation* either re-learns the existing weights (null) or breaks co-calibration (regression) — the pattern of 18+ prior reverts. The floor is two floors (DE-14 target-noise + mechanistic transporter–enzyme-interplay IVIVE), neither reachable from the CLint side.
Expand Down
27 changes: 27 additions & 0 deletions docs/research/experiment-log.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,33 @@ Reverse-chronological. The project README carries only the **current** headline

---

## 2026-07-06 — OATP1B1 ECM: closed the FLUX-1 auto-ECM xfail; +BSA PSu,inf formally deferred (data-blocked)

A 3-agent investigation of "the one un-foreclosed accuracy lever" (diagnosis §9 — the +BSA /
albumin-mediated PSu,inf OATP correction, Li/Benet 2020) found the re-anchor already shipped and
the lever headline-inert, and closed its last test loose end:

- **Re-anchor already done** (#66, 2026-06-04): OATP1B1 abundance 5.0e5 → 1.3e5, calibrated on
pitavastatin (non-holdout), pravastatin demoted to validation-only (Invariant #5 restored).
`test_oatp_ecm_statins[pravastatin, pitavastatin]` were already un-xfailed and passing.
- **Closed the last loose end (#103):** `test_predict_auto_ecm.py` still pinned two auto-ECM Cmax
values (0.0294 / 0.00116) computed under the old 5.0e5 abundance — 53% / 90% stale under the live
1.3e5, so both tests were xfailed. Their purpose is mechanical (auto-activation fires, warning
emitted), and Cmax accuracy is already guarded by the sibling `test_oatp_ecm_statins.py`, so the
fragile exact pins were replaced with that sibling's **stack-robust fold-error gate** (pravastatin
FE<3.0, pitavastatin FE<3.2) and un-xfailed. Verified public-clone deterministic: pravastatin Cmax
0.0450 (FE 1.00), pitavastatin 0.0022 (FE 1.58); all 4 tests pass strict.
- **+BSA PSu,inf formally deferred (DE-44):** the mechanistic upgrade (replace `hepatic_ecm.json`
seed PS midpoints with Li/Benet 2020 +BSA-derived PSu,inf, then re-derive abundance) is
**data-blocked** — the per-substrate PSu,inf/Kp values are in the paywalled AAPS J primary source
([DOI](https://doi.org/10.1208/s12248-020-00528-y)), not to be fabricated — and near-zero-observable
(the abundance re-anchor absorbs the PS change; only *relative* statin shifts; pravastatin is
validation-only) on top of headline-inert. Deferred until the primary-source table is available.
Comment on lines +29 to +34

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update the roadmap diagnosis when deferring the lever

This new entry formally defers the diagnosis §9 +BSA/OATP lever, but docs/research/diagnosis.md:101 still tells readers it is “the one un-foreclosed accuracy lever” and maps it to the FLUX-1 statin re-anchor. For anyone starting from the diagnosis/README roadmap after this commit, the project still presents the deferred, data-blocked work as active and actionable, so please update that section to match the DE-44 deferral status.

Useful? React with 👍 / 👎.


No headline change (2.743). The engine's OATP1B1 ECM is correct and tested; the residual is
provenance (seed vs +BSA PS), not accuracy — a third correctness-not-accuracy finding this cycle,
after the RBP honest-1.0 fix and the prospective re-score.

## 2026-07-05 — Prospective N=28 re-scored on the current engine: FLUX-1 does not improve OOD Cmax (DE-54)

Re-ran the 2026-06-01 public-clone prospective set (28 single-agent oral SM 2024-2025 FDA NMEs)
Expand Down