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

っと準備を終わらせます

topazのインストール

本家様ではanaconda/conda、pipでのインストールを紹介していますが、ここではcondaで淹れてみます

[root@rockylinux9 ~]# conda create -n topaz python=3.6 -y
[root@rockylinux9 ~]# conda activate topaz
 
(topaz) [root@rockylinux9 ~]# conda install topaz -c tbepler -c pytorch -y
 
(topaz) [root@rockylinux9 ~]# conda list
 :
cudatoolkit               11.3.1               h2bc3f7f_2
 :
pytorch                   1.10.2          py3.6_cuda11.3_cudnn8.2.0_0    pytorch
 :
topaz                     0.2.5                      py_0    tbepler
 :
(topaz) [root@rockylinux9 ~]# python
Python 3.6.13 |Anaconda, Inc.| (default, Jun  4 2021, 14:25:59)
[GCC 7.5.0] 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 RTX A2000
>>> quit();
(topaz) [root@rockylinux9 ~]#
 
(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-2023.03/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-2023.03/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 Apr  1 23:53 test7.mrc
-rw-r--r--. 1 saber saber 1.1M Apr  1 23:53 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  42K Apr  1 23:54 predicted_particles.txt
-rw-r--r--. 1 saber saber 1.1M Apr  1 23:53 test7.mrc
-rw-r--r--. 1 saber saber 1.1M Apr  1 23:53 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.5669956
test7   257     13      6.1826596
test7   96      181     6.1220937
test7   12      419     5.806535
test7   344     432     5.6878395
 :
 :
[saber@rockylinux9 topaz]$

「ファイル名 X Y スコア」って感じですね. スコアはマイナスもあります.

っでこれを使って実際にどこが拾われているかを調べた.
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

で回避される

最新の60件
2024-10-11 2024-10-10 2024-10-09 2024-10-08 2024-10-06 2024-10-05 2024-10-04 2024-10-03 2024-10-02 2024-10-01 2024-09-30 2024-09-29 2024-09-28 2024-09-27 2024-09-22 2024-09-20 2024-09-17 2024-09-12 2024-09-09 2024-09-08 2024-09-06 2024-09-05 2024-09-04 2024-09-02 2024-09-01 2024-08-31 2024-08-28 2024-08-18 2024-08-17 2024-08-16 2024-08-15 2024-08-14 2024-08-11

edit


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