本家様 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-02-17 2025-02-15 2025-02-14 2025-02-12 2025-02-03 2025-02-02 2025-02-01 2025-01-27 2025-01-26 2025-01-25 2025-01-24 2025-01-23 2025-01-20 2025-01-13 2025-01-12 2025-01-08 2024-12-30 2024-12-29 2024-12-22 2024-12-20 2024-12-17 2024-12-15 2024-12-14 2024-12-12 2024-12-11 2024-12-10 2024-12-09 2024-12-08 2024-11-28 2024-11-22 2024-11-15 2024-11-14 2024-11-12 2024-11-06 2024-11-05 2024-11-04 2024-11-02 2024-11-01 2024-10-28 2024-10-27 2024-10-23 2024-10-18 2024-10-17 2024-10-15 2024-10-14

edit


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