IsoNet2 本家様 https://github.com/IsoNet-cryoET/IsoNet2
IsoNet1の進化版.
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.0-0
source /apps/pyenv/versions/miniforge3-26.1.0-0/etc/profile.d/conda.sh
conda update conda -y既にpyenv/anaconda環境があるなら
source /apps/pyenv/versions/miniforge3-26.1.0-0/etc/profile.d/conda.sh
conda update conda -yでconda構築環境を準備します
こちらの計算機環境はこんな感じで
[root@rockylinux9 ~]# cat /etc/redhat-release
Rocky Linux release 9.7 (Blue Onyx)
[root@rockylinux9 ~]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX Open Kernel Module for x86_64 580.126.09 Release Build (dvs-builder@U22-I3-AM02-24-3) Wed Jan 7 22:51:36 UTC 2026
GCC version: gcc version 11.5.0 20240719 (Red Hat 11.5.0-11) (GCC)
[root@rockylinux9 ~]# nvidia-smi -L
GPU 0: NVIDIA RTX A2000 (UUID: GPU-23cc3ee7-31d3-a068-2f61-5aa00052d084)
[root@rockylinux9 ~]# ls -l /usr/local/cuda*
ls: cannot access '/usr/local/cuda*': No such file or directory <-- cudaライブラリ関係は入ってないです
[root@rockylinux9 ~]#ってな状態で IsoNet2 を入れてみる.
IsoNet2の要件:
AmpereなGPU, RTX 30x0 とか Ax000とか.
GPUのメモリー(VRAM)は24GBを推奨. 少ない場合は構成パラメータ (特にキューブとバッチ サイズ)を要調整. 3090, 3090Ti, 4090で24GB, A5000で24GB, PRO4000で24GB
[root@rockylinux9 ~]# cd /apps/
[root@rockylinux9 apps]# git clone https://github.com/IsoNet-cryoET/IsoNet2
[root@rockylinux9 apps]# cd IsoNet2/
[root@rockylinux9 IsoNet2]# ls -lF
total 3744
-rw-r--r--. 1 root root 3734181 Mar 12 23:57 BIORXIV-2025-693325v1.pdf
-rwxr-xr-x. 1 root root 878 Mar 12 23:57 install.sh*
drwxr-xr-x. 7 root root 126 Mar 12 23:57 IsoNet/
-rwxr-xr-x. 1 root root 1166 Mar 12 23:57 isonet2.bashrc*
-rw-r--r--. 1 root root 2201 Mar 12 23:57 isonet2_environment.yml
-rw-r--r--. 1 root root 35149 Mar 12 23:57 LICENSE
-rw-r--r--. 1 root root 295 Mar 12 23:57 pyproject.toml
-rw-r--r--. 1 root root 44384 Mar 12 23:57 README.md
[root@rockylinux9 IsoNet2]#そのままでは scikit-image と wheel が最新版を持ってきてpipの依存エラーがでた. なので修正してみた
「isonet2_environment.yml」を下記のように修正して
|
それで
[root@rockylinux9 IsoNet2]# bash ./install.sh <-- 中身はcondaを使って「/apps/IsoNet2/build/conda_env」にconda環境を作って GUI アプリをダウンロードしてます
[root@rockylinux9 IsoNet2]# conda env list
:
/apps/IsoNet2/build/conda_env <-- 作られたconda環境
base /apps/pyenv/versions/miniforge3-26.1.0-0
[root@rockylinux9 IsoNet2]#
[root@rockylinux9 IsoNet2]# conda activate /apps/IsoNet2/build/conda_env
(/apps/IsoNet2/build/conda_env) [root@rockylinux9 IsoNet2]# conda list
:
cuda-cudart 12.1.105 hd3aeb46_0 conda-forge
cuda-cudart_linux-64 12.1.105 h59595ed_0 conda-forge
cuda-cupti 12.1.105 h59595ed_0 conda-forge
cuda-libraries 12.1.0 0 nvidia
cuda-nvrtc 12.1.105 hd3aeb46_0 conda-forge
cuda-nvtx 12.1.105 h59595ed_0 conda-forge
cuda-opencl 12.1.105 h59595ed_0 conda-forge
cuda-runtime 12.1.0 0 nvidia
cuda-version 12.1 h1d6eff3_3 conda-forge
:
isonet2 2.0.1b0 pypi_0 pypi
:
python 3.10.20 h3c07f61_0_cpython conda-forge
:
pytorch 2.1.1 py3.10_cuda12.1_cudnn8.9.2_0 pytorch
pytorch-cuda 12.1 ha16c6d3_6 pytorch
pytorch-lightning 2.1.4 pypi_0 pypi
pytorch-mutex 1.0 cuda pytorch
:
(/apps/IsoNet2/build/conda_env) [root@rockylinux9 IsoNet2]# conda deactivate
[root@rockylinux9 IsoNet2]#これで一応完了みたい
作ったconda環境を削除するには「conda env remove -p /apps/IsoNet2/build/conda_env」とします
environment-modules:
同封されている「isonet2.bashrc」を参考して作る
[root@rockylinux9 IsoNet2]# cat isonet2.bashrc
#!/usr/bin/env bash
ISONET_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
export PATH="$ISONET_DIR/build/conda_env/bin:$PATH"
if [ -x "$ISONET_DIR/isoapp-1.0.0.AppImage" ]; then
alias IsoNet2="$ISONET_DIR/isoapp-1.0.0.AppImage"
elif [ -x "$ISONET_DIR/build/isoapp-1.0.0.AppImage" ]; then
alias IsoNet2="$ISONET_DIR/build/isoapp-1.0.0.AppImage"
elif [ -x "$ISONET_DIR/../isoapp-1.0.0.AppImage" ]; then
alias IsoNet2="$ISONET_DIR/../isoapp-1.0.0.AppImage"
elif [ -f "$ISONET_DIR/isoapp-1.0.0.AppImage" ]; then
chmod +x "$ISONET_DIR/isoapp-1.0.0.AppImage" 2>/dev/null || true
alias IsoNet2="$ISONET_DIR/isoapp-1.0.0.AppImage"
elif [ -f "$ISONET_DIR/build/isoapp-1.0.0.AppImage" ]; then
chmod +x "$ISONET_DIR/build/isoapp-1.0.0.AppImage" 2>/dev/null || true
alias IsoNet2="$ISONET_DIR/build/isoapp-1.0.0.AppImage"
elif [ -f "$ISONET_DIR/../isoapp-1.0.0.AppImage" ]; then
chmod +x "$ISONET_DIR/../isoapp-1.0.0.AppImage" 2>/dev/null || true
alias IsoNet2="$ISONET_DIR/../isoapp-1.0.0.AppImage"
else
alias IsoNet2='echo "IsoApp AppImage not found: expected isoapp-1.0.0.AppImage or ../isoapp-1.0.0.AppImage"'
fi
[root@rockylinux9 IsoNet2]#なので「/apps/modulefiles/IsoNet2」
#%Module1.0
#
set root /apps/IsoNet2/build/conda_env
prepend-path PATH $root/bin
prepend-path LD_LIBRARY_PATH $root/lib
set-alias IsoNet2 /apps/IsoNet2/build/isoapp-1.0.0.AppImage本家様 https://github.com/IsoNet-cryoET/IsoNet
Isotropic Reconstruction of Electron Tomograms with Deep Learning
pythonアプリなのでtopazらのようにpyenv/anacondaを使ってpython実行環境を作ります
git clone https://github.com/yyuu/pyenv.git /apps/pyenv
export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
pyenv install miniforge3-25.11.0-1
source /apps/pyenv/versions/miniforge3-25.11.0-1/etc/profile.d/conda.sh
conda update -n base -c conda-forge conda作成先は rockylinux9 です
[root@rockylinux9 ~]# cat /etc/redhat-release
Rocky Linux release 9.5 (Blue Onyx)
[root@rockylinux9 ~]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 570.133.07 Fri Mar 14 13:12:07 UTC 2025
GCC version: gcc version 11.5.0 20240719 (Red Hat 11.5.0-2) (GCC)
[root@rockylinux ~]# nvidia-smi -L
GPU 0: NVIDIA GeForce GTX 1070 (UUID: GPU-a49de51b-de1e-52f3-1e3f-ce704e159713)
[root@rockylinux9 ~]# ls -l /usr/local/cuda
ls: cannot access '/usr/local/cuda': No such file or directory
[root@rockylinux9 ~]#まずIsoNet 向けのpython実行環境を作って、そこにさらにpipでパッケージを追加します
[root@rockylinux9 ~]# conda create -n IsoNet python=3.8 tensorflow-gpu
:
cuda-version 11.0 h6b8d8af_3 conda-forge
cudatoolkit 11.0.3 h7761cd4_13 conda-forge
cudnn 8.9.7.29 hbc23b4c_3 conda-forge
:
numpy 1.19.5 py38h8246c76_3 conda-forge
:
python 3.8.15 h257c98d_0_cpython conda-forge
:
tensorflow 2.6.2 cuda110py38h1096b06_1 conda-forge
tensorflow-base 2.6.2 cuda110py38h0c0c5d7_1 conda-forge
tensorflow-estimator 2.6.2 cuda110py38h1096b06_1 conda-forge
tensorflow-gpu 2.6.2 cuda110py38h5b0ac8e_1 conda-forge
:
[root@rockylinux9 ~]# conda activate IsoNet
(IsoNet) [root@rockylinux9 ~]# cd /apps
(IsoNet) [root@rockylinux9 apps]# git clone https://github.com/IsoNet-cryoET/IsoNet
(IsoNet) [root@rockylinux9 apps]# cd IsoNet
(IsoNet) [root@rockylinux9 IsoNet]#
(IsoNet) [root@rockylinux9 IsoNet]# vi requirements.txt <--- 「numpy==1.19.2」を追加
###### Requirements without Version Specifiers ######
numpy==1.19.2
mrcfile
scipy
fire
tqdm
PyQt5
###### Requirements with Version Specifiers ######
scikit-image
(IsoNet) [root@rockylinux9 IsoNet]# pip install -r requirements.txt
(IsoNet) [root@rockylinux9 IsoNet]# conda deactivate
[root@rockylinux9 IsoNet]#っでEnvironmentModules を用意します
[root@rockylinux9 ~]# cat /apps/modulefiles/IsoNet
#%Module
set root /apps/pyenv/versions/miniforge3-25.11.0-1/envs/IsoNet
set IsoNet /apps/IsoNet
prepend-path PATH $IsoNet/bin:$root/bin
setenv PYTHONPATH $IsoNet/../
[root@rockylinux9 ~]#実行テスト
[illya@rockylinux9 ~]$ module use --append /apps/modulefiles
[illya@rockylinux9 ~]$ module load IsoNet
[illya@rockylinux9 ~]$ isonet.py check
IsoNet --version 0.2 installed
[illya@rockylinux9 ~]$本家様のgitにgoogle driveでチュートリアルが公開されている. それを使って2,3テスト実行を行ってみる
[illya@rockylinux9 ~]$ module use --append /apps/modulefiles
[illya@rockylinux9 ~]$ module load IsoNet
[illya@rockylinux9 ~]$ mkdir tomoset
[illya@rockylinux9 ~]$ cd tomoset/
[illya@rockylinux9 tomoset]$ cp /Public/em/TS*.rec .
[illya@rockylinux9 tomoset]$ ls -lh
total 96M
-rw-rw-r--. 1 illya illya 43M Nov 8 07:00 TS01-wbp.rec
-rw-rw-r--. 1 illya illya 27M Nov 8 07:00 TS43-wbp.rec
-rw-rw-r--. 1 illya illya 27M Nov 8 07:00 TS45-wbp.rec
[illya@rockylinux9 tomoset]$
[illya@rockylinux9 tomoset]$ cd ..
[illya@rockylinux9 ~]$ isonet.py prepare_star tomoset --output_star hiv_tomo.star --pixel_size 10.8
[illya@rockylinux9 ~]$ ls -l hiv_tomo.star
-rw-rw-r--. 1 illya illya 303 Nov 8 07:02 hiv_tomo.star
[illya@rockylinux9 ~]$ cat hiv_tomo.star
data_
loop_
_rlnIndex #1
_rlnMicrographName #2
_rlnPixelSize #3
_rlnDefocus #4
_rlnNumberSubtomo #5
_rlnMaskBoundary #6
1 tomoset/TS01-wbp.rec 10.800000 0.000000 100 None
2 tomoset/TS43-wbp.rec 10.800000 0.000000 100 None
3 tomoset/TS45-wbp.rec 10.800000 0.000000 100 None
[illya@rockylinux ~]$
[illya@rockylinux ~]$ vi hiv_tomo.star
[illya@rockylinux ~]$ cat hiv_tomo.star
data_
loop_
_rlnIndex #1
_rlnMicrographName #2
_rlnPixelSize #3
_rlnDefocus #4
_rlnNumberSubtomo #5
_rlnMaskBoundary #6
1 tomoset/TS01-wbp.rec 10.800000 38838.257812 100 None
2 tomoset/TS43-wbp.rec 10.800000 25292.275391 100 None
3 tomoset/TS45-wbp.rec 10.800000 30169.785156 100 None
[illya@rockylinux ~]$
[illya@rockylinux ~]$ isonet.py deconv hiv_tomo.star --snrfalloff 0.7 --deconv_folder hiv_deconv
11-08 07:05:08, INFO
######Isonet starts ctf deconvolve######
11-08 07:05:08, INFO deconv: tomoset/TS01-wbp.rec| pixel: 10.8| defocus: 3.8838257812000005| snrfalloff:0.7| deconvstrength:1.0
11-08 07:05:10, INFO time consumed: 1.9011 s
11-08 07:05:10, INFO deconv: tomoset/TS43-wbp.rec| pixel: 10.8| defocus: 2.5292275391| snrfalloff:0.7| deconvstrength:1.0
11-08 07:05:11, INFO time consumed: 1.4567 s
11-08 07:05:11, INFO deconv: tomoset/TS45-wbp.rec| pixel: 10.8| defocus: 3.0169785156| snrfalloff:0.7| deconvstrength:1.0
11-08 07:05:12, INFO time consumed: 1.1790 s
11-08 07:05:12, INFO
######Isonet done ctf deconvolve######
[illya@rockylinux ~]$ ls -l hiv_deconv/
total 391048
-rw-rw-r--. 1 illya illya 178177024 Nov 8 07:05 TS01-wbp.rec
-rw-rw-r--. 1 illya illya 110889524 Nov 8 07:05 TS43-wbp.rec
-rw-rw-r--. 1 illya illya 111361024 Nov 8 07:05 TS45-wbp.rec
[illya@rockylinux ~]$
[illya@rockylinux ~]$ isonet.py make_mask hiv_tomo.star --mask_folder hiv_mask --density_percentage 50 --std_percentage 5
11-08 07:06:04, INFO
######Isonet starts making mask######
11-08 07:06:04, INFO make_mask: hiv_deconv/TS01-wbp.rec| dir_to_save: hiv_mask| percentage: 50.0| window_scale: 4
11-08 07:06:06, INFO make_mask: hiv_deconv/TS43-wbp.rec| dir_to_save: hiv_mask| percentage: 50.0| window_scale: 4
11-08 07:06:07, INFO make_mask: hiv_deconv/TS45-wbp.rec| dir_to_save: hiv_mask| percentage: 50.0| window_scale: 4
11-08 07:06:09, INFO
######Isonet done making mask######
[illya@rockylinux ~]$
[illya@rockylinux ~]$ cat hiv_tomo.star
data_
loop_
_rlnIndex #1
_rlnMicrographName #2
_rlnPixelSize #3
_rlnDefocus #4
_rlnNumberSubtomo #5
_rlnMaskBoundary #6
_rlnSnrFalloff #7
_rlnDeconvStrength #8
_rlnDeconvTomoName #9
_rlnMaskDensityPercentage #10
_rlnMaskStdPercentage #11
_rlnMaskName #12
1 tomoset/TS01-wbp.rec 10.800000 38838.257812 100 None 0.700000 1.000000 hiv_deconv/TS01-wbp.rec 50.000000 5.000000 hiv_mask/TS01-wbp_mask.mrc
2 tomoset/TS43-wbp.rec 10.800000 25292.275391 100 None 0.700000 1.000000 hiv_deconv/TS43-wbp.rec 50.000000 5.000000 hiv_mask/TS43-wbp_mask.mrc
3 tomoset/TS45-wbp.rec 10.800000 30169.785156 100 None 0.700000 1.000000 hiv_deconv/TS45-wbp.rec 50.000000 5.000000 hiv_mask/TS45-wbp_mask.mrc
[illya@rockylinux ~]$
[illya@rockylinux ~]$ isonet.py extract hiv_tomo.star
11-08 07:07:07, INFO [isonet.py:287]
######Isonet starts extracting subtomograms######
11-08 07:07:07, INFO [prepare.py:37] Extract from deconvolved tomogram hiv_deconv/TS01-wbp.rec
11-08 07:07:08, INFO [prepare.py:37] Extract from deconvolved tomogram hiv_deconv/TS43-wbp.rec
11-08 07:07:10, INFO [prepare.py:37] Extract from deconvolved tomogram hiv_deconv/TS45-wbp.rec
11-08 07:07:11, INFO [isonet.py:304]
######Isonet done extracting subtomograms######
[illya@rockylinux ~]$
[illya@rockylinux ~]$ isonet.py refine subtomo.star --gpuID 0 --iterations 30 --noise_start_iter 10,15,20,25
11-08 07:16:45, INFO
######Isonet starts refining######
11-08 07:16:47, INFO Start Iteration1!
11-08 07:16:52, INFO Noise Level:0.0
11-08 07:28:10, INFO Done preparing subtomograms!
11-08 07:28:10, INFO Start training!
11-08 07:28:11, INFO Loaded model from disk
11-08 07:28:11, INFO begin fitting
:
:
OOM when allocating tensor with shape
:途中で落ちた. batch_sizeを変更する必要があるようで、変更方法は「isonet.py refine -h」で確認できる
GUIもあるようで
[illya@rockylinux9 ~]$ module use --append /apps/modulefiles
[illya@rockylinux9 ~]$ module load IsoNet
[illya@rockylinux9 ~]$ isonet.py gui「&color(red){qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found}」と言われたら「dnf install xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil」とする

numpyが1.24.3だと「isonet.py refine」にてエラーが発生
「conda install numpy=1.21」で回避できました