***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 ~]# }}