跳转到主要内容

PyTOM的GPU模板匹配模块作为一个独立的软件包

项目描述

test-badge DOI

pytom-match-pick

GPU加速的冷冻电镜三维重构模板匹配,最初在PyTom中开发,作为一个独立的Python软件包,通过命令行运行。

该软件由乌得勒支大学的Friedrich Förster小组的Marten L. Chaillet(@McHaillet)和Sander Roet(@sroet)开发。

cover_image

需求

miniconda3
nvidia-cuda-toolkit

安装

创建conda环境有2种选择。我们推荐选择(1),它将允许cupy针对已安装的系统cuda-toolkit进行构建。与选项(2)相比,这可以提高近两倍的速度。

  1. (推荐) 创建一个新的Python 3环境

    conda create -n pytom_tm python=3
    
  2. 使用预构建的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 (85.5 kB 查看散列)

上传时间

构建分布

pytom_match_pick-0.7.2-py3-none-any.whl (71.5 kB 查看散列)

上传时间 Python 3

由以下提供支持