本家様 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」を起点としています
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っと準備を終わらせます
本家様では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とします.
[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より小数点以下の桁数が増えた感じ
っでこれを使って実際にどこが拾われているかを調べた.

スコアは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で回避される
[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 ~]#これで動きました.
「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 pytorchGPU版
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'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