5×5 cross validation · two data sets

Which foundation model, and does it replicate?

Seven modelling approaches, fifteen ADME and physicochemical endpoints across two unrelated data sets, 25 replicate models each, every one scored on a held-out test set it never saw. Four of the seven are pre-trained foundation models, and only two of those four win anything at all. The model that wins most does no downstream training whatsoever — it freezes its encoder and predicts in context. And the neatest pattern in the first data set does not survive the second.

7methods
2data sets
15endpoints
5×5cross validation
2,175fold models
2.48Mpredictions kept

How often is each method best?

Tukey HSD across the 25 folds, counted over every endpoint × metric combination. Tied means the method could not be distinguished from the best one at α = 0.05 — a distinction a bolded maximum would hide.

LightGBM + Morgan0 best alone · 0 tied for best · 27 worse
ChemProp single-task0 best alone · 4 tied for best · 23 worse
ChemProp multi-task0 best alone · 4 tied for best · 23 worse
ChemProp + CheMeleon7 best alone · 5 tied for best · 15 worse
MEGA-CL0 best alone · 0 tied for best · 27 worse
Monroe + TabPFN12 best alone · 6 tied for best · 9 worse
Mol-JEPA + TabICL0 best alone · 0 tied for best · 27 worse

Of the 27 combinations, 19 have a single method at the top and 8 have two or three that cannot be told apart. Monroe is alone at the top on 12 and shares it on 6, CheMeleon alone on 7 and shares on 5. Nothing else is ever at the top, alone or otherwise. The split between those two is not noise and it does not follow data volume — it follows the assay. Monroe leads on LogD, both microsomal stability endpoints and both Caco-2 endpoints. CheMeleon leads on all three tissue-binding endpoints, plus LogS.

The one place a from-scratch model keeps up is LogD, the endpoint with the most measurements, where single-task ChemProp shares the top with Monroe on all three metrics. Given enough data, the model learns a representation as good as the one it would have been handed.

The other end of the table is just as clean. LightGBM, MEGA-CL and Mol-JEPA are best on nothing and tied with the best on nothing, across all 27 combinations. Two of those three are pre-trained foundation models. Pre-training is not by itself worth anything here.

Why nothing here is bolded

Where two methods cannot be separated, the tables below mark both as tied for best rather than crowning whichever had the higher mean. A leading average that the correction cannot defend is not a winner, and printing it as one is the habit these plots exist to avoid.

How to read the Tukey plots

Each bar is one method's mean over its 25 folds. The whiskers are a confidence interval widened to cover every pairwise comparison in the panel at once, which is what stops seven methods and three metrics from manufacturing a winner by chance.

Overlapping bars mean what they look like they mean. That is the whole point of correcting the intervals first. R² and Spearman ρ put the best method furthest right. MAE is an error, so its best method sits furthest left. The convention comes from “Even More Thoughts on ML Method Comparisons” and the protocols in Ash et al.4

Tukey HSD on R². Blue is the best method, grey is statistically indistinguishable from it, red is significantly worse.
Tukey HSD on R². Blue is the best method, grey is statistically indistinguishable from it, red is significantly worse.

R² by endpoint

Mean ± standard deviation over 25 folds.

EndpointLightGBMChemProp STChemProp MTCheMeleonMEGA-CLMonroeMol-JEPA
LogD0.510±0.0210.700±0.026tied0.667±0.0330.671±0.0190.617±0.0290.718±0.017tied0.522±0.018
LogS0.335±0.0360.447±0.038tied0.454±0.025tied0.474±0.029tied0.337±0.0560.442±0.0280.297±0.032
LOG_HLM0.139±0.0450.087±0.0880.118±0.1040.221±0.071-0.068±0.1670.314±0.049best0.191±0.036
LOG_MLM0.084±0.064-0.007±0.1160.033±0.0680.135±0.1410.049±0.1080.290±0.048best0.052±0.108
LOG_Caco_AB-0.014±0.129-0.307±0.264-0.046±0.1790.160±0.191-0.747±0.3140.471±0.041best0.135±0.057
LOG_Caco_Efflux-0.135±0.096-0.103±0.088-0.057±0.1050.110±0.158-0.492±0.1500.275±0.054best0.039±0.065
LOG_MPPB0.229±0.1050.120±0.1680.445±0.0720.541±0.093best0.232±0.1140.300±0.0680.219±0.077
LOG_MBPB0.477±0.0800.413±0.1030.642±0.0370.713±0.061best0.529±0.0620.590±0.0660.438±0.093
LOG_MGMB0.260±0.1480.279±0.0630.616±0.020tied0.642±0.027tied0.447±0.0950.588±0.098tied0.503±0.060

