无论 DeepChem 的性质预测还是 TorchDrug 的分子生成,模型吞下的都不是“分子”本身,而是 RDKit 产出的图、向量与指纹。理解这一层,才能明白模型在哪些环节强大,又在哪些环节继承表示方式的局限。
本章按“结构—语言—搜索—度量—工序”的顺序展开:先弄清分子在内存中的存在形式(2.1),再学两种书写分子的语言(2.2 SMILES 与 2.3 SMARTS),然后掌握两类数值化手段(2.4 描述符与 2.5 指纹),最后补上实战中最容易被轻视的两课:清洗标准化(2.6)与反应表示(2.7)。
2.1
分子图与 Mol 对象:分子在计算机中的存在形式
分子图的邻接结构;原子与键的机内表示;化合价检查与 sanitize 流程为什么必不可少。
2.2
SMILES:用一行文本写出分子
线性记法的语法:原子、键、分支与环号;规范 SMILES 与唯一性;立体化学的编码方式。
2.3
SMARTS 与子结构匹配:在分子图里搜索模式
子结构匹配的图同构本质;SMARTS 语法的表达力;药效团检索的思想。
2.4
分子描述符:把可测性质压缩成数字
物理化学描述符的化学含义;拓扑指标的图论定义;描述符维度与信息损失。
2.5
摩根指纹与 Tanimoto 系数:相似性的度量
圆形指纹的迭代邻域聚合;哈希与折叠的取舍;相似性度量的数学性质与选择依据。
2.6
分子清洗与标准化:建模前的必要工序
盐与混合物的处理、互变异构与结构校正流水线;脏数据如何悄悄毁掉一个模型。
2.7
化学反应的表示与变换:Reaction SMARTS
反应 SMARTS 与反应物的角色;变换作为图重写规则;逆合成分析的思想源头。