一个抗体即使亲和力优秀,如果会聚集、高浓度下黏度过高、或化学不稳定,就无法成药。可开发性(developability)评估的目的是在早期就筛掉这类候选,避免在后期才发现问题。
主要的可开发性风险
| 问题 | 后果 | 主要成因 |
|---|---|---|
| 聚集 | 免疫原性、失活、生产困难 | 暴露的疏水补丁、低稳定性 |
| 高黏度 | 无法皮下注射(需 >100 mg/mL) | 电荷分布不均、自缔合 |
| 低表达量 | 生产成本高 | 折叠效率、序列特征 |
| 化学不稳定 | 储存期间降解 | 脱酰胺、异构化、氧化位点 |
| 低热稳定性 | 储存与工艺问题 | 框架区、CDR 序列 |
| 非特异结合 | PK 差、脱靶 | 正电荷过多、疏水性高 |
| 免疫原性 | 抗药抗体、失效 | 非人源序列、T 细胞表位 |
黏度是皮下注射制剂的硬约束:单抗常需要 100~200 mg/mL 的高浓度制剂,若在此浓度下黏度过高(通常要求 < 20 cP),就无法用常规注射器给药。
序列层面的快速筛查
import re
from abnumber import Chain
LIABILITY_MOTIFS = {
"deamidation_high": r"NG", # 最高风险
"deamidation_med": r"N[STGH]",
"isomerization": r"D[GSTD]",
"oxidation_met": r"M",
"oxidation_trp": r"W",
"n_glycosylation": r"N[^P][ST]", # 非预期糖基化位点
"cleavage": r"DP",
"free_cysteine": r"C", # 需检查是否配对
}
def scan_sequence_liabilities(heavy, light, scheme="imgt"):
findings = []
for chain_name, seq in [("H", heavy), ("L", light)]:
ch = Chain(seq, scheme=scheme)
cdr_regions = {
"CDR1": ch.cdr1_seq, "CDR2": ch.cdr2_seq, "CDR3": ch.cdr3_seq,
}
for liability, pattern in LIABILITY_MOTIFS.items():
for m in re.finditer(pattern, seq):
# 判断是否落在 CDR(风险更高)
in_cdr = any(m.group() in c for c in cdr_regions.values())
findings.append({
"chain": chain_name, "liability": liability,
"motif": m.group(), "position": m.start() + 1,
"in_cdr": in_cdr,
"severity": "high" if in_cdr else "medium",
})
return findings
# CDR 中的化学不稳定位点风险最高 ——
# 一旦发生修饰就可能直接失去结合活性
结构层面的指标
import freesasa
import numpy as np
from Bio.PDB import PDBParser
def compute_developability_metrics(pdb_path):
"""从预测或实验结构计算可开发性指标"""
structure = freesasa.Structure(pdb_path)
result = freesasa.calc(structure)
metrics = {}
# 1) 疏水表面积占比(聚集倾向的主要指标)
HYDROPHOBIC = {"ALA","VAL","LEU","ILE","MET","PHE","TRP","PRO","TYR"}
total_sasa = result.totalArea()
hydrophobic_sasa = sum(
result.atomArea(i) for i in range(structure.nAtoms())
if structure.residueName(i).strip() in HYDROPHOBIC)
metrics["hydrophobic_sasa_fraction"] = hydrophobic_sasa / total_sasa
# 2) 最大疏水补丁面积
# 连续的疏水表面区域,是聚集的成核位点
# 3) 电荷分布不对称性(黏度的主要预测因子)
# 计算 Fv 区域的净电荷与电荷分布
# 经验:pH 6 下净电荷过高或电荷分布不均 → 黏度风险
# 4) 等电点(pI)
# 经验:pI 在 6~9 之间较好
# pI 过高(>9)与快速清除、组织非特异结合相关
return metrics
TAP:治疗性抗体分析器
TAP(Therapeutic Antibody Profiler)用已上市治疗性抗体的性质分布作为参照,判断候选抗体是否落在「已验证可行」的范围内:
| TAP 五项指标 | 衡量 |
|---|---|
| CDR 总长度 | 过长增加风险 |
| CDR 疏水补丁面积(PSH) | 聚集倾向 |
| CDR 正电荷补丁(PPC) | 非特异结合、清除加快 |
| CDR 负电荷补丁(PNC) | 黏度风险 |
| 结构域电荷对称性(SFvCSP) | 黏度、自缔合 |
TAP 的思路很值得借鉴:不设绝对阈值,而是看候选是否落在已上市抗体的分布内。落在分布外不代表一定失败,但提示需要额外关注。
实验验证:计算只是初筛
| 实验 | 测什么 |
|---|---|
| SEC-HPLC | 聚集体含量(单体纯度) |
| DSF / DSC | 热稳定性(Tm、Tagg) |
| 加速稳定性 | 40℃ 储存后的降解 |
| 高浓度黏度 | 直接测 100+ mg/mL 的黏度 |
| PSR / BVP ELISA | 非特异结合倾向 |
| AC-SINS | 自缔合倾向(低浓度即可测) |
| 肽图 + 质谱 | 化学修饰位点的实际发生率 |
AC-SINS 特别实用:它在低浓度(低样品量)下就能预测高浓度自缔合行为,适合早期批量筛选。
什么时候做可开发性评估
- 越早越好。理想情况是在文库设计阶段就排除有明显风险的序列特征(如 CDR 中的 NG 位点)。
- 先导筛选阶段:对几十个候选做计算评估 + AC-SINS、DSF 等快速实验。
- 候选提名前:完整的可开发性套餐,包括高浓度制剂研究。
- 常见错误:只按亲和力挑候选,到候选提名阶段才做可开发性评估,结果发现最优的抗体无法成药,被迫回退。把可开发性作为并行的筛选维度,而非串行的后置检查。
与亲和力的权衡
# 常见困境:亲和力最高的候选可开发性最差
# (高亲和力常来自疏水相互作用,而疏水性正是聚集的来源)
# 应对:多参数优化而非单一优化
def developability_adjusted_score(affinity, tm, aggregation, viscosity_risk):
"""综合评分,用几何平均防止单项极差"""
import numpy as np
scores = [
sigmoid_desirability(affinity, low=8.0, high=10.0), # pKd
sigmoid_desirability(tm, low=65.0, high=75.0), # ℃
reverse_desirability(aggregation, low=1.0, high=5.0), # % 聚集体
reverse_desirability(viscosity_risk, low=0.2, high=0.6),
]
return float(np.prod(scores) ** (1 / len(scores)))
# 亲和力足够即可(通常 nM 级已满足),
# 不必追求极致而牺牲可开发性
关键要点
- CDR 中的化学不稳定位点(尤其 NG)风险最高,一旦修饰可能直接失活;
- 黏度是皮下注射的硬约束,电荷分布不对称是主要预测因子;
- TAP 的思路值得借鉴:看候选是否落在已上市抗体的性质分布内;
- 把可开发性作为并行筛选维度,而非候选提名前的后置检查。
延伸资源
- 结构预测:364《抗体结构预测》、365《CDR Loop 建模》;免疫原性:368《免疫原性预测》;
- 亲和力成熟:366《抗体亲和力成熟》。