在化学与信息科学交叉的领域中,要在计算机中处理分子结构,就需要一种“语言”。其中最具代表性的例子就是 SMILES 表示法。
SMILES 是 Simplified Molecular Input Line Entry System 的缩写,由 David Weininger 于 20 世纪 80 年代后期提出。它是一种用一行字符串表示分子结构的表示法,广泛用于化学数据库、化学信息学、AI 药物发现、分子生成模型等领域。
例如,乙醇的化学式写作 CH3CH2OH,而在 SMILES 中可以写成:
CCO
这表示碳、碳、氧按顺序通过单键相连。SMILES 的优势在于 对人来说相对容易阅读,对计算机来说也容易处理。MOL 文件和 SDF 等格式可以保存详细的结构信息,但在列出大量分子或作为机器学习模型输入时,SMILES 的简洁性具有很大优势。
1. SMILES 的基本语法
SMILES 通过组合原子、键、支链、环结构等来表示分子。基本符号如下。
| 要素 | 表示方法 | 示例 | 含义 |
|---|---|---|---|
| 原子 | 元素符号 | C, O, N |
碳、氧、氮 |
| 单键 | 通常省略 | CC |
碳与碳之间的单键 |
| 双键 | = |
C=C |
乙烯 |
| 三键 | # |
C#C |
乙炔 |
| 支链 | () |
CC(C)C |
异丁烷 |
| 环结构 | 数字 | C1CCCCC1 |
环己烷 |
| 芳香族原子 | 小写字母 | c1ccccc1 |
苯 |
有机化学中常用的 B、C、N、O、P、S、F、Cl、Br、I 等原子可以不使用方括号直接书写。对于这些原子,氢原子会根据标准价态被隐式补足。
例如:
| 分子 | SMILES | 说明 |
|---|---|---|
| 甲烷 | C |
碳上隐式连接 4 个氢 |
| 乙烷 | CC |
两个碳以单键相连 |
| 乙醇 | CCO |
碳、碳、氧以直链方式连接 |
| 乙酸 | CC(=O)O |
含有羰基和羟基 |
另一方面,如果要显式表示电荷、同位素、金属原子或非标准价态,则使用方括号。
- 钠离子:
[Na+] - 铁(II)离子:
[Fe+2] - 铵离子:
[NH4+]
2. 支链、环结构与芳香性
支链用圆括号表示。例如,异丁烷可以写成:
CC(C)C
这表示甲基从主链的碳原子上分支出来。
在环结构中,通过在两个位置使用相同的数字来表示环闭合的位置。
C1CCCCC1
这表示环己烷。第一个和最后一个碳上标记的 1 表示这两个原子相互成键并形成环。
苯可以用 Kekule 结构写成:
C1=CC=CC=C1
如果要显式表示芳香性,则使用小写 c:
c1ccccc1
不过,芳香性的判定并不是完全唯一的。RDKit、Open Babel、Daylight 等软件在芳香性识别和标准化结果上可能存在差异。因此,在研究或数据处理中使用 SMILES 时,记录所使用的工具和版本非常重要。
3. 立体化学的表示
SMILES 不仅可以表示原子的连接关系,也可以表示一部分立体化学信息。
| 立体信息 | 符号 | 内容 |
|---|---|---|
| 手性中心 | @, @@ |
四面体中心的局部方向 |
| 几何异构 | /, \ |
双键周围的相对构型 |
对于手性中心,使用 @ 或 @@。不过,这些符号并不直接表示 R/S 构型。它们是基于 SMILES 字符串中相邻原子出现顺序的局部立体表示;要判断 R/S 构型,还需要另外考虑 CIP 顺序规则。
双键周围的几何异构用 / 和 \ 表示。
Cl/C=C/Cl
Cl/C=C\Cl
这些写法用于区分 1,2-二氯乙烯的异构体。不过,/ 和 \ 也需要在整个字符串的上下文中解释,不能仅凭符号本身判断意义。
4. Canonical SMILES 的重要性
SMILES 的一个重要注意点是,同一个分子可以有多种写法。
例如,乙醇可以用以下两种方式表示。
CCO
OCC
它们都表示同一个分子,但作为字符串却不同。这样会在数据库搜索和去重时造成问题。
因此会使用 Canonical SMILES。
| 项目 | 内容 |
|---|---|
| 目的 | 让同一个分子更容易作为同一个字符串处理 |
| 方法 | 对分子图中的原子排序,并生成代表性的 SMILES |
| 优点 | 有助于去重、搜索和数据整理 |
| 注意点 | 输出依赖软件实现 |
Canonical SMILES 非常有用,但它并不是完全国际标准化的唯一字符串。RDKit、Daylight、Open Babel 等工具可能输出不同的标准化 SMILES。因此,在研究中使用时,最好明确说明使用了哪种软件进行标准化。
5. 与 InChI 和 SELFIES 的区别
用字符串表示分子的方法并不只有 SMILES。代表性的还有 InChI 和 SELFIES。
| 表示法 | 主要用途 | 优点 | 注意点 |
|---|---|---|---|
| SMILES | 结构描述、搜索、机器学习 | 简短且相对可读 | 可能生成无效字符串 |
| InChI | 化合物识别、标准化 | 作为标识符很强大 | 人类不易阅读 |
| SELFIES | 分子生成、机器学习 | 原则上更容易生成有效分子 | 字符串容易变长 |
InChI(International Chemical Identifier) 是由 IUPAC 主导开发的化学物质标识符。它以分层结构描述原子、键、氢、电荷、立体化学、同位素等信息,适合用于标准化地识别化合物。另一方面,它并不适合人类直观阅读。
SELFIES(SELF-referencIng Embedded Strings) 是一种面向机器学习,尤其是分子生成模型提出的表示法。使用 SMILES 时,AI 可能生成语法错误的字符串或化学上不合适的分子。相比之下,SELFIES 被设计为原则上任意 SELFIES 字符串都对应有效分子。
6. 在 AI 药物发现和机器学习中的应用
由于 SMILES 是字符串,因此自然语言处理中发展出的技术很容易应用到化学中。通过让 RNN、VAE、Transformer 等模型学习大量 SMILES,模型可以学习“化学上合理的字符串”模式。
主要应用如下。
| 应用领域 | 内容 |
|---|---|
| 分子生成 | 从已有化合物生成新的候选分子 |
| 性质预测 | 预测溶解性、膜透过性、毒性等 |
| 活性预测 | 预测与靶蛋白的结合和药理活性 |
| 逆合成分析 | 从目标分子预测合成路线和前体 |
处理化学反应时会使用 Reaction SMILES。基本格式如下。
reactants>agents>products
如果不使用 agent 栏,则写成:
reactants>>products
在逆合成分析中,会从目标分子的 SMILES 预测合成该分子所需的前体和反应路线。这也可以看作是将生成物字符串“翻译”为反应物字符串的问题。
7. MolSketch 可以从 SMILES 自动生成结构式
在研究和开发现场,SMILES 不仅是“用于保存的字符串”,也是 快速调用结构式的输入格式。
在 MolSketch 中,输入 SMILES 后可以自动生成对应的化学结构式。如果你手头已经有来自论文、数据库、内部资料或其他工具的 SMILES,就可以直接用它开始创建结构式。
例如,可以按以下流程操作。
- 复制已有的 SMILES
- 粘贴到 MolSketch 的输入栏
- 自动生成结构式
- 根据需要继续编辑、保存或导出
这样,MolSketch 可以连接“作为字符串的化学信息”和“作为图形的化学结构式”。与其从零开始手动画图,很多情况下从 SMILES 出发再调整必要部分会更高效。
它尤其适合以下用途。
- 想把论文或数据库中找到的化合物立即变成图
- 想在已有分子的基础上稍作修改
- 想为演示资料或报告制作结构式图片
理解 SMILES 的意义后,它就不只是普通的字符串输入,而是“将化学信息直接转换为可编辑结构式的入口”。
8. 使用 SMILES 时的注意点
SMILES 很方便,但并不是万能的。尤其需要注意以下几点。
- 同一个分子可能存在多个 SMILES。
- Canonical SMILES 依赖软件实现。
- 芳香性判定会因工具而异。
- 如果省略立体化学,可能无法区分异构体。
- 通常不包含 3D 坐标或构象信息。
- 盐、溶剂、质子化状态、互变异构体的处理会影响结果。
SMILES 主要表示分子图和部分立体化学信息。当蛋白质结合方式、分子三维构象、溶剂效应等信息很重要时,需要结合 SDF、MOL2、PDB 等格式以及 3D 结构生成方法。
总结
SMILES 表示法是一种简洁而强大的化学语言,用一行字符串表示分子结构。它可以用短字符串表达原子、键、支链、环结构、芳香性和立体化学,因此广泛用于化学数据库、化学信息学、AI 药物发现、分子生成模型等领域。
另一方面,SMILES 也有以下限制。
| 限制 | 说明 |
|---|---|
| 多种表示 | 同一个分子可以用多个字符串表示 |
| 实现依赖 | Canonical SMILES 和芳香性判定会因工具而异 |
| 立体信息省略 | 有时无法区分异构体 |
| 缺少 3D 信息 | 通常不包含坐标和构象 |
在现代数据驱动化学中,SMILES 是计算机读写分子的基本接口。就像化学家绘制结构式一样,AI 通过 SMILES 学习分子并探索新的候选化合物。对 SMILES 的理解,将成为化学、生命科学、材料科学和 AI 药物发现研究者越来越重要的基础知识。
参考文献
- Weininger, D. "SMILES, a chemical language and information system. 1. Introduction to methodology and encoding rules." Journal of Chemical Information and Computer Sciences, 28(1), 31–36, 1988.
- Weininger, D., Weininger, A., Weininger, J. L. "SMILES. 2. Algorithm for generation of unique SMILES notation." Journal of Chemical Information and Computer Sciences, 29(2), 97–101, 1989.
- Heller, S. R. et al. "InChI, the IUPAC International Chemical Identifier." Journal of Cheminformatics, 7, 23, 2015.
- Krenn, M. et al. "SELFIES: a robust representation of semantically constrained graphs with an example in chemistry." Machine Learning: Science and Technology, 1(4), 045024, 2020.
- Gómez-Bombarelli, R. et al. "Automatic Chemical Design Using a Data-Driven Continuous Representation of Molecules." ACS Central Science, 4(2), 268–276, 2018.