本家様 https://github.com/clinfo/DEFMap
anaconda環境の準備
[root@rockylinux9 ~]# mkdir -p /apps/src
[root@rockylinux9 ~]# cd /apps/
[root@rockylinux9 apps]# git clone https://github.com/yyuu/pyenv.git /apps/pyenv
[root@rockylinux9 apps]# export PYENV_ROOT=/apps/pyenv
[root@rockylinux9 apps]# export PATH=$PYENV_ROOT/bin:$PATH
[root@rockylinux9 apps]# pyenv install anaconda3-2022.05
[root@rockylinux9 apps]# pyenv global anaconda3-2022.05
[root@rockylinux9 apps]# pyenv versions
system
* anaconda3-2022.05 (set by /apps/pyenv/version)
[root@rockylinux9 apps]#
[root@rockylinux9 apps]# export PATH=$PYENV_ROOT/versions/anaconda3-2022.05/bin/:$PATH
[root@rockylinux9 apps]# conda update conda -y
次にDEFMap向けに conda 環境を作成する
[root@rockylinux9 ~]# which conda
/apps/pyenv/versions/anaconda3-2022.05/bin/conda
[root@rockylinux9 ~]# conda --version
conda 22.9.0
[root@rockylinux9 ~]# conda create -n defmap -c acellera -c omnia -c psi4 -c conda-forge keras-gpu=2.2.4 tensorflow-gpu=1.13.1 cudatoolkit=10.0 acemd3 htmd=1.27 h5py=2.10 python=3.7
これでDEFMapのスクリプトを動かせる環境「defmap」ができた
一応確認としてconda環境「defmap」の中身を確認してみると
[root@rockylinux9 ~]# conda env list
# conda environments:
#
/apps/eman2.91
base /apps/pyenv/versions/anaconda3-2022.05
defmap /apps/pyenv/versions/anaconda3-2022.05/envs/defmap
[root@rockylinux9 ~]# source activate defmap
(defmap) [root@rockylinux9 ~]# conda list
:
acemd3 3.3.0 cuda100_0 acellera
:
amberlite 16.0 pypi_0 pypi
ambertools 21.11 py37h5d2b9b6_0 conda-forge
amberutils 21.0 pypi_0 pypi
:
cudatoolkit 10.0.130 h8c5a6a4_10 conda-forge
:
h5py 2.10.0 nompi_py37ha3df211_106 conda-forge
:
htmd 1.27.2 py37_0 acellera
htmd-deps 1.27.2 py37_0 acellera
:
keras-gpu 2.2.4 0
:
tensorflow-gpu 1.13.1 h0d30ee6_0
:
(defmap) [root@rockylinux9 ~]#
となっている。注目は「acellera」チャンネルで入れられているパッケージ群. ライセンス的にはアカデミックのみっぽいかな.
https://software.acellera.com/htmd/installation.html
https://software.acellera.com/htmd/index.html
*それと「source activate ...」を使いたいからAnacondaのように修正しました
っでEnvironmentModulesを作成
[root@rockylinux9 ~]# vi /apps/modulefiles/defmap
#%Module
set root /apps/pyenv/versions/anaconda3-2022.05/envs/defmap
prepend-path PATH $root/bin
[root@rockylinux9 ~]#
あと
連携じゃないけどテストでeman2(eman2.91)を使うのでそれをインストール
参照EMAN2
EnvironmentModulesで使えるようにしておきます
っで真打 DEFMap の登場.
どうも/appsとかの共有な場所に配置して利用するって感じではなく、各自のローカルな場所に置いて使うっぽい.
なので、ホームディレクトリにダウンロードして使います
[illya@rockylinux9 ~]$ git clone https://github.com/clinfo/DEFMap
https://github.com/clinfo/DEFMap#example-usage
からサンプルを実行してみる
■Usage 1: Dynamics Prediciton and Voxel Visualization
「Scale voxel length and map resolution」
eman2のプログラム「e2proc3d.py」を使ってます. なので一旦moduleコマンドで eman2 を呼び出します
[illya@rockylinux9 ~]$ module load eman2
[illya@rockylinux9 ~]$ e2version.py
EMAN 2.91 final ( GITHUB: 2021-03-08 11:36 - commit: 81caed2 )
Your Python version is: 3.7.9
[illya@rockylinux9 ~]$ cd DEFMap/data
[illya@rockylinux9 data]$ e2proc3d.py 015_emd_3984.map 015_emd_3984_5.0A_rescaled.mrc --clip=160,160,160 --scale=0.9 --process=filter.lowpass.gauss:cutoff_freq=0.2
(「015_emd_3984_5.0A_rescaled.mrc」が作られる)
「Create dataset」
次にDEFMapのコマンドを実行しますが、eman2の環境をロードしているので、それを下げて、DEFMapの環境をロードして計算を行います
[illya@rockylinux9 data]$ cd ../preprocessing
[illya@rockylinux9 preprocessing]$ module purge
[illya@rockylinux9 preprocessing]$ module load defmap
[illya@rockylinux9 preprocessing]$ which python
/apps/pyenv/versions/anaconda3-2022.05/envs/defmap/bin/python
[illya@rockylinux9 preprocessing]$ python prep_dataset.py -m ../data/015_emd_3984_5.0A_rescaled.mrc -o ../data/sample.jbl -p
Using TensorFlow backend.
[INFO] Save prediction data set: ../data/sample.jbl
[INFO] Done
[illya@rockylinux9 preprocessing]$
「Inference」
[illya@rockylinux9 preprocessing]$ cd ..
[illya@rockylinux9 DEFMap]$ python 3dcnn_main.py infer --test_dataset data/sample.jbl -o model/model_res5A.h5 --prediction_output result/prediction.jbl
Using TensorFlow backend.
[INFO] Inference
2022-10-23 05:31:49.734220: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2022-10-23 05:31:49.744677: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 3791995000 Hz
2022-10-23 05:31:49.744936: I tensorflow/compiler/xla/service/service.cc:150] XLA service 0x55a8127645c0 executing computations on platform Host. Devices:
2022-10-23 05:31:49.744955: I tensorflow/compiler/xla/service/service.cc:158] StreamExecutor device (0): <undefined>, <undefined>
[INFO] Save: result/prediction.jbl
[INFO] Done
[illya@rockylinux9 DEFMap]$ ls -l result/
total 268980
-rw-r--r--. 1 illya illya 275435334 Oct 23 07:37 prediction.jbl
[illya@rockylinux9 DEFMap]$
軽く2時間...
本来ならGPUを認識してtensorflow-gpuが働くのだが、Ampere GPUなA2000では認識してくれないご様子.
tensorflow-gpu-1.13.1とあるので、最新のGPUでは無理なのかな. nvidia-pyindex経由でnvidia-tensorflow[horovod]の導入を試みたが、こちらは python3.8 が必要なようで適合しない.
dockerファイルが用意されているのでこれでコンテナを作って動くのか確かめた方がいいのかもしれない