Question 1 — does pretraining help?

CheMeleon2 against the identical multitask D-MPNN1 trained from scratch. Same molecules, same folds, same hyperparameters; the only difference is how the message-passing block was initialised.

EndpointΔ R²Folds wonpVerdict
LogD+0.00413/255.5e-01no call
LogS+0.02019/253.1e-03wins
LOG_HLM+0.10322/251.9e-04wins
LOG_MLM+0.10323/252.8e-04wins
LOG_Caco_AB+0.20522/252.4e-04wins
LOG_Caco_Efflux+0.16722/251.6e-05wins
LOG_MPPB+0.09621/255.0e-06wins
LOG_MBPB+0.07122/255.1e-05wins
LOG_MGMB+0.02521/252.2e-04wins
Each line is one fold, seen by both methods. Green favours CheMeleon.
Each line is one fold, seen by both methods. Green favours CheMeleon.

Question 2 — does multi-task training help?

The same from-scratch architecture, trained one model per assay family versus one model per endpoint. This is the control that separates multi-task transfer from the architecture itself, and it produces the cleanest gradient in the study: sort the endpoints by how much data they have and the benefit falls away almost monotonically. LOG_MGMB, with 222 training molecules, gains 0.34 R² from being trained alongside its assay family. LogD, with 5,039, is actively hurt.

EndpointTraining moleculesΔ R² from multi-taskpFavours
LOG_MGMB222+0.3374.1e-18multi-task
LOG_MBPB975+0.2291.6e-10multi-task
LOG_MPPB1,302+0.3248.7e-09multi-task
LOG_Caco_AB2,157+0.2612.1e-06multi-task
LOG_Caco_Efflux2,161+0.0473.2e-02multi-task
LOG_HLM3,759+0.0301.4e-01no call
LOG_MLM4,522+0.0396.8e-02no call
LogD5,039-0.0332.4e-05single-task
LogS5,128+0.0073.6e-01no call
Multi-task versus single-task ChemProp, paired by fold. Green favours multi-task.
Multi-task versus single-task ChemProp, paired by fold. Green favours multi-task.

Question 3 — graph network or fingerprints?

LightGBM on Morgan count fingerprints against the single-task D-MPNN — both single-task, so this is the like-for-like comparison, and it is a split decision. The graph network wins on the two endpoints with the most data (LogD, LogS) and loses on five of the remaining seven. Stripped of pretraining and multi-task transfer, a D-MPNN is not a general improvement on fingerprints for this data set.

EndpointΔ R²Folds wonpVerdict
LogD+0.19025/253.3e-20wins
LogS+0.11225/251.0e-10wins
LOG_HLM-0.0518/251.6e-02loses
LOG_MLM-0.0916/252.2e-03loses
LOG_Caco_AB-0.2934/253.0e-05loses
LOG_Caco_Efflux+0.03114/252.6e-01no call
LOG_MPPB-0.1088/252.1e-03loses
LOG_MBPB-0.0645/251.5e-02loses
LOG_MGMB+0.02014/255.2e-01no call
Fold-level R² distributions. The spread matters as much as the centre: several endpoints overlap heavily.
Fold-level R² distributions. The spread matters as much as the centre: several endpoints overlap heavily.

Question 4 — does every foundation model help?

MEGA-CL9 is a graph contrastive-learning model pre-trained on roughly 100 million molecules. It is single-target by construction, so the like-for-like comparison is against single-task ChemProp: same one-model-per-endpoint setup, same folds, pre-trained backbone against random initialisation. It loses that comparison on five endpoints, wins on three and ties on one. Against LightGBM it is a coin flip, three wins, three ties, three losses. Against CheMeleon it loses nine out of nine.

EndpointΔ R²Folds wonpVerdict
LogD-0.0830/253.3e-12loses
LogS-0.1101/253.8e-08loses
LOG_HLM-0.1565/256.5e-04loses
LOG_MLM+0.05617/259.9e-02no call
LOG_Caco_AB-0.4403/251.4e-05loses
LOG_Caco_Efflux-0.3880/251.7e-13loses
LOG_MPPB+0.11118/259.4e-03wins
LOG_MBPB+0.11623/255.1e-06wins
LOG_MGMB+0.16822/251.2e-06wins
MEGA-CL against single-task ChemProp, paired by fold. Both are one model per endpoint, so this isolates the pre-training.
MEGA-CL against single-task ChemProp, paired by fold. Both are one model per endpoint, so this isolates the pre-training.

Where it does help is where the data runs out. On LOG_MGMB, the smallest endpoint at 222 training molecules, MEGA-CL beats LightGBM by 0.187 R². On the two Caco-2 endpoints it collapses, and not only on R²: its Spearman ρ of 0.225 on LOG_Caco_AB is half of what LightGBM manages. The lesson is not that pre-training fails, since the only two methods that win anything here are both pre-trained. It is that the benefit belongs to a particular pre-trained model, not to pre-training as an idea.

Question 5 — does a foundation model need fine-tuning at all?

Monroe5 is a 58.5 M-parameter graph transformer pre-trained on 81 million PM6 molecules and 1,089 PCBA assays. What separates it from everything else here is that nothing is trained downstream. The encoder is frozen, each molecule becomes a single 720-dimensional vector, and TabPFN8 predicts the endpoint in context: it is handed the training embeddings together with their labels and returns the test predictions in one forward pass. No weight updates, no epochs, no per-endpoint hyperparameters. Embedding all 7,608 molecules took 32 seconds on one GPU and the 225 fold predictions took 14 minutes. On the same card the CheMeleon arm took about six hours and MEGA-CL took twenty-one.

EndpointΔ R²Folds wonpVerdict
LogD+0.04724/252.5e-09wins
LogS-0.0324/256.2e-05loses
LOG_HLM+0.09422/257.8e-06wins
LOG_MLM+0.15523/251.6e-05wins
LOG_Caco_AB+0.31125/253.4e-09wins
LOG_Caco_Efflux+0.16524/253.1e-06wins
LOG_MPPB-0.2410/254.0e-12loses
LOG_MBPB-0.1221/256.8e-09loses
LOG_MGMB-0.0544/255.1e-03loses
Monroe against CheMeleon, paired by fold. The two split the endpoints cleanly rather than one dominating.
Monroe against CheMeleon, paired by fold. The two split the endpoints cleanly rather than one dominating.

Caco-2 is where the gap is widest. Monroe reaches R² 0.471 on permeability and 0.275 on efflux; nothing else clears 0.16 and four of the other five land below zero on both. Its Spearman ρ on permeability is 0.706 against CheMeleon's 0.564 and LightGBM's 0.469, and it wins all 25 folds on all three metrics. Microsomal stability goes the same way, if less dramatically.

Protein binding reverses it. On LOG_MPPB, CheMeleon wins all 25 folds on both R² and Spearman, 0.541 against 0.300, and it takes LOG_MBPB and LOG_MGMB as well. Whatever the frozen embedding captures about passive permeability and microsomal turnover, it does not capture what fraction of a compound stays unbound in plasma — and there, fine-tuning the representation on the assay still wins.

One more thing separates it. Monroe's fold-to-fold standard deviation is the smallest of the six on all three metrics: 0.052 against CheMeleon's 0.088 on R², averaged over the endpoints. That follows from the design. With no training loop there is no initialisation, no early-stopping epoch and no optimiser trajectory to vary. The only thing that changes between folds is which molecules are in the support set.

Could Monroe have seen these labels?

It could not. Monroe pre-trains on 1,152 tasks and every one of them is public and named: 62 graph-level semi-empirical quantum properties from PM6, 1,089 binary PubChem bioassay calls from PCBA, and one conformer denoising objective. PM6 is computed chemistry and PCBA is screening activity. Neither carries an ADME measurement, so LogD, microsomal stability, Caco-2 permeability and plasma protein binding have no route into that training signal, on this data set or the Biogen one.

