#author("2026-06-13T13:01:49+00:00","default:sysosa","sysosa") #author("2026-06-13T13:02:42+00:00","default:sysosa","sysosa") github [[https://github.com/DISCO-design/DISCO>+https://github.com/DISCO-design/DISCO]] Code for the DISCO model: General Multimodal Protein Design Enables DNA-Encoding of Chemistry ***uv [#ca3018e5] uvコマンドを使って構築するのですが、このuvは初めて、いつものpyenv/condaをからenvironment-modulesに持っていくようにしたい #code(nonumber){{ [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」として #code(nonumber){{ #%Module1.0 prepend-path PATH /apps/uv/0.11.20/bin }} またpythonもOS由来ではない別のバージョンを使いたいので #code(nonumber){{ [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を入れて置く ***インストール [#bb4aac2d] っでDISCOのインストール #code(nonumber){{ [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/ }} ちょいと確認 #code(nonumber){{ [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にも影響する. #code(nonumber){{ [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]# }} #code(nonumber){{ [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]# }} #code(nonumber){{ [root@r9 ~]# git clone https://github.com/NVIDIA/cutlass.git /apps/cutlass }} pyproject.tomlがある場所で「uv sync」を行うと.venvができる 「/apps/modulefiles/DISCO」 #code(nonumber){{ #%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 }} ***てすと [#q21ddfc1] #code(nonumber){{ [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)\] }} ***メモ [#f0c48693] cu13のライブラリが入ってしまいますが、もしGPU的に cuda-12.4 がいいのなら #code(nonumber){{ uv pip uninstall torch uv pip install torch --torch-backend=cu124 }} とする. この場合、/usr/localに cuda-12.4 のcuda-toolkitを入れてmodule load 可能なようにする ***ほんらいなら [#v0b845c5] ***本来、ユーザ側がホームディレクトリにインストールするみたい [#g8cd2507] ユーザ側でインストールして使うみたい. ここではrootで/appsに入れていますが。 #code(nonumber){{ [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) なら動かない) その際は #code(nonumber){{ uv pip uninstall torch uv pip install torch --torch-backend=cu124 }} として対応cudaライブラリ向けのtorchを入れる. 使用する際は #code(nonumber){{ [saber@r9 ~]$ cd DISCO [saber@r9 DISCO]$ source .venv/bin/activate }} としてから使用します。 終わったら #code(nonumber){{ (DISCO) [saber@r9 DISCO]$ deactivate [saber@r9 DISCO]$ }} で環境を下ります。