第二章 · 2.4

2.4 分子描述符:把可测性质压缩成数字

Molecular Descriptors
分子描述符把分子映射为少数可复算的实数,是定量构效关系的特征语言。本节先给出描述符的确定性定义与三条评价标准,再按组成、物理化学估计、拓扑图论三类展开其化学含义与机理,剖析原子与片段贡献加和模型的假设与失效场景,把描述符、指纹与图神经网络放进手工低维、手工高维、自动学习的表示谱系,最后讨论共线性、互变异构敏感与 p≫n 过拟合三类使用陷阱。

2.4.1 描述符的定义:把分子写成数

2.1 节把分子存成图,2.2 与 2.3 节让它能写、能查。机器学习还差一步:模型吃的是数,不是图。分子描述符(molecular descriptor)补上这一步——本章讨论的二维描述符是一个确定性映射 f,把分子图 G 变成实数 d = f(G),或一列实数(向量)。“确定性”的准确含义是:算法与参数固定、输入固定,任何时刻重算数值不变;输入是经 sanitize 的分子图时,原子的编号无论怎么排,数值也不变——这正是 1.2 节讨论过的置换不变性(permutation invariance),在那里它是对模型结构的要求,在这里它先落在特征的定义上。还要预留一个口子:描述符不止二维一族——RDKit 的 Descriptors3D(主转动惯量 PMI、回转半径、偏离球形度等)要先生成三维构象,d = f(G, X) 依赖构象坐标 X,只保证对整体平移与旋转不变;同一分子图的两个构象可以给出不同的数。“描述符是分子图的函数”这个等式,只对二维成立。

\[d = f(G) \in \mathbb{R}^{k} \quad \text{且对任意原子编号置换} \pi: f(\pi \cdot G) = f(G)\]
(2.4-1)二维描述符的最低门槛:映射确定、与编号无关;三维描述符另以构象坐标为输入,对刚体平移与旋转不变。是否“与输入写法无关”(芳香式或凯库勒式)是更强的要求,依赖 2.1.4 的 sanitize 把不同写法收敛到同一内部态。

并非任何映射都配称好描述符。评价标准可以概括为三条,但先说明它们是挑选代表的偏好,不是定义的门槛。其一,可复算:算法与参数固定,不同实验室、不同软件版本重算应当一致,至少同一实现内严格一致。其二,有化学含义:数值的升降对应可指认的结构变化——分子量涨是因为多了原子,TPSA 涨是因为添了极性基团;含义间接的数学指标(信息论一类)解释与排错都更难,仍是合法描述符,本节挑选代表时优先取含义清晰者。其三,对结构微变敏感而稳定:这是对连续描述符的期望——骨架上换一个取代基,数值应当移动但不抖动;离散计数类(供体数、环数)本来就按整数跳变,不在此列。三条同时做到顶格的描述符并不存在,取舍贯穿整节。

定义

分子描述符。从分子(二维:经 sanitize 的 Mol 对象;三维:另加构象坐标)到实数或向量的确定性映射,且对原子编号(二维)或刚体运动(三维)保持不变。一个描述符由三样东西共同构成:化学定义(度量什么)、算法(怎么算)与参数(系数从哪来)。三者任改其一,数值就换了一套——“描述符”从来不是纯粹的测量,而是定义加算法的约定。

咖啡因的一组描述符:同一张分子图确定地映射到一列实数 咖啡因 C8H10N4O2 CH3 CH3 CH3 N N N N O O C C C C f(·) 确定性 f(G):一张图 → 一列实数(RDKit 计算值) 分子量 MolWt 194.19 重原子数 HeavyAtomCount 14 氢键供体 HBD 0 氢键受体 HBA(Lipinski / 现代口径) 6 / 3 可旋转键 NumRotatableBonds 0 MolLogP(Crippen 原子加和) −1.03 TPSA(Ertl 片段加和) 61.8 Ų 同一分子重复计算得到同一组数;把 SMILES 换成芳香式或凯库勒式重写,结果不变(骨架为示意,环系键级未逐一区分)。
图 2.4-1 分子到实数的确定性映射。左:咖啡因的分子图骨架(三个 N–CH₃、两个 C=O、一个芳香 C–H);右:一次计算得到的一列描述符。描述符本身不做预测——预测力来自以它为输入的模型,解释力来自每个数背后的化学定义。

2.4.2 组成类:直接可解释的计数

第一类描述符只做计数与求和:分子量、重原子数、N/O 占比、氢键供体(hydrogen-bond donor)与氢键受体(hydrogen-bond acceptor)计数。化学含义写在定义里。分子量是全原子按同位素自然丰度加权的质量,回答“多大”;重原子数给出规模的粗粒度;N/O 占比 (N+O)/重原子数是极性的粗画像(RDKit 的 NumHeteroatoms 口径更宽,数所有非碳非氢原子);供体与受体计数回答“能形成几根氢键”——但口径要分清:现代供体计数(RDKit CalcNumHBD)数的是供体原子,一个 NH₂ 算一个位点,而不是两根 N–H;历史 Lipinski 口径(CalcNumLipinskiHBD)才按 N–H/O–H 键数。受体的化学定义是“孤对可供电子的原子”,也不限于氮氧——RDKit 的受体 SMARTS 覆盖 O、S、N 与芳香 n/o/s。

代入咖啡因 C8H10N4O2:分子量 194.19,重原子 14,N/O 占比 6/14 ≈ 0.43,供体 0——三个 N–CH₃ 封掉了全部 N–H。受体的口径差在咖啡因上最典型:历史 Lipinski 计数(CalcNumLipinskiHBA / Lipinski.NOCount)直接数氮氧,得 6;现代计数(CalcNumHBA,Descriptors.NumHAcceptors 与 Lipinski.NumHAcceptors 都走它——后一个名字极具误导性)按受体环境判定,两个酰胺型 N–CH₃ 不算,得 3(两个羰基氧加一个咪唑型氮)。Lipinski “五规则”用的是 HBA ≤ 10 这类粗边界:MW ≤ 500、LogP ≤ 5、HBD ≤ 5、HBA ≤ 10。计数描述符看似最客观,其实口径一变数字就变,这一伏笔留到 2.4.6。三类代表连同机理与局限,先列成表 2.4-1,随后三小节逐一展开。

表 2.4-1三类描述符的代表、化学含义与局限(咖啡因取值为 RDKit 计算值)
类别描述符(RDKit 名)化学含义与机理咖啡因主要局限
组成类MolWt全原子同位素自然丰度加权的质量194.19与重原子数高度相关
组成类HeavyAtomCount非氢原子计数,分子规模的粗粒度14对同分异构体无差别
组成类HBD / HBA 计数供体/受体位点计数,氢键能力画像(口径见正文)0 / 6 或 3口径依赖:Lipinski 计数氮氧全计,CalcNumHBA 按受体环境给 3
估计类MolLogPWildman–Crippen 原子类型贡献加和,估计分配系数对数−1.03系统误差可观(实验值约 −0.07)
估计类TPSAErtl 片段贡献加和,估计极性原子的表面积61.8 Ų拓扑量,看不见构象屏蔽
估计类NumRotatableBonds非环、两端非末端重原子的单键数,柔性 proxy0定义细节影响端基计数
拓扑类BalabanJ距离和加权的邻接指数,判别力强的图不变量3.22无量纲,化学含义间接
拓扑类Chi1v价连接性指数,杂原子加权的分支度4.11简并仍存在
拓扑类Kappa2二阶形状指数,编码伸展与缩拢2.57多重键与杂原子需修正项

下面一段代码把表中的四列变成实际输出,顺带印证定义里的“确定性”——重算千遍,数值不动。

from rdkit import Chem
from rdkit.Chem import Descriptors

caf = Chem.MolFromSmiles("CN1C=NC2=C1C(=O)N(C)C(=O)N2C")
funcs = {"MolWt": Descriptors.MolWt, "TPSA": Descriptors.TPSA,
         "MolLogP": Descriptors.MolLogP, "BalabanJ": Descriptors.BalabanJ}
for name, fn in funcs.items():
    print(f"{name:8s}{fn(caf):9.2f}")   # 194.19 / 61.82 / -1.03 / 3.22

2.4.3 物理化学估计类:加和模型

第二类描述符估计一个可测的物理化学量,机理是加和模型(additive model):把整体性质拆成部件贡献之和,部件是原子或片段,贡献值在实验数据集上回归拟合得到。两个代表:MolLogP 与 TPSA。

MolLogP:Wildman–Crippen 原子贡献法。LogP(分配系数对数)度量分子在正辛醇与水两相间的分配偏好,是亲脂性的标准度量,也是 Hansch 分析以来定量构效关系里出场最多的变量。该法把每个原子——重原子与氢都算——归入数十类原子类型(atom type)之一:类型由元素、杂化方式与连接环境共同决定,如“芳香碳,带一个氢”与“sp³ 碳,连一个氮”是两类;氢同样分型——连碳的氢、连氮的氢、连氧的氢各有系数,并非一个统一的氢贡献(Wildman & Crippen, 1999)。

\[logP = \sum_{a \in \text{原子(含氢)}} c(t(a))\]
(2.4-2)t(a) 为原子 a 的类型,c 为拟合系数。氢不止一类:连碳的 H1 = +0.1230,连氮的 H3 = +0.2142,连氧的 H2 = −0.2677(RDKit 参数表)。咖啡因的 10 个氢恰好全部连碳、同属 H1,氢项 = 10 × 0.1230 = +1.230;重原子小计 −2.259,合计 −1.029,与 RDKit 的 MolLogP 一致。

图 2.4-2 把咖啡因的账目逐原子摊开:三个 N–CH₃ 的碳各 −0.144,四个环氮各 −0.324,两个羰基碳各 −0.819,两个羰基氧各 +0.179,两个稠合芳香碳各 +0.295,C8 的芳香 CH +0.158;重原子小计 −2.259,加 10 个 H1 型氢的 +1.230,得 −1.03。实验值约 −0.07,偏差接近一个对数单位——这是加和模型的系统误差,成因见 2.4.5。

原子贡献加和的分解:每个原子的 Crippen logP 贡献与逐类小计账本 MolLogP 按原子分解(咖啡因) C N N C N C C N C C C C O O −0.144 −0.324 +0.158 −0.324 +0.295 +0.295 −0.819 +0.179 −0.324 −0.144 −0.819 +0.179 −0.324 −0.144 加和账本:MolLogP = −1.03 3 × N–CH3 碳 各 −0.144 −0.433 4 × 环氮(3 个 N–CH3,1 个 =N–) 各 −0.324 −1.295 2 × 羰基碳(C=O 的 C) 各 −0.819 −1.637 2 × 羰基氧(C=O 的 O) 各 +0.179 +0.358 2 × 稠合芳香碳 各 +0.295 +0.590 1 × 芳香 CH(C8) +0.158 +0.158 小计:14 个重原子 −2.259 10 × 氢(全部连碳,H1 型) 各 +0.1230 +1.230 合计 MolLogP −1.029 正贡献(增亲脂) 负贡献(增亲水) 实验 logP 约 −0.07:偏差近一个对数单位,是加和模型的系统误差。
图 2.4-2 原子贡献加和的分解。左:咖啡因骨架,原子按 Crippen 逐原子 logP 贡献着色(蓝为正、灰为负),数值为 RDKit 计算值;右:逐类小计账本,重原子与氢分列。逐项求和精确复现 MolLogP = −1.029——加和模型的意义就在这里:数值不是拟合输出,而是账目合计,每个原子都能对上号。

TPSA:Ertl 片段贡献法。拓扑极性表面积(topological polar surface area, TPSA)的原型要先生成三维构象、再算极性原子(氮、氧及其相连氢)的范德华表面积。Ertl 的办法是绕开构象:以极性原子为中心定义数十类片段,在药物分子三维 PSA 的基础上拟合每类片段的面积贡献,直接在拓扑上求和(Ertl et al., 2000)。RDKit 的默认实现只计氮氧片段;Ertl 原始参数还覆盖硫与磷,须 includeSandP=True 才纳入。经验上,不同研究给出过 120–140 Ų 量级的口服暴露界限:Kelder 等观察到经被动跨细胞途径吸收的口服药物 PSA 多不超过约 120 Ų;Veber 等则把 PSA ≤ 140 Ų(连同旋转键 ≤ 10)与较好的口服生物利用度统计关联。这些是数据集依赖的经验规则,不是普适的膜扩散临界值。代价同样来自拓扑——构象把极性原子折叠进分子内部时,真实暴露面积变小,TPSA 对此一概不知。

