posts - 431,  comments - 344,  trackbacks - 0
          原文地址:http://blog.charliezhu.com/category/chemoinformatics/(Charlie 是個牛人啊)

          分子結構式的表達和存儲

          化學分子結構式的表達方法有很多。最基本的方法當然就是圖片文件,圖片文件的確僅適用于展示,不適用于分析和檢索。常見的以文本形式存儲的化學結構包括InChI,SMILES,Molfiles,CML等。對于這些格式,在inchi.info網站上有一個不錯的比較。原文還帶有一些注釋。

            InChI InChIKey SMILES Molfile CML
          線性(不用換行) Yes Yes Yes No No
          唯一性 Yes No Possibly No No
          可讀性 Hardly Impossible Easily Hardly Hardly
          定義原子幾何位置 No No No Yes Yes
          長度(每原子字符數) ~2 ~1 1-2 ~50 ~50
          軟件支持 (0-1) 0.3 0.1 0.2 1 0.5

          在數據庫中作為結構式信息進行存儲,比較重要的考慮因素就是唯一性、存儲空間。所以使用InChI, SMILES作為結構式的描述信息都可行。

          這個表里需要注意的是,InChIKey與Molfile/CML在唯一性上都是No,但有很大不同。不同的分子結構有可能用同一個InChIKey表達;同一個分子式,可以表示成不同的Molfile/CML。這都對數據庫中的 一項重要工作,檢索帶來大麻煩。

          找到合適的分子結構式表達方式,用文本的方式存儲起來,并不復雜。執行一些簡單的操作,比如通過分子結構(精確)查找分子,也和普通的數據庫操作沒什么兩樣。

          但是要通過結構式信息進行分子參數計算、子結構檢索、描述符(fingerprint)生成及索引、分子相似性計算等工作時,往往需要在關系數據庫上增加插件來實現。

          關系數據庫插件 (cartridge)

          下面的插件,沒有一個是應用于MS SQL Server的。SQL Server也提供了擴展存儲過程(SQL Server 2000)及CLR(SQL Server 2005)等插件接口,是能夠實現相同的功能的。這也正是我現在正在進行的工作。

          pgchem::tigress

          開源。用在PostgreSQL上。在checkmol/matchmol 和OpenBabel的基礎上開發的。文檔很nice,但是似乎很久沒有更新了。典型的案例是http://www.chemcollect.de/

          mychem

          開源。用在MySQL上,UDF形式的插件。基于OpenBabel。SVN代碼更新比較勤。

          OrChem

          This project aims at creating an open source chemistry plugin / cartridge for the relational database system Oracle.

          其他商業插件

          1. CambridgeSoft Oracle Cartridge
          2. Symyx Direct, Cartridge for Oracle
          3. CHORD, a commercial chemical cartridge for PostgreSQL, is sold by gNova. 基于OEChem。OEChem也不是免費的。
          4. JChem Cartridge, adds chemical intelligence to the Oracle platform.

          一本新書

          Design and Use of Relational Database in Chemistry,《在化學領域設計和使用關系數據庫》。作者是gNova公司的TJ O’Donnell, Ph. D.,那這本書里用到的方法,也自然是這個公司的CHORD插件了。不過這本書對關系數據庫中,化學信息的應用,寫得比較全面和系統了(從目錄上看)。就是有點灌水,連關系數據理論都要占一章。寫一本書,講解理論的同時推銷自己的產品,還能掙稿費,這絕對是個好辦法。Amazon上的定價是$93.56。

          不需要插件的解決方案

          Chemical Substructure Search in SQL
          Adel Golovin and Kim Henrick,
          EMBL-EBI Hinston Hall Genome Campus, Cambridge, U.K.
          J. Chem. Inf. Model., Article ASAP
          DOI:
          10.1021/ci8003013

          這是一篇發表不久的文章。我很感嘆之前為什么沒有過這么直接的思路。分子結構用SMILES表達的原理中,實際上就已經將分子結構抽象為原子(Atom)和鍵(Bond)之間的組合,并且用生成樹(spanning tree)構造成字串。

          分子、原子、鍵、分子結構(spanning tree),都可以,而且很適合在關系數據庫中表達出來。子結構檢索等功能操作,也可以用基本的SQL來實現。

          相對于用插件的方案,優勢在于

          1. 不限制于數據庫平臺。
          2. 更穩定。插件的質量高低,運行于何種進程空間,是否會出現異常,都將直接影響服務器。在重要的運營服務器上,更是隱患。
          3. 性能(performance)更優。對原子和鍵的查詢都可直接利用數據庫服務器的索引。
          4. 存儲空間上(可能)有改善。當設計得當時,原子、鍵建立字典表,事實表就都是數字組成的關聯表。在基于插件的系統中,以子結構檢索為例,為了盡量減少性能消耗最大的插件函數計算,往往會生成碎片(fingerprint)索引,所使用的存儲空間,加上SMILES的字符串存儲空間,會高于這個方案中的存儲空間。尤其是在小分子數據庫中。

          其他參考資料

          Fast Substructure Search series, by Rich Apodaca

          How to create a web-based molecular structure database with free software[PDF], by Norbert Haider (Checkmol/matchmol)

          posted on 2009-09-24 21:20 周銳 閱讀(1061) 評論(0)  編輯  收藏 所屬分類: ChemistryJava
          主站蜘蛛池模板: 黔西县| 环江| 广州市| 高要市| 汉川市| 崇州市| 永胜县| 通山县| 睢宁县| 延川县| 武山县| 合江县| 台北县| 云安县| 青河县| 微山县| 百色市| 连山| 大同市| 长乐市| 海原县| 鞍山市| 正定县| 金寨县| 平顶山市| 德保县| 十堰市| 铁岭市| 夏邑县| 邹城市| 望奎县| 汤阴县| 武乡县| 兴海县| 贺州市| 阿勒泰市| 泸州市| 中西区| 马尔康县| 杭州市| 石阡县|