3D molecular pre-training at scale · 5×5 cross validation · two data sets

Uni-Mol and Uni-Mol2, fine-tuned the way the package does it, against the ADMET field

Uni-Mol1 pre-trains a 3D SE(3)-invariant transformer on 209 million RDKit conformers by masked-atom prediction and coordinate denoising; Uni-Mol22 scales the idea to a two-track atom/pair transformer and reports downstream error falling as it grows from 84 million to 1.1 billion parameters. Both come with a fine-tuning package, unimol_tools, and that is how they are run here: the package's own recipe at its defaults, on the same fifteen ExpansionRx and Biogen endpoints, folds and held-out test sets as the rest of this site, and each encoder also frozen and read by TabPFN 35 exactly as Monroe is. Fine-tuned Uni-Mol2 84M is the stronger of the two and a real step up from Uni-Mol (30 wins, 12 no call, 3 losses over 45 endpoint × metric calls): it beats fine-tuned CheMeleon6 (31–8–6), never loses to LightGBM (42–3–0), and on ExpansionRx reaches the top Tukey tier on 14 of 27 combinations, more than Monroe + TabPFN 34 (9). But it is never best alone, it trails fine-tuned Atom-JEPA3 (3–6–36), and on Biogen it loses all 18 calls to Monroe and is on top of none. Frozen, neither Uni-Mol vector wins a single call against Monroe's; fine-tuning is what makes these models competitive.

8arms compared
15endpoints
5×5cross validation
100fine-tuned fold models
43GPU hours

The package's own recipe, on these folds

Both fine-tuned arms are a single call to unimol_tools 0.1.5's MolTrain per repeat, with nothing of ours inside the training loop. split='select' with kfold=5 takes the repeat's training molecules tagged with the fold each is held out in, and fits one model per fold on the other four fifths, early-stopping it on the held-out fifth. Uni-Mol starts from the released mol_pre_all_h_220816 weights, Uni-Mol2 from the package's default 84M model; hydrogens are kept, and each molecule gets the package's own single RDKit conformer. Every setting is the package default: Adam at 1e−4 with linear warm-up and decay, batch 16, at most 100 epochs with a patience of 10, gradient clipping at 5 and mixed precision, one seed per repeat. One model per fold predicts every endpoint of its data set at once under the package's NaN-masked L1 loss (multilabel_regression), the multitask setting CheMeleon and Atom-JEPA are also fine-tuned in. Two choices are ours. Targets are standardised (target_normalize='standard'), because the default 'auto' applies log1p to skewed columns and these are already logs that go below −1. And each of the five fold models predicts the test set separately, rather than through MolPredict, which would average them and leave five scores where the protocol needs twenty-five.

One thing the package does that the other fine-tuned arms here do not: its target scaler is fitted on all five fifths of the training set before the folds are split (unimol_tools/data/datahub.py), so each fold's held-out fifth helps set the mean and standard deviation the model trains and early-stops in. The test set is never involved, so the scores below are unaffected; it is a small leak into early stopping only.

The frozen arms (unimol_tabpfn, unimol2_tabpfn) take the package's UniMolRepr CLS vector for every molecule — 512-d for Uni-Mol, 768-d for Uni-Mol2 84M, from the same conformers — and hand each fold's training vectors to TabPFN 3 with Monroe's exact call: one TabPFNRegressor, 8 estimators, softmax temperature 0.9, no PCA, the mean as the point estimate. Set against Monroe they differ only in the vector; set against the fine-tuned arm they show what fine-tuning buys.

Eight arms

The four comparators are imported unchanged from the nine-method foundation-model comparison and the Atom-JEPA study on the identical fold assignments: LightGBM on 2,048-bit Morgan counts8 (the classical floor), ChemProp7 fine-tuned from CheMeleon6 (the strongest 2D message-passing arm), Monroe + TabPFN 34 (the strongest frozen encoder read in context), and fine-tuned Atom-JEPA3 (a 39M-parameter 3D EquiformerV3 pre-trained by latent prediction on 19M Uni-Mol conformers). Uni-Mol2's 310M model was planned and dropped: at the package's batch of 16 it does not fit in the 16 GB of the faster GPU, and the slower one would have taken days.

