第四讲 化学结构信息的计算机表述方法
2019-07-24姚建华李佳徐雯丽蒋舒仰胡静李靖靖
姚建华 李佳 徐雯丽 蒋舒仰 胡静 李靖靖
1中国科学院能量调控材料重点实验室,中国科学院上海有机化学研究所(上海 200032)
2郑州工程技术学院 (河南郑州 450044)
据文献记载,自公元330年起,人们就开始研究物质的组成、运动、生长或脱去。美国化学文摘社(CAS,Chemical Abstracts Service)统计的数据显示,截至目前,己知的化合物近1.5亿,已报道的化学反应已超过9000万条[1]。
为了记录和交流化学知识,必须用一种语言(术语)来描述这些化合物,即所谓的化合物命名。早在十八世纪末,瑞典化学家Bergman和法国化学家Laviosier首先建议将当时杂乱的术语统一起来。虽然他们的体系没能得到普及,但是这一思想却孕育了现代化学广泛使用着的系统命名法。
随着人们对化学结构认识的不断深化,逐渐形成了近代化学结构理论,特别是Kekule在1865年首次使用了由单短线和双短线交替组成的正六边形来表示苯的结构以后,结构式已成为化学家最通用的语言和化学知识的载体。
化学结构作为化学家最普遍使用的语言,在化学知识的记录、传播和交流中起着十分重要的作用。随着计算机的普及,广大化学工作者都希望能用计算机来帮助处理化学结构。
然而,化学结构式也有记录与处理困难的缺点,随着计算机的普及,化学家希望能借助于它来处理化学结构。因此,自计算机诞生起,用计算机处理化学结构的理论和技术就得到了广泛的重视与深入的研究。早在20世纪50年代,美国国家标准化办公室数据处理系统部门的工作人员Ray和Kirsch就在《Science》上发表了题为“Finding chemical records by digital computers”的文章[2]。
在此,将介绍几种化学结构的表述方法:系统命名法、线形码、碎片码、拓扑码和连接表。
1 系统命名
在早期的化学文献中,化合物命名大多使用简短的习惯命名法。习惯命名的无规律性造成了使用的不方便,因此,化学家希望建立一套大家公认的规则,根据这套规则,每个化合物都能得到一个标准的命名,这就是系统命名法。系统命名法,特别是它遵循的原则是其他一切化学结构表述方法的基础。目前,被化学家接受的系统命名法主要为IUPAC系统命名法[3]和CA 索引名(CA index name)[4]。
由于IUPAC系统命名的某些不足,美国化学文摘社根据IUPAC规则设计了专用的系统命名规则(即CA索引名),并生成算法[5]。
2 化学结构的机器表述
化学结构的自动处理最早是基于打字机的化学结构表示法,提出者为 Richards[6],Dyson[7]和Frear[8]等。
他们试图用数字和字母组成的直线形式来表述结构式。之后,还有许多人提出了各种各样的化学结构表述方法。20世纪60年代后期以来,人们开展了完善表述化学结构的方法和计算机表述化学结构方法的工作。目前,在计算机上得到实际应用的结构表述方法有线形码、碎片码、拓扑码和连接表文件等等。化合物4-(2-乙胺基)-1,2-苯二酚的化学结构如图1所示。
图1 化合物4-(2-乙胺基)-1,2-苯二酚的化学结构
4-(2-乙胺基)-1,2-苯二酚对应的命名、线形码和连接文件显示如下:
系统命名 (英文):4-(2-ethylaminyl)-1,2-diphenole
系统命名(中文):4-(2-乙胺基)-1,2-苯二酚
习惯名:Dopamine
SMILES 码a:OC1=C(O)C=C(CCN)C=C1
SLN 码a:OHC[1]=C(OH)C=C(CH2CH2NH2)C=C@1
InChI码a:1/C8H11NO2/c9-4-3-6-1-2-7(10)8(11)5-6/h1-2,5,10-11H,3-4,9H2
连接文件b:
-ISIS- 06181923262D
11 11 0 0 0 0 0 0 0 0999 V2000
1.6236 1.0292 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1.6224 -1.3648 0.0000C 0 0 0 0 0 0 0 0 0 0 0 0
3.6956 -2.5610 0.0000C 0 0 0 0 0 0 0 0 0 0 0 0
5.7870 -1.3519 0.0000C 0 0 0 0 0 0 0 0 0 0 0 0
5.7841 1.0203 0.0000C 0 0 0 0 0 0 0 0 0 0 0 0
3.6938 2.2253 0.0000C 0 0 0 0 0 0 0 0 0 0 0 0
-0.4750 2.2500 0.0000O 0 0 0 0 0 0 0 0 0 0 0 0
-0.4750-2.5792 0.0000O 0 0 0 0 0 0 0 0 0 0 0 0
7.9000 -2.5292 0.0000C 0 0 0 0 0 0 0 0 0 0 0 0
7.9375 -4.9458 0.0000C 0 0 0 0 0 0 0 0 0 0 0 0
12.1042 -6.9458 0.0000N 0 0 0 0 0 0 0 0 0 0 0 0
5 6 2 0 0 0 0
6 1 1 0 0 0 0
1 2 2 0 0 0 0
1 7 1 0 0 0 0
3 4 2 0 0 0 0
2 8 1 0 0 0 0
4 9 1 0 0 0 0
4 5 1 0 0 0 0
9 10 1 0 0 0 0
2 3 1 0 0 0 0
10 11 1 0 0 0 0 MEND
注:a——ChemDraw Ultra Ver.10.0软件生成;
b——MDL mol格式文件。
3 线形码
所谓线形码(或称线形标记),是由一组字符按照一定的规则排列而成的一个字符串,该字符串可用于表达对应的化学结构式。目前,比较常用的主要有 SMILES,SLN 和 InChI。
SMILES(Simplified molecular input line entry system)码,是一种用ASCII字符串明确描述分子结构的表达式。SMILES由Arthur Weininger和David Weininger于20世纪80年代晚期开发,并由其他人,尤其是日光化学信息系统有限公司(Daylight Chemical Information Systems Inc.),修改和扩展。
SLN(SYBYL Line Notation)是由 Tripos公司提出的一种线形ASCII码表达式 ,用于表示化学结构,包括常见的有机分子、大分子、聚合物和组合库。SLN还用于表示子结构查询,包括用于Markush表示的完整工具。这种简洁的语言非常适合于化学实体的数据库存储以及结构和查询的网络通信[9]。
InChI(International Chemical Identifier)是 由 国际纯粹与应用化学联合会(International Union of Pure and Applied Chemistry,IUPAC)和美国国家标准技术研究所(National Institute of Standards and Technology,NIST)联合制定的,用以唯一标识化合物识别码[10]的线形码。
除了专用系统,目前,ChemDraw Ultra Ver10.0及以上版本可以产生以上介绍的3种线形码。但需要注意的是,不同版本的线形码生成系统,产生的线形码可能有差异。
4 碎片码
碎片码是将化学结构分割成结构片断(这些片断有一定的化学意义,最常见的为官能团、环系统等),然后再加以表述的一种方法。用碎片码表示化学结构主要涉及3个内容:
(1)结构碎片的选择;
(2)结构碎片的表示;
(3)代表结构碎片的符号按何种方式(常称为句法)整合。
结构碎片的选择通常有两种方法:
(1)根据定义好的结构碎片词典;
(2)根据分割规则通过算法来分割结构。
为了便于计算机处理,结构碎片通常用计算机可直接使用的字符来表示。而代表结构碎片的字符还须按某种方式组织起来以代表整个化学结构,这种组织方式称为句法。实际使用中,这种句法可根据实际情况来采用,它们分别称为有句法、半句法或无句法。
5 拓扑码
直接描述分子中结构单元的性质及其相互位置(拓扑)关系的编码即是所谓的拓扑码。与碎片码和其他编码相比,拓扑码收录了图的信息。化学结构实际上可被看成有序色图[11]。
含有n个原子的化学结构,有n!种不同的编号方法(n!个同构的图)。为使一个确定结构只能产生一个唯一的拓扑码(这一点对编码系统至关重要),结构中的原子必须按某种方式排序。
排序在产生化学结构的拓扑码时起着决定性的作用,不同的排序方式将产生不同的拓扑码。最著名的拓扑码是美国化学文献社采用的Rgeistrty III[12]和法国学者Dubois所提出的DARC码[11]。在用这两种码表示化学结构时,都需要首先找出结构图的起始点(在CAS码中为1号原子,而DARC码中称为中心),再确定图中其他原子的序号。与绝大多数拓扑码一样,这两种码都只对非氢原子进行描述,而氢原子可以方便地由价键理论计算而得。这两种码的区别在于,CAS码中原子的序号是用Morgan算法[13]获得,而DARC码中的原子序号是对结构图不断应用优先规则来确定的。
6 连接表
化合物的系统命名、碎片码、拓扑码和线形码等,都可用于表述化合物分子结构,原则上它们都可用于计算机处理。但是,这些表述方法不适用于化学结构的比较。
所谓连接表,本质上是分子中所有原子性质及其连接关系(有时包括立体化学)的一个列表。在连接表中,原子信息主要包含:原子种类,原子的化合价,原子间的连接关系,原子的坐标以及可能的原子电荷、同位素、立体化学。分子的连接表有冗余的与非冗余的(单向)两种。
所谓冗余连接表,实际是每个键被重复描述两次(即成键的一对原子,每个原子都作为起始原子被描述)。可见,这种表述方法用于表述化学结构并不合理。所谓非冗余连接表,即对每个键只描述一次。后者不仅占用存储空间小,且计算量也相应减少。因此,非冗余连接表在计算机处理化学结构的程序中得到实际应用。由MDL公司的ISIS_DRAW生成的原子编号如图2所示,对应的单向连接表见表1。
图2 ISIS_DRAW生成的4-(2-乙胺基)-1,2-苯二酚的原子编号
表1 4-(2-乙胺基)-1,2-苯二酚的单向连接表
7 结语
化学结构作为化学家最普遍使用的语言,在化学知识的记录、传播和交流中的核心作用已为大家所认识。
本文概述了长期以来,前人为了实现计算机存储和处理化学结构所提出的化学结构的一些表述方法。这些表述方法都有其适用的环境,即不同的情况采用不同的方法。在使用时,建议采用适合解决问题的那种方法。