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」を下記のように修正して

--- a/isonet2_environment.yml
+++ b/isonet2_environment.yml
@@ -8,6 +8,7 @@ dependencies:
   # --- Conda Packages ---
   - python=3.10
   - pip
+  - wheel<0.46.2
 
   # PyTorch Core
   - pytorch==2.1.1
@@ -26,7 +27,7 @@ dependencies:
   - numpy<2.0
   - scipy
   - pandas
-  - scikit-image
+  - scikit-image<0.23.2
   - pillow
   - mrcfile
   - pyarrow

それで

[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

IsoNet

本家様 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」とする

2022y11m08d_071902692.png

memo

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

最新の60件
2026-06-08 2026-06-06 2026-06-05 2026-06-04 2026-06-03 2026-05-31 2026-05-28 2026-05-26 2026-05-23 2026-05-22 2026-05-21 2026-05-20 2026-05-19 2026-05-18 2026-05-12 2026-05-11 2026-05-08 2026-05-06 2026-05-05 2026-05-03 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

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2026-03-13 (金) 00:37:56