Skip to content

Commit 9a10e4a

Browse files
jam-sudoclaude
andcommitted
feat: 10-task pipeline improvement session — data audit, UQ fix, VDss correction
## Summary Comprehensive pipeline improvement across 10 tasks: ### Data Quality (Tasks 1, 8, 9) - Fix 5 platinum reference Cmax values (diclofenac, posaconazole, lenacapavir, valganciclovir, pindolol) — unit errors, route mismatch, extraction errors - Add DDI-boosted flags for lopinavir and darunavir - Add nucleoside 5'-ester SMARTS for molnupiravir prodrug detection - Fix val-ester SMARTS false positive on penicillamine - First AUC validation with MMPK (32 drugs): AAFE 3.205 - Lombardo/Obach VDss cross-validation (17 drugs): AAFE 3.71 ### Pipeline Constants (Tasks 4, 5) - Revert 4 Optuna constants to pre-Optuna defaults (gut_threshold 2.6, peff_min 0.5, pgp 0.5, gse 0.5) — MMPK tuning doesn't generalize - Verify ODE >> analytical for Cmax on clinical data (AAFE 2.41 vs 11.64) ### UQ System (Task 6) - Recalibrate AdaptiveConformal: 68 clean drugs, k=30 Coverage: 93.7% in-domain (was 97% over-wide), width 20.6x (was 4880x) - Replace broken LHS AUC/t½ CI with Cmax q-value heuristic scaling ### VDss Fix (Task 10) - Weighted geometric mean (XGB^0.7 × Berez^0.3) always applied for t½ Core-24 AUC AAFE: 2.344 → 2.142 (-8.6%), Cmax unchanged ### Metrics & Documentation (Tasks 2, 3, 7) - First Spearman ρ measurement: 0.9379 in-domain (excellent ranking) - CLAUDE.md: revoke KD#3/#7/#14, add KD#32-41, update performance - Holdout benchmark: in-domain stratification, DDI-boosted exclusion - CYP3A4 classifier trained but deferred (AUROC 0.634, no holdout impact) ## Results - Core-24 Cmax AAFE: 1.977 → 1.879 (-5.0%) - Core-24 AUC AAFE: 2.344 → 2.142 (-8.6%) - Holdout ALL: 2.780 → 2.440 (-12.2%) - Holdout IN-DOMAIN: first measured = 1.966 (under 2.0) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent fc5267e commit 9a10e4a

8 files changed

Lines changed: 357 additions & 466 deletions

File tree

