Synthetic Cryo-EM map generator from PDB models
Project description
synth-cryo-em
A lightweight Pythonic utility to convert atomic models (PDB/CIF) into synthetic 3D Cryo-EM maps with realistic noise, CTF effects and varying resolutions.
🌟 Features
- 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.
🚀 Quick Start
Installation
pip install synth-cryo-em
Basic Generation
synth-cryo-em structure.pdb output.mrc --resolution 4.0
Realistic Simulation
synth-cryo-em structure.pdb output.mrc --resolution 3.5 --apply-physics --snr 5
📚 Tutorials
Explore 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.
📖 Documentation
For detailed guides and API reference, visit the Documentation Site.
🛠️ Development
To install for development and documentation:
pip install -e ".[test,docs]"
Run tests:
pytest tests/
Build docs locally:
mkdocs serve
Related Projects
This 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
Contributing
Contributions are welcome! Please open an issue or pull request on GitHub. Run pre-commit run --all-files before submitting.
License
MIT License — see LICENSE for details.
Citation
@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}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file synth_cryo_em-0.1.3.tar.gz.
File metadata
- Download URL: synth_cryo_em-0.1.3.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5377c652881fee7a807d66295bf4dcc8cb2102bb3d82db9ab3308c42ccf67a9d
|
|
| MD5 |
b71ea84f83ad5d11eb317e0dc4133718
|
|
| BLAKE2b-256 |
c0ce74e9487cc8ef1d773b372e50a5c9e32ef437bd403f5d482b6de2543d426b
|
Provenance
The following attestation bundles were made for synth_cryo_em-0.1.3.tar.gz:
Publisher:
publish.yml on elkins-lab/synth-cryo-em
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
synth_cryo_em-0.1.3.tar.gz -
Subject digest:
5377c652881fee7a807d66295bf4dcc8cb2102bb3d82db9ab3308c42ccf67a9d - Sigstore transparency entry: 2023939689
- Sigstore integration time:
-
Permalink:
elkins-lab/synth-cryo-em@26d183fbb627bb7a52b48068aad2d6e3b1d41a62 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/elkins-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@26d183fbb627bb7a52b48068aad2d6e3b1d41a62 -
Trigger Event:
release
-
Statement type:
File details
Details for the file synth_cryo_em-0.1.3-py3-none-any.whl.
File metadata
- Download URL: synth_cryo_em-0.1.3-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aece6d447ec009342e18d5bcdcce2ce48d36a0519d89cf591947e298f98b3d11
|
|
| MD5 |
cf69993ac942a83e1ccffb75c0442a10
|
|
| BLAKE2b-256 |
b75398e660415c4035f9f3d09620162c01a9b027f0ea51f7b5dc5f31fd7085ca
|
Provenance
The following attestation bundles were made for synth_cryo_em-0.1.3-py3-none-any.whl:
Publisher:
publish.yml on elkins-lab/synth-cryo-em
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
synth_cryo_em-0.1.3-py3-none-any.whl -
Subject digest:
aece6d447ec009342e18d5bcdcce2ce48d36a0519d89cf591947e298f98b3d11 - Sigstore transparency entry: 2023939839
- Sigstore integration time:
-
Permalink:
elkins-lab/synth-cryo-em@26d183fbb627bb7a52b48068aad2d6e3b1d41a62 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/elkins-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@26d183fbb627bb7a52b48068aad2d6e3b1d41a62 -
Trigger Event:
release
-
Statement type: