A Drylab AI Playbook · Autonomous Discovery

DryLab Discovery at the OpenADMET PXR challenge

In this post, we share a technical post-mortem of how our autonomy research system automated feature engineering, diagnosed validation-loop biases, and achieved a competitive, near-state-of-the-art result on entirely novel chemical scaffolds.

Drylab AI · Research Engineering ~18 min read · 13 figures · blind-challenge results Run it on Drylab →
Every idea the engine tried on PXR, laid out as a search tree: the shipped path traced in blue, kept branches in green, refuted or dropped branches faded. The run's real deliverable is this record, not the rank.
~90
modeling iterations in the run archive
9th
Phase-1 public leaderboard standing
23rd
final private activity board, by MAE

DryLab Discovery is our autonomous research system for data-driven modeling: a closed-loop AI scientist that forms its own hypotheses, writes and executes code, audits its own mistakes, learns from failed branches, and maintains a fully traceable scientific record. Here we report on how it performed under blind, competitive pressure against elite human data-science teams.

The landscape of autonomous AI research

We have been developing DryLab internally since September 2024, before the recent wave of autonomous research agents popularized by figures like Andrej Karpathy. Today, that landscape is emerging across three distinct branches:

Research branchPrimary objectiveLeading examples
Full-loop automation Automating the entire lifecycle of scientific paper generation. Sakana AI's The AI Scientist
Search-over-code agents Treating ML engineering as an optimization search over code. AIDE (measured on MLE-bench and MLAgentBench)
Domain-specific agents AI agents engineered for specialized biomedical workflows. Biomni, STELLA

DryLab sits at the intersection of the second and third branches. It is built to treat ML engineering as a search problem, but is specifically optimized for a targeted, highly flexible biochemical search space.

Before this open challenge, we validated DryLab on BioML-bench (Miller et al., 2025), a rigorous, third-party benchmark for end-to-end biomedical ML tasks, where it reached top-quartile to state-of-the-art performance across the majority of these benchmarks (Section 7). We had not yet tested it against top-tier human data scientists in a live, high-pressure environment, so we entered DryLab into the OpenADMET PXR Activity Track — a highly competitive challenge drawing roughly 400 submissions in Round 1 and 100 in Round 2. Our sincere thanks to the teams at Octant AI and UCSF for designing and running such a rigorous, open challenge — the exact kind of benchmark the whole field benefits from.

Background: what is ADMET, and why does PXR matter? — click to expand if you're new to this domain

The one-line challenge

Can an AI predict how strongly a novel molecule will activate PXR — a key receptor behind drug–drug interactions — using only its chemical structure? It is a hard question because the property is easy to describe and hard to predict.

1 · What is ADMET?

Before a molecule can become an approved therapeutic, it must survive the human body. ADMET is the checklist that determines its viability:

AbsorptionDoes the drug enter the bloodstream?
DistributionWhere does the drug travel within the body?
MetabolismHow does the body break down the drug?
ExcretionHow is the drug cleared from the system?
ToxicityIs the compound safe, or is it harmful?

Most drug candidates fail not for lack of therapeutic potency but because of poor ADMET properties — they clear too quickly, absorb poorly, or prove toxic. Catching these liabilities early, in silico, saves millions in clinical development costs.

2 · The PXR liability

The pregnane-X receptor (PXR) is a nuclear receptor found predominantly in liver cells. When a drug accidentally activates PXR, it triggers a cascade that can cause other co-administered drugs to fail:

Drug A activates PXR liver overproduces CYP3A4 Drug B is metabolized too fast Drug B loses efficacy

Because CYP3A4 clears roughly half of all marketed drugs, PXR activation is a major ADMET liability: strong activators cause dangerous drug–drug interactions and, in some cases, liver toxicity. Predicting PXR activation directly from molecular structure lets discovery teams design safer molecules before they ever enter a physical lab.

The challenge design

Every team got the same task: predict how strongly a molecule activates PXR from its chemical structure alone. Activation strength is reported as pEC50 — the higher the value, the more potent the activator.