Seeing a molecule is a different matter from seeing its label, and the overlap has now been counted rather than assumed. Blazej Banaszewski, one of Monroe's authors, checked both test sets against the pre-training corpora and found no label overlap at all. Exactly one ExpansionRx test molecule, one carrying LogD and LogS values, is in PM6. On the Biogen side the structural overlap is much larger: about 53% of the test molecules are in PM6 and about 8% in PCBA. PM6 contributes quantum-chemical descriptors that are unrelated to these assays, and the PCBA bioassays that come closest to the Biogen endpoints biologically are still different experiments reporting different labels. Monroe had seen a good many of these molecules. It had never seen what they measure. Overlap figures by personal communication, August 2026.

One thing is still worth stating. Monroe's authors have run their model on this data set, and their repository ships a notebook that predicts the untransformed ExpansionRx measurements against OpenADMET's CheMeleon baseline. The folds, the transform and the test set here are ours, and no Monroe hyperparameter was tuned on them.

Question 6 — does adding modalities beat adding scale?

Mol-JEPA6 is the same shape of arm as Monroe and a different bet about what a molecule is. Instead of augmenting a structure and asking for matching views, it collects fourteen modalities of the same molecule — graph, ECFP, MOE descriptors, xTB and DFT calculations, embeddings borrowed from five other pre-trained models, and experimental ChEMBL, PCBA and TDC label vectors — masks whole modalities out, and trains a transformer to predict the missing latents from the ones that remain. The idea is that a molecule is defined by the company it keeps, not by a perturbation of its own graph. Only structure is needed at inference. The 45.4 M parameter encoder is frozen here, every molecule becomes one 512-d CLS token, and TabICL7 predicts in context, which is what the authors recommend.

It is best on nothing and tied with the best on nothing. Monroe beats it on all nine endpoints and all three metrics, and on most of them it wins all 25 folds. The mean R² gap is 0.18.

EndpointΔ R²Folds wonpVerdict
LogD-0.1970/251.7e-25loses
LogS-0.1450/251.2e-16loses
LOG_HLM-0.1240/258.7e-12loses
LOG_MLM-0.2380/251.2e-12loses
LOG_Caco_AB-0.3360/254.7e-23loses
LOG_Caco_Efflux-0.2350/257.5e-20loses
LOG_MPPB-0.0814/253.1e-05loses
LOG_MBPB-0.1531/257.8e-08loses
LOG_MGMB-0.0842/253.8e-06loses
Monroe against Mol-JEPA, paired by fold. Two frozen encoders, two in-context heads, one representation clearly ahead.
Monroe against Mol-JEPA, paired by fold. Two frozen encoders, two in-context heads, one representation clearly ahead.

The obvious objection is the head, since Monroe uses TabPFN and this arm uses TabICL. So the same embeddings were run through TabPFN at Monroe's settings. Across the 225 folds that moves Mol-JEPA by 0.013 R² and 0.013 Spearman ρ — detectable, at p = 0.003 and 3 × 10⁻¹⁰, and about a fourteenth of the distance to Monroe. The gap is the representation, not the predictor bolted onto it.

None of which makes it a bad model. On Caco-2 permeability it reaches R² 0.135 where LightGBM manages −0.014 and MEGA-CL −0.747, and on LOG_MGMB, the smallest endpoint in the study, it reaches 0.503 against CheMeleon's 0.642. It is a respectable model that happens to be in a study with two better ones.

Checking the pre-training table

Mol-JEPA's authors also evaluated on this data set, and here the question of label overlap is a real one. Two of the fourteen modalities are experimental label vectors from ChEMBL, PCBA and TDC, and TDC does carry ADME tasks. It is also the one model where the question can be settled exactly, because the authors released the entire pre-training table, 4,663,780 rows, with an InChIKey for every molecule.

Joining our 7,608 molecules to it gives no exact key matches at all. Two molecules share a connectivity block with one of ours, both from PubChem BioAssay, and neither carries an ADME measurement. The table does have columns named for the nine ExpansionRx endpoints, but every one of them is empty across all 4.66 million rows. Whatever this model saw in pre-training, it was not these molecules and it was not these labels.

The check is 11_check_pretraining_overlap.py in the repository. Monroe's corpus is not published as a table, but its task list is, and it contains no ADME endpoint to leak.

Ranking is healthier than R²

Several endpoints post R² at or below zero while ranking test compounds perfectly respectably. The test set is genuinely shifted from the training set — for LOG_Caco_Efflux the test mean is 0.92 against 0.51 in training — so a model that hedges toward the training mean is punished by R² while its ordering survives. Spearman ρ tells the more useful story for triage.

