Skip to main content

Synthetic Cryo-EM map generator from PDB models

Project description

synth-cryo-em

PyPI version Python 3.9+ License: MIT Tests Documentation Ruff Checked with mypy codecov

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. Open In Colab
  • Core API Walkthrough: A step-by-step guide to using the Python API for custom workflows. Open In Colab

📖 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:

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/synth-cryo-em},
  version = {0.1.0}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

synth_cryo_em-0.1.2.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

synth_cryo_em-0.1.2-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file synth_cryo_em-0.1.2.tar.gz.

File metadata

  • Download URL: synth_cryo_em-0.1.2.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for synth_cryo_em-0.1.2.tar.gz
Algorithm Hash digest
SHA256 497b4432409fbc33c3ca131d8d702b0b12c10efc5ffadf8a7f7b9e111b065b54
MD5 5ef5462526ffa615be82ac47924846d9
BLAKE2b-256 1dd2dde3fb6889aac85d84751f55d1f249227b856c7b92d33045288528cee1df

See more details on using hashes here.

File details

Details for the file synth_cryo_em-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: synth_cryo_em-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for synth_cryo_em-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 33340be5e6829bd62306a0808ed0d6a19685f92cd7f0473b55bf1dc9006fe2e4
MD5 4c6f063ba2850a3027a95e21667f3a37
BLAKE2b-256 4db0f3f4c4a909f7b7694712c269a53d005f31f9dae90a839a264ade036f4211

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page