PharmCast-S

Turbocharged Pharmacophoric Similarity

Comparing two molecules in pharmacophoric space in a fraction of a millisecond, from 2D structure alone.

PharmCast is the model family that predicts a full 3D pharmacophore fingerprint directly from a SMILES string, so ordinary PharmSim comparison can run without ever generating a conformer. PharmCast-S is trained on the screening collection alone. PharmCast-SP adds peptide loops extracted from protein structures and ensemble enhanced, and is reported separately. This page is PharmCast-S, trained on 1,192,657 molecules.

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.

0.964
Agreement with the real pharmacophore similarity between two molecules
0.890
Median per molecule agreement with the real fingerprint
91%
Of the closest 0.1% of a collection, recovered by screening only 1% of it
0.034 ms
One complete comparison of two molecules, from SMILES
Every point is a pair of molecules. The surrogate's pharmacophore similarity against the real one, with the diagonal marking perfect agreement.
Every point is a pair of molecules. The surrogate's pharmacophore similarity against the real one, with the diagonal marking perfect agreement.

How it works

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 real pair the model has never seen. Two SMILES in, one pharmacophoric similarity out. Panel D shows each predicted fingerprint against the real one on the same bit axis, which is what makes the similarity in panel E trustworthy.
A real pair the model has never seen. Two SMILES in, one pharmacophoric similarity out. Panel D shows each predicted fingerprint against the real one on the same bit axis, which is what makes the similarity in panel E trustworthy.

What it is for

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.

  
Inputcanonical SMILES
Features2,048-bit Morgan radius 2, plus 11 descriptors
Outputall 10,560 bits, one neuron each
Trained on1,192,657 molecules of the screening collection
Tested on150,912 molecules never seen in training
Median agreement per molecule0.890
Similarity correlation0.964
Speed93,394 molecules per second

Where the data comes from

The screening collection

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.

Properties, measured on 200,000 compounds of the collection
Property5th pct Median95th pct
Molecular weight255344465
Bonds192636
Rings235
Aromatic rings124
Rotatable bonds258
H-bond acceptors247
Polar surface area3871114
cLogP0.72.74.7
Fraction sp3 carbon0.090.350.71
135,768
Distinct Bemis-Murcko scaffolds in 200,000 molecules
88%
Scaffolds appearing exactly once
4.0%
Share held by the ten commonest scaffolds
0.714
Median similarity to the closest other compound
050,000100,000150,000200,000250,000300,000350,000median 0.7140.00.10.20.30.40.50.60.70.80.91.0TANIMOTO TO THE CLOSEST OTHER COMPOUNDCOMPOUNDS
Every compound compared against every other, with no sampling. One value each: the highest Tanimoto it reaches against any other compound in the collection. The library is broad in scaffolds and dense in analogs at the same time, and 55% of it has a neighbour at 0.70 or closer.

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.

The protein loop corpus, used by PharmCast-SP

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.

0100,000200,000300,000400,000500,00023456LOOP LENGTH, RESIDUES
Loop length across all 1,524,535 instances. Short loops dominate, and the median fragment carries 412 pharmacophore bits.
Ensemble enhancement. Each distinct peptide gets one fingerprint that ORs together every rigid crystallographic conformation actually observed for it in the PDB with 100 computed conformers generated exactly as for the screening collection. The conformer count therefore runs above 100. The fingerprint carries both what nature was caught doing and what the molecule can do.

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.

01002003000.350.380.400.420.450.470.500.530.550.570.600.620.650.680.700.720.750.780.800.820.850.880.900.930.950.97MEDIAN TANIMOTO BETWEEN OBSERVATIONS OF THE SAME LOOP
For each sequence observed at least three times, the median Tanimoto between its own observed conformations. A value of 1.0 would mean the extra crystal structures add nothing.

The test set

Trained on 1,192,657 molecules of the screening collection. Tested on 150,912 molecules that were not used in training.

What the model is entitled to be asked

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.

This is also why there is no ligand-blind baseline here. Comparing against a predictor shown no ligand at all presumes molecules can be drawn from some unconstrained space and handed to the model, which is not the setting. The question worth answering is not whether the model beats knowing nothing, it is whether it is doing something a cheap 2D descriptor could already do. The section below answers that directly: accuracy is flat across the 2D similarity range, so a pair that looks nothing alike on paper is predicted as well as a pair that does.

One test set, three chemistries

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.

Real pfpall similarity against PharmCast, on held out pairs from three different chemistries and then all of them together. The dashed line is perfect agreement.
Real pfpall similarity against PharmCast, on held out pairs from three different chemistries and then all of them together. The dashed line is perfect agreement.
Test chemistryPairs Median errorWithin 0.05 Correlation
screening collection1,2000.0285%0.97
loop peptides1,2000.0284%0.98
large ChEMBL compounds1,2000.0738%0.61
All three together3,600 0.0369% 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.

Where it holds up, and where the accuracy comes from

Colouring the same pairs two different ways answers two questions the headline number cannot.

The same pairs, coloured by how similar the two molecules are in 2D, green very dissimilar through red least so. Flat accuracy across the range means the model is not re-deriving 2D similarity.
The same pairs, coloured by how similar the two molecules are in 2D, green very dissimilar through red least so. Flat accuracy across the range means the model is not re-deriving 2D similarity.

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 same pairs, coloured by molecular weight, green for light and red for heavy.
The same pairs, coloured by molecular weight, green for light and red for heavy.

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.

How closely each single fingerprint matches

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.

MCC = TP × TN − FP × FN ( TP+FP )( TP+FN )( TN+FP )( TN+FN )

One is a perfect match and zero is chance.

How closely each predicted fingerprint matches the real one, across the whole unseen test set.
How closely each predicted fingerprint matches the real one, across the whole unseen test set.
0.890
Median Matthews correlation, predicted against real
150,912
Molecules scored, none seen in training
91%
Above 0.80
29
Below 0.50, out of 150,912

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.

Searching new chemistry

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.

What is being enriched here is pharmacophoric similarity to the query, not bioactivity. Nothing in this measurement knows anything about a target, an assay or a hit. "The closest 1%" means the 1% of the collection with the highest real pharmacophoric similarity to the query molecule, as the full conformer calculation scores it.

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.

How much of the genuinely best chemistry you have recovered after screening a given fraction of the collection. Left, full range. Right, the same curves on a log scale, where the decisions get made. Dashed line is screening in arbitrary order.
How much of the genuinely best chemistry you have recovered after screening a given fraction of the collection. Left, full range. Right, the same curves on a log scale, where the decisions get made. Dashed line is screening in arbitrary order.

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.

What this saves you

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:

StepSeconds 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 comparisonReal 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 sizeReal pipelineSurrogate
100 thousand molecules3 days1 seconds
1 million molecules29 days11 seconds
The Enamine screening collection, 4.8 million137 days51 seconds
48 million molecules4 years9 minutes
1 billion molecules79 years3.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.

Where the per conformer calculation still earns its place

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.

StageMethodScaleAnswers
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.