Skip to main content

A Python client for accessing the Electron Microscopy Data Bank (EMDB)

Project description

EMDB Python Client

A Python client for accessing and interacting with the Electron Microscopy Data Bank (EMDB).
This package provides an easy-to-use interface to query EMDB entries, access metadata, and download associated files.

🚀 Features

  • Retrieve EMDB entries by ID
  • Query metadata such as resolution, sample description, and related PDBs
  • Download associated files (maps, images, metadata)
  • Utility models for plotting and file handling
  • Access to validation analysis and annotation data

📚 Documentation

Full API documentation is available at:
👉 https://emdb.readthedocs.io/en/latest/

🔧 Installation

You can install the EMDB client via pip:

pip install emdb

✨ Quick Start

from emdb.client import EMDB
from emdb.exceptions import EMDBNotFoundError

client = EMDB()

try:
    # Retrieve an entry by ID
    entry = client.get_entry("EMD-8117")
    print(entry.resolution)
    
    # Access cross-reference annotations
    annotations = entry.get_annotations()
    for annotation in annotations:
        print(annotation)
    
    # Access validation data and plot FSC
    validation = entry.get_validation()
    validation.plots.fsc.plot()
    
    # Download all files
    entry.download_all_files(output_dir="/tmp/emd1234/")
    
    # Perform a query to return EMDB entries
    results = client.search("HIV")
    for entry in results:
        print(entry.id, entry.method, entry.resolution)
    
    # Perform a query to return a DataFrame
    table = client.csv_search("HIV")
    print(table)
except EMDBNotFoundError:
    print("Entry not found.")

🛠 Requirements

🤝 Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.

For detailed contributing guidelines, see CONTRIBUTING.md.

Running Tests

This project uses pytest for testing. To run the tests:

# Install test dependencies
pip install -e ".[test]"

# Run all tests
pytest

# Run with coverage report
pytest --cov=emdb --cov-report=html

# Run specific test file
pytest tests/test_client.py

📄 License

This project is licensed under the Apache License 2.0.

📧 Contact

For questions or feedback, please open an issue on GitHub or contact the maintainers.

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

emdb-0.1.11.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

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

emdb-0.1.11-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file emdb-0.1.11.tar.gz.

File metadata

  • Download URL: emdb-0.1.11.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for emdb-0.1.11.tar.gz
Algorithm Hash digest
SHA256 276d9681f8347da895beb35a852d53cef19b660d87fc8f5d37a51b1e0f264c72
MD5 9218b0c780852f43d064b70fc987276c
BLAKE2b-256 4b20b17dc1edbdbcdc9b16ed2d05bc1bff573c459b8bd9d54d971c9efbf08c83

See more details on using hashes here.

File details

Details for the file emdb-0.1.11-py3-none-any.whl.

File metadata

  • Download URL: emdb-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for emdb-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 37b8630d657ab0f1be67278161c6e21c1d1d72b25286376dc8a22675e8b84388
MD5 72ad132831bfa1e819a726d41254043b
BLAKE2b-256 6e5691e5d1f159f9a3ef179d4cd2bbcf6aca29a67230d0e91ba49a25451ff8fd

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