1. 引言:什么是分子生成?为什么需要质量评估?

大家好,我是做计算化学和机器学习交叉研究的。这几年分子生成这个话题是真火——从药物发现到材料设计,到处都在提。但说实话,我入行那会儿,大家更多是「生成出来就行」,对质量评估这事重视不够。直到我在一个项目里吃过亏,才彻底改变看法。

1.1 分子生成到底在干什么?

分子生成,说白了就是用算法「创作」新分子。传统方法靠化学家在实验室里一个一个试,或者用计算机枚举类似物。现在深度学习来了,我们可以训练一个模型,让它学会化学空间里的规律,然后自动产出大量候选分子。

举个例子:你想找一种新的抗生素。你可以把已知的抗菌分子结构喂给生成模型,模型会学习这些分子的骨架、官能团、电荷分布等特征。训完后,你给它一个「目标活性」或者「要抑制的靶点」,它就能噼里啪啦生成几千个理论上可行的分子结构。

听起来很美好对吧?但问题来了——你怎么知道这些分子靠谱不靠谱?

1.2 为什么质量评估是绕不过去的坎

我记得有一次,我们团队用生成模型跑了十万个分子,看上去个个结构新颖、满足合成可行性。结果一测活性,90%都是假阳性。嗯,那个月我基本都在洗数据。你想想看,如果不做质量评估,直接往下游推进,实验经费、人力全白搭。

质量评估要回答这几个核心问题:

  • 有效性(Validity):生成的分子化学上合理吗?有没有违背价键规则?
  • 新颖性(Novelty):它是不是真的「新」,还是仅仅在重复已知分子?
  • 多样性(Diversity):生成的一批分子彼此之间差异够大吗?还是都长差不多?
  • 可合成性(Synthesizability):实验室里能不能造出来?
  • 目标相关性(Relevance):它有没有我们想要的生物活性或物理性质?

这些维度不是互斥的,它们经常相互冲突。比如,新颖的分子往往合成难度高;活性高的分子可能多样性不够。好评估方法,要能帮你在这些目标之间找到平衡。

1.3 一个真实案例:为什么我从此不敢跳过评估

我曾经参与过一个合作项目,甲方要求用生成模型设计新型激酶抑制剂。我们模型跑出来一万多个候选,结构五花八门。当时觉得「嗯,看起来不错」,直接给甲方交付了 top-100 列表。结果对方拿去做虚拟筛选,发现一半以上分子连基本的氢键供体/受体数目都不对劲——根本不符合利平斯基五规则。

那次之后我学乖了:生成质量评估不能最后才做,而应该在模型训练、采样、后处理各个阶段都加入检查。至少加个基本的有效性滤波器,也能拦下 30% 的无用分子。

1.4 本书要讲什么?一张图先看全貌

这本指南会从最基本的概念开始,一步步深入每个质量指标的定义、计算公式、优缺点以及实际使用场景。下面这张图是我们整本书的知识架构,你先有个整体印象:

分子生成质量评估知识体系 分子生成(Molecular Generation) 有效性 (Validity) 新颖性 (Novelty) 多样性 (Diversity) 可合成性 (Synthesizability) 目标相关性(活性/性质) SA Score / RA Score FCD / NLL / Internal Diversity Valid Ratio / Uniqueness QED / logP / tPSA 框架说明:从分子生成出发,五个质量评估维度逐层深入,最终落到具体可计算的指标。 每个维度在后续章节都会给出公式、图解和代码示例。

1.5 你会在本书中学到什么?

这不是一本纯理论书。我个人习惯把每个指标都落到代码可执行的层面。比如:

  • 有效性:怎么用 RDKit 快速检查分子价键合法性?
  • 新颖性:如何定义「新颖」?用 Tanimoto 相似度还是用专利数据库去重?
  • 多样性:用平均 pairwise Tanimoto 还是用聚类中心距离?优缺点是什么?
  • 可合成性:SA Score 是怎么算出来的?能不能自己实现一个简化版?
  • 目标相关性:怎么结合对接打分和药效团匹配做综合评估?

每个章节都会给出公式推导、图解说明、Python 实现示例以及需要注意的坑。我还会穿插一些项目中的踩坑记录,让你少走弯路。

💡 我的建议: 如果你刚开始接触分子生成,不要急着把所有指标都用上。
先从有效性和新颖性这两个基础指标开始,跑通 pipeline 后再加上多样性和可合成性。目标相关性需要具体项目背景,可以放在最后。
⚠️ 注意: 生成质量评估不是「一次性打分」。同一个指标在不同数据集、不同生成方法下,绝对数值含义可能完全不同。比如,在 ZINC 子集上生成的分子,多样性天然就比在 ChEMBL 上小。所以,对比时一定要在同一基准上进行。

1.6 质量评估的核心公式一览(预告)

这里我先列一个快速索引表,每个公式在后续章节都会有展开讲解和代码实现:

指标核心公式 / 定义典型阈值常用工具
有效比率 (Valid Ratio)通过 RDKit 解析的分子数 ÷ 总生成分子数> 80%RDKit MolFromSmiles
新颖性比率 (Novelty Ratio)不在训练集中的分子数 ÷ 有效分子数> 70%指纹库 / 数据库查重
内部多样性 (Internal Diversity)1 - average pairwise Tanimoto> 0.4RDKit DataStructs
SA Score (合成可及性)基于片段贡献的回归分数 (1-10)< 4 (容易合成)SA_Score 或自定义
FCD (Fréchet ChemNet Distance)ChemNet 隐藏层特征的 Fréchet 距离< 1.0FCD 包
QED (定量类药性)多参数加权组合 (0-1)> 0.5RDKit QED

1.7 写在开始之前