跳转至

蛋白质结构预测:AlphaFold🔗

关键词: AlphaFold2, AlphaFold3, 蛋白质结构预测, CASP, ColabFold, pLDDT, PAE
难度: ⭐⭐⭐
预计阅读时间: 45 分钟
最后更新: 2026-04-08


本章导读🔗

蛋白质的三维结构决定了其功能,长期以来,获取蛋白质结构主要依赖 X-ray 晶体学、冷冻电镜(Cryo-EM)和核磁共振(NMR)等实验方法——这些方法耗时长、成本高,且并非对所有蛋白质都适用。2020 年,DeepMind 开发的 AlphaFold2 在 CASP14 竞赛中取得了革命性突破,将蛋白质结构预测的精度提升到接近实验水平,彻底改变了结构生物学的研究范式。

读完本章,你将能够:

  1. 理解 AlphaFold 的核心原理和置信度指标
  2. 使用 AlphaFold 数据库查询已有预测结构
  3. 通过 ColabFold 在线预测自己感兴趣的蛋白质结构
  4. 了解 AlphaFold3 的新功能和使用方法
  5. 正确解读和评估预测结果的可靠性

本章内容适合有生物学基础但无深度学习背景的研究生,重点在实操而非数学推导。


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/

使用方法:

  1. 通过 UniProt ID 搜索(推荐):
  2. 在搜索框中输入 UniProt Accession(如 P00520)或蛋白质名称
  3. 点击搜索结果进入详情页

  4. 详情页信息解读

  5. 3D 结构查看器:彩色编码对应 pLDDT 值(深蓝 > 90, 浅蓝 70-90, 黄 50-70, 橙 < 50)
  6. 序列区域颜色条:快速定位高/低置信度区域
  7. PAE 图:点击 "Predicted Aligned Error" 标签查看

  8. 下载预测结构

  9. PDB 格式:https://alphafold.ebi.ac.uk/files/AF-{UniProtID}-F1-model_v4.pdb
  10. mmCIF 格式:https://alphafold.ebi.ac.uk/files/AF-{UniProtID}-F1-model_v4.cif
  11. 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

  1. 访问 ColabFold 的 GitHub 页面:https://github.com/sokrypton/ColabFold
  2. 点击 "AlphaFold2 using MMseqs2" 的 Colab 链接
  3. 确保 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/

使用步骤:

  1. 注册/登录:使用 Google 账号登录
  2. 创建任务(New Job)
  3. 输入蛋白质序列(支持多条链)
  4. 添加配体(小分子:输入 SMILES 或 CCD code)
  5. 添加核酸(DNA/RNA 序列)
  6. 添加离子(如 Zn²⁺, Mg²⁺, Ca²⁺ 等)
  7. 提交预测:点击 "Submit" 开始预测
  8. 查看结果:通常 30 分钟到数小时出结果
  9. 下载结构:获取 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 能力显著提升,以下局限需要注意:

  1. 小分子结合位姿精度有限:AF3 的小分子对接精度(成功率约 ~60%,RMSD < 2Å)低于专门的分子对接工具(如 AutoDock Vina, Glide)。不建议直接用于药物筛选
  2. 构象采样的随机性:AF3 基于扩散模型,每次运行结果可能不同。建议运行多次(如 5 个 seeds)取最佳结果
  3. 共价配体和翻译后修饰支持有限:虽然名义上支持,但精度不稳定
  4. 计算资源需求更高:AF3 比 AF2 需要更多 GPU 显存(推荐 A100 80GB)
  5. 训练数据偏差:对 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

多聚体预测注意事项:

  1. ColabFold 多聚体使用的是 alphafold2_multimer_v3 模型
  2. 链数越多,显存需求越大——两条 300 残基的链 ≈ 一条 600 残基的单体
  3. 需要重点关注 ipTM 分数来评估界面可靠性
  4. 预测结果的链间相对朝向可能不准确——用 PAE 图验证
  5. 对于已知不互作的蛋白,AF2 也可能给出"看起来合理"的复合物结构,需要用 ipTM 和 PAE 来判断是否真正互作

