本家様 https://github.com/SBC-Utrecht/PyTom
PyTom is a toolbox developed for interpreting cryo electron tomography data. All steps from reconstruction, localization, alignment and classification are covered with standard and improved methods.
(DeepL先生訳)
PyTomは低温電子トモグラフィデータを解釈するために開発されたツールボックスです。再構成、ローカライズ、アライメント、分類の全てのステップを標準的な手法と改良された手法でカバーしています。
他、テンプレートマッチングに特化した pytom-match-pick (本家様 https://github.com/SBC-Utrecht/pytom-match-pick) も扱います
実行環境はこんな感じです。nvidiaドライバのみ入っていてcudaライブラリは入ってないです.
[root@rockylinux ~]# cat /etc/redhat-release
Rocky Linux release 8.10 (Green Obsidian)
[root@rockylinux ~]#
[root@rockylinux ~]# cat /cat /proc/driver/nvidia/version
cat: /cat: No such file or directory
NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.183.01 Sun May 12 19:39:15 UTC 2024
GCC version: gcc version 8.5.0 20210514 (Red Hat 8.5.0-22) (GCC)
[root@rockylinux ~]# ls /usr/local/cuda
ls: cannot access '/usr/local/cuda': No such file or directory
[root@rockylinux ~]#
まず、pyenv/anaconda で仮想実行環境を作れるようにします。
git clone https://github.com/yyuu/pyenv.git /apps/pyenv
export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
pyenv install --list <--これでanaconda,minicondaのバージョンが一覧されます.
pyenv install anaconda3-2024.06-1
source /apps/pyenv/versions/anaconda3-2024.06-1/etc/profile.d/conda.sh
conda update conda -y
っで構築します。
[root@rockylinux ~]# cd /apps/
[root@rockylinux apps]# git clone https://github.com/SBC-Utrecht/PyTom
[root@rockylinux apps]# cd PyTom/
[root@rockylinux PyTom]# conda env create -f environments/pytom_full.yaml -n pytom
[root@rockylinux PyTom]# conda activate pytom
(pytom) [root@rockylinux PyTom]# conda list
:
cuda-nvrtc 12.5.82 he02047a_0 conda-forge
cuda-version 12.5 hd4f0392_3 conda-forge
cupy 13.2.0 py312had87585_0 conda-forge
cupy-core 13.2.0 py312hd074ebb_0 conda-forge
:
numpy 2.0.0 py312h22e1c76_0 conda-forge
:
swig 4.2.1 hfb18ccb_1 conda-forge
:
(pytom) [root@rockylinux PyTom]#
(pytom) [root@rockylinux PyTom]# echo $CONDA_PREFIX
/apps/pyenv/versions/anaconda3-2024.06-1/envs/pytom
(pytom) [root@rockylinux PyTom]# python setup.py install --prefix $CONDA_PREFIX
(pytom) [root@rockylinux PyTom]#
ここで numpy の version 2.0.0 が入りますが、このバージョンでは上手くインストールが進まないので、
numpy の version 1 系列に差し替えます。
(pytom) [root@rockylinux PyTom]# conda install numpy=1
(pytom) [root@rockylinux PyTom]# conda list
:
numpy 1.26.4 py312h2809609_0
numpy-base 1.26.4 py312he1a6c75_0
:
(pytom) [root@rockylinux PyTom]#
その上で再度コンパイルを行います
(pytom) [root@rockylinux PyTom]# python setup.py install --prefix $CONDA_PREFIX
:
(pytom) [root@rockylinux PyTom]#
以上で完成です。
いつものEnvironmentModules
こちらは「/apps/modulefiles/PyTom」として中身は下記のようにします。PyTomから imod や MotionCor2 を使うので予めロードさせておきます。
#%Module1.0
module load IMOD
module load MotionCor2
set root /apps/pyenv/versions/anaconda3-2024.06-1/envs/pytom
prepend-path PATH $root/bin
起動は
[saber@rockylinux ~]$ module use /apps/modulefiles
[saber@rockylinux ~]$ module load PyTom
[saber@rockylinux ~]$ pytomGUI
Please load the motioncor2/1.2.1 module
Please load the imod/4.10.25 module
となって下記画面が表示される
本家様 https://github.com/SBC-Utrecht/pytom-match-pick
[root@rockylinux ~]# source /apps/pyenv/versions/anaconda3-2024.06-1/etc/profile.d/conda.sh
[root@rockylinux ~]# conda create -n pytom_tm -c conda-forge python=3 cupy cuda-version=11.8
[root@rockylinux ~]# conda activate pytom_tm
(pytom_tm) [root@rockylinux ~]#
(pytom_tm) [root@rockylinux ~]# pip install pytom-match-pick[plotting]
[あるいは]
(pytom_tm) [root@rockylinux ~]# pip install pytom-match-pick[plotting,matplotlib,seaborn]
EnvironmentModules
「/apps/modulefiles/pytom-match-pick」として
#%Module1.0
set root /apps/pyenv/versions/anaconda3-2024.06-1/envs/pytom_tm
prepend-path PATH $root/bin
チュートリアルの実行 https://github.com/SBC-Utrecht/pytom-match-pick/wiki/Tutorial
まず https://doi.org/10.34894/TLGJCMからデータセットを取得します。40枚のファイルです。
計算系によってはGPUメモリーが足らないと言われる.
正しい方法かは不明だが、ユニファイドメモリーを使って回避できたけど...
下記のように追記します.
vi /apps/pyenv/versions/miniforge3-23.11.0-0/envs/pytom_tm/lib/python3.12/site-packages/pytom_tm/matching.py
:
pool = cp.cuda.MemoryPool(cp.cuda.malloc_managed)
cp.cuda.set_allocator(pool.malloc)
: