蛋白质结构预测:AlphaFold🔗
关键词: AlphaFold2, AlphaFold3, 蛋白质结构预测, CASP, ColabFold, pLDDT, PAE
难度: ⭐⭐⭐
预计阅读时间: 45 分钟
最后更新: 2026-04-08
本章导读🔗
蛋白质的三维结构决定了其功能,长期以来,获取蛋白质结构主要依赖 X-ray 晶体学、冷冻电镜(Cryo-EM)和核磁共振(NMR)等实验方法——这些方法耗时长、成本高,且并非对所有蛋白质都适用。2020 年,DeepMind 开发的 AlphaFold2 在 CASP14 竞赛中取得了革命性突破,将蛋白质结构预测的精度提升到接近实验水平,彻底改变了结构生物学的研究范式。
读完本章,你将能够:
- 理解 AlphaFold 的核心原理和置信度指标
- 使用 AlphaFold 数据库查询已有预测结构
- 通过 ColabFold 在线预测自己感兴趣的蛋白质结构
- 了解 AlphaFold3 的新功能和使用方法
- 正确解读和评估预测结果的可靠性
本章内容适合有生物学基础但无深度学习背景的研究生,重点在实操而非数学推导。
1. AlphaFold 简介与原理🔗
1.1 CASP 竞赛与 AlphaFold 的诞生🔗
CASP(Critical Assessment of protein Structure Prediction)是蛋白质结构预测领域最权威的国际双年竞赛,自 1994 年创办以来已举办多届。竞赛的核心规则是:组委会提供一组尚未公开解析结构的蛋白质序列,参赛团队在限定时间内提交结构预测,最终以实验解析结构为标准进行评估。
评估使用的核心指标是 GDT-TS(Global Distance Test - Total Score),满分 100 分,一般认为 GDT-TS > 90 即达到实验级别精度。
关键里程碑:
| 年份 | 事件 | GDT-TS 中位数 |
|---|---|---|
| 2018 | AlphaFold1 参加 CASP13,首次夺冠 | ~60(自由建模类别) |
| 2020 | AlphaFold2 参加 CASP14,碾压式夺冠 | ~92.4(总体中位数) |
| 2024 | AlphaFold3 发布,支持复合物预测 | - |
| 2025 | AlphaFold3 完全开源 | - |
AlphaFold2 在 CASP14 中的表现被《Nature》称为"解决了蛋白质折叠问题的 50 年挑战"。其预测精度在大多数目标蛋白上已经达到甚至超过实验误差范围。
1.2 AlphaFold2 核心架构(概念理解)🔗
AlphaFold2 的架构可以概括为两大核心模块,你不需要理解所有技术细节,但需要知道它们各自的作用:
Evoformer 模块(进化信息处理器)🔗
Evoformer 是 AlphaFold2 的"大脑",它的核心任务是从进化信息中提取结构信号。
- 输入:多序列比对(MSA)和残基对(pair)信息
- 作用:通过多层注意力机制(类似于 Transformer),让序列中的每个位置"看到"其他位置的信息,从而捕获残基之间的共进化关系(co-evolution)
- 直觉理解:如果蛋白质序列中两个位置在进化过程中总是"协同突变",说明它们在空间上很可能靠近——Evoformer 就是在学习这种模式
- Evoformer 堆叠 48 层,逐层精炼对蛋白质的理解
Structure Module(结构生成器)🔗
Structure Module 将 Evoformer 输出的抽象信息转化为实际的 3D 坐标。
- 输入:Evoformer 处理后的残基对表示
- 输出:每个残基的 3D 坐标(骨架原子 + 侧链原子)
- 核心操作:通过迭代优化(recycling),反复精炼预测的结构,通常循环 3 次
- 直觉理解:类似于雕塑家先画出草图,再反复修改,每次更接近最终作品
整体流程简图🔗
氨基酸序列
↓
[MSA 搜索] → 多序列比对(找到同源序列)
↓
[模板搜索] → 已知同源结构(可选)
↓
[Evoformer × 48 层] → 残基对表示 + 序列表示
↓
[Structure Module × 3 次循环] → 3D 原子坐标
↓
[Amber 力场松弛] → 最终预测结构(PDB 文件)
1.3 MSA(多序列比对)的核心作用🔗
MSA 是 AlphaFold2 中最关键的输入之一。
什么是 MSA?
MSA(Multiple Sequence Alignment)是将目标蛋白质序列与数据库中的同源序列进行比对,找到"亲戚"序列的过程。这些同源序列来自不同物种的同一蛋白质家族。
为什么 MSA 如此重要?
- 共进化信号:如果两个氨基酸位置在空间上接触,当其中一个发生突变时,另一个往往也需要相应突变以维持结构稳定。MSA 中包含了大量这样的共进化信息
- 保守性分析:高度保守的位置通常是功能性关键位点或结构核心
- MSA 深度:同源序列数量越多(即 MSA 深度越大),预测通常越准确
实际影响:
| MSA 深度(有效序列数) | 预测质量 |
|---|---|
| > 1000 | 通常非常可靠 |
| 100 - 1000 | 一般可靠 |
| 30 - 100 | 质量下降明显 |
| < 30 | 预测可靠性低,需要谨慎对待 |
提示: 这也是"孤儿蛋白"(orphan proteins,几乎没有同源序列的蛋白质)预测困难的主要原因。对于 MSA 稀疏的蛋白质,可以考虑使用 ESMFold 等不依赖 MSA 的方法。
1.4 核心置信度指标详解🔗
AlphaFold 提供了多个置信度指标来帮助你评估预测的可靠性。正确理解这些指标对于避免错误使用预测结构至关重要。
pLDDT(predicted Local Distance Difference Test)🔗
pLDDT 是逐残基的置信度分数,范围 0-100,反映模型对每个残基局部结构的自信程度。
| pLDDT 分数 | 置信度 | 颜色(PyMOL/AFDB) | 含义 |
|---|---|---|---|
| > 90 | 非常高 | 深蓝色 | 结构非常可靠,可直接用于分析 |
| 70 - 90 | 较高 | 浅蓝色 | 整体折叠可信,侧链方向可能有偏差 |
| 50 - 70 | 低 | 黄色 | 骨架走向不确定,慎用 |
| < 50 | 非常低 | 橙色/红色 | 极可能是无序区域(IDR),结构无意义 |
⚠️ 重要: pLDDT < 50 的区域通常代表固有无序区域(Intrinsically Disordered Regions, IDR),这些区域在实际细胞中并没有固定的三维结构。AlphaFold 给出的低 pLDDT 区域不代表预测失败,而恰恰表明模型正确识别了这些区域的无序性质。不要试图分析这些区域的空间构象。
PAE(Predicted Aligned Error)🔗
PAE 是一个残基对(pairwise)级别的指标,描述的是"如果以残基 x 的位置为参考对齐结构,残基 y 的位置误差有多大"。
- 单位:Å(埃)
- 范围:0-30+ Å
- 呈现方式:NxN 二维热图(N = 残基数),颜色越深(蓝色)表示误差越小
- 核心作用:评估domain 之间的相对位置关系是否可靠
PAE 热图解读技巧:
Domain A Domain B
┌────────┬────────┐
Domain │ 深蓝 │ 浅色 │ ← 对角块深蓝说明 domain 内部结构可靠
A │ (低PAE)│(高PAE) │ ← 非对角块浅色说明两个 domain 相对位置不确定
├────────┼────────┤
Domain │ 浅色 │ 深蓝 │
B │(高PAE) │(低PAE) │
└────────┴────────┘
- 对角线上的深蓝色方块:对应各个 domain 内部结构可靠
- 非对角线区域颜色浅:两个 domain 的相对朝向不确定(即使各自内部结构准确,它们之间的空间关系可能不可靠)
- 全图深蓝:整体结构(包括 domain 间的相对关系)都可靠
典型场景: 一个蛋白质有两个 domain 通过柔性 linker 连接——PAE 图上会看到两个深蓝色块(各自 domain 内部可靠),但块之间颜色浅(linker 两侧的相对位置不确定)。
pTM 和 ipTM🔗
- pTM(predicted TM-score):整体结构质量的全局指标,范围 0-1
- pTM > 0.5:整体折叠基本正确
- pTM > 0.8:高置信度预测
- ipTM(interface predicted TM-score):仅用于多聚体/复合物预测,评估蛋白质-蛋白质界面的预测质量
- ipTM > 0.8:界面预测非常可靠
- ipTM 0.6-0.8:界面可能存在,但细节不确定
- ipTM < 0.6:界面预测不可靠
实用建议: 使用 AlphaFold 预测结构时,同时查看 pLDDT、PAE 和 pTM,不要只看某一个指标。结构质量的评估需要综合判断。
2. AlphaFold2 实操🔗
2.1 AlphaFold 蛋白质结构数据库(AFDB)🔗
AlphaFold Protein Structure Database(AFDB)是 DeepMind 与 EMBL-EBI 合作建立的预测结构数据库,包含超过 2 亿个蛋白质的预测结构。
访问地址: https://alphafold.ebi.ac.uk/
使用方法:
- 通过 UniProt ID 搜索(推荐):
- 在搜索框中输入 UniProt Accession(如
P00520)或蛋白质名称 -
点击搜索结果进入详情页
-
详情页信息解读:
- 3D 结构查看器:彩色编码对应 pLDDT 值(深蓝 > 90, 浅蓝 70-90, 黄 50-70, 橙 < 50)
- 序列区域颜色条:快速定位高/低置信度区域
-
PAE 图:点击 "Predicted Aligned Error" 标签查看
-
下载预测结构:
- PDB 格式:
https://alphafold.ebi.ac.uk/files/AF-{UniProtID}-F1-model_v4.pdb - mmCIF 格式:
https://alphafold.ebi.ac.uk/files/AF-{UniProtID}-F1-model_v4.cif - PAE JSON:
https://alphafold.ebi.ac.uk/files/AF-{UniProtID}-F1-predicted_aligned_error_v4.json
批量下载示例(命令行):
# 下载单个蛋白质结构(以人源 p53 蛋白为例,UniProt ID: P04637)
wget https://alphafold.ebi.ac.uk/files/AF-P04637-F1-model_v4.pdb
# 批量下载多个蛋白质(将 UniProt ID 存入文件)
cat uniprot_ids.txt | while read id; do
wget -q "https://alphafold.ebi.ac.uk/files/AF-${id}-F1-model_v4.pdb"
sleep 1 # 避免请求过快
done
通过 Python 访问(REST API):
import requests
def download_af_structure(uniprot_id, output_dir="."):
"""从 AFDB 下载预测结构"""
url = f"https://alphafold.ebi.ac.uk/files/AF-{uniprot_id}-F1-model_v4.pdb"
response = requests.get(url)
if response.status_code == 200:
filepath = f"{output_dir}/AF-{uniprot_id}.pdb"
with open(filepath, 'w') as f:
f.write(response.text)
print(f"✓ 下载成功: {filepath}")
else:
print(f"✗ 下载失败: {uniprot_id} (HTTP {response.status_code})")
# 使用示例
download_af_structure("P04637") # 人源 p53
注意: AFDB 中的结构是用 AlphaFold2 预计算的,不能自定义参数。如果需要预测数据库中没有的蛋白质(如突变体、人工设计蛋白等),需要使用 ColabFold 或本地安装 AlphaFold2。
2.2 ColabFold:免费在线预测(推荐新手首选)🔗
ColabFold 是由 Sergey Ovchinnikov、Milot Mirdita 和 Martin Steinegger 等人开发的 AlphaFold2 快速实现方案,通过 Google Colab 免费提供 GPU 资源进行预测。
访问地址: https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb
为什么推荐 ColabFold?
| 特性 | ColabFold | 原版 AlphaFold2 |
|---|---|---|
| 硬件需求 | 无(使用 Google GPU) | NVIDIA GPU(≥16GB 显存)+ ≥2.5TB 磁盘 |
| 安装难度 | 零安装 | 复杂(Docker + 数据库下载) |
| MSA 搜索 | MMseqs2(快速,<5 分钟) | JackHMMER + HHblits(慢,~1 小时) |
| 预测速度 | ~10-30 分钟 / 蛋白质 | ~30-60 分钟 / 蛋白质 |
| 准确度 | 与原版接近(略有差异) | 标准 |
| 限制 | Google Colab GPU 配额 | 无限制 |
ColabFold 使用步骤详解:
第一步:打开 Notebook
- 访问 ColabFold 的 GitHub 页面:https://github.com/sokrypton/ColabFold
- 点击 "AlphaFold2 using MMseqs2" 的 Colab 链接
- 确保 Colab 的运行时设置为 GPU:
运行时→更改运行时类型→ 选择T4 GPU
第二步:输入序列
在 query_sequence 字段中粘贴你的蛋白质氨基酸序列(单字母编码,不含 FASTA 头部):
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH
GSAQVKGHGKKVADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL
LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR
核心参数说明:
| 参数 | 默认值 | 说明 |
|---|---|---|
jobname | - | 自定义任务名称(将用于输出文件命名) |
num_relax | 0 | 是否对结果进行 Amber 力场松弛(设为 1-5 可改善局部几何) |
template_mode | none | 是否使用 PDB 模板(pdb70 使用模板,none 不使用) |
msa_mode | mmseqs2_uniref_env | MSA 搜索策略 |
num_recycles | 3 | 循环次数,越多越慢但可能更准(一般 3 足够) |
num_models | 5 | 使用的模型数(1-5,5 最全面但最慢) |
第三步:运行预测
按顺序点击运行各代码单元(或使用 运行时 → 全部运行)。典型耗时:
- MSA 搜索:2-5 分钟
- 结构预测(5 个模型):10-30 分钟(取决于蛋白质大小和 GPU 类型)
第四步:下载结果
预测完成后,结果会自动打包为 zip 文件并下载,包含:
{jobname}/
├── {jobname}_relaxed_rank_001_*.pdb # 排名第一的松弛结构
├── {jobname}_unrelaxed_rank_001_*.pdb # 排名第一的未松弛结构
├── {jobname}_unrelaxed_rank_002_*.pdb # 排名第二...
├── ...
├── {jobname}_scores_rank_001_*.json # 置信度分数
├── {jobname}_pae_rank_001_*.png # PAE 热图
├── {jobname}_coverage.png # MSA 覆盖图
├── {jobname}_plddt.png # pLDDT 折线图
└── log.txt # 运行日志
2.3 本地安装 AlphaFold2🔗
如果你需要大批量预测、定制化修改代码或不希望依赖外部服务,可以在本地服务器上安装 AlphaFold2。
硬件要求🔗
| 硬件 | 最低要求 | 推荐配置 |
|---|---|---|
| GPU | NVIDIA GPU,16GB 显存 | A100(40/80GB)或 V100(32GB) |
| RAM | 64 GB | 128 GB 以上 |
| 磁盘 | ~2.5 TB(遗传数据库) | SSD > 3 TB |
| CPU | 8 核 | 16 核以上(加速 MSA 搜索) |
注意: 2.5 TB 的磁盘需求主要来自基因数据库(UniRef90, MGnify, BFD 等)的下载和解压。这是本地安装的最大障碍之一。
Docker 安装方式(推荐)🔗
# 1. 确保已安装 Docker 和 NVIDIA Container Toolkit
docker --version
nvidia-smi
# 2. 克隆 AlphaFold 仓库
git clone https://github.com/google-deepmind/alphafold.git
cd alphafold
# 3. 下载遗传数据库(约 2.5TB,需要数小时到数天)
# 使用官方提供的下载脚本
bash scripts/download_all_data.sh /path/to/data
# 数据库下载内容:
# - BFD (~1.7 TB)
# - MGnify (~120 GB)
# - PDB70 (~56 GB)
# - PDB mmCIF (~200 GB)
# - UniClust30 (~206 GB)
# - UniRef90 (~59 GB)
# - PDB seqres (~200 MB)
# 4. 构建 Docker 镜像
docker build -f docker/Dockerfile -t alphafold .
# 5. 运行预测
python docker/run_docker.py \
--fasta_paths=input/my_protein.fasta \
--max_template_date=2022-01-01 \
--model_preset=monomer \
--db_preset=full_dbs \
--data_dir=/path/to/data \
--output_dir=output/
关键参数说明🔗
# model_preset 选择:
# --model_preset=monomer # 单体蛋白
# --model_preset=monomer_casp14 # 单体(CASP14 参数)
# --model_preset=monomer_ptm # 单体(带 pTM 输出)
# --model_preset=multimer # 多聚体蛋白
# db_preset 选择:
# --db_preset=full_dbs # 完整数据库(推荐,更准确)
# --db_preset=reduced_dbs # 精简数据库(节省空间,约 500GB)
# max_template_date:模板截止日期
# 如果你想复现 CASP14 的结果,设为 2020-05-14
# 如果用于实际研究,设为当前日期即可
输入文件格式🔗
AlphaFold2 的输入是标准 FASTA 格式文件:
>my_protein
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH
GSAQVKGHGKKVADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL
LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR
多聚体预测时,每条链用单独的 FASTA 条目表示:
>chain_A
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH
>chain_B
MVHLTPEEKSAVTALWGKVNVDEVGGEALGRLLVVYPWTQRFFESFGDLST
2.4 结果解读详解🔗
pLDDT 分析🔗
预测完成后,首先查看 pLDDT 曲线图和 B-factor 列:
在 PyMOL 中按 pLDDT 着色:
# PyMOL 命令:按 B-factor(即 pLDDT)着色
load AF-P04637-F1-model_v4.pdb
spectrum b, red_yellow_green_cyan_blue, minimum=0, maximum=100
用 Python 提取 pLDDT 值:
from Bio.PDB import PDBParser
parser = PDBParser(QUIET=True)
structure = parser.get_structure("af_model", "ranked_0.pdb")
# pLDDT 存储在 B-factor 列中
for model in structure:
for chain in model:
for residue in chain:
for atom in residue:
if atom.name == "CA": # 只看 Cα 原子
plddt = atom.bfactor
resid = residue.id[1]
resname = residue.resname
print(f"残基 {resid} ({resname}): pLDDT = {plddt:.1f}")
统计 pLDDT 分布:
import numpy as np
from Bio.PDB import PDBParser
parser = PDBParser(QUIET=True)
structure = parser.get_structure("model", "ranked_0.pdb")
plddts = []
for atom in structure.get_atoms():
if atom.name == "CA":
plddts.append(atom.bfactor)
plddts = np.array(plddts)
print(f"平均 pLDDT: {plddts.mean():.1f}")
print(f"pLDDT > 90 的残基比例: {(plddts > 90).mean()*100:.1f}%")
print(f"pLDDT > 70 的残基比例: {(plddts > 70).mean()*100:.1f}%")
print(f"pLDDT < 50 的残基比例: {(plddts < 50).mean()*100:.1f}%")
PAE 图可视化🔗
import json
import matplotlib.pyplot as plt
import numpy as np
# 加载 PAE 数据
with open("ranked_0_pae.json", "r") as f:
pae_data = json.load(f)
# ColabFold 格式
if "pae" in pae_data:
pae_matrix = np.array(pae_data["pae"])
# AFDB / 原版 AF2 格式
elif "predicted_aligned_error" in pae_data[0]:
pae_matrix = np.array(pae_data[0]["predicted_aligned_error"])
# 绘图
plt.figure(figsize=(8, 7))
plt.imshow(pae_matrix, cmap="bwr", vmin=0, vmax=30)
plt.colorbar(label="Expected Position Error (Å)")
plt.xlabel("Scored Residue")
plt.ylabel("Aligned Residue")
plt.title("Predicted Aligned Error (PAE)")
plt.tight_layout()
plt.savefig("pae_plot.png", dpi=150)
plt.show()
多模型对比(Ranking)🔗
AlphaFold2 默认运行 5 个模型(model_1 到 model_5),结果按置信度排序:
ranked_0.pdb:最佳模型(最高置信度)ranked_1.pdb:次佳模型- ...
对比多个模型:
# PyMOL 中叠合所有模型:
load ranked_0.pdb, model_1
load ranked_1.pdb, model_2
load ranked_2.pdb, model_3
align model_2, model_1
align model_3, model_1
# 如果多个模型高度一致,说明预测结果稳健
# 如果某些区域差异大,说明该区域预测不确定
实用技巧: 如果 5 个模型在某个区域给出了不同的构象,那么该区域预测的可信度较低——即使某个单独模型的 pLDDT 可能不算太低。多模型一致性是判断可靠性的重要补充依据。
3. AlphaFold3🔗
3.1 AF3 的革命性进步🔗
AlphaFold3(2024 年 5 月发布于 Nature,2025 年已完全开源)相比 AF2 有重大升级:
核心新能力:
| 功能 | AlphaFold2 | AlphaFold3 |
|---|---|---|
| 蛋白质单体 | ✅ | ✅ |
| 蛋白质多聚体 | ✅(AF2-Multimer) | ✅(更准确) |
| 蛋白质-DNA/RNA 复合物 | ❌ | ✅ |
| 蛋白质-小分子复合物 | ❌ | ✅ |
| 蛋白质-离子复合物 | ❌ | ✅ |
| 翻译后修饰(PTM) | ❌ | ✅(部分支持) |
| 共价修饰配体 | ❌ | ✅ |
架构变化(概念层面):
- AF2 的 Evoformer 被替换为 Pairformer(精简版的 pair representation 处理模块)
- Structure Module 被替换为 Diffusion Module(扩散模型),这是 AF3 能处理非蛋白质分子的关键
- 不再需要 MSA 逐步处理,改为单次 MSA embedding
- 输出不再是确定性的——AF3 每次运行可以生成不同的结构样本(采样性质)
3.2 AlphaFold Server 使用🔗
AlphaFold Server 是 DeepMind 提供的免费在线预测服务,底层运行 AlphaFold3。
访问地址: https://alphafoldserver.com/
使用步骤:
- 注册/登录:使用 Google 账号登录
- 创建任务(New Job):
- 输入蛋白质序列(支持多条链)
- 添加配体(小分子:输入 SMILES 或 CCD code)
- 添加核酸(DNA/RNA 序列)
- 添加离子(如 Zn²⁺, Mg²⁺, Ca²⁺ 等)
- 提交预测:点击 "Submit" 开始预测
- 查看结果:通常 30 分钟到数小时出结果
- 下载结构:获取 mmCIF 格式的预测结构和置信度信息
限制:
- 每天有预测次数限制(截至 2025 年约 10 次/天)
- 不能自定义模型参数
- 结果用于学术研究时需要遵守 DeepMind 的条款
- ⚠️ 不允许将结果用于药物设计等商业用途(需使用开源版本)
输入示例——蛋白质-小分子复合物:
Job Name: CDK2_inhibitor_complex
Entity 1 (Protein):
Sequence: MENFQKVEKIGEGTYGVVYKARNKLTGEVVALKKIRLESEE...
Copies: 1
Entity 2 (Ligand):
CCD Code: ATP # 或输入 SMILES
Copies: 1
Entity 3 (Ion):
Type: MG # 镁离子
Copies: 2
3.3 AF3 开源版本🔗
DeepMind 官方开源(2025 年)🔗
2025 年,DeepMind 将 AlphaFold3 的完整代码和模型权重开源。
GitHub 仓库: https://github.com/google-deepmind/alphafold3
# 安装 AF3(推荐使用 Docker)
git clone https://github.com/google-deepmind/alphafold3.git
cd alphafold3
# 申请模型权重(需要同意使用条款)
# 访问相关页面提交申请
# 构建 Docker 镜像
docker build -t alphafold3 -f docker/Dockerfile .
# 准备输入 JSON 文件(示例)
# input.json:
# {
# "name": "test_prediction",
# "modelSeeds": [1],
# "sequences": [
# {
# "protein": {
# "id": "A",
# "sequence": "MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTK"
# }
# }
# ]
# }
# 运行预测
python run_alphafold.py \
--json_path=input.json \
--model_dir=/path/to/models \
--db_dir=/path/to/databases \
--output_dir=output/
Protenix(字节跳动开源 AF3 复现)🔗
Protenix 是字节跳动(ByteDance)开源的 AlphaFold3 复现项目,2024 年底发布。
GitHub 仓库: https://github.com/bytedance/Protenix
特点:
- 完全独立实现的 AF3 架构
- 模型权重从头训练(不依赖 DeepMind 的权重)
- 宽松的开源许可证(Apache 2.0),可用于商业场景
- 提供在线预测服务:https://protenix.ai/
- 在多个 benchmark 上达到接近 AF3 官方的精度
# Protenix 安装
git clone https://github.com/bytedance/Protenix.git
cd Protenix
pip install -e .
# 运行预测(参考官方文档)
python inference.py \
--input input.json \
--output_dir output/ \
--model_dir /path/to/weights
3.4 AF2 vs AF3 选择建议🔗
| 场景 | 推荐工具 | 原因 |
|---|---|---|
| 蛋白质单体预测 | AF2 (ColabFold) | 速度快、资源消耗少,精度足够 |
| 蛋白质多聚体 | AF3 > AF2-Multimer | AF3 在蛋白质-蛋白质界面预测更准 |
| 蛋白质-核酸复合物 | AF3 | AF2 不支持 |
| 蛋白质-小分子对接 | AF3(但需谨慎) | 精度不如专用对接工具(如 Vina),但可提供初始构象 |
| 蛋白质-离子结合预测 | AF3 | AF2 不支持 |
| 大批量单体预测 | ColabFold(本地版) | 高通量、可定制 |
| 需要商业授权 | Protenix / Boltz-1 | Apache 2.0 许可 |
3.5 AF3 的局限性🔗
尽管 AF3 能力显著提升,以下局限需要注意:
- 小分子结合位姿精度有限:AF3 的小分子对接精度(成功率约 ~60%,RMSD < 2Å)低于专门的分子对接工具(如 AutoDock Vina, Glide)。不建议直接用于药物筛选
- 构象采样的随机性:AF3 基于扩散模型,每次运行结果可能不同。建议运行多次(如 5 个 seeds)取最佳结果
- 共价配体和翻译后修饰支持有限:虽然名义上支持,但精度不稳定
- 计算资源需求更高:AF3 比 AF2 需要更多 GPU 显存(推荐 A100 80GB)
- 训练数据偏差:对 PDB 中稀有的复合物类型预测较差
4. ColabFold 详细教程🔗
4.1 Google Colab 环境说明🔗
ColabFold 运行在 Google Colab 上,使用前需了解:
- 免费版:提供 T4 GPU(16GB 显存),有使用时间限制(约 12 小时/次,可能被断连)
- Colab Pro($9.99/月):更长运行时间,V100 或 A100 GPU
- Colab Pro+($49.99/月):后台运行,终端模式
GPU 显存与蛋白质长度关系(ColabFold, T4 16GB):
| 蛋白质长度(残基数) | 预计显存需求 | T4 16GB 是否足够 |
|---|---|---|
| < 400 | ~4-6 GB | ✅ 轻松运行 |
| 400-800 | ~8-12 GB | ✅ 可以运行 |
| 800-1200 | ~12-16 GB | ⚠️ 勉强(可能 OOM) |
| > 1200 | > 16 GB | ❌ 需要 A100 或拆分 domain |
OOM 解决方案: 如果遇到 Out of Memory 错误,尝试以下方法: 1. 减少
num_models为 1 或 3 2. 减少num_recycles为 1 3. 将蛋白质拆分为独立 domain 分别预测 4. 升级到 Colab Pro 使用 A100 GPU
4.2 MSA 模式选择🔗
ColabFold 提供多种 MSA 搜索策略:
| 模式 | 说明 | 适用场景 |
|---|---|---|
mmseqs2_uniref_env | 用 MMseqs2 搜索 UniRef30 + Environmental DB(默认) | 大多数情况 |
mmseqs2_uniref | 仅搜索 UniRef30 | 快速搜索 |
single_sequence | 不使用 MSA,仅用单条序列 | MSA 极稀疏的蛋白(如人工设计蛋白) |
custom | 用户提供自定义 MSA(a3m 格式) | 有特殊 MSA 需求时 |
MMseqs2 vs JackHMMER + HHblits(原版 AF2):
- MMseqs2 比原版 MSA 搜索快 40-100 倍
- 精度略有差异:在绝大多数蛋白上结果一致,但在 MSA 稀疏的蛋白上原版可能略好
- ColabFold 的 MSA 搜索使用远程服务器(MMseqs2 API),不需要本地数据库
4.3 多聚体预测(Multimer)🔗
ColabFold 支持蛋白质多聚体预测(如二聚体、三聚体等)。
输入格式(在 Notebook 的 query_sequence 中):
# 同源多聚体(如同源二聚体):用冒号 ":" 分隔链
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTK:MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTK
# 异源多聚体(A-B 异源二聚体)
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTK:MVHLTPEEKSAVTALWGKVNVDEVGGEALGRLLVVYPWTQR
多聚体预测注意事项:
- ColabFold 多聚体使用的是
alphafold2_multimer_v3模型 - 链数越多,显存需求越大——两条 300 残基的链 ≈ 一条 600 残基的单体
- 需要重点关注 ipTM 分数来评估界面可靠性
- 预测结果的链间相对朝向可能不准确——用 PAE 图验证
- 对于已知不互作的蛋白,AF2 也可能给出"看起来合理"的复合物结构,需要用 ipTM 和 PAE 来判断是否真正互作
判断蛋白质-蛋白质互作(PPI)的经验规则:
4.4 模板(Template)使用🔗
模板是已知的同源蛋白质实验结构,可以辅助 AlphaFold2 的预测。
ColabFold 中的模板选项:
template_mode = "none":不使用模板(默认,推荐用于大多数情况)template_mode = "pdb70":使用 PDB70 数据库中的模板template_mode = "custom":使用用户提供的自定义模板
什么时候使用模板?
- 大多数情况下 不需要模板——AlphaFold2 自身已经足够准确
- 当 MSA 非常稀疏时,模板可能有帮助
- 当你有自己的实验结构(如某个突变体的晶体结构)想引导预测时
- 注意:如果模板错误或误导性较强,反而可能降低预测质量
4.5 ColabFold 本地版(LocalColabFold)🔗
如果 Google Colab 限制影响你的工作,可以在本地服务器安装 ColabFold:
# 安装 LocalColabFold(需要 Linux 服务器 + NVIDIA GPU)
# 方法一:使用 conda
conda create -n colabfold python=3.10
conda activate colabfold
pip install "colabfold[alphafold] @ git+https://github.com/sokrypton/ColabFold"
# 下载模型权重和数据库
python -m colabfold.download
# 运行预测
colabfold_batch input.fasta output_dir/
# 方法二:使用 Docker(更推荐)
docker pull ghcr.io/sokrypton/colabfold:latest
docker run --gpus all -v $(pwd):/work ghcr.io/sokrypton/colabfold \
colabfold_batch /work/input.fasta /work/output/
colabfold_batch 常用参数:
colabfold_batch input.fasta output_dir/ \
--num-recycle 3 \
--num-models 5 \
--amber \
--templates \
--num-seeds 1 \
--zip
5. 常见问题与注意事项🔗
5.1 什么情况下预测不可靠?🔗
以下情况 AlphaFold 的预测精度可能显著下降:
| 情况 | 原因 | 应对方法 |
|---|---|---|
| 固有无序区域(IDR) | 这些区域本身没有固定结构 | 查看 pLDDT < 50 的区域,不要分析其构象 |
| 孤儿蛋白(Orphan Proteins) | MSA 稀疏,缺乏共进化信息 | 尝试 ESMFold;降低对结果的信心 |
| 膜蛋白的跨膜区域 | 训练数据中膜蛋白较少 | 结合 OPM 数据库和 MD 模拟验证 |
| 多构象蛋白 | AF2 倾向预测单一构象(通常是 apo 态) | 考虑 AF-cluster 方法采样多构象 |
| 蛋白质-蛋白质互作界面 | 界面预测难度高于单体 | 使用 AF2-Multimer,关注 ipTM 和 PAE |
| 突变对结构的影响 | AF2 对单点突变几乎不敏感 | AF2 不适合预测突变效应,改用 FoldX / Rosetta |
| 全新折叠(novel fold) | 训练集中缺乏类似结构 | 目前无好的解决方案,关注 ESMFold / RF2 |
| 环区(loop)精细构象 | 环区柔性大,预测变异大 | 用 MD 模拟精炼环区结构 |
5.2 多聚体预测进阶技巧🔗
- 从小到大:先预测各亚基的单体结构(验证各自质量),再预测复合物
- 增加 recycles:多聚体预测中
num_recycles=6或更多可能改善结果 - 多次采样:使用不同随机种子运行多次,选择 ipTM 最高的结果
- 生物学先验:如果已知互作界面的大致区域,用来验证预测结果
- 警惕假阳性:AF2 可能对任何输入的蛋白对都给出"复合物结构"——低 ipTM(< 0.6)的结果不代表蛋白质互作
5.3 如何验证预测结果🔗
与实验结构对比🔗
# 使用 PyMOL 叠合预测结构与实验结构
# PyMOL 命令
load predicted.pdb, pred
load experimental.pdb, exp
align pred, exp
# 查看 RMSD 值:
# RMSD < 1 Å:极佳
# RMSD 1-2 Å:很好
# RMSD 2-4 Å:可接受
# RMSD > 4 Å:差异较大
分子动力学(MD)验证🔗
将 AlphaFold 预测结构作为 MD 模拟的初始构象,运行短时间 MD(如 100 ns),观察:
- 结构是否稳定(RMSD 是否收敛)
- 关键相互作用是否维持
- 高 pLDDT 区域的 RMSF 是否较低(应该较低)
# GROMACS 简单 MD 流程(简化示意)
gmx pdb2gmx -f predicted.pdb -o processed.gro -water spce
gmx editconf -f processed.gro -o box.gro -c -d 1.0 -bt cubic
gmx solvate -cp box.gro -cs spc216.gro -o solvated.gro -p topol.top
# ... 后续步骤参见 MD 章节
MolProbity 验证🔗
MolProbity(https://molprobity.biochem.duke.edu/)可以检查结构的立体化学质量:
- Ramachandran outliers
- 侧链旋转异构体(rotamer)异常
- 原子碰撞(clashes)
注意: 如果你启用了 Amber 松弛(
num_relax > 0),MolProbity 的各项指标通常会更好。未松弛的结构可能存在一些立体化学异常,但这不影响整体折叠的准确性。
5.4 引用规范🔗
使用 AlphaFold 相关工具时,请正确引用:
使用 AlphaFold2 预测结构:
Jumper, J. et al. Highly accurate protein structure prediction with AlphaFold. Nature 596, 583–589 (2021). https://doi.org/10.1038/s41586-021-03819-2
使用 AlphaFold2-Multimer:
Evans, R. et al. Protein complex prediction with AlphaFold-Multimer. bioRxiv (2022). https://doi.org/10.1101/2021.10.04.463034
使用 AlphaFold3:
Abramson, J. et al. Accurate structure prediction of biomolecular interactions with AlphaFold 3. Nature 630, 493–500 (2024). https://doi.org/10.1038/s41586-024-07487-w
使用 ColabFold:
Mirdita, M. et al. ColabFold: making protein folding accessible to all. Nature Methods 19, 679–682 (2022). https://doi.org/10.1038/s41592-022-01488-1
使用 AFDB 数据库中的预测结构:
Varadi, M. et al. AlphaFold Protein Structure Database: massively expanding the structural coverage of protein-sequence space with high-accuracy models. Nucleic Acids Research 50, D419–D427 (2022).
使用 Protenix:
引用 Protenix GitHub 仓库及相关技术报告(请查看仓库的最新引用指南)。
5.5 新手常见错误🔗
- 过度信任低 pLDDT 区域的构象
- ❌ "虽然这个 loop 的 pLDDT 只有 40,但它的构象看起来正好指向活性位点..."
-
✅ pLDDT < 50 的区域构象基本无意义,不要基于此做分析
-
忽略 PAE 直接对比 domain 间的距离
- ❌ "这两个 domain 的距离是 15 Å"(但 PAE 显示两个 domain 间误差 > 20 Å)
-
✅ 先看 PAE,如果 domain 间 PAE 很高,就不能信任它们的相对位置
-
用 AlphaFold 预测突变效果
- ❌ 对野生型和突变序列分别跑 AF2,比较结构差异来推断突变影响
-
✅ AF2 对单点突变几乎不敏感(结构可能几乎一样),应使用 FoldX、Rosetta ddg、ESM 等专用工具
-
直接用 AF2 结构做分子对接而不松弛
- ❌ 直接将 AF2 原始输出用于 AutoDock Vina 对接
-
✅ 先进行 Amber 松弛或短时间 MD 平衡,消除不合理的原子接触
-
忽视同源实验结构
- ❌ "直接用 AlphaFold 预测就好,不需要看 PDB"
-
✅ 如果 PDB 中已有高分辨率的同源/相同蛋白质结构,实验结构始终优先于预测结构
-
蛋白质序列输入错误
- ❌ 包含 FASTA 头部(
>protein_name)、包含非标准氨基酸字母、包含空格或换行 -
✅ 仅输入纯氨基酸单字母编码序列,不含任何其他字符
-
未考虑生物学组装态
- ❌ 蛋白质在体内是四聚体,但只预测了单体结构就做分析
- ✅ 查阅文献确定蛋白质的生理低聚态,按实际组装态预测
实操演示🔗
Demo:使用 ColabFold 预测人源血红蛋白 α 亚基结构🔗
目标蛋白: 人源血红蛋白 α 亚基(Hemoglobin subunit alpha, UniProt: P69905)
步骤:
- 从 UniProt 获取序列(https://www.uniprot.org/uniprot/P69905)
- 打开 ColabFold Notebook
- 输入序列:
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH
GSAQVKGHGKKVADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL
LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR
- 参数设置:
jobname:HBA_HUMANnum_relax:1template_mode:nonenum_recycles:3-
num_models:5 -
运行全部代码单元
- 预期结果:
- 平均 pLDDT > 90(血红蛋白 α 亚基是经典球状蛋白,结构高度确定)
- 5 个模型结构高度一致(Cα RMSD < 0.5 Å)
-
前几个和最后几个残基 pLDDT 可能较低(N/C 端柔性区域)
-
在 PyMOL 中查看结果:
# PyMOL 命令
load HBA_HUMAN_relaxed_rank_001.pdb
spectrum b, red_yellow_green_cyan_blue, minimum=0, maximum=100
show cartoon
# 观察颜色分布:大部分应为深蓝色(高 pLDDT)
本章小结🔗
- ✅ AlphaFold2 在 CASP14 中取得革命性突破,能以接近实验精度预测蛋白质结构
- ✅ pLDDT、PAE、pTM 是评估预测质量的三大核心指标,务必综合使用
- ✅ ColabFold 是最推荐的入门工具——免费、快速、无需安装
- ✅ AlphaFold3 扩展到蛋白质-核酸/小分子/离子复合物预测
- ✅ 低 pLDDT(< 50)通常代表固有无序区域,不应过度解读其构象
- ✅ 实验结构始终优先于预测结构——AlphaFold 是工具,不是替代品
- ✅ 正确引用所使用的工具是基本学术规范
延伸阅读🔗
- AlphaFold2 官方 GitHub(2024-04 访问)
- AlphaFold3 官方 GitHub(2025-06 访问)
- ColabFold GitHub(2024-04 访问)
- Protenix GitHub(2025-01 访问)
- AlphaFold Protein Structure Database(2024-04 访问)
- AlphaFold Server(2024-12 访问)
- CASP 官方网站(了解竞赛历史和评估标准)
- ESMFold(不依赖 MSA 的快速结构预测替代方案)
- 相关章节:蛋白质结构预测进阶工具
- 相关章节:蛋白质设计与工程
- 相关章节:分子动力学与 AI 力场
参考文献🔗
-
Jumper, J. et al. "Highly accurate protein structure prediction with AlphaFold." Nature 596, 583–589 (2021). https://doi.org/10.1038/s41586-021-03819-2 ↩
-
Abramson, J. et al. "Accurate structure prediction of biomolecular interactions with AlphaFold 3." Nature 630, 493–500 (2024). https://doi.org/10.1038/s41586-024-07487-w ↩
-
Mirdita, M. et al. "ColabFold: making protein folding accessible to all." Nature Methods 19, 679–682 (2022). https://doi.org/10.1038/s41592-022-01488-1 ↩
-
Evans, R. et al. "Protein complex prediction with AlphaFold-Multimer." bioRxiv (2022). https://doi.org/10.1101/2021.10.04.463034 ↩
-
Varadi, M. et al. "AlphaFold Protein Structure Database: massively expanding the structural coverage of protein-sequence space with high-accuracy models." Nucleic Acids Research 50, D419–D427 (2022). ↩
-
Lin, Z. et al. "Evolutionary-scale prediction of atomic-level protein structure with a language model." Science 379, 1123–1130 (2023). ↩