EndpointLightGBMChemProp STChemProp MTCheMeleonMEGA-CLMonroeMol-JEPA
LogD0.713±0.0170.855±0.013tied0.829±0.0140.843±0.0090.801±0.0160.858±0.011tied0.725±0.011
LogS0.478±0.0220.554±0.0150.573±0.013tied0.562±0.018tied0.510±0.0220.576±0.012tied0.481±0.014
LOG_HLM0.531±0.0200.497±0.0400.506±0.0360.583±0.0230.466±0.0400.620±0.020best0.539±0.017
LOG_MLM0.441±0.0350.410±0.0460.414±0.0320.482±0.0370.423±0.0560.530±0.033best0.380±0.051
LOG_Caco_AB0.469±0.0430.327±0.0950.501±0.0590.564±0.0520.225±0.0710.706±0.020best0.434±0.034
LOG_Caco_Efflux0.512±0.0580.559±0.0380.539±0.0410.633±0.0480.273±0.1120.710±0.017best0.584±0.025
LOG_MPPB0.611±0.0410.511±0.0610.701±0.0300.782±0.034best0.586±0.0550.634±0.0320.585±0.037
LOG_MBPB0.696±0.0420.706±0.0420.813±0.0190.857±0.016best0.767±0.0310.826±0.0210.728±0.043
LOG_MGMB0.609±0.0580.388±0.0690.773±0.0140.808±0.013tied0.709±0.0380.790±0.027tied0.694±0.036
Tukey HSD on Spearman ρ.
Tukey HSD on Spearman ρ.

Mean absolute error

MAE is the metric a chemist reads closest to directly: it is in log units of the measurement, and it does not depend on how the test set happens to be spread. That makes it the fairest of the three here, because it is unmoved by the label shift that drags R² below zero. The ordering barely changes. Monroe has the lowest error on five of nine endpoints and CheMeleon on the other four, split the same way as before: metabolism and permeability against binding. LightGBM, MEGA-CL and Mol-JEPA are significantly worse than the best on all nine.

What a log10(x+1) MAE is worth

The +1 is there because six of the nine endpoints report zeros that plain log10 cannot take: 179 of them in human microsomal stability, 156 in mouse, and fewer than a dozen apiece in the other four.

It also makes the transform nearly linear below x = 1 and only properly logarithmic above about x = 10, and a good deal of this data sits in the flat part: 22% of mouse brain binding values and 17% of Caco-2 Papp values are below 1 in their native units.

So a fixed fold-change is not worth a fixed distance. On plasma protein binding, a five-fold difference in free fraction spans 0.67 units between 10% and 50% unbound, but only 0.14 units between 0.1% and 0.5%. The scale under-weights errors on the most tightly bound compounds, which is the end a chemist usually cares about most.

Every method is fit and scored on the same transformed target, so the comparison below is untouched by this. It is the absolute reading that needs care. An MAE of 0.175 is not a clean 1.5-fold error.

EndpointLightGBMChemProp STChemProp MTCheMeleonMEGA-CLMonroeMol-JEPA
LogD0.545±0.0120.408±0.020tied0.439±0.0200.427±0.0180.468±0.0220.402±0.015tied0.530±0.011
LogS0.454±0.0150.393±0.0180.402±0.0130.358±0.017best0.424±0.0280.380±0.0090.456±0.013
LOG_HLM0.332±0.0090.347±0.0170.338±0.0200.314±0.0140.377±0.0300.293±0.009best0.320±0.007
LOG_MLM0.410±0.0140.433±0.0250.426±0.0150.399±0.0300.422±0.0240.358±0.011best0.411±0.023
LOG_Caco_AB0.340±0.0220.378±0.0350.341±0.0290.305±0.0330.441±0.0410.248±0.011best0.316±0.010
LOG_Caco_Efflux0.432±0.0190.423±0.0170.416±0.0220.375±0.0340.488±0.0260.346±0.012best0.383±0.013
LOG_MPPB0.288±0.0200.294±0.0300.234±0.0140.212±0.021best0.270±0.0240.259±0.0130.285±0.014
LOG_MBPB0.223±0.0180.232±0.0240.179±0.0100.157±0.018best0.205±0.0170.192±0.0160.234±0.020
LOG_MGMB0.302±0.0340.304±0.0180.185±0.009tied0.175±0.015tied0.234±0.0290.204±0.0330.224±0.018
Tukey HSD on MAE. Lower is better, so the best method sits furthest left.
Tukey HSD on MAE. Lower is better, so the best method sits furthest left.