可旋转键。可旋转键(rotatable bond)的基础定义有三道过滤:单键、不在环上、两端各接非末端重原子;RDKit 默认的严格口径再排除酯、酰胺等(乙酸甲酯的酯 C–O 在严格口径下不计,宽松口径 NonStrict 才计)。它作分子柔性的 proxy。咖啡因为 0:稠合双环把所有键锁死。柔性影响结合时的熵代价与选择性,药物化学里“刚性化”是常见优化思路,这个计数是它的量化注脚。

习题 2.4-1

按 Ertl 片段贡献表手算 TPSA(单位 Ų):羟基氧 20.23,醚氧 9.23,羰基氧 17.07,伯胺/酰胺氮(NH₂)26.02,仲胺/酰胺氮(NH)12.03,吡啶型芳香氮 12.89。(1) 计算乙酰胺 CH₃CONH₂、N-甲基乙酰胺 CH₃CONHCH₃、甘油 C₃H₅(OH)₃ 的 TPSA;(2) 乙酰胺到 N-甲基乙酰胺只换了一个 H 为 CH₃,TPSA 降了多少?给出化学解释。

参考解答

(1) 乙酰胺 = 羰基氧 17.07 + NH₂ 氮 26.02 = 43.09;N-甲基乙酰胺 = 17.07 + NH 氮 12.03 = 29.10;甘油 = 3 × 20.23 = 60.69(三个羟基氧,无醚氧)。三个值与 RDKit 一致。(2) 下降 43.09 − 29.10 = 13.99,约 14 Ų。极性表面积的定义只统计氮氧及其相连氢:N–甲基化把极性氢换成非极性的碳氢链,氮的片段类型随之从 NH₂ 换到 NH,贡献骤减;新增的甲基完全不进账。这正是表 2.4-2 中茶碱到咖啡因 TPSA 下降 10.9 Ų 的同一机理。

2.4.4 拓扑与图论类:图不变量

第三类描述符从连接方式取数。“拓扑”指的是不依赖三维坐标、只在图上计算,而不是“不看元素”——本节要讲的三种指数里,只有最纯粹的拓扑指数只看无标号的邻接关系;χ 的价版本按元素取价电子数,κ 有杂原子修正项,Balaban J 在不饱和体系里用键级加权距离。它们共同的底线是成为图不变量(graph invariant):图的画法、原子的编号都不影响数值,只有结构本身起作用。分子图的邻接与距离关系经代数变换压成单个数,即拓扑指数(topological index)。

定义

图不变量。图上的函数 q,若对同构的图取值相同——重排顶点编号、改变画法都不改变 q——则称图不变量。二维分子描述符按式 (2.4-1) 必须是分子图的图不变量;纯拓扑指数只由邻接关系导出,而 χv、κ、J 这些常用指数在不同程度上引用元素与键级信息——它们仍是不变量,但不是“纯连接”的。顶点编号在计算机里是任意的(2.1.2),不变性因此不是美学要求,而是可计算性的前提。

Balaban J 指数。先由距离矩阵求每个原子的距离和(distance sum)si(到其余各原子距离之和),再对每条边取 (sisj)−1/2 求和,乘 m/(μ+1) 归一,μ 为环秩(cyclomatic number),即独立环数(μ = m−n+1 对连通图成立;多组分盐按 μ = m−n+c 累加)。距离怎么算有一条关键细节:饱和烷烃里每条键的长度都是 1;对不饱和与芳香体系,Balaban 原文与 RDKit 的实现都把键级计入——每条键按键级的倒数计长(芳香键 1.5 记 2/3,双键记 1/2),于是同一张图的距离和更小、J 更大。

\[J = m / (\mu+1) \cdot \sum_{(i,j) \in E} (s_{i} s_{j})^{-1/2} \quad \mu = m - n + 1\]
(2.4-3)m 为边数,n 为顶点数(重原子)。丁烷 J = 1.975,异丁烷 J = 2.324——全单键体系单位距离与键级距离相同,手算即 RDKit(习题 2.4-2)。咖啡因含芳香键与双键:用键级加权距离得 RDKit 的 3.221,若把每条键都当 1,只得 2.226——表 2.4-2 的 J 列全部是键级加权口径。Balaban 提出它的动机正是判别力:先前的 Wiener 指数、Randić 指数简并严重——结构不同的图给出同一个数;J 在烷烃上几乎不简并(Balaban, 1982)。

