5×5 cross validation · two data sets

Is picking a model per endpoint worth it?

Trimole-Hybrid1 argues that no single molecular representation suits every ADMET endpoint, so it builds a pool of candidate predictors, fits all of them, and keeps whichever wins on a validation split. Here it is put against four fixed architectures on fifteen endpoints across two unrelated data sets — 22,500 candidate fits to produce 1,425 fold models, every one scored on molecules it never saw. It loses to a single well-initialised graph network on both, for two reasons that only show up when you look at what it picked: nothing in its pool learns a representation, and on one of the two data sets the split it selects on does not resemble the split it is scored on.

5methods
2data sets
15endpoints
5×5cross validation
60candidates per fold
22kcandidate fits

This is a reimplementation, and that matters

The other pre-trained methods benchmarked in this project run their authors' own code against their authors' own checkpoints. Trimole-Hybrid cannot: its public release describes itself as “not a one-command full rerun bundle”, ships filesystem paths as placeholders, includes no trained weights or cached embeddings, is wired throughout to the TDC benchmark's directory layout, and reserves all rights pending a licence decision.

What follows was therefore written from the paper and from that source read as a specification, using checkpoints obtained independently from their original authors4, 5, 6. It reproduces the method — a candidate pool over four molecular views, and selection on validation only — not the paper's numbers. Where a result here disagrees with the published benchmark, this reimplementation is the more likely explanation.

What the method actually is

Every other method on this page is an architecture. You hand it molecules, it trains, and the model you get is the model the architecture implies. Trimole-Hybrid is a procedure instead. For each endpoint and each fold it assembles sixty candidate predictors from three ingredients, fits every one on the training molecules, scores them all on the held-out validation fifth, and keeps exactly one.

The candidate pool, per fold

Five molecular views — the classical chemistry priors alone (Morgan counts, feature-Morgan, MACCS, Avalon, ErG, atom pairs, topological torsions and the RDKit descriptor block7), then those priors joined by a ChemBERTa sequence embedding6, a KPGT graph embedding4, a UniMol 3D embedding5, or all three at once.

Three chemistry blocks — different subsets of those priors, since endpoints differ in how much of them they want.

Four backends — XGBoost, extremely randomised trees, a random forest and ridge regression.

Five times three times four is sixty. The winner predicts the test set; the other fifty-nine are discarded.

The protocol this project already uses fits the method without modification, because every fold here already carries a validation split. Each candidate trains on the same four fifths of the training molecules that every other method trains on, is scored on the held-out fifth, and the winner is applied to the fixed test set. Nothing is refit on train-plus-validation afterwards, which would have handed this arm more training data than the other four and quietly broken the comparison.

How often is each method best?

Tukey HSD9 across the 25 folds, counted over every endpoint × metric combination. Tied means the method could not be distinguished from the leader at α = 0.05.

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 · 5 tied for best · 22 worse
ChemProp + CheMeleon9 best alone · 16 tied for best · 2 worse
Trimole-Hybrid2 best alone · 9 tied for best · 16 worse

The answer to the question in the headline, on this data set, is no. CheMeleon — one fixed architecture, chosen once and applied to every endpoint — is on top of 25 of the 27 combinations. Trimole-Hybrid, having fitted sixty candidates per fold and kept the best of them on evidence it was entitled to use, is on top of 11, and beaten outright on 16.

It is not last. It comfortably beats LightGBM, which is on top of nothing, and it beats both from-scratch ChemProp variants on the tally. The selection is buying something. It is just buying less than a well-initialised message-passing network costs.

Tukey HSD on R², one panel per ExpansionRx endpoint. Bars are method means over 25 folds; whiskers are simultaneous confidence intervals covering every pairwise comparison at once.
Tukey HSD on R², one panel per ExpansionRx endpoint. Bars are method means over 25 folds; whiskers are simultaneous confidence intervals covering every pairwise comparison at once.

R² by endpoint

EndpointLightGBMChemProp STChemProp MTCheMeleonTrimole
LogD0.510±0.0210.700±0.026tied0.667±0.033tied0.671±0.019tied0.399±0.252
LogS0.335±0.0360.447±0.038tied0.454±0.025tied0.474±0.029tied0.293±0.267
LOG_HLM0.139±0.0450.087±0.0880.118±0.1040.221±0.071tied0.178±0.032tied
LOG_MLM0.084±0.064-0.007±0.1160.033±0.0680.135±0.1410.247±0.032best
LOG_Caco_AB-0.014±0.129-0.307±0.264-0.046±0.1790.160±0.191tied0.209±0.084tied
LOG_Caco_Efflux-0.135±0.096-0.103±0.088-0.057±0.1050.110±0.158tied0.055±0.095tied
LOG_MPPB0.229±0.1050.120±0.1680.445±0.0720.541±0.093best0.183±0.144
LOG_MBPB0.477±0.0800.413±0.1030.642±0.0370.713±0.061best0.473±0.108
LOG_MGMB0.260±0.1480.279±0.0630.616±0.020tied0.642±0.027tied0.490±0.069