The gaps are worth reading in absolute terms rather than as ranks. On LOG_MGMB CheMeleon is at 0.175 against LightGBM's 0.302, so the fingerprint model is wrong by roughly 73% more per compound. On LOG_HLM the six methods span 0.293 to 0.377, a spread of 0.084 log units, narrow enough that the assay noise probably matters more than the choice.

Fold-level MAE distributions.
Fold-level MAE distributions.

Does any of it replicate?

Everything above is one data set. A comparison run once is a hypothesis, so the same seven methods, the same protocol and the same statistics were run again on Biogen's public ADME set3: 3,521 commercially sourced compounds on six endpoints, unrelated to the first collection in chemistry, in provenance and in who measured it.

The two files are not the same kind of thing. ExpansionRx is a lead optimisation campaign — 7,608 molecules in 651 clusters, 170 of them singletons. The Biogen set is a diverse commercial selection: 3,521 molecules in 1,905 clusters, 1,123 singletons. It carries no train/test split, so one was built by holding out whole clusters to the same 30% the ExpansionRx file uses. That makes the Biogen holdout cluster-pure, which the ExpansionRx one is not: 59 of its 651 clusters straddle the boundary. Biogen is the harder test of the two, so absolute numbers do not transfer between the halves of this page. Rankings within each half do.

Tukey HSD on R² for the Biogen endpoints. Same reading as before: blue is best, grey indistinguishable from it, red significantly worse.
Tukey HSD on R² for the Biogen endpoints. Same reading as before: blue is best, grey indistinguishable from it, red significantly worse.
LightGBM + Morgan0 best alone · 0 tied for best · 18 worse
ChemProp single-task0 best alone · 0 tied for best · 18 worse
ChemProp multi-task0 best alone · 0 tied for best · 18 worse
ChemProp + CheMeleon0 best alone · 0 tied for best · 18 worse
MEGA-CL0 best alone · 0 tied for best · 18 worse
Monroe + TabPFN18 best alone · 0 tied for best · 0 worse
Mol-JEPA + TabICL0 best alone · 0 tied for best · 18 worse

Eighteen combinations this time, six endpoints by three metrics. Monroe takes all eighteen. Nothing else is best on one, and nothing else is so much as tied with the best on one. Against CheMeleon it wins every fold of every endpoint on every metric — 450 out of 450.

EndpointLightGBMChemProp STChemProp MTCheMeleonMEGA-CLMonroeMol-JEPA
LOG_SOL0.275±0.0240.339±0.0270.345±0.0230.363±0.0210.278±0.0420.504±0.013best0.383±0.015
LOG_HLM0.326±0.0150.381±0.0230.396±0.0170.474±0.0190.275±0.0290.556±0.009best0.429±0.010
LOG_RLM0.389±0.0110.459±0.0150.470±0.0140.513±0.0120.372±0.0260.569±0.007best0.459±0.005
LOG_MDR1_ER0.449±0.0100.523±0.0110.523±0.0110.520±0.0090.311±0.0380.641±0.008best0.494±0.009
LOG_HPPB0.129±0.094-0.064±0.0590.166±0.0490.230±0.065-0.292±0.1420.478±0.036best0.281±0.085
LOG_RPPB0.118±0.067-0.005±0.0440.112±0.0560.154±0.061-0.426±0.2910.415±0.051best0.228±0.123

So the headline replicates and the interesting part does not. On ExpansionRx the wins split by assay, with CheMeleon taking the three tissue-binding endpoints. That pattern is gone. Biogen's two plasma protein binding endpoints are precisely where CheMeleon ought to have been strong, and they are where it loses by the widest margin on the page: R² 0.478 against 0.230 on human, 0.415 against 0.154 on rat.

What shows through instead is data volume, and the clearest sight of it is the one comparison where the two frozen-encoder models disagree. Mol-JEPA, best at nothing in the first half, beats CheMeleon here on the three endpoints with the least data — solubility, and the two protein binding assays with 128 and 109 training molecules — and loses to it on the three with the most. In-context prediction from a frozen encoder degrades gently as the labels run out. Fine-tuning falls off a cliff: on those two endpoints single-task ChemProp posts R² of −0.064 and −0.005, worse than predicting the training mean, and MEGA-CL manages −0.292 and −0.426.

