wikillm

Paper · 2025-05-03 · cs.LG, cond-mat.mtrl-sci, cs.AI

BOOM: Benchmarking Out-Of-distribution Molecular Property Predictions of Machine Learning Models

BOOM is a benchmark for predicting molecular properties out of distribution. For 10 properties, the molecules with the lowest kernel-density values form the OOD test set. Of 15 models tested, none is strong on all tasks: the top model's average OOD error is about 3x its in-distribution error. Pretraining chemical language models improves in-distribution error but not OOD error.

Molecular representation learningGraph neural networkMasked language modelingHyperparameter optimizationbenchmarkout-of-distributionmolecular-property-predictionchemistryfoundation-models

arXivPDFCodeMarkdown20 min read

AI-compiled by claude-haiku-5-5 on 2026-10-18, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.

In plain words

Scientists use machine learning to guess a molecule's properties, such as how it stores energy or how it absorbs light. A good guess lets them screen many candidate molecules without a slow simulation or a lab test. The hard case is the one that matters most: finding a molecule whose property is more extreme than anything the model has seen. Most benchmarks hide this case, because their test molecules come from the same range as the training molecules.

BOOM is a benchmark that tests this case directly. For each property, the molecules with the most unusual values are kept out of training and used as a separate test set. A model is judged on those molecules and on ordinary test molecules, so the two results can be compared.

Across 15 models, from simple tree ensembles to large transformers and 3D graph networks, no model did well on every property. Models that were accurate on ordinary molecules were often much worse on the unusual ones. Pretrained chemical language models did not extrapolate better than models trained from scratch. The authors present the benchmark as a challenge for future models.

TL;DR

BOOM builds out-of-distribution (OOD) test sets for 10 molecular properties: the molecules in the lowest-density region of each property's kernel density estimate are held out §2 app. A.1. It reports RMSE on in-distribution (ID) and OOD test sets for 15 models, averaged over 3 training runs §2 tab. 7. The best model's average OOD error is about 3x its ID error, and no model leads on every task [abstract] §4.1. Pretraining ChemBERTa, MoLFormer and Regression Transformer improved ID error by 12% to 35% but gave no significant OOD gain §4.2. Code is Apache-2.0 LICENSE.

Problem

Molecular discovery needs predictions for molecules whose properties lie outside the range seen in training. The authors argue that current benchmarks mostly measure ID performance on datasets that are not hard enough, and that the OOD behaviour of chemistry models is largely unexplored §1. The MoleculeNet protocols it cites (random, scaffold, stratified and time splits) are the standard ones §3, and the paper argues that distribution-based splits are missing §1.

The paper defines OOD in property space. The OOD test set is a low-density region of the property distribution, so the test targets are rarer than the training targets §2. Depending on the property, this can also cause a shift in chemical structure §2. The definition follows a complement-distribution framing from prior work, which the paper cites §2.

Method

Benchmark construction

  • Properties. Ten targets: eight QM9 properties (polarizability α, heat capacity C_v, HOMO, LUMO, HOMO-LUMO gap, dipole moment μ, electronic spatial extent ⟨R²⟩, zero-point vibrational energy ZPVE) and two from the 10k dataset (heat of formation HoF and density) §2 app. A.1.
  • Source size. The 10k dataset has 10,206 molecules §2. The Chemprop pretraining experiment uses 133,885 QM9 training examples app. C.3. Pitfalls covers the QM9 split size.
  • OOD split. Fit a Gaussian kernel density estimate to each property's values, using Scott's bandwidth rule. The molecules with the lowest estimated density form the OOD test set. The paper uses 1,000 molecules for the 10k dataset and the lowest 10% for QM9 §2 app. A.1. The code uses 10,000 molecules for QM9 prepare_splits_qm9.py.
  • ID split. From the remaining molecules, 5% are drawn at random as the ID test set and the rest are used for training and fine-tuning app. A.1. The text says 10% for QM9 app. A.1; the code uses 5% for both datasets prepare_splits_qm9.py prepare_splits_10k.py.
  • Extra dataset. Lipophilicity (MoleculeNet, 4,200 experimental octanol/water measurements), used on a subset of models as an experimentally measured OOD check §2 app. C.9.

