代 艷 于海濤 張立坤
【摘 要】化學(xué)標(biāo)記語言CML 已得到廣泛應(yīng)用,目前Web上存在著大量的以CML表示的化學(xué)結(jié)構(gòu)信息,google、百度等Web搜索引擎只能實(shí)現(xiàn)對文本的檢索,無法實(shí)現(xiàn)對化學(xué)結(jié)構(gòu)的檢索。本文在分析CML特點(diǎn)的基礎(chǔ)上,介紹了提取與驗(yàn)證Web上CML表示的化學(xué)結(jié)構(gòu)信息的方法。利用Daylight公司的THOR-Merlin化學(xué)信息數(shù)據(jù)庫系統(tǒng),提出一種化學(xué)結(jié)構(gòu)搜索引擎的設(shè)計(jì)方案。
【關(guān)鍵詞】化學(xué)標(biāo)記語言 化學(xué)結(jié)構(gòu)檢索 化學(xué)結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)
1 引言
化學(xué)標(biāo)記語言CML (Chemical Markup Language)最初于1995年由Peter Murray-Rust等人基于HTML2.0開發(fā),嘗試解決在Internet上進(jìn)行化學(xué)信息交換的問題。1998年2月W3C發(fā)布了XML:可擴(kuò)展標(biāo)記語言推薦標(biāo)準(zhǔn)1.0版?;瘜W(xué)標(biāo)記語言CML也根據(jù)XML的規(guī)范進(jìn)行了更改和修訂,成為根據(jù)XML的規(guī)范重新定義的一種標(biāo)記語言,是XML的一個(gè)應(yīng)用。
CML目前的應(yīng)用已相當(dāng)廣泛,如MaterialsGrid、SPECTRA等項(xiàng)目都采用了CML,Web上也存在著大量的以CML表示的化學(xué)結(jié)構(gòu)信息。由于化學(xué)學(xué)科的專業(yè)性和內(nèi)容的相對獨(dú)立性,目前化學(xué)信息的檢索都是基于特定的數(shù)據(jù)庫,如SciFinder、Chembank、ZINC、Pubchem、ChemDB、ChemMine等化學(xué)數(shù)據(jù)庫。本文提出一種設(shè)計(jì)方案,將CML轉(zhuǎn)換為SMILES,利用DayLight公司的THOR-MerLin系統(tǒng),建立針對Web上大量存在的CML表示的化學(xué)結(jié)構(gòu)的web搜索引擎。
2 系統(tǒng)設(shè)計(jì)框架
2.1文檔的采集與內(nèi)容分析
文檔采集即頁面抓取工作,由crawler來完成。由一組種子URL開始,從種子集URL中取出一個(gè)URL,確定相應(yīng)的主機(jī)IP地址,發(fā)出抓取頁面請求。對非重復(fù)文檔提取出包含于其中的鏈接,根據(jù)制定的過濾策略(相對鏈接轉(zhuǎn)為絕對鏈接,并判斷鏈接是否需要下載),把過濾后的URL存入U(xiǎn)RL集中。同時(shí)對抓取的網(wǎng)頁的內(nèi)容進(jìn)行簡單的分析,保存包含CML內(nèi)容的網(wǎng)頁。最終的THOR數(shù)據(jù)庫中并不保存整個(gè)網(wǎng)頁的內(nèi)容,而只是保存含有CML內(nèi)容的網(wǎng)頁URL。
CML表示的化學(xué)結(jié)構(gòu)信息具有區(qū)別于網(wǎng)頁其它內(nèi)容的顯明特征,它以
2.2 文檔CML內(nèi)容的抓取與有效性驗(yàn)證
經(jīng)過crawler的簡單過濾,文檔內(nèi)容存儲(chǔ)器中的文檔都含有CML內(nèi)容。將文檔中CML內(nèi)容復(fù)制到單獨(dú)的文件中。文檔URL與文檔產(chǎn)生的CML文件具有一對n關(guān)系,n為CML文件的個(gè)數(shù)。
CML內(nèi)容的有效性驗(yàn)證分三步[2, 3]。第一步確定CML內(nèi)容是否由
2.3 CML至SMILES的轉(zhuǎn)換與SMILES的存儲(chǔ)
SMILES是一種線性的用ASCII碼來表示原子和化學(xué)鍵的化學(xué)語言。和其它化學(xué)結(jié)構(gòu)表示方法相比,SMILES簡短易讀。同一種化學(xué)結(jié)構(gòu)用SMILES來表示要比用連接表(Connection Table)節(jié)省50%至%70的存儲(chǔ)空間。典范SMILES能夠保證每個(gè)化學(xué)結(jié)構(gòu)的SMILES具有唯一性,因而常被作為化學(xué)數(shù)據(jù)庫中的索引關(guān)鍵字。
CML 到SMILES的轉(zhuǎn)換,本設(shè)計(jì)采用開源軟件OpenBabel提供的API函數(shù)。OBConversion為轉(zhuǎn)換類,轉(zhuǎn)換偽碼如下:
OBConversion conv(&cin;,&cout;);
if(conv.SetInAndOutFormats(“SMI”,“MOL”))
{OBMol mol;if(conv.Read(&mol;)) ...manipulate molecule conv->Write(&mol;);}
THOR Server是一后臺(tái)程序,不允許用戶直接對其操作,用戶必須通過THOR Client對THOR Server進(jìn)行操作。用戶通過THOR Client將CML轉(zhuǎn)換后的SMILES及CML所在的文檔URL、當(dāng)前訪問時(shí)間等存入THOR數(shù)據(jù)庫,并以SMILES作為記錄的主關(guān)鍵字。本系統(tǒng)根據(jù)Daylight提供的THOR-Merlin Toolkit來編寫Client。Client通過server來對THOR數(shù)據(jù)庫進(jìn)行操作。
2.4用戶界面設(shè)計(jì)初探
用戶可以直接輸入要檢索的化學(xué)結(jié)構(gòu)的SMILES碼,或者根據(jù)提供的JME(JME是由Peter Ertl開發(fā)的java applet,用于在網(wǎng)頁上直接描繪化學(xué)結(jié)構(gòu))畫出要檢索的2D化學(xué)結(jié)構(gòu)圖,并指定結(jié)構(gòu)檢索的類型,JME會(huì)自動(dòng)把用戶畫出的化學(xué)結(jié)構(gòu)轉(zhuǎn)化為SMILES碼進(jìn)行檢索。
3 總結(jié)
本文提出了一種化學(xué)結(jié)構(gòu)搜索引擎的設(shè)計(jì)方案,針對Web上大量存在的CML表示的化學(xué)結(jié)構(gòu)進(jìn)行檢索。但是由于CML出現(xiàn)的時(shí)間相對比較晚,Web上還有許多以其它格式存儲(chǔ)的化學(xué)結(jié)構(gòu)信息,下一步要研究提取與驗(yàn)證Web上以其它格式表示的化學(xué)結(jié)構(gòu)信息,以便對更多的化學(xué)結(jié)構(gòu)進(jìn)行檢索。
參考文獻(xiàn):
[1]P. Murray-Rust, H S Rzepa. Chemical Markup,XML and the World—Wide Web. 1. Basic Principles. J. Chem. Inf. Comput. Sci,1999,39(6):928-942.
[2]P. Murray-Rust,H S Rzepa. Chemical Markup,XML and the World—Wide Web. 4. CML Schema. J. Chem. Inf. Comput. Sci,2003,43(3):757-772.
[3]Gkoutos GV, Rzepa HS and P. Murray-Rust. Online validation and comparison of molfile and CML molecular atom-connection descriptors.Internet J Chem,2003,(1).
[4]J. Klekota,F(xiàn). P. Roth,and S. L. Schreiber. Query Chem:a Google-powered web search combining text and chemical structures. Bioinformatics,2006,22(13).