The scoreboard

Tukey HSD per endpoint and metric, counted the same way across every study on this site: a method is on top if Tukey's simultaneous correction cannot separate it from the best mean at α = 0.05, and it is only best alone if no other arm shares the top group. MAE is in the log units of each endpoint, followed by R².

ExpansionRx9

LightGBM + Morgan0 best alone · 0 tied for best · 27 worse
ChemProp + CheMeleon, fine-tuned0 best alone · 3 tied for best · 24 worse
Monroe + TabPFN 35 best alone · 4 tied for best · 18 worse
Atom-JEPA fine-tuned7 best alone · 12 tied for best · 8 worse
Uni-Mol fine-tuned0 best alone · 1 tied for best · 26 worse
Uni-Mol2 84M fine-tuned0 best alone · 14 tied for best · 13 worse
Uni-Mol frozen + TabPFN 30 best alone · 0 tied for best · 27 worse
Uni-Mol2 84M frozen + TabPFN 30 best alone · 0 tied for best · 27 worse
EndpointLightGBMCheMeleon FTMonroe/PFN3Atom-JEPA FTUni-Mol FTUni-Mol2 FTUni-Mol/PFN3Uni-Mol2/PFN3
LogD0.545±0.0120.427±0.0180.402±0.0150.382±0.014tied0.445±0.0300.381±0.022tied0.724±0.0170.583±0.006
LogS0.454±0.0150.358±0.0170.380±0.0090.323±0.010tied0.334±0.0160.324±0.013tied0.457±0.0070.468±0.009
LOG_HLM0.332±0.0090.314±0.0140.293±0.0090.277±0.014tied0.298±0.0210.288±0.025tied0.365±0.0160.335±0.009
LOG_MLM0.410±0.0140.399±0.0300.358±0.011tied0.390±0.0170.389±0.0200.370±0.020tied0.420±0.0100.395±0.008
LOG_Caco_AB0.340±0.0220.305±0.0330.248±0.011best0.314±0.0370.393±0.0270.347±0.0640.360±0.0140.337±0.012
LOG_Caco_Efflux0.432±0.0190.375±0.0340.346±0.012best0.375±0.0340.445±0.0250.413±0.0450.434±0.0120.397±0.013
LOG_MPPB0.288±0.0200.212±0.0210.259±0.0130.185±0.018tied0.203±0.0200.200±0.018tied0.269±0.0100.287±0.018
LOG_MBPB0.223±0.0180.157±0.0180.192±0.0160.124±0.005best0.168±0.0080.149±0.0140.227±0.0100.251±0.021
LOG_MGMB0.302±0.0340.175±0.015tied0.204±0.0330.163±0.010tied0.188±0.0150.173±0.017tied0.259±0.0170.246±0.020
Tukey HSD on MAE, ExpansionRx. Each bar is a method's mean over 25 folds with a 95% simultaneous confidence interval. Blue is the best mean, grey cannot be separated from it, red is significantly worse.
Tukey HSD on MAE, ExpansionRx. Each bar is a method's mean over 25 folds with a 95% simultaneous confidence interval. Blue is the best mean, grey cannot be separated from it, red is significantly worse.
Fold-level MAE across all 25 folds (5×5 CV) on ExpansionRx.
Fold-level MAE across all 25 folds (5×5 CV) on ExpansionRx.
EndpointLightGBMCheMeleon FTMonroe/PFN3Atom-JEPA FTUni-Mol FTUni-Mol2 FTUni-Mol/PFN3Uni-Mol2/PFN3
LogD0.510±0.0210.671±0.0190.718±0.0170.754±0.015best0.647±0.0350.724±0.0220.186±0.0330.431±0.009
LogS0.335±0.0360.474±0.0290.442±0.0280.562±0.021best0.446±0.0290.502±0.0310.238±0.0180.255±0.021
LOG_HLM0.139±0.0450.221±0.0710.314±0.0490.388±0.062tied0.293±0.0980.325±0.121tied-0.017±0.0710.111±0.038
LOG_MLM0.084±0.0640.135±0.1410.290±0.048tied0.183±0.0740.176±0.0830.242±0.096tied0.036±0.0410.132±0.036
LOG_Caco_AB-0.014±0.1290.160±0.1910.471±0.041best0.103±0.219-0.363±0.172-0.122±0.436-0.139±0.0930.028±0.080
LOG_Caco_Efflux-0.135±0.0960.110±0.1580.275±0.054best0.112±0.158-0.238±0.124-0.099±0.226-0.167±0.0610.024±0.071
LOG_MPPB0.229±0.1050.541±0.0930.300±0.0680.639±0.059tied0.578±0.079tied0.590±0.062tied0.265±0.0470.187±0.091
LOG_MBPB0.477±0.0800.713±0.0610.590±0.0660.797±0.013best0.680±0.0290.736±0.0430.483±0.0440.335±0.105
LOG_MGMB0.260±0.1480.642±0.027tied0.588±0.0980.670±0.023tied0.598±0.0350.623±0.041tied0.389±0.0450.437±0.066
Tukey HSD on R², ExpansionRx.
Tukey HSD on R², ExpansionRx.

Biogen ADME10

LightGBM + Morgan0 best alone · 0 tied for best · 18 worse
ChemProp + CheMeleon, fine-tuned0 best alone · 0 tied for best · 18 worse
Monroe + TabPFN 313 best alone · 5 tied for best · 0 worse
Atom-JEPA fine-tuned0 best alone · 5 tied for best · 13 worse
Uni-Mol fine-tuned0 best alone · 0 tied for best · 18 worse
Uni-Mol2 84M fine-tuned0 best alone · 0 tied for best · 18 worse
Uni-Mol frozen + TabPFN 30 best alone · 0 tied for best · 18 worse
Uni-Mol2 84M frozen + TabPFN 30 best alone · 0 tied for best · 18 worse
EndpointLightGBMCheMeleon FTMonroe/PFN3Atom-JEPA FTUni-Mol FTUni-Mol2 FTUni-Mol/PFN3Uni-Mol2/PFN3
LOG_SOL0.413±0.0090.370±0.0070.322±0.004best0.340±0.0060.358±0.0120.363±0.0240.410±0.0040.377±0.005
LOG_HLM0.395±0.0050.337±0.0070.299±0.003tied0.295±0.008tied0.350±0.0140.317±0.0210.426±0.0030.368±0.003
LOG_RLM0.470±0.0050.404±0.0060.375±0.003best0.385±0.0050.432±0.0180.395±0.0160.500±0.0030.448±0.003
LOG_MDR1_ER0.385±0.0050.340±0.0040.294±0.002best0.317±0.0050.345±0.0150.339±0.0210.439±0.0060.360±0.003
LOG_HPPB0.576±0.0330.558±0.0250.438±0.017best0.500±0.0190.510±0.0340.514±0.0320.575±0.0170.539±0.019
LOG_RPPB0.554±0.0210.553±0.0230.445±0.026best0.513±0.0230.492±0.0370.522±0.0500.590±0.0200.553±0.015
Tukey HSD on MAE, Biogen ADME.
Tukey HSD on MAE, Biogen ADME.
Fold-level MAE across all 25 folds (5×5 CV) on Biogen ADME.
Fold-level MAE across all 25 folds (5×5 CV) on Biogen ADME.
EndpointLightGBMCheMeleon FTMonroe/PFN3Atom-JEPA FTUni-Mol FTUni-Mol2 FTUni-Mol/PFN3Uni-Mol2/PFN3
LOG_SOL0.275±0.0240.363±0.0210.504±0.013best0.436±0.0170.337±0.0420.360±0.0850.271±0.0080.378±0.010
LOG_HLM0.326±0.0150.474±0.0190.556±0.009tied0.573±0.016tied0.388±0.0480.526±0.0510.237±0.0130.399±0.010
LOG_RLM0.389±0.0110.513±0.0120.569±0.007tied0.564±0.012tied0.441±0.0450.542±0.0330.318±0.0090.444±0.007
LOG_MDR1_ER0.449±0.0100.520±0.0090.641±0.008best0.584±0.0120.514±0.0300.546±0.0390.323±0.0110.498±0.005
LOG_HPPB0.129±0.0940.230±0.0650.478±0.036best0.390±0.0380.330±0.0740.314±0.0830.166±0.0480.263±0.050
LOG_RPPB0.118±0.0670.154±0.0610.415±0.051best0.318±0.0510.332±0.0890.251±0.1070.160±0.0750.151±0.065
Tukey HSD on R², Biogen ADME.
Tukey HSD on R², Biogen ADME.