pEC50 = −log10(EC50) EC50 is the concentration (in molar) that produces a half-maximal response.

The 513 test molecules were divided into two sets whose measured labels were withheld, and the challenge ran in two phases around that split:

So Set 1 is the slice that becomes visible partway through, and Set 2 is the one that stays hidden until the end and settles the standings. Both are drawn from the same campaign but, as Section 1 shows, not from the same potency mix — a detail that ends up mattering more than it sounds.

Section 1

A benchmark that punishes shortcuts

Many molecular benchmarks reward interpolation: train and test share close chemistry, so a model that memorizes patterns across both the training and validation sets can look strong without generalizing. Early versions of the engine ran straight into this. The loop would generate a plausible hypothesis, run error analysis on the validation set, and build a fix around whatever it found — and because the validation set was in view the whole time, "whatever it found" often included patterns that were true of that split and nothing else.

A worked example Say the engine notices its predictions run low on a small group of validation compounds that happen to share a chemical motif. It proposes a fix — a new feature, a correction term, a rule — that nudges that motif upward, and validation error drops. The gain is real, but only for this split: the motif looked mispredicted because of which compounds landed in this fold, not because of a genuine structure–activity effect. On held-out data the same nudge does nothing, or hurts. And a frontier LLM will write an equally fluent, mechanistic-sounding justification whether the pattern is real or an artifact — so the write-up alone cannot tell you which case you are in.

Frontier models don’t save you here. Opus 4.8, GPT-5.5, even Fable 5 lack the discernment to distinguish an idea with staying power from one that merely looks appealing. Their validation error analyses often read sharp but prove shallow under scrutiny. Even if the model recognized a genuine pattern and committed to exploiting it, the fix wouldn’t generalize. As the run progressed, things only degraded further: the obvious, structurally grounded error patterns were resolved early, leaving behind patterns that existed solely within the validation set. The system couldn't tell the difference. Yet on benchmarks, it continued to score well—propping up an illusion of progress.

PXR was less forgiving, because the assay campaign looked like lead optimization: start broad, confirm actives, then order analogs around hit scaffolds. Many compounds are close enough to tempt a similarity model, but the errors that matter sit in activity cliffs, potency tails, and small scaffold-dependent shifts.

There is a second, quieter way this campaign structure punishes a shortcut, and it shows up the moment you line up the label distributions. The training compounds, the Set 1 compounds released mid-challenge, and the Set 2 compounds held back for the final ranking are not drawn from the same potency mix. As the campaign moved from a broad opening screen toward confirmed analogs, the compounds got more potent — so the test sets are shifted toward exactly the high-activity end where the model has the least training support.

Figure 1 · The potency distribution slides upward from train to Set 1 to Set 2 pEC50 histogram
train (4,139) Set 1 (253) Set 2 (260)
Fraction of each dataset in each 0.5-wide pEC50 bin. Training mass peaks in the mid-band around 4–5; Set 2 peaks higher and carries a visibly heavier tail beyond 5.5. The model is trained on one potency mix and graded on a more potent one.

Reading it as a cumulative curve makes the ordering exact: at every potency level, more of the training set is inactive than Set 1, and more of Set 1 is inactive than Set 2. Set 1 sits cleanly between the training data and Set 2. That is why Set 1 turned out to be a usable proxy once its labels were released — it is shifted the same way Set 2 is — and also why it is an imperfect one, because it does not shift quite as far.

Figure 2 · Set 1 is the midpoint between train and Set 2 cumulative
Each curve is the fraction of compounds at or below a given pEC50. The three never cross: train is leftmost (weakest), Set 2 rightmost (most potent), Set 1 between them. The median moves from 4.65 in training to 5.08 in Set 2, a shift of about +0.43 log units.

Put in the challenge's own potency bands, the shift is large. The potent fraction (pEC50 ≥ 5.5) roughly triples between training and Set 2, while the deep-inactive fraction is cut in half. A model that faithfully learns the training prior is, before it makes a single representational mistake, already biased toward calling Set 2 compounds weaker than they are.

