抗体的六个 CDR 中,五个可以按「典型构象」相对可靠地预测,唯独 CDR-H3 不行。理解这个例外,是理解抗体建模全部难点的钥匙。
典型构象(canonical structures)的概念
Chothia 等人发现,除 H3 外的五个 CDR 环只采取有限几种主链构象,且构象由环长度 + 少数关键位置的残基决定:
- 这些环的两端被框架区固定,长度较短;
- 某些关键残基(如脯氨酸、甘氨酸、能形成氢键的残基)决定了环的折叠方式;
- 因此可以建立「长度 + 关键残基 → 构象类别」的规则,查表即可预测。
CDR-H3 为什么是例外
| 因素 | 说明 |
|---|---|
| 长度变化极大 | 3~25 残基(人类抗体常见 8~20),远超其他 CDR |
| 由 V(D)J 重组产生 | 包含 D 基因片段与随机的 N 区插入,序列多样性最高 |
| 位于结合位点中心 | 受两侧框架约束最少,构象自由度最大 |
| 无明确的构象分类 | 长 H3 尤其如此,难以归类 |
| 诱导契合明显 | 结合抗原时构象可能显著改变 |
「扭结(kink)」是 H3 的一个已知结构特征:H3 基部(靠近框架的部分)常有一个特征性的扭转,由保守残基(如 Arg94、Asp101,Kabat 编号)间的相互作用稳定。基部相对可预测,而顶端(apex)的构象几乎无法可靠预测。
H3 的分区处理
# 实际分析中把 H3 分成两部分处理
#
# 基部(torso/base):靠近框架的几个残基
# - 有扭结/伸展两种主要构象
# - 可按序列特征预测(保守的 Arg-Asp 相互作用)
# - 预测相对可靠
#
# 顶端(apex/head):环的中间部分
# - 高度可变
# - 常直接接触抗原
# - 预测不可靠
#
# 含义:即使整体 RMSD 看着还行,
# 真正接触抗原的顶端部分可能完全不对
评估预测的 H3 是否可信
from Bio.PDB import PDBParser
import numpy as np
def assess_h3_confidence(pdb_path, h3_start, h3_end, chain="H"):
"""从预测结构中提取 H3 区域的置信度"""
parser = PDBParser(QUIET=True)
st = parser.get_structure("ab", pdb_path)
# IgFold 把预测 RMSD 存在 B-factor;AF 系存 pLDDT
h3_vals, fw_vals = [], []
for res in st[0][chain]:
if "CA" not in res:
continue
v = res["CA"].get_bfactor()
if h3_start <= res.id[1] <= h3_end:
h3_vals.append(v)
else:
fw_vals.append(v)
return {
"h3_mean": float(np.mean(h3_vals)) if h3_vals else None,
"framework_mean": float(np.mean(fw_vals)) if fw_vals else None,
"h3_length": len(h3_vals),
}
# 经验规律:
# H3 长度 < 10 → 预测相对可靠
# H3 长度 10~15 → 中等
# H3 长度 > 15 → 预测很可能不准,需实验结构
# 多模型一致性检验(更可靠)
def h3_ensemble_agreement(pdb_paths, h3_range, chain="H"):
"""多个模型/多次预测的 H3 是否收敛"""
from Bio.PDB import Superimposer
# 先按框架区叠合,再比较 H3 的 RMSD
# 若不同模型的 H3 差异 > 2 Å,说明该 H3 预测不可信
pass
多模型一致性是判断 H3 可信度最实用的方法:用 IgFold、ABodyBuilder、AlphaFold 各预测一遍,按框架区叠合后比较 H3 的差异。差异大就说明这个 H3 预测不可靠。
处理 H3 不确定性的策略
- 用构象系综而非单一结构:既然 H3 构象不确定,就生成多个可能构象,后续分析(如对接)在系综上做。
- 优先用实验结构:如果有该抗体或高度同源抗体的晶体/冷冻电镜结构,直接用。
- 直接预测复合物:用 AF-Multimer 或 Boltz 预测抗体-抗原复合物(见 344《用 Boltz 或 Chai-1 预测蛋白-配体复合物》、371《抗体-抗原对接与表位预测》),让模型在抗原存在下确定 H3 构象——这通常比先预测游离抗体再对接更合理,因为诱导契合被自然地纳入了。
- 限制分析深度:H3 不可靠时,不要做残基级的相互作用分析;可以做的是整体表面性质、电荷分布这类对局部构象不敏感的分析。
- 用序列层面的方法:亲和力成熟等任务可以用蛋白语言模型(见 194《ESM》)在序列层面做,绕开结构不确定性。
H3 长度的生物学含义
| H3 长度 | 常见特征 |
|---|---|
| 短(< 10) | 结合位点较平坦,适合大表位(蛋白抗原) |
| 中(10~16) | 最常见 |
| 长(> 16) | 可深入凹陷表位(如病毒的保守口袋);但可能带来可开发性问题 |
牛源抗体有极长的 H3(可达 60 残基),形成独特的「柄-结」结构——这是抗体工程中一个有趣的天然方案。
H3 相关的可开发性风险
# 长 H3 与某些序列特征关联着可开发性问题
RISKY_MOTIFS = {
"deamidation": ["NG", "NS", "NT"], # 脱酰胺(NG 风险最高)
"isomerization": ["DG", "DS", "DT"], # 异构化
"oxidation": ["M", "W"], # 氧化
"glycosylation": ["NxS", "NxT"], # 非预期糖基化位点
"cleavage": ["DP"], # 酸性条件下断裂
}
def scan_liabilities(cdr_seq, region_name="CDR-H3"):
found = []
for risk, motifs in RISKY_MOTIFS.items():
for m in motifs:
if "x" in m:
continue # 需正则处理
idx = cdr_seq.find(m)
if idx >= 0:
found.append({"region": region_name, "risk": risk,
"motif": m, "position": idx})
return found
# CDR 中的化学不稳定位点风险最高 ——
# 因为它们直接影响结合,一旦修饰就可能失活
关键要点
- 五个 CDR 有典型构象可查表预测,H3 因 V(D)J 重组产生而无法归类;
- H3 基部相对可预测,顶端(直接接触抗原的部分)最不可靠;
- 用多模型一致性判断 H3 可信度;H3 长度 > 15 时预测很可能不准;
- 需要界面分析时,直接预测抗体-抗原复合物比先建模再对接更合理。
延伸资源
- 结构预测:364《抗体结构预测》、344《用 Boltz 或 Chai-1 预测蛋白-配体复合物》;复合物:371《抗体-抗原对接与表位预测》;
- 可开发性:367《抗体可开发性 Developability》;亲和力成熟:366《抗体亲和力成熟》。