Skip to content

Latest commit

 

History

History
76 lines (65 loc) · 4.9 KB

SMARTS_cheatsheet.md

File metadata and controls

76 lines (65 loc) · 4.9 KB

参考DAYLIGHT的SMARTS介绍。英文版在这里

Table of Contents

  1. 简介
  2. 原子属性
  3. 键属性
  4. 逻辑操作符
  5. 递归SMARTS
  6. 组合匹配
  7. 反应SMARTS

一、SMARTS简介

  • 是什么 SMARTS(SMiles ARbitrary Target Specification)是一种用于描述分子模式和属性的语言。SMILES所有的符号和属性在SMARTS中同样适用,因此它也是SMILES的延伸。此外,SMARTS还包括了逻辑操作符和额外的分子描述符,后文会一一介绍。

  • 能做什么 SMARTS可以从不同程度来概括和表示结构模式。举个例子: 甲烷的SMILES可以用"C"或"[CH4]"表示。 而"[CH4]"在SMARTS中,高度特异地表示与甲烷一致的结构,即只能匹配一个带有4个氢的脂肪族碳原子。 而"C"在SMARTS中特异程度较低,可以表示带有任意数量氢的脂肪族碳原子,比如乙烷、乙烯、环戊烷。

二、原子属性

SMARTS 匹配结构 说明
[+1] 带有一个正电荷的原子 SMILES对电荷、氢、同位素、键、手性等描述方式,在SMARTS中都可以兼容。一个"+"表示"+1",两个"++"表示"+2"
[a] 带有芳香性的原子 "a"表示任何带有芳香性质的原子
[A] 带有脂肪族属性的原子 "A"表示任何带有脂肪族性质的原子
[#6] 原子序数为6的原子(c或C) "#<number>"表示序数为<number>的原子,无论是脂肪族还是芳香族
[R2] 在两个环中的原子 "R<number>"表示在<number>元环中的原子,默认{R}为在任何环中的原子
[r5] 在五元环中的原子 "r<number>"表示<number>元环中的原子
[v4] 4价原子 "v<number>"表示任何含有键的数量为<number>的原子。另外"="表示双键,"#"表示三键
[X2] 与两个原子链接的原子 "X<number>"表示任何与<number>个原子相连的原子(包括氢原子)
[H] 氢原子 一个氢原子(通常也叫一个显式氢,explicit hydrogen)具有一些特殊的性质[H+],[2H],[H][H]等。[H+]和[2H]含义相似
[H1] 与一个氢相连的原子 "H<number>"表示任何与<number>个氢(显式或隐式氢)相连的原子。[*H]表示没有氢相连的原子
* 任何原子 "*"表示通配原子,匹配任意重原子(非氢原子)

三、键属性

SMARTS 匹配结构 说明
CC 两个由单键相连接的脂肪碳 所有SMILES的键的属性在SMARTS中都可以使用,包括隐式单键、显式单键(-)、双键(=)、三键(#)、芳香键(:)
[#6]~[#6] 两个由任意键相连的碳 "~"表示通配键
[#6]@[#6] 两个在同一个环中相连的碳 "@"表示在同一个环中
[F/?[#6]=C/Cl] 氟原子通过"/"("/"指定了顺反异构构型)或未指明的键与碳原子相连(比如可以匹配到"F/C=C/Cl"或"FC=C/Cl",不能匹配到"F\C=C/Cl") "?"表示"或不确定",还可以和手性描述符"@"一起使用

四、逻辑操作符

SMARTS 匹配结构 说明
!c 非芳香的碳 "!"表示"非"
[N,#8] 匹配脂肪族氮或匹配一个氧 ","表示"或",优先级高于"与"(";"),低于另一个"与"("&")
[#7,C&+O,+1] or [#7,C+O,+1] 氮原子或中性脂肪碳原子或带一个正电荷的原子 "&"表示"与"(优先级高),是默认的逻辑操作符,可以省略
[#7,C;+0,+1] 氮或脂肪碳,且不带或带一个正电荷 ";"也表示"与",但优先级低

五、递归SMARTS

SMARTS 匹配结构 说明
[$(*O);$(*CC)] 一个与脂肪氧相连的原子,或一个连接有两个脂肪碳的原子 "$<SMARTS>"表示匹配周围具有某种结构的原子
[$([CX3]=[OX1]),$([CX3+]-[OX1-])] 与一个羰基相连的原子,或相对合理的结构
[$([A]aaO);$([A]aaaN)] 芳环上位于氧的邻位,氮的间位的原子

六、组合匹配

SMARTS 匹配结构 说明
[#8].[#8] 匹配两个氧(例如O=O, OCCO, O.CCO) "."表示无需连接
([#8].[#8]) 在同一个结构中匹配两个氧(例如O=O, OCCO,无法匹配O.CCO) 可以在SMARTS外加圆括号,表示括号内的结构需要在同一组分中出现
([#8]).([#8]) 在不同的结构中匹配两个氧(例如O.CCO,无法匹配O=O, OCCO) 可以使用多个圆括号,表示需要在不同的组分中进行匹配

七、反应SMARTS

SMARTS 匹配结构 说明
[#6]=,:[#6] 由一个双键或芳香键连接的碳 不带">"符号的SMARTS可以匹配任意反应组分(反应物、试剂或产物)
>>[#6]=,:[#6] 产物中有两个碳,由双键或芳香键连接 带有">"符号的SMARTS不能用于分子的匹配(只能用在反应中)
[C:1]>>[C:1] 加入":"和数字表示对原子进行标记和映射 原子如果做了标记,就会与对应的被标记的原子匹配,不会匹配到没有标记的原子上
[C:1]>>C 反应碳 标记的原子无法完全配对时,将会忽略
[C:1][C:1]>>[C:1] 多次标记的反应碳