predicthia

How it works

A model published in 1998 was rebuilt from its description, then the same search was run again on twenty eight years of additional data and a descriptor pool that did not exist at the time. This page is the whole account, including the parts that did not reproduce.

1. The 1998 model

Wessel, Jurs, Tolan and Muskal fitted percent human intestinal absorption to 86 compounds. The structures were encoded with 728 descriptors, reduced to 127 after correlated and near-constant columns were dropped. A genetic algorithm searched that pool and chose six descriptors, which were fed to a 6-4-1 feed forward neural network: six inputs, four hidden units, one output. The reported errors were 9.4 percent absorption units on the training compounds and 16.0 on a held-out set of 10 compounds.

The six chosen descriptors were dominated by hydrogen bonding and molecular geometry: how much of the surface could donate or accept a hydrogen bond, and how that surface was arranged. The model was small because the data was small, and the paper said so.

2. The reproduction

The descriptor software of 1998 is gone. ADAPT computed the 728 descriptors on hardware and in a language that no longer runs, and no archived build produces the same numbers today. Reproducing the model therefore meant reimplementing the six published descriptors from their written definitions rather than recovering their original code, and accepting that a reimplementation from a definition is not the same object as the original implementation.

With the six descriptors reimplemented and a 6-4-1 network fitted to the same 86 compounds, the training error came back at 9.7 percent absorption units against the published 9.4. That is close enough to say the model reproduces and far enough to say the reimplementation is not identical. The held-out set of 10 compounds is too small to carry any claim in either direction, so no claim is made from it.

3. What the algorithm chose in 2026

The same search was then run without the 1998 constraints. The pool was 1,301 modern descriptors, the data was 781 compounds carrying a continuous percent-absorbed label, and the genetic algorithm was run twelve times, each time on a different stratified split, so that a descriptor's selection could be counted rather than asserted.

Mean partial charge was chosen in 12 of 12 repeats. Topological polar surface area was chosen in 11 of 12. Nothing else came close to that recurrence.

The 1998 model, searching an unrelated pool with software that no longer runs, chose hydrogen bonding and geometric descriptors. The 2026 search, searching a pool assembled from a different toolkit on nine times as many compounds, chose charge and polar surface. These are the same physics described in two vocabularies: how much charge a molecule carries, and how much polar surface it presents to a membrane. Two unrelated descriptor pools, twenty eight years apart, landed in the same place. That is the strongest result on this site, and it is a result about the physics rather than about either model.

4. The ceiling is in the data

Published absorption values for the same drug disagree with each other, and the disagreement is not small. Of the 783 compounds in the source compilation, 262 carry more than one published value. Sixty one of those disagree by more than 20 points. Thirty one disagree by more than 40.

Methotrexate appears in the literature at 20, 59, 65, 70 and 100.

A model fitted to labels that disagree by 40 points cannot be more precise than 40 points on those compounds, whatever it does internally. The held-out error of 21.3 percent absorption units is therefore close to the resolution the published record currently supports, rather than a shortfall against some cleaner achievable number. Reporting a tighter interval would mean reporting a precision the measurements do not have.

5. Applicability

The model fails on molecules unlike its training set, and the important part is that it fails quietly. The single worst error in validation was salicylic acid, predicted at 4.6 against a measured 100.

Salicylic acid broke no descriptor range. Every one of its six descriptor values sat inside the range the training compounds covered, so a naive range check would have passed it without comment. It was simply small, and sparse in the region the descriptors actually resolve. A range check asks whether each coordinate is in bounds; it does not ask whether anything was ever measured nearby.

So every prediction carries a distance to its five nearest training compounds in the scaled descriptor space, and that distance is compared against the distribution of the same quantity inside the training set. Above the 95th percentile the region is called sparse. Above the 99th it is called far. A prediction from either region is flagged in a visible box above the result rather than in a footnote under it. The prediction is still shown, because hiding an answer teaches a reader nothing, and a flag is itself an answer: it says the model has nothing reliable to offer for this structure.

6. The peptides

The cyclic peptide arms were built the same way and searched the same pool, with peptide-specific descriptors added to it. The winning descriptors are polar surface area per heavy atom, and lipophilicity balanced against polarity.

They are not N-methylation, and they are not conformational shielding. Both of those were in the pool and available to the search on every repeat, and the literature on cyclic peptide permeability would have predicted both. The algorithm did not take them. What it took instead is a size-normalized measure of how much polar surface the peptide carries, and a balance term between how greasy it is and how polar it is. Whether that is because the chosen descriptors already capture what N-methylation does to polar surface, or because the effect is weaker across a large and varied population than it is within the series it was demonstrated on, this data cannot say. It is reported as what the search chose, not as an explanation of why.

The two arms are fitted and reported separately and are never pooled. The Caco-2 arm holds 1,281 peptides and makes a held-out error of 0.644 log units. The passive arm holds 7,298 peptides and makes a held-out error of 0.824 log units. On the 585 peptides both contain, the assays correlate 0.557 and sit 1.15 log units apart, which is a systematic offset between two different measurements rather than noise. A mean predictor scores 0.834 on the Caco-2 rows and 1.120 on the passive rows; both of those are the floor, not results, and they are printed only so the model errors can be read against something.

What the numbers are

QuantityValue
Absorption held-out error over 12 stratified splits21.3 plus or minus 1.3
Absorption held-out error, deployed consensus20.9
Absorption held-out correlation0.744
Mean predictor on the same absorption rows, the floorabout 29 to 31
Caco-2 arm held-out error, log units0.644
Mean predictor on the Caco-2 rows, the floor0.834
Passive arm held-out error, log units0.824
Mean predictor on the passive rows, the floor1.120

The mean predictor rows are the floor and not results. A predictor that ignores the structure entirely and answers with the training mean scores those numbers on the same held out rows. They are shown so that an error can be read against something, never as an achievement.