boltz(Boltz-1)を使って生体分子相互作用モデリングを行う

初めに

Boltz-1は、タンパク質、RNA、DNA、小分子などの生体分子の3D構造を予測することができます。面白そうなので実際に実行してみます

github.com

以下で実際に動かしたuv環境をアップロードしています。(公式をforkしてuvでライブラリのver固定したもの)

github.com

開発環境

セットアップ

まずは ReadMe通りにセットアップを行います。

git clone https://github.com/jwohlwend/boltz.git
cd boltz

次にuvの環境を作ります

uv venv -p 3.11
source .venv/bin/activate

次にデフォルトのライブラリを入れます

uv pip install -e .

手元の環境だとtorchがCUDA対応のものがデフォルトでインストールされず、そのまま推論するとGPUが対応していないというエラーになったので、torchをCUDA対応のものにします

uv pip install torch  --index-url https://download.pytorch.org/whl/cu121 --force-reinstall

タンパク質とリガンド(分子)の情報から推論

以下の examples/ligand.yaml を使って推論を行います

version: 1  # Optional, defaults to 1
sequences:
  - protein:
      id: [A, B]
      sequence: MVTPEGNVSLVDESLLVGVTDEDRAVRSAHQFYERLIGLWAPAVMEAAHELGVFAALAEAPADSGELARRLDCDARAMRVLLDALYAYDVIDRIHDTNGFRYLLSAEARECLLPGTLFSLVGKFMHDINVAWPAWRNLAEVVRHGARDTSGAESPNGIAQEDYESLVGGINFWAPPIVTTLSRKLRASGRSGDATASVLDVGCGTGLYSQLLLREFPRWTATGLDVERIATLANAQALRLGVEERFATRAGDFWRGGWGTGYDLVLFANIFHLQTPASAVRLMRHAAACLAPDGLVAVVDQIVDADREPKTPQDRFALLFAASMTNTGGGDAYTFQEYEEWFTAAGLQRIETLDTPMHRILLARRATEPSAVPEGQASENLYFQ
      msa: ./examples/msa/seq1.a3m
  - ligand:
      id: [C, D]
      ccd: SAH
  - ligand:
      id: [E, F]
      smiles: N[C@@H](Cc1ccc(O)cc1)C(=O)O

上記は以下の内容をしているみたいです(o1より)

1. タンパク質
yaml
- protein:
    id: [A, B]
    sequence: MVTPEGNVSLVDESLLVGVTD...
    msa: ./examples/msa/seq1.a3m
ID: [A, B] はタンパク質の鎖(チェーン)IDを示しています。
アミノ酸配列: MVTPEGNVSLVDESLLVGVTD... はタンパク質の一次構造(アミノ酸配列)です。
MSAファイル: ./examples/msa/seq1.a3m は、この配列に対応する多重配列アラインメント(MSA)のファイルへのパスです。
具体的な物質名:

このアミノ酸配列は、実際のタンパク質を表しています。提供された配列をデータベースで検索すると、**ヒトのグルタチオン-S-トランスフェラーゼP(GSTP1)**に高い類似性が見られます。

2. リガンド1
yaml
- ligand:
    id: [C, D]
    ccd: SAH
ID: [C, D] はリガンドのチェーンIDを示しています。
CCD: SAH は、PDBのChemical Component Dictionary(化学成分辞書)における3文字コードです。
具体的な物質名:

SAH は S-アデノシル-L-ホモシステイン(S-Adenosyl-L-homocysteine) を示します。
S-アデノシル-L-ホモシステインは、生体内で重要なメチル基供与体であるS-アデノシルメチオニン(SAM)の脱メチル化産物です。
3. リガンド2
yaml
- ligand:
    id: [E, F]
    smiles: N[C@@H](Cc1ccc(O)cc1)C(=O)O
ID: [E, F] はリガンドのチェーンIDを示しています。
SMILES: N[C@@H](Cc1ccc(O)cc1)C(=O)O は化合物の化学構造を表すSMILES表記です。
具体的な物質名:

SMILES表記 N[C@@H](Cc1ccc(O)cc1)C(=O)O は、以下の化合物を表します。

L-チロシン(L-Tyrosine)
L-チロシンは、芳香族アミノ酸の一つであり、タンパク質を構成する20種類の標準的なアミノ酸の一つです。

まとめ
このデータは、以下の生体分子を記述しています。

タンパク質: 推定では、ヒトのグルタチオン-S-トランスフェラーゼP(GSTP1)
リガンド1: S-アデノシル-L-ホモシステイン(SAH)
リガンド2: L-チロシン

この内容を指定して、以下で推論を実行します

boltz predict examples/ligand.yaml

モデルのダウンロードが始まった後に推論の処理がされます

結果

以下のようなファイルが生成されます

ASEを使ってモデルをプレビューします

uv pip install ase

備考

clang不足エラー

インストール時に以下のような clangが入っていないエラーが出た場合は、インストールをしていきます

エラー内容

copying ihm/util/make_mmcif.py -> build/lib.linux-x86_64-cpython-311/ihm/util
running build_ext
building 'ihm._format' extension
clang -pthread -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -fPIC -Isrc -I/home/aihub-user/.cache/uv/builds-v0/.tmpADb75S/include -I/home/aihub-user/.local/share/uv/python/cpython-3.11.10-linux-x86_64-gnu/include/python3.11 -c src/ihm_format.c -o build/temp.linux-x86_64-cpython-311/src/ihm_format.o

[stderr]
error: command 'clang' failed: No such file or directory

インストールコマンド

sudo apt-get install clang