MAE by endpoint

EndpointLightGBMChemProp STChemProp MTCheMeleonTrimole
LogD0.545±0.0120.408±0.020tied0.439±0.0200.427±0.018tied0.569±0.066
LogS0.454±0.0150.393±0.0180.402±0.0130.358±0.017best0.455±0.043
LOG_HLM0.332±0.0090.347±0.0170.338±0.0200.314±0.014tied0.324±0.007tied
LOG_MLM0.410±0.0140.433±0.0250.426±0.0150.399±0.0300.370±0.008best
LOG_Caco_AB0.340±0.0220.378±0.0350.341±0.0290.305±0.033tied0.305±0.015tied
LOG_Caco_Efflux0.432±0.0190.423±0.0170.416±0.0220.375±0.034best0.394±0.019
LOG_MPPB0.288±0.0200.294±0.0300.234±0.0140.212±0.021best0.279±0.017
LOG_MBPB0.223±0.0180.232±0.0240.179±0.0100.157±0.018best0.220±0.023
LOG_MGMB0.302±0.0340.304±0.0180.185±0.009tied0.175±0.015tied0.228±0.018

What did it choose?

This is the part no other method has. Because the selection happens before the test set is touched, what it picked is a result rather than a diagnostic — and it is the result that can falsify the method's premise. If the choice never varies between endpoints, the pool is decoration. If it never repeats within an endpoint, the choice is noise.

Which candidate won, over the 25 folds of each ExpansionRx endpoint, broken out by the three axes of the pool.
Which candidate won, over the 25 folds of each ExpansionRx endpoint, broken out by the three axes of the pool.
EndpointMolecular viewChemistry blockBackendMean val R²
LogD+ KPGT20/25core maccs fcfp11/25ridge24/250.822
LogSchemistry only16/25wide chem24/25xgb23/250.550
LOG_HLMchemistry only24/25core pair torsion11/25extratrees15/250.472
LOG_MLMchemistry only24/25wide chem9/25extratrees19/250.584
LOG_Caco_ABchemistry only22/25wide chem18/25xgb23/250.495
LOG_Caco_Effluxchemistry only20/25wide chem19/25xgb23/250.512
LOG_MPPBchemistry only16/25wide chem14/25xgb21/250.653
LOG_MBPB+ KPGT16/25core maccs fcfp10/25ridge16/250.736
LOG_MGMB+ KPGT11/25core maccs fcfp13/25ridge19/250.654

The choice varies by endpoint and holds within one, which is the pattern the method needs: the modal view accounts for 75% of an endpoint's folds. Both microsomal stability endpoints take the chemistry priors alone on 24 of 25 folds; LogD takes KPGT on 20 of 25. So the pool is doing real work rather than dressing up a fixed answer.

But look at what it declines. Across all 225 folds the classical chemistry priors win alone 140 times, KPGT 66, and the other two encoders together 11. Random forest, one of the four backends, wins twice. Most of the candidate pool exists to be rejected — which is the paper's own ablation finding, arrived at from the other direction.

One fold is worth singling out. LOG_MGMB r1 f0 has six molecules in its validation split, and the candidate that won them scored an R² of −0.090. On the smallest endpoint the selection signal runs out, and what is left is a coin toss between sixty models.

Against the best fixed architecture

Folds are paired: both methods saw the same molecules in the same split, so the comparison is within-fold rather than between averages.

EndpointΔ R²Folds wonpVerdict
LogD-0.2720/251.5e-05loses
LogS-0.1810/252.0e-03loses
LOG_HLM-0.0438/251.1e-02loses
LOG_MLM+0.11221/255.6e-04wins
LOG_Caco_AB+0.04918/251.8e-01no call
LOG_Caco_Efflux-0.0555/253.2e-02loses
LOG_MPPB-0.3580/253.3e-10loses
LOG_MBPB-0.2390/255.0e-11loses
LOG_MGMB-0.1520/251.7e-10loses

