0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AlphaFold3はWindows環境にインストールできるのか

Posted at

AlphaFold3という面白いたんぱく質(+DNAやリガンド)の構造予測機がグーグルから2024年に発表されてたんですね
生命科学系ワイ、インストールしようとしたらさ、Linuxサポート、他のOSは知らんっていうじゃん…
Windows信者ワイ、なんとかWindows環境でインストールできないかやってみます
なお、ワイはLinuxについてはcdコマンドすら調べながらやる初心者です
(コマンドミスあったらごめんなさい、またセキュリティやネットワークのことはよくわかってません)

ワイの環境は
GeForce4090
メモリ128GB
Windows11 pro
となっております

基本的な参考URLは以下、あとは適宜記載(URLなどは正しいもののつもりですが、特にダウンロード系は適切なURLかを適宜確認してくださいね)

予測に必要なモデルデータはAlphafoldのGithubページから飛べるフォームから申請して認可されることで入手できます
商用利用しない、などの宣誓が必要です

インストールはこのページに基づく感じかな?

・Linuxが走るマシンを用意しよう
・1TB以上のSSD
Compute Capabilityが8.0以上のNVIDIAのGPU(CUDA 12.6が動くことを確認するのが無難)
・メモリは64GB以上
とのこと

CUDAの参考情報を以下に

CUDAはGPUを並列計算に使うために必要なAPIですね
GPUは十分なRAMを持ち、適切なCUDAが動く世代を選びましょう

image.png

image.png

ワイのGeForce4090であればAda Lovelaceであるので、CUDAの11.8以降であれば対応しています。公式ドキュメントではCUDA12.6で動作確認しているようなので、それに従います

WSLの構築をする

とてもためになる参考サイト。今回はUbuntu 20.04をインストール

WSL構築
#WSLをインストールして、対応するLinux一覧を確認したらLinux_nameをインストールする
wsl --install
wsl --list --online
wsl --intall Linax_name

#インストールされたLinuxを確認する
wsl -l -v

#Linuxを起動する
wsl -d Linax_name

Dockerのインストールをする

ここからはWSL上で作業をします
公式

参考になる解説

Dockerのインストール
#衝突を避けるためにすでにインストールされているDocker関連ソフトを削除する
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

#公開鍵関係のことをやっている様子(GPG関係)
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

#Dockerのインストール
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

#正しくインストールされていることの確認
sudo docker run hello-world

#ルートレスDockerの有効化(何をやっているのかは全くわからん)
sudo apt-get install -y uidmap systemd-container
sudo machinectl shell $(whoami)@ /bin/bash -c 'dockerd-rootless-setuptool.sh install && sudo loginctl enable-linger $(whoami) && DOCKER_HOST=unix:///run/user/1001/docker.sock docker context use rootless'


GPUサポートのインストール

NVIDIA driver

NVIDIAドライバーのインストールは買った時点でしてくれていたようなのでパス。
多分Windowsの方からインストールしても問題なさそう

nvidia-smiコマンドが意味のある返答を返すことは確認しておく

NVIDIA Container Toolkit

AlphaFold3のGithubからほぼコピペ。

/etc/nvidia-container-runtime/config.toml
内の以下の書き換えが必要
no-cgroups = false

NVIDIA Container Toolkit
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
systemctl --user restart docker

#この行は何をやっているかよくわからないが、必須ではなさそう
sudo nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place

#動作確認
docker run --rm --gpus all nvidia/cuda:12.6.0-base-ubuntu22.04 nvidia-smi

AlphaFoldソースコードのダウンロード

DeepmindのGithubからWindowsでダウンロードすればよい

git clone https://github.com/google-deepmind/alphafold3.git
を実行すればよい
Linuxのホームディレクトリに移動して実行
ホームディレクトリにalphafold3のデータがダウンロードされました

wget zstdのダウンロード

sudo apt install wget zstdを実行します

fetch_databases.shの実行

Alphafold3フォルダに移動したはず

fetch_databases.shの実行
#アクセス権限がなくて難渋しましたが、fetch_databases.shのアクセス権限を変更
chmod 755 fetch_databases.sh

#homeディレクトリ下にpublick_databesesというフォルダを作ってデータベースをダウンロード
./fetch_databases.sh
  • AlphaFold3ディレクトリの直下にダウンロードしないこと(Dockerが超遅くなる)
  • 解凍前で252GB、解凍したら630GBになるのでダウンロードに時間がかかるのと、SSDへのダウンロードが望ましい
  • 必要に応じsudo chmod 755 --recursiveなどで適切なアクセス権限に変更すること

モデルの解凍

DeepMind社への申請が通ればメールが来ますので、そこに記載のリンクからモデルをダウンロード
$HOME/modelsにダウンロードしたモデルをコピー、そのフォルダに移動してzstd -d af3.bin.zstを実行します

af3.binというファイルができます

Dockerのビルド

AlphaFoldディレクトリ内に移動してからコマンドを打ち込む

ビルド
sudo docker build -t alphafold3 -f docker/Dockerfile .

Alphafoldの実行

サンプル用の入力データを作ります
Alphafold3のReadmeからとってきました

fold_input.json
{
  "name": "2PV7",
  "sequences": [
    {
      "protein": {
        "id": ["A", "B"],
        "sequence": "GMRESYANENQFGFKTINSDIHKIVIVGGYGKLGGLFARYLRASGYPISILDREDWAVAESILANADVVIVSVPINLTLETIERLKPYLTENMLLADLTSVKREPLAKMLEVHTGAVLGLHPMFGADIASMAKQVVVRCDGRFPERYEWLLEQIQIWGAKIYQTNATEHDHNMTYIQALRHFSTFANGLHLSKQPINLANLLALSSPIYRLELAMIGRLFAQDAELYADIIMDKSENLAVIETLKQTYDEALTFFENNDRQGFIDAFHKVRDWFGDYSEQFLKESRQLLQQANDLKQG"
      }
    }
  ],
  "modelSeeds": [1],
  "dialect": "alphafold3",
  "version": 1
}

実行までに難渋
多分アクセス権限の問題などでいろいろ難渋した感じです
管理者権限で実行

実行
#<MODEL_PARAMETERS_DIR>にはモデルを解凍したフォルダを入れます
#ワイの場合は$HOME/models
#<DB_DIR>にはデータベースを入れたフォルダを入れます
#標準では$HOME/public_databasesになるかと思います
#入力にはfold_input.jsonを使います(以下、入力ファイルと呼ぶ)
#あとはroot直下にaf_input,af_outputのフォルダを作成します
#root/af_inputフォルダ、$HOME/af_inputフォルダに入力ファイルを入れました
#sudo直下のフォルダ、ファイルは一応sudo chmod 777 ~ファイル/フォルダ名~で
#アクセス権限をゆるゆるにしておきました
#うまくいかない中での調整なのでここらへんのフォルダ関係はいらないかもしれません

sudo docker run -it \
    --volume $HOME/af_input:/root/af_input \
    --volume $HOME/af_output:/root/af_output \
    --volume <MODEL_PARAMETERS_DIR>:/root/models \
    --volume <DB_DIR>:/root/public_databases \
    --gpus all \
    alphafold3 \
    python run_alphafold.py \
    --json_path=/root/af_input/fold_input.json \
    --model_dir=/root/models \
    --output_dir=/root/af_output

うまくいくと$HOME/af_output内に予測結果が出力されました

結果を見る

結果はpymolやUCSF Chimeraなどのビューワーで見れるとのこと
pymolはライセンスが分かりにくく、とりあえず結果を見たかったので

からChimeraをダウンロードしてインストールしました
Chimeraからcifファイルを読み込んで結果が出力されたら成功です!

image.png

やったー!!!!できた!!!
カラー化などの課題はありますが、とりあえずこれでローカル環境でAlphafold3が動きました
試行錯誤しながらなので
・ここに書いてあるけどいらないこと
・ここに書いてないけどいること
があるかもしれませんので、何かあればコメントいただければと思います
アクセスや権限の関係で難渋しました…こういう、記載外のトラブルが環境構築を難しくするんですよね…笑
記載以外にも数多くのWebサイトを参考にしましたので、お礼申し上げます

とにかくこれでワイもAlphafold3ユーザーの仲間入りです
ほかの設定についてはまた勉強していければと思います

結論としては、Dockerすごい!というオチか…?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?