Figure 3 · What the model trained on versus what it was graded on band composition
Datasetinactive <3.5mid 3.5–5active 5–5.5potent ≥5.5mean
train23.3%44.4%23.1%9.2%4.32
Set 114.6%41.1%27.7%16.6%4.66
Set 210.8%34.2%28.1%26.9%4.91
The distance between the training and Set 2 label distributions is a Kolmogorov–Smirnov gap of 0.236 — a real, measurable prior shift, not a rounding difference. Set 1 sits about halfway across it.
Why 2D QSAR struggles here PXR is promiscuous, so small edits can cause large potency changes, and a fingerprint can call two compounds identical while the assay says one is inactive and the other potent. Cross-validation then flatters itself, because it rewards the easy middle and hides the cliffs. And because the deepest inactives and some auxiliary labels come from single-concentration screens rather than full pEC50 curves, part of what looks like a cliff is assay noise rather than steep structure–activity change — error that no representation can recover, only avoid over-fitting to.

That combination — a potency shift toward the tails plus a representation that compresses them — has a specific, visible signature in the final model's errors. It does not miss uniformly. Measured against the Set 2 labels after they were released, it over-predicts the deep inactives by more than a full log unit and under-predicts the strong actives by about four tenths, while the middle stays close to right. The errors fan out from the center rather than sitting off to one side.

Figure 4 · The model fans out at both potency extremes per-band error · retrospective
Bandnmean error (pred − true)band MAE
deep inactive <3.528+1.1691.188over-predictedover
mid 3.5–589+0.1080.360stablestable
active 5–5.573−0.0660.216bestbest
potent ≥5.570−0.3990.460under-predictedunder
This is the shape behind the inactive-shrink and active-push corrections later in the run: two opposite nudges at the two ends, deliberately narrow because anything broad disturbed the stable middle. It also explains why a simple upward level shift does not help — the model's average is already about right; only its ends are wrong.

The two-phase protocol added a further layer. Before Set 1 was released, scaffold-aware validation was the best available proxy. After Set 1 opened, the task mirrored a real project, where new data arrives, part of the test set becomes visible, and you have to decide which lessons are safe to apply to the still-hidden compounds — knowing, as the distributions above show, that the hidden compounds are shifted a little further out than the ones you can see.

Section 2

Not a normal autoresearch run

Standard AutoML systems — H2O, Bayesian search — search a fixed set of model families, descriptors, hyperparameters, and ensemble weights, which works when the right option is already on the options. In this challenge, most of the moves that helped were not fixed set of directions but the kind of hypothesis a data scientist would form about the endgoal:

Rather than sweeping a search space, the engine treated each candidate as a hypothesis to confirm or refute: one iteration picked a branch, named a single mechanism, changed the code, audited the result, and wrote the verdict to memory so the next proposal had to account for what had already failed.

Select
Choose a branch to build on
A tree-search policy extends the strongest model so far or explores a less-visited branch.
Propose
Name one change and one mechanism
A critic proposes a single change and must say why it should help. “Try a bigger model” is rejected.
Implement
Write the code
A coding agent builds the feature, arm, calibration rule, or ensemble change in a sandbox and emits predictions.
Audit
Check for leakage
A separate pass flags label leakage, train-test overlap, and gains too large to trust without explanation.
Evaluate
Test on hard splits
Scaffold-aware splits, out-of-fold predictions, and paired bootstraps decide whether the gain is credible.
Record
Store the number and the lesson
Each result is tagged confirmed, refuted, overfit, redundant, or not identifiable, and that tag feeds the next iteration.
Figure 5 · One iteration of the loop Engine
One iteration. The audit stages can send an experiment back to rebuild or discard it. Verdicts are written to insights.md, so the search compounds instead of restarting. Parallel forks explore riskier branches and merge back only when they beat where they started.

Why a linear loop was not enough

Before this design, we tried the obvious things: autonomous-research scripts, their variants, even a loop wrapping Codex and Claude Code. Each needed too much human babysitting and stalled after a while. The core problem is that a linear loop of idea iterations does not explore. Once the LLM is conditioned on a long history of previous iterations, its next proposals collapse toward that history, and the search stops branching out.

