367

抗体可开发性 Developability:聚集、黏度与稳定性预测

抗体可开发性决定能否从实验室走到生产。这篇给出聚集、黏度、稳定性的预测方法与实用的筛选指标。

一个抗体即使亲和力优秀,如果会聚集、高浓度下黏度过高、或化学不稳定,就无法成药。可开发性(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 的思路值得借鉴:看候选是否落在已上市抗体的性质分布内;
  • 把可开发性作为并行筛选维度,而非候选提名前的后置检查

延伸资源