χ 连接性指数与 κ 形状指数。分子连接性指数(molecular connectivity index)χ 把“分支度”参数化:对指定长度的路径求 (Πδ)−1/2 之和,δ 为顶点度;价版本 δv 用价电子数减氢数替代度,杂原子与重键于是有了区分。

\[\chi^{v}_{t} = \sum_{|P| = t+1} ( \prod_{v \in P} \delta^{v}(v) )^{-1/2} \quad \delta^{v}(C) = 4-h \quad \delta^{v}(N) = 5-h \quad \delta^{v}(O) = 6-h\]
(2.4-4)求和遍历所有含 t+1 个原子的路径;零阶 χv0 退化为对单点求和。乙醇的一阶价指数手算:(1×2)−1/2 + (2×5)−1/2 = 1.023,与 RDKit 输出一致。

形状指数(shape index)κ 走另一条路:数特定长度的路径。以全单键的烷烃骨架为例,κ₁ = n(n−1)²/P₁²,P₁ 是一阶路径(边)数;无环图恒有 P₁ = n−1,于是 κ₁ 恒等于 n,只测大小。κ₂ = (n−1)(n−2)²/P₂² 才分辨形状:丁烷 P₂ = 2,κ₂ = 3.0;异丁烷 P₂ = 3,κ₂ = 1.33。越伸展数值越大,越缩拢越小(Kier & Hall, 1986;多重键与杂原子另需修正项)。

这一家族的真正卖点,是补上加和类的盲区。表 2.4-2 里茶碱、可可碱、副黄嘌呤互为二甲基位置异构体:组成相同、原子类型相同,只是位置重排。表中这些加和类描述符塌缩成同一组数——加和模型并非原则上分不开位置异构体,片段类型若编码足够大的局部环境也能区分,但常见的原子型加和确实分不开——唯 J 指数把三者分开。组成与加和回答“有什么”,拓扑回答“怎么连”。

表 2.4-2黄嘌呤家族:位置异构体在三类描述符下的分辨率(RDKit 计算值)
分子甲基位置MolWtMolLogPTPSA (Ų)HBDBalabanJ
咖啡因 caffeineN1, N3, N7194.19−1.0361.803.221
茶碱 theophyllineN1, N3180.17−1.0472.713.212
可可碱 theobromineN3, N7180.17−1.0472.713.178
副黄嘌呤 paraxanthineN1, N7180.17−1.0472.713.158

再看“微改则微变”。茶碱到咖啡因只多一个 N–CH₃:分子量 +14.03(一个 CH₂),供体从 1 到 0,TPSA 降 10.9 Ų(习题 2.4-1 的机理),MolLogP 几乎不动——甲基的亲脂贡献与 N–H 换 N–CH₃ 的类型变化恰好抵消。一组描述符同时给出四个方向不同的读数,这正是多描述符并用的价值。下面一段代码复算表 2.4-2。

xanthines = [("咖啡因 caffeine 1,3,7-Me", "CN1C=NC2=C1C(=O)N(C)C(=O)N2C"),
             ("茶碱 theophylline 1,3-Me", "CN1C2=C(C(=O)N(C1=O)C)NC=N2"),
             ("可可碱 theobromine 3,7-Me", "CN1C=NC2=C1C(=O)NC(=O)N2C"),
             ("副黄嘌呤 paraxanthine 1,7-Me", "CN1C=NC2=C1C(=O)N(C(=O)N2)C")]
for name, smi in xanthines:            # 同一黄嘌呤骨架,仅甲基位置不同
    m = Chem.MolFromSmiles(smi)
    print(f"{name}: MW={Descriptors.MolWt(m):.2f} LogP={Descriptors.MolLogP(m):.2f}"
          f" TPSA={Descriptors.TPSA(m):.1f} J={Descriptors.BalabanJ(m):.3f}")

