064

Lipinski 五规则:什么时候有用,什么时候会误导

Lipinski 五规则是最广为人知的类药性规则,也是最常被误用的。这篇讲清它的来源、适用边界与正确用法。

Lipinski 五规则(Rule of Five, Ro5)是药物化学中最广为人知的经验规则。它也是最常被误用的——被当作硬性筛选标准,而它的原意并非如此。

规则内容

参数 阈值
分子量 MW ≤ 500
脂水分配系数 logP ≤ 5
氢键供体 HBD ≤ 5
氢键受体 HBA ≤ 10

「五规则」的名字来自所有阈值都是 5 的倍数。原始表述是:违反两条或以上时,口服吸收不佳的可能性较大。

它的真实来源与含义

  • 来源:Lipinski 等人在 1997 年分析了进入 II 期临床的药物的性质分布,取各参数的约 90 分位数作为阈值;
  • 因此它是一个统计概括,不是物理定律——它描述的是「大多数口服药长什么样」,而非「什么样的分子才能口服」;
  • 它只针对口服吸收:不适用于静脉、吸入、局部给药;
  • 它不预测活性、选择性、代谢、毒性——完全不涉及这些;
  • 原文明确排除了天然产物与主动转运的底物
  • 它是概率性陈述:「可能性较大」,不是「一定不行」。

什么时候有用

  • 虚拟筛选的初步过滤:从千万级化合物库中快速排除明显不像口服药的分子,作为第一道粗筛是合理的;
  • 提醒优化方向:分子在优化中逐渐变大变油时,Ro5 提供一个警示信号;
  • 沟通的共同语言:药化领域的通用参照系。

什么时候会误导

  • 用作硬性淘汰标准这是最常见的误用。大量成功的口服药违反 Ro5——环孢素(MW 1202)是最著名的例子,还有许多大环、多肽、天然产物衍生物。把违反 Ro5 的分子直接删掉,可能扔掉真正有价值的化学空间。
  • 用于非口服给药:注射剂完全不受这些约束;
  • 用于非常规模态:PROTAC、大环、多肽、核酸都远超 Ro5(见 362《降解剂成药性》373《大环化合物 Macrocycle》);
  • 忽略主动转运:某些药物通过转运体主动吸收,不依赖被动扩散;
  • 把它当成充分条件:满足 Ro5 不保证口服吸收好——溶解度、代谢、外排都不在规则内;
  • 用于先导化合物:先导阶段的分子应该比 Ro5 更严格(见 070《Lead-like 与 Drug-like》),因为优化过程会增重。

更实用的补充规则

规则 内容 补充了什么
Veber 规则 可旋转键 ≤ 10;TPSA ≤ 140 Ų 柔性与极性表面积(见 065《Veber Rule》
Ghose 过滤 MW 160~480;logP −0.4~5.6;原子数 20~70 下限约束
Egan 规则 logP ≤ 5.88;TPSA ≤ 131 基于吸收数据拟合
Muegge 规则 多参数组合 更细致
Rule of 3 片段专用:MW < 300、logP < 3、HBD ≤ 3 片段筛选
CNS MPO 针对中枢神经系统药物的多参数评分 脑内暴露

Veber 的两个参数(可旋转键与 TPSA)在预测口服吸收上往往比 Ro5 的四个参数更有效——尤其 TPSA,它直接反映去溶剂化代价。

计算实现

from rdkit import Chem
from rdkit.Chem import Descriptors, Crippen, rdMolDescriptors

def property_profile(smiles):
    mol = Chem.MolFromSmiles(smiles)
    if mol is None:
        return None

    props = {
        "MW": Descriptors.MolWt(mol),
        "cLogP": Crippen.MolLogP(mol),
        "HBD": Descriptors.NumHDonors(mol),
        "HBA": Descriptors.NumHAcceptors(mol),
        "TPSA": Descriptors.TPSA(mol),
        "RotB": Descriptors.NumRotatableBonds(mol),
        "AromaticRings": Descriptors.NumAromaticRings(mol),
        "Fsp3": rdMolDescriptors.CalcFractionCSP3(mol),
        "HeavyAtoms": mol.GetNumHeavyAtoms(),
    }

    # Ro5 违反数(注意:是「违反几条」而非「是否通过」)
    violations = sum([
        props["MW"] > 500, props["cLogP"] > 5,
        props["HBD"] > 5, props["HBA"] > 10,
    ])
    props["Ro5_violations"] = violations

    # Veber
    props["Veber_pass"] = (props["RotB"] <= 10 and props["TPSA"] <= 140)

    return props

# 建议的用法:
#   记录违反数与具体是哪些参数超标,
#   而不是简单地二分「通过/不通过」
#   → 保留信息,让决策者自己判断

Fsp³:一个值得关注的补充指标

# Fsp³ = sp³ 杂化碳原子数 / 总碳原子数
#
# 含义:分子的「三维性」
#   Fsp³ 低 = 平面、芳环为主
#   Fsp³ 高 = 立体、含饱和环与手性中心
#
# 观察到的关联:
#   Fsp³ 高的分子往往
#     - 溶解度更好(破坏平面堆积)
#     - 选择性更好(更多三维互补性)
#     - 临床成功率可能更高
#
# 「逃离平面性(escape from flatland)」
#   是药物化学界近年的一个共识性倡议
#
# 但注意:
#   引入 sp³ 中心通常增加合成难度与手性复杂度
#   需要权衡

正确的使用姿势

关键要点

  • Ro5 是对已上市口服药性质分布的统计概括,不是物理定律;
  • 它只针对口服吸收,不预测活性、代谢、毒性
  • 把它当硬性淘汰标准是最常见的误用——大量成功药物违反它;
  • Veber 的 TPSA 与可旋转键往往比 Ro5 更能预测口服吸收。

延伸资源