github https://github.com/DISCO-design/DISCO
Code for the DISCO model: General Multimodal Protein Design Enables DNA-Encoding of Chemistry
uvコマンドを使って構築するのですが、このuvは初めて、いつものpyenv/condaをからenvironment-modulesに持っていくようにしたい
[root@r9 ~]# curl -LsSf https://astral.sh/uv/install.sh | less
-> version が 0.11.20 と判明
[root@r9 ~]# mkdir /apps/uv/0.11.20/bin -p
[root@r9 ~]# curl -LsSf https://astral.sh/uv/install.sh \
| env UV_INSTALL_DIR="/apps/uv/0.11.20/bin" \
UV_NO_MODIFY_PATH=1 \
sh
[root@r9 ~]# ls -l /apps/uv/0.11.20/bin/
total 59276
-rwxr-xr-x 1 root root 60342584 Jun 10 17:22 uv
-rwxr-xr-x 1 root root 349456 Jun 10 17:22 uvx
[root@r9 ~]#いつもの environment-modules
「/apps/modulefiles/uv/0.11.20」として
#%Module1.0
prepend-path PATH /apps/uv/0.11.20/binまたpythonもOS由来ではない別のバージョンを使いたいので
[root@r9 ~]# module use /apps/modulefiles
[root@r9 ~]# module load uv/0.11.20
[root@r9 ~]# mkdir -p /apps/uv-python
[root@r9 ~]# export UV_PYTHON_INSTALL_DIR=/apps/uv-python
[root@r9 ~]# uv python install 3.11
[root@r9 ~]# uv python install 3.12
[root@r9 ~]# uv python install 3.13
[root@r9 ~]# ls -l /apps/uv-python/
:
drwxr-xr-x 6 root root 69 Jun 13 07:42 cpython-3.11.15-linux-x86_64-gnu
lrwxrwxrwx 1 root root 48 Jun 13 07:42 cpython-3.11-linux-x86_64-gnu -> /apps/uv-python/cpython-3.11.15-linux-x86_64-gnu
drwxr-xr-x 6 root root 69 Jun 13 05:43 cpython-3.12.13-linux-x86_64-gnu
lrwxrwxrwx 1 root root 48 Jun 13 07:42 cpython-3.12-linux-x86_64-gnu -> /apps/uv-python/cpython-3.12.13-linux-x86_64-gnu
drwxr-xr-x 6 root root 69 Jun 13 05:43 cpython-3.13.14-linux-x86_64-gnu
lrwxrwxrwx 1 root root 48 Jun 13 07:42 cpython-3.13-linux-x86_64-gnu -> /apps/uv-python/cpython-3.13.14-linux-x86_64-gnu
:
[root@r9 ~]# ls -l /apps/uv-python/cpython-3.11-linux-x86_64-gnu/bin/
total 21188
lrwxrwxrwx 1 root root 9 Jun 13 07:42 2to3 -> 2to3-3.11
-rwxr-xr-x 1 root root 158 Jun 13 07:42 2to3-3.11
lrwxrwxrwx 1 root root 8 Jun 13 07:42 idle3 -> idle3.11
-rwxr-xr-x 1 root root 156 Jun 13 07:42 idle3.11
-rwxr-xr-x 1 root root 234 Jun 13 07:42 pip
-rwxr-xr-x 1 root root 234 Jun 13 07:42 pip3
-rwxr-xr-x 1 root root 234 Jun 13 07:42 pip3.11
lrwxrwxrwx 1 root root 9 Jun 13 07:42 pydoc3 -> pydoc3.11
-rwxr-xr-x 1 root root 141 Jun 13 07:42 pydoc3.11
lrwxrwxrwx 1 root root 10 Jun 13 07:42 python -> python3.11
lrwxrwxrwx 1 root root 10 Jun 13 07:42 python3 -> python3.11
-rwxr-xr-x 1 root root 21666872 Jun 13 07:42 python3.11
-rwxr-xr-x 1 root root 3122 Jun 13 07:42 python3.11-config
lrwxrwxrwx 1 root root 17 Jun 13 07:42 python3-config -> python3.11-config
[root@r9 ~]#と複数のpython versionを入れて置く
っでDISCOのインストール
[root@r9 ~]# module use /apps/modulefiles
[root@r9 ~]# module load uv/0.11.20
[root@r9 ~]# export UV_PYTHON_INSTALL_DIR=/apps/uv-python
[root@r9 ~]# cd /apps/
[root@r9 apps]# git clone https://github.com/DISCO-design/DISCO.git
[root@r9 apps]# cd DISCO/ちょいと確認
[root@r9 DISCO]# less pyproject.toml
:
requires-python = ">=3.11,<3.13"
:
"torch>=2.5",
:
[root@r9 DISCO]#とあるので、DISCOは pyton 3.11 か 3.12 。そしてtorchが2.5以上であればokの模様.
pythonは 3.11 を使うとして、torchはcuda-libraryにも影響する.
[root@r9 DISCO]# uv venv --python 3.11
(確認)
[root@r9 DISCO]# ls -l .venv/bin/
:
lrwxrwxrwx 1 root root 60 Jun 13 07:44 python -> /apps/uv-python/cpython-3.11-linux-x86_64-gnu/bin/python3.11
lrwxrwxrwx 1 root root 6 Jun 13 07:44 python3 -> python
lrwxrwxrwx 1 root root 6 Jun 13 07:44 python3.11 -> python
:
[root@r9 DISCO]#
[root@r9 DISCO]# uv sync --python .venv/bin/python
[root@r9 DISCO]# ls -ld .venv/
drwxr-xr-x 7 root root 157 Jun 12 01:13 .venv/
[root@r9 DISCO]# du -hs .venv/
5.8G .venv/
[root@r9 DISCO]# ls -l .venv/bin/python
lrwxrwxrwx 1 root root 60 Jun 13 07:44 .venv/bin/python -> /apps/uv-python/cpython-3.11-linux-x86_64-gnu/bin/python3.11
[root@r9 DISCO]#[root@r9 DISCO]# uv pip list
Package Version Editable project location
----------------------- ----------- -------------------------------
:
disco 1.0.0 /apps/DISCO
:
ipython 9.14.1
:
ligandmpnn 0.1.0 /apps/DISCO/packages/LigandMPNN
:
ninja 1.13.0
nodeenv 1.10.0
numpy 1.26.4
nvidia-cublas 13.1.1.3
nvidia-cuda-cupti 13.0.85
nvidia-cuda-nvrtc 13.0.88
nvidia-cuda-runtime 13.0.96
nvidia-cudnn-cu13 9.20.0.48
nvidia-cufft 12.0.0.61
nvidia-cufile 1.15.1.6
nvidia-curand 10.4.0.35
nvidia-cusolver 12.0.4.66
nvidia-cusparse 12.6.3.3
nvidia-cusparselt-cu13 0.8.1
nvidia-nccl-cu13 2.29.7
nvidia-nvjitlink 13.0.88
nvidia-nvshmem-cu13 3.4.5
nvidia-nvtx 13.0.85
omegaconf 2.3.1
openfold 0.1.0 /apps/DISCO/packages/openfold
packaging 26.2
pandas 3.0.3
:
pyrootutils 1.0.4
python-dateutil 2.9.0.post0
python-discovery 1.4.2
python-dotenv 1.2.2
pytorch-lightning 2.6.5
:
runner 0.1.0 /apps/DISCO/runner
:
torch 2.12.0
torchdata 0.11.0
torchinfo 1.8.0
torchmetrics 1.9.0
:
[root@r9 DISCO]#[root@r9 ~]# git clone https://github.com/NVIDIA/cutlass.git /apps/cutlasspyproject.tomlがある場所で「uv sync」を行うと.venvができる
「/apps/modulefiles/DISCO」
#%Module
module load cuda/13.2
set root /apps/DISCO
prepend-path PATH $root/.venv/bin
setenv VIRTUAL_ENV $root/.venv
setenv CUTLASS_PATH /apps/cutlass[saber@r9 ~]$ cd test/
[saber@r9 test]$ cp -r /apps/DISCO/input_jsons .
[saber@r9 test]$ module load DISCO
[saber@r9 test]$ which python
/apps/DISCO/.venv/bin/python
[saber@r9 test]$ python /apps/DISCO/runner/inference.py experiment=designable input_json_path=input_jsons/unconditional_config.json seeds=\[$(seq -s "," 0 99)\]cu13のライブラリが入ってしまいますが、もしGPU的に cuda-12.4 がいいのなら
uv pip uninstall torch
uv pip install torch --torch-backend=cu124とする.
この場合、/usr/localに cuda-12.4 のcuda-toolkitを入れてmodule load 可能なようにする
ユーザ側でインストールして使うみたい. ここではrootで/appsに入れていますが。
[saber@r9 ~]$ curl -LsSf https://astral.sh/uv/install.sh | sh <-- 「$HOME/.local/bin」に uv と uvx がインストールされる. デフォで$PATHに「$HOME/.local/bin」が入っているのでそのまま使える
[saber@r9 ~]$ git clone https://github.com/DISCO-design/DISCO.git
[saber@r9 ~]$ cd DISCO
[saber@r9 ~]$ uv syncこれでインストールは完了します. cudaライブラリも入りますが、$CUDA_HOMEを要求するようなので /usr/local/cuda を用意する必要がある.
nvidiaドライバーによっては 対応外の torch が入る可能性がある(torchがcuda-13.2を要求するが nvidiaが 550(cuda-12.4) なら動かない)
その際は
uv pip uninstall torch
uv pip install torch --torch-backend=cu124として対応cudaライブラリ向けのtorchを入れる.
使用する際は
[saber@r9 ~]$ cd DISCO
[saber@r9 DISCO]$ source .venv/bin/activateとしてから使用します。
終わったら
(DISCO) [saber@r9 DISCO]$ deactivate
[saber@r9 DISCO]$で環境を下ります。