Key equations as written in the paper:

P(\mathcal{M}, y \mid \mathcal{D}_{\text{test}}) \neq P(\mathcal{M}, y \mid \mathcal{D}_{\text{train}}) eq. 1

0 < P(y_{\text{test}}) \leq P(y_{\text{train}}) eq. 2

Eq. 2 states that the test-target density is non-zero and no higher than the training-target density §2. The released code does not evaluate eq. 2 directly. It ranks molecules by kernel density and cuts the lowest ones, as the pseudocode below shows prepare_splits_qm9.py.

Split procedure, as implemented in the released code. Per property, with the same logic for QM9 and the 10k dataset:

Pseudocode
# BOOM split for one property  [§2] [app. A.1]
# Input:  values (N,)  one property value per molecule
#         n_ood        1000 (10k), 10000 (QM9, in the released code)
# Output: label per molecule: "ood", "id" or "train"

def split_property(values, n_ood, rng):
    # Gaussian kernel density, Scott's bandwidth  [app. A.1]
    # [code: boom/data/prepare_splits_qm9.py#L171-L172]
    density = fit_gaussian_kde(values, bandwidth="scott")
    # Density at each molecule's own property value
    # [code: boom/data/prepare_splits_qm9.py#L178]
    scores = density.score_samples(values)
    # Lowest-density n_ood molecules form the OOD test set  [§2]
    # [code: boom/data/prepare_splits_qm9.py#L180-L186]
    ood_index = indices_of_lowest(scores, n_ood)
    labels = ["train"] * len(values)
    for i in range(len(values)):
        if i in ood_index:
            labels[i] = "ood"
        # 5% of the rest go to ID test, the others to training
        # [code: boom/data/prepare_splits_qm9.py#L198-L204]
        elif rng.random() < 0.05:
            labels[i] = "id"
    return labels

The released code calls random.seed(42) before each property prepare_splits_qm9.py prepare_splits_10k.py. The paper does not state a seed.

Metrics

  • RMSE on the ID and OOD test sets. Models whose OOD RMSE is close to their ID RMSE generalize well §2.
  • Binned R² on OOD. The paper argues that OOD predictions span a wide range, so the sample mean is far from most samples and plain R² is inflated. It therefore averages R² over the OOD molecules that fall in each end of the property range §2. The tail fraction is not stated, and no implementation was found in the released repository.
  • Each result is the mean of 3 training runs, with variance reported §2.

Models

Fifteen models in three groups §2 app. B.1 tab. 3:

  • Traditional: Random Forest and an MLP, both on RDKit descriptors app. B.2.
  • Transformers: ChemBERTa, MoLFormer, Regression Transformer, ModernBERT app. B.3. The paper calls these SMILES-based tab. 3.
  • Graph and 3D: Chemprop (2D bond graph), TGNN, IGNN, EGNN, MACE, GotenNet app. B.4 tab. 3.
  • Hybrid: Graphormer-3D, GeoFormer, Equivariant Transformer (ET) app. B.5 tab. 3.

Architectures were used off the shelf. Hyperparameter sweeps covered only non-architectural settings such as learning rate and training steps, with 10% of the training data held out for selection app. C.1.

Model summary tab. 3

