本家様 https://github.com/rsanchezgarc/deepEMhancer
gitには
Simply speaking, DeepEMhancer performs a non-linear post-processing of cryo-EM maps that produces two main effects:
1. Local sharpening-like post-processing.
2. Automatic masking/denoising of cryo-EM maps.とある. cryoSPARCからもコールされるようになっている.
インストール環境はこんな感じ
[root@r9 ~]# cat /etc/redhat-release
Rocky Linux release 9.7 (Blue Onyx)
[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 ~]# nvidia-smi -L
GPU 0: NVIDIA RTX PRO 2000 Blackwell (UUID: GPU-40660e37-0d35-d4f4-294a-eee3fe83049e)
[root@r9 ~]#「/usr/local/cuda」は用意していないです
DeepEMhancerはpythonアプリなので、ここではcrYOLOのようにpyenv/anacondaの環境にDeepEMhancer実行環境を用意していきます
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っで、DeepEMhancer を入れていきます.
[root@r9 ~]# cd /apps/
[root@r9 apps]# git clone https://github.com/rsanchezgarc/deepEMhancer
[root@r9 apps]# cd deepEMhancer/
[root@r9 deepEMhancer]#
[root@r9 deepEMhancer]# ls -CF
alternative_installation/ condaDeepEMHancer/ conda_ymls/ deepEMhancer/ deepEMhancer_env.yml deepEMhancer_tutorial.pdf LICENSE README.md setup.py
[root@r9 deepEMhancer]#
[root@r9 deepEMhancer]# conda env create -f deepEMhancer_env.yml -n deepEMhancer_env
[root@r9 deepEMhancer]#作った deepEMhancer 実行環境に対して
[root@r9 deepEMhancer]# conda activate deepEMhancer_env
(deepEMhancer_env) [root@r9 deepEMhancer]#
(deepEMhancer_env) [root@r9 deepEMhancer]# conda list
:
cudatoolkit 11.8.0 h4ba93d1_13 conda-forge
:
h5py 3.9.0 nompi_py39h87cadad_103 conda-forge
:
nvidia-cublas-cu11 11.11.3.6 pypi_0 pypi
nvidia-cudnn-cu11 8.6.0.163 pypi_0 pypi
:
python 3.9.23 hc30ae73_0_cpython conda-forge
:
tensorboard 2.12.3 pypi_0 pypi
tensorboard-data-server 0.7.1 pypi_0 pypi
tensorflow 2.12.0 pypi_0 pypi
tensorflow-estimator 2.12.0 pypi_0 pypi
tensorflow-io-gcs-filesystem 0.32.0 pypi_0 pypi
:
(deepEMhancer_env) [root@r9 deepEMhancer]# which python
/apps/pyenv/versions/miniforge3-26.1.1-3/envs/deepEMhancer_env/bin/python
(deepEMhancer_env) [root@r9 deepEMhancer]# pwd
/apps/deepEMhancer
(deepEMhancer_env) [root@r9 deepEMhancer]# python -m pip install . --no-deps
(deepEMhancer_env) [root@r9 deepEMhancer]# conda list
:
deepemhancer 0.17 pypi_0 pypi
:
(deepEMhancer_env) [root@r9 deepEMhancer]#これで一応インストールは完了です
GPUを利用して計算速度を向上できます
実際にGPUが使えるかのテストをしてみます
(deepEMhancer_env) [root@r9 deepEMhancer]# deepemhancer --version バージョン確認
0.16
(deepEMhancer_env) [root@r9 deepEMhancer]# python
:
:
>>> import tensorflow as tf
2026-05-12 18:17:12.188174: I tensorflow/core/util/port.cc:110] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point (改行
round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.
2026-05-12 18:17:12.189510: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.
2026-05-12 18:17:12.212955: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.
2026-05-12 18:17:12.213304: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2026-05-12 18:17:12.558479: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
/apps/pyenv/versions/miniforge3-26.1.1-3/envs/deepEMhancer_env/lib/python3.9/site-packages/h5py/__init__.py:36: UserWarning: h5py is running against HDF5 1.14.3 when it was built against 1.14.2, this may cause problems
_warn(("h5py is running against HDF5 {0} when it was built against {1}, "
>>>
>>>と検証前に「UserWarning: h5py is running against HDF5 1.14.3 when it was built against 1.14.2」や「TF-TRT Warning: Could not find TensorRT」「Could not find cuda drivers on your machine, GPU will not be used」と言われる.
h5pyに関しては現状 h5py 3.9.0 を h5py 3.10.0 にすることで抑えられる.
TensorRTに関しては新規に tensorrt 8.6.1 と LD_LIBRARY_PATH の定義で抑えられる
「Could not find cuda drivers...」も LD_LIBRARY_PATH で抑えられる
(deepEMhancer_env) [root@r9 deepEMhancer]# pip install h5py==3.10.0 tensorrt==8.6.1
(deepEMhancer_env) [root@r9 deepEMhancer]# conda list
:
h5py 3.10.0 pypi_0 pypi
:
tensorrt 8.6.1 pypi_0 pypi
tensorrt-bindings 8.6.1 pypi_0 pypi
tensorrt-libs 8.6.1 pypi_0 pypi
:
(deepEMhancer_env) [root@r9 deepEMhancer]# export LD_LIBRARY_PATH=/apps/pyenv/versions/miniforge3-26.1.1-3/envs/deepEMhancer_env/lib
(deepEMhancer_env) [root@r9 deepEMhancer]# export LD_LIBRARY_PATH=/apps/pyenv/versions/miniforge3-26.1.1-3/envs/deepEMhancer_env/lib/python3.9/site-packages/nvidia/cudnn/lib:$LD_LIBRARY_PATH
(deepEMhancer_env) [root@r9 deepEMhancer]# export LD_LIBRARY_PATH=/apps/pyenv/versions/miniforge3-26.1.1-3/envs/deepEMhancer_env/lib/python3.9/site-packages/tensorrt_libs:$LD_LIBRARY_PATH
(deepEMhancer_env) [root@r9 deepEMhancer]# python
:
>>> import tensorflow as tf
2026-05-12 18:28:50.496788: I tensorflow/core/util/port.cc:110] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point (改行
round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.
2026-05-12 18:28:50.618472: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
>>>
(っでGPU確認)
>>>
>>> tf.test.is_gpu_available()
(略)
True
>>> quit();
(deepEMhancer_env) [root@r9 deepEMhancer]# conda deactivate
[root@r9 deepEMhancer]#[root@r9 ~]# vi /apps/modulefiles/deepEMhancer
#%Module1.0
set root /apps/pyenv/versions/miniforge3-26.1.1-3/envs/deepEMhancer_env
prepend-path PATH $root/bin
prepend-path LD_LIBRARY_PATH $root/lib:$root/lib/python3.9/site-packages/nvidia/cudnn/lib:$root/lib/python3.9/site-packages/tensorrt_libs
[root@r9 ~]#モデルファイルが必要ですが、/appsとかに配置しておきます
[root@r9 ~]# module use /apps/modulefiles
[root@r9 ~]# module load deepEMhancer
[root@r9 ~]# deepemhancer --download /apps/deepEMhancerModels
[root@r9 ~]# ls -l /apps/deepEMhancerModels/
total 0
drwxr-xr-x 2 root root 160 May 12 18:41 production_checkpoints
[root@r9 ~]# ls -l /apps/deepEMhancerModels/production_checkpoints/
total 904376
-rw-r--r-- 1 root root 311505312 May 12 18:41 deepEMhancer_highRes.hd5
-rw-r--r-- 1 root root 204777344 May 12 18:41 deepEMhancer_masked.hd5
-rw-r--r-- 1 root root 204886472 May 12 18:41 deepEMhancer_tightTarget.hd5
-rw-r--r-- 1 root root 204897936 May 12 18:41 deepEMhancer_wideTarget.hd5
-rw-r--r-- 1 root root 74 May 12 18:41 versions.txt
[root@r9 ~]っでテストrunです.
[saber@r9 ~]$ module use /apps/modulefiles/
[saber@r9 ~]$ module load deepEMhancer
[saber@r9 ~]$ cd test/
[saber@r9 test]$ deepemhancer -h
usage: deepemhancer -i INPUTMAP -o OUTPUTMAP [-p {wideTarget,tightTarget,highRes}] [-i2 HALFMAP2] [-s SAMPLINGRATE] [--noiseStats NOISE_MEAN NOISE_STD]
[-m BINARYMASK] [--deepLearningModelPath PATH_TO_MODELS_DIR] [--cleaningStrengh CLEANINGSTRENGH] [-g GPUIDS] [-b BATCH_SIZE]
[--version] [-h] [--download [DOWNLOAD_DEST]]
(略
[saber@r9 test]$これが正しいか不明ですが、relionのデータを使って流してみた.
[saber@r9 test]$ mkdir deepEMhancer
[saber@r9 test]$ cd deepEMhancer/
[saber@r9 deepEMhancer]$
[saber@r9 deepEMhancer]$ deepemhancer -i ../Tutorial5.0/Refine3D/job029/run_it000_half1_class001.mrc \
-i2 ../Tutorial5.0/Refine3D/job029/run_it000_half2_class001.mrc \
-p tightTarget -o model.mrc --deepLearningModelPath /apps/deepEMhancerModels/production_checkpoints/ -g 0
updating environment to select gpu: [0]
loading model /apps/deepEMhancerModels/production_checkpoints/deepEMhancer_tightTarget.hd5 ... DONE!
Automatic radial noise detected beyond 36 % of volume side
DONE!. Shape at 1.00 A/voxel after padding-> (320, 320, 320)
Neural net inference
:
[saber@r9 deepEMhancer]$ ls -l
total 65540
-rw-r--r-- 1 saber saber 67109888 May 12 19:24 model.mrc
[saber@r9 deepEMhancer]$deepEMhancerCS.sh
#!/bin/bash
d=/apps/pyenv/versions/miniforge3-26.1.1-3/envs/deepEMhancer
export PATH=$d/bin:$PATH
export LD_LIBRARY_PATH=$d/lib:$d/lib/python3.9/site-packages/nvidia/cudnn/lib:$LD_LIBRARY_PATH
$d/bin/deepemhancer $@
unset d