5×5 cross validation · two data sets
PT-GIN1 is a graph network pre-trained to reproduce a molecule’s own Morgan fingerprint, then frozen and handed to LightGBM. Its authors report it beating hashed ECFP on five of six Biogen ADME tasks. Run here against those same fingerprints through that same predictor — fifteen endpoints, two data sets, 25 folds each — it wins six endpoints and loses six, and on Biogen, its own benchmark, it wins one and loses three. Which six it wins is not random, and it is not about how much data an endpoint has. PT-GIN improves on the fingerprints precisely where the fingerprints were already doing badly, and degrades them where they were doing well.
Every atom in a molecule is given one token per circular substructure radius, drawn from a vocabulary that Sort & Slice2 builds by ranking substructures on how many pre-training molecules they appear in and keeping the most common. A Graph Isomorphism Network3 reads those tokens and is trained, on 462,189 QMugs molecules4, to answer 2,048 yes-or-no questions about the molecule it is looking at: which bits of that molecule's own hashed ECFP45 are set.
The target is computable from the structure. There is no assay, no measurement and no label scarcity — pre-training data is anything with a SMILES string. What the network has to learn in order to reconstruct a fingerprint from a graph is, the argument goes, a representation that carries the same substructure information the fingerprint does, but in a form a downstream model can use more flexibly.
Downstream the encoder is frozen. Each layer's output is graph-pooled, the per-layer vectors are concatenated, and LightGBM6 predicts the endpoint. Nothing is fine-tuned: the authors report that end-to-end fine tuning cost more, helped negligibly, and sometimes hurt.
That last detail is what makes this method unusually easy to judge. PT-GIN and the LightGBM baseline are the same pipeline with different inputs. One is handed 2,048 Morgan counts, the other 2,048 to 3,072 numbers from a frozen network, and both hand them to LightGBM at library defaults. Whatever separates them is the representation, and nothing else.
The paper does not have one PT-GIN. It pre-trains a grid of maximum substructure radius by vocabulary size, and for each task it picks whichever pre-trained model does best in downstream tuning. Ten of those checkpoints are released, so the choice is part of the method and gets reproduced — on the validation fifth of each fold, which is the only place this protocol allows a choice to be made. Every checkpoint is fit on the four fifths of all 25 folds and scored on the held-out fifth; the best mean validation R² wins the endpoint. The test set plays no part in it. That is 3,750 LightGBM fits to choose 15 models.
| Endpoint | Radius | Vocab | Val R² | Margin | Grid spread | Fold sd | Decisive? |
|---|---|---|---|---|---|---|---|
| LogD | 0 | 2,048 | 0.720 | 0.002 | 0.021 | 0.037 | within noise |
| LogS | 2 | 1,024 | 0.508 | 0.002 | 0.027 | 0.046 | within noise |
| LOG_HLM | 2 | 1,024 | 0.410 | 0.001 | 0.014 | 0.038 | within noise |
| LOG_MLM | 2 | 1,024 | 0.546 | 0.007 | 0.021 | 0.090 | within noise |
| LOG_Caco_AB | 2 | 1,024 | 0.410 | 0.010 | 0.031 | 0.079 | within noise |
| LOG_Caco_Efflux | 1 | 8,192 | 0.443 | 0.015 | 0.032 | 0.079 | within noise |
| LOG_MPPB | 2 | 1,024 | 0.531 | 0.001 | 0.024 | 0.056 | within noise |
| LOG_MBPB | 1 | 2,048 | 0.547 | 0.001 | 0.028 | 0.060 | within noise |
| LOG_MGMB | 2 | 16,384 | 0.362 | 0.030 | 0.184 | 0.287 | within noise |
The first thing the sweep says is that the grid barely exists. Across all nine ExpansionRx endpoints the ten checkpoints span a median of 0.027 R², and the winner beats the runner-up by a median of 0.002. Set that against the fold-to-fold standard deviation of the winner itself — 0.037 to 0.287 — and the comparison is not close: not one of the fifteen endpoints across both data sets has a margin as large as a single fold’s worth of noise.
Five different checkpoints get chosen here and four on Biogen, which looks like the per-task variation the method is built around. It is not. It is what picking the maximum of ten near-identical numbers looks like. A radius-2 network with a 1,024-token vocabulary takes five of the nine ExpansionRx endpoints; a radius-0 network — one token per atom type, no circular environment at all — takes LogD here and three of the six Biogen endpoints. That a tokenisation carrying no substructure information beyond the atom finishes first as often as it does is the clearest evidence that the choice is not carrying signal.
The one endpoint with a real spread, LOG_MGMB at 0.184, is the smallest in either data set at 431 measurements, and its fold standard deviation is 0.287. That is not a grid with structure in it. That is a small endpoint being noisy in ten directions at once.
Tukey HSD10 across the 25 folds, counted over every endpoint × metric combination. Tied means the method could not be distinguished from the leader at α = 0.05.
PT-GIN is on top of six of the 27 combinations and best alone on none of them. CheMeleon is on top of 24, and LightGBM on none. But the tally flattens the only part of this that is interesting, because PT-GIN’s six are not scattered at random across the endpoints.
| Endpoint | LightGBM | ChemProp ST | ChemProp MT | CheMeleon | PT-GIN |
|---|---|---|---|---|---|
| LogD | 0.510±0.021 | 0.700±0.026best | 0.667±0.033 | 0.671±0.019 | 0.420±0.016 |
| LogS | 0.335±0.036 | 0.447±0.038 | 0.454±0.025tied | 0.474±0.029tied | 0.257±0.032 |
| LOG_HLM | 0.139±0.045 | 0.087±0.088 | 0.118±0.104 | 0.221±0.071tied | 0.178±0.045tied |
| LOG_MLM | 0.084±0.064 | -0.007±0.116 | 0.033±0.068 | 0.135±0.141tied | 0.174±0.050tied |
| LOG_Caco_AB | -0.014±0.129 | -0.307±0.264 | -0.046±0.179 | 0.160±0.191tied | 0.099±0.083tied |
| LOG_Caco_Efflux | -0.135±0.096 | -0.103±0.088 | -0.057±0.105 | 0.110±0.158best | 0.001±0.054 |
| LOG_MPPB | 0.229±0.105 | 0.120±0.168 | 0.445±0.072 | 0.541±0.093best | 0.203±0.079 |
| LOG_MBPB | 0.477±0.080 | 0.413±0.103 | 0.642±0.037 | 0.713±0.061best | 0.434±0.041 |
| LOG_MGMB | 0.260±0.148 | 0.279±0.063 | 0.616±0.020tied | 0.642±0.027tied | 0.421±0.054 |
| Endpoint | LightGBM | ChemProp ST | ChemProp MT | CheMeleon | PT-GIN |
|---|---|---|---|---|---|
| LogD | 0.713±0.017 | 0.855±0.013best | 0.829±0.014 | 0.843±0.009 | 0.647±0.014 |
| LogS | 0.478±0.022 | 0.554±0.015 | 0.573±0.013tied | 0.562±0.018tied | 0.480±0.013 |
| LOG_HLM | 0.531±0.020 | 0.497±0.040 | 0.506±0.036 | 0.583±0.023best | 0.546±0.017 |
| LOG_MLM | 0.441±0.035 | 0.410±0.046 | 0.414±0.032 | 0.482±0.037best | 0.412±0.023 |
| LOG_Caco_AB | 0.469±0.043 | 0.327±0.095 | 0.501±0.059 | 0.564±0.052best | 0.470±0.040 |
| LOG_Caco_Efflux | 0.512±0.058 | 0.559±0.038 | 0.539±0.041 | 0.633±0.048best | 0.565±0.030 |
| LOG_MPPB | 0.611±0.041 | 0.511±0.061 | 0.701±0.030 | 0.782±0.034best | 0.533±0.062 |
| LOG_MBPB | 0.696±0.042 | 0.706±0.042 | 0.813±0.019 | 0.857±0.016best | 0.702±0.024 |
| LOG_MGMB | 0.609±0.058 | 0.388±0.069 | 0.773±0.014 | 0.808±0.013best | 0.626±0.033 |
This is the paper's central claim under this protocol, and the cleanest test on the page: same predictor, same molecules, same folds, one representation swapped for another. Folds are paired.
| Endpoint | Δ R² | Folds won | p | Verdict |
|---|---|---|---|---|
| LogD | -0.091 | 0/25 | 7.2e-18 | loses |
| LogS | -0.078 | 0/25 | 1.6e-12 | loses |
| LOG_HLM | +0.039 | 19/25 | 8.5e-04 | wins |
| LOG_MLM | +0.090 | 23/25 | 3.9e-07 | wins |
| LOG_Caco_AB | +0.112 | 22/25 | 7.7e-06 | wins |
| LOG_Caco_Efflux | +0.136 | 25/25 | 8.6e-09 | wins |
| LOG_MPPB | -0.026 | 9/25 | 1.7e-01 | no call |
| LOG_MBPB | -0.043 | 8/25 | 2.5e-02 | loses |
| LOG_MGMB | +0.162 | 21/25 | 2.3e-05 | wins |
Not a sweep in either direction. PT-GIN takes five endpoints, loses three, and cannot be separated on one. The paper’s claim, that pre-training on fingerprints beats the fingerprints, half survives.
Which half is the result, and the obvious explanation is the wrong one. It is not about how much data an endpoint carries: across all fifteen endpoints on both data sets, the PT-GIN advantage has a rank correlation of −0.01 with the number of measurements (p = 0.98). LOG_MLM has 5,692 measurements and PT-GIN wins 23 folds of 25; LOG_MBPB has 1,426 and it loses.
What predicts it is how well the fingerprints were already doing. Sort the fifteen endpoints by the LightGBM baseline’s R² and the advantage runs downhill: Spearman ρ = −0.65 (p = 0.009) over both data sets, and −0.73 (p = 0.025) on ExpansionRx alone. The crossover sits near a baseline R² of 0.3. Caco-2 efflux ratio, where LightGBM scores −0.135, gains 0.136 and PT-GIN wins all 25 folds. LogD, where LightGBM reaches 0.510, loses 0.091 and PT-GIN wins none of 25. LogS, the next strongest, also none of 25.
That is what a smoothed fingerprint looks like. The embedding was trained to reconstruct ECFP4 and cannot contain substructure information ECFP4 does not already have; what it has instead is 2,048 to 3,072 dense, correlated coordinates in place of 2,048 sparse counts. Where the signal is weak enough that variance dominates, that is the better-behaved input and it wins. Where the counts are already carrying a learnable signal, the smoothing is spending resolution the model needed. The one clear exception is LOG_MGMB, which gains 0.162 from a baseline of 0.260 — and which is the smallest endpoint in either data set, at 431 measurements, with a fold standard deviation of 0.29.
The other half of the claim. ChemProp single-task7 is a message-passing network trained from scratch on each endpoint — a different architecture from a GIN, but the same bet that a learned molecular representation beats a fixed one, without the pre-training.
| Endpoint | Δ R² | Folds won | p | Verdict |
|---|---|---|---|---|
| LogD | -0.280 | 0/25 | 4.4e-24 | loses |
| LogS | -0.190 | 0/25 | 3.0e-16 | loses |
| LOG_HLM | +0.090 | 21/25 | 4.6e-04 | wins |
| LOG_MLM | +0.181 | 25/25 | 3.7e-09 | wins |
| LOG_Caco_AB | +0.405 | 24/25 | 1.5e-08 | wins |
| LOG_Caco_Efflux | +0.105 | 23/25 | 1.3e-05 | wins |
| LOG_MPPB | +0.082 | 18/25 | 2.0e-02 | wins |
| LOG_MBPB | +0.021 | 15/25 | 3.2e-01 | no call |
| LOG_MGMB | +0.142 | 25/25 | 2.0e-08 | wins |
Here the pre-training does earn its keep, on six endpoints against two, and by margins that are not small: +0.405 R² on Caco-2 A→B, where a from-scratch D-MPNN scores −0.307 and does worse than predicting the training mean.
The same rule fits. The two endpoints PT-GIN loses are LogD and LogS, 0 folds out of 25 apiece — and those are exactly the two endpoints where a from-scratch D-MPNN is strongest, at R² 0.700 and 0.447. A different architecture, a different comparator, and the boundary lands in the same place: PT-GIN pulls a weak model up and drags a strong one down.
Everything above is ExpansionRx. The Biogen public ADME set9 is the paper's own primary benchmark, and the one it reports winning five of six tasks on. It is not the same experiment: the authors use 200 repeats of 5-fold Butina-clustered cross validation with no fixed holdout, where this project holds out whole BitBIRCH clusters once and cross-validates within what remains. Absolute numbers do not carry across the two designs. Rankings within each do.
It also matters that these released checkpoints were filtered against this data set. Any QMugs molecule within Tanimoto 0.5 of a Biogen compound was excluded from pre-training. ExpansionRx was not one of the paper's benchmarks and got no such filter, so if anything the ExpansionRx result above is the one with more opportunity to be flattered.
| Endpoint | LightGBM | ChemProp ST | ChemProp MT | CheMeleon | PT-GIN |
|---|---|---|---|---|---|
| LOG_SOL | 0.275±0.024 | 0.339±0.027 | 0.345±0.023tied | 0.363±0.021tied | 0.259±0.025 |
| LOG_HLM | 0.326±0.015 | 0.381±0.023 | 0.396±0.017 | 0.474±0.019best | 0.358±0.012 |
| LOG_RLM | 0.389±0.011 | 0.459±0.015 | 0.470±0.014 | 0.513±0.012best | 0.388±0.009 |
| LOG_MDR1_ER | 0.449±0.010 | 0.523±0.011tied | 0.523±0.011tied | 0.520±0.009tied | 0.422±0.012 |
| LOG_HPPB | 0.129±0.094 | -0.064±0.059 | 0.166±0.049 | 0.230±0.065best | 0.160±0.084 |
| LOG_RPPB | 0.118±0.067tied | -0.005±0.044 | 0.112±0.056tied | 0.154±0.061tied | 0.067±0.076 |
| Endpoint | Radius | Vocab | Val R² | Margin | Grid spread | Fold sd | Decisive? |
|---|---|---|---|---|---|---|---|
| LOG_SOL | 0 | 2,048 | 0.266 | 0.004 | 0.025 | 0.076 | within noise |
| LOG_HLM | 0 | 2,048 | 0.347 | 0.016 | 0.033 | 0.043 | within noise |
| LOG_RLM | 2 | 1,024 | 0.384 | 0.004 | 0.020 | 0.026 | within noise |
| LOG_MDR1_ER | 1 | 4,096 | 0.448 | 0.001 | 0.022 | 0.035 | within noise |
| LOG_HPPB | 2 | 4,096 | 0.325 | 0.043 | 0.175 | 0.194 | within noise |
| LOG_RPPB | 0 | 2,048 | 0.313 | 0.029 | 0.134 | 0.248 | within noise |
| Endpoint | Δ R² | Folds won | p | Verdict |
|---|---|---|---|---|
| LOG_SOL | -0.016 | 7/25 | 5.5e-03 | loses |
| LOG_HLM | +0.032 | 24/25 | 1.7e-10 | wins |
| LOG_RLM | -0.001 | 13/25 | 6.0e-01 | no call |
| LOG_MDR1_ER | -0.027 | 2/25 | 1.5e-08 | loses |
| LOG_HPPB | +0.031 | 16/25 | 1.4e-01 | no call |
| LOG_RPPB | -0.051 | 7/25 | 3.8e-02 | loses |
It does not replicate, and this is the data set the paper reports winning five of six tasks on. Against LightGBM, PT-GIN wins one endpoint, loses three, and cannot be separated on two. Against CheMeleon it loses all six endpoints on R² and all six on Spearman, and five of six on MAE. The single combination of 18 where it is on top, it is on top of by being indistinguishable rather than better.
The rule from ExpansionRx transfers, though less sharply, and the clearest instance is against a from-scratch D-MPNN rather than against the fingerprints. The two plasma protein binding endpoints have 128 and 109 training molecules, and single-task ChemProp scores R² of −0.064 and −0.005 on them — worse than predicting the training mean. They are the only two of the six where PT-GIN beats it, by +0.224 and +0.072, winning 25 folds of 25 on human PPB. On the four endpoints where that method actually works, PT-GIN loses to it every time.
One explanation can be ruled out. These checkpoints were pre-trained on QMugs filtered at Tanimoto 0.5 against Biogen, so a Biogen-like molecule was excluded by construction — but ExpansionRx was never one of the paper’s benchmarks and got no such filter, which would let the ExpansionRx result be the flattered one. It is not. Neither test set has a single exact or connectivity-block InChIKey match in the 462,189-molecule corpus, and the median nearest-neighbour Tanimoto is 0.372 on ExpansionRx against 0.431 on Biogen. The unfiltered data set is the less overlapping of the two.
LightGBM runs at library defaults. The paper Optuna-tunes it, 50 trials per task — but it tunes it identically for every representation it compares, so the comparison it draws does not rest on the tuning. Leaving both arms untuned here preserves that, and keeps the only difference between the fingerprint baseline and PT-GIN the thing being studied. A tuned PT-GIN would score higher than the numbers above. So would a tuned LightGBM.
The checkpoint is selected on the validation fifth rather than on a dedicated tuning repeat, which is how the paper does it. This protocol has no spare repeat to give it. The selection table above says how much that choice was worth.
Two things are worth carrying away, and only one of them is about PT-GIN.
The first is that self-supervision on a fingerprint gives you a fingerprint. Every result above is consistent with the embedding being a smoothed, denser ECFP4 and nothing more: its advantage over the sparse counts is predicted by how badly those counts were doing and by nothing else, it rescues a graph network wherever that network is starved, it drags one down wherever it is not, and it never once beats a graph network initialised from a foundation model that was pre-trained on something other than a fingerprint. The ceiling of the pre-training target is the ceiling of the representation, which is a general point about choosing a self-supervised objective rather than a criticism of this one.
The second is a warning about validation splits that this arm gives for free. On eight of the nine ExpansionRx endpoints PT-GIN’s validation R² runs 0.11 to 0.44 above the test R² it then achieves — 0.720 against 0.420 on LogD. On Biogen’s four well-populated endpoints the same gap is −0.01 to +0.03. Nothing here is selecting on validation in a way that could inflate it: the number is one fixed model’s honest score on a held-out fifth. The gap is a property of the ExpansionRx split, which shipped with the challenge and is not cluster-pure, against the Biogen split, which was built by holding out whole BitBIRCH clusters exactly as the folds are. Any method that tunes anything on the first of those is being told a comfortable lie.
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. Every method saw identical training molecules in every fold.