AlphaFold3中文安装教程

目录

  • 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 GBBFD 是通过对 25 亿个蛋白质序列聚类而创建的
MGnify微生物来源的核酸序列
PDB (mmCIF)PDB 收集了蛋白结构的实验数据
PDB seqres见上
UniProtuniprot存储蛋白的序列、功能等多种注释信息
UniRef90UniRef 提供来自 UniProtKB 的序列聚类
NTNCBI核苷酸序列库
RFamRfam:RNA 家族的集合
RNACentralRNAcentral:ncRNA序列数据库

然后,调用fetch_databases.py下载上述数据库。该脚本从GCS上镜像下载的数据库,所有版本均与 AlphaFold3论文中使用的版本相同。

cd alphafold3
python3 fetch_databases.py --download_destination=<DATABASES_DIR>

①下载目录 <DATABASES_DIR> 不应该是 AlphaFold3 代码库目录下的子目录。否则 Docker 构建速度会很慢,因为大型数据库会在镜像创建过程中被复制。
②完整数据库的下载总大小 ~252 GB,解压缩后的总大小为 ~630 GB。请确保有足够的硬盘空间、带宽和时间进行下载。建议使用固态硬盘,以获得更好的基因搜索性能和更快的运行速度。建议在screentmux会话中运行,因为下载和解压数据需要一些时间。
③如果下载目录和数据集没有完整的读写权限,可能会导致 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

参考资料

官方文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/13259.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaSE】多线程案例---阻塞队列

1. 阻塞队列 阻塞队列是一种特殊的队列&#xff0c;也遵守 " 先进先出 " 的原则。 阻塞队列是一种线程安全的数据结构&#xff0c;并且具有以下特性&#xff1a; 1. 当队列为满时&#xff0c;继续进行入队列操作就会阻塞&#xff0c;直到有其他线程从队列中取走元素…

SQL练习(2)

题源&#xff1a;牛客官网 选择题 假设创建新用户nkw&#xff0c;现在想对于任何IP的连接&#xff0c;仅拥有user数据库里面的select和insert权限&#xff0c;则列表语句中能够实现这一要求的语句是&#xff08;&#xff09; A grant select ,insert on *.* to nkw% B grant…

Hyper-v中ubuntu与windows文件共享

Hyper-v中ubuntu与windows文件共享 前言相关链接第一步--第一个链接第二步--第二个链接测试与验证 前言 关于Hyper-V的共享我搞了好久&#xff0c;网上的很多教程太过冗余&#xff0c;我直接采用最简单的办法吧 相关链接 Hyper-V中Ubuntu 同windows系统共享文件夹-百度经验 …

【TCP零窗口问题】

零窗口问题说明 零窗口问题(Zero Window Problem)是指在TCP连接中,当接收方的接收缓冲区已满时,无法接受新的数据。此时,接收方会向发送方发送一个窗口大小为0的TCP消息,告知其暂停发送数据,直到接收方释放出缓冲区空间。这种情况在高负载或接收方处理能力不足时比较常见…

Oracle OCP认证考试考点详解082系列19

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 91. 第91题&#xff1a; 题目 解析及答案&#xff1a; 关于 Oracle 数据库中的索引及其管理&#xff0c;以下哪三个陈述是正确的&#x…

2445.学习周刊-2024年45周

一片树叶展示了秋天的美 ✍优秀博文 数据仓库如何划分主题域在忙碌的工作中如何保持信息的输入&#xff1f;PC小米妙享安装解锁流转补丁智能数据建设与治理Dataphin对方讲话不要乱插嘴轩师处世之道 ✍实用工具 typing-practice云搭 自动化巡检系统 ✍精彩言论 话说的越快、…

关于解决使用VMWare内的虚拟机无法识别USB问题小结

目录 前言 0. 查看是不是没有开启USB3.0的支持 1. 检查一下是否禁用了VMWare USB服务 2. 无奈之举 前言 笔者今天帮助一位同志解决了VMWare内的虚拟机不识别挂载设备的办法。这里对笔者使用的排查手段做一个总结。 0. 查看是不是没有开启USB3.0的支持 我们的第一件事情就…

【364】基于springboot的高校科研信息管理系统

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…

RN codegen编译报错