On ExpansionRx fine-tuned Atom-JEPA is on top of 19 of 27 combinations (7 of them alone), fine-tuned Uni-Mol2 of 14 — on six endpoints: LogD, LogS, LOG_HLM, LOG_MLM, LOG_MPPB and LOG_MGMB — always sharing the tier, and Monroe + TabPFN 3 of 9. Fine-tuned Uni-Mol reaches it one time. On Biogen ADME the picture is Monroe's: on top of 18 of 18 combinations (13 alone), Atom-JEPA of 5, and no Uni-Mol arm of any. Neither frozen Uni-Mol arm is on top anywhere.

Head-to-head across all 45 endpoint × metric calls

Paired by fold, a two-sided t-test over the 25 shared folds at p < 0.05 for each endpoint and metric. Fine-tuned Uni-Mol2 against fine-tuned Uni-Mol goes 30–12–3, so at the same recipe the larger, newer model is better, by a mean +0.060 R². It beats fine-tuned CheMeleon 31–8–6 where Uni-Mol does not (13–8–24), and both beat LightGBM (42–3–0 and 41–0–4). Against Monroe + TabPFN 3 Uni-Mol2 splits by data set: 14–5–8 on ExpansionRx and 0–0–18 on Biogen. Against fine-tuned Atom-JEPA, the other 3D model and one that was pre-trained on Uni-Mol's own conformers, both lose clearly: Uni-Mol2 3–6–36, Uni-Mol 3–5–37.

Uni-Mol2 84M fine-tuned againstExpansionRx, 27Biogen, 18Gain, mean of 15
winsno calllosseswinsno calllossesΔ R²MAE drop
Atom-JEPA fine-tuned32220414−0.067−0.0141
Monroe + TabPFN 314580018−0.073−0.0161
ChemProp + CheMeleon, fine-tuned16561530+0.009+0.0124
LightGBM + Morgan24301800+0.166+0.0680
Uni-Mol fine-tuned2250873+0.060+0.0169
Uni-Mol fine-tuned against Atom-JEPA fine-tuned03243213−0.127−0.0311
Uni-Mol fine-tuned against Monroe + TabPFN 377130018−0.133−0.0331
Uni-Mol fine-tuned against ChemProp + CheMeleon, fine-tuned5517837−0.051−0.0045
Uni-Mol fine-tuned against LightGBM + Morgan23041800+0.106+0.0511
Uni-Mol2 84M frozen + TabPFN 3 (fine-tuned against frozen)23311710+0.132+0.0563
Uni-Mol fine-tuned against Uni-Mol frozen + TabPFN 323041800+0.161+0.0737
frozen Uni-Mol2 + TabPFN 3 against Monroe + TabPFN 300270018−0.205−0.0725
frozen Uni-Mol2 + TabPFN 3 against ChemProp + CheMeleon, fine-tuned02253312−0.123−0.0439
frozen Uni-Mol2 + TabPFN 3 against LightGBM + Morgan95131440+0.034+0.0117
frozen Uni-Mol + TabPFN 3 against Monroe + TabPFN 300270018−0.293−0.1067
frozen Uni-Mol + TabPFN 3 against LightGBM + Morgan38162412−0.055−0.0226
Fine-tuned Uni-Mol2 against each arm on ExpansionRx: mean paired MAE difference over 25 folds with 95% confidence intervals, signed so right of zero favours Uni-Mol2.
Fine-tuned Uni-Mol2 against each arm on ExpansionRx: mean paired MAE difference over 25 folds with 95% confidence intervals, signed so right of zero favours Uni-Mol2.
The same paired MAE differences on Biogen ADME.
The same paired MAE differences on Biogen ADME.
Uni-Mol against Uni-Mol2, both fine-tuned with the same package defaults, MAE paired by fold on ExpansionRx.
Uni-Mol against Uni-Mol2, both fine-tuned with the same package defaults, MAE paired by fold on ExpansionRx.
Two fine-tuned 3D encoders: Atom-JEPA against Uni-Mol2 84M, MAE paired by fold on ExpansionRx.
Two fine-tuned 3D encoders: Atom-JEPA against Uni-Mol2 84M, MAE paired by fold on ExpansionRx.

Frozen or fine-tuned

Reading each encoder frozen through Monroe's TabPFN 3 call splits the distance from Monroe to fine-tuned Uni-Mol2 into two steps: first swap Monroe's vector for Uni-Mol2's, then fine-tune Uni-Mol2 instead of reading it.

EndpointData setSwap Monroe's embedding for frozen Uni-Mol2's, same TabPFN 3Then fine-tune Uni-Mol2 insteadFine-tuned Uni-Mol2 against Monroe
LOG_Caco_ABExpansionRx−0.443−0.149−0.592
LOG_Caco_EffluxExpansionRx−0.251−0.123−0.374
LOG_HLMExpansionRx−0.203+0.213+0.010
LOG_MBPBExpansionRx−0.255+0.401+0.145
LOG_MGMBExpansionRx−0.150+0.185+0.035
LOG_MLMExpansionRx−0.159+0.111−0.048
LOG_MPPBExpansionRx−0.113+0.403+0.291
LogDExpansionRx−0.287+0.293+0.005
LogSExpansionRx−0.187+0.247+0.060
LOG_HLMBiogen ADME−0.157+0.127−0.030
LOG_HPPBBiogen ADME−0.215+0.052−0.163
LOG_MDR1_ERBiogen ADME−0.143+0.047−0.095
LOG_RLMBiogen ADME−0.124+0.098−0.026
LOG_RPPBBiogen ADME−0.264+0.101−0.163
LOG_SOLBiogen ADME−0.126−0.018−0.144
medianExpansionRx−0.203+0.213+0.010
medianBiogen ADME−0.150+0.075−0.120

As a frozen vector Uni-Mol2's is behind Monroe's on all 15 endpoints, by a median −0.203 R² on ExpansionRx and −0.150 on Biogen, and neither frozen arm wins one of the 45 calls against Monroe (Uni-Mol2 0–0–45, Uni-Mol 0–0–45). Frozen Uni-Mol is behind even LightGBM (5–12–28); frozen Uni-Mol2 edges it (23–9–13) but loses to CheMeleon 3–5–37. Fine-tuning then lifts R² on 12 of 15 endpoints for Uni-Mol2 and 13 of 15 for Uni-Mol, by a median +0.213 and +0.075 R² for Uni-Mol2 on the two data sets (+0.207 and +0.158 for Uni-Mol), winning 40 of 45 calls against its own frozen arm (41 for Uni-Mol). The net against Monroe is a median +0.010 R² on ExpansionRx and −0.120 on Biogen. Unlike Monroe, whose encoder never sees these labels, these vectors were never meant to be used frozen: Uni-Mol is pre-trained to denoise coordinates and recover atoms, not to summarise a molecule in one token.

Uni-Mol2 frozen under TabPFN 3 against Uni-Mol2 fine-tuned, MAE paired by fold on ExpansionRx.
Uni-Mol2 frozen under TabPFN 3 against Uni-Mol2 fine-tuned, MAE paired by fold on ExpansionRx.
Monroe against frozen Uni-Mol2, both read by the same TabPFN 3 call, MAE paired by fold on Biogen ADME.
Monroe against frozen Uni-Mol2, both read by the same TabPFN 3 call, MAE paired by fold on Biogen ADME.

Fold to fold

The fine-tuned Uni-Mol arms are the least stable fine-tuned arms here. Across the fifteen endpoints the median ratio of their fold-to-fold R² standard deviation to fine-tuned Atom-JEPA's is 2.0 for Uni-Mol2 and 1.8 for Uni-Mol. It is worst on the two Caco-2 endpoints of ExpansionRx, LOG_Caco_AB and LOG_Caco_Efflux, where Uni-Mol2's mean R² is below zero and its standard deviation reaches 0.44: some folds are fine and some are badly miscalibrated. A likely contributor is that the package early-stops each fold model on one validation score pooled over every endpoint, so the epoch it keeps is the one that suits the data set as a whole, not the hardest endpoint in it.