EndpointΔ R²Folds wonpVerdict
LOG_SOL+0.01920/256.1e-05wins
LOG_HLM-0.0451/252.3e-11loses
LOG_RLM-0.0530/251.5e-16loses
LOG_MDR1_ER-0.0260/253.2e-10loses
LOG_HPPB+0.05120/253.3e-02wins
LOG_RPPB+0.07421/255.0e-03wins

Three things do carry across. Monroe is the most accurate method on both collections and also the steadiest, with the smallest fold-to-fold standard deviation on all three metrics in both. MEGA-CL is the worst on both. And a from-scratch D-MPNN is still not reliably better than a fingerprint baseline: on Biogen, single-task ChemProp beats LightGBM on the four larger endpoints and loses to it on the two smallest.

Fold-level R² on the Biogen endpoints.
Fold-level R² on the Biogen endpoints.

MAE says the same thing, which is worth checking rather than assuming: R² is sensitive to how the test set happens to be spread, and a verdict that held on only one metric would be a verdict about the split. Monroe has the lowest error on all six endpoints, by 0.029 log units on rat microsomal stability at the narrowest and 0.091 on rat protein binding at the widest. The runner-up changes with the amount of data, and splits the six endpoints the same way R² did: CheMeleon is second on the three with the most training molecules, Mol-JEPA on the three with the least.

Tukey HSD on MAE for the Biogen endpoints. Lower is better, so the best method sits furthest left.
Tukey HSD on MAE for the Biogen endpoints. Lower is better, so the best method sits furthest left.
EndpointLightGBMChemProp STChemProp MTCheMeleonMEGA-CLMonroeMol-JEPA
LOG_SOL0.413±0.0090.381±0.0110.383±0.0070.370±0.0070.397±0.0200.322±0.004best0.360±0.004
LOG_HLM0.395±0.0050.364±0.0100.364±0.0070.337±0.0070.396±0.0120.299±0.003best0.360±0.003
LOG_RLM0.470±0.0050.431±0.0060.428±0.0060.404±0.0060.464±0.0090.375±0.003best0.434±0.003
LOG_MDR1_ER0.385±0.0050.355±0.0050.355±0.0050.340±0.0040.421±0.0130.294±0.002best0.359±0.004
LOG_HPPB0.576±0.0330.650±0.0180.583±0.0200.558±0.0250.702±0.0430.438±0.017best0.516±0.035
LOG_RPPB0.554±0.0210.630±0.0100.571±0.0200.553±0.0230.700±0.0670.445±0.026best0.536±0.045

Two things to know about this data

31% of the HLM values and 11% of the RLM values sit exactly on the assay floor, stacked on one number because the compound was too stable to measure a rate. A large block of ties is easy to order, so that flatters Spearman ρ, and it makes MAE look better than the assay deserves.

The two protein binding endpoints have 128 and 109 training molecules here. The repository's own splits for them hold about nine times that, drawn from in-house measurements that were never released, so these numbers are not comparable with the ones in the paper.

The Mol-JEPA pre-training check was run again, and it matters more on this side: the Biogen set is public and reaches that pre-training table through Therapeutic Data Commons, which carries a column for each of the six endpoints. 59 of the 3,521 molecules do appear by exact InChIKey, 1.7% of them, through nabla-DFT, PubChem BioAssay and TDC, with 132 more sharing a connectivity block. Not one carries a Biogen measurement, and those six label columns are empty across all 4.66 million rows. Structures overlap slightly. Labels do not.


How this was run

The measurements are the OpenADMET–ExpansionRx blind challenge set, contributed by Expansion Therapeutics and released by OpenADMET under CC BY 4.0. Every endpoint was put on a log10(x+1) scale except LogD, which is already a log quantity. The +1 is there because six endpoints report zeros, which plain log10 cannot take. LogS and Caco-2 Papp carry a further −6, which moves them from µM and 10⁻⁶ cm/s into molar and cm/s. That shift is a constant, so it cancels in every metric here. The 651 chemical clusters come from BitBIRCH-Lean at its default settings.

