生成式分子设计与先导优化
生成式分子设计不从现成化合物库里挑,而是让模型按设定目标直接产生新结构。常见两类思路:基于配体的生成从已知活性分子的化学空间出发,产出相似但不同的分子,适合先导优化;基于口袋的生成在蛋白结合位点的几何约束下直接生成分子,适合骨架跃迁或从头设计。两类方式都需要一个打分函数来定义什么叫好分子——通常是活性预测、对接得分、ADMET 性质和可合成性的组合。生成式方法真正的难点不在生成本身,而在打分函数的设计:优化目标写得稍有疏漏,模型就会产出得分很高却毫无意义的结构。
什么时候用
- 已有活性骨架,想在保留核心结构的前提下批量产生类似物
- 需要骨架跃迁,绕开已有专利或改善某个性质瓶颈
- 希望在活性之外同时优化溶解度、代谢稳定性等多个目标
- 有口袋结构,想在几何约束下从头生成候选分子
- 需要为某个取代位点枚举片段,再按打分排序
- 想扩展一个化学系列的 SAR 探索范围
不适合的情况
- 打分函数不可靠时追求高得分:模型会专门找打分函数的漏洞
- 希望直接得到可进临床的分子:生成结果仍需合成、测活和多轮优化
- 数据极少且无靶点结构:既无活性模型也无几何约束,生成缺少方向
需要准备的数据
- 起始分子或骨架
- SMILES 形式的活性分子、需保留的骨架或片段;用骨架约束时标明可修饰的连接位点
- 打分函数定义
- 各目标项及其阈值与权重,如活性预测、对接得分、QED、可合成性、分子量上限
- 活性预测模型或靶点结构
- 基于配体时需训练好的 QSAR 模型;基于口袋时需蛋白结构和已定义的结合位点坐标
- 结构过滤规则
- 需排除的子结构(PAINS、反应性基团、不稳定官能团)与性质范围约束
- 参考化合物集
- 已知活性分子与已有专利分子,用于评估生成结果的新颖性和相似度
分析步骤
- 1
明确优化目标
先把要解决的问题写成具体指标:是提高活性、改善溶解度、降低 hERG 风险,还是换骨架。目标写得含糊会导致打分函数含糊,生成结果无法评价。建议列出必须满足的硬约束和希望改善的软目标,分开处理。
- 2
选择生成方式
有明确骨架要保留时用骨架约束生成或片段生长,只在指定位点做修饰;要换骨架时用自由生成或基于口袋生成。约束越强,结果越可控但多样性越低;约束过松会产出大量偏离项目范围的结构。
- 3
搭建打分函数
把多个目标组合成一个打分:常见做法是对每项用分段函数映射到 0 到 1,再加权求和或取几何平均。几何平均对任一项很差的分子惩罚更重,不容易出现用一项极高分掩盖其他项不合格的情况。
- 4
加入硬性过滤
在打分之前先过滤:排除 PAINS 和已知反应性基团、限制分子量和可旋转键、要求可合成性在可接受范围。过滤放在打分前能避免模型把算力花在注定被淘汰的结构上,也防止这些结构污染排序。
- 5
运行生成与迭代
生成一批分子,打分,用高分样本引导下一轮(强化学习或迭代微调)。每轮记录得分分布和结构多样性。若得分快速上升但生成结构趋同,说明模型已收敛到某个局部区域,应提高多样性惩罚或重启。
- 6
检查打分是否被钻空子
把得分最高的几十个分子画出来人工看。典型的漏洞信号是:出现大量长链、重复基团、异常多的卤素或超大环,这些结构往往只是让某个描述符取极值。发现这种情况要回去修打分函数,而不是继续加轮次。
- 7
去重与聚类
按规范 SMILES 去重,再按骨架或指纹聚类,每簇挑代表分子。生成结果里大量近似重复很常见,不聚类直接取前列会得到同一个结构的多个琐碎变体,浪费后续评估名额。
- 8
可合成性与路线核查
对入选分子做逆合成路线检查,确认能用可购原料在可接受步数内做出来。可合成性打分只是粗筛,真正决定能否推进的是是否找到路线以及关键原料的可得性。
关键参数与决策
打分项的权重与组合方式
加权求和允许某项极高分补偿其他项,几何平均或乘积要求各项都达标。先导优化阶段通常需要全部达标,宜用乘积型组合;探索阶段可以放宽。权重设定后要用已知分子验证排序是否符合预期。
多样性约束
生成过程中若不惩罚相似结构,模型会反复输出同一区域的分子。常用做法是对与已产出分子相似度过高的样本降低奖励,或限制同一骨架的产出数量。约束太强则会牺牲得分,需要折中。
性质硬约束范围
分子量、cLogP、TPSA、可旋转键数、氢键供受体数的上下限要按项目类型设定,口服小分子与其他给药方式差别很大。范围设得太宽会让生成结果偏离可成药空间,太窄会压缩可探索的化学空间。
骨架约束与修饰位点
明确哪些原子必须保留、哪些位点可改。位点开放越多,组合空间越大,结果越难控制。实践中常一次只开放一到两个位点,分轮推进,便于把活性变化归因到具体修饰。
每轮生成数量与轮次
单轮样本量太小会让奖励信号噪声大,太大则每轮耗时长。轮次过多容易过度优化打分函数。建议固定一个中等样本量,监控得分分布与多样性,二者同时恶化时停止。
常见错误
- 完全信任打分函数:模型会找到让打分极高而化学上不合理的结构,这是生成式方法最常见的失败模式。
- 用对接得分当唯一目标:结果常是分子量很大、能填满口袋的油腻分子,实际溶解度和选择性都不可用。
- 不做子结构过滤:生成结果里混入反应性基团和干扰筛选的 PAINS 结构,后续实验得到假阳性。
- 忽略可合成性:得分最高的一批分子常常无法在合理步数内合成,等于白跑一轮,优化方向也无法被实验检验。
- 不去重不聚类就取前列:挑出的分子彼此只差一个甲基,信息量重复,浪费合成与测试资源。
- 不检查与已有专利分子的相似度:生成出落在他人保护范围内的结构,后续推进受限,发现得越晚返工代价越大。
结果怎么看
得分分布随轮次变化
看各轮得分的中位数与分布宽度。健康的优化是中位数上升而分布仍有宽度;若分布迅速收窄成一条窄峰,说明已坍缩到单一结构区域,此时继续迭代不会带来新信息。
生成分子属性分布
把分子量、cLogP、TPSA、可旋转键的分布与参考活性分子集对比。生成分子整体漂向更大更亲脂的区域是典型的打分函数缺陷信号,需要补上性质惩罚项。
候选分子列表
每行一个分子,含结构、各打分项数值、与最近已知活性分子的相似度、可合成性或是否找到合成路线。应逐个看结构图,纯看数值挑分子几乎一定会挑进不合理结构。
多样性与新颖性指标
常看有效性(能被正确解析的比例)、唯一性、相对训练集的新颖性和集合内平均相似度。新颖性极高但有效性或可合成性很低,说明模型在生成训练分布之外的无意义结构。
骨架聚类概览
按骨架聚类后看簇数与各簇大小。少数几个大簇说明探索不足;若希望骨架跃迁,应关注那些与起始骨架差异大且仍满足全部硬约束的小簇。
和相近方法怎么选
生成式设计与虚拟筛选
虚拟筛选在已有化合物库里挑,命中分子多数可以直接购买,推进快,但受库的覆盖限制;生成式设计可以产出库里不存在的结构,化学空间更大,代价是每个分子都要自己合成,且需要额外的可合成性把关。资源有限时先做筛选,遇到专利或性质瓶颈再转生成。
基于配体生成与基于口袋生成
基于配体的生成依赖已知活性分子,产出与起始系列相近的结构,适合优化;基于口袋的生成只需蛋白结构,能提出全新骨架,但受对接或结合预测准确性限制,假阳性比例更高。有可靠活性数据时前者更稳,缺数据而结构清楚时用后者。
生成式设计与人工类似物设计
人工设计一次只能提出少量分子,但每个都考虑了合成路线、专利和机制;生成式方法可以在短时间内枚举大量变体,覆盖人想不到的组合。当前可行的分工是用模型扩大候选池,由化学家判断哪些值得合成。
常见问题
生成的分子真的能合成吗
不一定。可合成性打分只是基于子结构复杂度的粗略估计,真正的判断要靠逆合成路线搜索:看能否在可接受步数内用可购原料拆到底。实践中建议把路线搜索直接作为筛选的一环,没有找到路线的分子不进入合成名单。
打分函数被钻空子怎么识别和解决
识别方式是把高分分子画出来看:如果反复出现长链、重复片段、异常多的卤素或超大环,就是模型在让某个描述符取极值。解决办法包括给这些特征加惩罚、改用乘积型组合使任一项不合格就整体失分、加入硬性性质范围和子结构过滤,而不是继续增加训练轮次。
生成式设计需要多少活性数据
取决于路线。基于口袋的生成不需要活性数据,但需要可靠的结构和结合位点;基于配体的优化需要足够的数据来训练活性预测模型,数据越少,打分函数越不可信,这时应降低对活性项的权重,更多依赖性质和结构约束,把生成当作扩展探索范围的工具。
生成的分子怎么挑出去做实验
常见流程是:硬约束过滤,去重后按骨架聚类,每簇取代表,再核查与已知活性分子和专利分子的相似度、逆合成路线是否成立、ADMET 预测有无明显红灯,最后由化学家逐个看结构。最终名单应覆盖多个骨架,而不是同一结构的若干微小变体。
在 Codar 里怎么做
在生信模式里说明起始骨架、优化目标和约束,Codar 会先确认打分函数的组成,再运行生成式分子设计与 ADMET 优化,或从靶点出发走靶点到先导化合物发现的流程,交付候选分子列表与结构图、各打分项数值、属性分布对比、骨架聚类概览和可复现脚本。
这是我的先导化合物 SMILES,核心骨架要保留,想在两个取代位点上生成类似物,目标是降低 logP 并保持预测活性,给我按多目标打分排序的前 30 个分子。