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.7a0.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.7a0-py3-none-any.whl (78.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: leopard_em-0.0.7a0.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.7a0.tar.gz
Algorithm Hash digest
SHA256 a49f32d6ce954eb8e0266259109a727de27d1292bb1ef2aa1732d10a8baa301e
MD5 f99ee038450acd8ba0a2ae33459f3a08
BLAKE2b-256 7f028082cd3e7120ce9101c1b9c7b0c0a11ea182d1a9711518aa1f356507666d

See more details on using hashes here.

Provenance

The following attestation bundles were made for leopard_em-0.0.7a0.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.7a0-py3-none-any.whl.

File metadata

  • Download URL: leopard_em-0.0.7a0-py3-none-any.whl
  • Upload date:
  • Size: 78.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.7a0-py3-none-any.whl
Algorithm Hash digest
SHA256 060c834d8375a0fdeab3a1940a517b31501fafd0565873478bae87bc5d4a1dc5
MD5 92b5848593b74d7dd818404be5b1883b
BLAKE2b-256 756f5845c43515dfa8fa169295555c23599d7110caa3d71e0035abbd31bc0b55

See more details on using hashes here.

Provenance

The following attestation bundles were made for leopard_em-0.0.7a0-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