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 里四种键类型的关系与转换逻辑。
3.7 避坑指南与实战建议
嗯,这里要注意几个地方,都是我自己或者团队里兄弟踩过的坑。
- 单键别乱写减号。 SMILES 里单键默认省略,你加个减号虽然解析器能认,但会让字符串变长、可读性变差。我建议除非为了对齐结构,否则一律省略。
- 双键位置要精确。 写烯烃、酮类的时候,双键等号的位置错了,整个分子结构就变了。我见过有人把丙酮写成 C(=O)C 结果解析成丙醛——因为等号位置不一样。
- 三键别用其他符号。 有些人用特殊符号或中文输入法里的全角符号代替井号,解析器不认。记住,只有半角
#才是标准。 - 芳香键用小写字母。 别写成大写的 C。大写的 C 是脂肪族碳,解析器不会给它分配芳香性。小写 c 才是芳香碳。
- 芳香环的编号要闭合。 比如苯环
c1ccccc1,头尾用数字配对。你如果漏了数字,解析器不知道哪两个原子连成环。
我曾经犯过的错:有一次写吡啶,我写了 c1ccccn1,结果解析出来成了苯胺——因为我把氮的位置放错了,而且用了大写 N。正确写法应该是小写 n 在环内:c1ccncc1。
说白了,键表示这块没太多玄学。记住那四种符号,多写几遍就熟了。
我建议你从简单的分子开始练手:先写乙烷 CCC,再写乙烯 C=C,然后乙炔 C#C,最后写苯环 c1ccccc1。一轮下来,四种键也就通通记住了。