姚建華 徐雯麗 蔣舒仰 胡靜 李佳 王宇飛 李靖靖
1中國科學(xué)院能量調(diào)控材料重點(diǎn)實驗室,中國科學(xué)院上海有機(jī)化學(xué)研究所(上海 200032)
2鄭州工程技術(shù)學(xué)院(河南鄭州 450044)
在第一講“化學(xué)信息學(xué)概述”中,介紹了化學(xué)信息學(xué)的定義和三大類主要方法:基于數(shù)據(jù)、基于邏輯和基于原理。在本講中,將介紹第一類方法——基于數(shù)據(jù)的部分內(nèi)容:化學(xué)數(shù)據(jù)庫系統(tǒng)的設(shè)計策略。
“數(shù)據(jù)庫”是指一組數(shù)據(jù)及其組織方式。數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System,DBMS)提供訪問此數(shù)據(jù)庫的功能。它是一套集成的計算機(jī)軟件,允許用戶與一個或多個數(shù)據(jù)庫交互,并管理數(shù)據(jù)庫的數(shù)據(jù)訪問權(quán)限。通常,DBMS主要具備以下功能:數(shù)據(jù)輸入、存儲、檢索和管理數(shù)據(jù)的方法。
一個數(shù)據(jù)庫系統(tǒng)主要由兩部分組成:結(jié)構(gòu)化數(shù)據(jù)(即數(shù)據(jù)庫)和數(shù)據(jù)管理系統(tǒng)見圖1。因此,對應(yīng)的工作主要包含兩部分:(1)數(shù)據(jù)采集和規(guī)范化處理(數(shù)據(jù)庫);(2)數(shù)據(jù)管理系統(tǒng)的設(shè)計與開發(fā)。
圖1 數(shù)據(jù)庫系統(tǒng)示意圖
通常,用戶評價數(shù)據(jù)庫性能的關(guān)鍵指標(biāo)包括:使用便利性、檢索結(jié)果正確性和獲得檢索結(jié)果的高效性。使用便利性是指用戶可以很方便地使用數(shù)據(jù)管理系統(tǒng)獲得數(shù)據(jù)庫中的數(shù)據(jù),管理(修改、刪除、增加)數(shù)據(jù)庫中的數(shù)據(jù)。檢索結(jié)果正確性是指用戶獲得的檢索結(jié)果與提交的提問數(shù)據(jù)相符。如果用戶提交的提問數(shù)據(jù)為“年齡小于15歲的人員”,那么用戶得到的正確檢索結(jié)果是數(shù)據(jù)庫中所有的年齡小于15歲的人員名單及其相關(guān)信息,且結(jié)果中沒有15歲及以上的人員信息,否則視為檢索結(jié)果錯誤。獲得檢索結(jié)果的高效性即為用戶提交提問數(shù)據(jù)到獲得檢索結(jié)果之間的時間短、速度快。
實際上,一個數(shù)據(jù)庫系統(tǒng)性能與多種因素相關(guān)。如數(shù)據(jù)量、數(shù)據(jù)質(zhì)量、數(shù)據(jù)庫結(jié)構(gòu)、檢索算法和數(shù)據(jù)管理系統(tǒng)的性能。
建立一個數(shù)據(jù)庫系統(tǒng)的具體工作主要包括:(1)數(shù)據(jù)采集;(2)數(shù)據(jù)規(guī)范化處理規(guī)則的建立;(3)基于規(guī)則的規(guī)范化處理;(4)數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)設(shè)計;(5)查詢算法設(shè)計和系統(tǒng)開發(fā)。前面三項工作屬數(shù)據(jù)庫,第四項與數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)都相關(guān),最后一項工作屬數(shù)據(jù)庫管理系統(tǒng)。
化學(xué)數(shù)據(jù)庫系統(tǒng)是具有化學(xué)專業(yè)背景的數(shù)據(jù)庫系統(tǒng),它與通用數(shù)據(jù)庫系統(tǒng)的主要區(qū)別在于:前者包含化學(xué)專業(yè)特有的化合物化學(xué)結(jié)構(gòu)和化學(xué)反應(yīng)數(shù)據(jù),它們與數(shù)字、文字或圖像數(shù)據(jù)不同。關(guān)于化學(xué)結(jié)構(gòu)和化學(xué)反應(yīng)數(shù)據(jù)的存儲、分析和運(yùn)算涉及應(yīng)用圖論[1]/化學(xué)圖論[2-3]的內(nèi)容,將單獨(dú)介紹。在本講中,將主要介紹:(1)化學(xué)數(shù)據(jù)采集;(2)化學(xué)數(shù)據(jù)的規(guī)范化規(guī)則建立及規(guī)范化處理;(3)數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)設(shè)計;(4)查詢算法設(shè)計和系統(tǒng)開發(fā)(化學(xué)結(jié)構(gòu)和化學(xué)反應(yīng)比較算法將單獨(dú)介紹)。
根據(jù)項目或工作的實際需求,收集相關(guān)文獻(xiàn)報道、實驗獲得或計算獲得的數(shù)據(jù)。不同的需求,采集的數(shù)據(jù)內(nèi)容和側(cè)重點(diǎn)有所不同。一般而言,關(guān)注化合物性質(zhì)的化學(xué)數(shù)據(jù)庫,主要包含以下信息:化合物的化學(xué)結(jié)構(gòu)、化合物的CAS號、化合物的名稱、化合物的相關(guān)性質(zhì)參數(shù)或數(shù)據(jù);關(guān)注化合物合成路線的化學(xué)數(shù)據(jù)庫,主要包含以下信息:合成路線、反應(yīng)條件等信息。當(dāng)然,也可以將關(guān)注的數(shù)據(jù)集成在一個數(shù)據(jù)庫中。由于數(shù)據(jù)采集的工作量較大和成本較高等原因,一般一個數(shù)據(jù)庫不可能收集化合物所有性質(zhì)的參數(shù)或數(shù)據(jù)。
化合物的化學(xué)結(jié)構(gòu)式和化學(xué)反應(yīng)式是化學(xué)數(shù)據(jù)庫系統(tǒng)特有的數(shù)據(jù),不同于數(shù)字、文字和圖像數(shù)據(jù)。
化合物的化學(xué)結(jié)構(gòu)表達(dá)式有1維、2維和3維式?;衔锏?維結(jié)構(gòu)式,即為分子式,是用元素符號表示單質(zhì)或化合物分子組成的式子?;衔锏?維結(jié)構(gòu)是以平面圖顯示原子間的排列和連接關(guān)系。化合物的3維結(jié)構(gòu)是以立體圖顯示原子間的連接、排列和距離關(guān)系。圖2列出了正丁醇的1維(a)、2維(b)和3維(c)結(jié)構(gòu)式。
圖2中的信息顯示:化合物的1維結(jié)構(gòu)式(即分子式)的描述能力有限,只能顯示化合物的元素組成,化合物的2維結(jié)構(gòu)式可以顯示分子內(nèi)原子之間的連接關(guān)系以及結(jié)構(gòu)的完整幾何圖形;化合物的3維結(jié)構(gòu)式可以顯示分子中原子的空間位置、原子間的連接關(guān)系以及分子的三維集合結(jié)構(gòu)。
圖2 正丁醇的1維(a)、2維(b)和3維(c)結(jié)構(gòu)式
目前,化學(xué)數(shù)據(jù)庫中化合物的化學(xué)結(jié)構(gòu)式通常采用2維和3維結(jié)構(gòu)式。由于3維結(jié)構(gòu)式只適用于精確分析結(jié)構(gòu)的某些特定特征,而且輸入比2維結(jié)構(gòu)難度大,因此,大部分化學(xué)數(shù)據(jù)庫中的化學(xué)結(jié)構(gòu)采用2維結(jié)構(gòu)式?;瘜W(xué)結(jié)構(gòu)式的采集以2維結(jié)構(gòu)式為主。
CAS號(CASRegistry Number或稱CASNumber,CASRN,CAS#)又稱CAS登錄號或CAS登記號碼,是美國化學(xué)文摘社為每種公開發(fā)表的物質(zhì)(化合物、高分子材料、生物序列(Biological sequences)、混合物或合金)標(biāo)記的唯一標(biāo)識符,沒有化學(xué)意義。
CAS號由“-”字符分隔為三部分,第一部分(最左邊)由2~7個數(shù)字組成,第二部分(中間)由兩個數(shù)字組成,第三部分(最右邊)由一個數(shù)字組成,用作校驗位。如列于圖2的化合物正丁醇的CAS號為:71-36-3。其中,“71”為CAS號的第一部分,“36”為CAS號的第二部分,“3”為CAS號的第三部分。目前,這個編碼規(guī)則可以為100 000 000個物質(zhì)提供唯一標(biāo)識碼[4]。盡管這個編碼規(guī)則簡單,但有規(guī)則,適用于數(shù)據(jù)庫檢索。目前,CAS編碼已廣泛應(yīng)用于各類化學(xué)數(shù)據(jù)庫系統(tǒng)[5-6]。為了保證數(shù)據(jù)的質(zhì)量,建議從商業(yè)數(shù)據(jù)庫或有資質(zhì)的信息源采集化合物對應(yīng)的CAS號。
化合物的名稱有很多種,如:系統(tǒng)命名的名稱(IUPAC或CAS命名的名稱);商品名;通用名或自定義名?;衔锩Q通常包含數(shù)字和字母或文字。如果化合物不是新發(fā)現(xiàn)的,一般采用普遍被認(rèn)可或使用的名稱。化合物的性質(zhì)參數(shù)或數(shù)據(jù)涉及面廣,一般一個數(shù)據(jù)庫中只收錄關(guān)注的性質(zhì)參數(shù)或數(shù)據(jù)。性質(zhì)參數(shù)可以是數(shù)字,也可以是文字。由于數(shù)據(jù)采集的工作量和成本的原因,一般一個數(shù)據(jù)庫不可能收集化合物所有性質(zhì)的參數(shù)或數(shù)據(jù)。
合成路線一般以反應(yīng)式表達(dá)(如圖3所示),反應(yīng)物和產(chǎn)物的化學(xué)結(jié)構(gòu)通常以2維結(jié)構(gòu)式表示。反應(yīng)條件、得率及其他數(shù)據(jù)通常用文字和數(shù)字表達(dá),溶劑可以用名稱,也可以用化學(xué)結(jié)構(gòu)式表示。
圖3 環(huán)己烷的合成路線
化學(xué)數(shù)據(jù)的規(guī)范化內(nèi)容主要包括化學(xué)結(jié)構(gòu)式、性質(zhì)數(shù)據(jù)的規(guī)范化?;瘜W(xué)結(jié)構(gòu)式的規(guī)范化即將結(jié)構(gòu)式中自定義的表示都用具體的2維或3維結(jié)構(gòu)式表達(dá)。性質(zhì)數(shù)據(jù)的規(guī)范化即將計量單位統(tǒng)一,實驗條件滿足一致性。具體的規(guī)則取決于規(guī)范化對象的特征。
化學(xué)數(shù)據(jù)庫系統(tǒng)有單機(jī)版或網(wǎng)絡(luò)版兩大類。無論是哪一類管理系統(tǒng),對應(yīng)數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)設(shè)計,都必須以數(shù)據(jù)庫系統(tǒng)預(yù)定的功能以及數(shù)據(jù)管理系統(tǒng)的性能為設(shè)計根據(jù)。
本講中,將介紹兩個單機(jī)版的化學(xué)數(shù)據(jù)庫管理系統(tǒng):ISIS/BASE和CISOC-ChIMS。ISIS/BASE是MDL公司設(shè)計開發(fā)的單機(jī)版化學(xué)數(shù)據(jù)庫管理系統(tǒng)[7]。ISIS/BASE有11種數(shù)據(jù)類型,其中常用的有:Fixed Text(定長字符串)、Variable Text(不定長字符串)、Integer(整數(shù))、Real(實數(shù))、Range(實數(shù)范圍)、Date(日期)、Sketch(圖形)、Structure(2維或3維化學(xué)結(jié)構(gòu))和Reaction(單步反應(yīng)式)。用戶可用這些數(shù)據(jù)類型,設(shè)計數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu),建立單機(jī)版自用數(shù)據(jù)庫系統(tǒng)。用ISIS/BASE構(gòu)建的單機(jī)版的化合物數(shù)據(jù)庫系統(tǒng)和反應(yīng)數(shù)據(jù)庫系統(tǒng)界面如圖4所示。其中:化合物數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)設(shè)計采用了以下5種數(shù)據(jù)類 型——Structure,Variable Text,Real,Range 和Date;反應(yīng)數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)采用了以下5種數(shù)據(jù)類 型:Reaction,Variable Text,F(xiàn)ixed Text,Range和Structure。ISIS/BASE構(gòu)建的化合物數(shù)據(jù)庫和反應(yīng)數(shù)據(jù)庫,庫中的每個數(shù)據(jù)域均可被作為提問數(shù)據(jù),實現(xiàn)對應(yīng)的數(shù)據(jù)檢索。
CISOC-ChIMS是由中國科學(xué)院上海有機(jī)化學(xué)研究所設(shè)計和開發(fā),并具有自主知識產(chǎn)權(quán)的化學(xué)信息管理系統(tǒng)(如圖5所示)[8]。同樣,它可以用于建立單機(jī)版的化學(xué)數(shù)據(jù)庫系統(tǒng)。用戶無需定義數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu),只需直接在界面中直接輸入相關(guān)信息即可。該系統(tǒng)適用于建立化合物數(shù)據(jù)庫系統(tǒng),具有化合物結(jié)構(gòu)和文字/數(shù)字檢索功能,中文處理功能優(yōu)于ISIS/BASE,并具有超級鏈接功能。前面介紹了兩個構(gòu)建單機(jī)版數(shù)據(jù)庫系統(tǒng)的實例。已有的報道顯示,目前,網(wǎng)絡(luò)版數(shù)據(jù)庫管理系統(tǒng)基本都是根據(jù)具體的內(nèi)容和要求設(shè)計和開發(fā)。例如基于網(wǎng)絡(luò)的危險化學(xué)品信息查詢系統(tǒng),該系統(tǒng)采用超文本預(yù)處理器(PHP),MySQL和VC++實現(xiàn),并具有化合物結(jié)構(gòu)、CAS號、名稱和毒性查詢功能。用戶可以通過網(wǎng)絡(luò),根據(jù)化學(xué)結(jié)構(gòu)、CAS號或名稱等信息,實時獲得相關(guān)信息[9]。
圖4 ISIS/BASE構(gòu)建的數(shù)據(jù)庫系統(tǒng)
圖5 CISOC-ChIMS數(shù)據(jù)庫管理系統(tǒng)
化學(xué)數(shù)據(jù)庫系統(tǒng)的文字和數(shù)字查詢算法可以直接采用計算機(jī)科學(xué)中成熟的算法,化學(xué)結(jié)構(gòu)的查詢算法有多種,如:SMILS碼比較,拓?fù)渲笖?shù)比較等。查詢算法的效率除了與算法本身有關(guān),還與數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)、索引定義等因素相關(guān)。
對于單機(jī)版的管理系統(tǒng)開發(fā),建議采用VC++實現(xiàn),盡可能減少系統(tǒng)函數(shù)的使用,以降低因操作系統(tǒng)差異造成管理系統(tǒng)不能正常運(yùn)行的可能性。就網(wǎng)絡(luò)版的管理系統(tǒng)開發(fā)而言,建議采用VC++實現(xiàn)核心的比較功能,這將有助于保證檢索速度不受影響。
化學(xué)數(shù)據(jù)庫系統(tǒng)屬化學(xué)專業(yè)的數(shù)據(jù)庫系統(tǒng),可應(yīng)用于涉及化學(xué)數(shù)據(jù)的相關(guān)領(lǐng)域?;瘜W(xué)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)主要有四大類:文字、數(shù)字、化學(xué)結(jié)構(gòu)和化學(xué)反應(yīng)式。其中,化學(xué)結(jié)構(gòu)和化學(xué)反應(yīng)式是化學(xué)數(shù)據(jù)庫系統(tǒng)的“標(biāo)志性”數(shù)據(jù),化學(xué)結(jié)構(gòu)及化學(xué)反應(yīng)數(shù)據(jù)的計算機(jī)存儲、識別、比較等方法,是構(gòu)建化學(xué)數(shù)據(jù)庫系統(tǒng)的關(guān)鍵方法之一,也是化學(xué)數(shù)據(jù)庫的“特殊”之處。