本家様 http://cb.csail.mit.edu/cb/cryodrgn/
githubで公開されている https://github.com/zhonge/cryodrgn
ライセンス的には「GNU General Public License v3.0」https://github.com/zhonge/cryodrgn/blob/master/LICENSE.txtのようで商用も大丈夫みたい
インストール環境はこんな感じ.
[root@rockylinux9 ~]# cat /etc/redhat-release
Rocky Linux release 9.4 (Blue Onyx)
[root@rockylinux9 ~]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.179 Fri Apr 26 21:43:18 UTC 2024
GCC version: gcc version 11.4.1 20231218 (Red Hat 11.4.1-3) (GCC)
[root@rockylinux9 ~]#
まずcrYOLOのようにpyenv/anaconda環境を用意します
こちらは/apps/pyenvにpyenvの基点を作り、その配下に pythonパッケージ管理anaconda を敷いている
anaconda/minicondaを直接入れて構築するのもありだけど、ここではpyenvを間に入れてます
git clone https://github.com/yyuu/pyenv.git /apps/pyenv
export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
pyenv install anaconda3-2024.02-1
pyenv global anaconda3-2024.02-1
source /apps/pyenv/versions/anaconda3-2024.02-1/etc/profile.d/conda.sh
conda update conda
(既に環境があるなら)
source /apps/pyenv/versions/anaconda3-2024.02-1/etc/profile.d/conda.sh
pipに登録されているのでそれを利用します
https://pypi.org/project/cryodrgn/ に記載のように使用するpythonは「Python <3.11, >=3.9」であるため、python 3.9を使います
[root@rockylinux9 ~]# conda create --name cryodrgn python=3.9
[root@rockylinux9 ~]# conda activate cryodrgn
(cryodrgn) [root@rockylinux9 ~]# pip install cryodrgn
(cryodrgn) [root@rockylinux9 ~]# conda list
:
matplotlib 3.6.3 pypi_0 pypi
matplotlib-inline 0.1.7 pypi_0 pypi
:
torch 2.3.0 pypi_0 pypi
:
(cryodrgn) [root@rockylinux9 ~]# python
>>> import torch
>>> print(torch.cuda.is_available())
True
>>> quit();
(cryodrgn) [root@rockylinux9 ~]# pip install matplotlib==3.6.2 <-- 3.6.3のままだと「Failed to extract font properties」が発生
(cryodrgn) [root@rockylinux9 ~]# conda deactivate
[root@rockylinux9 ~]#
matplotlibが3.6.3のままであると「(INFO) (font_manager.py) (01-Jun-24 13:37:53) Failed to extract font properties from /usr/share/fonts/google-noto-emoji/NotoColorEmoji.ttf: In FT2Font: Can not load face (unknown file format; error code 0x2)」とか生じる. なので 3.6.2へ落とした
下記を「/apps/modulefiles/cryoDRGN」として保存します
#%Module -*- tcl -*-
set root /apps/pyenv/versions/anaconda3-2024.02-1/envs/cryodrgn
prepend-path PATH $root/bin
まずはEnvironmentModulesで cryoDRGN の実行環境をロードします
[saber@rockylinux9 ~]$ module use /apps/modulefiles/
[saber@rockylinux9 ~]$ module load cryoDRGN
そしてコマンドを実行します
[saber@rockylinux9 ~]$ cryodrgn -h
usage: cryodrgn [-h] [--version]
{downsample,preprocess,parse_pose_csparc,parse_pose_star,parse_ctf_csparc,parse_ctf_star,train_nn,backproject_voxel,train_vae,eval_vol,eval_images,analyze,analyze_landscape,analyze_landscape_full,pc_traversal,graph_traversal,view_config,abinit_homo,abinit_het}
...
CryoDRGN neural network reconstruction
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
Choose a command:
{downsample,preprocess,parse_pose_csparc,parse_pose_star,parse_ctf_csparc,parse_ctf_star,train_nn,backproject_voxel,train_vae,eval_vol,eval_images,analyze,analyze_landscape,analyze_landscape_full,pc_traversal,graph_traversal,view_config,abinit_homo,abinit_het}
[saber@rockylinux9 ~]$ cryodrgn --version
cryoDRGN 3.3.2
[saber@rockylinux9 ~]$
*単に「cryodrgn」と実行するとエラーメッセージが表示されます
使い方についてはgithubに詳しく載っているのでそちらを参照してください
テスト
[illya@rockylinux9 ~]$ module use /apps/modulefiles/
[illya@rockylinux9 ~]$ module load cryoDRGN
[illya@rockylinux9 ~]$ git clone https://github.com/ml-struct-bio/cryodrgn
[illya@rockylinux9 ~]$ cd cryodrgn
[illya@rockylinux9 cryodrgn]$ git checkout refs/tags/3.3.2
[illya@rockylinux9 cryodrgn]$ cd testing/
[illya@rockylinux9 testing]$
[illya@rockylinux9 testing]$ ./quicktest.sh
:
(INFO) (train_vae.py) (01-Jun-24 14:02:53) Use cuda True
:
(INFO) (train_vae.py) (01-Jun-24 14:03:08) Finished in 0:00:14.527320 (0:00:00.726366 per epoch)
[illya@rockylinux9 testing]$