# Reverse Screen archived benchmark, index snapshot 2026-09-08 **This directory is frozen and it is not the current index.** Every file here is pinned to the retrieval index as it stood on **8 September 2026**: 27,797 ligands, 28,579 target sites, 127,414 ligand to accession pairs. That is the snapshot the Application Note reports, and it is the only snapshot against which the numbers in the paper reproduce exactly. The live index grows every Thursday and is larger. On 8 October 2026 it held 27,970 ligands and 28,670 sites. If you want the current index, take the weekly bundle from https://reversescreen.ai/download.html instead. If you want to check a published number, use this directory. **On the date.** The RCSB scans behind this snapshot ran on Sunday 6 September 2026, which is why the query draw seed is `20260906`. The Protein Data Bank releases once a week, on Wednesday, so the last release before those scans was 2 September and the next was 9 September: the archive did not change between the scan and 8 September, and the counts reported for the 8 September snapshot are the counts those scans produced. The two dates name the same contents. The path carries the snapshot date and nothing in it is ever rewritten. A correction would be published as a new dated directory, so a citation of `2026-09-08` resolves to the same bytes forever. `MANIFEST.txt` carries the size and sha256 of every file. --- ## What is here | File | What it is | |---|---| | `queries.json` | The 3,000 benchmark queries: the draw seed, the draw rule, and for each query its index line, component id, InChIKey connectivity block, SMILES and recorded accessions. | | `ground_truth.json` | The accessions each query is scored against. | | `scaffold_groups.json` | The 10,588 Bemis-Murcko generic scaffold groups used by the scaffold holdout. | | `exclusion_and_scoring_rules.json` | Both holdout rules, the index admission rule and the scoring definitions, as data. | | `rs_contacts_2026-09-08.tsv` | The contact verified pairing map: 58,227 rows, 27,704 components, 17,911 accessions. Two columns, component and accession. | | `pairing_audit.json` | How the contact verified map was derived from the published map, with the coverage and shrinkage figures. | | `docking_panel_2026-09-06.tsv` | One row per docking run: receptor atom count, exhaustiveness, pose count, wall seconds, the search box center and size, the top Vina score, the top and best pose RMSD, and the rank at which the first correct pose appears. | | `docking_panel_2026-09-06.tar.gz` | The raw records behind that table: per run `result.json`, the Vina log carrying the box and every pose score, the Meeko receptor and ligand preparation logs, the fresh input conformer and the docked poses. | | `scripts/` | The evaluation scripts. | | `manifest.json` | The index sha256, the PharmCast checkpoint sha256, the Python, RDKit, NumPy and PyTorch versions, and a sha256 for every file here. | | `MANIFEST.txt` | Size and sha256 of every file, in the same format as the weekly bundle. | | `MANUAL.md` | How to run each of these end to end. | ## The two pairing rules The benchmark carries both, because the paper reports both and the difference is the subject of section 2.2. **As published.** Every qualifying non-polymer component in the 250 to 900 Da window is paired with every UniProt accession carried by the entry's polymer entities. No coordinates are consulted. This is the rule the live index and the weekly `reverse_screen_sites_.tsv` follow, and it is the rule the published recall figures are computed under. **Contact verified.** A component keeps an accession only where at least one detected interaction of that component touches a chain belonging to that accession. `rs_contacts_2026-09-08.tsv` is that map. It reduces the pairings from 127,414 to 58,227 and the target panel from 28,579 to 17,911 accessions. Two columns, component and accession, written the same way as the first two columns of `reverse_screen_sites_.tsv` so the two tables join directly. `UK1` is the clearest case. The published map pairs it with all four accessions of entry `6X19`, P43220, P59768, P62873 and P63092, because the receptor was solved bound to its heterotrimeric G protein. The ligand touches the receptor chain alone, and the contact verified map holds the single row `UK1 P43220`. The contact calculation covered one representative entry per pairing, so the rebuild also drops pairings that no contact map could have confirmed. The reduction is therefore a bound, not a point estimate, and `pairing_audit.json` carries the coverage figures that bound it: 56,776 sidecars read over 27,707 of the 27,797 index ligands, a coverage of 0.997. ## The docking panel 38 complexes. Seven were docked first; the remaining 31 were drawn by rule from 40 candidates, before anything was docked: resolution 1.8 Angstrom or better, free R factor 0.23 or below, exactly one UniProt accession on the entry, one entry per accession, ligand formula weight 250 to 600 Da, shuffled with seed 20260906 and taken in order. Nine of the 40 produced no usable receptor and were dropped rather than replaced; their preparation logs are in the tarball so the dropouts are visible rather than silent. The panel is uncurated on purpose. Selecting on weight alone admits ligands nobody would screen, and that shows in the result: of the 11 complexes where no correct pose was generated, one is a crystallization buffer, two are nucleotides and one is a steroid. Over the 38: a pose within 2.0 Angstrom is generated in 27, Vina ranks that pose first in 14 and within the first three in 23. Those four numbers recompute from `docking_panel_2026-09-06.tsv` alone. **AutoDock Vina 1.2.7 built this panel**, at exhaustiveness 16, with ligands and receptors prepared by Meeko 0.8.0. The version is in the first line of every `vina.log` in the tarball. The docking offered on reversescreen.ai is a separate service built on AutoDock Vina 1.2.5, so a pose from the site and a pose from this panel come from different builds and the site states its own version on every page. Redocking establishes that the search and the scoring can place a ligand in a pocket that ligand is known to occupy. It does not establish the accuracy of a pose at a retrieved site, and no actives against decoys experiment was performed. ## The admission rule, for reference The snapshot was built under the rule the live service still serves at `https://reversescreen.ai/api/index-info`: - X-ray diffraction, resolution at or below 2.5 Angstrom, free R factor at or below 0.28 - Electron microscopy, resolution at or below 4.0 Angstrom, with no free R factor condition - A non-polymer component of formula weight 250 to 900 Da, polymer residues excluded - At least one polymer entity mapped to a UniProt accession Both resolution ceilings and the R factor cut were in force when this snapshot was taken. A separate and stricter rule, X-ray at 1.8 Angstrom with a free R factor at or below 0.23, governs the pocket description and site comparison work and the docking panel selection. It has nothing to do with index admission.