参照先http://rdkit.org/docs/Cartridge.html
RDKitをデータベースのPostgresに組み込むとSQL文で化合物の構造式検索(部分、類似)、プロパティー値の算出らが可能になります。
研究室内の(仮想、実体)化合物ライブラリーの整頓、検索に使えるかも。
っで、具体的にどんなSQL文が利用されるかとなると、
と極めて直感的である。
このようなデータベースに組み込んで使える構造式検索エンジンは、商用としては
Daylight DayCartとかCambridgeSoft Oracle Cartridge、BIOVIA Direct(Accelrys (Symyx)Direct)、
InfoChem Chemistry Cartridge ICCARTRIDGE、ChemAxon JChem Cartridge for ORACLE、
JChem PostgreSQL Cartridgeらがある。
フリーなものとして、このRDKitの他にも
とかがある。
ここではこのRDKitを取り上げる。まず土台となるPostgreSQLをインストールします。
その後にRDkitのカートリッジモジュールを組み込ませます。
化合物データベースの下準備RDKit/Cartridge/DB
PubChemを登録してみたRDKit/Cartridge/PubChem
ChEMBLを登録してみたRDKit/Cartridge/ChEMBL
Cartridgeを使って簡単なwebアプリを作ってみたRDKit/Cartridge/web
別にPostgreSQLを新たにソースからコンパイルせずとも yum でインストールして、RDKit の部分だけコンパイルでよくね?
下手にコンパイルするよりはずっと楽です。
*PostgreSQLの最新機能が必要なら別です
っで、その段取り。ますはyumでpostgresqlのパッケージをインストールします。
そしてデータベースの初期化を済ませます(PGDATAは /var/lib/pgsql/data)。
[root@c ~]# yum install postgresql-devel postgresql-server postgresql
[root@c ~]# /bin/postgresql-setup initdb
Initializing database ... OK
[root@c ~]#
次に、RDKitのCartridgeをコンパイルします。
RDKitでコンパイルした場所に移動して、コンパイルオプションを変更して再実行
[root@c ~]# cd /opt/RDKit/build/
[root@c build]# cmake .. -DRDK_BUILD_PGSQL=ON -DRDK_PGSQL_STATIC=OFF
[root@c build]# make
[root@c build]# bash /opt/RDKit/build/Code/PgSQL/rdkit/pgsql_install.sh
最後のシェルスクリプトで RDKit のCartridgeライブラリ(rdkit.so)が/usr/lib64/pgsqlにコピーされる。
*cmakeに依存しないでコンパイルしたら undefined symbol: _ZTIN5boost6detail16thread_data_baseE とエラーが出た。MakefileのSTATIC_LINKをSTATIC_LINK=0で回避可能
まずはPostgreSQLを起動させます。
[root@c ~]# systemctl start postgresql
そして、Cartridgeのテストを誰にさせるかになるのですが、ここではpostgresユーザにしました。別のユーザでも構いません
テスト実行のファイルをコピーして、「make installcheck」と実行します
[root@c RDKit]# su - postgres
-bash-4.2$
-bash-4.2$ pwd
/var/lib/pgsql
-bash-4.2$
-bash-4.2$ cp -r /opt/RDKit/Code/PgSQL/rdkit .
-bash-4.2$ cd rdkit
-bash-4.2$
-bash-4.2$ make installcheck
/usr/lib64/pgsql/pgxs/src/makefiles/../../src/test/regress/pg_regress --inputdir=. --psqldir='/usr/bin'
--dbname=contrib_regression rdkit-91 props btree molgist bfpgist-91 sfpgist slfpgist fps reaction
(using postmaster on Unix socket, default port)
============== dropping database "contrib_regression" ==============
NOTICE: データベース"contrib_regression"は存在しません。省略します
DROP DATABASE
============== creating database "contrib_regression" ==============
CREATE DATABASE
ALTER DATABASE
============== running regression test queries ==============
test rdkit-91 ... ok
test props ... ok
test btree ... ok
test molgist ... ok
test bfpgist-91 ... ok
test sfpgist ... ok
test slfpgist ... ok
test fps ... ok
test reaction ... ok
=====================
All 9 tests passed.
=====================
-bash-4.2$
と成功しました。
これで RDKit を組み込んだ PostgreSQL が完成