Docking one compound into every characterized binding site answers the reverse screening question directly and takes 40.6 hours. A pharmacophore retrieval step in front of the docking cuts the panel to tens of proteins in under two seconds, both arms together, and the docking then runs only on what retrieval returns.
Screen a molecule How it worksA screening campaign asks which of many ligands bind one target. The reverse question asks which of many targets bind one ligand. It is the question that arises once a molecule exists: what else does it hit, what explains a phenotype, what accounts for a toxicity, and what could the compound be repurposed against. It is also the only question available for a molecule a generative method proposes, because a designed structure has no measured target at all.
Inverse docking answers it by docking the ligand into a panel of pockets and ranking the panel. The panels have stayed small because the cost is linear in the panel size. On twenty performance cores, AutoDock Vina at exhaustiveness 16 takes 5.1 seconds for a drug-sized ligand, so a panel of 60 sites is five minutes and the 28,767 sites indexed here are 40.6 hours for a single molecule.
The ligand-based answer is cheap: chemically similar molecules tend to bind the same proteins, so a target can be predicted by similarity to annotated ligands. That returns a protein name. A name cannot be inspected, scored, or optimized against.
The two are better used in series than treated as alternatives. A ligand that resembles a molecule someone has already crystallized is likely to bind where that molecule binds, so the crystallographic record narrows the panel before any docking is attempted.
Every co-crystal ligand in the Protein Data Bank, carrying the UniProt accessions it was solved against.
Fingerprint the query, compare it to every indexed ligand with both arms, and pool the proteins that the ligands clearing either cutoff were crystallized against.
AutoDock Vina into each retrieved site, in a box drawn around that site's own ligand envelope.
Read the surviving poses in three dimensions, with the score and the burial of each.
A three-dimensional pharmacophore fingerprint is normally computed from a conformer ensemble, which is slow enough that a query is usually compared against cluster representatives instead of a whole index. PharmCast predicts the same kind of fingerprint straight from two-dimensional structure, three-point and 10,549 bits wide, and generates no conformers at all. A query is fingerprinted in about 5 milliseconds, so the whole index is in reach.
The query and all 28,043 indexed ligands are fingerprinted the same way, by the same model file. That is what makes the similarity mean something. A query read off conformers and compared against an index predicted from 2D would return numbers that look like Tanimoto coefficients and are not.
The search itself is exhaustive, and it is run twice. All 10,549 pharmacophore bits are compared by Tanimoto over packed bit vectors against all 28,043 indexed ligands, and the 2,048 Morgan bits are compared the same way against the same ligands. No folding, no hashing, no dimensionality reduction and no approximate nearest neighbour structure, in either arm. A protein enters the candidate list when either arm keeps the ligand it was solved with, and each protein appears once however many arms found it.
Neither arm has a parameter that could be tuned to flatter a benchmark; the only choices are the two cutoffs, which are shown on the screening page and reported with every result. The two are separate because the scales are: on one identical retrieval the arms score 0.901 and 0.632, so a single threshold would mean two different things at once.
Describing the atoms that line a pocket needs coordinates good enough to place every one of them, and the rule for that work is X-ray at 1.8 angstroms with a free R factor at or below 0.23. Establishing which ligand sat in which protein needs none of it: a 3.1 angstrom cryo-EM map answers that perfectly well. Retrieval therefore admits X-ray at 2.5 angstroms with a free R factor at or below 0.28, and cryo-EM at 4.0 angstroms, in both cases carrying a component of 250 to 900 daltons. Enumerating the archive under those two rules on the 8 September 2026 snapshot gave 61,935 X-ray entries and 12,620 cryo-EM entries.
Separating the two rules took coverage from 3,670 target sites to 28,579 on that same snapshot, an increase of 7.8 fold, and the gain falls on the receptors and large complexes solved by cryo-EM. The glucagon-like peptide 1 receptor is the clearest case: it carries 31 entries holding a drug-like ligand and not one of them satisfies the 1.8 angstrom rule, so under that rule the receptor is absent from the panel and no amount of searching can return it.
The archive behind the index is not standing still. The qualifying share of new releases has risen over the past decade, from 27.7 percent in 2016 to 36.4 percent in 2025, fluctuating from year to year within that rise. What the method depends on is the supply, and it is steady: about 113 entries a week now meet the admission rule. The Protein Data Bank releases once a week, on Wednesday, and the index is rebuilt every Thursday morning, so a release is searchable the next day.
Three thousand molecules were held out and screened. Each query was removed from the index by InChIKey connectivity layer first, so a molecule that had itself been deposited could not retrieve its own target through its own deposition. The question asked of each pool is whether the molecule's known target is inside it.
| Nearest ligands pooled | Pharmacophore: proteins | finds the target | Morgan: proteins | finds the target | Docking the pharmacophore pool |
|---|---|---|---|---|---|
| 1 | 3.1 | 0.363 | 4.8 | 0.634 | 16 s |
| 5 | 21.1 | 0.488 | 42.1 | 0.755 | 108 s |
| 10 | 44.4 | 0.538 | 90.6 | 0.786 | 3.8 min |
| 25 | 104.5 | 0.608 | 181.5 | 0.821 | 8.9 min |
| 50 | 186.3 | 0.661 | 315.6 | 0.839 | 15.8 min |
| 100 | 344.3 | 0.708 | 522.2 | 0.859 | 29.3 min |
| 400 | 1001.5 | 0.815 | 1360.1 | 0.893 | 1.4 h |
Pooling more neighbors buys accuracy and costs docking, and the exchange is steep at both ends: one neighbor docks 3.1 proteins and finds the target 36.3 percent of the time, four hundred docks 1,001.5 and finds it 81.5 percent. The operating point is set by the docking budget, and it is not one number. A single molecule can afford the pool that reaches 0.815, which is 1.42 hours on twenty cores. A library of 100,000 molecules cannot. Five neighbors is therefore the setting recommended for a library, at 21.1 proteins and about two minutes of docking, and 400 the setting for a single molecule run on its own, which is the default on the screening page.
Run in batches of 100 on a single core, both arms together cost 45.7 milliseconds per molecule, which is about 78,700 an hour and 1.9 million in a day. The pharmacophore arm on its own is 37.6 milliseconds and about 95,700 an hour; the second arm is one more Tanimoto scan over a matrix a fifth as wide and adds roughly a fifth to the bill. A generative run can therefore be triaged in full, with docking spent only on what survives.
Those are single-core benchmark figures on an Apple M3 Ultra, and they are not what a visitor experiences. A screen through the site is about 1.3 seconds end to end: the scan is memory bound, building a 74 MB intermediate per query, and a shared Cloud Run vCPU is roughly ten times slower than one core of that machine. Both numbers are real and they measure different machines.
Thirty eight complexes were redocked into their own receptors, with the deposited pose discarded and a fresh conformer generated, so nothing but the location of the site reaches the docker. A pose counts as correct within 2.00 angstroms of the deposited coordinates.
| Over 38 complexes | Count |
|---|---|
| Search generates a correct pose | 27 |
| Scoring puts it first | 14 |
| Scoring puts it in the first three | 23 |
Sampling is ahead of scoring at this scale, which is why the poses come back for inspection rather than as a single number. Every pose is also rescored with the Vinardo function and the pool re-ranked by Vinardo alone and by the mean of the two ranks. Neither improves on Vina at the top of the list. Vinardo puts the correct pose first in 12 and within the first three in 24, and the mean of the two ranks gives 14 and 24. What pays instead is carrying the first three poses forward rather than the first, which raises the correct pose from 14 to 23 of the 27 the search finds, and costs nothing extra because the pool is already small.
Both are themselves deposited, so both were removed from the index before their own query ran. Each found its target through a different molecule.
| Molecule | True target | PharmCast similarity | Morgan similarity | ||||
|---|---|---|---|---|---|---|---|
| Rank | Through | Tanimoto | Rank | Through | Tanimoto | ||
| Orforglipron | Glucagon-like peptide 1 receptor | 1 | UK1 | 0.901 | 1 | UK1 | 0.632 |
| Daraxonrasib | KRAS and cyclophilin A tri-complex | 4 | A1AOI | 0.836 | 1 | A1AOJ | 0.829 |
Daraxonrasib is the harder of the two and shows what the site definition has to carry. Its site is an interface between two proteins rather than a pocket in either one, deposited as the tri-complex at 1.65 angstroms. Docking it into KRAS alone cannot reproduce the binding, because half the site is missing.
Muskal, S. M. and Nicola, G. ReverseScreen.ai: Pharmacophore-Guided Reverse Screening Across the Growing Co-Complex Proteome. bioRxiv, first posted 15 September 2026, version 1. doi: 10.64898/2026.09.09.750461. CC BY 4.0.
The overview, in video. Reverse Screen: Given One Molecule, Which Proteins Does It Bind? 40 Hours of Docking to 108 Seconds
The fingerprint, which the query and every indexed ligand are given by the same model: Muskal, S. M. and McGregor, M. J. PharmCast: rapid generation of three-dimensional pharmacophore fingerprints from two-dimensional structure without conformer generation. bioRxiv, 2026. doi: 10.64898/2026.09.02.748999