判断蛋白质-蛋白质互作(PPI)的经验规则:

ipTM > 0.8 且链间 PAE < 10Å → 高置信度互作
ipTM 0.6-0.8:不确定,需要实验验证
ipTM < 0.6:很可能不互作或预测不可靠

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 多聚体预测进阶技巧🔗

  1. 从小到大:先预测各亚基的单体结构(验证各自质量),再预测复合物
  2. 增加 recycles:多聚体预测中 num_recycles=6 或更多可能改善结果
  3. 多次采样:使用不同随机种子运行多次,选择 ipTM 最高的结果
  4. 生物学先验:如果已知互作界面的大致区域,用来验证预测结果
  5. 警惕假阳性: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 新手常见错误🔗

  1. 过度信任低 pLDDT 区域的构象
  2. ❌ "虽然这个 loop 的 pLDDT 只有 40,但它的构象看起来正好指向活性位点..."
  3. ✅ pLDDT < 50 的区域构象基本无意义,不要基于此做分析

  4. 忽略 PAE 直接对比 domain 间的距离

  5. ❌ "这两个 domain 的距离是 15 Å"(但 PAE 显示两个 domain 间误差 > 20 Å)
  6. ✅ 先看 PAE,如果 domain 间 PAE 很高,就不能信任它们的相对位置

  7. 用 AlphaFold 预测突变效果

  8. ❌ 对野生型和突变序列分别跑 AF2,比较结构差异来推断突变影响
  9. ✅ AF2 对单点突变几乎不敏感(结构可能几乎一样),应使用 FoldX、Rosetta ddg、ESM 等专用工具

  10. 直接用 AF2 结构做分子对接而不松弛

  11. ❌ 直接将 AF2 原始输出用于 AutoDock Vina 对接
  12. ✅ 先进行 Amber 松弛或短时间 MD 平衡,消除不合理的原子接触

  13. 忽视同源实验结构

  14. ❌ "直接用 AlphaFold 预测就好,不需要看 PDB"
  15. ✅ 如果 PDB 中已有高分辨率的同源/相同蛋白质结构,实验结构始终优先于预测结构

  16. 蛋白质序列输入错误

  17. ❌ 包含 FASTA 头部(>protein_name)、包含非标准氨基酸字母、包含空格或换行
  18. ✅ 仅输入纯氨基酸单字母编码序列,不含任何其他字符

  19. 未考虑生物学组装态

  20. ❌ 蛋白质在体内是四聚体,但只预测了单体结构就做分析
  21. ✅ 查阅文献确定蛋白质的生理低聚态,按实际组装态预测

实操演示🔗

Demo:使用 ColabFold 预测人源血红蛋白 α 亚基结构🔗

目标蛋白: 人源血红蛋白 α 亚基(Hemoglobin subunit alpha, UniProt: P69905)

步骤:

  1. 从 UniProt 获取序列(https://www.uniprot.org/uniprot/P69905)
  2. 打开 ColabFold Notebook
  3. 输入序列:
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH
GSAQVKGHGKKVADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKL
LSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR
  1. 参数设置:
  2. jobname: HBA_HUMAN
  3. num_relax: 1
  4. template_mode: none
  5. num_recycles: 3
  6. num_models: 5

  7. 运行全部代码单元

  8. 预期结果:
  9. 平均 pLDDT > 90(血红蛋白 α 亚基是经典球状蛋白,结构高度确定)
  10. 5 个模型结构高度一致(Cα RMSD < 0.5 Å)
  11. 前几个和最后几个残基 pLDDT 可能较低(N/C 端柔性区域)

  12. 在 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 是工具,不是替代品
  • ✅ 正确引用所使用的工具是基本学术规范

延伸阅读🔗


参考文献🔗


  1. 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 

  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 

  3. 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 

  4. Evans, R. et al. "Protein complex prediction with AlphaFold-Multimer." bioRxiv (2022). https://doi.org/10.1101/2021.10.04.463034 

  5. 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). 

  6. Lin, Z. et al. "Evolutionary-scale prediction of atomic-level protein structure with a language model." Science 379, 1123–1130 (2023).