ModelArchitectureRepresentationSymmetryParameters
Random ForestRandom ForestRDKit molecular descriptorsN/AN/A
Multilayer PerceptronMultilayer PerceptronRDKit molecular descriptorsN/A153k
ChemBERTaTransformerSMILESN/A83M
MoLFormerTransformerSMILESN/A48M
RTTransformerSMILESN/A27M
ModernBERTTransformerSMILESN/A111M
ChempropGNN{Atom, Bond}permutation200k
TGNNGNN{Atom, Bond}permutation200k
IGNNGNN{Atom, Bond, pair-wise distances}E(3)-invariant + permutation217K
EGNNGNN{Atom, Bond, atom positions}E(3)-equivariant + permutation217K
MACEGNN{Atom, Bond, pair-wise distances}E(3)-equivariant + permutation3.9M
GotenNetGNN{Atom, Bond, pair-wise distances}E(3)-equivariant + permutation6M
Graphormer-3DHybrid{Atom, Bond, pair-wise distances}E(3)-invariant + permutation47.1M
GeoFormerHybrid{Atom, Bond, pair-wise distances}E(3)-invariant + permutation47.1M
ETHybrid{Atom, Bond, atom positions}E(3)-equivariant + permutation6.8M

Parameter counts are as the paper states them.

The GNN message-passing forms are given as equations in the appendix: a topological update with bond and node terms, an invariant update that adds a learned function of inter-atomic distance, and an equivariant update that also updates coordinates app. B.4. These are not reproduced as equation numbers here; the paper cites them in that appendix section.

Hyperparameters

Values as stated in the paper or taken from the released code. Where only the code gives a value, the card says so.

NameValueWhereNotes
KDE kernel and bandwidthGaussian, Scott's ruleapp. A.1 prepare_splits_qm9.pySame in the 10k split prepare_splits_10k.py
OOD size, 10k dataset1,000 moleculesapp. A.1 prepare_splits_10k.py
OOD size, QM9"lowest 10%" in textapp. A.1Code uses 10,000 molecules prepare_splits_qm9.py. See Pitfalls.
ID test fraction5% (10k); 10% for QM9 in textapp. A.1Code uses 5% for QM9 prepare_splits_qm9.py
Split seednot statednot statedCode: random.seed(42) per property prepare_splits_qm9.py
Training runs3 per result§2 fig. 2Mean and variance reported
Validation holdout10% of training dataapp. C.1MACE config valid_fraction: 0.10 density.yaml; ChemBERTa script uses a 20% split run_experiment_density.py
Random Forest500 trees, max_features="sqrt"Code only run_experiment.pyPaper says it uses hyperparameters "previously reported" app. C.1
Random Forest and MLP featuresRDKit descriptors via DeepChem; correlated Chi features removedapp. B.2 dataset.py dataset.pyPaper: 125 chemistry features and 86 functional-group fractions app. B.2
MLPsklearn MLPRegressor, hidden (300, 300), max_iter=2000, tol=0.1Code only MLP_train.pyPaper gives no architecture values; parameters 153k tab. 3
ChemBERTa fine-tuneAdamW, lr 1e-5, batch 32, 5 epochsCode only run_experiment_density.py run_experiment_density.py run_experiment_density.pyPaper gives no fine-tuning values app. C.2
ModernBERT8 layers, 12 heads of size 64, hidden 768, intermediate 1152, vocab 1123Code only main.pyPaper gives no values app. B.3
ModernBERT trainingbatch 32, lr 1e-5 (default), warmup 0.1, cosine decay to 0.1 × lr, grad clip 1, 10 epochsCode only main.py main.py main.pyNot in paper
Chemprop architecturehidden 300, depth 3, dropout 0.0, 2 FFN layers, FFN hidden = hiddenCode defaults args_FLASK.pyPaper says Chemprop defaults were used for pretraining app. C.3
Chemprop optimisationbatch 50, 30 epochs, warmup 2 epochs, lr 1e-4 → 1e-3 → 1e-4Code defaults args_FLASK.py args_FLASK.pyDefaults in the repo's Chemprop fork. Paper gives no batch size
Chemprop L1 penaltyl1_lambda = 0.0 by defaultCode only args_FLASK.py train_FLASK.pyNot in the paper. Value used in paper runs not stated
Chemprop pretraining30 epochs on one QM9 property (133,885 examples), then 30 epochs on another property with the message-passing part frozenapp. C.3No script in repo for this step
Chemprop OOD hyperparameter search50 random configurations per property; depth 2 to 6; dropout 0 to 0.40 in steps of 0.05; 1 to 3 FFN layers; hidden size 300 to 2400 in steps of 100app. C.4Sweep code not found; the Chemprop readme links OOD_Experiments directories that are not in the repo readme.md
Topological GNN (TGNN)hidden 64, lr 1e-3, batch 32, 20 epochsCode run_experiment.py run_experiment.pyPaper points to the EGNN appendix for training instructions app. C.1
Invariant GNN (IGNN)hidden 64, lr 1e-3, batch 32, 50 epochsCode run_experiment.py run_experiment.py
Equivariant GNN (EGNN)hidden 64, lr 1e-3, batch 32, 100 epochsCode run_experiment.py run_experiment.py
MACE (density config)2 interactions, 256 channels, max L 2, correlation 2, r_max 5.0, lr 1e-3, batch 8, up to 800 epochs, SWA from epoch 400Code density.yamlOne YAML per property in experiments/mace/configs/. Paper: 3.9M parameters tab. 3
Equivariant Transformer (ET)Two configs: lr 1e-4 and lr 1e-6, batch 64, 20 epochsCode run_experiment.py run_experiment.pyWhich config produced the table is not stated
Graphormer-3Dbatch 64Code run_experiment.pyLearning rate and epochs not read
GotenNet, GeoFormerNot checked—Official code location not identified in the repo
Lipophilicity splitNot statedapp. C.9Loader exists MLP_train.py
Binned R² tail fractionNot stated§2Not implemented in the released repository
LLM promptLlama 3.1 8B, prompt asks for a 4-decimal float; first decimal number is parsedapp. D.1 tab. 10Possible data leakage, per the authors app. D

Runtimes per epoch on 10k and QM9 are given in tab. 4.

Results

Author-reported. Setup: 10 molecular property tasks, 15 models, RMSE on ID and OOD test sets, mean of 3 training runs §2 tab. 7.

  • Headline gap. The top-performing model's average OOD error is about 3 times its ID error [abstract].
  • Best OOD models. GotenNet has the lowest OOD RMSE on 7 of 10 tasks, and MACE on 2 (α and C_v) §4.1 tab. 7. The paper's text does not mention EGNN, which has the lowest OOD RMSE on density (0.0279) tab. 7.
  • Best ID models. GeoFormer has the lowest ID RMSE on 3 tasks (HOMO, tied with ET; LUMO; C_v) §4.1 tab. 7.
  • ID and OOD are weakly linked. Across tasks, the distance correlation between ID and OOD performance is moderate (d = 0.4678, p = 0.0010). High ID scores do not guarantee OOD scores §4.7.
  • Electronic properties. No model achieves good OOD performance on HOMO, LUMO, gap and μ §4.1.
  • Pretraining. Pretraining improved ID RMSE by 31% for ChemBERTa, 35% for MoLFormer and 12% for Regression Transformer, but OOD RMSE did not change significantly. Binned OOD R² fell by 53% for MoLFormer and 39% for ChemBERTa §4.2 fig. 4.
  • Cross-property pretraining. Chemprop pretrained on one QM9 property and fine-tuned on another degraded OOD performance when the Pearson correlation between the two properties was below about 0.35, and improved it when they were strongly correlated §4.2 fig. 5.
  • Representation. In the paper's averages, 3D models have lower OOD RMSE than graph models on all 10 columns. Graph models beat SMILES models on 9 of 10 §4.4 tab. 1. These are averages over the models in each group, so they mix architectures.
  • Hyperparameter search. Searching 50 random Chemprop configurations per property lowered OOD RMSE for density (−60%), heat of formation (−23%) and ZPVE (−50%). The paper does not report a broad gain §4.3 fig. 6.
  • Data augmentation. Adding a few thousand OOD molecules to training improved OOD performance on 7 of 8 QM9 tasks. The gain was sizeable with about 4% augmented data. μ did not improve §4.5 fig. 7.
  • ModernBERT. Among transformers, ModernBERT reduced OOD RMSE for heat of formation by more than 58% and for C_v by more than 78% against the best other transformer §4.6 fig. 8.
  • Lipophilicity. Chemprop had ID RMSE 0.463 and OOD RMSE 1.051. MoLFormer had the lowest OOD RMSE of the five models tested (0.956) tab. 9.
  • LLMs. Llama 3.1 8B without fine-tuning gave very large OOD errors, for example 262.99 for heat of formation. The authors caution against comparing these numbers with the main table because of possible training-data overlap app. D.2 tab. 11.

Averaged RMSE by representation tab. 1

RepresentationSplitHoFDensityHOMOLUMOGAPZPVE⟨R²⟩ (spatial extent)αμC_v
3DID11.090.01210.00260.00300.00420.000521.74650.32340.36900.1296
3DOOD21.760.02470.01520.01370.02380.0031112.72280.308902.28320.9457
GraphID15.680.00920.00410.00480.00580.001435.680.83050.550.3341
GraphOOD100.60.05510.01920.01870.02670.0129234.730.47722.32.149
SMILESID22.860.01630.00680.00880.01030.004650.2971.4440.71340.4923
SMILESOOD99.72530.11730.02450.02670.03150.0214306.146.3032.7663.0175

RMSE on ID and OOD test sets tab. 7

Mean of 3 runs. In the paper, the first row of each model is the ID split, the second the OOD split. The paper's table labels Random Forest and MLP as SMILES; see Pitfalls.

ModelSplitHoFDensityHOMOLUMOGAPZPVE⟨R²⟩ (spatial extent)αμC_v
Random ForestID24.430.02480.00610.00710.00850.0011352.30.9400.6740.375
Random ForestOOD139.890.18150.03040.03720.03710.02303363.08.4702.8993.362
MLPID13.660.05320.00940.00910.01300.0056049.90.8170.6960.384
MLPOOD38.430.09410.02470.02010.04680.01370470.96.8592.3890.593
RTID22.230.01630.00900.01020.01330.0028968.22.2641.1040.654
RTOOD24287647558.9539.74584.880.033927.690625458699682.71911435
ChemBERTaID22.720.01540.00700.00930.01040.0039051.71.2540.7130.489
ChemBERTaOOD100.860.11950.02440.02560.03090.02253302.66.3282.7232.765
MoLFormerID10.940.02730.00500.00520.00640.0010640.11.0470.6020.785
MoLFormerOOD93.60.07700.02360.02560.02750.01990314.17.3562.2323.667
ChempropID15.430.00920.00410.00460.00580.0018835.80.8660.5450.340
ChempropOOD99.720.03470.01890.01790.02690.01277233.74.8502.3042.118
EGNNID10.070.00770.00480.00520.00690.0010319.60.5660.4810.267
EGNNOOD19.190.02790.02120.02360.03120.00583181.35.6592.4462.079
IGNNID14.680.00840.00500.00530.00700.0017377.50.9030.5190.405
IGNNOOD23.350.02810.08180.01940.02970.00677128.65.6112.5012.212
TGNNID14.460.02580.00570.00720.01780.00167211.60.7510.6730.377
TGNNOOD29.200.03310.01840.01900.04240.00260625.52.7872.5240.627
MACEID5.560.06170.01500.01350.01810.001809.80.3220.4300.134
MACEOOD38.860.06700.03390.02470.04090.0021068.31.5432.2280.229
GotenNetID5.440.00700.00520.00390.00880.0004311.80.5530.3190.197
GotenNetOOD15.540.03600.01260.01180.02290.0005316.71.8252.1730.302
GraphormerID9.640.00680.00400.00420.00550.0002433.40.4310.6260.180
GraphormerOOD31.620.07700.02360.02560.02750.01990314.17.3562.2323.667
ETID29.970.00810.00270.00310.00430.0005728.20.4900.3680.160
ETOOD52.500.04790.02200.02360.02710.01710298.06.5682.2573.405
GeoFormerID17.770.00710.00270.00280.00460.0003010.90.3260.8470.124
GeoFormerOOD43.320.03660.01570.01860.02400.0055763.84.2012.5441.354
ModernBERTID14.680.01170.00640.00760.00950.0007340.10.8700.6980.407
ModernBERTOOD44.490.02870.02160.02320.03240.00170228.72.4892.6570.611

