***MyChem-0.9.1 OpenBabel Cartridge [#xc42538b]
本家 http://mychem.sourceforge.net/

[[RDKit/Cartridge]]と同じく''SQL文''でデータベース上で構造式検索や記述子演算、フォーマット変換を行う。
OpenBabelでは、MyChemがMySQLとOpenBabelを結び、検索エンジン・記述子計算を行います。
[[RDKit/Cartridge]]と同じくSQL文でデータベース上で構造式検索や記述子演算、フォーマット変換を行う。
OpenBabelでは、&color(magenta){MyChem};がMySQLとOpenBabelを結び、検索エンジン・記述子計算を行います。

#code(sql,nonumber,nooutline,noblock,noliteral,nocomment,nomenu,noicon,nolink){{
--部分構造検索
SELECT id FROM chem where MATCH_SUBSTRUCT('c1ccccc1', mol)=1
--検索構造[c1ccccc1]なsmilesのほかにsmartsでも可

--類似構造検索
SELECT id FROM chem where TANIMOTO(FINGERPRINT2(SMILES_TO_MOLECULE('c1ccccc1')), mol_fp) > 0.8
--検索構造[c1ccccc1]のFPを算出させて、検索対象群のDB内FPに類似検索を実施

--記述子算出
SELECT id,MOLLOGP(mol) FROM chem
--構造式が記述されたフィールドmolに対してLogP値を算出

--分子フォーマット変換
SELECT id,MOLECULE_TO_INCHI(mol) FROM chem
--構造式が記述されたフィールドmolをinchi形式で表記
}}


***Cartridgeを作る [#o07178d3]
[[OpenBabel]]が既にインストールされているとします。まずはmysqlをインストール。ディストリビュータが提供するMySQLでも構わない。
#code(nonumber){{
[root@s ~]# yum install mysql-server mysql-devel
}}
そして、OpenBabelとMySQLを結ぶCartridgeな役割をもつ&color(magenta){MyChem};をコンパイル・インストール
#code(nonumber){{
[root@s ~]# cd /opt/src/
[root@s src]# wget http://downloads.sourceforge.net/project/mychem/mychem/0.9.1/mychem-0.9.1.tgz
[root@s src]# gzip -cd mychem-0.9.1.tgz | tar xf -

[root@s src]# mkdir mychem-build
[root@s src]# cd mychem-build/
[root@s mychem-build]#
[root@s mychem-build]# cmake ../mychem-0.9.1 -L

[root@s mychem-build]# rm -rf ./*
[root@s mychem-build]# cmake ../mychem-0.9.1 \
-DOPENBABEL2_INCLUDE_DIR=/opt/openbabel/include/openbabel-2.0 \
-DOPENBABEL2_LIBRARIES=/opt/openbabel/lib/libopenbabel.so \
-DOPENBABEL2_EXECUTABLE=/opt/openbabel/bin \
-DMYSQL_INCLUDEDIR=/usr/include/mysql \
-DMYSQL_LIBRARYDIR=/usr/lib64/mysql \
-DLIB_INSTALL_DIR=/usr/lib64/mysql/plugin \
-DMY_HOST=localhost \
-DMY_USER=root \
-DMY_PASSWD=""

[root@s mychem-build]# make; make install
}}
/usr/lib64/mysql/pluginに&color(magenta){MyChem};のライブラリー[&color(magenta){libmychem.so};]がインストールされる。
次に、OpenBabelのライブラリをldconfigに取り込ませて読み込ませてMySQLを起動させます
#code(nonumber){{
[root@s ~]# echo /opt/openbabel/lib > /etc/ld.so.conf.d/openbabel.conf
[root@s ~]# ldconfig
[root@s ~]# /etc/init.d/mysqld start
}}

最後にOpenBabelの関数をmysqlに登録させます。
#code(nonumber){{
[root@c ]# mysql 
mysql> source /opt/src/mychem-0.9.1/src/mychemdb.sql
}}

簡単なテストを行ってみる
#code(nonumber){{
mysql> SELECT molweight(SMILES_TO_MOLECULE('CCOCC'));
+----------------------------------------+
| molweight(SMILES_TO_MOLECULE('CCOCC')) |
+----------------------------------------+
|                              74.121600 |
+----------------------------------------+
1 row in set (0.00 sec)

mysql> \q
Bye
[root@s ~]#
}}
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS