3、键表示:单键、双键、三键、芳香键

写 SMILES,说白了就是在描述分子里的原子怎么连的。

连法不同,键的表示就不同。我刚开始学的时候,觉得这很简单——不就是画几条线吗?

后来踩的坑多了才发现,细节都在这里头。

3.1 单键:最基础的连接

单键是 SMILES 里最常用的键。

怎么表示?不写任何符号。两个原子符号挨着放,就是单键。

举个例子:

CC    → 乙烷,两个碳之间是单键
CO    → 甲醇,碳氧单键
CCO   → 乙醇,全是单键

我个人习惯,在写直链烷烃的时候,就直接把碳原子一串写下来。

比如正戊烷:

CCCCC

五个碳,四个单键,看起来清爽。

实际经验:我遇到过一个新手,非要在单键之间加个减号,写成 C-C。其实也能解析,但没必要。标准 SMILES 里,单键的符号就是什么都不写。

逻辑运算符这块,单键对应的是「-」,但在标准 SMILES 字符串里,我们通常省略它。

只有在需要明确断开歧义时,我才会主动写出来。比如:

C-C(=O)-C   → 丙酮,这里明确标出单键是为了让结构更清晰

3.2 双键:等号搞定

双键用等号 = 表示。

你想想看,一个双键就是两个原子共享两对电子。SMILES 里就用一个等号来代表。

典型例子:

C=C    → 乙烯,碳碳双键
C=O    → 甲醛,碳氧双键
CC=O   → 乙醛,甲基连着羰基

我在项目中遇到过一个问题:写烯烃时,双键的位置一旦标错,整个分子就变味了。

比如 2-丁烯和 1-丁烯:

CC=C    → 1-丁烯,双键在末端
C/C=C/C → 2-丁烯,双键在中间

所以双键位置的「=」一定要放对地方。

键类型 SMILES 表示 逻辑运算符 含义
单键 (省略)或 - - 共享一对电子
双键 = = 共享两对电子
三键 # # 共享三对电子
芳香键 小写字母 : 离域 π 电子体系

3.3 三键:井号键

三键用 # 表示。就是井号键。

你可能觉得奇怪,为什么是三键用井号?其实没什么特别原因,早期设计就这么定了。

常见三键分子:

C#C     → 乙炔,碳碳三键
C#N     → 氢氰酸,碳氮三键
N#N     → 氮气,氮氮三键

我记得有一次在解析一个炔烃库的时候,有个化合物的 SMILES 写成了 C≡C——用特殊符号代替井号。结果解析器直接报错。

所以说白了,标准就是标准,# 才是三键的正确写法。

我曾经踩过的坑:三键的井号不能和数字混淆。比如 C#C,你要是手滑写成 C3C,解析器会以为第三个碳原子,而不是三键。

3.4 芳香键:小写字母的魔法

芳香键是 SMILES 里比较特别的存在。

苯环大家都知道,六个碳。如果用单键双键交替写,可以写成:

C1=CC=CC=C1

但这样写很啰嗦。芳香键的表示方法是用小写字母:

c1ccccc1

看,一个 c 代表一个芳香碳。六个 c 头尾相连,就是一个苯环。

为什么用小写?

因为大小写区分了芳香和脂肪族。大写 C 是脂肪族碳,小写 c 是芳香碳。

解析器看到小写字母,就知道这个原子参与离域 π 电子体系,自动处理芳香性。

其他芳香原子:

c1cc[nH]c1   → 吡咯,芳香碳 + 芳香氮
c1c[nH]c1    → 呋喃?不对,这是吡咯的另一种写法

这里注意,芳香键的逻辑运算符是冒号 :。 但通常我们直接用小写字母,解析器自己会识别。

核心要点:芳香键的规则是——环内的单键、双键交替不能直接写数字,而要写成小写字母。这样解析器自动完成芳香性判断。

3.5 键的类型与解析器行为

你可能好奇:解析器是怎么区分这些键的?

其实很简单。

解析器从左到右扫描 SMILES 字符串,遇到 = 就标记双键,遇到 # 就标记三键,遇到小写字母就标记芳香环。

没遇到任何符号的,默认为单键。

一个示例流程:

输入: CCO
扫描:
  1. C → 单键(默认)
  2. C → 单键(默认)
  3. O → 单键(默认)
输出: 乙烷醇骨架
输入: C#N
扫描:
  1. C → 单键(默认)
  2. # → 标记三键
  3. N → 连接到 C 用三键
输出: 氢氰酸

我建议你记住一个顺口溜:

单键不写默认有,双键等号一把锁,三键井号别忘掉,芳香小写走天下。

3.6 键的类型关系图

下面这张图展示了 SMILES 里四种键类型的关系与转换逻辑。

SMILES 键类型关系与转换逻辑图 SMILES 字符串 单键(省略 / -) 双键(=) 三键(#) 芳香键(小写/ :) 解析器自动识别符号,分配键类型 歧义强制用逻辑算子 自动处理芳香性 图 3-1:四种键类型与解析器行为对照

3.7 避坑指南与实战建议

嗯,这里要注意几个地方,都是我自己或者团队里兄弟踩过的坑。

  1. 单键别乱写减号。 SMILES 里单键默认省略,你加个减号虽然解析器能认,但会让字符串变长、可读性变差。我建议除非为了对齐结构,否则一律省略。
  2. 双键位置要精确。 写烯烃、酮类的时候,双键等号的位置错了,整个分子结构就变了。我见过有人把丙酮写成 C(=O)C 结果解析成丙醛——因为等号位置不一样。
  3. 三键别用其他符号。 有些人用特殊符号或中文输入法里的全角符号代替井号,解析器不认。记住,只有半角 # 才是标准。
  4. 芳香键用小写字母。 别写成大写的 C。大写的 C 是脂肪族碳,解析器不会给它分配芳香性。小写 c 才是芳香碳。
  5. 芳香环的编号要闭合。 比如苯环 c1ccccc1,头尾用数字配对。你如果漏了数字,解析器不知道哪两个原子连成环。

我曾经犯过的错:有一次写吡啶,我写了 c1ccccn1,结果解析出来成了苯胺——因为我把氮的位置放错了,而且用了大写 N。正确写法应该是小写 n 在环内:c1ccncc1。

说白了,键表示这块没太多玄学。记住那四种符号,多写几遍就熟了。

我建议你从简单的分子开始练手:先写乙烷 CCC,再写乙烯 C=C,然后乙炔 C#C,最后写苯环 c1ccccc1。一轮下来,四种键也就通通记住了。