由于docker很多次失败,最终删掉了所有东西,重装了,但是码了这么多字舍不得删掉,仅供参考!!
1.基础准备
Alphafold3官方建议的硬件要求
CPU:至少8核
GPU:计算能力至少为8.0的NVIDIA GPU,并且正确安装NVIDIA驱动
显存:推荐80GB
内存:至少64GB
存储:至少1TB SSD
本文演示的操作系统及硬件
操作系统:Ubuntu 20.04
Python:3.8或3.9
NVIDIA-SMI:输入命令查看
nvidia-smi
CUDA Toolkit:按照NVIDIA 官网命令执行
官方安装教程
https://github.com/google-deepmind/alphafold3/blob/main/docs/installation.md
2.更新系统&安装必要工具
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential cmake wget git python3-dev python3-pip python-is-python3
3.安装CUDA和cuDNN,安装NVIDIA官网命令
4.安装Python依赖
pip install --upgrade pip
pip install numpy scipy biopython absl-py jax jaxlib[CUDA] --extra-index-url https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
5.安装miniconda3
#切换到目标目录下
cd home/test/alphafold3
#下载
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
#给下载的脚本文件添加执行权限,并运行
chmod +x Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
#默认yes,并确认conda是否安装,返回值应该是conda 版本号
conda --version
#创建虚拟环境防止冲突
conda create --name af3
#激活环境
conda activate af3
6.Installing Docker(适应Ubuntu 22.04 LTS)
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
#下面会遇到被docker.com被对方服务器重置
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
#更换使用wget下载ok
sudo apt install wget -y
sudo wget -O /etc/apt/keyrings/docker.asc https://download.docker.com/linux/ubuntu/gpg
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
bug - 这步会遇到:
解决方法:
1.上面的提示Docker 的软件包已经安装成功,但运行容器时提示无法连接到 Docker docker daemon。这个问题可能是因为 Docker 服务未启动或当前用户没有权限访问 Docker。
#查看docker状态 是failed
sudo systemctl status docker
#启动
sudo systemctl start docker
#设为开机自启动
sudo systemctl enable docker
#再次启动
sudo docker run hello-world
#一样报错
#确保用户有权限运行 Docker
sudo groupadd docker
sudo usermod -aG docker $USER
#执行完后,退出当前终端并重新登录,或运行命令使更改生效
newgrp docker
#再次运行
docker run hello-world
报错:拉取镜像时网络超时
2.解决办法:换源,这里换了阿里、网易等三种都一样的问题,咸鱼买了一个源,不赘述:
#阿里
https://registry.cn-hangzhou.aliyuncs.com
#DaoCloud Docker
https://www.daocloud.io/mirror
#网易
https://hub-mirror.c.163.com
7.配置alphafold3
1.数据库
#从github获取af3数据库
git clone https://github.com/google-deepmind/alphafold3.git $HOME/alphafold/alphafold3
#进入alphafold3代码库,启用tmux运行脚本fetch_databases.sh,下载AlphaFold3运行依赖的蛋白质和RNA序列数据库并解压
cd $HOME/alphafold/alphafold3
tmux new -d -s download_session "bash ./fetch_databases.sh $HOME/alphafold/database"
2.权重文件
2.三到五个工作日收到回复,下载,解压上传至服务器并保存到指定目录models

zstd -d af3.bin.zst -o $HOME/alphafold/models/af3.bin
8.构建将运行 AlphaFold 3 的 Docker 容器
#注意路径
docker buildx build -t alphafold3 -f /home/test/alphafold/alphafold3-main/docker/Dockerfile /home/test/alphafold/alphafold3-main
bug - 卡在14/15 报错,要问题是 pip3 install --no-deps
网络问题或依赖关系导致的超时和失败:
解决办法:修改dockfile:
bug - abseil-cpp库报错,尝试多次未果最终手动下载zip并解压(哪个包有问题都可以这样处理)
mkdir -p build/_deps/abseil-cpp-src
cd build/_deps/abseil-cpp-src
unzip abseil-cpp-master.zip
修改dockfile文件中abseil-cpp
# copy abseil-cpp的本地目录到docker里
COPY ./build/_deps/abseil-cpp-src/abseil-cpp-master /app/alphafold/build/_deps/abseil-cpp-src/abseil-cpp-master
# 添加 CMake 环境变量,指向正确的 abseil-cpp 目录
ENV CMAKE_PREFIX_PATH="/app/alphafold/build/_deps/abseil-cpp-src/abseil-cpp-master:$CMAKE_PREFIX_PATH"
手动下载文件夹记得初始化为初始化为 Git 仓库(这里给一个通用的步骤)
#进入目标文件下夹
cd /path/to/your/folder
#初始化为本地仓
git init
#配置用户名和邮箱(如果未全局配置),如果不需要全局配置,可以去掉 --global 参数
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
#将当前文件夹下的所有文件和子文件夹添加到 Git 的索引中
git add .
#将本地仓库关联到一个远程仓库GitHub
git remote add origin https://github.com/username/repository.git
这里附上最终版的dockfile文件内容:(希望看到此篇的你萌不会遇到这么多问题!!)
RUN pip install .
# 设置国内镜像加速
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装构建依赖
#RUN pip3 install scikit-build-core pybind11 cmake ninja numpy packaging pathspec
RUN pip install scikit-build-core setuptools wheel pybind11 cmake ninja
# Install the Python dependencies AlphaFold 3 needs.
RUN pip3 install -r dev-requirements.txt
# Build chemical components database (this binary was installed by pip).
RUN python3.11 -m alphafold.data.build_data
虽然已经手动下载并安装且初始化过anseil-cpp,但是dockerfile仍然尝试重新git clone,并没有使用本地路径的文件,检查可能是cmake未激活。
(这里这里一直失败,所以删掉重装了,码了这么多字不舍得删掉,留着供参考)
9.构建 Alphafold3 Singularity镜像
在科研和 HPC 中使用,推荐 Singularity;开发应用或微服务则选 Docker
1.安装GO
# 在 ~ 下创建 go 文件夹,并进入 go 文件夹
mkdir ~/go && cd ~/go
# 下载的 go 压缩包
wget https://go.dev/dl/go1.23.4.linux-amd64.tar.gz
执行tar解压到/usr/loacl目录下(官方推荐),得到go文件夹等
tar -C /home/test/go -zxvf go1.23.4.linux-amd64.tar.gz
#将环境变量设置为指向Go:PATH
echo 'export PATH=/home/test/go/go/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
go version
2.安装Singularity
https://github.com/sylabs/singularity/releases?login=from_csdn
# 下载后上传到服务器目录Singularity下并解压
tar -xvzf singularity-ce-4.2.1.tar.gz
#注意路径
cd singularity-ce-4.2.1
./mconfig
bug - 报错:
sudo apt-get install libseccomp-dev
#重新运行
./mconfig
bug - 报错:
sudo apt-get install libglib2.0-dev
#重新运行
./mconfig
bug - 报错:
sudo apt-get install libfuse-dev
sudo apt-get install libfuse3-dev
#重新运行mconfig 执行后没有问题,会在当前目录中生成 builddir 目录
./mconfig
make -C builddir && \
sudo make -C builddir install
sudo apt install singularity
#查看是否安装成功
singularity --version