The second collection is Biogen's public ADME set, 3,521 compounds on six endpoints, released under MIT with the paper of Fang et al.3 Its values arrive already log transformed, so nothing was done to them. It carries no train/test split, so 00b_prepare_biogen.py builds one: BitBIRCH-Lean clusters the 3,521 molecules into 1,905 groups, and whole clusters are held out in a seeded order until the test set reaches the same 30% the ExpansionRx file uses. Everything downstream of that point is shared between the two collections — the same fold construction, the same seven arms, the same statistics.

The ds column fixes the train/test split (5,326 / 2,282 molecules after dropping unparseable SMILES and rows with no measured endpoint). The 25 replicates come from five repeats of a five-fold GroupKFold over the training molecules, grouped by cluster so no chemotype straddles the train/validation boundary. Each fold fits on four fifths, early-stops on the held-out fifth where there is a training loop to stop, and is scored on the same untouched test set — so every method sees identical training molecules in every fold and a difference in the metrics is a difference in the method.

Every script, the data set and all 2,483,250 predictions are at model-validation-central/studies/expansion-ml-comparison. The figures and tables on this page rebuild from the stored predictions in about a minute, with no retraining.

Statistics follow the approach in “Even More Thoughts on ML Method Comparisons”: distributions of fold-level metrics, Tukey HSD corrected for multiple comparisons, and paired tests using the folds as the pairing. Every individual prediction is retained in predictions_all.parquet.

References

  1. Graff, D. E.; Morgan, N. K.; Burns, J. W.; et al. Chemprop v2: An Efficient, Modular Machine Learning Package for Chemical Property Prediction. J. Chem. Inf. Model. 2026, 66 (1), 28–33. 10.1021/acs.jcim.5c02332
  2. Burns, J. W.; Zalte, A. S.; Abreu, C. R. A.; et al. Deep Learning Foundation Models for Low-Data Regimes from Classical Molecular Descriptors. J. Chem. Inf. Model. 2026, articles ASAP. Introduces CheMeleon, the descriptor-pretrained D-MPNN that chemprop ships as --from-foundation CHEMELEON; preprint at arXiv:2506.15792. 10.1021/acs.jcim.6c01546
  3. Fang, C.; Wang, Y.; Grater, R.; et al. Prospective Validation of Machine Learning Algorithms for Absorption, Distribution, Metabolism, and Excretion Prediction: An Industrial Perspective. J. Chem. Inf. Model. 2023, 63 (11), 3263–3274. The 3,521-compound public set is at github.com/molecularinformatics/Computational-ADME. 10.1021/acs.jcim.3c00160
  4. Ash, J. R.; Wognum, C.; Rodríguez-Pérez, R.; et al. Practically Significant Method Comparison Protocols for Machine Learning in Small Molecule Drug Discovery. J. Chem. Inf. Model. 2025, 65 (18), 9398–9411. 10.1021/acs.jcim.5c01609
  5. Banaszewski, B.; Fitzgibbon, A. W. Monroe: A Molecular Foundation Model for In-Context Probabilistic Inference. Preprint, 2026. A GRIT graph transformer pre-trained on 81 million PM6 molecules and 1,089 PCBA assays, adapted downstream by a frozen encoder and TabPFN rather than by fine-tuning. Code and weights at github.com/blazejba/monroe. arXiv:2608.18982
  6. Rottach, F.; Schieferdecker, S.; Rudman, W.; et al. Mol-JEPA: A Multimodal Joint Embedding Predictive Architecture for Molecules. Preprint, 2026. Masks whole molecular modalities and predicts their latents rather than augmenting the structure. Code, checkpoint and the full pre-training table at github.com/Boehringer-Ingelheim/mol-jepa. arXiv:2608.22642
  7. Qu, J.; Holzmüller, D.; Varoquaux, G.; Le Morvan, M. TabICL: A Tabular Foundation Model for In-Context Learning on Large Data. Preprint, 2025. arXiv:2502.05564
  8. Hollmann, N.; Müller, S.; Purucker, L.; et al. Accurate Predictions on Small Data with a Tabular Foundation Model. Nature 2025, 637 (8045), 319–326. 10.1038/s41586-024-08328-6
  9. Jin, T.; Jin, K.; Li, Y.; et al. MEGA-CL: A Molecular Foundation Model for Generalizable ADMET Prediction through Graph External Attention and Contrastive Learning. Preprint, 2026. arXiv:2607.24314