输出里三个二甲基异构体(茶碱、可可碱、副黄嘌呤)的 MolWt、LogP、TPSA 一字不差,J 却各不相同——表 2.4-2 的分辨率差异由代码直接印证(咖啡因是三甲基取代,作对照组)。局限同样清楚:图不变量没有化学单位,数值不直接对应任何可测量;判别力强不等于因果关系,J 能分开异构体,却不能说明为什么分开。它们是紧凑的结构摘要,作回归输入尚可,作机理解释要谨慎(Todeschini & Consonni, 2000)。

习题 2.4-2

重原子图上手工计算 Balaban J(式 2.4-3)。(1) 正丁烷(路径图 P₄):写出 4 个原子的距离和,求 J;(2) 异丁烷(星形图,中心碳连三个末端碳):同样求 J;(3) 两组同分异构体的 J 为何不同?这与表 2.4-2 中 J 分开茶碱与可可碱的道理有何共同点?

参考解答

(1) 正丁烷编号 1–2–3–4。距离和:端原子各为 1+2+3 = 6,中间原子各为 1+1+2 = 4。μ = m−n+1 = 3−4+1 = 0,归一因子 m/(μ+1) = 3。边贡献:两条端边各 (6×4)−1/2 = 0.2041,中间边 (4×4)−1/2 = 0.25。J = 3 × (0.2041+0.25+0.2041) = 3 × 0.6582 = 1.975。(2) 异丁烷中心原子距离和 = 3,各末端 = 1+2+2 = 5;三条边各 (3×5)−1/2 = 0.2582。J = 3 × 3 × 0.2582 = 9/√15 = 2.324。(3) J 只依赖距离矩阵:同分异构体距离矩阵不同,J 即不同(星形更“紧凑”,末端间距离全为 2,J 更大)。表 2.4-2 里甲基挂在不同氮上,重排了距离矩阵,J 随之分开——两者都是“连接方式进入数值”的直接体现。两个结果与 RDKit 的 1.9747、2.3238 一致。

2.4.5 加和模型的边界与表示的谱系

加和模型的假设只有一条:部件贡献彼此独立。化学里处处是反例。远程相互作用:共轭贯通整个环系时,局部原子类型捕捉不了整体电子结构;分子内氢键把极性基团互相“抱住”,分子外观的亲脂性高于各部件之和。构象依赖:logP 与极性表面积的实验值在溶液中测得,分子采取什么构象、极性面暴露多少,加和模型一概不知。电荷形式:两性离子(zwitterion)(如氨基酸内盐)在水与正辛醇中的行为差别悬殊——实验上随 pH 显著变化的是 logD,给定 pH 下全部分子形式合起来的分配比;logP 专指中性形式本身的分配,原则上不随水相 pH 变。加和模型则完全按输入的结构计算:Crippen 参数表里有各种带正电、负电的原子类型,输入什么质子化形式,就得到那个形式的估计——结果怎么解读,取决于预处理把分子统一成了哪种形式。咖啡因近一个对数单位的偏差是模型的残差:原子类型表没有捕捉这个稠合芳香环系的电子环境,属于近似在此处的系统偏差;对单个分子,残差很难精确拆因。判断何时可信的经验法则:片段彼此独立、无强分子内作用、输入形式与目标量匹配时,加和估计可靠;三者任一不满足,估计只能当量级参考。

信息论视角下,描述符是人工特征:把化学先验手工压缩进低维。压缩必然丢信息——表 2.4-2 的异构体折叠就是明证,芳香族的立体化学、构象群更是整块丢失。把它放进表示方法的谱系里看,边界更清楚:

描述符:手工低维

一列实数——常用精选几十个,RDKit 内置约两百个,商业平台以千计。压缩什么、保留什么,先验由人选定。线性模型配几十个样本即可工作;代价是异构体折叠、构象与立体信息大多丢失。

指纹:手工高维(2.5 节)

把结构环境展开成高维稀疏向量——结构键指纹(如 MACCS)对应预定义的子结构词典;2.5 节的摩根指纹由圆形原子环境迭代生长,可为位向量也可为计数向量。保留“含有哪些零件”,位置异构体多半分得开;定长位向量经哈希折叠,单个位可能由多个环境共享,指认要靠工具(如 RDKit 的 bitInfo)在具体分子上查证,整支向量难以解读,需要专门度量(Tanimoto)。

图神经网络:自动学习(第 3 章)

