A single 3D molecular descriptor (CASPER) feeding a single tabular foundation model (TabPFN-2.5), trained on the primary assay plus high-throughput-chemistry novel actives. No ensemble, no docking, no fine-tuning.
Holdout performance (253-compound phase-1 set):
- MAE 0.4749 ± 0.0023 (20-seed band), R² ≈ 0.54
Descriptor — CASPER (Conformer-Averaged Surface Property Encoded Representation):
- conformers: ETKDG, n_confs=10, no force-field minimisation
- surface: van-der-Waals dot surface, density=16 points/atom (validated knee of the accuracy/cost curve), probe=0.0
- properties (surface colourings): gasteiger, abs_charge, logp, mr, tpsa
- encoding: property histogram (n_bins=12) + density-invariant spatial autocorrelation (autocorr_bins=8, autocorr_max_dist=16 Å)
- conformer pooling: mean + max
- output dimensionality: 200
Training data:
- primary assay (4139 compounds, raw pEC50 labels — NO label cleaning)
-
- 441 HTC novel actives (yield-corrected pEC50 from crude + semi-pure libraries)
- = 4580 training compounds
Model: TabPFN-2.5 default checkpoint (pypi tabpfn 6.x), mean readout,
predictions averaged over 5 seeds for stability. Predictions clipped to the training
range ± 20 %.
| Intervention | Effect on holdout MAE | Decision |
|---|---|---|
| CASPER descriptor (vs RDKit-2D) | best standalone family | core |
| HTC novel-active augmentation (441) | +0.0175, monotone over count | adopted |
| Isotonic calibration (low-pEC50 shrinkage) | ~+0.007 (near noise) | adopted |
| Counter-assay label cleaning | −0.015 (HURT) | rejected |
| Counter-assay / single-conc as features | impossible (absent at test time) | rejected |
| Reactive-electrophile / PAINS / Brenk / NIH exclusion | ≤ 0 (no transfer) | rejected |
| median / mode readout (vs mean) | worse (low-skew target) | rejected |
| TabPFN v3 (pypi 8.x) | −0.006 (worse) | rejected |
| Real-TabPFN / low-skew checkpoints | ≤ baseline | rejected |
| Feature concatenation (casper+rdkit/mordred) | worse (dilution) | rejected |
| Ridge stacking ensemble | worse (weak families pollute) | rejected |
| Frozen CheMeleon embeddings | worse than Mordred (prior expt) | rejected |
The recurring theme: CV/OOF and the external holdout diverge. Interventions that improved cross-validation (label cleaning, structural-alert exclusion) consistently failed or hurt on the holdout, because the holdout shares the same assay characteristics the curation tried to remove.
The active-enriched training set induces shrinkage: low-pEC50 compounds are over-predicted (signed bias +0.73 in the bottom bin). An isotonic recalibration (monotone, fit on cross-fit OOF predictions, never on the holdout) corrects this and gave a small Pareto improvement (overall MAE 0.4754→0.4688, low-region MAE 0.736→0.719) on a 3-seed run.
This project was architected and coded by Claude Opus 4.8 (Anthropic), with steering, domain feedback, and experiment execution by the human in the loop. The human ran all GPU/TabPFN computations, supplied the datasets and challenge context, set research direction, and provided corrective feedback; the model wrote the code, designed the experiments, and interpreted results. Findings were validated empirically on a held-out test set rather than taken on the model's say-so.