本家様 https://github.com/chaidiscovery/chai-lab/
環境
[root@rockylinux9 ~]# cat /etc/redhat-release
Rocky Linux release 9.5 (Blue Onyx)
[root@rockylinux9 ~]# uname -r
5.14.0-503.14.1.el9_5.x86_64
[root@rockylinux9 ~]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 570.172.08 Tue Jul 8 18:31:33 UTC 2025
GCC version: gcc version 11.5.0 20240719 (Red Hat 11.5.0-5) (GCC)
[root@rockylinux9 ~]#cuda-12.8対応な 570.x nvidiaドライバを入れてます.
下準備
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構築
[root@rockylinux9 ~]# source /apps/pyenv/versions/anaconda3-2024.10-1/etc/profile.d/conda.sh
[root@rockylinux9 ~]# conda create -n Chai-1 pip python=3.12 -c conda-forge -y
[root@rockylinux9 ~]# conda activate Chai-1
(Chai-1) [root@rockylinux9 ~]# cd /apps/src/
(Chai-1) [root@rockylinux9 src]# git clone https://github.com/chaidiscovery/chai-lab
(Chai-1) [root@rockylinux9 src]# cd chai-lab/
(Chai-1) [root@rockylinux9 chai-lab]# pip install .
(Chai-1) [root@rockylinux9 chai-lab]# conda list
:
chai-lab 0.6.1 pypi_0 pypi
:
numpy 1.26.4 pypi_0 pypi
nvidia-cublas-cu12 12.6.4.1 pypi_0 pypi
nvidia-cuda-cupti-cu12 12.6.80 pypi_0 pypi
nvidia-cuda-nvrtc-cu12 12.6.77 pypi_0 pypi
nvidia-cuda-runtime-cu12 12.6.77 pypi_0 pypi
nvidia-cudnn-cu12 9.5.1.17 pypi_0 pypi
nvidia-cufft-cu12 11.3.0.4 pypi_0 pypi
nvidia-cufile-cu12 1.11.1.6 pypi_0 pypi
nvidia-curand-cu12 10.3.7.77 pypi_0 pypi
nvidia-cusolver-cu12 11.7.1.2 pypi_0 pypi
nvidia-cusparse-cu12 12.5.4.2 pypi_0 pypi
nvidia-cusparselt-cu12 0.6.3 pypi_0 pypi
nvidia-nccl-cu12 2.26.2 pypi_0 pypi
nvidia-nvjitlink-cu12 12.6.85 pypi_0 pypi
nvidia-nvtx-cu12 12.6.77 pypi_0 pypi
:
python 3.12.11 h9e4cc4f_0_cpython conda-forge
:
rdkit 2024.9.6 pypi_0 pypi
:
torch 2.7.1 pypi_0 pypi
:
typer 0.16.0 pypi_0 pypi
:
(Chai-1) [root@rockylinux9 chai-lab]#
(Chai-1) [root@rockylinux9 chai-lab]# conda install kalign3 -c bioconda次に Chai の weights ファイルをダウンロードします。ここでは /apps/Chai に落とします
実際には predict_structure.py の計算中に CHAI_DOWNLOADS_DIR にweightsファイル を落とします
(Chai-1) [root@rockylinux9 chai-lab]# mkdir /apps/Chai
(Chai-1) [root@rockylinux9 chai-lab]# CHAI_DOWNLOADS_DIR=/apps/Chai python ./examples/predict_structure.py
(Chai-1) [root@rockylinux9 chai-lab]# conda deactivate
[root@rockylinux9 chai-lab]#落としたファイルらはこんな感じ
[root@rockylinux9 ~]# cd /apps/Chai/
[root@rockylinux9 Chai]# ls -lR
.:
total 119M
-rw-r--r--. 1 root root 119M Jul 21 02:08 conformers_v1.apkl
-rw-r--r--. 1 root root 0 Jul 21 02:08 conformers_v1.download_lock
drwxr-xr-x. 2 root root 107 Jul 21 02:23 esm
drwxr-xr-x. 2 root root 4.0K Jul 21 02:24 models_v2
./esm:
total 5.3G
-rw-r--r--. 1 root root 0 Jul 21 02:09 traced_sdpa_esm2_t36_3B_UR50D_fp16.download_lock
-rw-r--r--. 1 root root 5.3G Jul 21 02:23 traced_sdpa_esm2_t36_3B_UR50D_fp16.pt
./models_v2:
total 615M
-rw-r--r--. 1 root root 0 Jul 21 02:24 bond_loss_input_proj.download_lock
-rw-r--r--. 1 root root 5.4K Jul 21 02:24 bond_loss_input_proj.pt
-rw-r--r--. 1 root root 0 Jul 21 02:24 feature_embedding.download_lock
-rw-r--r--. 1 root root 4.4M Jul 21 02:24 feature_embedding.pt
-rw-r--r--. 1 root root 0 Jul 21 02:24 token_embedder.download_lock
-rw-r--r--. 1 root root 6.0M Jul 21 02:24 token_embedder.pt
-rw-r--r--. 1 root root 0 Jul 21 02:24 trunk.download_lock
-rw-r--r--. 1 root root 604M Jul 21 02:24 trunk.pt
[root@rockylinux9 Chai]#
[root@rockylinux9 Chai]# mkdir --mode=1777 /apps/Chai/template_cifs予測に使用するcifファイルの置き場「/apps/Chai/template_cifs」を用意する
時にフォルダの中身は削除する必要あるみたい
実行ユーザがここを利用するとき、上手く行かないのかなと思ってしまう。参照だけなら大丈夫かなと思うが..
「/apps/modulefiles/Chai」
#%Module1.0
set root /apps/pyenv/versions/anaconda3-2024.10-1/envs/Chai-1
prepend-path PATH $root/bin
setenv CHAI_DOWNLOADS_DIR /apps/Chai
setenv DISABLE_PANDERA_IMPORT_WARNING truefastaファイル形式なのですが、ID欄に「protein」と記載する必要がある
[saber@rockylinux9 ~]$ cat query.fasta
>protein|sample-A
PIAQIHILEGRSDEQKETLIREVSEAISRSLDAPLTSVRVIITEMAKGHFGIGGELASK
[saber@rockylinux9 ~]$
[saber@rockylinux9 ~]$ module use /apps/modulefiles
[saber@rockylinux9 ~]$ module load Chai
[saber@rockylinux9 ~]$ chai-lab fold --use-msa-server --use-templates-server query.fasta out「./examples/predict_structure.py」を参考にするとインプットファイルはこんな感じみたい.
>protein|name=example-of-long-protein
AGSHSMRYFSTSVSRPGRGEPRFIAVGYVDDTQFVRFDSDAASPRGEPRAPWVEQEGPEYWDRETQKYKRQAQTDRVSLRNLRGYYNQSEAGSHTLQWMFGCDLGPDGRLLRGYDQSAYDGK(略
>protein|name=example-of-short-protein
AIQRTPKIQVYSRHPAENGKSNFLNCYVSGFHPSDIEVDLLKNGERIEKVEHSDLSFSKDWSFYLLYYTEFTPTEKDEYACRVNHVTLSQPKIVKWDRDM
>protein|name=example-peptide
GAAL
>ligand|name=example-ligand-as-smiles
CCCCCCCCCCCCCC(=O)O「>」の後にproteinとかligandと表記するみたい.