手工特征工程最少,表示由数据学出,逐原子信息与任务目标直接挂钩;消息传递自带局域性与置换不变性等结构先验,标准消息传递网络的表达力也有 WL 同构测试一类的理论上限。代价是样本量与算力,解释须靠事后分析。

共同前提

三者都从同一 Mol 对象出发,且不互斥——把图表示与 RDKit 描述符拼接输入的混合架构很常见。盐形式、互变异构、价态的清洗(2.6 节)决定三者输入是否一致——表示层面的“垃圾进,垃圾出”在这里就成立。

注记

从 Hansch 分析到描述符库。1962 年,Hansch 等把苯氧乙酸类的生物活性对取代基电子参数(Hammett σ)与分配系数做线性回归,定量构效关系由此起步(Hansch et al., 1962)。此后二十余年,原子与片段贡献法(Crippen、Ertl)、图论指数(Balaban、Kier–Hall)相继定型,Todeschini 与 Consonni 的手册收录的描述符以千计(Todeschini & Consonni, 2000)。RDKit 内置两百个上下,覆盖三类中的常用者。深度模型不必然依赖手工特征——但把描述符与图表示拼接的混合架构同样常见——描述符至今仍是数据清洗、可疑样本筛查与基线模型的主力。

2.4.6 使用中的陷阱:共线性、口径与 p≫n

共线性。描述符不是相互独立的测量。分子量与重原子数几乎共线;摩尔折射率、MolLogP 与分子尺寸的相关在同类系列里也常很高——但跨化学空间会明显下降,不存在普适的相关阈值。一个“拓扑指数族”内部的相关更是天然。线性回归里这叫多重共线性(multicollinearity):系数在相关列之间随机分摊,训练集一换,符号就能翻转——“某描述符系数为正”的化学解读随之失去根基。信息没有凭空多出来:一百个高度相关的列,信息量未必超过十个。

口径与分子形式。2.4.2 已经埋了伏笔:同一个“氢键受体数”,Lipinski 计数给 6,现代计数给 3——定义不同,两个数都对,数据表必须记录口径(且 API 名会骗人:Lipinski.NumHAcceptors 走的是现代计数)。更深的坑在分子本身:盐形式不同、互变异构体(tautomer)不同,图就不同,描述符随之改变。TPSA 对 N–H 的位置有多敏感,表 2.4-2 已给出——一个 N–CH₃ 与 N–H 的交换移动 10.9 Ų。麻烦在于标签:实验若测的是另一种形式,特征与标签便错位。2.6 节的清洗工序——盐拆分、主互变异构体选择、价态规范化——需要一个一致且与任务匹配的策略:多数建模任务确实要去盐、选主互变异构体;但预测盐型溶解度或特定互变异构体的性质时,抹掉这些差异反而丢掉标签信息。怎么标准化是任务决策,不是无条件的默认流水线。

p≫n。商业与开源软件能给出的描述符以千计,一个药物项目的活性数据常只有几百条。变量多于样本、设计矩阵又无退化列时,普通最小二乘可以完美内插训练集,纯噪声也照拟合不误;训练 R² 接近 1 只说明自由度耗尽,不说明任何预测力。习题 2.4-3 把口径与自由度两条线索合在一起。

警示

p≫n 与共线性的组合拳。描述符数千列、样本几百行时,任何足够灵活的模型都能把训练集拟合到近乎完美,包括标签里纯噪声的部分;共线性再让系数的解释雪上加霜。防线按次序:先用化学先验挑小特征集(而非软件给什么用什么);查相关矩阵或方差膨胀因子,按族去冗余;再以 L1/L2 正则约束——岭回归与 Lasso 本就是处理高维共线性的正规手段,不是权宜之计;最后用嵌套交叉验证报告性能——特征选择与超参选择本身也要包进交叉验证的内层,否则选择偏差会顺着“挑出来的特征”渗进指标。各步各自是正规手段;致命的不是少做某一步,而是让任何一步的数据泄漏越过验证边界。

习题 2.4-3

某课题用 RDKit 对 80 个分子计算 200 个描述符,普通最小二乘回归得到训练集 R² = 0.99;同时发现 Descriptors.NumHAcceptors 与 Lipinski.NOCount 两列对同一批分子给出不同数值。(1) 两个受体计数哪个对?(2) R² = 0.99 能支持“模型已学会构效关系”的结论吗?(3) 给出至少两条改进措施,并说明先后次序。

