279

OpenEye Omega:构象生成工具在筛选中的作用

OMEGA 是高质量构象生成工具,是三维筛选方法的前置基础。这篇讲清构象生成的难点、质量判断与开源方案的实际差距。

OMEGA 是 OpenEye 的构象生成工具。构象生成看起来是个技术细节,实际上是所有三维方法的地基——形状筛选、药效团匹配、刚性对接、三维 QSAR,全都依赖输入构象的质量。构象生成得不好,后面所有计算都是在错误的几何上进行。

构象生成难在哪

  • 组合爆炸:一个有 8 个可旋转键的分子,每个键取 3 个常见二面角,就有 3⁸ ≈ 6,561 种组合;实际的柔性分子远不止于此。
  • 覆盖与数量的矛盾:既要覆盖到「生物活性构象」,又不能生成太多(下游计算成本随构象数线性增长)。
  • 生物活性构象不是最低能构象这是最关键的一点:配体结合时通常处于比全局最低能高数 kcal/mol 的构象(这部分能量由结合能补偿)。只保留低能构象会系统性地漏掉真正的结合构象。
  • 环系与立体化学:柔性环(如七元环、大环)的构象搜索特别困难。

关键参数

参数 作用 典型设置
最大构象数 每个分子保留多少构象 筛选 50~200;精细分析 500+
能量窗口 相对最低能多少以内的构象保留 10~25 kcal/mol(不能太窄)
RMSD 去重阈值 多相似的构象算重复 0.5~1.0 Å
大环处理 是否启用专门的大环采样 大环分子必须开启

能量窗口设得太窄是最常见的错误。为了「只要合理构象」把窗口设成 5 kcal/mol,往往会把生物活性构象排除在外。

开源方案:RDKit ETKDG

from rdkit import Chem
from rdkit.Chem import AllChem

mol = Chem.AddHs(Chem.MolFromSmiles(smiles))

# ETKDGv3:结合距离几何与实验扭转角偏好的知识
params = AllChem.ETKDGv3()
params.randomSeed = 0xf00d          # 固定种子保证可复现
params.pruneRmsThresh = 0.5         # 去重阈值
params.numThreads = 0               # 用所有核
params.useSmallRingTorsions = True
params.useMacrocycleTorsions = True # 大环支持

cids = AllChem.EmbedMultipleConfs(mol, numConfs=200, params=params)

# 力场优化(推荐 MMFF94)
res = AllChem.MMFFOptimizeMoleculeConfs(mol, numThreads=0, maxIters=2000)

# 按能量筛选,注意窗口不要设太窄
energies = [e for (conv, e) in res]
emin = min(energies)
keep = [cid for cid, e in zip(cids, energies) if e - emin < 20.0]  # 20 kcal/mol
print(f"生成 {len(cids)} 个构象,能量窗口内保留 {len(keep)} 个")

ETKDGv3 是 RDKit 当前推荐的方法,它在距离几何的基础上加入了从剑桥结构数据库(CSD)统计的扭转角偏好知识,质量比早期方法明显提升。

开源与商业的实际差距

  • 覆盖率:在复现晶体构象的基准测试上,商业工具的成功率通常略高,尤其是柔性大、构象空间复杂的分子。
  • 大环:大环构象生成是差距最明显的地方之一,虽然 RDKit 已加入大环扭转支持。
  • 速度:商业工具经过高度优化,处理百万级分子时差距明显。
  • 结论对多数常规分子,RDKit ETKDGv3 + MMFF 优化的质量已经够用;差距主要出现在大环、高柔性分子和超大规模场景。

质量怎么判断

  • 用共晶结构做回测:取一批有共晶结构的配体,生成构象,看能否复现晶体构象(最小 RMSD < 1.0 Å 算成功)。这是最直接的质量评估。
  • 检查几何合理性:键长键角是否正常、有无原子重叠、立体化学是否保持。
  • 看构象多样性:如果生成的构象彼此都很像,说明采样不足。
  • 固定随机种子:不固定则每次结果不同,实验不可复现。

提示

商业软件功能与定价变动较快,本文为方向性介绍。关键提醒:生物活性构象通常不是能量最低构象,能量窗口设得太窄会系统性漏掉正确答案。

延伸资源