PharmCast-S
Comparing two molecules in pharmacophoric space in a fraction of a millisecond, from 2D structure alone.
A new turbocharged full pharmacophoric comparison of two molecules, starting from nothing but their SMILES, takes 0.034 milliseconds against 5.0 seconds for the real calculation, because it never builds a three-dimensional conformer at all. The answer agrees with the real one at Pearson 0.964, and screening 1% of a collection by surrogate score recovers 91% of its genuinely closest chemistry. Measured on 150,912 molecules it has never seen.
Two real molecules the model has never seen, carried through every stage to the number you actually use. The fingerprint is the intermediate; the pharmacophoric similarity is the product.
A pharmacophore fingerprint records which arrangements of chemical features a molecule can present in three dimensions. Almost everything useful you do with one is comparative: is this design close to that reference, which hundred of these million compounds are worth buying, which of these hits are really the same chemotype. Those are ranking and clustering questions, and they depend on the similarity between two fingerprints rather than on any single fingerprint being perfect.
The conventional route to that number is expensive and has two variants, both of which start the same way. You generate a three-dimensional conformer ensemble, then fingerprint it. Either you OR the conformers together into one ensemble fingerprint, or you keep them separate and carry a fingerprint per conformer, as the polypharmprint workflow does so the best matching conformer pair can be found. Either way you pay for the conformers, and then you pay again for fingerprinting each one.
This model bypasses all of it. No conformer generation, no per-conformer fingerprinting, no ensemble to assemble. It reads a canonical SMILES and predicts the fingerprint directly, one output for every one of the 10,560 bits. To be precise about what it predicts: it was trained on ensemble fingerprints, the OR of 100 conformers per molecule, so what it reproduces is the ensemble fingerprint and the similarity between two of them, and the results below measure it on the operation that matters: does its answer to "how similar are these two" match what the real calculation says, and does it rank candidates in the same order.
It is a filter, not a replacement. The real calculation remains the arbiter for anything you act on. The surrogate is what lets you put far more chemistry in front of it.
| Input | canonical SMILES |
| Features | 2,048-bit Morgan radius 2, plus 11 descriptors |
| Output | all 10,560 bits, one neuron each |
| Trained on | 1,192,657 molecules of the screening collection |
| Tested on | 150,912 molecules never seen in training |
| Median agreement per molecule | 0.890 |
| Similarity correlation | 0.964 |
| Speed | 93,394 molecules per second |
The June 2026 Enamine screening collection, physically stocked material rather than a virtual enumeration. Enamine states 4,774,670 compounds; property filters on ingest, molecular weight at or below 600, at most 10 rotatable bonds and no more than one Lipinski violation, retained 4,612,044. The median compound weighs 344 with 24 heavy atoms, and only 8% carry defined stereochemistry.
The collection was profiled in its own right before any model was trained, including an exhaustive all-against-all similarity analysis of every compound against every other. It is broad in frameworks, 135,768 distinct Bemis-Murcko scaffolds in a 200,000 molecule sample with 88% of them appearing once, and simultaneously dense in analogs, a median nearest-neighbour Tanimoto of 0.714 with 64,473 compounds having a 2D-identical twin. Full profile.
| Property | 5th pct | Median | 95th pct |
|---|---|---|---|
| Molecular weight | 255 | 344 | 465 |
| Bonds | 19 | 26 | 36 |
| Rings | 2 | 3 | 5 |
| Aromatic rings | 1 | 2 | 4 |
| Rotatable bonds | 2 | 5 | 8 |
| H-bond acceptors | 2 | 4 | 7 |
| Polar surface area | 38 | 71 | 114 |
| cLogP | 0.7 | 2.7 | 4.7 |
| Fraction sp3 carbon | 0.09 | 0.35 | 0.71 |
Every fingerprint in this work is built the same way from that collection:
100 ETKDGv3 conformers per compound, UFF optimised, each fingerprinted with
pfpall and ORed into one record per molecule.
PharmCast-S is trained on the screening collection alone. PharmCast-SP adds a second corpus of peptides taken from experimentally determined protein structures, described here because it is the same fingerprint space.
Structures come from an RCSB query for entries at 2.5 Angstrom resolution or better with R-free at or below 0.22, which returned 71,018 entries; 70,818 were parsed and 69,450 yielded usable fragments. Loops are runs of 2 to 6 residues lying between annotated secondary structure, read from the helix and strand records in the mmCIF itself rather than re-derived. That gives 1,524,535 loop instances across 135,408 protein chains, a median of 15 per entry, collapsing to 117,741 distinct sequences and 133,136 distinct capped molecules.
Each fragment is capped with its real flanking atoms, an acetyl built from the preceding residue and an N-methylamide from the following one, so it never presents a free amine and acid the protein does not have. Backbone continuity is enforced by requiring the carbon to nitrogen distance between consecutive residues to fall between 1.0 and 2.0 Angstroms rather than trusting residue numbering, which rejected 54,520 candidates that residue numbering alone would have accepted.
Repeat observations are kept rather than deduplicated, and the reason is measurable. Taking 1,500 sequences seen in three or more entries and comparing their observed fingerprints against each other, the median agreement is 0.878. Most instances of a loop are similar, as you would expect, but 18% of sequences fall below 0.70, carrying genuinely different pharmacophores between one crystal structure and the next, and only 19% are near copies. Collapsing them to one representative would discard that.
Trained on 1,192,657 molecules of the screening collection. Tested on 150,912 molecules that were not used in training.
A critical assumption underlies every number on this page. Every molecule used to train and to evaluate this model is one that has actually been made or actually observed: compounds held in a commercial screening collection, and peptides extracted from experimentally determined protein structures. The model has only ever been shown chemistry that is synthetically real, so a degree of synthetic feasibility is built into its training distribution rather than imposed on it afterwards.
An arbitrary 2D structure that has never been synthesised is therefore outside the domain the model was fitted on. It is not necessarily excluded, and the model will return an answer for it, but that answer is an extrapolation and should be treated as one.
Catalogue chemistry is not the only thing the model is asked to handle, so
the held out set above is widened here to everything it meets in practice:
molecules from the screening collection fingerprinted after the training
snapshot, loop peptides whose names the model never saw, and real ChEMBL compounds above 600 molecular weight, each carrying a measured
activity value, which lie outside the size range the collection covers. Scored by the
composite model, pharmcast_sp_v3.pt, trained on
2,056,482 collection molecules and
58,039 peptides. Every point is a pair.
| Test chemistry | Pairs | Median error | Within 0.05 | Correlation |
|---|---|---|---|---|
| screening collection | 1,200 | 0.02 | 85% | 0.97 |
| loop peptides | 1,200 | 0.02 | 84% | 0.98 |
| large ChEMBL compounds | 1,200 | 0.07 | 38% | 0.61 |
| All three together | 3,600 | 0.03 | 69% | 0.89 |
The collection and the peptides both land on the diagonal, at 0.02 median error and correlations of 0.97 and 0.98. The peptide result is what training on peptides bought: this model saw 36,039 of them. The large ChEMBL compounds are the honest weak spot at 0.08 median error and 0.65 correlation, and the scatter shows why that number behaves the way it does. The cloud is centred on the diagonal rather than displaced from it, so the model is not biased on these molecules so much as imprecise about them. Read the combined figure as a statement about coverage, not as a single accuracy: the 0.03 median error over all three is a blend of two chemistries it handles well and one it handles coarsely.
Colouring the same pairs two different ways answers two questions the headline number cannot.
The first asks whether the surrogate is simply re-deriving 2D similarity. It is not. Accuracy is flat across the range, so a pair of molecules that look nothing alike on paper is predicted as well as a pair that look somewhat alike. That is the property that matters for scaffold hopping. Worth saying plainly: nothing in this sample is really 2D similar. The median pair scores 0.13, the 99th percentile is 0.24, and the single closest pair is 0.44, so red on that scale means least dissimilar rather than similar.
The second shows molecular weight. Heavier pairs sit toward the upper right, which is the known behaviour: larger molecules carry more pharmacophore features and score higher against each other. Accuracy does not degrade with weight inside the range the collection covers, roughly 203 to 577.
Everything above is about pairs. This is about one molecule at a time. A pharmacophore fingerprint is 10,560 bits, each one either present or absent, so the surrogate's output for a single molecule is 10,560 true or false predictions against a known answer. The Matthews correlation coefficient scores exactly that. It uses all four cells of the confusion matrix, so it cannot be flattered by the fact that most bits are off.
One is a perfect match and zero is chance.
The distribution is single-peaked and tight, so the surrogate behaves consistently rather than splitting the collection into molecules it handles and molecules it does not. The worst single molecule in the whole test set still reaches 0.19.
The usual job is not to reproduce a calculation you could have run. It is to score designs nobody has evaluated, far more of them than you can afford the real calculation on, and spend the next round's effort on the promising ones.
So: rank a held-out pool of 156,907 molecules by the surrogate, walk down that ranking, and record how much of that genuinely closest chemistry you have picked up at each depth.
A worked example from that pool. Say the 156 molecules closest to your query are the ones worth having. Score the whole collection with the surrogate, keep its top 1,569, and 142 of those 156 are in there. Screening 1,569 in arbitrary order would have given you one.
Getting a real pharmacophore fingerprint from a SMILES means generating a conformer ensemble and then fingerprinting it. Measured over 40 molecules at 100 conformers each:
| Step | Seconds per molecule |
|---|---|
| Conformer generation, RDKit ETKDG plus optimisation (100 conformers) | 2.44 |
| Fingerprinting those 100 conformers with pfpall | 0.043 |
| Real pipeline, total | 2.48 |
| Surrogate, one molecule at a time | 0.000357 |
| Surrogate, batched | 0.000011 |
| A complete comparison | Real | Surrogate |
|---|---|---|
| Two molecules, from SMILES | 5.0 s | 0.034 ms |
| One reference against a million candidates | 29 days | 23 seconds |
Conformer generation is 98% of the real cost. The fingerprint calculation itself is fast, 0.043 seconds for all 100 conformers. What is slow is building the three-dimensional ensemble to feed it, and that cost is unavoidable in the conventional route whether you OR the conformers into one fingerprint or keep them separate for polypharmprint-style best-pair matching. Both variants pay it.
The surrogate never generates a conformer and never fingerprints one. That single omission is the entire 231,694 times speed-up.
| Library size | Real pipeline | Surrogate |
|---|---|---|
| 100 thousand molecules | 3 days | 1 seconds |
| 1 million molecules | 29 days | 11 seconds |
| The Enamine screening collection, 4.8 million | 137 days | 51 seconds |
| 48 million molecules | 4 years | 9 minutes |
| 1 billion molecules | 79 years | 3.0 hours |
That change is what makes exhaustive exploration possible. At two seconds a molecule you budget your chemistry: a genetic algorithm scores a few thousand designs a generation, and screening a large collection is a project rather than a query. At microseconds you stop budgeting. A CHIP-style search can enumerate and score millions of designs per generation instead of thousands, and an entire commercial collection becomes something you scan in a minute and rescan whenever the question changes.
Concretely, that opens up:
The real calculation stays the arbiter. The surrogate is what lets you put far more chemistry in front of it.
Timings are wall clock on a machine running three other jobs, so both sides are penalised equally and the ratio is the durable part.
The surrogate predicts an ensemble fingerprint, which answers which molecules are pharmacophorically close. It cannot tell you which conformation of them does the work, because the ensemble has already been collapsed. That question still needs the real per conformer calculation, and the two fit together rather than competing.
| Stage | Method | Scale | Answers |
|---|---|---|---|
| 1. Find | Turbocharged pharmacophoric similarity | millions | Which molecules resemble the query in pharmacophore space |
| 2. Deconvolute | Per conformer fingerprints, best matching pair | the survivors | Which conformation of each carries the overlap, and what it looks like |
Stage one scans an entire collection against a query in about 23 seconds and hands back a ranked shortlist. Stage two takes only that shortlist, generates real conformers, fingerprints each one separately rather than ORing them, and scores every conformer of the query against every conformer of the hit. That surfaces the specific conformer pair carrying the similarity, which is the pose you can render, inspect and take into design.
Doing stage two across the whole collection would be prohibitive. Doing it across a few hundred survivors is routine. The surrogate is what makes the shortlist small enough and good enough to be worth the expensive look.