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

minicondaで作るなら topaz/miniconda
Singularityで利用するならtopaz/Singularity

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

pyenv-anacondaの設置

[root@rockylinux9 ~]# git clone https://github.com/yyuu/pyenv.git /apps/pyenv
[root@rockylinux9 ~]# export PYENV_ROOT=/apps/pyenv
[root@rockylinux9 ~]# export PATH=$PYENV_ROOT/bin:$PATH
[root@rockylinux9 ~]# pyenv install anaconda3-2023.03
[root@rockylinux9 ~]# pyenv global anaconda3-2023.03
[root@rockylinux9 ~]# pyenv versions
  system
* anaconda3-2023.03 (set by /apps/pyenv/version)
 
[root@rockylinux9 ~]#
[root@rockylinux9 ~]# export PATH=$PYENV_ROOT/versions/anaconda3-2023.03/bin/:$PATH
 
[root@rockylinux9 ~]# conda update conda

っと準備を終わらせます
既にpyenv-anaconda環境があるのなら

export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
export PATH=$PYENV_ROOT/versions/anaconda3-2023.03/bin/:$PATH

として置いてください

topazのインストール

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

[root@rockylinux9 ~]# conda create -n topaz python=3.6 -y
[root@rockylinux9 ~]# source activate topaz
 
(topaz) [root@rockylinux9 ~]# conda install topaz -c tbepler -c pytorch -y
(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
無視して問題ないみたいです


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2023-04-02 (日) 00:56:52 (69d)