Reproducibility
LatticeZero is committed to reproducible computational results. This page documents our determinism guarantees, known sources of variance, and versioning practices.
Determinism Guarantees
IsoScore (Rescoring)
IsoScore rescoring is deterministic within a single GPU and browser session:
- Same input SDF + same scoring grid + same profile weights = identical scores and rankings
- No random number generation is involved in rescoring
- Results are computed in a single GPU dispatch - no race conditions
Cross-session guarantee: Given the same input files, profile version, and engine version, IsoScore will produce the same ranked order on the same hardware.
IsoPose (Docking)
IsoPose uses a genetic algorithm for pose search, which introduces controlled randomness:
- The GA uses a seeded pseudo-random number generator - same seed = same poses
- Default behavior: a fixed seed is used, producing deterministic results
- When conformer enumeration is enabled, the set of starting conformers is also deterministic for a given input
Practical impact: Re-running the same IsoPose job on the same machine will produce the same poses and scores.
Sources of Variance
Cross-GPU Variance
WebGPU scoring involves floating-point arithmetic on the GPU. Different GPU architectures may produce slightly different results due to:
- Floating-point rounding: IEEE 754 allows different rounding modes. GPU vendors (NVIDIA, AMD, Intel, Apple) may implement fused multiply-add operations differently.
- Reduction order: Parallel sum reductions may accumulate in different orders on different GPU architectures, affecting the least significant bits.
Measured impact: In testing across NVIDIA (RTX 3090), Intel (Iris Xe), and SwiftShader (software), absolute score differences are typically < 0.001 for individual terms. Relative rankings are preserved - the same ligands appear at the top regardless of GPU.
Our guarantee: Same input + same profile + same engine version = same ranked order across GPUs, even if absolute scores differ at the epsilon level.
Browser Differences
All modern WebGPU-capable browsers (Chrome, Edge, Firefox) use the same underlying GPU driver and should produce identical results on the same hardware. Safari's WebGPU implementation (WebKit) may show minor floating-point differences.
Versioning and Provenance
Engine Versioning
LatticeZero follows semantic versioning. The current engine version is displayed on the platform's health endpoint (/health) and in exported data.
- Major version changes: Scoring function modifications that may change absolute scores
- Minor version changes: New features, profile additions, UI improvements
- Patch version changes: Bug fixes, performance improvements
Profile Versioning
Each scoring profile includes version metadata:
- Profile ID: Unique identifier (e.g.,
hmgr_score_v1) - Validation method:
e2e_validated(full docking pipeline) orscore_validated(rescoring only) - Validation date: When the profile was last benchmarked
- Engine version: Which engine version was used for validation
Profile Pack Provenance
Exported Profile Packs (v2.0 format) include full provenance:
{
"profile_id": "hmgr_score_v1",
"version": "2.0",
"tier": "platinum",
"auc": 0.980,
"validation": {
"method": "5-fold CV, tie-corrected AUC",
"dataset": "DEKOIS2 HMGR",
"date": "2026-02-13",
"engine_version": "0.9.7"
},
"weights": { ... }
}
This allows any exported profile to be traced back to its validation conditions.
Best Practices for Reproducibility
- Record your profile version when reporting results. Different profile versions may weight terms differently.
- Use the same browser and GPU for comparable runs. While ranked order is preserved across GPUs, absolute scores may differ slightly.
- Export results in SDF or CSV format - these include all per-term scores for independent verification.
- Note the engine version displayed at
/health. Major version updates may change scoring behavior.
Further Reading
- Benchmark Results - Validated AUC numbers and methodology
- Known Limitations - What the scoring function cannot capture