姚建華 李佳 徐雯麗 蔣舒仰 胡靜 李靖靖
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]。
在此,將介紹幾種化學結構的表述方法:系統命名法、線形碼、碎片碼、拓撲碼和連接表。
在早期的化學文獻中,化合物命名大多使用簡短的習慣命名法。習慣命名的無規律性造成了使用的不方便,因此,化學家希望建立一套大家公認的規則,根據這套規則,每個化合物都能得到一個標準的命名,這就是系統命名法。系統命名法,特別是它遵循的原則是其他一切化學結構表述方法的基礎。目前,被化學家接受的系統命名法主要為IUPAC系統命名法[3]和CA 索引名(CA index name)[4]。
由于IUPAC系統命名的某些不足,美國化學文摘社根據IUPAC規則設計了專用的系統命名規則(即CA索引名),并生成算法[5]。
化學結構的自動處理最早是基于打字機的化學結構表示法,提出者為 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格式文件。
所謂線形碼(或稱線形標記),是由一組字符按照一定的規則排列而成的一個字符串,該字符串可用于表達對應的化學結構式。目前,比較常用的主要有 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種線形碼。但需要注意的是,不同版本的線形碼生成系統,產生的線形碼可能有差異。
碎片碼是將化學結構分割成結構片斷(這些片斷有一定的化學意義,最常見的為官能團、環系統等),然后再加以表述的一種方法。用碎片碼表示化學結構主要涉及3個內容:
(1)結構碎片的選擇;
(2)結構碎片的表示;
(3)代表結構碎片的符號按何種方式(常稱為句法)整合。
結構碎片的選擇通常有兩種方法:
(1)根據定義好的結構碎片詞典;
(2)根據分割規則通過算法來分割結構。
為了便于計算機處理,結構碎片通常用計算機可直接使用的字符來表示。而代表結構碎片的字符還須按某種方式組織起來以代表整個化學結構,這種組織方式稱為句法。實際使用中,這種句法可根據實際情況來采用,它們分別稱為有句法、半句法或無句法。
直接描述分子中結構單元的性質及其相互位置(拓撲)關系的編碼即是所謂的拓撲碼。與碎片碼和其他編碼相比,拓撲碼收錄了圖的信息。化學結構實際上可被看成有序色圖[11]。
含有n個原子的化學結構,有n!種不同的編號方法(n!個同構的圖)。為使一個確定結構只能產生一個唯一的拓撲碼(這一點對編碼系統至關重要),結構中的原子必須按某種方式排序。
排序在產生化學結構的拓撲碼時起著決定性的作用,不同的排序方式將產生不同的拓撲碼。最著名的拓撲碼是美國化學文獻社采用的Rgeistrty III[12]和法國學者Dubois所提出的DARC碼[11]。在用這兩種碼表示化學結構時,都需要首先找出結構圖的起始點(在CAS碼中為1號原子,而DARC碼中稱為中心),再確定圖中其他原子的序號。與絕大多數拓撲碼一樣,這兩種碼都只對非氫原子進行描述,而氫原子可以方便地由價鍵理論計算而得。這兩種碼的區別在于,CAS碼中原子的序號是用Morgan算法[13]獲得,而DARC碼中的原子序號是對結構圖不斷應用優先規則來確定的。
化合物的系統命名、碎片碼、拓撲碼和線形碼等,都可用于表述化合物分子結構,原則上它們都可用于計算機處理。但是,這些表述方法不適用于化學結構的比較。
所謂連接表,本質上是分子中所有原子性質及其連接關系(有時包括立體化學)的一個列表。在連接表中,原子信息主要包含:原子種類,原子的化合價,原子間的連接關系,原子的坐標以及可能的原子電荷、同位素、立體化學。分子的連接表有冗余的與非冗余的(單向)兩種。
所謂冗余連接表,實際是每個鍵被重復描述兩次(即成鍵的一對原子,每個原子都作為起始原子被描述)。可見,這種表述方法用于表述化學結構并不合理。所謂非冗余連接表,即對每個鍵只描述一次。后者不僅占用存儲空間小,且計算量也相應減少。因此,非冗余連接表在計算機處理化學結構的程序中得到實際應用。由MDL公司的ISIS_DRAW生成的原子編號如圖2所示,對應的單向連接表見表1。

圖2 ISIS_DRAW生成的4-(2-乙胺基)-1,2-苯二酚的原子編號

表1 4-(2-乙胺基)-1,2-苯二酚的單向連接表
化學結構作為化學家最普遍使用的語言,在化學知識的記錄、傳播和交流中的核心作用已為大家所認識。
本文概述了長期以來,前人為了實現計算機存儲和處理化學結構所提出的化學結構的一些表述方法。這些表述方法都有其適用的環境,即不同的情況采用不同的方法。在使用時,建議采用適合解決問題的那種方法。