olSketch
什么是 SMILES 表示法:用字符串表示分子的化学信息基础

什么是 SMILES 表示法:用字符串表示分子的化学信息基础

从 SMILES 的基本语法到环结构、立体化学以及 AI 药物发现中的应用,介绍这种标准分子表示语言的机制和用法。

SMILES化学信息学
目录

在化学与信息科学交叉的领域中,要在计算机中处理分子结构,就需要一种“语言”。其中最具代表性的例子就是 SMILES 表示法

SMILES 是 Simplified Molecular Input Line Entry System 的缩写,由 David Weininger 于 20 世纪 80 年代后期提出。它是一种用一行字符串表示分子结构的表示法,广泛用于化学数据库、化学信息学、AI 药物发现、分子生成模型等领域。

例如,乙醇的化学式写作 CH3CH2OH,而在 SMILES 中可以写成:

CCO

这表示碳、碳、氧按顺序通过单键相连。SMILES 的优势在于 对人来说相对容易阅读,对计算机来说也容易处理。MOL 文件和 SDF 等格式可以保存详细的结构信息,但在列出大量分子或作为机器学习模型输入时,SMILES 的简洁性具有很大优势。

1. SMILES 的基本语法

SMILES 的基本语法
SMILES 的基本语法

SMILES 通过组合原子、键、支链、环结构等来表示分子。基本符号如下。

要素 表示方法 示例 含义
原子 元素符号 C, O, N 碳、氧、氮
单键 通常省略 CC 碳与碳之间的单键
双键 = C=C 乙烯
三键 # C#C 乙炔
支链 () CC(C)C 异丁烷
环结构 数字 C1CCCCC1 环己烷
芳香族原子 小写字母 c1ccccc1

有机化学中常用的 BCNOPSFClBrI 等原子可以不使用方括号直接书写。对于这些原子,氢原子会根据标准价态被隐式补足。

例如:

分子 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。代表性的还有 InChISELFIES

表示法 主要用途 优点 注意点
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,就可以直接用它开始创建结构式。

例如,可以按以下流程操作。

  1. 复制已有的 SMILES
  2. 粘贴到 MolSketch 的输入栏
  3. 自动生成结构式
  4. 根据需要继续编辑、保存或导出

这样,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 药物发现研究者越来越重要的基础知识。

参考文献

  1. 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.
  2. 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.
  3. Heller, S. R. et al. "InChI, the IUPAC International Chemical Identifier." Journal of Cheminformatics, 7, 23, 2015.
  4. 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.
  5. 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.