目录
- 1. 推荐配置
- 2. 安装说明
- 1)配置机器(云或本地)
- 2)安装 Docker
- 3)为 A100 安装 NVIDIA 驱动程序
- 4)获取代码库和基因数据库★
- 5)获取模型参数☆
- 6)构建 AlphaFold3 的 Docker 镜像★
- 参考资料
1. 推荐配置
配置项 | 推荐规格 |
---|---|
操作系统 | Linux |
硬盘空间 | > 1TB(存放数据库) |
内存 | > 64 GB(长输入会在基因搜索阶段消耗大量内存) |
NVIDIA显卡计算能力* | >=8.0 |
NVIDIA显卡内存 | 取决于输入,如 80 GB 的 A100/H100 可处理多达5120个tokens(氨基酸等)的输入。 |
*计算能力(Compute Capability)是 NVIDIA 显卡的一个技术指标,描述了 GPU 支持的功能和性能特性。通过 官网 可以查询显卡计算能力。
2. 安装说明
安装说明适用于安装了 NVIDIA A100 80 GB GPU 和 Ubuntu 22.04 LTS 的机器。其它配置的用户也可参考。
1)配置机器(云或本地)
以下命令演示了如何在谷歌云GCP上配置一台新机器。
gcloud compute instances create alphafold3 \--machine-type a2-ultragpu-1g \ #选择A2 Ultra规格*;对于小预测,也可用a2-highgpu-1g--zone us-central1-a \ #选择有配额的区域即可--image-family ubuntu-2204-lts \ #指定操作系统为 Ubuntu 22.04 LTS--image-project ubuntu-os-cloud \--maintenance-policy TERMINATE \--boot-disk-size 1000 \--boot-disk-type pd-balanced
*A2 Ultra规格:12 CPUs,170 GB内存,1 TB硬盘,NVIDIA A100 80 GB GPU。
2)安装 Docker
以下命令演示了在Ubuntu 22.04机器上以非root权限的方式安装docker。
# 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 "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world# Enabling Rootless 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'
3)为 A100 安装 NVIDIA 驱动程序
以下命令演示了安装 NVIDIA 驱动。
sudo apt-get -y install alsa-utils ubuntu-drivers-common
sudo ubuntu-drivers installsudo nvidia-smi --gpu-resetnvidia-smi # Check that the drivers are installed.
①如果出现 “Pending kernel upgrade” 对话框,请接受。
②如果看到以下警告,需要使用 sudo reboot now
重启实例以重置 GPU:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
以下命令演示了安装 NVIDIA 对 Docker 的支持。
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#检查容器是否支持GPU
#docker run --rm --gpus all nvidia/cuda:12.6.0-base-ubuntu22.04 nvidia-smi
4)获取代码库和基因数据库★
首先,下载 AlphaFold3
代码库。
git clone https://github.com/google-deepmind/alphafold3.git
AlphaFold3
的运行依赖以下多个基因(序列)蛋白质和 RNA 数据库。
数据库 | 大小 | 描述 |
---|---|---|
BFD small | ~272 GB | BFD 是通过对 25 亿个蛋白质序列聚类而创建的 |
MGnify | 微生物来源的核酸序列 | |
PDB (mmCIF) | PDB 收集了蛋白结构的实验数据 | |
PDB seqres | 见上 | |
UniProt | uniprot存储蛋白的序列、功能等多种注释信息 | |
UniRef90 | UniRef 提供来自 UniProtKB 的序列聚类 | |
NT | NCBI核苷酸序列库 | |
RFam | Rfam:RNA 家族的集合 | |
RNACentral | RNAcentral:ncRNA序列数据库 |
然后,调用fetch_databases.py
下载上述数据库。该脚本从GCS上镜像下载的数据库,所有版本均与 AlphaFold3
论文中使用的版本相同。
cd alphafold3
python3 fetch_databases.py --download_destination=<DATABASES_DIR>
①下载目录 <DATABASES_DIR> 不应该是 AlphaFold3 代码库目录下的子目录。否则 Docker 构建速度会很慢,因为大型数据库会在镜像创建过程中被复制。
②完整数据库的下载总大小 ~252 GB,解压缩后的总大小为 ~630 GB。请确保有足够的硬盘空间、带宽和时间进行下载。建议使用固态硬盘,以获得更好的基因搜索性能和更快的运行速度。建议在screen
或tmux
会话中运行,因为下载和解压数据需要一些时间。
③如果下载目录和数据集没有完整的读写权限,可能会导致 MSA 工具出错,出现晦涩的(外部)错误信息。请确保应用了所需的权限,如使用 sudo chmod 755 --recursive <DATABASES_DIR>
命令。
脚本完成下载后,目录结构如下:
- pdb_2022_09_28_mmcif_files.tar
- bfd-first_non_consensus_sequences.fasta
- mgy_clusters_2022_05.fa
- nt_rna_2023_02_23_clust_seq_id_90_cov_80_rep_seq.fasta
- pdb_seqres_2022_09_28.fasta
- rfam_14_9_clust_seq_id_90_cov_80_rep_seq.fasta
- rnacentral_active_seq_id_90_cov_80_linclust.fasta
- uniprot_all_2021_04.fa
- uniref90_2022_05.fa
5)获取模型参数☆
AlphaFold3
模型参数需要填写 表单 申请,由 DeepMind 自行决定是否授权。通常在 2-3 个工作日内回复请求。
6)构建 AlphaFold3 的 Docker 镜像★
以下命令演示了如何构建Docker镜像。
docker build -t alphafold3 -f docker/Dockerfile .
镜像构建完成后,运行AlphaFold3
。
docker run -it \--volume $HOME/af_input:/root/af_input \--volume $HOME/af_output:/root/af_output \--volume <MODEL_PARAMETERS_DIR>:/root/models \--volume <DATABASES_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