跳转至

蛋白质结构预测 AlphaFold2

一句话概述

AlphaFold2 是 DeepMind 开发的 AI 蛋白质结构预测工具,能从氨基酸序列直接预测出蛋白质的三维结构,2024年获诺贝尔化学奖。


核心知识点表格

知识点说明
AlphaFold2DeepMind 开发,2020年 CASP14 竞赛中碾压式胜出,预测精度接近实验解析
ColabFold社区版 AlphaFold2,用 MMseqs2 替代 BLAST 做序列搜索,速度更快、资源占用更少
MSA(多序列比对)AlphaFold2 的核心输入之一,通过同源序列推断进化信息
pLDDT 分数预测的局部置信度分数(0-100),>90 很可靠,<50 可能无序
PAE(预测对齐误差)衡量不同残基之间相对位置预测的可靠性,对多聚体尤其重要
EvoformerAlphaFold2 核心网络模块,处理 MSA 表示和残基对表示
结构模块将 Evoformer 输出转化为 3D 坐标
AlphaFold32024年发布的新版本,支持蛋白质-核酸-小分子复合物预测
ColabFold v2.3截至2026年的最新稳定版本(alphafold-colabfold 2.3.13)
AlphaFold DBEBI 维护,提供超过2亿个预测结构,可直接下载

白话解释原理

想象一下: 蛋白质就像一条长长的珠子链(氨基酸),它会自动折叠成特定的形状。这个形状决定了蛋白质能做什么工作。

AlphaFold2 做的事情就像是:给你一串珠子的颜色顺序(氨基酸序列),它能告诉你这串珠子最终会折叠成什么立体形状。

它是怎么做到的? 1. 先找"亲戚"——在数据库里找和你的蛋白质序列相似的蛋白质(MSA) 2. 从亲戚的进化信息中学习——哪些位置的氨基酸总是一起变化(共进化) 3. 用深度学习网络(Evoformer)综合所有信息 4. 最终输出3D坐标


各步骤详解

第一步:使用 ColabFold 在线预测(最简单)

白话解释: 不用装任何软件,打开浏览器就能用,适合预测少量蛋白质。

操作步骤:

# 1. 打开 ColabFold 笔记本
# 浏览器访问: https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb

# 2. 获取蛋白质序列
# 去 UniProt (https://www.uniprot.org/) 搜索你的蛋白
# 点击 FASTA 按钮,只复制序列部分(不要 > 开头的标题行)
# 例如: MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH...

# 3. 在 ColabFold 中粘贴序列
# query_sequence 框中粘贴你的序列
# jobname 填写任务名称,如 "my_protein"

# 4. 选择模型类型(Advanced Settings)
# auto — 自动选择(推荐)
# alphafold2_ptm — 单体蛋白预测
# alphafold2_multimer_v3 — 蛋白质复合物预测

# 5. 点击 Runtime > Run all,等待结果
# 短序列(<200aa): 约10-30分钟
# 长序列(>500aa): 可能需要数小时

第二步:本地安装 ColabFold(批量预测)

白话解释: 如果你有GPU服务器,可以本地安装,批量预测大量蛋白质。

# 1. 创建 conda 环境
conda create -n colabfold python=3.10  # 创建Python 3.10环境
conda activate colabfold  # 激活环境

# 2. 安装 ColabFold(pip方式)
pip install "colabfold[alphafold]"  # 安装ColabFold及其AlphaFold依赖

# 3. 下载 ColabFold 数据库(约100GB,需要耐心)
# 如果网络不好可以用代理
colabfold_batch --help  # 查看帮助信息

# 4. 准备输入文件(FASTA格式)
cat > my_proteins.fasta << 'EOF'
>protein_1
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH
>protein_2
MNIFEMLRIDEGLRLKIYKDTEGYYTIGIGHLLTKSPSLNAAKSELDKAIGRN
EOF

