初めに
Boltz-1は、タンパク質、RNA、DNA、小分子などの生体分子の3D構造を予測することができます。面白そうなので実際に実行してみます
以下で実際に動かしたuv環境をアップロードしています。(公式をforkしてuvでライブラリのver固定したもの)
開発環境
- Ubuntu 22.02
セットアップ
まずは 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