So we moved to tree search, which fixed exploration but was slow. Standard MCTS and UCT need many rollouts down a single branch before their value estimates are good enough to decide whether the branch is worth chasing. The PXR task makes that worse, because verifying one hypothesis means a full training run that can take hours.

Parallel preliminary exploration

Our fix splits the roles. The idea-generation LLM never reads the full iteration history; instead it hands out several cheap scouting missions at once, each to a separate agent in its own sandbox. A scout runs a small probe — a few training steps, a quick error slice, or a literature check — and reports back one line. The lead reads only those one-line verdicts, so its context stays short and proposals keep diverging.

A scout that lands just under the bar does not report "failed" — it returns a sharpened version of the idea. When the system proposed fine-tuning Uni-Mol v2, it copied the epoch count from public configs. A scout ran a short probe, saw the loss still dropping steeply at that budget, and returned "right idea, wrong epochs" with a corrected number. That direction stayed alive instead of getting dropped.

Figure 6 · Linear loop vs. parallel probes Two search regimes
Top — the trap. A linear loop feeds every lap back into the same context; after a few rounds the next idea is pulled toward the last one and the search stops branching. Bottom — the fix. The critic proposes several ideas that fan out to independent probes in parallel. A probe that clears the bar is promoted to a full run; a near miss is sharpened and re-probed; only a clear failure is dropped. The critic reads only the verdicts, so its context stays short and exploration stays wide.
Section 3

The breakthroughs behind the model

The baseline was Morgan fingerprints into a tree regressor, which reached only 0.6384 full-513 RAE. The failure mode was regression toward the mean, because sparse fingerprints did not separate close compounds and the model compressed the potency tails.

From there it built a multi-view stack of count fingerprints, physicochemical descriptors, D-MPNN graphs, Uni-Mol features, 3D descriptors, residual correctors, and calibrated ensemble arms. Most did not survive. The handful of models we actually submitted to the public board — scored on full-513 RAE — came down to four checkpoints:

SubmissionMain changeFull-513 RAE
pxr3-v8residual-weighted Morgan-count arm0.6384
pxr3-v13CheMeleon D-MPNN foundation arm0.6130
pxr3-v27Add a 3D conformer view (UniMol-2)0.5335
pxr3-v34 / v37Borrow the HTS screen (transfer learning).0.5175

However after these breakthroughs, the internal proxy validation that derive the search process had become easy to overfit, so a good out-of-fold number was no longer enough on its own. After v19, a candidate had to explain where its gain came from and pass targeted checks before it was accepted rather than just outperform the validation numbers of previous iterations. This somewhat alleviate the overfitting problem.

After the set 1 is released, we let the system run fully autonomously in 7 days — and on PXR that spine is 27 nodes long, carrying the internal out-of-fold RAE from the 0.634 baseline down to 0.4901. Most were small, hard-won plateau steps; a handful were genuine changes of mechanism. Those are the ones worth naming.

Figure 7 · The breakthrough spine internal OOF RAE
The running-best lineage, 0.634 → 0.4901 internal OOF RAE across 27 nodes. Each point beat every earlier score when it landed; the curve only steps down. Green markers are the mechanism-changing steps named above — the rest are the plateau refinements between them. Source: run iteration record (exp. 18dad7de).

The pattern across the spine is consistent: the moves that held were the ones adding a genuinely new view — 3D structure, an external assay, a distributional target — while the ones that stalled were re-encodings of signal the ensemble already had. Small refinements between these steps mattered too, but only as consolidation. And note the two rulers: this internal spine ends at 0.4901 out-of-fold, whereas the four submitted checkpoints above are scored on full-513 RAE and top out at 0.5856. Different metrics on different splits; the point of the internal number is the shape of the climb, not a leaderboard-comparable value.

That whole trajectory — the spine above and every branch that did not make it — is one search. The figure below is the actual run, every experiment the engine kept or rejected on PXR, pulled straight from its record. Click any node to read its hypothesis, verdict, and metrics; hover a node tagged preliminary to fan out the parallel probes that were tried and eliminated beneath it.

Figure 8 · The PXR run as an explorable search tree Live run record
The real search, drawn from the engine's record. Depth runs top-to-bottom; each edge is the one change a child made to its parent. The green spine is the running-best lineage — nodes that beat every earlier score at the time they landed; grey nodes are variants that didn't. Hovering a node tagged preliminary fans out its preliminary candidates as dashed ghost children: the parallel probes tried and eliminated under it before a direction was committed. Drag to pan, scroll to zoom, ★ jumps to the best node. Source: automl experiment record (exp. 18dad7de), queried live.
Section 4

What we learned about PXR from Drylab Discovery

Because each iteration ended with a written verdict, the run produced a structured record of failures under hard evaluation — not just the final model but also the dead ends that narrow what to try on the next project. Here are few things we learned:

Activity cliffs set a floor for 2D models

The largest errors were structured rather than random. They came from near-neighbor compounds with very different measured potency, where a 2D fingerprint is locally confident for the wrong reason. Sort the training compounds by the severity of their local activity cliff — how much measured potency changes among their nearest structural neighbors — and the model's out-of-fold error increases monotonically. In the smoothest quarter of chemistry, the Morgan-fingerprint model is off by 0.36 log units; in the cliffiest quarter, it is off by 0.98. Fine-tuning a 3D representation helps but only partially: it never closes the gap because the information a cliff destroys is not present in any representation to recover.

Figure 9 · Error climbs with activity-cliff severity OOF · leak-safe
Mean out-of-fold absolute error by activity-cliff severity quartile, over 4,139 training compounds. From the smoothest to the cliffiest quarter the 2D Morgan model's error nearly triples (0.36 → 0.98). A fine-tuned 3D representation (Uni-Mol) is better everywhere but tracks the same rise (0.33 → 0.79) — it raises the floor, it does not remove it. Source: run OOF predictions + per-compound cliff severity.

The model was biased at both ends

The base stack over-predicted deep inactives and under-predicted strong actives, while the middle stayed comparatively stable — the same fan seen against Set 2 in Figure 4: about +1.17 on the deepest inactives, −0.40 on the potent tail, and near zero through the middle two bands. The inactive shrink and active push corrected the same shape error, and broader versions disrupted the stable middle, so the effective fixes were deliberately narrow.

External data helped only when used narrowly

Surprisingly to us, public PXR data was not automatically useful. Assay scales varied; some labels came from single-concentration screens instead of measured pEC50; some sources added coverage but lacked reliable level information. When added broadly, an external-data arm actually hurts the bands it is not designed for — it degrades the mid and active regions the base model already handles. The useful form was narrow: a ChEMBL/PubChem active-region delta, applied only when the base model and an independent gate agreed the compound was active, where it recovers part of the deep tail without causing losses elsewhere.

Figure 10 · An external-data arm only pays off where it is scoped OOF · leak-safe
Change in mean absolute error when a soft external-data arm is applied across the whole prediction, versus the base stack, by band. It helps the inactive tail slightly (−0.021, green) but hurts the mid and active bands (+0.050, +0.036, red) — exactly why it shipped only as a gated active-region delta, never as a second training set. Source: run OOF predictions, base stack vs external-arm.

Physics signals were real but redundant

3D and structure-derived features performed best on unfamiliar scaffolds. Docking-like features, shape overlap, pocket-interaction features, and cofold-derived signals often aligned. In a correlation matrix, the physics arms mostly represented variations of one shared signal — free-conformer and pose-based views correlated 0.7–0.9 with the Uni-Mol arm and with each other. Stacking many weakly distinct physics views diluted the ensemble instead of enriching it. A better approach was using one gated physics signal where 2D similarity was least reliable.

Figure 11 · The physics arms are mostly the same signal OOF · leak-safe
Pairwise correlation of out-of-fold predictions among the physics / 3D arms. The free-conformer and pose-based views (Uni-Mol, 3D descriptors, docking, pharmacophore-3D) form one hot block correlated 0.68–0.94 — near-duplicates of a single signal. Only the crystal-Tanimoto and X-ray-pose arms carry something distinct, and those are the narrow, scaffold-far views the run kept. Source: run OOF arm predictions.

