IsoScore Methodology
LatticeZero's scoring engine evaluates protein-ligand interactions using a physics-based energy function computed entirely on the GPU. This page explains the scientific methodology behind IsoScore and IsoPose scoring.
Scoring Architecture
LatticeZero uses a grid-based scoring approach. During Target Prep, a 3D grid of pre-computed interaction energies is compiled for the binding pocket. At scoring time, each ligand atom's position is mapped to the grid and its contributions are evaluated in parallel using WebGPU compute shaders.
This architecture enables two distinct tools:
- IsoPose (~3 sec/ligand) - Performs conformational search using a genetic algorithm, then scores each pose against the grid.
- IsoScore (~4,000 lig/sec) - Skips pose search entirely. Takes pre-docked 3D coordinates as input and evaluates them against the grid. Approximately 1,000x faster.
Both tools use the same underlying scoring function.
Energy Function
The scoring function consists of 14 physics-based terms that capture the dominant forces governing non-covalent protein-ligand binding:
| Category | Terms | What They Capture |
|---|---|---|
| Van der Waals | E_disp, E_rep | Attractive dispersion and steric repulsion |
| Electrostatics | E_coul | Coulombic charge-charge interactions with dielectric screening |
| Hydrogen bonding | E_hbond, hbondGeo | H-bond strength and geometric quality (angle/distance) |
| Desolvation | E_desolv | Penalty for stripping water from polar groups |
| Shape | burial, depth, contactArea | Ligand burial, pocket penetration, contact surface |
| Aromatic | E_aromatic, aromaticBurial | Pi-stacking, cation-pi, and aromatic ring burial |
| Quality | E_clash, strain | Steric clash severity and internal ligand strain |
| Metal | E_metal | Coordination with catalytic metal ions (Zn, Mg, etc.) |
The total score is a weighted linear combination:
Score = Σ (wi × termi) for i = 1..14
More negative scores indicate stronger predicted binding. See the Physics Reference for detailed descriptions of each term.
Scoring Profiles
Raw physics terms have different magnitudes and relative importance depending on the target. A scoring profile assigns a weight to each of the 14 terms, tuning the function for a specific target class.
For example:
- Metalloenzymes (ACE, MMPs) upweight E_metal and E_coul, because metal coordination and electrostatics dominate binding.
- Nuclear receptors (PPARG, AR) upweight burial and E_disp, reflecting deep hydrophobic binding pockets.
- Kinases (CDK2, SRC) emphasize E_hbond and hbondGeo, reflecting the critical hinge hydrogen bonds.
LatticeZero uses three profile categories with different levels of target-specific optimization:
Understanding Scoring Profiles
1. Validated Demo Profiles (18 targets)
These profiles were iteratively refined using the LatticeZero physics engine against DEKOIS2 benchmark data. Weights were tuned to maximize active/decoy discrimination (AUC) for each specific target. They are validated with 5-fold cross-validation and Y-scramble null model testing.
2. Dock-Mode Profiles (8 targets)
These profiles are optimized specifically for IsoPose-generated poses using rank normalization to handle scale differences between physics terms. They represent end-to-end docking performance where IsoPose generates poses de novo (no external docking program required).
3. Class-Level Predictions (any target)
For targets without a validated profile, LatticeZero applies class-level physics recipes based on detected target family (kinase, protease, metalloenzyme, etc.). These require zero target-specific optimization. On a 5-target DUD-E holdout outside the development set, this untuned mode reached Silver-tier performance on PNPH (AUC 0.642).
See Scoring Profiles and the Profiles Library for available profiles and category details.
Geometric Features
In addition to physics energy terms, IsoPose evaluates 6 geometric features of each docked pose:
| Feature | Description |
|---|---|
| insideFrac | Fraction of ligand heavy atoms inside the defined pocket volume |
| triadScore | Quality of key pharmacophoric interactions (H-bond triads) |
| aromaticBurial | Fraction of aromatic ring surface buried by the receptor |
| clashCount | Number of severe ligand-receptor atom overlaps |
| keyguideScore | Alignment with pharmacophore guide points (when defined) |
| waterAnchorFrac | Fraction of conserved water-mediated contacts preserved |
These features are used alongside the 14 physics terms by the full IsoPose scoring pipeline (23 features total). IsoScore in rescoring mode evaluates the 14 physics terms only, since geometric features require the full docking context.
Pose Quality Score (PQS)
Every scored pose receives a Pose Quality Score - a classification that assesses whether the pose is physically plausible:
| Verdict | Meaning | Criteria |
|---|---|---|
| GOOD | Physically plausible pose | Low clashes, ligand inside pocket, acceptable strain |
| FIXABLE | Minor issues that may be resolvable | Moderate clashes or partial pocket occupancy |
| TRASH | Physically unrealistic | Severe clashes, ligand outside pocket, or extreme strain |
PQS is computed from a combination of E_clash, E_rep, insideFrac, and strain. It serves as a quality gate - even if a pose has a favorable total score, a TRASH verdict flags it as unreliable.
The distribution of PQS verdicts across a scoring run is a useful diagnostic: a high fraction of GOOD poses suggests well-prepared inputs, while many TRASH poses may indicate problems with the receptor preparation or pocket definition.
Theoretical Foundation
Theoretical Foundation
LatticeZero's scoring function computes protein-ligand interaction energies from first-principles physics modeling, not empirical force field fitting.
<h6>Parameter Sources</h6>
<table class="table table-sm">
<tbody>
<tr>
<td><strong>Van der Waals radii</strong></td>
<td>Bondi, A. (1964). "Van der Waals Volumes and Radii."
<em>J. Phys. Chem.</em> 68(3), 441-451.</td>
</tr>
<tr>
<td><strong>Partial charges</strong></td>
<td>Gasteiger, J. & Marsili, M. (1980). "Iterative partial equalization
of orbital electronegativity." <em>Tetrahedron</em> 36(22), 3219-3228.</td>
</tr>
<tr>
<td><strong>H-bond geometry</strong></td>
<td>Standard donor-H...acceptor criteria: D-A distance < 3.5 Å,
D-H-A angle > 120°, based on crystallographic survey statistics.</td>
</tr>
<tr>
<td><strong>Metal coordination</strong></td>
<td>Ideal Zn-N/O distances (2.0-2.2 Å) and tetrahedral geometry from
Cambridge Structural Database (CSD) metal complex surveys.</td>
</tr>
</tbody>
</table>
<h6>How This Differs from Conventional Scoring</h6>
<p>Conventional docking tools (Glide, AutoDock Vina, GOLD) define energy terms
as features and fit numerical weights to experimental binding data or benchmark
performance. The fitted coefficients <em>are</em> the scoring function.</p>
<p>LatticeZero computes interaction energies directly from physical models.
Scoring profiles define which physics modules to include and how to aggregate
them for a target class - they are not regression weights trained on binding
affinity data.</p>
<p>A detailed methods paper describing the full theoretical framework is
in preparation.</p>
Parameter Provenance
IsoScore and IsoPose do not load a black-box force-field file (for example OPLS/AMBER parameter packs). The production kernels use an in-house HBQ/dcoul pairwise model in rft_atomic.scoring, with constants and heuristics versioned in code.
Van der Waals + Lennard-Jones Terms
Atomic VDW radii used for dispersion and repulsion are defined in structures.py and mirrored in dock_objective.py:
| Element | Radius (A) | Element | Radius (A) |
|---|---|---|---|
| H | 1.20 | C | 1.70 |
| N | 1.55 | O | 1.52 |
| S | 1.80 | P | 1.80 |
| F | 1.47 | Cl | 1.75 |
| Br | 1.85 | I | 1.98 |
Common receptor metals are explicitly included in code defaults: Zn 1.39, Mg 1.73, Ca 1.97, Fe 1.56, Cu 1.40, Mn 1.61 A. Unknown elements fall back to 1.70 A (carbon-like). The repulsion table in repulsion.py documents Bondi (1964) and Rowland & Taylor (1996) as source references.
E_disp = -0.5 * sum((sigma/r)^6)
E_rep = 0.1 * sum((sigma/r)^12)
where sigma = R_i + R_j (sum of element radii). Close-contact stability is handled with softcore/cap controls (softcore.py, api.py), including optional softcore repulsion, default vdw_cutoff = 8.0 A, and ratio cap sigma/r <= 1.5 in docking-compatible dcoul scoring.
Electrostatics + Partial Charges
Electrostatics are Coulombic:
E_coul = k_coul * sum(q_i q_j / (eps_r * r_eff))
HBQ defaults in code are eps_r = 4.0, coul_cutoff = 8.0 A, and optional damping with r_eff = sqrt(r^2 + delta^2) for short-range softening.
Partial charges are computed with RDKit Gasteiger (AllChem.ComputeGasteigerCharges) when an RDKit molecule is available. If charge assignment fails or RDKit input is missing, the code falls back to explicit element-based heuristic charges (charges.py, hbq_score.py).
Hydrogen Bond Parameters
Hydrogen-bond typing is also code-defined:
- Primary path: RDKit SMARTS donor/acceptor matching
- Fallback path: element heuristics (donors = N/O/S with bonded H; acceptors = N/O/S)
HBQ geometric defaults:
| Parameter | Value | Description |
|---|---|---|
| H...A distance (max) | 3.0 A | Maximum donor-H to acceptor distance |
| H...A distance (opt) | 2.5 A | Optimal donor-H to acceptor distance |
| D-H...A angle (min) | 120° | Minimum donor-hydrogen-acceptor angle |
Energy is computed from distance and angle factors scaled by k_hb = -2.5 kcal/mol.
Citations
- Bondi, A. "Van der Waals Volumes and Radii." J. Phys. Chem. 1964, 68(3), 441-451.
- Rowland, R.S.; Taylor, R. "Intermolecular Nonbonded Contact Distances in Organic Crystal Structures." J. Phys. Chem. 1996, 100(18), 7384-7391.
- Gasteiger, J.; Marsili, M. "Iterative Partial Equalization of Orbital Electronegativity." Tetrahedron 1980, 36(22), 3219-3228.
Validation Protocol
This section documents how profile weights are optimized and checked for overfitting.
Model Complexity + Data Regime
Primary physics profiles optimize 14 weights (one per physics term). DEKOIS2 targets in the benchmark registry are typically:
| Metric | Value |
|---|---|
| Tunable parameters | 14 |
| Active compounds | 40 |
| Decoy compounds | ~1,150 to 1,200 (full sets) |
| Total compounds | ~1,194 to 1,240 |
| Parameter-to-data ratio | ~1:85 to 1:89 (full sets) |
For smaller demo subsets (for example 40 actives + 200 decoys), the ratio is still 1:17. The validation battery also enforces a feature-budget guardrail (validation_protocol.py): recommended max features are tied to active count, with a hard cap of 14 for datasets with <45 actives.
5-Fold Cross-Validation
Published physics_cv AUC values use stratified 5-fold cross-validation:
- Split data into 5 folds while preserving the active/decoy ratio
- Optimize weights on 4 folds (80%)
- Evaluate on the held-out fold (20%)
- Repeat for all 5 folds
- Report mean ± standard deviation of tie-corrected AUC
In the validation battery, CV standard deviation >= 0.10 is flagged as UNSTABLE.
Y-Scramble Control
Y-scramble is the null-model control:
- Randomly permute the active/decoy labels
- Re-optimize weights on the scrambled data
- Recompute AUC
- Expected behavior: AUC near 0.50
Current published outcomes include:
- CATL: 0.523 (PASS)
- HMGR: 0.529 (PASS)
- ADRB2: MARGINAL
- COX2: FAIL (no usable physics signal in the current feature set)
Holdout Validation (Web Optimizer)
The web-based optimizer (accessible from the Workbench) implements an additional 80/20 holdout validation:
- Stratified split: 80% training, 20% holdout (seeded for reproducibility)
- Optimize: Find best weights using only the training set
- Evaluate: Apply best weights to the holdout set
- Overfit alarm:
- OK: train-holdout gap ≤ 0.05
- MODERATE: 0.05 < gap ≤ 0.10
- HIGH: gap > 0.10
In validation_protocol.py, a holdout gap > 0.10 is an explicit UNVERIFIED condition.
Development vs. Validation Targets
:::warning The energy functional forms (vdW, Coulomb, H-bond kernels) are fixed by code and physics assumptions, but profile weights are optimized and validated on DEKOIS2. This is strong per-target validation, not a fully independent external-target holdout. Prospective validation outside DEKOIS2 is still in progress. :::
Comparison to Other Methods
LatticeZero occupies a specific niche in the molecular docking landscape:
| Aspect | LatticeZero | AutoDock Vina | Glide SP/XP | GOLD |
|---|---|---|---|---|
| Scoring | 14-term physics-based | Semi-empirical (5 terms) | Empirical + physics (GlideScore) | PLP/GoldScore/ChemScore |
| Speed | ~4K lig/sec (rescore) | ~10-50 lig/hr (dock) | ~50-200 lig/hr (dock) | ~10-50 lig/hr (dock) |
| Execution | Browser (WebGPU) | Local CPU | Local CPU (license) | Local CPU (license) |
| Profile tuning | Per-target weight profiles | Fixed function | Limited (SP vs XP) | Score function selection |
| Infrastructure | Zero install, browser-based | Binary install | Schrodinger suite | CCDC suite |
Quantitative Performance Comparison
Head-to-head comparison on shared DEKOIS2 targets (tie-corrected AUC, 5-fold CV):
| Metric | LatticeZero IsoPose | Glide SP |
|---|---|---|
| Mean AUC (22 shared targets) | 0.821 | 0.741 |
| Targets won | 16 (73%) | 5 (23%) |
| Ties | 1 (4%) | - |
LatticeZero outperforms Glide SP on the majority of tested targets, with particular strength on kinases and proteases. Glide shows advantages on select targets including AR, ESR1, and PARP1. See full comparison: Benchmark Results.
Glide SP values from Wu et al., Chemical Science, 2025. Methodological differences (scoring protocols, conformer generation) may affect direct comparability.
Strengths: Massively parallel rescoring throughput, zero-install deployment, customizable per-target profiles, transparent physics terms with interpretable weights.
Limitations: Grid-based scoring does not capture induced-fit effects. No implicit/explicit solvent treatment beyond desolvation penalties. Pose search (IsoPose) is slower than IsoScore rescoring. Current validation is on rigid-receptor benchmarks. See Known Limitations for a complete discussion.
Further Reading
- Physics Reference - Detailed description of all 14 scoring terms
- Scoring Profiles - How profiles weight the energy function
- Benchmark Results - Validation on DEKOIS2
- Known Limitations - Honest assessment of current limitations