espsim 本地部署实测: 给生物电子等排体一个静电势相似度打分

发布时间:2026/10/4 18:38:37
espsim 本地部署实测: 给生物电子等排体一个静电势相似度打分 本文收录于专栏CADD 中的机器学习模型—— 专栏覆盖机器学习打分函数、描述符与相似度方法在药物设计中的落地部署点击订阅可跟踪后续更新。你做骨架跃迁或等排体替换时2D 指纹经常结构对了分数反而低对接打分又说不清静电互补。这篇把开源库 espsim 从检索、本地部署到官方测试脚本全流程跑通附 4 对经典等排体加自对照的实测分数表、Carbo/Tanimoto/MC 积分参数对比以及 pkg_resources 崩溃等 5 条实测踩坑。你读完可直接照抄命令给自己手里的类似物系列批量打形状加静电势双相似度分让假相似分子现形。关键字espsim、静电势相似度、ESP、生物电子等排体、骨架跃迁、RDKit、Carbo 指数、虚拟筛选目录§1. 场景什么时候你需要 ESP 相似度§2. 原理三 Gaussian 展开 Carbo 指数§3. 本地部署Ubuntu纯 CPU§4. 安装测试官方三个脚本§5. 实战4 对经典等排体打分§6. API 参数与 5 条实测踩坑§7. 局限与展望§8. 结语相关教程与核心文献资源链接与本文关系GitHub 仓库 hesther/espsimgithub.com/hesther/espsim本文部署与测试的出处实测 239 star / MIT / 最近更新 2025-08官方 README 安装与用法README.md安装命令、API 语义、目标值 0.85 的出处espsim 论文Bolcato G, Heid E, Boström J.JCIM62(6):1388-1398, 202210.1021/acs.jcim.1c01535工具本身的出处含 DeepFMPO v3D 骨架跃迁基准Good AC 等Gaussian 快速分子相似度JCICS32:188-191, 199210.1021/ci00007a002三 Gaussian 拟合库仑势方法的原始文献Carbo R 等LCAO–MO 相似度度量Int. J. Quantum Chem.32:517-545, 198710.1002/qua.560320412Carbo 相似度指数的原始文献§1. 场景什么时候你需要 ESP 相似度先导化合物优化走到骨架跃迁或等排体替换时最常遇到的困境是两个分子 2D 结构差很远但药效团和静电谱几乎一样这正是替换成功的前提或者反过来2D 指纹高度相似但关键位点的静电分布已经变了。2D Tanimoto 对这两类情况都无能为力——它根本不看三维空间里的电子分布。ESP静电势相似度就是为这个场景设计的打分它把两个分子按共同骨架叠合后比较周围空间静电势场的重叠程度。典型用途等排体验证COOH→四氮唑、酰胺→三唑、磺酰胺→磺酰脲替换后 ESP 谱是否保持骨架跃迁打分生成模型或你自己的设计给出大量候选用 shape ESP 双分数快速过滤虚拟筛选精排对接打分排在 shape/ESP 相似度之后做第二道过滤器老药新用检索以已知活性配体为参照比较库内分子的三维静电谱。商业工具里这套逻辑的代表是 OpenEye 的 ROCS/EONespsim 是 MIT Esther Heid 组开源的轻量替代——纯 Python、RDKit 生态、几秒一个分子适合批量前处理和教学复现。§2. 原理三 Gaussian 展开 Carbo 指数一句话把静电势的 1/r 项用三个 Gaussian 函数拟合展开两个分子 ESP 场的重叠积分就有了解析解再归一化成相似度指数。具体分两步对应上面两篇原始文献ESP 重叠积分每个原子视为点电荷库仑势 1/r 用三组 Gaussian 线性组合逼近Good 1992 的经典做法也是 shape-only 打分 ROCS 的数学基础。两个分子 A、B 的 ESP 乘积在全空间的积分就变成一堆双中心 Gaussian 积分的求和——全是解析式不用数值格点速度极快。归一化成指数Carbo 指数 ∫VA·VB / √(∫VA²·∫VB²)范围 [-1, 1]Tanimoto 变体 ∫VA·VB / (∫VA²∫VB²−∫VA·VB)对静电差异惩罚更重。分子完全相同 1。形状分数直接调 RDKit 的ShapeTanimotoDist取 1−d。整个过程在消费级 CPU 上毫秒级完成不需要 GPU。§3. 本地部署Ubuntu纯 CPU仓库自带的environment.yml把 psi4QM 电荷、resp、chemprop-atom-bondML 电荷、pytorch 全列进去了全套 conda solve 又重又慢。核心 ESP shape 打分只需要 rdkit/numpy/scipyQM/ML 电荷是可选增强先跑通再按需补。# 1. 克隆仓库 cd ~/Desktop/M3 git clone --depth 1 https://github.com/hesther/espsim cd espsim#2. 独立 conda 环境Python 3.10 conda create -n espsim python3.10 -y conda install -n espsim -y -c conda-forge rdkit numpy2 scipy scikit-learn tqdm说明环境里的 rdkit 由 conda-forge 提供如果 conda solve 卡住拆开装或用 pip 补pip install numpy2 scipy scikit-learn tqdm#3. 源码安装 espsim 本体 conda run -n espsim pip install -e .#4. 关键一步压 setuptools见 §6 踩坑 1 conda run -n espsim pip install setuptools81装完的版本清单实测Python 3.10 / rdkit 2026.03.5 / numpy 1.26.4 / scipy 1.15.3 / espsim 0.0.1 / setuptools 80.10.2。Windows 用户rdkit 走conda install -c conda-forge rdkit同样可用其余命令不变本文所有测试在 Ubuntu 22.04 完成。§4. 安装测试官方三个脚本仓库scripts/下自带三个测试脚本装完先跑它们确认环境健康cd ~/Desktop/M3/espsim python scripts/test_esp_function.py # ESP 相似度主测试 python scripts/test_imports.py # 导入完整性 python scripts/test_embedalignscore.py # 嵌入叠合打分全链路实测结果Ubuntu 22.04纯 CPU脚本实测输出判定test_esp_function.pymol / mol2 / sdf 三种格式读入全部0.85与 README 声明的 target: 0.85 精确一致test_imports.pyTest passed, imports work fine.通过test_embedalignscore.py8 个苹果酸类似物 shape/ESP 打分表正常输出如 CCC(C(O)O)O → 0.95 / 0.77通过test_esp_function.py的 0.85 是最好的环境健康指标——它验证的不只是 import而是 Gaussian 积分、电荷读取、叠合全链路的数值正确性。§5. 实战4 对经典等排体打分环境通过后用真实等排体对验证打分行为。以苯甲酸为参照测 4 个替换方向 自对照import numpy as np from rdkit import Chem from rdkit.Chem import AllChem from espsim import EmbedAlignScore def prep(smi): m Chem.AddHs(Chem.MolFromSmiles(smi)) # 必须加氢 AllChem.EmbedMultipleConfs(m, numConfs10, randomSeed42) return m ref prep(OC(O)c1ccccc1) # 苯甲酸 prb prep(c1ccc(cc1)c2nnn[nH]2) # 5-苯基四氮唑 shape, esp EmbedAlignScore(prb, ref) # 返回的是 list print(fshape{max(shape):.3f} esp{max(esp):.3f})实测分数表Gasteiger 电荷中性形式10 构象取最优对比组shapeESP (carbo)苯甲酸 vs 5-苯基四氮唑COOH→四氮唑0.8590.496苯甲酸 vs 烟酸间位 CH→N0.9870.782苯甲酸 vs 硝基苯COOH→NO₂弱等排0.9880.544苯甲酸 vs 阿司匹林酰化 邻位取代0.7050.421苯甲酸 vs 自身sanity check1.0001.000三个行为值得注意shape 和 ESP 明显解耦硝基苯形状 0.988 几乎完美重叠ESP 却只有 0.544——这正是 2D/shape-only 打分看不见、ESP 打分能抓住的差异自对照 1.000说明叠合和积分管线无系统偏差四氮唑的 ESP 分数偏低是电荷模型的锅不是方法失效四氮唑作 COOH 等排体的关键在去质子化态的负电分布而 Gasteiger 在中性形式上算电荷见 §7。同一对分子还能切换积分方式和指标已叠合构象直接调GetEspSim配置实测值说明metriccarbo默认gauss 积分0.519解析积分毫秒级metrictanimoto0.348对静电差异惩罚更重integratemc, nMC50.579Monte Carlo 数值积分可交叉验证renormalizeTrue0.759重标到 [0,1]跨批次比较友好§6. API 参数与 5 条实测踩坑GetEspSim的完整签名源码实测GetEspSim(prbMol, refMol, prbCid, refCid, prbCharge, refCharge, metric, integrate, partialCharges, renormalize, customrange, marginMC, nMC, basisPsi4, methodPsi4, gridPsi4, ...)。想用 QM 电荷时传partialChargespsi4需另装 psi4或用chemprop-atom-bond的 ML 电荷模型需 pytorch。踩坑清单全部实测复现#症状根因修复1ModuleNotFoundError: No module named pkg_resourcesespsim 0.0.1 的helpers.py用了被 setuptools 81 移除的旧 APIpip install setuptools81实测装 80.10.2 通过2分子没加氢结果异常 RDKit 警告Gasteiger 电荷和 shape 都依赖显式氢Chem.AddHs(mol)必须在嵌入前调用3TypeError: unsupported format string passed to list.__format__EmbedAlignScore返回的是构象列表不是标量max(shape)/max(esp)取最优构象4GetEspSim() got unexpected keyword prbConfId构象参数名是prbCid不是prbConfId且GetShapeSim没有metric参数shape 固定用 RDKit Tanimoto 距离按源码签名传参5conda 按environment.yml全家桶 solve 超时/卡死psi4 pytorch resp 通道混合求解空间巨大只装 rdkit/numpy/scipy 核心件QM 电荷后补§7. 局限与展望Gasteiger 电荷是默认天花板对中性小分子 SAR 排序够用但带电物种羧酸/四氮唑的生理态就是阴离子的 ESP 谱会系统性失真。要过硬结论需换psi4RESP 级 QM 电荷或 chemprop-atom-bond 的 ML 电荷——这也是作者组自己论文里 ML 电荷模型的动机。带电分子务必先用小测试集校验电荷敏感性。单构象叠合假设EmbedAlignScore用 RDKit 嵌入 对齐柔性分子需要多构象取最优本文 10 构象高柔性大分子的构象采样会成为瓶颈。版本停滞风险0.0.1 是 PyPI 唯一版本仓库最近一次推送 2025-08issue 只有 3 个 open——小而稳但pkg_resources这类依赖腐烂要自己扛好在修复只要一行。结语espsim 的定位很清楚ROCS/EON 的开源轻量平替一条 pip 命令就能给你的等排体和骨架跃迁候选加一道静电维度过滤。核心管线三行代码出分数官方测试 0.85 精确复现说明数值可信。下一步建议把你手头类似物系列的参照配体挑出来先跑EmbedAlignScore批量打分发现 shape 高 ESP 低的假相似分子时再上 psi4/ML 电荷复核——这个两段式流程能覆盖大多数先导优化的静电评估需求。参考来源hesther/espsim 仓库github.com/hesther/espsim实测 2026-09239 star / 53 fork / MIT / espsim 0.0.1espsim 论文Bolcato G, Heid E, Boström J.On the Value of Using 3D Shape and Electrostatic Similarities in Deep Generative Methods. JCIM 62(6):1388-1398, 2022. DOIGood AC 等 Gaussian 相似度方法JCICS32:188-191, 1992. DOICarbo 相似度指数Carbo R, Arnau M, Leyda L.Int. J. Quantum Chem.32:517-545, 1987. DOI本文全部实测命令与输出随文资产包espsim-资产包.zipdemo 脚本 实测输出记录路径已脱敏更多专栏蛋白 / 多肽分子模拟 / 动力学分子对接 / CADD / 工具其他开源蛋白结构推理预测分子模拟基础UCSF DOCK系列agent智能体系列开源蛋白生成方法实践分子动力学模拟-AmberrDock系列化学大模型介绍2025蛋白药物设计-原理与案例剖析分子动力学模拟-GromacsLeDock系列我胡师兄说药开源多肽设计模型和方法实践結合自由能CADD中的机器学习模型siRNA药物设计模型开源多肽性质预测高效计算基本配置小分子药物设计-原理与案例剖析ASO药物设计模型多肽药物设计-原理与案例剖析作用于DNA/RNA的药物设计实践开源小分子生成和设计实践开源药代动力学模拟软件

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询