Model report for my contribution (LB nickname: 'tibo') to the activity track of OpenADMET-PXR Blind Challenge.
My submission is the result of a semi-autonomous autoresearch loop - which I irregularly monitored for the ~14 last days prior to the Phase 2 deadline (July 1st, 23:59:59 UTC)
Remark: I entered after the Phase 1 interim leaderboard was released.
Using OpenAI's Codex CLI (paired with the GPT-5.5 family models), I setup a sandboxed environment aiming to build models using the Phase 1 release as the main retrospective validation signal.
My objective was to use agentic systems to quickly replicate the systematic exploration as performed by Fisher et al. in:
Deep Learning vs Classical Methods in Potency and ADME Prediction: Insights from a Computational Blind Challenge.
J. Chem. Inf. Model. 2025, 65 (24), 13115–13131.
For this PXR challenge, I wanted to accelerate the experimentation pace while still giving the main directions to the agent. Many good practices were also taken (and instructed to the agent) from my submission to the previous ExpansionRx challenge https://github.com/Tibogoss/OpenADMET-ExpansionRx/blob/main/
In brief, I initialized the loop with base hypotheses: few architectures could provide strong baselines (e.g. LightGBM, ChemProp...) and which features to try first (e.g. structural fingerprints, physchem descriptors, learned embeddings...). First few models were then naïvely trained on the entire main dose-response training set, provided basic insights for the LLM to reason on.
From then on, I set a goal following three tracks:
- Find better individual models;
- Run hyperparameter optimization on best performing models (using Optuna);
- Explore consensus models.
I insist on the fact that I always kept the loop semi-autonomous: by spontaneously adding new hypotheses to try, to "accelerate" hypothesis testing when the agent explored one too deeply (in my view)... Therefore, the loop allowed to automate and iterate through experiments faster by exploring "nearby regions of a given hypothesis" (e.g. playing with mixing settings from recent model trainings) but the human (myself) still had to seed better hypotheses to see proper performance increase.
We only leveraged the data provided for the challenge. No proprietary data was used. On few (deferred) experiments, my public data curation hurt performance.
- Agentic loop: my setup was rushed in order to push a submission fast. Future retrospective steps could be to build proper environments for better
autoresearch-type harnesses. - Tabular architectures (TabPFN, TabICL...), paired with learned embeddings surprisingly performed better than ChemProp/CheMeleon (which are still very strong baselines);
- Hyperparameter Optimization is useful: it oftentimes lowered the MAE of individual models (on Phase 1 unblinded test set) by the magnitude of 0.01;
- Feature engineering: I experienced substantial performance boost by including the provided auxiliary dataset (
single_concentration) in the pipeline as extra features. - Resonance-invariance: for models using ChemProp/CheMeleon backbones, RIGR augmentation led to small, yet useful performance increase. My implementation was based on Jackson Burns's kindly open-sourced code (https://github.com/JacksonBurns/openadmet_pxr).
- What didn't work as expected (surely caused by methodology!): including
counter_assaydata, adding ChEMBL-curated data to expand the domain applicability, leveraging activity cliff detection.