想象一场“分子厨王争霸赛”。两位厨师站在同一条起跑线上,面对同一间巨大的食材仓库——里面堆着超过 10 的 60 次方种“食材组合”,比宇宙中的原子还多。第一位厨师叫“从头设计”,他不看任何菜谱,仅凭对目标口味(比如“降血糖”)的理解,自由挑选食材,发明一道前无古人的新菜。第二位厨师叫“先导优化”,他面前摆着外婆传下来的一道经典菜——这道菜已经有一点效果了,但太咸、不够香,他要做的是在不推翻配方的前提下,一点点调整火候与配料,让这道菜更完美。 这两位厨师,正是药物发现中两种典型的分子生成任务。它们共享同一个底层工具——AI 分子生成模型,却有着截然不同的任务设定:搜索范围、评估指标、约束条件、数据要求全都不同。如果分不清自己在做哪道菜,模型再强大也会跑错方向。这篇文章就用这场“厨王争霸赛”做隐喻,带你掰开揉碎分子生成的任务定义,让 AI 从业者像懂行的评委一样,一眼看出一个生成项目在做什么、做得对不对。
对 AI 从业者而言,把从头设计与先导优化的任务边界、评估指标与约束条件钉在纸面上,是生成模型落地药物发现的第一课——避免“跑通模型却造不出药”的经典项目翻车。
目录
可视化演示
演示De Novo从头分子设计与Lead Optimization先导优化两种任务流程及评估指标对比,交互切换查看分子生成任务定义差异。
本节配有交互动效(进入视口后自动加载,约 3KB)。
De Novo从头分子设计 从随机噪声出发生成全新分子结构 约束条件包括药效团分子量logP等属性 mol = Gen(z | constraints) De Novo不受已知分子限制可探索更大化学空间
一、任务定义对比:发明新菜 vs 打磨配方
厨王争霸赛的第二轮考题公布了:要做一道“既能降血糖又美味”的菜。厨师“从头设计”抬头望向整座食材仓库——数亿种食材、无数种搭配,他要从零开始发明一道新菜。厨师“先导优化”则低头看外婆的菜谱:这道家常菜已有微弱降糖效果,但偏咸油腻,他要小步改进,而不是推倒重来。
在 AI 药物发现里,这两位厨师正是分子生成的两大任务类型。De Novo Design(从头设计):给定一个靶点,模型在广阔化学空间中生成结构全新的候选分子,往往还希望它们可申请专利——像“发明新菜”,奖励创造力。Lead Optimization(先导优化):已有一个初步活性的先导化合物,模型在保住核心骨架的前提下做局部修饰,改善活性、毒性、溶解性等性质——像“打磨祖传配方”,奖励精准改良。
两者本质差异在搜索空间。数学上,从头设计在整个化学空间 C 中找最优,先导优化则被限定在先导分子 x_lead 的相似邻域 N 中:
一句话回扣:同样做“好吃的分子”,前者的边界是全世界,后者的边界是配方周围半步。任务定义不清,模型就会拿着望远镜进了小厨房——开工第一件事,永远是回答“我在做哪类任务”。
- 目标函数 f(x)f 是打分函数,把任意分子 x 映射成一个数值,数值越高代表越接近理想药物。打分函数通常由活性、类药性、可合成性等多维指标加权组成。
- 全局化学空间 CC 表示所有理论上可存在、可通过化学反应合成的分子集合;从头设计允许 x 取遍整个 C。
- 先导邻域 NN 是围绕先导分子的一个“相似度小球”,只包含与 x_lead 结构相近的分子。先导优化强制 x 落入这个球内,用相似度阈值 δ 控制半径。
- arg max 的含义表示“使括号内表达式取值最大的那个自变量”,也就是最终挑选出的最优分子 x*。
二、化学空间探索:10 的 60 次方种食材
厨师们接着参观了食材仓库的监控室,大屏上显示:仓库共有约 10 的 60 次方种食材组合,比可观测宇宙的原子总数还多。就算每秒试吃一种,尝到宇宙毁灭也尝不完。但更关键的发现是:仓库里绝大多数组合是“黑暗料理”——有毒、不稳定、根本没法下锅。真正值得端上桌的“类药分子”只占极小一隅。
化学空间之所以浩瀚,是因为分子由原子与键的自由组合构成,仅按常见原子和成键规则估算,可能的分子就有 10^60 量级。但药物必须口服吸收、代谢稳定、毒性可控,于是药物化学家总结出 Lipinski 五规则(Rule of Five) 作为初筛清单:
除了类药性,还有“能不能做出来”的问题。合成可及性(Synthetic Accessibility) 用 SA 分数衡量合成难度,1 到 10 分,越高越难。一个分子再漂亮,如果需要 20 步反应才能合成,就没有实用价值——正如食材再高级,耗时三天三夜的菜也上不了晚市。化学空间约束决定了搜索从哪里开始、到哪里结束,生成模型的任务本质上是在这片“能吃且做得出来”的区域里定向找最优解。
- 亲脂性上限 logPlogP 是油水分配系数的对数,衡量分子“喜欢油”还是“喜欢水”。过高则难溶于血液、易被代谢,相当于菜里油太多糊嗓子。
- 分子量上限 MW分子量超过 500 的分子通常难以穿透细胞膜被吸收,好比菜太大块难以下咽。
- 氢键供体 HBD氢键供体过多会降低口服生物利用度,相当于配料太黏、口感发腻,限制其不超过 5 个。
- 氢键受体 HBA氢键受体数量限制在 10 以内,保证分子能顺利穿过肠壁被吸收。
三、核心评估指标:三位评委的评分表
菜品端上来后,三位评委开始打分。一号评委尝一口——管味道,对应“活性”;二号评委看营养表——管健康,对应“类药性”;三号评委要食谱——管能否复现,对应“可合成性”。任何一位打低分,这道菜就拿不了冠军。
活性评价是最直接的指标,包括实验测得的 IC50/EC50(半数抑制/激活浓度,数值越小活性越强)和计算代理指标(如对接打分 Docking Score、药效团匹配度)。但实验数据昂贵,计算打分又有误差,因此活性常常是“第一道坎”而非全部。类药性层面,除了 Lipinski 规则,研究者常用 QED(Quantitative Estimate of Drug-likeness,类药性定量估计)把多个性质压缩成一个 0 到 1 的分数,越接近 1 越像已上市药物:
可合成性层面,SA 分数把合成难度量化为 1-10,于是综合评估常写成加权和:总分 = w₁ × 活性 + w₂ × QED + w₃ × SA,权重由任务阶段决定——发现阶段更看活性与新意,优化阶段更看类药性与可合成性。这就像三位评委的权重可以调整:晚市要快上菜,三号评委的分量就加重。
- 单性质期望 d_i每个药物性质(如 logP、分子量)对应一个“期望得分”函数 d_i,取值 0 到 1,越接近 1 代表该性质越像已知药物。
- 取对数 ln d_i取对数让乘法变成加法,方便把多个性质得分叠加——相当于把多位评委的分数折成同一把尺子。
- 平均并还原先对 n 个性质求几何平均,再用 exp 还原回 0-1 区间,得到整体类药性分数 QED。
四、关键约束条件:后厨红线不能碰
餐厅后厨贴着一张红色的 A4 纸,上面写着硬性红线:禁用花生油(过敏原)、每道菜预算不超过 50 元、上菜时间不超过 40 分钟。分子生成同样有一堆“红线”约束,它们以不等式或过滤规则的形式进入任务定义。
第一类红线是活性与选择性约束:药物不仅要与目标蛋白结合,还不要误伤同家族的其它蛋白,否则副作用失控。第二类是安全性约束:预测毒性(如 hERG 心脏毒性、基因毒性)超过阈值就一票否决。第三类是物理化学性质区间:溶解度、渗透性、代谢稳定性要落在合理窗口内——太油不行,太溶于水也进不了细胞膜。
把这些约束写成标准的约束优化问题,就是:
约束不写进目标函数,生成模型只会疯狂“刷活性分”,产出一堆过不了红线的废品;约束太多太严,又会把搜索空间压成“点”,生成多样性归零。如何在红线和自由之间取平衡,正是任务定义的艺术。
- 最大化活性 Activity(x)目标是找到活性打分最高的分子,这是优化方向。
- 受约束于 s.t.s.t. 是 subject to 的缩写,表示后面跟着硬性限制条件。
- 毒性上限 Tox(x) ≤ θ_t分子的毒性预测值不能超过安全阈值 θ_t,红线一票否决。
- 可合成上限 SA(x) ≤ θ_s合成可及性打分不能超过阈值 θ_s,保证生成的不是“纸上分子”。
五、数据构建要求:可靠菜谱与海量食材清单
两位厨师的技术传承来自一本本菜谱:有的菜谱详细记录每道菜的火候、用量、试吃结果——相当于活性标注数据;有的只有食材清单,没有口味反馈——相当于无标签数据。师父说:标注菜谱太少太贵,食材清单管够,你们得学会两者搭配着看。
分子生成的数据要求与此高度一致。活性标注数据是金贵的:测定一个化合物对靶点的活性需要生物实验,一条数据成本动辄几十到几百元,公开数据库(如 ChEMBL、BindingDB)里高质量标注更是稀缺。无标签分子库则便宜得多,ZINC、PubChem 里有上亿个已知化合物,它们虽然不知道活性,但蕴含“哪些结构是真实可合成”的语法先验——生成模型先用它们学分子语法,再用少量标注数据学生物语义。
数据处理的另一关键是质量与一致性:不同实验室测同一化合物的 IC50 可能差一个数量级,标注噪声过大会把模型带偏。常用 Tanimoto 相似度做数据去重与相似性分析:
数据就是师傅手抄的菜谱,量不要求最多,但每一条都要可靠。只有“详细注记的菜谱 + 大量食材清单”配合使用,学徒才能既学会做菜语法,又懂得迎合评委口味。
- 分子特征集 A、B把分子表示成指纹特征集合,每个元素代表一种结构片段或子结构是否存在。
- 交集 A∩B两个分子共有的特征数,共同特征越多越相似。
- 并集 A∪B两个分子特征的总并集数量,用于归一化,抵消分子大小差异。
- 相似度比值交集占并集的比例,取值 0 到 1;0.85 以上通常被认为结构高度相似。
六、模型目标设定:学徒手上的功夫与师父的点评
学做菜不能只靠看菜谱,还要上手炒、听师父点评、不停调整手法。分子生成模型也一样:先在大规模分子库上“模仿”学会化学语法,再根据打分函数的反馈“优化”自己的生成策略。
在技术实现上,生成模型(如变分自编码器 VAE、生成对抗网络 GAN、基于 Transformer 的 SMILES 语言模型、扩散模型)负责从条件 c 采样分子;条件可以是靶点口袋特征、期望属性向量或相似度参考。任务目标常被写成“条件生成 + 奖励期望最大化”:
这里 R(x) 就是把前几节的指标揉在一起的奖励函数。若用强化学习微调,模型生成一批分子 → 打分 → 用策略梯度等算法更新参数,反复迭代让奖励期望上升;若用条件扩散或条件 VAE,则通过重参数化与重构损失把条件约束嵌进生成过程。值得注意的是多样性这条隐式目标:一味逼近奖励最高的分子,模型会坍缩成反复输出同一个“高分模板”。任务定义里通常还会加入多样性奖励或相似度惩罚,相当于师父在点评时补一句:“同样的菜别端十遍。”
- 条件生成分布 p_θ(x|c)生成模型在条件 c(如目标蛋白口袋或期望性质)下生成分子 x 的概率分布,θ 是网络参数。
- 采样符号 x ∼ p_θ从该分布中抽取分子样本,相当于厨师学徒按当前手艺随机做一道菜。
- 奖励期望 E[R(x)]对所有采样分子的奖励 R(x) 求期望,作为训练目标;梯度上升让模型倾向生成高奖励分子。
七、实践风险难点:赛场上的翻车事故
比赛到了关键一轮,翻车事故接连上演。一号厨师烧糊了锅——模型生成一堆“坏分子”;二号厨师照搬外婆菜谱,忘了评委换了一批人——模型过拟合训练分布,新意无限趋近于零;还有人在评委只尝一口后就吹嘘菜品完美——模拟打分高,湿实验却不过关。
这三大翻车现场对应分子生成的三大实践难点。无效分子问题是入门第一坑:SMILES 语法不合法、原子价不对,生成一万个,九千个是乱码,用有效性(validity)指标一测便知:
过拟合风险则更隐蔽:当训练数据分布单一,模型记住的只是“重复已知分子的变体”,从头设计的“新”名存实亡,需要靠新颖性(与训练集最大 Tanimoto 相似度)指标监控。实验闭环验证是最容易被 AI 团队忽略的:计算指标是代理,真实药效只能由湿实验裁决——生成 100 个候选,合成验证 10 个,反馈修正模型,构成“生成-预测-实验-再生成”的飞轮。再好的厨师也不能只靠想象力比赛,火候、食材、评委口味都要落实到现场,任务定义的最后一步永远是“如何闭环到实验”。
- 生成总数 N_generated模型一次性输出的分子总个数。
- 有效数 N_valid通过化学价、原子连接规则等合法性检验的分子数量。
- 有效比例两者之比反映模型“说人话”的能力,低于 0.9 说明模型常生成坏分子。
AI 应用场景
场景一:全新靶点的苗头化合物发现
阶段:数据处理与建模阶段(分子生成)
解决的问题:传统高通量筛选需要筛几十万化合物,成本高、命中率低。从头设计直接在靶点口袋的约束下生成候选结构,把“大海捞针”变成“定向捕捞”——这是 De Novo Design 最典型的战场。
具体案例:某团队针对 KRAS 突变靶点,用条件生成模型产出 3000 个新颖骨架,经对接打分筛选后挑 50 个进湿实验,命中 6 个微摩尔级苗头化合物,其中 2 个骨架未见于文献报道。
场景二:临床前候选药物优化
阶段:模型微调与迭代优化阶段(先导优化)
解决的问题:苗头化合物活性够但毒性大、溶解性差,人工修饰周期长。先导优化模型在强制保持结构相似度的前提下改造性质,显著缩短优化周期。
具体案例:某候选分子活性 50 nM 但 hERG 心脏毒性风险高,模型迭代 5 轮生成 200 个类似物,筛选出活性保持且 hERG 风险降低 3 倍的分子,进入动物实验阶段。
场景三:专利规避与差异化设计
阶段:约束条件下的可控生成阶段
解决的问题:原研药专利悬崖临近时,需要设计结构不同但活性相当的分子。任务被定义为“带专利相似度约束的从头设计”,既要新又要好。
具体案例:某仿制药企以原研药为相似度参考,对生成模型施加专利 Tanimoto 距离约束,产出 120 个差异化骨架,其中 8 个通过了体外活性初筛。
Python 演示
# -*- coding: utf-8 -*-"""Lead optimization demo: mutate one fragment each round."""import random LEAD = ('benzene', 'carbonyl', 'amino', 'methyl') FRAGMENT_LIB = { 'benzene': 1.0, 'pyridine': 0.9, 'pyrimidine': 0.8, 'furan': 0.7, 'carbonyl': 0.9, 'ether': 0.8, 'ester': 0.6, 'amino': 0.8, 'hydroxyl': 0.7, 'fluorine': 0.9, 'chlorine': 0.6, 'methyl': 0.8, 'ethyl': 0.7, 'CF3': 0.9,} def similarity(a, b): same = sum(1 for x, y in zip(a, b) if x == y) return same / max(len(a), len(b)) def activity(mol): score = 0.0 for frag in mol: score += FRAGMENT_LIB.get(frag, 0.5) return score / len(mol) def drug_likeness(mol): good = sum(1 for f in mol if f in ('benzene', 'amino', 'hydroxyl', 'carbonyl')) return 1.0 - abs(good - 2) / 4.0 def score(mol): sim = similarity(mol, LEAD) act = activity(mol) dl = drug_likeness(mol) return 0.4 * act + 0.3 * dl + 0.3 * sim def mutate(lead): idx = random.randrange(len(lead)) frags = list(lead) frags[idx] = random.choice(list(FRAGMENT_LIB)) return tuple(frags) def main(): best = LEAD best_score = score(best) print('Lead:', best, 'score: %.3f' % best_score) for i in range(200): cand = mutate(best) s = score(cand) if s > best_score: best_score = s best = cand print('Round %d improved:' % (i + 1), best, 'score: %.3f' % best_score) print('Final:', best) if __name__ == '__main__': main()
LEAD = ('benzene', 'carbonyl', 'amino', 'methyl')把先导分子表示成片段元组,每个片段相当于菜谱里的一种配料。FRAGMENT_LIB片段库提供可替换的“备选配料”,并给出每种的先验活性贡献。def similarity(a, b)计算候选与先导的相似度,强制优化不偏离核心骨架。def activity(mol)用片段平均贡献近似活性;真实场景会换成对接打分或 QSAR 模型。def drug_likeness(mol)衡量“健康程度”,惩罚过于偏离类药结构的分子。return 0.4 * act + 0.3 * dl + 0.3 * sim多目标加权打分,对应文中“三位评委权重不同”。def mutate(lead)单点变异:随机替换一个片段,模拟先导优化的局部搜索算子。if s > best_score:只接受得分更高的分子,贪心式爬山优化,对应逐轮改进的迭代过程。
常见误区
误区De Novo Design 的“从头”就是让模型随机生成一堆分子,不需要设定任何目标,生成完再人工挑一挑就行。
正解从头设计的“从头”指不从已知先导出发,不代表没有目标。它依然需要明确靶点活性打分、类药性约束,且模型要基于海量分子语法先验训练。就像“发明新菜”也要懂火候和食材搭配,不是闭眼乱撒调料。
为何常见:名字里的“从头”容易让人误以为抛弃全部先验知识。
误区生成分子只要对接打分够高就是好分子,活性是唯一标准,其它指标都是锦上添花。
正解活性高但毒性强、合成不了、不类药,仍然无法成为候选药。现实是多目标权衡:活性、类药性、可合成性、毒性都要纳入打分。类比评委不光看味道,还要看营养和能否稳定复现。
为何常见:活性最直观、也最容易量化,初学者习惯用单一数字衡量好坏。
误区模型在测试集上的 QED、对接分数高,就认为分子一定有效,可以直接送湿实验。
正解打分函数是代理模型,与真实生物活性之间存在巨大误差;真正药效必须由细胞甚至动物实验裁决。模拟指标只适合排序筛序,不能代替实验。就像厨师自己觉得好吃,不代表评委也认可。
为何常见:混淆了代理指标与真实目标,低估了计算与实验之间的鸿沟。
误区训练集越大模型越强,随便从多个数据库拼凑数据都能提升生成质量。
正解分子数据与语言数据不同,活性标注来自不同实验条件、不同批次,噪声和偏倚很大;同一化合物在不同实验室测得的 IC50 可能差一个数量级。数据一致性、标注可信度比体量更重要。
为何常见:深度学习在大数据上的成功让新手默认“数据 = 一切”,忽略了生物实验数据的特殊性。
误区只要把先导分子的原子随意替换几个,保持相似度分数高,就算完成了先导优化。
正解修改时要同时考虑活性保持、代谢稳定性、溶解度、选择性,且相似度度量方式要合理(如 Tanimoto 指纹)。乱改可能剧烈改变药效,甚至是“改一道菜加十勺盐”式的灾难。
为何常见:把“优化”理解成随机扰动,忽略了约束条件和目标函数的共同作用。
面试题
Q1. De Novo Design(从头设计)最核心的任务目标是什么?
- A.在已知活性分子附近做局部修饰
- B.只优化已有分子的合成路线
- C.从广阔化学空间探索全新候选分子← 正确答案
- D.为已有化合物搭建索引数据库
答案:C。从头设计像“发明新菜”,目标是在广阔化学空间中寻找全新结构;A 是先导优化的做法,B 只关心合成,D 是数据工程而非生成任务。
Q2. 先导优化(Lead Optimization)的搜索范围主要限定在哪里?
- A.结构相似的先导分子邻域← 正确答案
- B.宇宙中所有化学分子空间
- C.蛋白质口袋内部原子区域
- D.已知上市药物的列表区域
答案:A。先导优化像“打磨祖传配方”,范围是先导分子的结构相似邻域;B 是全局化学空间,C 是分子对接的作用区域,D 是药物信息库,均不符合先导优化的任务设定。
Q3. Lipinski 五规则中 logP 的建议上限是多少?
- A.不超过 3 个单位
- B.不超过 10 个单位
- C.不超过 500 个单位
- D.不超过 5 个单位← 正确答案
答案:D。五规则核心是 logP ≤ 5、分子量 ≤ 500、氢键供体 ≤ 5、受体 ≤ 10,D 正确;A 是更严格的设计标准而非规则本身,B 与 C 属于数字记忆混淆。
Q4. QED 指标的主要作用是什么?
- A.衡量分子与靶点的结合强度
- B.衡量整体类药性的偏好程度← 正确答案
- C.衡量合成路线的步骤数量
- D.衡量专利文本的覆盖范围
答案:B。QED 把多个类药性质压成 0-1 的几何平均分,B 正确;A 对应对接打分或 IC50,C 对应 SA 分数,D 是专利分析范畴。
Q5. 把活性、类药性、可合成性合成一个总分,常用方法是?
- A.三个指标两两做差的绝对值
- B.随机采样一个指标作为结果
- C.三者的归一化加权线性求和← 正确答案
- D.按分子量从小到大进行排序
答案:C。实践标配是加权求和(如 0.4×活性 + 0.3×类药性 + 0.3×可合成性);A 衡量指标间差异,B 是随机过程,D 是排序操作,都与综合打分无关。
Q6. 约束优化式 max Activity(x) s.t. Tox(x) ≤ θ 中 θ 表示什么?
- A.活性评分的预期最大值
- B.训练数据集中分子总数
- C.毒性指标允许的安全上限← 正确答案
- D.分子生成过程的步数上限
答案:C。s.t. 后面是硬性约束,θ 是毒性安全阈值,超过即一票否决,C 正确;A 是优化目标对象,B 与 D 与毒性约束无关。类比餐厅的“过敏原红线”。
Q7. 生成分子的有效性(validity)是如何计算的?
- A.有效分子数除以生成分子总数← 正确答案
- B.训练集分子数除以生成总数
- C.生成分子数除以活性分子数
- D.生成分子数与模型参数量之比
答案:A。validity = 合法分子数 / 生成总数,A 正确;B 错在拿训练集当分母,C 分子分母颠倒,D 引入与化学合法性无关的参数量。
Q8. 下列哪些属于分子生成任务的常见约束条件?
- A.合成可及性分数上限← 正确答案
- B.数据库缓存键值数量
- C.物理化学性质区间范围← 正确答案
- D.分子量必须大于一千
答案:AC。A 是合成约束、C 是理化性质约束,都是任务定义中的红线;B 是软件工程概念;D 方向反了——规则通常是给分子量设上限而非下限。
Q9. 关于训练数据对分子生成模型的影响,正确的有?
- A.活性标注噪声会误导模型方向← 正确答案
- B.数据分布单一导致泛化能力差← 正确答案
- C.正负样本失衡影响优化目标← 正确答案
- D.数据量越大模型性能必然越好
答案:ABC。A/B/C 分别是噪声、分布、样本平衡三类真实数据问题;D 忽略了生物数据的噪声与偏倚,分子数据并非“越多越好”,关键在标注一致性。
Q10. 关于从头设计与先导优化的对比,正确的有?
- A.两者都需要清晰的打分函数← 正确答案
- B.从头设计的搜索范围通常更广← 正确答案
- C.先导优化更倾向保留核心骨架← 正确答案
- D.先导优化不需要任何约束条件
答案:ABC。两个任务都需要打分函数与约束条件,A 对;从头设计探索全局、先导优化局部保骨架,B/C 对;D 错误——改进祖传菜谱也不能乱加料,先导优化同样受活性、毒性、相似度约束。