【摘 要】化学标记语言cml 已得到广泛应用,目前web上存在着大量的以cml表示的化学结构信息,google、百度等web搜索引擎只能实现对文本的检索,无法实现对化学结构的检索。本文在分析cml特点的基础上,介绍了提取与验证web上cml表示的化学结构信息的方法。利用daylight公司的thor-merlin化学信息数据库系统,提出一种化学结构搜索引擎的设计方案。
【关键词】化学标记语言 化学结构检索 化学结构数据库系统
1 引言
化学标记语言cml (chemical markup language)最初于1995年由peter murray-rust等人基于html2.0开发,尝试解决在internet上进行化学信息交换的问题。1998年2月w3c发布了xml:可扩展标记语言推荐标准1.0版。化学标记语言cml也根据xml的规范进行了更改和修订,成为根据xml的规范重新定义的一种标记语言,是xml的一个应用。
cml目前的应用已相当广泛,如materialsgrid、spectra等项目都采用了cml,web上也存在着大量的以cml表示的化学结构信息。由于化学学科的专业性和内容的相对独立性,目前化学信息的检索都是基于特定的数据库,如scifinder、chembank、zinc、pubchem、chemdb、chemmine等化学数据库。本文提出一种设计方案,将cml转换为smiles,利用daylight公司的thor-merlin系统,建立针对web上大量存在的cml表示的化学结构的web搜索引擎。
2 系统设计框架
2.1文档的采集与内容分析
文档采集即页面抓取工作,由crawler来完成。由一组种子url开始,从种子集url中取出一个url,确定相应的主机ip地址,发出抓取页面请求。对非重复文档提取出包含于其中的链接,根据制定的过滤策略(相对链接转为绝对链接,并判断链接是否需要下载),把过滤后的url存入url集中。同时对抓取的网页的内容进行简单的分析,保存包含cml内容的网页。最终的thor数据库中并不保存整个网页的内容,而只是保存含有cml内容的网页url。
cml表示的化学结构信息具有区别于网页其它内容的显明特征,它以
标记开始,以标记来结束。
与标记没有实质的意义,只是起到容器的作用,作为cml内容的根,用来告诉其它cml处理程序在文档中存在化学内容。
与之间可以是任何内容,而且可以嵌套。但是目前看到的一些cml文档并未在化学结构信息的最外层加注
与标记,而是直接以
与表示最外层。在对文档内容分析时要考虑到这两种情况。可以采用模式匹配来分析抓取的网页内容。
2.2 文档cml内容的抓取与有效性验证
经过crawler的简单过滤,文档内容存储器中的文档都含有cml内容。将文档中cml内容复制到单独的文件中。文档url与文档产生的cml文件具有一对n关系,n为cml文件的个数。
cml内容的有效性验证分三步[2, 3]。第一步确定cml内容是否由与标记或 与标记所包含。这在2.1节中的文档内容分析时已采用,目的是过滤掉确定不含cml内容的文档。第二步,由于cml严格遵守xml规范,可以采用cml dtd与cml schema对cml内容进行验证(cml1.x采用dtd)。第三步采用基于xslt的验证方法,对cml的内容进行分析。比如可以通过xslt来判断cml中的原子化合价是否合法,化合物中两个原子之间的距离是法合法等。
2.3 cml至smiles的转换与smiles的存储
smiles是一种线性的用ascii码来表示原子和化学键的化学语言。和其它化学结构表示方法相比,smiles简短易读。同一种化学结构用smiles来表示要比用连接表(connection table)节省50%至%70的存储空间。典范smiles能够保证每个化学结构的smiles具有唯一性,因而常被作为化学数据库中的索引关键字。
cml 到smiles的转换,本设计采用开源软件openbabel提供的api函数。obconversion为转换类,转换伪码如下:
obconversion conv(&cin,&cout);
if(conv.setinandoutformats(“smi”,“mol”))
{obmol mol;if(conv.read(&mol)) ...manipulate molecule conv->write(&mol);}
thor server是一后台程序,不允许用户直接对其操作,用户必须通过thor client对thor server进行操作。用户通过thor client将cml转换后的smiles及cml所在的文档url、当前访问时间等存入thor数据库,并以smiles作为记录的主关键字。本系统根据daylight提供的thor-merlin toolkit来编写client。client通过server来对thor数据库进行操作。
2.4用户界面设计初探
用户可以直接输入要检索的化学结构的smiles码,或者根据提供的jme(jme是由peter ertl开发的java applet,用于在网页上直接描绘化学结构)画出要检索的2d化学结构图,并指定结构检索的类型,jme会自动把用户画出的化学结构转化为smiles码进行检索。
3 总结
本文提出了一种化学结构搜索引擎的设计方案,针对web上大量存在的cml表示的化学结构进行检索。但是由于cml出现的时间相对比较晚,web上还有许多以其它格式存储的化学结构信息,下一步要研究提取与验证web上以其它格式表示的化学结构信息,以便对更多的化学结构进行检索。
参考文献:
[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. p. roth,and s. l. schreiber. query chem:a google-powered web search combining text and chemical structures. bioinformatics,2006,22(13).