373

大环化合物 Macrocycle:跨越类药规则的分子设计

大环化合物跨越了常规类药规则的边界。这篇讲清大环的构象特点、通透性机制与计算处理的特殊要求。

大环(macrocycle)通常指含 12 元及以上环的化合物。它们在类药空间中占据特殊位置:分子量常超过 Ro5 上限,却能保持良好的口服吸收。理解这个「例外」,对设计难成药靶点的分子很有启发。

大环的两个核心优势

  • 构象预组织:环化本身限制了构象自由度。相比同样大小的线性分子,大环结合时损失的构象熵少得多——这直接转化为更高的亲和力
  • 更大的接触面积:能覆盖平坦的 PPI 界面,而常规小分子难以做到。同时保持了足够的构象柔性来适应界面。
  • 介于两者之间的性质:比线性肽稳定(抗蛋白酶),比蛋白小得多。

为什么能突破 Ro5

与降解剂类似(见 362《降解剂成药性》),大环靠分子伞效应实现通透:

  • 水相中:伸展构象,极性基团朝外与水形成氢键,保持溶解度;
  • 膜环境中塌缩折叠,形成分子内氢键,把极性基团藏进内部,疏水面朝外,从而穿过膜;
  • 环化本身促进了这种塌缩——环的几何约束让供受体更容易配对。

环孢素是最经典的案例:MW 1202、11 个氨基酸的环肽,含多个 N-甲基化酰胺,口服生物利用度可观。它的分子内氢键网络在膜环境中形成,是分子伞行为的教科书例子。

影响通透性的设计因素

因素 影响
N-甲基化 减少 HBD + 促进构象塌缩,最有效的手段
分子内氢键能力 决定能否塌缩
暴露的 HBD 数量 越少越好(比 MW 更重要)
环大小 影响柔性与塌缩能力
侧链疏水性 塌缩后需要疏水外表面
构象刚性 过刚则无法塌缩,过柔则熵代价大

计算处理的特殊要求

大环的构象生成是常规工具的弱项,必须专门处理:

from rdkit import Chem
from rdkit.Chem import AllChem
import numpy as np

def generate_macrocycle_conformers(smiles, n_confs=500, seed=0xf00d):
    """大环构象生成 —— 必须启用大环扭转"""
    mol = Chem.AddHs(Chem.MolFromSmiles(smiles))

    params = AllChem.ETKDGv3()
    params.randomSeed = seed
    params.useMacrocycleTorsions = True      # 关键:大环专用扭转知识
    params.useSmallRingTorsions = True
    params.pruneRmsThresh = 1.0
    params.numThreads = 0
    params.maxIterations = 2000              # 大环需要更多迭代

    cids = AllChem.EmbedMultipleConfs(mol, numConfs=n_confs, params=params)
    if not cids:
        # 嵌入失败时的后备方案
        params.useRandomCoords = True
        cids = AllChem.EmbedMultipleConfs(mol, numConfs=n_confs, params=params)

    res = AllChem.MMFFOptimizeMoleculeConfs(mol, numThreads=0, maxIters=5000)
    return mol, cids, res

# 常见问题:
#   1) 嵌入失败率高 —— 大环的距离几何约束更难满足
#   2) 构象覆盖不足 —— 需要更多构象数
#   3) 高能构象 —— 需要充分的力场优化
#   4) 环翻转(ring flipping)—— 不同的环构象可能都重要

评估塌缩能力

def count_intramolecular_hbonds(mol, conf_id, max_dist=3.5):
    """统计构象中的分子内氢键 —— 塌缩能力的关键指标"""
    conf = mol.GetConformer(conf_id)
    donors, acceptors = [], []
    for a in mol.GetAtoms():
        if a.GetSymbol() in ("N", "O"):
            if a.GetTotalNumHs() > 0:
                donors.append(a.GetIdx())
            acceptors.append(a.GetIdx())

    count = 0
    for d in donors:
        for acc in acceptors:
            if d == acc or mol.GetBondBetweenAtoms(d, acc):
                continue
            # 排除通过 2~3 个键相连的(不算真正的分子内氢键)
            path = Chem.GetShortestPath(mol, d, acc)
            if len(path) < 5:
                continue
            dist = np.linalg.norm(
                np.array(conf.GetAtomPosition(d)) -
                np.array(conf.GetAtomPosition(acc)))
            if dist < max_dist:
                count += 1
    return count

# 分析构象系综
mol, cids, _ = generate_macrocycle_conformers(smiles)
hb_counts = [count_intramolecular_hbonds(mol, cid) for cid in cids]
print(f"分子内氢键: 中位 {np.median(hb_counts):.1f}, 最多 {max(hb_counts)}")
print(f"能形成 ≥3 个分子内氢键的构象比例: "
      f"{np.mean([c >= 3 for c in hb_counts]):.1%}")

# 该比例高 → 有塌缩能力,通透性可能优于静态性质的预期

大环的合成来源

来源 特点
天然产物 许多大环药物源自天然产物(大环内酯、环肽等)
大环化线性前体 头尾环化、侧链环化
关环复分解(RCM) 最常用的合成大环方法之一
点击化学 叠氮-炔环加成,条件温和
DNA 编码库 可构建超大规模大环库
mRNA 展示 环肽的超大文库筛选

合成难度是大环的主要限制:关环反应的产率常受构象影响(成环 vs 聚合的竞争),且难以预测。这是设计时必须与合成化学家紧密配合的地方。

适用的靶点类型

  • PPI 界面:面积大、相对平坦,大环的接触面积合适(见 382《PPI 抑制剂》);
  • 浅口袋:常规小分子结合太弱,大环能覆盖更大面积;
  • 需要高选择性:更多接触点带来更好的区分度;
  • 转运体与通道:某些体系适合大环。

关键要点

  • 大环的核心优势是构象预组织(减少结合熵损失)+ 更大接触面积
  • 靠分子伞效应突破 Ro5,N-甲基化是最有效的通透性优化手段
  • 构象生成必须启用 useMacrocycleTorsions,常规参数会失败或覆盖不足;
  • 合成的关环步骤难度大且产率难预测,设计时需与合成密切配合。

延伸资源