Mean batched R² (ID and OOD) tab. 5

The appendix calls this "batched R²" and the main text calls the OOD version "binned R²". The paper does not say whether these are the same metric (see Pitfalls). Rows match the RMSE table above.

ModelSplitHoFDensityHOMOLUMOGAPZPVE⟨R²⟩ (spatial extent)αμC_v
ChemBERTaID0.9370.9630.8380.9630.9440.9920.9480.9770.6490.985
ChemBERTaOOD0.3390.3720.0590.0210.0760.5440.0630.0090.1040.126
ChempropID0.9630.9850.9400.9870.9800.9960.9670.9810.7920.990
ChempropOOD0.5280.9010.2060.1610.0780.5970.3310.3320.0960.463
EGNNID0.9920.9880.9290.9330.9880.9810.9940.9800.9790.765
EGNNOOD0.8690.8860.2380.0740.0280.6810.4000.3440.0780.424
ETID0.9770.9940.9740.9940.9891.0000.9750.9970.7020.999
ETOOD0.8610.9530.2980.3130.1030.9520.6840.6730.0590.870
GeoFormerID0.9540.9910.9730.9950.9891.0000.9970.9970.7400.999
GeoFormerOOD0.6950.9410.2430.2760.0350.8310.8350.4010.0340.683
GotenNetID0.9960.9920.9260.9930.9781.0000.9970.9940.9290.998
GotenNetOOD0.9460.9470.1510.3350.0260.9990.9980.7720.1110.990
GraphormerID0.9850.9910.9440.9890.9821.0000.9710.9950.7230.997
GraphormerOOD0.7900.9260.3040.2490.2720.4450.4820.3510.1170.651
IGNNID0.9730.9870.9220.9850.9700.9940.9770.9760.8120.986
IGNNOOD0.8520.8660.2290.5440.0350.7370.4240.2070.0900.353
MACEID0.9950.4120.3730.8890.8070.9960.9970.9980.8670.998
MACEOOD0.8460.2120.0250.1840.0080.9790.8580.8230.0580.990
MLPID0.9830.0910.0000.7650.7080.7850.8800.9760.6110.982
MLPOOD0.7840.0890.0170.0860.0030.1420.2830.1660.0930.903
MoLFormerID0.9840.9920.9270.9850.9780.9990.9700.9920.7820.995
MoLFormerOOD0.2810.6040.0440.0280.0970.4800.1870.1530.0760.453
ModernBERTID0.9550.9800.8800.9720.9570.9990.9570.9840.6850.991
ModernBERTOOD0.6910.8930.2850.2300.1900.9920.7310.7640.0920.918
RTID0.9540.9690.5680.9580.9380.9810.9380.9260.4720.977
RTOOD0.1800.2260.0200.0170.0320.0440.0960.0590.0850.084
Random ForestID0.9210.9120.8740.9690.9570.9990.9330.9790.6790.988
Random ForestOOD0.1470.0210.0230.0130.0430.0410.0840.1080.0980.011
TGNNID0.9700.9610.8720.9630.8690.9980.4070.9860.6810.989
TGNNOOD0.8140.8410.2680.2840.0570.9900.1310.5540.0740.926

Standard deviations of these values tab. 6 are in the paper and are not transcribed here.

Lipophilicity RMSE tab. 9

Mean of 3 runs ± standard deviation.

ModelMLPRandom ForestRTMoLFormerChemprop
ID0.866 ± 0.090.548 ± 0.0011.139 ± 0.020.473 ± 0.0060.463 ± 0.01
OOD2.041 ± 0.21.576 ± 0.0061.164 ± 0.0030.956 ± 0.0041.051 ± 0.02

Statistical tests on OOD performance by model family tab. 8

Kruskal-Wallis across geometric, transformer and graph groups per property, then Mann-Whitney U per pair. N = 39 per property.

PropertyKruskal-WallisGeometric > TransformerGeometric > GraphGraph > Transformer
HoF0.000000.000000.003980.00485
Density0.004240.001750.078450.00673
HOMO0.051190.015690.488370.02197
LUMO0.000460.000100.203890.00485
GAP0.105770.981130.784530.85461
ZPVE0.051630.010670.511640.05052
⟨R²⟩0.000060.000180.000020.30314
α0.010240.001650.238080.05123
μ0.492320.834750.767140.87963
C_v0.025540.006410.453560.02074

Runtimes tab. 4

Seconds per epoch, as reported.

ModelDevice10kQM9
Random Forest2.4 GHz 8-core Intel Core i90.56
RTV10063210275
ChemBERTaL4013165
MoLFormerH1001472
ChempropH1001023
EGNNL4010115
IGNNL4010115
TGNNL4010115
MACEH10070165
GraphormerAMD MI300A619
ETL401075
GeoFormerH10060230
GotenNetA10020120
ModernBERTL4015165
MLPH1000.0090.5

Llama 3.1 8B, no fine-tuning tab. 11, tab. 12

ModelSplitHoFDensityHOMOLUMOGAPZPVE⟨R²⟩αμC_v
Llama 3.1 8B RMSEID93.37780.144693.37780.30971.02343.8958117675.441.470357.796
Llama 3.1 8B RMSEOOD262.98600.1744262.98601.14360.95454.9597168873.345.635732.026
Llama 3.1 8B batched R²ID0.0080.20500.00090.00250.01270.00080.00000.00340.08450.0000
Llama 3.1 8B batched R²OOD0.02540.10480.00070.00000.00180.00220.00050.00160.06310.0007

The HOMO column repeats the HoF values exactly in both rows, which looks like a typesetting error (see Pitfalls).

Paper vs code

Repository: https://github.com/FLASK-LLNL/BOOM at 2bb1d835e62cd2c6a0d1d0321e2f283f7d802ea3, Apache-2.0 LICENSE. The owner is the FLASK-LLNL organisation, and the repository's CONTRIBUTORS file lists most of the paper's authors. The paper links the repository in its abstract. The repository is therefore official.

  • Chemprop version. The paper says Chemprop v1.4.0 was used for pretraining and HPO app. C.3 app. C.4. The repository builds on Chemprop 1.7.1 with a modified training loop readme.md.
  • L1 penalty. The Chemprop fork adds an L1 term to the training loss, weighted by l1_lambda train_FLASK.py. The paper does not describe it. The default is 0.0, so the penalty only matters if the paper runs set it args_FLASK.py.
  • QM9 OOD size. The paper says the lowest 10% of QM9 molecules form the OOD test set app. A.1. The released code fixes it at 10,000 molecules prepare_splits_qm9.py. Figure 7 also refers to 10,000 OOD examples fig. 7.
  • QM9 ID fraction. The paper says 10% of QM9 molecules form the ID test set app. A.1. The code uses 5% for QM9 prepare_splits_qm9.py, as it does for the 10k dataset.
  • Random Forest and MLP features. The paper's results table labels them SMILES tab. 7. The paper's model summary and appendix say RDKit descriptors tab. 3 app. B.2. The code uses RDKit descriptors dataset.py MLP_train.py.
  • Validation fraction. The paper says 10% holdout for hyperparameter selection app. C.1. The ChemBERTa script uses 20% run_experiment_density.py. The MACE config uses 10% density.yaml.
  • Number of model-task combinations. The abstract says over 150 [abstract]. The repository README says over 140 README.md.
  • Missing code. The binned R² metric is not implemented. The Chemprop OOD hyperparameter sweep and the Chemprop augmentation experiment are not in the repository. The Chemprop readme links OOD_Experiments directories that are absent readme.md.
  • Data preparation. The README advises against rerunning data preparation, because the seed may not reproduce the same split README.md.
  • Author name. The arXiv metadata lists "Busra Sahin"; the LaTeX source has "Busra Demirci". The card uses the arXiv metadata.

