cryoval: CPU-only validator for cryo-EM/ET maps
A reconstructor-agnostic linter that checks cryo-EM/ET maps for overfitting, particle-picking bias, and local map-noise hallucination — before you trust a deposited or generated map.
The gap
Reconstruction ecosystems (RELION, Scipion, Topaz, IsoNet) are plentiful; an open-source, reproducible layer that audits a produced map against the data is not. As of the 2026-07-11 batch scan, the GitHub count for a "cryo-EM map validation tool" was 0.
What it does
cryoval reads the JSON you produce with your reconstrucor and applies four rules:
- R1 — Cross-validation (FSC): reported resolution vs FSC=0.143 between half-maps inconsistent => FAIL.
- R2 — Benchmark correlation (POPSICLE): low IoU/precision vs a standardized cryo-ET benchmark => FAIL (skipped without benchmark data).
- R3 — Particle-picking bias: measurable confirmation bias in mask/signal correlation => FAIL.
- H1 — Local map-noise hallucination (DERIVED): confidence collapses where synthetic-noise SNR is high => signals probable overfitting to noise.
Transparency note
H1 is a DERIVED rule (risk R5), proposed by the author and not extracted from a single paper. It needs experimental validation against a gold-standard FSC on real EMDB maps before promotion to a hard rule. Thresholds (FSC=0.143, POPSICLE IoU) are documented physics, not tuned to the fixtures. Fixtures use synthetic controlled maps (external-validity, not circular).
Results
- 31 tests passing, 96.00% coverage (gate 80%)
- CPU-only, 0 external reconstrucor invocations (AC-7)
- AGPL-3.0-or-later
Try it
pip install -e .
cryoval check --in fixtures/ --format md
Stack
- Python 3.11+, Typer, NumPy
- pytest + pytest-cov for the suite
Links
License: AGPL-3.0-or-later (c) 2026 Pedro Sordo Martinez — amurlaniakea@gmail.com
Top comments (0)