返回目录
公开知识笔记 · 不进入目录
分子图、SMILES与RDKit
公开知识笔记
分子图、SMILES与RDKit
一句话理解:SMILES把分子写成一行文本,RDKit负责读懂这行文本并还原成“原子是节点、化学键是边”的分子图。
1. 为什么分子适合表示成图
普通表格要求每个样本有固定位置的特征,但不同药物含有的原子数不同。图结构更自然:
- 节点:原子,如C、N、O;
- 边:化学键,如单键、双键、芳香键;
- 节点特征:元素类型、电荷、杂化方式、是否芳香、氢原子数等;
- 边特征:键类型、是否共轭、是否在环中等。
2. SMILES是什么
SMILES(Simplified Molecular Input Line Entry System)使用字符和符号描述分子连接关系。例如字母表示元素,括号表示支链,数字常用于标记环闭合。它是线性字符串,但表达的是图结构。
一个重要提醒:同一分子可能有不止一种合法SMILES写法,所以模型真正应依赖的是解析后的分子结构,而不是字符串表面的字符顺序。
3. RDKit做了什么
在A3Net的数据处理中,RDKit大致承担:
- 解析SMILES是否合法;
- 创建原子与化学键对象;
- 读取每个原子的化学属性;
- 生成图神经网络所需的节点特征和边索引。
因此,SMILES是输入格式,RDKit是化学信息学工具,分子图才是GAT真正接收的数据结构。
4. 从一个药物到张量
若某药物有个原子,每个原子编码为维特征,则节点矩阵为:
边用edge_index记录每条键两端节点。A3Net把每个原子编码成109维,再交给图注意力网络GAT更新。由于每种药物的不同,多个药物训练时通常使用图批处理,而不是强行补成同样大小。
这些109维是由RDKit从已知化学结构读取并按规则编码的初始特征,不是训练后得到的药物向量。GAT、交叉注意力和池化在此基础上学习出整个药物的最终表示;副作用侧相应地以MedDRA术语层级的243维初始特征为起点。
5. 节点表示怎样变成药物表示
GAT输出的是每个原子的向量,但最终要预测的是整个药物。于是需要池化:
A3Net使用global max pooling,即每个维度取所有原子中的最大值。它能保留最强响应,但会丢失“哪个原子产生了该响应”和原子数量等信息。
6. 初学者常见混淆
- SMILES不是图像,也不是蛋白质序列;
- 109维是人为设计的原子属性编码,不是109个原子;
- 图中的边表示化学键,不表示药物之间的相似性;
- 原子注意力高,只说明模型利用了该原子附近的信息,不自动构成生物机制证据。
相关概念
- 图卷积网络GCN:理解图上的消息传递
- 图注意力网络GAT:A3Net实际使用的图编码器
- 交叉注意力与自注意力:原子表示如何与副作用表示发生交互
相关论文
- A3Net精读笔记(A3Net)
被以下札记引用
2026-W35