#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]$
}}
で環境を下ります。
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS