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が動く世代を選びましょう
ワイのGeForce4090であればAda Lovelaceであるので、CUDAの11.8以降であれば対応しています。公式ドキュメントではCUDA12.6で動作確認しているようなので、それに従います
WSLの構築をする
とてもためになる参考サイト。今回はUbuntu 20.04をインストール
#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関連ソフトを削除する
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
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のアクセス権限を変更
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からとってきました
{
"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ファイルを読み込んで結果が出力されたら成功です!
やったー!!!!できた!!!
カラー化などの課題はありますが、とりあえずこれでローカル環境でAlphafold3が動きました
試行錯誤しながらなので
・ここに書いてあるけどいらないこと
・ここに書いてないけどいること
があるかもしれませんので、何かあればコメントいただければと思います
アクセスや権限の関係で難渋しました…こういう、記載外のトラブルが環境構築を難しくするんですよね…笑
記載以外にも数多くのWebサイトを参考にしましたので、お礼申し上げます
とにかくこれでワイもAlphafold3ユーザーの仲間入りです
ほかの設定についてはまた勉強していければと思います
結論としては、Dockerすごい!というオチか…?