1. 分子图基础概念:原子、键与分子图
各位同学,今天咱们正式开讲。做化学信息学,说白了就是在计算机里“玩”分子。可分子不是一张平面结构式,它是个复杂的三维对象。怎么让电脑理解?我个人的习惯是——先把它变成图。
图(Graph)这种数据结构,天生适合表达分子。你想想看:原子就是节点,化学键就是边。这不就是一张天然的“分子图”吗?
1.1 原子:图里的节点
每个原子在分子图里就是一个节点。但节点不能光秃秃的,它得带属性。
- 原子序数:决定元素种类。碳是6,氧是8。
- 同位素:比如碳-12还是碳-13。
- 形式电荷:千万别小看它,反应机理全靠它推。
- 杂化状态:sp、sp²、sp³,影响空间构型。
- 手性标记:R/S构型,药物活性可能就差在这。
关键点:一个“干净”的分子图,原子节点至少要带原子序数和形式电荷。我在项目中遇到过,有人把氢原子也显式画出来,结果图太大,算法跑不动。其实,很多场景用“隐氢”模型就够了。
1.2 化学键:图里的边
边,就是原子之间的连接。但化学键比社交网络里的“关注”复杂得多。
| 键类型 | 在图里怎么表示 | 常见场景 |
|---|---|---|
| 单键 | 一条边,阶数为1 | C-C,C-O,N-H |
| 双键 | 一条边,阶数为2 | C=O,C=C |
| 三键 | 一条边,阶数为3 | C≡C,C≡N |
| 芳香键 | 特殊标记,阶数1.5 | 苯环,杂环 |
嗯,这里要注意:键的“阶数”和“键级”不完全是一回事。在分子图里,我们只关心拓扑连接关系,不关心电子云密度。所以,双键就是阶数为2的一条边,别想复杂了。
避坑指南:我曾经在处理一个包含金属配合物的数据集时,发现程序把配位键当成了普通单键,结果分子式全算错了。配位键在图里通常用“指向性边”或者单独的键类型标记,不能和共价键混为一谈。
1.3 分子图的正式定义
搞清楚了原子和键,我们可以给出一个严谨但好懂的定义:
分子图 G = (V, E)
- V 是原子节点的集合
- E 是化学键边的集合,每条边连接两个原子节点
但这还不够。图本身还得带“标签”——节点上的原子类型、边上的键类型。所以更准确地说,分子图是一个带标签的无向图(大部分时候无向,特殊场景有向)。
举个例子,最简单的甲烷 CH₄:
分子图表示(Python 伪代码):
graph = {
'nodes': [
{'id': 0, 'element': 'C', 'charge': 0},
{'id': 1, 'element': 'H', 'charge': 0},
{'id': 2, 'element': 'H', 'charge': 0},
{'id': 3, 'element': 'H', 'charge': 0},
{'id': 4, 'element': 'H', 'charge': 0}
],
'edges': [
{'source': 0, 'target': 1, 'bond_type': 'single'},
{'source': 0, 'target': 2, 'bond_type': 'single'},
{'source': 0, 'target': 3, 'bond_type': 'single'},
{'source': 0, 'target': 4, 'bond_type': 'single'}
]
}
你看,碳连着四个氢,都是单键。图结构把这个关系表达得清清楚楚。
1.4 分子图在化学信息学里的核心作用
你可能会问:为什么非得用图?直接用化学式不行吗?
不行。化学式 C₆H₆ 既可以是苯,也可以是其他带三键的链烃。但分子图里,六个碳连成环,单双键交替——这就唯一确定了。我做过一个项目,需要用分子指纹做相似度搜索。如果不用图结构,想都别想。指纹的计算,本质就是在图上做遍历。
分子图的核心应用有三块:
- 分子表示的标准化:SMILES、InChI 这些字符串,底层都是图。图是“真身”,字符串只是序列化。
- 分子属性的计算:分子量、LogP、拓扑极性表面积,这些性质公式背后都依赖图结构。
- 分子生成与优化:现在热门的分子生成模型(比如图神经网络),输入输出的核心数据结构就是分子图。
下面这张图,帮你把分子到图的映射关系理清楚。
我的小技巧:刚开始接触化学信息学,可以在 RDKit 里把分子转成图,再打印出节点和边的数量。你会发现,同一个分子,不同表示形式(带氢/不带氢)出来的图完全不同。亲自跑一遍,比看十遍定义都管用。
1.5 为什么要从图结构开始?
因为图结构是化学信息学的“数据结构底座”。你看,从最基础的子结构匹配(比如查分子里是否含有苯环),到高级的图神经网络预测毒性,通通跑不掉这张图。
我踩过一个坑:刚开始写分子生成代码,直接用 SMILES 字符串当输入,结果生成的分子要么不合法,要么根本没法合成。后来老老实实回到分子图上做操作,每一步都保证图的有效性,问题才解决。
所以,别嫌基础。把图结构玩熟了,后面的路才走得稳。
一句话总结本小节:分子图 = 原子(节点)+ 化学键(边)+ 标签/属性。它是连接化学和计算机的桥梁,也是整个课程的基石。