Frozen foundation embeddings were terrible

The engine tried frozen foundation embeddings and found them mostly redundant or worse. For that experiment — frozen embeddings feeding shallow models — the conclusion was reasonable: as a leak-safe OOF arm, the frozen Uni-Mol view lands around 0.55 RAE, no better than the other 3D arms and far from a decisive lever. The strongest final systems fine-tuned 3D foundation models around the target and used structure-aware active specialists. AIDD-LiLab's public report, for example, describes a Uni-Mol v2 system with free-conformer and bound-pose 3D pillars, multi-fidelity transfer, and gated active-region components. Our run tested the foundation model as a feature extractor but never as a trainable core — the one direction, as Section 6 details, that actually moved the blind number.

Section 5

As usual, do not try to rely on public leaderboard

On the final private activity leaderboard, OpenADMET ranked our entry, quockhanh212, 23rd by MAE at 0.4357, compared to 0.4061 for the winner, matcha-croissant, and 0.4092 for AIDD-LiLab. The top ten were separated by about 0.016 MAE, and OpenADMET's analysis found that many leading entries were not statistically distinct under its testing.

Figure 12 · Final Set-2 standings Set-2 MAE
The top of the board is compressed: the leading entries are separated by MAE gaps small enough that several are not statistically distinguishable. Source: released Set-2 labels.

The gap to the strongest systems is real, but the rank overstates it. Our entry sat in a crowded band where small calibration and tail errors shifted many places at once. The labels stayed hidden until the end, so 23rd is 23rd, and that is the value of a blind board.

Section 6

The misses

After Set 2 labels were released, two failure modes became clear — both more interesting than a simple performance gap because the engine had the evidence in hand but tried to not chasing these two promising directions.

1 · The missed calibration opportunity

Our final model suffered from a systematic, unbalanced error: it over-predicted the activity of the most inactive compounds — the "deepest inactives" — and under-predicted the potency of the most active compounds. This dual-tail bias emerged early in Set 1 and persisted unchecked into Set 2.

Retrospectively, a simple post-hoc calibration fit on Set 1, evaluated after Set 2 labels were released, gives about 0.4092 MAE on Set 2, close to the second-place number. This is a diagnosis rather than a valid blind-challenge result, but the system had the evidence to make the call at the time: it found both tail biases, explored inactive and active corrections, and had access to Set 1 labels. It rejected the calibration because it resembled Set-1 tuning too closely (the generalization problem from feedback signals of validation set).

2 · Underinvesting in 3D fine-tuning

Our most significant technical gap was a failure to commit to end-to-end 3D fine-tuning. The top-performing teams did not merely append static 3D descriptors to their feature sets; they trained fully structure-aware, target-focused models from end to end, often using low-fidelity assay data, cofolded poses, and active-specialist gating.

Our run moved in that direction but did not fully commit. It used Uni-Mol and related features as arms, tested frozen embeddings, and explored cofold and shape-derived signals, but it did not allocate the compute to fine-tune a 3D core on the target. This matters more than the calibration miss because the calibration only affects the score on this challenge, while the fine-tuning gap remains a capability the next run must still develop.

Section 7

The BioML benchmark

While PXR represented a live evaluation, we prior validated our engine on BioML-bench — an independent, third-party benchmark developed by Miller et al. (science-machine, bioRxiv 2025). As the first suite designed to evaluate AI agents on end-to-end biomedical machine learning rather than static question-answering or narrow bioinformatics, BioML-bench builds based on procedures from OpenAI's MLE-bench.

The evaluation framework presents an agent with a raw dataset and a text-based task description. The agent must autonomously parse the objectives, engineer a data pipeline, implement machine learning models, and output predictions, which are then scored against task-specific metrics. We did not modify the benchmark in any way; our sole contribution was running our engine, Drylab, natively through their open-source harness. The resulting performance provides the empirical foundation for our claim of achieving state-of-the-art results on several tasks.

