【AlphaFold3】开源本地的安装及使用

news/2024/11/15 18:15:33/

文章目录

  • 安装
    • 安装Docker
      • Installing Docker on Host
      • 启用Rootless Docker
    • 安装 GPU 支持
      • 安装 NVIDIA 驱动程序
      • 安装 NVIDIA 对 Docker 的支持
    • 获取 AlphaFold 3 源代码
    • 获取基因数据库
    • 获取模型参数
    • 构建将运行 AlphaFold 3 的 Docker 容器
  • 参考

AlphaFold3:
https://github.com/google-deepmind/alphafold3

安装

参考官方文档:安装并运行您的第一个预测
本教程使用WSL2-Ubuntu22.04

安装Docker

Installing Docker on Host

参考Docker官方:
https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

  1. 设置 Docker 的apt存储库。
# 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
  1. 安装 Docker 软件包。
    安装最新版本:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 通过运行hello-world映像来验证安装是否成功:
sudo docker run hello-world

此时报错:
在这里插入图片描述
解决方法:
换源

sudo vim /etc/docker/daemon.json

查询网络各种方法,改用阿里云镜像均不成功
从闲鱼上买了个源成功了= =’
换源后记得重启:

sudo service docker restart

需注意:!
如果是一般的Linux操作系统,可能是因为Linux中没有使用systemd,想用systemd命令来管理Linux上的服务,因此会报错,很可能是使用的是经典的SysV init(sysvinit)系统。
本教程使用window11下WSL2的Ubuntu,就会使SysV init而不是systemd。
解决方法:
更换命令,用SysV init的命令代替systemd的
在这里插入图片描述

启用Rootless Docker

安装 GPU 支持

安装 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.

此步骤个人之前已实现,详见:
CUDA升级/安装/使用 最新说明记录

有以下输入表明安装成功,才可以继续。

安装 NVIDIA 对 Docker 的支持

获取 AlphaFold 3 源代码

git clone https://github.com/google-deepmind/alphafold3.git

或手动下载:
在这里插入图片描述

获取基因数据库

此步骤需要curlzstd安装在您的计算机上

# 检查是否安装
curl -V
zstd -V
#sudo apt install zstd

AlphaFold 3 需要多个遗传(序列)蛋白质和 RNA 数据库才能运行:

  • BFD small
  • MGnify
  • PDB (structures in the mmCIF format)
  • PDB seqres
  • UniProt
  • UniRef90
  • NT
  • RFam
  • RNACentral

官方提供了一个 Python 程序fetch_databases.py,可用于下载并设置所有这些数据库。如果不在本地SSD上安装,这个过程大约需要45分钟。我们建议在 screentmux会话中运行以下命令,因为下载和解压缩数据库需要一些时间。

cd alphafold3  # cd 到包含AlphaFold 3存储库的目录
python3 fetch_databases.py --download_destination=<DATABASES_DIR>

此脚本从 GCS 上托管的镜像下载数据库,其中包含所有 版本与 AlphaFold 3 论文中使用的版本相同。
Note: 下载目录<DATABASES_DIR>不应是AlphaFold 3存储库目录中的子目录。如果是这样,Docker构建将很慢,因为大型数据库将在映像创建过程中被复制。
Note: 完整数据库的总下载大小约为252 GB,解压缩后的总大小为630 GB。
请确保您有足够的硬盘空间、带宽和时间来下载。我们建议使用SSD以获得更好的基因搜索性能,以及fetch_databases.py的更快运行时间。
Note: 如果下载目录和数据集没有完全的读写权限,可能会导致MSA工具出现错误,错误消息不明确。请确保应用了所需的权限,例如使用sudo chmod 755 --recursive <DATABASES_DIR>命令。
在这里插入图片描述
脚本完成后,应该拥有以下目录结构:

pdb_2022_09_28_mmcif_files.tar  # ~200k PDB mmCIF files in this 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

获取模型参数

可参考:AlphaFold 3 权重申请指南

构建将运行 AlphaFold 3 的 Docker 容器

参考

[1]AlphaFold3 最全食用指南
[2]window10下WSL使用Ubuntu报错: System has not been booted with systemd as init system (PID 1)
[3]如何修复 System has not been booted with systemd 报错信息?
[4]
[5]
[6]


http://www.ppmy.cn/news/1547249.html

相关文章

电子电气架构 --- 基于以太网的电子电气架构概述

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 所有人的看法和评价都是暂时的&#xff0c;只有自己的经历是伴随一生的&#xff0c;几乎所有的担忧和畏惧…

ArkTS学习笔记:ArkTS起步

ArkTS是HarmonyOS的主力应用开发语言&#xff0c;基于TypeScript扩展&#xff0c;强化了静态检查和分析&#xff0c;旨在提升程序稳定性和性能。它采用静态类型&#xff0c;禁止运行时改变对象布局&#xff0c;并对UI开发框架能力进行扩展&#xff0c;支持声明式UI描述和自定义…

批量重命名Excel文件并排序

批量重命名Excel文件并排序 python环境&#xff1a;3.5.2 import os import logging# 配置日志记录 logging.basicConfig(levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s)def rename_files_with_sequence(directory):# 检查文件夹是否存在if not os.pa…

Spring Boot 应用程序中集成 Redis 并实现存储读取字符串或者复杂对象

步骤如下&#xff1a; 1. 添加依赖 确保你的 pom.xml 中包含以下依赖&#xff1a; <dependencies><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web<…

Spring Plugin与策略模式:打造动态可扩展的应用

目录 一、策略模式 二、Spring Plugin 2.1 Spring Plugin 实现策略模式开发 2.2 策略模式优缺点 三、Spring Plugin 原理 一、策略模式 策略模式是一种设计模式&#xff0c;它允许程序在运行中动态的选择不同的行为方式进行动态执行。策略模式的核心思想是将行为封装在一个个…

表的数据结构和常见操作

在计算机科学中&#xff0c;表数据结构是一种用于组织和存储数据的方式&#xff0c;它具有行和列的形式&#xff0c;类似于电子表格或数据库表。表数据结构可以用于多种用途&#xff0c;具体取决于实现和使用场景。以下是几种常见的表数据结构&#xff1a; ### 1. 数组&#x…

Linux Kernel Programming 2

目录 书写内核框架 起手我们需要理解的是&#xff1a;用户态和内核态 库和系统调用 API 内核空间组件 探索 LKM&#xff08;Linux Kernel Module体系&#xff09; LKM 框架 内核源代码树中的内核模块 modinfo 动手&#xff01;写年轻人的第一个内核模块程序 先试试看&…

NFS-Ganesha 核心架构解读

NFSv4 简要概述 NFS 这个协议( NFSv2 )最初由 Sun Microsystems 在 1984 年设计提出&#xff0c;由于存在一些不足&#xff0c;因此在随后由几家公司联合推出了 NFSv3。到了 NFSv4 时&#xff0c;开发完全由 IETF 主导&#xff0c;设计目标是&#xff1a; 提高互联下的 NFS 访…