ReverseScreen

Given a molecule, the targets it might interact with

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 works
Figure 1. The pipeline on a worked example, orforglipron. A to F, the query is featurized as 2,048 Morgan bits and 11 descriptors; PharmCast maps those to a 10,549 bit pharmacophore fingerprint, which matches the indexed ligand UK1 at Tanimoto 0.90 and links to the GLP-1 receptor through PDB entry 6X19. Second arm, the same 2,048 bits are also matched directly, giving Tanimoto 0.63 to UK1 over 84 shared bits of 133 in the union, so a protein enters the candidate list when either arm clears its own cutoff. G to I, docking is the drill-down on the retained sites: UK1 defines the box, the query is prepared with RDKit and Meeko and docked with AutoDock Vina 1.2.5, and the returned pose is inspected. Counts are from the index as it stood on 8 September 2026; the live index is larger and grows every Thursday.
Figure 2. The reverse screen, with both retrieval arms. Every indexed ligand is compared by both fingerprints; the cutoffs decide only what survives, and a protein enters the candidate list when either arm clears its own. The pharmacophore arm is shown at Tanimoto 0.65 and the Morgan arm at 0.35, the balanced preset. How many survive depends on the query, so no count is drawn. Docking the union takes minutes to hours against 40.5 hours to dock every site in the index as it stood on 8 September 2026.

The question, and why the panel has stayed small

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

Four stages, and only the last is expensive

Stage 1

Index

Every co-crystal ligand in the Protein Data Bank, carrying the UniProt accessions it was solved against.

Rebuilt in 15 min
Stage 2

Retrieve

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.

<2 s
Stage 3

Dock

AutoDock Vina into each retrieved site, in a box drawn around that site's own ligand envelope.

5.1 s per site
Stage 4

Inspect

Read the surviving poses in three dimensions, with the score and the burial of each.

A handful of poses

The fingerprint is predicted, not computed from conformers

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.

Figure 3. Where each arm is informative. Every query is compared against every ligand in the index, and one comparison picked at random shares a recorded target 0.59 percent of the time. The large figure in each quadrant is how much better than that the comparisons in it do. Where both scores are high it reaches 75 times chance, well above either arm on its own: 26 times for the two dimensional score and 3.9 times for the pharmacophore. Beneath each is the percentage of queries for which that quadrant finds a target; the bottom left finds one for most queries only because it holds 98.9 percent of all comparisons.
Figure 4. The retrieval index in three dimensions. One point per indexed co-crystal ligand, embedded by UMAP directly from the full 10,549-bit fingerprints under Jaccard distance, which on binary vectors is the Tanimoto coefficient retrieval uses. Nothing is reduced or compressed first, so the distances drawn here are the distances the search computes. Points are colored by the target class the ligand was solved against. Orforglipron and daraxonrasib are ringed and labeled, each joined to the indexed ligand that carried its true target. Drag to rotate, scroll to zoom. The embedding is a navigational aid.

Retrieval and site comparison admit structures under different rules

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.

Figure 5. The archive supplies new co-complexes every week. Entries released by the RCSB Protein Data Bank, counted by initial release date and queried on 8 September 2026. Left, annual release volume. Right, the same three series by quarter since the start of 2025. All released entries is every experimental entry. Protein-ligand co-complexes are entries with a polymer entity mapped to a UniProt accession that carry a chemical component of formula weight 250 to 900 daltons. Index-qualifying entries are that subset meeting the admission rule above. The qualifying share of new releases rose from 27.7 percent in 2016 to 36.4 percent in 2025. It fluctuates from year to year within that rise, and the 2026 projection is below 2025 on both filtered series. Open markers are projections from the elapsed fraction of the period. Select the figure to open it at full size.

What it costs and what it finds

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 pooledPharmacophore: proteinsfinds the targetMorgan: proteinsfinds the targetDocking the pharmacophore pool
13.10.3634.80.63416 s
521.10.48842.10.755108 s
1044.40.53890.60.7863.8 min
25104.50.608181.50.8218.9 min
50186.30.661315.60.83915.8 min
100344.30.708522.20.85929.3 min
4001001.50.8151360.10.8931.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.

Retrieval alone runs at library scale

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.

Docking finds the pose more often than it ranks it first

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 complexesCount
Search generates a correct pose27
Scoring puts it first14
Scoring puts it in the first three23

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.

Two 2025 clinical molecules

Both are themselves deposited, so both were removed from the index before their own query ran. Each found its target through a different molecule.

MoleculeTrue target PharmCast similarity Morgan similarity
RankThroughTanimoto RankThroughTanimoto
OrforglipronGlucagon-like peptide 1 receptor 1UK10.901 1UK10.632
DaraxonrasibKRAS and cyclophilin A tri-complex 4A1AOI0.836 1A1AOJ0.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.

Paper

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