CheMeleon wins seven of the nine endpoints outright, loses one — LOG_MLM — and draws one. The losses are not close: on LogD, LogS, LOG_MPPB, LOG_MBPB and LOG_MGMB the selection procedure fails to take a single fold out of 25.

The reason is structural, and it is visible in the R² table above. On LogD, the endpoint with the most training data, single-task ChemProp reaches 0.700 and Trimole-Hybrid reaches 0.399 — worse than plain LightGBM on Morgan fingerprints, at 0.510. Every one of the sixty candidates is a fixed representation: a frozen encoder or a block of classical descriptors, handed to a tree ensemble or a ridge. Nothing in the pool learns a representation from the endpoint. Where there is enough data to learn one, a network that does so wins, and no amount of choosing between fixed alternatives closes the gap.

Where Trimole-Hybrid does win — LOG_MLM, and on the draw at Caco-2 A→B — is where every method is struggling and no representation is much good.

Does it replicate?

Everything above is one data set. The Biogen public ADME set8 is 3,521 commercially sourced compounds on six endpoints, far more chemically diverse, and split by holding out whole clusters. Same protocol, same pool, nothing retuned.

LightGBM + Morgan0 best alone · 0 tied for best · 18 worse
ChemProp single-task0 best alone · 2 tied for best · 16 worse
ChemProp multi-task0 best alone · 2 tied for best · 16 worse
ChemProp + CheMeleon10 best alone · 4 tied for best · 4 worse
Trimole-Hybrid4 best alone · 2 tied for best · 12 worse
Tukey HSD on R² for the six Biogen endpoints.
Tukey HSD on R² for the six Biogen endpoints.
EndpointLightGBMChemProp STChemProp MTCheMeleonTrimole
LOG_SOL0.275±0.0240.339±0.0270.345±0.0230.363±0.021best0.330±0.015
LOG_HLM0.326±0.0150.381±0.0230.396±0.0170.474±0.019best0.435±0.012
LOG_RLM0.389±0.0110.459±0.0150.470±0.0140.513±0.012best0.479±0.010
LOG_MDR1_ER0.449±0.0100.523±0.011tied0.523±0.011tied0.520±0.009tied0.498±0.010
LOG_HPPB0.129±0.094-0.064±0.0590.166±0.0490.230±0.065tied0.258±0.053tied
LOG_RPPB0.118±0.067-0.005±0.0440.112±0.0560.154±0.0610.227±0.056best
What the method selected on the Biogen endpoints.
What the method selected on the Biogen endpoints.
EndpointMolecular viewChemistry blockBackendMean val R²
LOG_SOL+ KPGT16/25core maccs fcfp11/25xgb24/250.363
LOG_HLM+ KPGT15/25wide chem16/25xgb25/250.460
LOG_RLMchemistry only17/25wide chem20/25xgb25/250.509
LOG_MDR1_ER+ KPGT12/25wide chem17/25xgb25/250.551
LOG_HPPBchemistry only9/25core pair torsion10/25xgb22/250.506
LOG_RPPBchemistry only10/25core maccs fcfp11/25xgb21/250.458

The ranking replicates: CheMeleon is on top of 14 of the 18 combinations, Trimole-Hybrid 6, and the two from-scratch ChemProp variants 2 each. What does not replicate is what the method chose. On ExpansionRx the chemistry priors alone won 62% of folds and KPGT 29%; here KPGT wins most often and the priors drop to a third, while the modal choice within an endpoint falls from 75% of folds to 53%. The same procedure, given different chemistry, reaches for different evidence — and is less sure of itself.

Head to head it takes LOG_RPPB from CheMeleon on 19 of 25 paired folds and draws on LOG_HPPB, its only two results against CheMeleon here that are not defeats. These are the two smallest endpoints in either data set, 109 and 128 training molecules, and they are also precisely where CheMeleon is weakest. The selection procedure is not winning because it is good at small data; it is winning where the strongest fixed architecture happens to fail.

Why selecting on validation was the wrong bet

Putting the two data sets side by side explains the whole result. A procedure that picks its model on a validation split is making one assumption: that doing well on that split predicts doing well on the test set. That assumption is checkable, because every selection record stores the score the winning candidate earned on validation, and the fold metrics store what it then achieved.

ExpansionRx

