PyTOM的GPU模板匹配模块作为一个独立的软件包
项目描述
pytom-match-pick
GPU加速的冷冻电镜三维重构模板匹配,最初在PyTom中开发,作为一个独立的Python软件包,通过命令行运行。
该软件由乌得勒支大学的Friedrich Förster小组的Marten L. Chaillet(@McHaillet)和Sander Roet(@sroet)开发。
需求
miniconda3
nvidia-cuda-toolkit
安装
创建conda环境有2种选择。我们推荐选择(1),它将允许cupy针对已安装的系统cuda-toolkit进行构建。与选项(2)相比,这可以提高近两倍的速度。
-
(推荐) 创建一个新的Python 3环境
conda create -n pytom_tm python=3
-
使用预构建的cupy版本和完整的CUDA-toolkit创建一个新环境。这种方法更可靠,但占用更多磁盘空间且性能稍逊一筹。
conda create -n pytom_tm -c conda-forge python=3 cupy cuda-version=11.8
环境创建完成后,激活它
conda activate pytom_tm
然后使用pip
安装代码(构建cupy可能需要一段时间!)
python -m pip install pytom-match-pick[plotting]
上述安装还添加了可选依赖项[matplotlib, seaborn]
,这些依赖项是运行pytom_estimate_roc.py
所必需的。它们对核心模板匹配功能并非必需,因此对于某些系统(如某些集群环境)可能希望跳过它们。在这种情况下,请从pip安装命令中移除[plotting]
。
python -m pip install pytom-match-pick
Cupy警告
运行软件时遇到问题?如果cupy安装不正确,
python -c "import pytom_tm"
可能会显示cupy警告。如果是这种情况,这通常意味着cupy没有正确安装。或者,cupy有时可以没有问题地安装,但无法正确检测CUDA。在这种情况下,以下操作应该会引发一些错误
python -c "import cupy as cp; a = cp.zeros((100,100))"
要解决cupy安装问题,请检查cupy文档。这可能是通过安装与已安装的cuda toolkit兼容的特定构建版本来解决的。
用法
以下脚本可用,使用--help
查看参数
- 从包含密度图的mrc文件创建模板:
pytom_create_template.py --help
- 创建模板匹配的掩码:
pytom_create_mask.py --help
- 使用掩码(.mrc)和模板(.mrc)在断层扫描(.mrc)上运行模板匹配:
pytom_match_template.py --help
- 从模板匹配输出文件夹中创建的作业文件(.json)中提取候选者:
pytom_extract_candidate.py --help
- 从作业文件(.json)中估计ROC曲线:
pytom_estimate_roc.py --help
- 将多个star文件合并到一个starfile中:
pytom_merge_stars.py --help
更详细的用法说明和教程可在我们的网站上找到。
用法问题、想法和解决方案、参与等
请使用我们的github讨论
- 询问关于瓶颈的问题。
- 分享想法和解决方案。
- 与其他社区成员讨论处理策略。
- 等等...
开发者安装
如果您想要最新版本的代码,您可以从此存储库安装它
git clone https://github.com/SBC-Utrecht/pytom-match-pick.git
cd pytom-match-pick
python -m pip install '.[all]'
如果您不想安装可选的绘图依赖项,请使用以下安装命令代替
python -m pip install '.[dev]'
对于开发,请还安装pre-commit以在提交PR之前检查和自动格式化代码
pre-commit install
这使用Ruff在您提交时检查和格式化。
如果您更新了(文档)docs/
文件夹中的任何内容,请确保在本地测试构建网站
mkdocs serve
测试
使用开发者安装还可以运行unittests,从git存储库运行
cd tests
python -m unittest discover
贡献
我们非常欢迎对项目的贡献!请随意提交拉取请求或对问题提出实现建议。对于PR,我们将很高兴为您提供有关如何集成代码的反馈。
引用
Chaillet, M. L.,van der Schot, G.,Gubins, I.,Roet, S.,Veltkamp, R. C.,& Förster, F. (2023). 广泛的角采样使电子断层扫描中宏分子的高灵敏度定位成为可能。《国际分子科学杂志》,24(17),13375。 https://doi.org/10.3390/ijms241713375
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
构建分布
pytom_match_pick-0.7.2.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 0d1a55dbcb8c6a19075bbda49f835276f23c01745222a073197fe050e87a9229 |
|
MD5 | 04b9b2d097da1f96ed39dc45c24a65bb |
|
BLAKE2b-256 | 369c9f0a11730f0229e5020ae05ee38e8be530f7deae3e09958e742c3d4b130b |
pytom_match_pick-0.7.2-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 5b1af8e9e1651a223d789192f46b4c9a66036b6f1496258816bd50a771c648e4 |
|
MD5 | a65f79abb574d4b57f2330b454a07183 |
|
BLAKE2b-256 | bbde51e9eb2d055f6b70a6ea099a59cfa586f6d17de28674f78d949e1fd4225e |