本家様 https://github.com/tbepler/topaz
pipy https://pypi.org/project/topaz-em/

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

っと準備を終わらせます

topazのインストール

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

[root@r9 ~]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX Open Kernel Module for x86_64  595.58.03  Release Build  (dvs-builder@U22-I3-AM25-28-3)  Tue Mar 17 19:55:10 UTC 2026
GCC version:  gcc version 11.5.0 20240719 (Red Hat 11.5.0-11) (GCC)
 
[root@r9 ~]# conda create -n topaz python=3.12 -c conda-forge
 
[root@r9 ~]# conda activate topaz
(topaz) [root@r9 ~]# pip install topaz-em
 
(topaz) [root@r9 ~]# conda list
# packages in environment at /apps/pyenv/versions/miniforge3-26.1.1-3/envs/topaz:
#
# Name                     Version          Build                 Channel
_openmp_mutex              4.5              20_gnu                conda-forge
bzip2                      1.0.8            hda65f42_9            conda-forge
ca-certificates            2026.4.22        hbd8a1cb_0            conda-forge
cuda-bindings              13.2.0           pypi_0                pypi
cuda-pathfinder            1.5.4            pypi_0                pypi
cuda-toolkit               13.0.2           pypi_0                pypi
filelock                   3.29.0           pypi_0                pypi
fsspec                     2026.4.0         pypi_0                pypi
future                     1.0.0            pypi_0                pypi
h5py                       3.16.0           pypi_0                pypi
jinja2                     3.1.6            pypi_0                pypi
joblib                     1.5.3            pypi_0                pypi
ld_impl_linux-64           2.45.1           default_hbd61a6d_102  conda-forge
libexpat                   2.8.0            hecca717_0            conda-forge
libffi                     3.5.2            h3435931_0            conda-forge
libgcc                     15.2.0           he0feb66_19           conda-forge
libgcc-ng                  15.2.0           h69a702a_19           conda-forge
libgomp                    15.2.0           he0feb66_19           conda-forge
liblzma                    5.8.3            hb03c661_0            conda-forge
libnsl                     2.0.1            hb9d3cd8_1            conda-forge
libsqlite                  3.53.1           h0c1763c_0            conda-forge
libuuid                    2.42             h5347b49_0            conda-forge
libxcrypt                  4.4.36           hd590300_1            conda-forge
libzlib                    1.3.2            h25fd6f3_2            conda-forge
markupsafe                 3.0.3            pypi_0                pypi
mpmath                     1.3.0            pypi_0                pypi
ncurses                    6.6              hdb14827_0            conda-forge
networkx                   3.6.1            pypi_0                pypi
numpy                      2.4.4            pypi_0                pypi
nvidia-cublas              13.1.0.3         pypi_0                pypi
nvidia-cuda-cupti          13.0.85          pypi_0                pypi
nvidia-cuda-nvrtc          13.0.88          pypi_0                pypi
nvidia-cuda-runtime        13.0.96          pypi_0                pypi
nvidia-cudnn-cu13          9.19.0.56        pypi_0                pypi
nvidia-cufft               12.0.0.61        pypi_0                pypi
nvidia-cufile              1.15.1.6         pypi_0                pypi
nvidia-curand              10.4.0.35        pypi_0                pypi
nvidia-cusolver            12.0.4.66        pypi_0                pypi
nvidia-cusparse            12.6.3.3         pypi_0                pypi
nvidia-cusparselt-cu13     0.8.0            pypi_0                pypi
nvidia-nccl-cu13           2.28.9           pypi_0                pypi
nvidia-nvjitlink           13.0.88          pypi_0                pypi
nvidia-nvshmem-cu13        3.4.5            pypi_0                pypi
nvidia-nvtx                13.0.85          pypi_0                pypi
openssl                    3.6.2            h35e630c_0            conda-forge
packaging                  26.2             pyhc364b38_0          conda-forge
pandas                     3.0.2            pypi_0                pypi
pillow                     12.2.0           pypi_0                pypi
pip                        26.1.1           pyh8b19718_0          conda-forge
psutil                     7.2.2            pypi_0                pypi
python                     3.12.13          hd63d673_0_cpython    conda-forge
python-dateutil            2.9.0.post0      pypi_0                pypi
readline                   8.3              h853b02a_0            conda-forge
scikit-learn               1.8.0            pypi_0                pypi
scipy                      1.17.1           pypi_0                pypi
setuptools                 81.0.0           pypi_0                pypi
six                        1.17.0           pypi_0                pypi
sympy                      1.14.0           pypi_0                pypi
threadpoolctl              3.6.0            pypi_0                pypi
tk                         8.6.13           noxft_h366c992_103    conda-forge
topaz-em                   0.3.19           pypi_0                pypi
torch                      2.11.0           pypi_0                pypi
torchvision                0.26.0           pypi_0                pypi
tqdm                       4.67.3           pypi_0                pypi
triton                     3.6.0            pypi_0                pypi
typing-extensions          4.15.0           pypi_0                pypi
tzdata                     2025c            hc9c84f9_1            conda-forge
wheel                      0.47.0           pyhd8ed1ab_0          conda-forge
zstd                       1.5.7            hb78ec9c_6            conda-forge
(topaz) [root@r9 ~]#