EndpointVal moleculesVal R² of winnerTest R² it gotGap
LogD10070.8220.399+0.423
LogS10250.5500.293+0.256
LOG_HLM7510.4720.178+0.294
LOG_MLM9040.5840.247+0.337
LOG_Caco_AB4310.4950.209+0.286
LOG_Caco_Efflux4320.5120.055+0.457
LOG_MPPB2600.6530.183+0.470
LOG_MBPB1950.7360.473+0.263
LOG_MGMB440.6540.490+0.164

Biogen

EndpointVal moleculesVal R² of winnerTest R² it gotGap
LOG_SOL3000.3630.330+0.033
LOG_HLM4310.4600.435+0.025
LOG_RLM4260.5090.479+0.030
LOG_MDR1_ER3670.5510.498+0.053
LOG_HPPB250.5060.258+0.248
LOG_RPPB210.4580.227+0.230

On ExpansionRx the winning candidate is flattered by between 0.16 and 0.47 R². It looks like a model that explains 82% of the variance in LogD and delivers 40%. On Biogen's four well-populated endpoints the same gap is 0.03 to 0.05 — the validation split is telling very nearly the truth. The two endpoints where Biogen's gap opens up, to 0.23 and 0.25, are the two with about two dozen validation molecules, which is small-sample noise rather than a split that misleads.

The difference is in how the test sets were made. Biogen's holdout was built here, by holding out whole BitBIRCH clusters — the same rule that builds the cross-validation folds, so validation and test are the same kind of problem and equally hard. The ExpansionRx split arrived with the challenge and was drawn some other way, so its held-out fifth and its test set are not the same kind of problem at all.

That is the risk a selection framework carries and a fixed architecture does not. CheMeleon does not care whether validation resembles the test set, because it never consults validation to decide what it is. Trimole-Hybrid stakes its entire output on that resemblance, sixty candidates deep. When it holds, the method is competitive. When it does not, the method optimises confidently for the wrong thing — and nothing in the procedure can tell it so.

What this page does not show

Two components of the published method are absent. The learned gated-fusion network is replaced by feature-level concatenation plus the selection step, on the strength of the paper's own ablation, which found that a naive learned combiner did worse than task-wise selection on all 22 of its benchmark tasks. And the pool omits the seed-bagging, rank-blending and top-k sweeps of their full prediction zoo, which enlarge the pool without changing what it selects over.

Both omissions make this arm a little weaker than the published method. Neither changes what is being asked, which is whether selecting per endpoint beats committing to an architecture.

Reported the way “Even More Thoughts on ML Method Comparisons” argues comparisons should be: distributions over folds, simultaneous confidence intervals, paired tests, and no bolded maxima.

References

  1. Luo, Z.; Huang, D.; Shao, Y.; Yu, Q.; Li, Y. A Multimodal Representation Learning Platform for Accurate Molecular ADMET Prediction. Bioinformatics 2026, in review. The method this page reimplements. Their release is an audit package rather than a runnable pipeline, which is why this is a reimplementation. 10.1101/2026.08.24.746660
  2. 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
  3. 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. 10.1021/acs.jcim.6c01546
  4. Li, H.; Zhao, D.; Zeng, J. A Knowledge-Guided Pre-training Framework for Improving Molecular Representation Learning. Nat. Commun. 2023, 14, 7568. The graph branch of the candidate pool, run from the authors' pre-trained checkpoint. 10.1038/s41467-023-43214-1
  5. Zhou, G.; Gao, Z.; Ding, Q.; et al. Uni-Mol: A Universal 3D Molecular Representation Learning Framework. ICLR 2023. The 3D branch, via unimol_tools. ICLR 2023
  6. Chithrananda, S.; Grand, G.; Ramsundar, B. ChemBERTa: Large-Scale Self-Supervised Pretraining for Molecular Property Prediction. arXiv 2020, 2010.09885. The sequence branch, checkpoint seyonec/ChemBERTa-zinc-base-v1. arXiv:2010.09885
  7. Notwell, J. H.; Wood, M. W. ADMET Property Prediction through Combinations of Molecular Fingerprints. arXiv 2023, 2310.00174. The chemistry-prior feature set the candidate pool's sidecars are built from. arXiv:2310.00174
  8. Fang, C.; Wang, Y.; Grater, R.; et al. Prospective Validation of Machine Learning Algorithms for Absorption, Distribution, Metabolism, and Excretion Prediction. J. Chem. Inf. Model. 2023, 63 (11), 3263–3274. The second data set. 10.1021/acs.jcim.3c00160
  9. Tukey, J. W. Comparing Individual Means in the Analysis of Variance. Biometrics 1949, 5 (2), 99–114. 10.2307/3001913