Pitfalls

  • QM9 split size and ID fraction disagree. Use the released QM9 split files, or copy the code's choice (10,000 OOD, 5% ID), and say which one you used. The paper's text (10% OOD, 10% ID) would not reproduce the released data app. A.1 prepare_splits_qm9.py.
  • "⟨R²⟩" in every results table is the electronic spatial extent, not the coefficient of determination. Its values are in RMSE units such as 52.3 tab. 7.
  • Units look swapped. The dataset table pairs heat of formation with g/cc and density with kcal/mol tab. 2. The LLM prompt table pairs the same units tab. 10. Check units against the data before using them.
  • Possible copy error in Table 7. The Graphormer OOD row is identical to the MoLFormer OOD row in every column except HoF tab. 7. Treat Graphormer's OOD numbers as unverified until checked against outputs.
  • Possible copy error in Table 11. The HOMO column duplicates the HoF column in both LLM rows tab. 11.
  • Random Forest and MLP labelled SMILES. Use the RDKit descriptor pipeline in the code when reproducing them tab. 7 dataset.py.
  • Binned R² is under-specified. The paper does not give the tail fraction, the binning rule or the handling of the two tails §2. Implement it only with a stated convention, and report that convention.
  • Table 8 caption disagrees with its values. The caption says only μ and GAP fail to reject the null. At 0.05, HOMO (0.05119) and ZPVE (0.05163) also do not reject tab. 8.
  • Batched R² and binned R² may be different metrics. The appendix table uses "batched R²" and the main text uses "binned R²" tab. 5 §2. The paper does not define the link, so do not mix the two names.
  • Chemprop L1 term is not in the paper. Confirm l1_lambda for any Chemprop run you reproduce train_FLASK.py.
  • Two ET configurations. The code has lr 1e-4 and lr 1e-6 at batch 64 for 20 epochs, and the paper does not say which was used run_experiment.py.
  • Tuning and testing use the same set. The paper picks the best Chemprop configuration per property by minimum OOD test RMSE fig. 6 app. C.4. The reported gains are therefore on the same test set used for selection, which inflates them.
  • Augmentation selection is one sentence. Augmented molecules are drawn from the QM9 OOD set with properties beyond the 25th and 75th quantiles §4.5. The paper does not say which side is used for each property, or how the 5,000 held-out molecules are chosen fig. 7.
  • LLM results may leak training data. The authors say the density values of some OOD molecules may appear in the LLM's training corpus app. D. Do not treat these as a fair comparison with the other models.
  • Lipophilicity split is not described. Table 9 reports ID and OOD RMSE, but the split procedure for Lipophilicity is not stated app. C.9.
  • Metadata author names. The arXiv author list and the LaTeX author list differ for one author (see Paper vs code).

Lineage

  • Builds on the MoleculeNet benchmark and its split protocols, which the paper contrasts with its own property-space split §3.
  • Uses or compares against ChemBERTa, MoLFormer, Regression Transformer, ModernBERT, Chemprop, EGNN, MACE, GotenNet, GeoFormer, Graphormer-3D and Equivariant Transformer §2 app. B.
  • Related benchmarks named in the related work section: MatBench, MatFold, DrugOOD and the OOD-generalization work of Mole-OOD §3.
  • Superseded by: not known from this wiki.

Source and license

Adapted from “BOOM: Benchmarking Out-Of-distribution Molecular Property Predictions of Machine Learning Models” by Evan R. Antoniuk, Shehtab Zaman, Tal Ben-Nun, Peggy Li, James Diffenderfer, Busra Sahin, Obadiah Smolenski, Everett Grethel, Tim Hsu, Anna M. Hiszpanski, Kenneth Chiu, Bhavya Kailkhura, Brian Van Essen (arXiv:2505.01912), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors. Code citations refer to https://github.com/FLASK-LLNL/BOOM at commit 2bb1d835e62c (Apache-2.0). Any quoted code is shown under that license.