2. 分子描述符基础:从分子到数字的“翻译官”

说起来你可能不信,我刚开始做药物化学那会儿,面对一个分子只会盯着它的结构式发呆——这个环那个键,直觉上觉得它水溶,但说不清为什么。直到我接触了分子描述符,才明白原来分子可以“翻译”成一组数字,然后用数学说话。这章我们就聊聊这个“翻译官”到底是什么、有哪些类型、能用在哪儿。

2.1 什么是分子描述符?

分子描述符,说白了就是把分子的化学信息转化成数值。

一个分子,你可以用它的分子量、氢键供体数、LogP、指纹片段……这些数字就是描述符。它们就像身份证上的身高体重,虽然不能代表全部,但已经能帮你快速判断这个分子大概是什么“性格”。

举个我自己的例子。有一次我要筛选一批候选化合物,看它们能不能透过血脑屏障。如果一个个去合成再测,成本高得吓人。我用了几十个描述符(比如极性表面积、LogD、氢键数量)建了个简单模型,直接筛掉了80%的分子。后来实验验证,这个筛选准确率超过70%。嗯,这就是数字的力量。

一句话总结:分子描述符 = 化合物的结构化数值特征,是分子建模、QSAR、ADMET预测的基石。

2.2 常见描述符类型及应用场景

描述符按维度可以分成四大类,我整理了个表,方便你对照。

类型 典型描述符 物理化学意义 应用场景
拓扑描述符 分子量、原子数、键数、Zagreb指数、Wiener指数 反映分子大小、分支度、连接方式 骨架相似性搜索、分子柔性估计
电子描述符 部分电荷、HOMO-LUMO能隙、极化率、偶极矩 反映电荷分布、反应活性、轨道能量 反应性预测、pKa估算、分子间作用力分析
几何描述符 溶剂可及表面积(ASA)、分子体积、回转半径、三维形状矩 反映三维形状、表面特性、空间位阻 蛋白-配体对接打分、药效团匹配、构象筛选
疏水描述符 LogP、LogD、水溶性(LogS)、疏水表面积 反映脂溶性、水分配倾向 ADME预测(吸收、血脑屏障、毒性),是ADMET中最关键的描述符系列
个人小习惯:做ADMET时我一般优先计算疏水和拓扑类描述符,它们对口服吸收和代谢稳定性的信号最强。电子和几何描述符虽然精准,但计算量也大,建议在模型优化阶段再引入。

2.3 描述符的计算工具

现在最常用的开源工具是RDKit和OpenBabel。我一般用RDKit,因为它Python接口友好,处理大批量分子也不慢。下面给个RDKit计算常见描述符的代码片段:

from rdkit import Chem
from rdkit.Chem import Descriptors, Lipinski, MolSurf

mol = Chem.MolFromSmiles('CC(C)C1=CC=C(C=C1)C(=O)O')
mw = Descriptors.ExactMolWt(mol)
logp = Descriptors.MolLogP(mol)
hbd = Lipinski.NumHDonors(mol)
hba = Lipinski.NumHAcceptors(mol)
tpsa = MolSurf.TPSA(mol)
print(f'MW: {mw:.2f}  LogP: {logp:.2f}  HBD: {hbd}  HBA: {hba}  TPSA: {tpsa:.2f}')

输出结果大致像这样:

MW: 164.10  LogP: 2.30  HBD: 1  HBA: 2  TPSA: 37.30  Ų

注意:同一个分子用不同软件算的TPSA可能有1-2 Ų的差异,这是正常的。我以前吃过这个亏,用RDKit算了一组,又用OpenBabel算了一组,混到一起建模结果乱套了。所以建议统一一个工具,贯穿整条工作流。

2.4 避坑指南:描述符选择与标准化

  • 数量不是越多越好——我曾经一股脑算过1000多个描述符,结果模型过拟合得一塌糊涂。有效描述符通常20-50个就够。
  • 关联性要警惕——比如分子量和LogP经常高度相关,两个都放进去等于在模型里重复投票。
  • 数值尺度差异——分子量动辄几百,而氢键数只有0-10。不归一化的话,PCA或距离计算会被大数值描述符主导。我习惯所有描述符都标准化到均值为0、标准差为1。
  • 缺失值处理——有些分子可能算不出某些描述符(比如含金属配合物),建议用中位数填充或直接删除该描述符。
切记:描述符计算前一定要确认分子加氢、电荷状态。同一个SMILES,质子化状态不同,算出来的LogP和TPSA可能差好几个数字。我在项目中就因为忽视这一点,导致模型泛化能力很差。

2.5 描述符分类与应用流程图

下面这张图把分子结构到描述符再到应用场景的路径画了出来,帮你快速建立整体印象。

分子描述符分类与应用流程 分子描述符分类与应用流程 分子结构 (SMILES/ SDF) 拓扑描述符 电子描述符 几何描述符 疏水描述符 数值特征集 典型应用 QSAR建模 · 虚拟筛选 · 相似性搜索 ADMET预测 · 分子生成 · 多样性分析 图:从分子结构出发,经过四类描述符计算,汇聚成数值特征,再服务于下游任务

你看,整个链条其实很清晰。拿到一个分子,先根据问题选择重点描述符类型(比如做ADMET优先疏水和拓扑),然后计算、标准化,最后就可以交给PCA或机器学习模型了。下一节我们会详细讲如何用PCA对这些描述符做质控——也就是找到哪些描述符真正携带信息、哪些是噪音。

动手试试:拿自己手上的10个分子,用上面的RDKit代码跑一遍,看看LogP范围的差异。再留意一下,是不是分子量大的物质LogP也高?这种内在关联正是PCA要处理的对象。