Skip to main content

Location & Orientation of Particles found using Two-Dimensional Template Matching

Project description

Leopard-EM: Python based template matching

License PyPI Python Version CI codecov

Leopard-EM (Location & oriEntatiOn of PARticles found using two-Dimensional tEmplate Matching) is a python package for running two-dimensional template matching (2DTM) on cryo-EM images. Check out the online documentation for more details about using, configuring, and analyzing data from the Leopard-EM Python package.

Basic Installation

The newest released version of the package can be installed from PyPI using pip:

pip install leopard-em

Usage

Template Matching

Inputs to the template matching programs can be configured through a YAML file or a set of Python objects. The example YAML configuration file acts as a template for configuring your own runs with more details on configuring and running 2DTM on the programs section of the documentation. We also provide a default match_template.py script with some additional detail, but a compacted version of this script is shown below. Once configured with the proper paths, parameters, etc., the program can run as follows:

from leopard_em.pydantic_models.managers import MatchTemplateManager

YAML_CONFIG_PATH = "/path/to/match-template-configuration.yaml"
DATAFRAME_OUTPUT_PATH = "/path/to/match-template-results.csv"
ORIENTATION_BATCH_SIZE = 8

def main():
    mt_manager = MatchTemplateManager.from_yaml(YAML_CONFIG_PATH)
    mt_manager.run_match_template(ORIENTATION_BATCH_SIZE)
    df = mt_manager.results_to_dataframe()
    df.to_csv("/path/to/results.csv")

# NOTE: invoking from `if __name__ == "__main__"` is necessary
# for proper multiprocessing/GPU-distribution behavior
if __name__ == "__main__":
    main()

Template Refinement

Particle orientations and locations can be refined using the RefineTemplateManager objects after a template matching run. The RefineTemplateManager is similarly a set of Pydantic models capable of configuration via YAML files. The example YAML configuration file acts as a template for configuring your own runs. We also provide a default refine_template.py script with some additional detail, but a compacted version of this script is shown below. Once configured with the proper paths, parameters, etc., the program can run as follows:

from leopard_em.pydantic_models.managers import RefineTemplateManager

YAML_CONFIG_PATH = "/path/to/refine-template-configuration.yaml"
DATAFRAME_OUTPUT_PATH = "/path/to/refine-template-results.csv"
PARTICLE_BATCH_SIZE = 80

def main():
    rt_manager = RefineTemplateManager.from_yaml(YAML_CONFIG_PATH)
    rt_manager.run_refine_template(DATAFRAME_OUTPUT_PATH, PARTICLE_BATCH_SIZE)

if __name__ == "__main__":
    main()

Installation for Development

The package can be installed from source in editable mode with the optional development libraries via pip.

git clone https://github.com/Lucaslab-Berkeley/Leopard-EM.git
cd Leopard-EM
pip install -e '.[dev,test, docs]'

Further information on development and contributing to the repo can be found in our online documentation.

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

leopard_em-0.0.9a0.tar.gz (5.9 MB view details)

Uploaded Source

Built Distribution

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

leopard_em-0.0.9a0-py3-none-any.whl (83.2 kB view details)

Uploaded Python 3

File details

Details for the file leopard_em-0.0.9a0.tar.gz.

File metadata

  • Download URL: leopard_em-0.0.9a0.tar.gz
  • Upload date:
  • Size: 5.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for leopard_em-0.0.9a0.tar.gz
Algorithm Hash digest
SHA256 e63acb270d67e420afa32023352e576c115d7af36369101658a304ea08c8a0d7
MD5 9af974f0f1e53ed2fa6233f1e23d5491
BLAKE2b-256 cfe62588073ec7f28240f564f698f571aa80ac477ecdf03fe609723826cabf9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for leopard_em-0.0.9a0.tar.gz:

Publisher: python-publish.yml on Lucaslab-Berkeley/Leopard-EM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file leopard_em-0.0.9a0-py3-none-any.whl.

File metadata

  • Download URL: leopard_em-0.0.9a0-py3-none-any.whl
  • Upload date:
  • Size: 83.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for leopard_em-0.0.9a0-py3-none-any.whl
Algorithm Hash digest
SHA256 beba458c54b9b12dbae09fe94a16105a0109842b0581171b9d4a00e238342f4d
MD5 3511321e10400299866e665dc1fd1285
BLAKE2b-256 57ce7f39e4aa69f3cb11c89f7f761c28e37955a674cabe42ea3a03b3e2dc946a

See more details on using hashes here.

Provenance

The following attestation bundles were made for leopard_em-0.0.9a0-py3-none-any.whl:

Publisher: python-publish.yml on Lucaslab-Berkeley/Leopard-EM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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