# 5. 运行预测
colabfold_batch \
    my_proteins.fasta \       # 输入FASTA文件
    output_dir/ \             # 输出目录
    --num-recycle 3 \         # 循环次数(默认3,越多越慢但可能更准)
    --model-type auto \       # 模型类型:auto自动选择
    --amber \                 # 使用AMBER力场优化结构
    --num-models 5            # 使用5个模型,取最佳结果

第三步:安装完整版 AlphaFold2(高级用户)

白话解释: 完整安装需要>3TB存储空间和强大GPU,一般用不到,科研机构用。

# 1. 克隆 AlphaFold2 仓库
git clone https://github.com/deepmind/alphafold.git  # 克隆官方代码
cd alphafold  # 进入目录

# 2. 使用 Docker 运行(推荐,避免依赖问题)
# 先安装 Docker 和 NVIDIA Container Toolkit
docker pull alphafold/alphafold:latest  # 拉取Docker镜像

# 3. 下载数据库(约2.6TB)
# 包括 BFD, MGnify, PDB70, UniRef90, UniProt 等
bash scripts/download_all_data.sh /data/alphafold_db  # 下载所有数据库

# 4. 运行预测
python docker/run_docker.py \
    --fasta_paths=input.fasta \           # 输入序列
    --max_template_date=2024-01-01 \      # 模板截止日期
    --data_dir=/data/alphafold_db \       # 数据库路径
    --output_dir=output/ \                # 输出路径
    --model_preset=monomer                # 单体模式

第四步:结果解读

白话解释: 预测完成后,你会得到PDB文件(3D结构)和质量评估分数。

# 用 Python 解读 AlphaFold2 结果
import json  # 导入JSON处理库
import matplotlib.pyplot as plt  # 导入绑图库
import numpy as np  # 导入数组计算库

# 1. 读取排名文件(ranking_debug.json)
with open("output/ranking_debug.json", "r") as f:  # 打开排名文件
    ranking = json.load(f)  # 解析JSON

# 查看各模型的 pLDDT 分数
for model, score in ranking["plddts"].items():  # 遍历每个模型
    print(f"{model}: pLDDT = {score:.2f}")  # 打印模型名和分数

# 2. 解读 pLDDT 分数含义
# > 90: 非常可靠(蓝色)— 可以信赖的结构
# 70-90: 较可靠(青色)— 大致可信
# 50-70: 低置信度(黄色)— 需谨慎
# < 50: 很不可靠(橙色)— 可能是无序区域

# 3. 可视化 pLDDT 分布
# 使用 PyMOL 打开 PDB 文件
# PyMOL 命令:
# load ranked_0.pdb         # 加载最佳模型
# spectrum b, blue_white_red, minimum=50, maximum=100  # 按B因子着色
# 蓝色=高置信度,红色=低置信度

# 4. 查看 PAE(预测对齐误差)图
# PAE 图是一个热图,显示残基i和残基j之间的位置误差
# 对角线附近深色 = 域内结构可靠
# 非对角线深色 = 域间相对位置可靠

第五步:使用 AlphaFold 数据库查询已有结构

白话解释: 很多蛋白质的结构已经被预测好了,直接查就行,不用自己跑。

# 1. 访问 AlphaFold 蛋白质结构数据库
# https://alphafold.ebi.ac.uk/
# 搜索你的蛋白质名称或 UniProt ID

# 2. 使用 API 批量下载
# 下载单个蛋白质的预测结构(以人类p53为例)
curl -O https://alphafold.ebi.ac.uk/files/AF-P04637-F1-model_v4.pdb  # 下载PDB文件
curl -O https://alphafold.ebi.ac.uk/files/AF-P04637-F1-predicted_aligned_error_v4.json  # 下载PAE

# 3. 用 Python 批量下载
import requests  # 导入HTTP请求库

uniprot_ids = ["P04637", "P53_HUMAN"]  # UniProt ID列表
for uid in uniprot_ids:  # 遍历每个ID
    url = f"https://alphafold.ebi.ac.uk/files/AF-{uid}-F1-model_v4.pdb"  # 构建URL
    response = requests.get(url)  # 发送请求
    if response.status_code == 200:  # 如果成功
        with open(f"AF-{uid}.pdb", "w") as f:  # 保存文件
            f.write(response.text)  # 写入内容
        print(f"下载成功: {uid}")  # 打印成功信息