What is in the suite

BioML-bench spans four biomedical domains. The tasks are drawn from established sources — Polaris and TDCommons for drug discovery, Open Problems for single-cell omics, ProteinGym for protein engineering, and Kaggle competitions for biomedical imaging — and each keeps its own primary metric, so a result lands on a real leaderboard rather than an isolated number:

How a task is scored

The procedure mirrors the PXR run, which is why the benchmark is a fair proxy for it. The engine is handed a task description, the training split, and a held-out test set with hidden labels. It runs its own loop — hypotheses, code, evaluation, memory — for a fixed iteration budget (typically 50–100 iterations per task, sometimes with two parallel searches). Its final predictions are scored on the task's primary metric only, then converted to a leaderboard percentile: the fraction of official human submissions it beats. We report the non-penalized percentile, meaning a task the engine did not finish is dropped rather than counted as zero. No human touches the modeling loop once the task starts.

One open-weight model drives the loop The engine is model-agnostic, but every BioML-bench result here — and the PXR run — is driven by a single open-weight model: GLM-5.1 (Zhipu AI / Z.ai), served through our model gateway.

Baselines

The comparison agents come with the benchmark: the BioML-bench paper evaluates four open-source agents — two general ML-engineering coders and two biomedical specialists — and reports that agents on average underperform the human baselines, with biomedical specialization giving no consistent edge. We add Drylab as a fifth entrant, scored the same way, against the same human leaderboards:

Figure 13 · Leaderboard percentile by domain, six agents BioML-bench · non-penalized
Mean leaderboard percentile (higher is better) for each agent, averaged within a domain. Drylab leads in every domain, with the widest margins in drug discovery and protein engineering and a near-ceiling result in single-cell omics. The general coding agents (AIDE, MLAgentBench) and the biomedical agents (STELLA, Biomni) trade places domain to domain; none is consistently second. Non-penalized: unfinished tasks are dropped, not scored zero.

Two things stand out. First, the domains where Drylab's lead is largest — drug discovery and protein engineering — are the ones closest to PXR: supervised prediction on molecular or sequence data with a real held-out test set. Second, no single prior agent holds second place across domains — consistent with the paper's own finding that scaffolding and strategy diversity, not biomedical specialization, drive agent performance here.

Section 8

Beyond PXR

OpenADMET PXR and BioML-bench are both solid benchmarks for data-driven modeling, and across them the Drylab Discovery Engine reached competitive-to-leading performance — faster and at significantly lower cost than traditional methods and human teams, with no human steering the modeling. The natural next question is the opposite one: how much a human in the loop, intervening at the right moments, could speed the engine's convergence rather than replace it.

We are also keen to apply the engine beyond prediction: to hypothesis generation from public data silos and datasets, and to asset design such as binder design and virtual drug screening, where a library is iterated computationally along several directions in parallel until it converges on a small set of well-reasoned candidates.

This redefines what the engine is for. Previously, prediction focused on grading molecules that already exist. Design, on the other hand, proposes which molecules to create next—an inherently more challenging and impactful aspect of discovery. The mechanism behind Drylab Discovery remains unchanged: each proposed design includes a hypothesis and supporting evidence. As a result, the output is a curated shortlist accompanied by a written rationale that chemists can readily evaluate and act upon. In this context, parallel exploration becomes even more critical. The design space is vast, with objectives that are broader and more flexible than a single test metric. This aligns more closely with how a discovery team operates—exploring multiple directions simultaneously and retaining the most promising options. The cost advantage still applies: by allowing the engine to perform computational screening and design at a fraction of the cost of a wet-lab cycle, teams can reserve real experiments for candidates that have already passed a computational filter, backed by a clear rationale. This approach becomes even more powerful when integrated with Lab-in-the-loop data. Here, each node in the exploration tree incorporates real wet-lab feedback, allowing the engine to dynamically update its beliefs and evidence with every iteration. These new applications are incredibly exciting to consider for the future of molecular discovery.