364

抗体结构预测:通用模型与抗体专用模型的差异

抗体结构预测有通用模型与抗体专用模型两条路线。这篇讲清两者的差异、各自的适用场景与精度水平。

抗体的结构预测比一般蛋白特殊:骨架高度保守,变异集中在六个 CDR 环上。这个特点让抗体专用模型有了存在的理由,也决定了预测的难点在哪。

抗体结构的特点

  • 框架区(framework)高度保守:免疫球蛋白折叠(β 三明治)在所有抗体中基本一致,预测几乎不会错;
  • CDR 环是变异区:六个环(H1、H2、H3、L1、L2、L3)决定抗原结合特异性;
  • CDR-H3 最难:长度变化范围大(3~25 残基)、构象多样、没有典型构象分类——它是抗体结构预测的核心难点
  • 其余五个 CDR 有典型构象(canonical structures),可按长度与关键残基分类预测,相对容易。

两条技术路线

通用模型(AlphaFold、Boltz 等) 抗体专用(IgFold、ABodyBuilder、DeepAb)
训练数据 全 PDB 抗体结构 + 大规模抗体序列
速度 较慢(需 MSA) 秒级(多数免 MSA)
框架区精度 很好 很好
CDR-H3 精度 较好 相当,部分情况更好
抗体-抗原复合物 支持(AF-Multimer、Boltz) 多数不支持
批量处理 成本高 适合大规模
纳米抗体 支持 部分专门优化

关键判断:批量筛选用专用模型(快),最终候选用通用模型(可做复合物)。

抗体专用模型的用法

# IgFold:免 MSA,秒级预测
pip install igfold

from igfold import IgFoldRunner

igfold = IgFoldRunner()
sequences = {
    "H": "EVQLVESGGGLVQPGGSLRLSCAASGFTFSSYAMSWVRQAPGKGLEWVSAISGSGGSTYYADSVKG...",
    "L": "DIQMTQSPSSLSASVGDRVTITCRASQSISSYLNWYQQKPGKAPKLLIYAASSLQSGVPSRFSGSGSGT...",
}
igfold.fold(
    "antibody.pdb",
    sequences=sequences,
    do_refine=True,          # 用 OpenMM 精修
    do_renum=True,           # 按 Chothia 编号
)

# 输出的 B-factor 列存放 RMSD 预测值(不确定性)
# CDR-H3 区域通常不确定性最高
# ABodyBuilder2 / ABodyBuilder3
pip install ImmuneBuilder

from ImmuneBuilder import ABodyBuilder2

predictor = ABodyBuilder2()
antibody = predictor.predict(sequences)
antibody.save("antibody_ab2.pdb")

# 也支持纳米抗体与 TCR
from ImmuneBuilder import NanoBodyBuilder2
nb = NanoBodyBuilder2().predict({"H": nanobody_seq})

抗体编号:先做这一步

# 抗体编号系统把序列位置标准化,是所有下游分析的前提
pip install anarci abnumber

from abnumber import Chain

chain = Chain(heavy_seq, scheme="imgt")     # 或 kabat / chothia / aho
print("CDR1:", chain.cdr1_seq)
print("CDR2:", chain.cdr2_seq)
print("CDR3:", chain.cdr3_seq)
print("种系:", chain.find_human_germlines(limit=1))

# 不同编号系统的 CDR 定义不同:
#   Kabat    —— 基于序列变异性
#   Chothia  —— 基于结构环的定义
#   IMGT     —— 统一的免疫遗传学编号,现在最常用
#   AHo      —— 结构比对导向
#
# 报告 CDR 时必须写明用的是哪套编号,否则无法比较

精度水平:合理预期

区域 典型 RMSD 可用性
框架区 < 1.0 Å 可靠
CDR-L1/L2/L3 约 1 Å 可靠
CDR-H1/H2 约 1 Å 可靠
CDR-H3 2~4 Å(长环更差) 需谨慎

CDR-H3 的误差直接影响能否用于抗原结合分析:2~4 Å 的偏差意味着残基级的相互作用判断不可靠。做表位分析或亲和力设计时,必须意识到这个不确定性。

预测结构的用途与边界

  • 可以用:评估整体折叠、找暴露的化学不稳定位点(脱酰胺、氧化)、计算表面性质(疏水补丁、电荷分布)、可开发性评估(见 367《抗体可开发性 Developability》)、快速筛选大量变体。
  • 需谨慎:抗体-抗原界面的详细分析、基于结构的亲和力优化设计、表位预测——这些都依赖 CDR-H3 的准确性
  • 建议:做界面分析时用 AF-Multimer 或 Boltz 直接预测复合物(见 344《用 Boltz 或 Chai-1 预测蛋白-配体复合物》),而不是先预测抗体再对接。

批量处理流程

# 典型场景:从文库中筛选出上千个候选抗体,需要批量结构分析

from ImmuneBuilder import ABodyBuilder2
import pandas as pd, os

predictor = ABodyBuilder2()
os.makedirs("structures", exist_ok=True)

results = []
for i, row in df.iterrows():
    try:
        ab = predictor.predict({"H": row["heavy"], "L": row["light"]})
        path = f"structures/{row['id']}.pdb"
        ab.save(path)
        results.append({"id": row["id"], "path": path, "ok": True})
    except Exception as e:
        results.append({"id": row["id"], "path": None,
                        "ok": False, "error": str(e)})

# 后续:对每个结构算可开发性指标(见 367)
#      聚集倾向、疏水补丁、电荷不对称性等

关键要点

  • 抗体框架区预测可靠,CDR-H3 是核心难点,RMSD 常在 2~4 Å;
  • 批量筛选用专用模型(秒级),复合物分析用通用模型;
  • 先做抗体编号(IMGT 等)标准化,报告 CDR 时必须写明编号系统;
  • 界面分析建议直接预测复合物,而非先建抗体再对接。

延伸资源