常见报错与解决

报错原因解决方案
CUDA out of memoryGPU显存不够减少序列长度,或用 --num-models 1 减少模型数
MSA too shallow同源序列太少检查序列是否正确,尝试降低 MSA 深度要求
Connection timeoutColabFold 的 MMseqs2 服务器繁忙换个时间段再试,或使用本地数据库
FileNotFoundError: database数据库路径配置错误检查 --data_dir 路径是否正确
Colab disconnectedGoogle Colab 免费版有时间限制保持浏览器页面活跃,或使用本地安装版
Invalid FASTA format输入序列格式错误确保只有标准氨基酸字母,去掉空格和特殊字符
Template not foundPDB模板数据库不完整更新模板数据库或设置 --max_template_date

速查表

┌─────────────────────────────────────────────────────────────┐
│                 AlphaFold2 / ColabFold 速查                   │
├─────────────────────────────────────────────────────────────┤
│ 在线预测:                                                     │
│   ColabFold Colab: colab.research.google.com/.../AlphaFold2  │
│   AlphaFold Server: alphafoldserver.com(AF3)                │
│                                                              │
│ 数据库查询:                                                    │
│   AlphaFold DB: alphafold.ebi.ac.uk(2亿+结构)                │
│   UniProt: uniprot.org(获取序列)                              │
│                                                              │
│ 本地安装:                                                     │
│   pip install "colabfold[alphafold]"                         │
│   colabfold_batch input.fasta output_dir/                    │
│                                                              │
│ 质量评估:                                                     │
│   pLDDT > 90: 非常可靠(蓝色)                                 │
│   pLDDT 70-90: 较可靠(青色)                                  │
│   pLDDT 50-70: 低置信度(黄色)                                │
│   pLDDT < 50: 不可靠/无序区域(橙色)                           │
│                                                              │
│ 模型选择:                                                     │
│   单体: alphafold2_ptm                                       │
│   复合物: alphafold2_multimer_v3                              │
│   自动: auto(推荐)                                          │
│                                                              │
│ 可视化工具:                                                    │
│   PyMOL / ChimeraX / Mol*(在线)                              │
└─────────────────────────────────────────────────────────────┘

面试高频问题

  1. AlphaFold2 的核心创新是什么? 答:两大创新——Evoformer 模块(融合 MSA 信息和残基对信息的注意力机制)和端到端训练(从序列直接到3D坐标,不需要中间步骤)。它在 CASP14 中达到了接近实验解析的精度(GDT > 90)。

  2. pLDDT 和 PAE 分数分别代表什么?怎么用? 答:pLDDT 是每个残基的局部置信度(0-100),衡量单个残基位置预测的可靠性;PAE 是残基对之间的预测对齐误差,衡量两个残基相对位置的可靠性。pLDDT 用于判断局部结构可信度,PAE 用于判断结构域间的相对位置是否可信,对多聚体预测尤其重要。

  3. ColabFold 和 AlphaFold2 有什么区别? 答:ColabFold 用 MMseqs2 替代 jackHMMER/HHblits 做序列搜索,速度快得多,资源占用小(不需要3TB数据库),预测结果基本一致。ColabFold 支持 Google Colab 在线运行,适合快速预测;完整 AlphaFold2 需要大量存储和GPU,适合大规模研究。

  4. AlphaFold2 有哪些局限性? 答:不能预测蛋白质动态构象变化、不能预测配体结合模式(AF3改进了这一点)、对无序区域预测不可靠、依赖同源序列(孤儿蛋白效果差)、不考虑翻译后修饰。

  5. AlphaFold3 相比 AlphaFold2 有什么改进? 答:AF3 可以预测蛋白质与DNA、RNA、小分子配体的复合物结构,使用了扩散模型(diffusion model)替代了AF2的结构模块,预测范围从蛋白质扩展到了整个生物分子世界。