本家様 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) も扱います

PyTom

実行環境はこんな感じです。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

となって下記画面が表示される
2024y07m11d_192818881.png

pytom-match-pick

本家様 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)
 :
最新の60件
2025-05-24 2025-05-22 2025-05-21 2025-05-20 2025-05-19 2025-05-18 2025-05-17 2025-05-14 2025-05-13 2025-05-12 2025-05-11 2025-05-08 2025-05-07 2025-05-06 2025-05-05 2025-05-04 2025-05-03 2025-04-27 2025-04-26 2025-04-25 2025-04-24 2025-04-17 2025-04-13 2025-04-02 2025-04-01 2025-03-31 2025-03-29 2025-03-28 2025-03-27 2025-03-26 2025-03-23 2025-03-22 2025-03-20

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-10-08 (火) 17:43:45