react-native codegen 编译报错 error: redefinition of ‘NativeAccessibilityInfoSpecJSI’ class JSI_EXPORT NativeAccessibilityInfoSpecJSI : public JavaTurboModule 解决&#xff1a; codegen不能和项目本身一起编译&#xff0c;先执行./gradlew clean&#xff0c;然…

大数据技术之Hadoop :我是恁爹

就如上图中的技术分类&#xff0c;大数据技术主要解决的就是海量数据的存储和计算问题。 这两个问题的解决方案最先被 Google 被提出&#xff0c;用于解决 Google 搜索引擎海量的网页存储和索引的构建。对应的技术就是日后被人所熟知的 HDFS 和 MapReduce。 不关注大数据的可…

ATAT-mcsqs生成准随机结构(SQS)更新

通常使用第一性原理计算某些多元素占据原胞中同一位置的结构会优先考虑使用准随机结构&#xff08;special quasirandom structure&#xff0c;SQS&#xff09;来进行模拟建模。此篇教程意在整理一个较为简便的操作流程&#xff0c;以供参考。 合金理论自动化工具包(ATAT)1是一…

人际交往中,想要有好人缘,需做到“三要”,做到一个,也是好事

人际交往中&#xff0c;想要有好人缘&#xff0c;需做到“三要”&#xff0c;做到一个&#xff0c;也是好事 在这个世上&#xff0c;每个人都是一座孤岛&#xff0c;但通过人际交往这座桥梁&#xff0c;我们能够彼此相连&#xff0c;共同编织出一张温暖的社会网络。 好人缘&a…

政务数据治理专栏开搞!

写在前面 忙忙碌碌干了一年政务数据治理的工作&#xff0c;从法人数据到自然人&#xff0c;从交通到地理信息等等&#xff0c;突发想法开一个专栏讲一讲政务数据遇到的问题&#xff0c;以及治理的成效&#xff0c;或许有朋友爱看。 政务数据&#xff0c;又称之为政务数据资源&a…

Linux最深刻理解页表于物理内存

目录 物理内存管理 页表设计 物理内存管理 如果磁盘上的内容加载到物理内存上&#xff0c;每次io都会按照4kb的方式进行加载(可能不同版本系统有些区别)。所以我们的物理内存上的内容也是4个字节进行管理的。 而每个页框都需要我们进行管理。所以自然物理内存就会对页框进行先…

一键高效管理:苹果手机如何一键删除照片

在我们的日常生活中&#xff0c;苹果手机不仅是沟通的工具&#xff0c;更是捕捉和保存生活瞬间的重要设备。随着时间的推移&#xff0c;数以千计的照片积累在设备中&#xff0c;这不仅占用了大量的存储空间&#xff0c;也可能影响设备的性能。本文将详细介绍苹果手机如何一键删…

C++:类和对象(二)

C&#xff1a;类和对象&#xff08;二&#xff09; 类的默认成员函数构造函数析构函数拷贝构造函数 类的默认成员函数 默认成员函数就是用户没有显式实现&#xff0c;编译器会自动生成的成员函数称为默认成员函数。⼀个类&#xff0c;我们不写的情况下编译器会默认生成以下6个…

机器学习(基础2)

特征工程 特征工程:就是对特征进行相关的处理 一般使用pandas来进行数据清洗和数据处理、使用sklearn来进行特征工程 特征工程是将任意数据(如文本或图像)转换为可用于机器学习的数字特征,比如:字典特征提取(特征离散化)、文本特征提取、图像特征提取。 特征工程API 实例化…

ts中的元组概念解释(tuple)

用于定义数组每个元素的类型 元组 (Tuple) 是⼀种特殊的数组类型&#xff0c;可以存储固定数量的元素&#xff0c;并且每个元素的类型是已知的且可以不同。元组⽤于精确描述⼀组值的类型&#xff0c; ? 表示可选元素 1&#xff0c;正常写法 let list1 :[string,number] li…

Rust,删除cargo安装的可执行文件

列出安装的文件列表 cargo install --list 删除 rm /Users/ry/.cargo/bin/fancy

数据库中生成主键的方式及其优缺点

数据库中生成主键的方式及其优缺点 一、自动增长(AUTO_INCREMENT) 使用方法&#xff1a;设置auto_increment 实现数据表自增&#xff1b; 优点&#xff1a; 简单易用&#xff1a;自增主键是一种简单的方式&#xff0c;只需在数据库表中设置自增属性即可&#xff0c;无需在代…