参考解答

(1) 都对。描述符 = 定义 + 算法:Lipinski.NOCount(即 CalcNumLipinskiHBA)直接数氮氧,咖啡因给 6;Descriptors.NumHAcceptors(即 CalcNumHBA,注意 Lipinski.NumHAcceptors 也走它,别被名字骗了)按受体环境判定,咖啡因给 3。数据表必须登记口径,跨软件、跨版本拼接特征时尤其如此。(2) 不能。p = 200 > n = 80,最小二乘在变量多于样本时可完美内插训练集,噪声亦然;R² 只反映拟合,不反映预测。结论必须由留出集或交叉验证给出。(3) 次序:先定与任务匹配的分子形式清洗策略(盐、互变异构,2.6 节),再按先验与相关分析把特征删到低维,然后加正则(岭回归或 Lasso),最后用嵌套交叉验证同时包裹特征选择与模型评估——特征选择若放在交叉验证之外,指标照样虚高。

下一节走向谱系的另一端:摩根指纹把圆形结构环境展开成高维稀疏向量,Tanimoto 系数为这类向量配备专门的相似度度量。手工低维与手工高维的分野,在那里看得最清楚。


关键术语

分子描述符 (molecular descriptor)
分子到实数(或向量)的确定性映射;二维者与原子编号无关,三维者另依赖构象坐标。
图不变量 (graph invariant)
对同构图取值相同的图上函数;二维描述符必须是图不变量,纯拓扑指数只由邻接导出,常用拓扑指数多带元素与键级信息。
原子贡献法 (atom contribution method)
把整体性质拆为原子类型贡献之和的加和模型(氢亦分型),系数由实验数据回归得到。
拓扑极性表面积 (topological polar surface area, TPSA)
极性片段面积贡献的拓扑求和(RDKit 默认只计氮氧),作三维极性表面积的快速估计。
可旋转键 (rotatable bond)
非环、两端接非末端重原子的单键,分子柔性的计数 proxy;RDKit 严格口径再排除酯、酰胺等。
拓扑指数 (topological index)
由分子图邻接与距离关系导出的无量纲图不变量,如 Balaban J。
分子连接性指数 (molecular connectivity index, χ)
对固定长度路径求 (Πδ)−1/2 之和的分支度指数;价版本以价电子数减氢数为 δ。
形状指数 (kappa shape index, κ)
按路径数归一编码分子伸展与缩拢程度的拓扑指数。
距离和 (distance sum)
距离矩阵中一原子到其余原子距离之和,Balaban J 的基本量;不饱和体系中距离按键级的倒数加权(RDKit 口径)。
多重共线性 (multicollinearity)
特征列之间高度相关,使回归系数分摊不稳、解释失效的现象。
p≫n (overparameterization)
特征数远超样本数的局面,训练误差失去指示意义,过拟合风险主导。

参考文献与延伸阅读

  1. Landrum G, et al. 2026. RDKit: Open-Source Cheminformatics. RDKit 官方文档(Getting Started · RDKit Book),2026.03 系列.
  2. Wildman SA, Crippen GM. 1999. Prediction of physicochemical parameters by atomic contributions. Journal of Chemical Information and Computer Sciences 39:868–873.
  3. Ertl P, Rohde B, Selzer P. 2000. Fast calculation of molecular polar surface area as a sum of fragment-based contributions and its application to the prediction of drug transport properties. Journal of Medicinal Chemistry 43:3714–3717.
  4. Balaban AT. 1982. Highly discriminating distance-based topological index. Chemical Physics Letters 89:399–404.
  5. Kier LB, Hall LH. 1986. Molecular Connectivity in Structure–Activity Analysis. Chichester: Research Studies Press / Wiley.
  6. Todeschini R, Consonni V. 2000. Handbook of Molecular Descriptors. Weinheim: Wiley-VCH.
  7. Hansch C, Maloney PP, Fujita T, Muir RM. 1962. Correlation of biological activity of phenoxyacetic acids with Hammett substituent constants and partition coefficients. Nature 194:178–180.