PyTOM's GPU template matching module as an independent package
Project description
GPU template matching for cryo-ET
GPU template matching, originally developed in PyTom, as a standalone python package that can be run from the command line.
Requires
miniconda3
nvidia-cuda-toolkit
Installation
There are 2 options for creating a conda environment. We recommend option (1) which will later allow cupy to build against a system installed cuda-toolkit. Compared to option (2) this can give an almost two-fold speedup:
-
(recommended) Create a new python 3 environment:
conda create -n pytom_tm python=3
-
Create a new environment with a prebuild cupy version and complete CUDA-toolkit. This is more reliable, but takes more disk space and has less optimal performance.
conda create -n pytom_tm -c conda-forge python=3 cupy cuda-version=11.8
Once the environment is created, activate it:
conda activate pytom_tm
Then clone the repository and install it with pip (building cupy can take a while!):
git clone https://github.com/SBC-Utrecht/pytom-match-pick.git
cd pytom-match-pick
python -m pip install '.[plotting]'
The installation above also adds the optional dependencies [matplotlib, seaborn]
which are required to run
pytom_estimate_roc.py
. They are not essential to the core template matching functionality, so for some systems
(such as certain cluster environments) it might be desirable to skip them. In that case remove [plotting]
from the pip install command:
python -m pip install .
Tests
To run the unittests:
cd tests
python -m unittest discover
If cupy is not correctly installed, this should raise some errors:
python -c "import cupy as cp; a = cp.zeros((100,100))"
To solve cupy installation issues, please check the cupy docs. It might be solved by installing a specific build compatible with the installed cuda toolkit.
Usage
Detailed usage instructions are available on the wiki: https://github.com/SBC-Utrecht/pytom-match-pick/wiki
Also, a tutorial can be found on the same wiki: https://github.com/SBC-Utrecht/pytom-match-pick/wiki/Tutorial
The following scripts are available to run with --help
to see parameters:
- create a template from an mrc file containing a density map:
pytom_create_template.py --help
- create a mask for template matching:
pytom_create_mask.py --help
- run template matching with the mask (.mrc) and template (.mrc) on a tomogram (.mrc):
pytom_match_template.py --help
- extract candidates from a job file (.json) created in the template matching output folder:
pytom_extract_candidate.py --help
- estimate an ROC curve from a job file (.json):
pytom_estimate_roc.py --help
- merge multiple star files to a single starfile:
pytom_merge_stars.py --help
Contributing
Contributions to the project are very welcome! Feel free to make a pull request or suggest an implementation in the issues. For PR's we will gladly give you feedback on how to integrate the code.
Citation
For a reference on GPU accelerated template matching in tomograms please see the IJMS publication.
@Article{ijms241713375,
AUTHOR = {Chaillet, Marten L. and van der Schot, Gijs and Gubins, Ilja and Roet, Sander and Veltkamp, Remco C. and Förster, Friedrich},
TITLE = {Extensive Angular Sampling Enables the Sensitive Localization of Macromolecules in Electron Tomograms},
JOURNAL = {International Journal of Molecular Sciences},
VOLUME = {24},
YEAR = {2023},
NUMBER = {17},
ARTICLE-NUMBER = {13375},
URL = {https://www.mdpi.com/1422-0067/24/17/13375},
ISSN = {1422-0067},
DOI = {10.3390/ijms241713375}
}
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
Built Distribution
File details
Details for the file pytom-match-pick-0.4.3.tar.gz
.
File metadata
- Download URL: pytom-match-pick-0.4.3.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d88e25113a7e05fa1ba171bd36bfc11ee7207414b12b085a64397a1eec7754d |
|
MD5 | 0822bb385b5fcdda066d8e155e4f26a9 |
|
BLAKE2b-256 | 0b50a6e8fdbb4f4be7d7279346ce8fb6bf21d49cff13ea2d715e11b3d24def87 |
File details
Details for the file pytom_match_pick-0.4.3-py3-none-any.whl
.
File metadata
- Download URL: pytom_match_pick-0.4.3-py3-none-any.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4aa671aea90c20dc8368062efc69fa3e4b2e54c9a7e3399bfe797f2cabf6d5b6 |
|
MD5 | 9d2b5bd9ac5c007772cd8373c503edb5 |
|
BLAKE2b-256 | d62365b9b159bb7ce397543c9a6c83cf588b155c1cd5118358a83a0dddbd9e3a |