pytom-match-pick是从cryoET数据处理软件PyTOM中独立出来的一个颗粒模板匹配算法。
安装
如果环境中有cuda的话:
conda create -n pytom_tm python=3
如果环境没有cuda,或者想使用预设的cuda,出错的概率小一些,但是也需要占用一些存储,同时可能降低一定的性能:
conda create -n pytom_tm -c conda-forge python=3 cupy cuda-version=11.8
然后安装pytom,[plotting]的选项会同时安装matplotlib和seaborn图形库用于pytom_estimate_roc.py脚本的可视化输出,不影响核心算法。
conda activate pytom_tm python -m pip install pytom-match-pick[plotting]
使用
处理模板。如果tomogram是黑色颗粒,得加上--invert
。
pytom_create_template.py -i model.mrc -o template.mrc --output-voxel-size-angstrom 10 --box-size 16 --center --invert
生成一个mask,要和模板尺寸一致。
pytom_create_mask.py -b 16 -r 7 --voxel-size 10 -o mask.mrc
执行匹配搜索。
pytom_match_template.py \ -t template.mrc \ -v tomogram.mrc \ -m mask.mrc \ --particle-diameter 130 \ --angular-search 15 \ --tilt-angles -60 60 \ --relion5-tomograms-star /path/to/tomograms.star \ --voxel-size-angstrom 10 \ -g 1 \
对一个代表性的结果查看ROC估算一个cutoff阈值。
pytom_estimate_roc.py \ -j tomogram.json \ -n 1000 \ --particle-diameter 180 \ --show-plot
提取颗粒位置。
pytom_extract_candidates.py \ -j tomogram.json \ -n 1000 \ -c 0.3 \ --relion5-compat \ --particle-diameter 130
合并多个star文件
pytom_merge_stars.py