本家様 https://github.com/tbepler/topaz

Singularityで利用するならtopaz/Singularity

各自のホームディレクトリに各種pythonアプリの実行環境を用意するのではなく、rootで一元管理させるために「pyenv-anaconda」を使ってます.
pyenvでOS提供のpython,anaconda環境から離れ、そのpyenv上にanaconda環境を独自に敷いてます
ここでは「/apps/pyenv」を起点としています

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 anaconda3-2024.10-1
pyenv global anaconda3-2024.10-1
source /apps/pyenv/versions/anaconda3-2024.10-1/etc/profile.d/conda.sh
conda update conda
 
(既に環境があるなら)
 
source /apps/pyenv/versions/anaconda3-2024.10-1/etc/profile.d/conda.sh

っと準備を終わらせます

topazのインストール

本家様ではanaconda/conda、pipでのインストールを紹介していますが、condaではうまく行かなかったのでpipで淹れてます.

[root@rockylinux9 ~]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  565.57.01  Thu Oct 10 12:29:05 UTC 2024
GCC version:  gcc version 11.4.1 20231218 (Red Hat 11.4.1-3) (GCC)
 
[root@rockylinux9 ~]# conda create -n topaz python=3.8 -c conda-forge
 
[root@rockylinux9 ~]# conda activate topaz
 
(topaz) [root@rockylinux9 ~]# pip install topaz-em
 
(topaz) [root@rockylinux9 ~]# topaz --version
0.3.6
 
(topaz) [root@rockylinux9 ~]# conda list
 :
nvidia-cublas-cu12        12.1.3.1                 pypi_0    pypi
nvidia-cuda-cupti-cu12    12.1.105                 pypi_0    pypi
nvidia-cuda-nvrtc-cu12    12.1.105                 pypi_0    pypi
nvidia-cuda-runtime-cu12  12.1.105                 pypi_0    pypi
nvidia-cudnn-cu12         8.9.2.26                 pypi_0    pypi
nvidia-cufft-cu12         11.0.2.54                pypi_0    pypi
nvidia-curand-cu12        10.3.2.106               pypi_0    pypi
nvidia-cusolver-cu12      11.4.5.107               pypi_0    pypi
nvidia-cusparse-cu12      12.1.0.106               pypi_0    pypi
nvidia-nccl-cu12          2.20.5                   pypi_0    pypi
nvidia-nvjitlink-cu12     12.6.85                  pypi_0    pypi
nvidia-nvtx-cu12          12.1.105                 pypi_0    pypi
 :
python                    3.8.20          h4a871b0_2_cpython    conda-forge
python-dateutil           2.9.0.post0              pypi_0    pypi
pytz                      2024.2                   pypi_0    pypi
 :
topaz-em                  0.3.6                    pypi_0    pypi
torch                     2.3.1                    pypi_0    pypi
torchvision               0.18.1                   pypi_0    pypi
tqdm                      4.67.1                   pypi_0    pypi
 :
(topaz) [root@rockylinux9 ~]#

torchの動作検証

(topaz) [root@rockylinux9 ~]# python
Python 3.8.20 (default, Oct  3 2024, 15:24:27)
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.cuda.is_available())
True
>>> print(torch.cuda.get_device_name())
NVIDIA GeForce GTX 1070
>>> quit();
(topaz) [root@rockylinux9 ~]# conda deactivate
[root@rockylinux9 ~]#

大丈夫みたい.

環境を削除するには

[root@rockylinux9 ~]# conda env remove --name topaz

とします.

Environment Modules

[root@rockylinux9 ~]# vi /apps/modulefiles/topaz
#%Module
set          root /apps/pyenv/versions/anaconda3-2024.10-1/envs/topaz
prepend-path PATH $root/bin
 
[root@rockylinux9 ~]#

使ってみる

公式の使い方はこちらhttps://github.com/tbepler/topazに記載されてます。
チュートリアルもきちんと用意されてますhttps://github.com/tbepler/topaz#tutorial

ここではごくごく簡単な使い方をしてみます。本来ならトレーニングを行うのでしょうが、既存のモデルをそのまま使っています。
対象はGautomatchのサンプルで。

実行は単に「module load topaz」でtopaz実行環境をロードして

[saber@rockylinux9 ~]$ module use /apps/modulefiles/
[saber@rockylinux9 ~]$ module load topaz
 
[saber@rockylinux9 ~]$ which topaz
/apps/pyenv/versions/anaconda3-2024.10-1/envs/topaz/bin/topaz
[saber@rockylinux9 ~]$

対象ファイルを確認して、topaz実行場所を作る.

[saber@rockylinux9 ~]$ ls -l /apps/GCTF_Gautomatch_Cu10.1/ribosome/test[87].mrc
-rw-rw-r--. 1 root root 67109888 Feb  7  2016 /apps/GCTF_Gautomatch_Cu10.1/ribosome/test7.mrc
-rw-rw-r--. 1 root root 67109888 Feb  7  2016 /apps/GCTF_Gautomatch_Cu10.1/ribosome/test8.mrc
[saber@rockylinux9 ~]$
 
