しゅうせいちゅう
本家様 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
のようで商用も大丈夫みたい
物はpythonアプリで構築/組み込みはcrYOLOとかの方法でしょうか
下準備 †
まずcrYOLOのようにpyenv/anaconda環境を用意します
こちらは/apps/pyenvにpyenvの基点を作り、その配下に pythonパッケージ管理anaconda を敷いている
anaconda/minicondaを直接入れて構築するのもありだけど、ここではpyenvを間に入れてます
rootで作業します. まず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 anaconda3-2023.03
pyenv global anaconda3-2023.03
export PATH=$PYENV_ROOT/versions/anaconda3-2023.03/bin/:$PATH
conda update conda
(既に環境があるなら)
export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
export PATH=$PYENV_ROOT/versions/anaconda3-2023.03/bin/:$PATH
インストール †
GitHubに記載のように実行しますが、「conda activate cryodrgn」は「source activate cryodrgn」としています。
[root@rockylinux9 ~]# conda create --name cryodrgn python=3.9
[root@rockylinux9 ~]# source activate cryodrgn
(cryodrgn) [root@rockylinux9 ~]# conda install pytorch -c pytorch
(cryodrgn) [root@rockylinux9 ~]# conda install pandas
(cryodrgn) [root@rockylinux9 ~]# conda install seaborn scikit-learn
(cryodrgn) [root@rockylinux9 ~]# conda install umap-learn jupyterlab ipywidgets cufflinks-py "nodejs>=15.12.0" -c conda-forge
(cryodrgn) [root@rockylinux9 ~]# which jupyter
/apps/pyenv/versions/anaconda3-2023.03/envs/cryodrgn/bin/jupyter
(cryodrgn) [root@rockylinux9 ~]# jupyter labextension install @jupyter-widgets/jupyterlab-manager --no-build
(cryodrgn) [root@rockylinux9 ~]# jupyter labextension install jupyterlab-plotly --no-build
(cryodrgn) [root@rockylinux9 ~]# jupyter labextension install plotlywidget --no-build
(cryodrgn) [root@rockylinux9 ~]# jupyter lab build
(cryodrgn) [root@rockylinux9 ~]# cd /apps
(cryodrgn) [root@rockylinux9 apps]# git clone https://github.com/zhonge/cryodrgn.git
(cryodrgn) [root@rockylinux9 apps]# cd cryodrgn
(cryodrgn) [root@rockylinux9 cryodrgn]# pip install .
(cryodrgn) [root@rockylinux9 cryodrgn]# conda deactivate
[root@rockylinux9 cryodrgn]#
(cryodrgn) [root@centos7 ~]# cd /apps/src/
(cryodrgn) [root@centos7 src]# git clone https://github.com/zhonge/cryodrgn.git
(cryodrgn) [root@centos7 src]# cd cryodrgn
(cryodrgn) [root@centos7 cryodrgn]# ls -CF
analysis_scripts/ cryodrgn/ LICENSE.txt MANIFEST.in README.md setup.py* testing/ utils/ versions.txt
(cryodrgn) [root@centos7 cryodrgn]#
(cryodrgn) [root@centos7 cryodrgn]# git branch
* master
(cryodrgn) [root@centos7 cryodrgn]# git tag
0.0.18
0.0.19
0.1.1
0.1.2
0.2.0
0.2.1
0.2.1b
0.3.0
0.3.0b
0.3.1
(cryodrgn) [root@centos7 cryodrgn]#
(cryodrgn) [root@centos7 cryodrgn]# git checkout -b 0.3.1 refs/tags/0.3.1
Switched to a new branch '0.3.1'
(cryodrgn) [root@centos7 cryodrgn]# which python
/apps/pyenv/versions/anaconda3-5.3.1/envs/cryodrgn/bin/python
(cryodrgn) [root@centos7 cryodrgn]# python setup.py install
最後の「python setup.py install」で「/apps/pyenv/versions/anaconda3-5.3.1/envs/cryodrgn/bin」にプログラムがインストールされます
EnvironmentModules †
ここでは各種プログラムの実行にはEnvironmentModulesを用いてコマンドによる実行環境を用意してる
以前なら .bashrcや.cshrcを手動で書き換えてプログラムの実行環境を作っていたが、
プログラムごとに実行環境が必要になったのでEnvironmentModulesで切り替えれる形にしている
アプリごとにpythonのこのバージョン、あのバージョンとかがあってもはや統一的な実行環境が用意できないので
既定でanacondaを敷けばいいのも知れないが、OS由来の環境も保ちたいので
下記を「/etc/modulefiles/cryoDRGN」として保存します
#%Module -*- tcl -*-
set root /apps/pyenv/versions/anaconda3-5.3.1/envs/cryodrgn
prepend-path PATH $root/bin
実行方法 †
まずはEnvironmentModulesで cryoDRGN の実行環境をロードします
[saber@centos7 ~]$ module load cryoDRGN
そしてコマンドを実行します
[saber@centos7 ~]$ cryodrgn -h
usage: cryodrgn [-h] [--version]
{downsample,parse_pose_csparc,parse_pose_star,parse_ctf_csparc,parse_ctf_star,train_nn,(略
...
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,parse_pose_csparc,parse_pose_star,parse_ctf_csparc,parse_ctf_star,train_nn,backproject_v(略
[saber@centos7 ~]$
*単に「cryodrgn」と実行するとエラーメッセージが表示されます
使い方についてはgithubに詳しく載っているのでそちらを参照してください
jupyterlabが入っているので、notebookも使えそうですね
メモ †
GPUが使われない
/apps/pyenv/versions/anaconda3-2022.05/envs/cryodrgn/bin/python
>>> import torch
>>> torch.cuda.is_available()
False
>>>
っでcryoDRGN の構成パッケージを確認すると
(cryodrgn) [root@centos7 cryodrgn]# conda list
:
pytorch 1.13.0 py3.9_cpu_0 pytorch
pytorch-mutex 1.0 cpu pytorch
:
(cryodrgn) [root@centos7 cryodrgn]#
とある. pytorchなんだけど、cpu向けみたい
メモ †
「jupyter labextension install @jupyter-widgets/jupyterlab-manager --no-build」で非常に時間が掛かる場合はそれはipv6で接続している可能性がある.
「/etc/hosts」に相手方のipv4とhost名を入れれば解決される