本家様 https://github.com/3dem/model-angelo
ModelAngelo is an automatic atomic model building program for cryo-EM maps.
作ってみた. まずは現状から.
[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.153.02 Tue May 13 16:34:43 UTC 2025
GCC version: gcc version 11.5.0 20240719 (Red Hat 11.5.0-2) (GCC)
[root@rockylinux9 ~]# ls -l /usr/local/cuda
ls: cannot access '/usr/local/cuda': No such file or directory
[root@rockylinux9 ~]# nvcc
bash: nvcc: command not found...
[root@rockylinux9 ~]# nvidia-smi -L
GPU 0: NVIDIA GeForce GTX 1070 (UUID: GPU-a49de51b-de1e-52f3-1e3f-ce704e159713)
[root@rockylinux9 ~]#
nvidiaドライバは入ってますが、cudaライブラリは未インストール状態です.
それでModelAngelo を構築していきます
ModelAngelo は構築時にcondaを要求するので、conda環境を整備します. ここでは pyenv/anaconda(miniconda)を敷いています.
もし敷いていなかったら
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.10-1
source /apps/pyenv/versions/anaconda3-2024.10-1/etc/profile.d/conda.sh
とします。
もし既に pyenv/anaconda(miniconda)環境が存在しているば
source /apps/pyenv/versions/<そちらのanaconda/miniconda>/etc/profile.d/conda.sh
としてください
っでModelAngelo のソースを取得します
[root@rockylinux9 ~]# cd /apps/src/
[root@rockylinux9 src]# git clone https://github.com/3dem/model-angelo
Resolving deltas: 100% (1478/1478), done.
[root@rockylinux9 src]# cd model-angelo/
[root@rockylinux9 model-angelo]#
「model-angelo」フォルダにある「install_script.sh」スクリプトを実行すれば構築は完了っぽいのです.
スクリプトの実行最中にモデルファイルの取得もできるようで、保存先を環境変数「TORCH_HOME」で定義します.
[root@rockylinux9 model-angelo]# mkdir /apps/ModelAngelo
[root@rockylinux9 model-angelo]# export TORCH_HOME=/apps/ModelAngelo
condaコマンドが使えることを確認して実行します
[root@rockylinux9 model-angelo]# whereis conda
conda: /apps/pyenv/versions/anaconda3-2024.10-1/condabin/conda
[root@rockylinux9 model-angelo]# source install_script.sh --download-weights
:
(構築とmodelファイルのダウンロードが始まる)
:
Checking checksum of downloaded file.
Checksum of downloaded file matches expected checksum.
Bundle nucleotides_no_seq successfully installed.
Successful!
Path to model is /apps/ModelAngelo/hub/checkpoints/model_angelo_v1.0/nucleotides_no_seq
(model_angelo) [root@rockylinux9 ~]# conda deactivate
[root@rockylinux9 ~]#
(確認)
[root@rockylinux9 ~]# conda env list
# conda environments:
#
base /apps/pyenv/versions/anaconda3-2024.10-1
model_angelo /apps/pyenv/versions/anaconda3-2024.10-1/envs/model_angelo
[root@rockylinux9 ~]#
モデルファイルを置くようにした「/apps/ModelAngelo」は下記のようになる
[root@rockylinux9 ~]# ls -l /apps/ModelAngelo/
total 0
drwxr-xr-x. 3 root root 25 May 30 16:44 hub
[root@rockylinux9 ~]# ls -l /apps/ModelAngelo/hub/checkpoints/
total 7645100
-r-xr-xr-x. 1 root root 3174 May 30 17:14 esm1b_t33_650M_UR50S-contact-regression.pt
-r-xr-xr-x. 1 root root 7828576466 May 30 17:14 esm1b_t33_650M_UR50S.pt
drwxr-xr-x. 4 root root 51 May 30 17:41 model_angelo_v1.0
[root@rockylinux9 ~]#
[root@rockylinux9 ~]# vi /apps/modulefiles/ModelAngelo
#%Module
prepend-path PATH /apps/pyenv/versions/anaconda3-2024.10-1/envs/model_angelo/bin
[root@rockylinux9 ~]#
[illya@rockylinux9 ~]$ module use /apps/modulefiles/
[illya@rockylinux9 ~]$ module load ModelAngelo
[illya@rockylinux9 ~]$ model_angelo build -h
usage: model_angelo build [-h] --volume-path VOLUME_PATH --protein-fasta PROTEIN_FASTA [--rna-fasta RNA_FASTA] [--dna-fasta DNA_FASTA]
[--output-dir OUTPUT_DIR] [--mask-path MASK_PATH] [--device DEVICE] [--config-path CONFIG_PATH]
[--model-bundle-name MODEL_BUNDLE_NAME] [--model-bundle-path MODEL_BUNDLE_PATH] [--keep-intermediate-results]
You are standing in an open field west of a glass building, with a sliding electric front door.
There is a small mailbox here.
> Open mailbox.
There is a letter.
> Read letter.
-------------------------------------------------------------------------
Welcome to ModelAngelo! Have a look around...
This is the build command, so you need:
1) A cryo-EM map .mrc file, passed to --volume-path/--v/-v
2) A FASTA file with all potential amino acid sequences found in the map,
passed to --fasta-path/--f/-f
You can also provide a mask for the volume using --mask-path/--m/-m
You can also input a custom config file with --config-path/--c/-c
options:
-h, --help show this help message and exit
--rna-fasta RNA_FASTA, --rf RNA_FASTA, -rf RNA_FASTA
The path to the RNA sequence file
--dna-fasta DNA_FASTA, --df DNA_FASTA, -df DNA_FASTA
The path to the DNA sequence file
Main arguments:
These are the only arguments a typical user will need.
--volume-path VOLUME_PATH, -v VOLUME_PATH, --v VOLUME_PATH
input volume
--protein-fasta PROTEIN_FASTA, --fasta-path PROTEIN_FASTA, --f PROTEIN_FASTA, --pf PROTEIN_FASTA, -f PROTEIN_FASTA, -pf PROTEIN_FASTA
Protein input sequence FASTA file
--output-dir OUTPUT_DIR, -o OUTPUT_DIR, --o OUTPUT_DIR
path to output directory
Additional arguments:
These are sometimes useful.
--mask-path MASK_PATH, -m MASK_PATH, --m MASK_PATH
path to mask file
--device DEVICE, -d DEVICE, --d DEVICE
compute device, pick one of {cpu, gpu_number}. Default set to find an available GPU.
Advanced arguments:
These should *not* be changed unless the user is aware of what they do.
--config-path CONFIG_PATH, -c CONFIG_PATH, --c CONFIG_PATH
config file
--model-bundle-name MODEL_BUNDLE_NAME
Inference model bundle name
--model-bundle-path MODEL_BUNDLE_PATH
Inference model bundle path. If this is set, --model-bundle-name is not used.
--keep-intermediate-results
Keep intermediate results, ie see_alpha_output and gnn_round_x_output
[illya@rockylinux9 ~]$