[saber@rockylinux9 ~]$ mkdir -p test/topaz
[saber@rockylinux9 ~]$ cd test/topaz/
[saber@rockylinux9 topaz]$

まずは 対象のmrcファイルに topaz の preprocess を掛ける

[saber@rockylinux9 topaz]$ topaz preprocess -v -s 8 -o ./  /apps/GCTF_Gautomatch_Cu10.1/ribosome/test[78].mrc
# processed: test7
# processed: test8
[saber@rockylinux9 topaz]$ 
[saber@rockylinux9 topaz]$ ls -lh
total 2.1M
-rw-r--r--. 1 saber saber 1.1M Jan  8 01:07 test7.mrc
-rw-r--r--. 1 saber saber 1.1M Jan  8 01:07 test8.mrc
[saber@rockylinux9 topaz]$

preprocess が終わったmrcファイルでpickを試みる

[saber@rockylinux9 topaz]$ topaz extract -r 14  -o predicted_particles.txt *.mrc
 
[saber@rockylinux9 topaz]$ ls -lh
total 2.1M
-rw-r--r--. 1 saber saber  57K Jan  8 01:26 predicted_particles.txt
-rw-r--r--. 1 saber saber 1.1M Jan  8 01:07 test7.mrc
-rw-r--r--. 1 saber saber 1.1M Jan  8 01:07 test8.mrc
[saber@rockylinux9 topaz]$

「UserWarning」が発生しましたが予測結果の「predicted_particles.txt」は得られました

得られた「predicted_particles.txt」の中身は下記になります

[saber@rockylinux9 topaz]$ less predicted_particles.txt
image_name      x_coord y_coord score
test7   186     148     6.538029193878174
test7   257     13      6.200371742248535
test7   96      181     6.096801280975342
test7   12      419     5.8089165687561035
test7   344     432     5.687950611114502
test7   444     495     5.635932445526123
 :
 :
[saber@rockylinux9 topaz]$

「ファイル名 X Y スコア」って感じですね. スコアはマイナスもあります.
v0.2.5より小数点以下の桁数が増えた感じ

っでこれを使って実際にどこが拾われているかを調べた.
2020y07m09d_171059951.png
スコアは2以上です

本来なら、自分でpickした座標データでトレーニングさせて、得られたモデルで「topaz extract」する感じかな.
ここでは標準装備のモデルを使ってます。「topaz extract -h」でモデルの指定方法が明記されてます.
*「-r」のサイズを小さくするとオーバーラップした粒子がpickされるみたい

メモ

「conda create -n topaz python=3.6 -y」なら問題ないが、「conda create -n topaz python=3.9 -y」とかpythonを3.6より大きくすると
UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors.」とか言われます.

topazのサイトで言及されています
https://github.com/tbepler/topaz/issues/68
無視して問題ないみたいです

miniforge3で作ってると
ImportError: /apps/pyenv/versions/miniforge3-23.11.0-0/envs/topaz/lib/python3.6/site-packages/torch/lib/libtorch_cpu.so: undefined symbol: iJIT_NotifyEvent
と表示される。どうも原因はMKLみたいで

source /apps/pyenv/versions/miniforge3-23.11.0-0/etc/profile.d/conda.sh
conda activate topaz
conda install mkl==2024.0

で回避される

miniforge3-24.11.2-1 では

[root@rockylinux9 ~]# source /apps/pyenv/versions/miniforge3-24.11.2-1/etc/profile.d/conda.sh
 
[root@rockylinux9 ~]# conda create -n topaz python=3.8 -c conda-forge
[root@rockylinux9 ~]# conda activate topaz
 
(topaz) [root@rockylinux9 ~]# pip install topaz-em
 
(topaz) [root@rockylinux9 ~]# conda list
 :
nvidia-cublas-cu12        12.1.3.1                 pypi_0    pypi
nvidia-cuda-cupti-cu12    12.1.105                 pypi_0    pypi
nvidia-cuda-nvrtc-cu12    12.1.105                 pypi_0    pypi
nvidia-cuda-runtime-cu12  12.1.105                 pypi_0    pypi
nvidia-cudnn-cu12         8.9.2.26                 pypi_0    pypi
nvidia-cufft-cu12         11.0.2.54                pypi_0    pypi
nvidia-curand-cu12        10.3.2.106               pypi_0    pypi
nvidia-cusolver-cu12      11.4.5.107               pypi_0    pypi
nvidia-cusparse-cu12      12.1.0.106               pypi_0    pypi
nvidia-nccl-cu12          2.20.5                   pypi_0    pypi
nvidia-nvjitlink-cu12     12.6.85                  pypi_0    pypi
nvidia-nvtx-cu12          12.1.105                 pypi_0    pypi
 :
