抗体的结构预测比一般蛋白特殊:骨架高度保守,变异集中在六个 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 时必须写明编号系统;
- 界面分析建议直接预测复合物,而非先建抗体再对接。