A lightweight Pythonic utility to convert atomic models (PDB/CIF) into synthetic 3D Cryo-EM maps with realistic noise, CTF effects and varying resolutions.
- Voxelize atomic models with accurate resolution simulation.
- Simulate Physics: Apply Contrast Transfer Functions (CTF) and envelope functions.
- Noise Modeling: Add adjustable Gaussian noise to simulate low-SNR experimental data.
- Standard Format: Export results to MRC files compatible with RELION, ChimeraX, and other tools.
pip install synth-cryo-emsynth-cryo-em structure.pdb output.mrc --resolution 4.0synth-cryo-em structure.pdb output.mrc --resolution 3.5 --apply-physics --snr 5Explore the project's functionality interactively via our Jupyter notebooks:
- Interactive Physics & Visualization: Explore how resolution, noise (SNR), and CTF effects change the visual features of a map in 3D.
- Core API Walkthrough: A step-by-step guide to using the Python API for custom workflows.
For detailed guides and API reference, visit the Documentation Site.
To install for development and documentation:
pip install -e ".[test,docs]"Run tests:
pytest tests/Build docs locally:
mkdocs serveThis library is part of the synth-pdb ecosystem:
- synth-pdb — Core protein structure generator
- synth-nmr — NMR observables simulator
- synth-saxs — SAXS profile simulator
- synth-dynamics — ANM/Langevin dynamics engine
- diff-biophys — Differentiable JAX biophysics kernels
Contributions are welcome! Please open an issue or pull request on GitHub. Run pre-commit run --all-files before submitting.
MIT License — see LICENSE for details.
@software{synth_cryo_em,
author = {Elkins, George},
title = {synth-cryo-em: Synthetic cryo-EM map generation from atomic models},
year = {2026},
url = {https://github.com/elkins-lab/synth-cryo-em},
version = {0.1.3}
}