Fold-level R² across all 25 folds on ExpansionRx; note the spread of the two Uni-Mol fine-tuned arms on the Caco-2 endpoints.
Fold-level R² across all 25 folds on ExpansionRx; note the spread of the two Uni-Mol fine-tuned arms on the Caco-2 endpoints.

What it costs

The 100 fine-tuned fold models took 43 GPU hours, 3 for Uni-Mol and 40 for Uni-Mol2, across two machines (apollo, an RTX 5070 Ti; spark, a DGX Spark GB10, which took a median 3.3× as long per Uni-Mol2 fold). On the same machine a Uni-Mol2 fold took a median 8.8× as long as a Uni-Mol one, though the two keep similar epochs (a median best epoch of 33 against 30), so the cost is the larger model, not longer training. Time per fold is one MolTrain call's wall clock, five folds and the test predictions, shared evenly. The frozen arms need one forward pass per molecule and then TabPFN 3, minutes rather than hours, and are not tabulated.

ArmData setMachineFold modelsMedian minutes / foldMedian best epochLongest run, epochsTotal, GPU hours
Uni-Mol FTBiogen ADMEapollo, GeForce RTX 5070 Ti251.923520.8
Uni-Mol FTExpansionRxapollo, GeForce RTX 5070 Ti255.337832.2
Uni-Mol2 FTBiogen ADMEapollo, GeForce RTX 5070 Ti1518.429684.4
Uni-Mol2 FTBiogen ADMEspark, GB101056.830559.5
Uni-Mol2 FTExpansionRxapollo, GeForce RTX 5070 Ti2041.8368114.0
Uni-Mol2 FTExpansionRxspark, GB105143.9487412.0

Reported the way “Even More Thoughts on ML Method Comparisons” and the protocol paper it points at11 argue comparisons should be: distributions over folds, simultaneous confidence intervals, paired tests on the folds, and no bolded maxima. Where two methods cannot be separated, both are reported as tied.

Code, per-fold metrics and every figure: studies/unimol.

References

  1. Zhou, G.; Gao, Z.; Ding, Q.; Zheng, H.; Xu, H.; Wei, Z.; Zhang, L.; Ke, G. Uni-Mol: A Universal 3D Molecular Representation Learning Framework. ICLR 2023. The 3D transformer fine-tuned here as unimol, from its released mol_pre_all_h_220816 weights. openreview:6K2RM6wVqKu
  2. Ji, X.; Wang, Z.; Gao, Z.; et al. Uni-Mol2: Exploring Molecular Pretraining Model at Scale. NeurIPS 2024. The two-track transformer scaled from 84M to 1.1B parameters; its 84M model is fine-tuned here as unimol2. arXiv:2406.14969
  3. Petersen, K. H.; Tirsgaard, R. H.; Cornet, F. R. J.; Jordahn, M.; Schmidt, M. N. Atom-JEPA: Joint-Embedding Predictive Architecture for 3D Atomistic Systems. Preprint, 2026. The 39M-parameter 3D self-supervised comparator, fine-tuned. arXiv:2610.08400
  4. Banaszewski, B.; Fitzgibbon, A. W. Monroe: A Molecular Foundation Model for In-Context Probabilistic Inference. Preprint, 2026. The frozen encoder in the strongest in-context arm. arXiv:2608.18982
  5. Grinsztajn, L.; Flöge, K.; Key, O.; et al. TabPFN-3: Technical Report. Preprint, 2026. The head of the Monroe arm and of both frozen Uni-Mol arms. arXiv:2605.13986
  6. 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. The pre-trained 2D D-MPNN comparator. 10.1021/acs.jcim.6c01546
  7. 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
  8. Rogers, D.; Hahn, M. Extended-Connectivity Fingerprints. J. Chem. Inf. Model. 2010, 50 (5), 742–754. The LightGBM baseline's representation. 10.1021/ci100050t
  9. OpenADMET; Expansion Therapeutics. OpenADMET–ExpansionRx Blind Challenge Data. Hugging Face, 2026, CC BY 4.0. 10.57967/hf/9687
  10. 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. 10.1021/acs.jcim.3c00160
  11. 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