torchの動作検証

(topaz) [root@r9 ~]# python
Python 3.12.13 | packaged by conda-forge | (main, Mar  5 2026, 16:50:00) [GCC 14.3.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 PRO 2000 Blackwell
>>> quit();
(topaz) [root@r9 ~]# conda deactivate
[root@r9 ~]#

大丈夫みたい.

環境を削除するには

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

とします.

Environment Modules

[root@r9 ~]# vi /apps/modulefiles/topaz
#%Module
set          root /apps/pyenv/versions/miniforge3-26.1.1-3/envs/topaz
prepend-path PATH $root/bin
 
[root@r9 ~]#

使ってみる

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

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

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

[saber@r9 ~]$ module use /apps/modulefiles/
[saber@r9 ~]$ module load topaz
 
[saber@r9 ~]$ which topaz
/apps/pyenv/versions/miniforge3-26.1.1-3/envs/topaz/bin/topaz
[saber@r9 ~]$

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

[saber@r9 ~]$ 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@r9 ~]$
 
[saber@r9 ~]$ mkdir -p test/topaz
[saber@r9 ~]$ cd test/topaz
[saber@r9 topaz]$

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

[saber@r9 topaz]$ topaz preprocess -v -s 8 -o ./  /apps/GCTF_Gautomatch_Cu10.1/ribosome/test[78].mrc
# processed: test7
# processed: test8
 
[saber@r9 topaz]$ ls -l
total 2056
-rw-r--r-- 1 saber saber 1049600 May 11 23:58 test7.mrc
-rw-r--r-- 1 saber saber 1049600 May 11 23:58 test8.mrc
[saber@r9 topaz]$

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

[saber@r9 topaz]$ topaz extract -r 14  -o predicted_particles.txt *.mrc
# Beginning extraction
# Extraction complete
 
[saber@r9 topaz]$ ls -l
total 2116
-rw-r--r-- 1 saber saber   57864 May 11 23:59 predicted_particles.txt
-rw-r--r-- 1 saber saber 1049600 May 11 23:58 test7.mrc
-rw-r--r-- 1 saber saber 1049600 May 11 23:58 test8.mrc
[saber@r9 topaz]$

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

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

[saber@r9 topaz]$ head predicted_particles.txt
image_name      x_coord y_coord score
test7   186     148     6.584471225738525
test7   257     13      6.178432941436768
test7   96      181     6.137205123901367
test7   12      419     5.808379173278809
test7   344     432     5.70175313949585
test7   444     495     5.639533519744873
test7   187     318     5.639516353607178
test7   348     45      5.46072244644165
test7   48      485     5.42213773727417
[saber@r9 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」が加わっている.

めも

最新のnvidiaドライバーだと0.2.5が上手く機能しないみたい

conda create -n topaz-0.2.5 python=3.6 -c conda-forge -y
conda activate topaz-0.2.5
pip install topaz-em==0.2.5
 
conda list
 :
python                     3.6.15           hb7a2778_0_cpython  conda-forge
 :
topaz-em                   0.2.5            pypi_0              pypi
torch                      1.10.1           pypi_0              pypi
torchvision                0.11.2           pypi_0              pypi
 :

としてテスト計算を行うと

RuntimeError: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

と「no kernel image」と出るので恐らく nvidia ドライバーかなぁ...

一応GPU対応でない場合は上手く行く。cryoSPARCのドキュメントにはCPU版で記載されているので、この0.2.5のCPU版と最新版でGPU対応の2つを入れることにする

conda env remove --name topaz-0.2.5 -y
 
conda create -n topaz-0.2.5 python=3.6
conda activate topaz-0.2.5
conda install topaz=0.2.5 mkl=2020.2 -c tbepler -c pytorch

GPU版

conda create -n topaz-0.3.11 python=3.11 -y
conda activate topaz-0.3.11
pip install topaz-em==0.3.11
conda install 'setuptools<80'

blackwell GPUで topaz-0.2.5

conda create -n topaz-0.2.5 python=3.10 -y
conda activate topaz-0.2.5
conda install topaz=0.2.5 mkl=2024 "pandas<2" pytorch=2.*=cuda* "setuptools<80" -c tbepler -c pytorch -c conda-forge -y
topaz --version
conda deactivate
最新の60件
2026-05-13 2026-05-12 2026-05-11 2026-05-08 2026-05-06 2026-05-05 2026-05-04 2026-05-03 2026-05-02 2026-04-30 2026-04-29 2026-04-28 2026-04-27 2026-04-25 2026-04-24 2026-04-22 2026-04-21 2026-04-12 2026-04-08 2026-04-06 2026-04-05 2026-04-02 2026-03-26 2026-03-23 2026-03-21 2026-03-19 2026-03-15 2026-03-14 2026-03-13 2026-03-07 2026-03-06 2026-03-04 2026-03-02 2026-02-26 2026-02-24 2026-02-21 2026-02-18 2026-02-17 2026-02-16 2026-02-11

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2026-05-11 (月) 23:59:55