python                    3.8.20          h4a871b0_2_cpython    conda-forge
python-dateutil           2.9.0.post0              pypi_0    pypi
 :
setuptools                75.3.0             pyhd8ed1ab_0    conda-forge
 :
topaz-em                  0.3.6                    pypi_0    pypi
torch                     2.3.1                    pypi_0    pypi
torchvision               0.18.1                   pypi_0    pypi
 :
(topaz) [root@rockylinux9 ~]#

これで動きました.

dev-topaz3d

「3D particle-picking is in development on the dev-topaz3d branch」とある.
ちょいと作ってみた.

[root@rockylinux9 ~]# source /apps/pyenv/versions/anaconda3-2024.10-1/etc/profile.d/conda.sh
 
[root@rockylinux9 ~]# conda create -n topaz3d python=3.8 pytorch  torchvision tqdm  h5py  pillow  numpy  pandas  scipy  scikit-learn -c conda-forge
 
[root@rockylinux9 ~]# conda activate topaz3d
 
(topaz3d) [root@rockylinux9 ~]# conda list
 :
cuda-cudart               12.6.77              h5888daf_0    conda-forge
cuda-cudart_linux-64      12.6.77              h3f2d84a_0    conda-forge
cuda-nvrtc                12.6.85              hbd13f7d_0    conda-forge
cuda-nvtx                 12.6.77              hbd13f7d_0    conda-forge
cuda-version              12.6                 h7480c83_3    conda-forge
cudnn                     8.9.7.29             h092f7fd_3    conda-forge
 :
h5py                      3.11.0          nompi_py38h55b5aab_102    conda-forge
 :
mkl                       2023.2.0         h84fe81f_50496    conda-forge
 :
numpy                     1.24.4           py38h59b608b_0    conda-forge
 :
pandas                    2.0.3            py38h01efb38_1    conda-forge
pillow                    10.4.0           py38h2bc05a7_0    conda-forge
 :
python                    3.8.20          h4a871b0_2_cpython    conda-forge
python-dateutil           2.9.0              pyhd8ed1ab_0    conda-forge
python-tzdata             2024.2             pyhd8ed1ab_0    conda-forge
python_abi                3.8                      5_cp38    conda-forge
pytorch                   2.4.0           cuda120_py38hc4689d7_301    conda-forge
pytz                      2024.2             pyhd8ed1ab_0    conda-forge
 :
scikit-learn              1.3.2            py38ha25d942_2    conda-forge
scipy                     1.10.1           py38h59b608b_3    conda-forge
setuptools                75.3.0             pyhd8ed1ab_0    conda-forge
 :
torchvision               0.19.0          cuda120py38h0f49aeb_0    conda-forge
tqdm                      4.67.1             pyhd8ed1ab_0    conda-forg
 :
(topaz3d) [root@rockylinux9 ~]#
(topaz3d) [root@rockylinux9 ~]# cd /apps/
(topaz3d) [root@rockylinux9 apps]# git clone https://github.com/tbepler/topaz
(topaz3d) [root@rockylinux9 apps]# cd topaz/
(topaz3d) [root@rockylinux9 topaz]# 
(topaz3d) [root@rockylinux9 topaz]# git branch --all
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/alphamax
  remotes/origin/auto-masking
  remotes/origin/dev
  remotes/origin/dev-topaz3d
  remotes/origin/master
  remotes/origin/recomb-2018
(topaz3d) [root@rockylinux9 topaz]# 
(topaz3d) [root@rockylinux9 topaz]# git checkout dev-topaz3d
(topaz3d) [root@rockylinux9 topaz]# git branch
* dev-topaz3d
  master
(topaz3d) [root@rockylinux9 topaz]# pip install .
 
(topaz3d) [root@rockylinux9 topaz]# conda deactivate
[root@rockylinux9 topaz]#
[root@rockylinux9 ~]# vi /apps/modulefiles/topaz3d
#%Module
set          root /apps/pyenv/versions/anaconda3-2024.10-1/envs/topaz3d
prepend-path PATH $root/bin
 
[root@rockylinux9 ~]#

通常のtopazのhelpと比べると

[topazのtopaz -h]
commands:
  Particle picking:
    train                      train 2D region classifier from images with labeled
                               coordinates
    segment                    segment images using a trained region classifier
 
[topaz3dのtopaz -h]
commands:
  Particle picking:
    train                      train 2D region classifier from images with labeled
                               coordinates
    train3d                    train 3D region classifier from volumes with labeled
                               coordinates
    segment                    segment images using a trained region classifier

と「train3d」が加わっている.

最新の60件
2025-01-13 2025-01-12 2025-01-08 2024-12-30 2024-12-29 2024-12-24 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-12-04 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-29 2024-10-28 2024-10-27 2024-10-23 2024-10-18 2024-10-17 2024-10-15 2024-10-14 2024-10-13 2024-10-11 2024-10-10 2024-10-09 2024-10-08 2024-10-05 2024-10-04 2024-10-03

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-01-12 (日) 22:01:16