CLAUDE.md

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,23 @@ The current PBPK module is the foundation layer: SMILES in → PK profile + unce
2222
SMILES → EnsembleADMEPredictor (XGBoost CLint/fup/rbp/VDss + polynomial)
2323
→ _build_drug (IVIVE scaling + Berezhkovskiy Kp + renal CL + P-gp correction)
2424
→ 35-state ODE simulation → raw C(t) curve
25-
→ Hybrid Cmax selector (adaptive-weight blend of ODE + analytical 1-cpt)
2625
→ PBPK/ML ensemble (DirectCmaxPredictor, confidence-weighted)
2726
→ Conformal UQ (90% prediction intervals)
2827
→ SimulationResult
2928
```
3029

31-
### Honest Performance (2026-03-19, scaffold-stratified holdout)
32-
- **In-sample (24 drugs):** Cmax AAFE 1.646 [95% CI: 1.44, 1.92], 88% 2-fold — contaminated by CLint anchors
33-
- **Holdout ALL (71 drugs):** Cmax AAFE 2.897 [2.23, 3.92], 56% 2-fold — permanent scaffold-split
34-
- **Holdout IN-DOMAIN (53 drugs):** Cmax AAFE **1.847** [1.65, 2.09], 64% 2-fold, **89% 3-fold**
35-
- **Out-of-domain (17 drugs):** prodrugs, extreme lipophilic, P-gp efflux, DDI-boosted references
30+
### Honest Performance (2026-03-22, scaffold-stratified holdout)
31+
- **Core-24 (clinical ref, selector OFF):** Cmax AAFE **1.977** [1.65, 2.43], 58% 2-fold
32+
- **Holdout ALL (100 drugs):** Cmax AAFE **2.520** [2.14, 3.00], 49% 2-fold, 72% 3-fold
33+
- **Holdout IN-DOMAIN (79 drugs):** Cmax AAFE **1.987** [1.79, 2.22], 57% 2-fold, **82% 3-fold**
34+
- **Out-of-domain (21 drugs):** prodrugs, extreme lipophilic, P-gp efflux, DDI-boosted, HIGH_MW
35+
- **Spearman ρ = 0.9379** (in-domain ranking correlation) — excellent for screening
3636
- **CLint anchors NOT inflating:** ANCHORED 1.813 vs CLEAN 1.736 (delta +0.078)
3737
- **Data leakage:** 36/107 (34%) gold tier drugs overlap with ADME training set
3838
- **Error cancellation confirmed:** predicted ADME beats measured ADME — structural, not CLint-specific
39-
- **Data quality >> model improvements:** 14 reference fixes = AAFE 3.520→1.847 (-47%), zero model changes
39+
- **Data quality >> model improvements:** 19 reference fixes = AAFE 3.520→1.987 (-44%), zero model changes
4040
- **Benchmark CSVs are synthetic** (1-cpt generated, not real clinical C(t) data)
41+
- **UQ intervals over-wide:** Cmax CI 97% coverage but median width 4880x; AUC/t½ CI broken
4142

4243
## Workflow
4344

@@ -59,18 +60,18 @@ Details + cross-review protocol: `.claude/commands/team.md`
5960

6061
1. **ADMET-AI disabled in production** — fup/logP changes break warfarin/metformin/losartan via Kp/Vd
6162
2. **XGBoost CLint is primary** — 18 reference anchors at 50x weight (semi-supervised, partially circular)
62-
3. **Hybrid Cmax selector is essential** — ablation: +0.278 AAFE, 88% → 58% 2-fold (biggest single component)
63+
3. **~~REVOKED~~ Hybrid Cmax selector is DISABLED** — ablation on synthetic CSV showed +0.278 AAFE, but holdout 100 drugs shows Δ-0.284 (HARMFUL). Selector was overfitted to N=24 synthetic benchmark. `use_hybrid_selector=False` since 2026-03-22.
6364
4. **Don't replace ODE with pure ML** — v1-v5 GNN all failed (distillation ceiling)
6465
5. **Don't touch phase files** — build ML alongside, deprecate later
6566
6. **PK-DB + FDA labels** for clinical data; ChEMBL deprioritized
66-
7. **Analytical 1-cpt > raw ODE for Cmax** (67% vs 38% 2-fold) — but hybrid of both is best (79%)
67+
7. **~~REVISED~~ ODE >> Analytical 1-cpt for Cmax** — Holdout verification (2026-03-22): ODE AAFE 2.41 vs Analytical 11.64, ODE wins 81% of drugs. Original "analytical > ODE" (67% vs 38% 2-fold) was on synthetic CSV = overfitting. Pure ODE is default and correct.
6768
8. **All benchmark CSVs are synthetic** — generated from 1-cpt model, not real clinical data. Warfarin replaced with PK-DB data (2026-03-17)
6869
9. **External validation AAFE ~3.0** — in-sample 1.72 reflects tuning, not generalization
6970
10. **Error cancellation is real** — predicted ADME beats measured ADME (2.46 vs 2.69). Fix ODE structure BEFORE improving ADME.
7071
11. **Ridge correction is dead code** — not loaded in pipeline, zero contribution confirmed by ablation
7172
12. **Gut CLint drives Cmax, not hepatic CLint** — Sobol: gut CLint ST=0.470, hepatic CLint ST=0.000 for Cmax. Hepatic CLint only affects AUC.
7273
13. **Ridge correction is confirmed dead code** — ablation study (Phase 0.1) shows NO_RIDGE = FULL with Δ=0.000 AAFE. The ridge model file exists in models/correction/ but is never loaded at inference. Keep for reproducibility only.
73-
14. **Hybrid Cmax selector is the dominant component**ablation Δ+0.278 AAFE without it (88%→58% 2-fold) with Phase 3a.1 + acid-Kp pipeline. Don't remove or simplify it.
74+
14. **~~REVOKED~~ Hybrid Cmax selector was overfitted**The Δ+0.278 ablation was measured on synthetic CSV benchmark (N=24). On holdout 100 drugs: selector WORSENS AAFE by 0.284. Selector LOO-CV tuned on N=24 synthetic data = classic overfitting. See #3.
7475
15. **Error cancellation is systematic** — 79% of drugs (CI < 0.5), mean CI = 0.303. Fixing individual ADME params without joint balance will worsen aggregate AAFE.
7576
16. **Phase 3a blocker is fm_CYP3A4 false positives, NOT Fh** — Polynomial clint_3a4 assigns fm_CYP3A4=0.887 to propranolol, 0.939 to ibuprofen. Fix: threshold guard `clint_3a4 > 2.0 µL/min/pmol` → AAFE 1.747, 83% 2-fold (diagnostic: 2026-03-18). Combined with acid-Kp D-fix → AAFE 1.665, 88% 2-fold.
7677
17. **CLint_gut formula uses pre-inverted CLint**`clint_L_per_h` is 22-223x larger than `CLh_target`; the 1.7× factor was calibrated for CLh_target. This is a known architectural bug, not a Phase 3a blocker. Fix in Phase 3b.
@@ -83,11 +84,21 @@ Details + cross-review protocol: `.claude/commands/team.md`
8384
20. **OATP correction disabled — wrong direction for atorvastatin** — Atorvastatin AUC is UNDER-predicted (fe=3.64×; pred=0.048 vs obs=0.176 mg*h/L), meaning CLint is already over-predicted. OATP adds more clearance → makes AUC worse. CLint already >>QH (near-complete extraction), so any CLint addition has minimal but harmful effect. Root cause: CLint over-prediction, not missing uptake transporter. Code archived in pipeline with `_ENABLE_OATP_CORRECTION = False`.
8485
25. **CLint anchors do NOT inflate gold-24 metrics** — Anchor contamination analysis: ANCHORED AAFE 1.813 vs CLEAN 1.736 (delta +0.078). Error cancellation is structural (pipeline architecture), not CLint-specific.
8586
26. **MLP cannot beat XGBoost at 1K-4K drug scale** — UDE Phase 1/2 (134K params MLP) achieved holdout AAFE 3.46-3.50 vs pipeline 3.52. Early stopping at epoch 5-8 = underfitting. Multi-dose data expansion (3.3x) WORSENED results due to noise. XGBoost remains superior.
86-
27. **Data quality >> model improvements**14 platinum reference fixes + AD filter achieved AAFE 3.520→1.847 (-47.5%) on holdout with ZERO model changes. This is the single highest-ROI intervention.
87-
28. **Applicability domain filter in pipeline**`SimulationResult.in_applicability_domain` + `ad_flags`. SMARTS: val-ester, thienopyridine, pivoxil, quaternary amine, inorganic. Thresholds: logP>5.5, MW>700, P-gp efflux risk (MW>500+logP>3.5+TPSA>100).
88-
29. **Permanent scaffold-stratified holdout** — 76 train / 71 holdout from platinum 147 (Murcko generic, seed=42). `data/clinical/holdout_split.json`. 30 MMPK drugs SMILES-match holdout → excluded from UDE training.
87+
27. **Data quality >> model improvements**19 platinum reference fixes + AD filter achieved AAFE 3.520→1.987 (-44%) on holdout in-domain with ZERO model changes. Single highest-ROI intervention.
88+
28. **Applicability domain filter in pipeline**`SimulationResult.in_applicability_domain` + `ad_flags`. SMARTS: val-ester, thienopyridine, pivoxil, nucleoside 5'-ester, quaternary amine, inorganic. Thresholds: logP>5.5, MW>700, P-gp efflux risk (MW>500+logP>3.5+TPSA>100). DDI-boosted flag in platinum reference.
89+
29. **Permanent scaffold-stratified holdout** — 76 train / 100 holdout from platinum 176 (Murcko generic, seed=42). `data/clinical/holdout_split.json`. 30 MMPK drugs SMILES-match holdout → excluded from UDE training.
8990
30. **torchdiffeq ODE is impractical for training** — 13-state PBPK ODE: 11s/drug forward+backward. 60 epochs = 160 hours. Need surrogate ODE approach for differentiable training.
9091
31. **Pipeline structural gaps** — flutamide (CYP1A2 172x), buspirone (F=4% 44x), pantoprazole (enteric coating 5x). These are genuine mechanistic limitations, not data errors.
92+
32. **All benchmarks must use clinical reference only** — Synthetic 1-cpt CSV benchmark deprecated (2026-03-22). Core-24 AAFE with clinical ref = 1.977 (was 1.502 on synthetic). Synthetic CSV inflated accuracy by ~0.5 AAFE.
93+
33. **Optuna E2E constants do not generalize** — 5 Optuna-tuned constants (gut_threshold=0.97, peff_min=0.76, pgp=0.34, gse=1.11, ka_scale) hurt holdout by +0.091 AAFE. MMPK optimization doesn't transfer to platinum holdout.
94+
34. **Overfitting has 3 layers** — (1) synthetic CSV benchmark, (2) hybrid selector LOO-CV on N=24, (3) Optuna E2E on MMPK. Removing all 3: holdout 3.064→2.690→2.520.
95+
35. **Spearman ρ = 0.94 (in-domain)** — Pipeline ranking is excellent despite AAFE ~2.0. Screening applications viable. Kendall τ = 0.80. Binary high/low accuracy = 88%.
96+
36. **UQ recalibrated (2026-03-22)** — Cmax: 93.7% coverage (in-domain), median width 20.6x (was 4880x). AUC/t½: heuristic scaling from Cmax q-value (q×1.35 for AUC, q×1.0 for t½). AdaptiveConformal recalibrated on 68 clean drugs, k=30.
97+
38. **CYP3A4 ML classifier deferred** — TDC 670 compounds, test AUROC 0.634 → too low. Multi-CYP normalization partially works but unreliable. Zero holdout drugs trigger gut wall fix → no holdout improvement possible. Model saved for future use.
98+
39. **ODE >> Analytical for Cmax on clinical data** — Holdout: ODE AAFE 2.41 vs Analytical 11.64, ODE wins 81%. KD#7 "analytical > ODE" was synthetic CSV artifact.
99+
37. **AD filter catches prodrugs + DDI-boosted** — SMARTS: val-ester, thienopyridine, pivoxil phosphonate, nucleoside 5'-ester. Flags: PRODRUG, DDI_BOOSTED, EXTREME_LIPOPHILIC, HIGH_MW, PGP_EFFLUX_RISK, QUATERNARY_AMINE, INORGANIC. 21/100 holdout excluded.
100+
40. **AUC AAFE 3.2 on holdout (32 drugs)** — 2x worse than Cmax (1.7). AUC Spearman ρ=0.77 (vs Cmax 0.94). Root cause: VDss over-prediction + CLint error compounding through ODE. AUC improvement requires better CL prediction, not Cmax tuning.
101+
41. **VDss systematically over-predicted** — Lombardo cross-validation (17 drugs): VDss AAFE 3.71, Spearman ρ=0.27. XGBoost VDss AAFE 1.31 (94% 2-fold) vs Berezhkovskiy 4.11. Fix: weighted geometric mean (XGB^0.7 × Berez^0.3) for t½ → Core-24 AUC improved 2.344→2.142 (-8.6%). Cmax unchanged (ODE Kp preserved).
91102

92103
## Codebase Rules
93104

@@ -135,13 +146,14 @@ Details + cross-review protocol: `.claude/commands/team.md`
135146

136147
| Level | Criteria | Status |
137148
|-------|---------|--------|
138-
| **1** | `omega predict <SMILES>` → PK profile. ADME AAFE<3.0. PK ≤2-fold for ≥70% of 20+ drugs | **PASS** (in-sample 1.665, 88%) |
139-
| **2** | SMILES→PK <500ms. AAFE<2.0 | **PASS** (73ms, 1.665 in-sample) |
149+
| **1** | `omega predict <SMILES>` → PK profile. ADME AAFE<3.0. PK ≤2-fold for ≥70% of 20+ drugs | **PASS** (core-24: 1.977) |
150+
| **2** | SMILES→PK <500ms. AAFE<2.0 | **PASS** (73ms, core-24 1.977 in-sample) |
140151
| **3** | Patient covariates. Few-shot (<5 obs) | **Prototype** (allometric + Bayesian) |
141-
| **4** | Batch screening 1000+ molecules with UQ | **Done** (batch_predict + conformal CI) |
142-
| **Ext** | External validation AAFE<2.5 on unseen drugs | **PASS** (holdout in-domain 53 drugs: AAFE 1.847) |
143-
| **v7** | Bootstrap CI, ER-stratified, N=50+ holdout, scaffold-split | **PASS** (71-drug holdout, scaffold-stratified, bootstrap CI) |
144-
| **v8** | Holdout in-domain AAFE<1.7, %2-fold>70% | **NOT MET** (1.847, 64.2%) |
152+
| **4** | Batch screening 1000+ molecules with UQ | **Done** (batch_predict + conformal CI, but UQ intervals over-wide) |
153+
| **Ext** | External validation AAFE<2.5 on unseen drugs | **PASS** (holdout in-domain 79 drugs: AAFE 1.987) |
154+
| **v7** | Bootstrap CI, ER-stratified, N=50+ holdout, scaffold-split | **PASS** (100-drug holdout, scaffold-stratified, bootstrap CI) |
155+
| **v8** | Holdout in-domain AAFE<1.7, %2-fold>70% | **NOT MET** (1.987, 57.0%) |
156+
| **v9** | Spearman ρ>0.90, UQ coverage 85-95% | **PARTIAL** (ρ=0.94 PASS, UQ 97% over-covered) |
145157

146158
## Tech Stack
147159

data/clinical/platinum_reference.json

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -760,7 +760,8 @@
760760
"tuning_contaminated": false,
761761
"nonlinear_pk": true,
762762
"data_quality": "fda_label_exact",
763-
"notes": "WARNING: Cmax 7.32 mg/L likely includes ritonavir boosting (CYP3A4 inhibition). Pipeline predicts unboosted single-drug PK. Flag as DDI-contaminated."
763+
"notes": "DDI-BOOSTED: Cmax 7.32 mg/L from ritonavir-boosted steady-state (Prezista 600mg + ritonavir 100mg BID). Dose=100mg is error (possibly from 100mg/mL suspension concentration). Pipeline predicts unboosted single-drug PK.",
764+
"ddi_boosted": true
764765
},
765766
"dasatinib": {
766767
"smiles": "CC1=C(C(=CC=C1)Cl)NC(=O)C2=CN=C(S2)NC3=CC(=NC(=N3)C)N4CCN(CC4)CCO",
@@ -810,17 +811,18 @@
810811
"diclofenac": {
811812
"smiles": "C1=CC=C(C(=C1)CC(=O)O)NC2=C(C=CC=C2Cl)Cl",
812813
"dose_mg": 25.0,
813-
"cmax_mg_L": 0.024,
814+
"cmax_mg_L": 1.0,
814815
"source_type": "literature",
815-
"source_id": "gold",
816+
"source_id": "FDA label diclofenac sodium DR tablets",
816817
"fasted_confidence": "assumed_fasted",
817818
"formulation": "IR",
818819
"route": "oral",
819820
"population": "healthy",
820821
"single_dose": true,
821822
"tuning_contaminated": false,
822823
"nonlinear_pk": false,
823-
"data_quality": "clinical_exact"
824+
"data_quality": "clinical_exact",
825+
"notes": "FIXED 2026-03-22: Cmax was 0.024 (unit error). FDA label: ~1.0 mcg/mL for 25mg delayed-release tablet."
824826
},
825827
"efavirenz": {
826828
"smiles": "C1CC1C#CC2(C3=C(C=CC(=C3)Cl)NC(=O)O2)C(F)(F)F",
@@ -1095,18 +1097,19 @@
10951097
},
10961098
"lenacapavir": {
10971099
"smiles": "CC(C)(C#CC1=NC(=C(C=C1)C2=C3C(=C(C=C2)Cl)C(=NN3CC(F)(F)F)NS(=O)(=O)C)C(CC4=CC(=CC(=C4)F)F)NC(=O)CN5C6=C(C7CC7C6(F)F)C(=N5)C(F)(F)F)S(=O)(=O)C",
1098-
"dose_mg": 927.0,
1099-
"cmax_mg_L": 0.0738,
1100+
"dose_mg": 600.0,
1101+
"cmax_mg_L": 0.101,
11001102
"source_type": "fda_label",
1101-
"source_id": "fda_expanded",
1103+
"source_id": "FDA Sunlenca label (oral loading dose)",
11021104
"fasted_confidence": "assumed_fasted",
11031105
"formulation": "IR",
11041106
"route": "oral",
11051107
"population": "healthy",
11061108
"single_dose": true,
11071109
"tuning_contaminated": false,
11081110
"nonlinear_pk": false,
1109-
"data_quality": "fda_label_exact"
1111+
"data_quality": "fda_label_exact",
1112+
"notes": "FIXED 2026-03-22: Was 927mg SubQ dose (Cmax 0.0738). Corrected to 600mg oral loading (2x300mg tablets). Cmax ~101.4 ng/mL from Sunlenca FDA label. Low oral F (6-10%)."
11101113
},
11111114
"levocetirizine": {
11121115
"smiles": "C1CN(CCN1CCOCC(=O)O)C(C2=CC=CC=C2)C3=CC=C(C=C3)Cl",
@@ -1136,7 +1139,9 @@
11361139
"single_dose": true,
11371140
"tuning_contaminated": false,
11381141
"nonlinear_pk": false,
1139-
"data_quality": "fda_label_exact"
1142+
"data_quality": "fda_label_exact",
1143+
"ddi_boosted": true,
1144+
"notes": "DDI-BOOSTED: Cmax 9.8 mg/L is from Kaletra (lopinavir 400mg + ritonavir 100mg) steady-state. Unboosted lopinavir has ~1/10 exposure. Never used without ritonavir clinically. Dose also wrong (200 vs 400mg in label). Pipeline predicts unboosted single-drug PK."
11401145
},
11411146
"lorlatinib": {
11421147
"smiles": "CC1C2=C(C=CC(=C2)F)C(=O)N(CC3=NN(C(=C3C4=CC(=C(N=C4)N)O1)C#N)C)C",
@@ -1398,17 +1403,18 @@
13981403
"posaconazole": {
13991404
"smiles": "CCC(C(C)O)N1C(=O)N(C=N1)C2=CC=C(C=C2)N3CCN(CC3)C4=CC=C(C=C4)OCC5CC(OC5)(CN6C=NC=N6)C7=C(C=C(C=C7)F)F",
14001405
"dose_mg": 300.0,
1401-
"cmax_mg_L": 0.014,
1406+
"cmax_mg_L": 0.893,
14021407
"source_type": "fda_label",
1403-
"source_id": "fda_expanded",
1408+
"source_id": "PMC4432131 Fang 2015",
14041409
"fasted_confidence": "assumed_fasted",
14051410
"formulation": "IR",
14061411
"route": "oral",
14071412
"population": "healthy",
14081413
"single_dose": true,
14091414
"tuning_contaminated": false,
14101415
"nonlinear_pk": false,
1411-
"data_quality": "fda_label_exact"
1416+
"data_quality": "fda_label_exact",
1417+
"notes": "FIXED 2026-03-22: Cmax was 0.014 (extraction error). Correct: 893 ng/mL fasted, DR tablet 300mg single dose (PMC4432131 Fang 2015)."
14121418
},
14131419
"primaquine": {
14141420
"smiles": "CC(CCCN)NC1=C2C(=CC(=C1)OC)C=CC=N2",
@@ -1701,17 +1707,18 @@
17011707
"valganciclovir": {
17021708
"smiles": "CC(C)C(C(=O)OCC(CO)OCN1C=NC2=C1N=C(NC2=O)N)N",
17031709
"dose_mg": 900.0,
1704-
"cmax_mg_L": 58.0,
1710+
"cmax_mg_L": 5.61,
17051711
"source_type": "literature",
1706-
"source_id": "gold",
1712+
"source_id": "PMID 10496303 (Valcyte PK)",
17071713
"fasted_confidence": "assumed_fasted",
17081714
"formulation": "IR",
17091715
"route": "oral",
17101716
"population": "healthy",
17111717
"single_dose": true,
17121718
"tuning_contaminated": false,
17131719
"nonlinear_pk": false,
1714-
"data_quality": "clinical_exact"
1720+
"data_quality": "clinical_exact",
1721+
"notes": "FIXED 2026-03-22: Cmax was 58.0 (decimal error, 10x too high). Correct: ganciclovir Cmax 5.61 mcg/mL after 900mg valganciclovir oral with food (PMID 10496303). PRODRUG: valganciclovir\u2192ganciclovir. Pipeline predicts parent."
17151722
},
17161723
"vilazodone": {
17171724
"smiles": "C1CN(CCN1CCCCC2=CNC3=C2C=C(C=C3)C#N)C4=CC5=C(C=C4)OC(=C5)C(=O)N",
@@ -2499,17 +2506,18 @@
24992506
"pindolol": {
25002507
"smiles": "CC(C)NCC(O)COc1cccc2[nH]ccc12",
25012508
"dose_mg": 20.0,
2502-
"cmax_mg_L": 0.167,
2509+
"cmax_mg_L": 0.087,
25032510
"source_type": "fda_label",
2504-
"source_id": "OpenFDA automated extraction (2026-03-20)",
2511+
"source_id": "FDA label pindolol (DailyMed) geometric mean",
25052512
"fasted_confidence": "assumed_fasted",
25062513
"formulation": "IR",
25072514
"route": "oral",
25082515
"population": "healthy",
25092516
"single_dose": true,
25102517
"tuning_contaminated": false,
25112518
"nonlinear_pk": false,
2512-
"data_quality": "fda_label_exact"
2519+
"data_quality": "fda_label_exact",
2520+
"notes": "FIXED 2026-03-22: Cmax was 0.167 (upper bound of 4-fold range). FDA label: 45-167 ng/mL for 20mg. Geometric mean sqrt(45*167) = 87 ng/mL = 0.087 mg/L."
25132521
},
25142522
"amantadine": {
25152523
"smiles": "NC12CC3CC(CC(C3)C1)C2",

0 commit comments

Comments
 (0)