RDKitのCartridgeを組み込んだPostgreSQLで、化合物管理なデータベースを実際に作ってみる。
そこで部分構造式検索、類似構造検索、プロパティー演算らを行ってみる。
まずはその下拵えとしてデータベースの作成から
*pg_hba.confを変更してます
PostgreSQL内に専用のアカウントを用意します。
ここではアカウントとしてcasterを作成して、同時にアカウントにパスワードを設けた。
[root@c ~]# createuser --no-createdb --no-createrole --no-superuser -e caster -P -U postgres
新しいロールのためのパスワード:
もう一度入力してください:
CREATE ROLE caster PASSWORD 'md53ec5fccad0a49d575cdf3c802462eaa5' NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;
[root@c ~]#
次に、casterが所有者となるデータベースchemdbを作ります。
[root@c ~]# createdb --encoding=UTF8 --owner=caster -e chemdb -U postgres
CREATE DATABASE chemdb OWNER caster ENCODING 'UTF8';
[root@c ~]#
作成したデータベースを確認
[root@c ~]# psql -l -U postgres
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権
--------------------+----------+------------------+-------------+-------------------+-----------------------
chemdb | caster | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
contrib_regression | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(5 行)
[root@c ~]#
作成したchemdbデータベースに対して、RDKitの機能を付与します
[root@c ~]# psql -c 'CREATE EXTENSION rdkit' chemdb -U postgres
CREATE EXTENSION
[root@c ~]#
RDKitの機能が組み込まれたかを確認します
[root@c ~]# psql -U caster -d chemdb
psql (9.2.15)
"help" でヘルプを表示します.
chemdb=> \dx
インストール済みの拡張の一覧
名前 | バージョン | スキーマ | 説明
---------+------------+------------+-----------------------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
rdkit | 3.4 | public | Cheminformatics functionality for PostgreSQL.
(2 行)
chemdb=>
組み込まれた事を確認できました。
引き続き、このRDKitで使用可能なスキーマを確認してみます。
chemdb=> \dx+ rdkit
Objects in extension "rdkit"
Object Description
---------------------------------------------------------------
function add(sfp,sfp)
function all_values_gt(sfp,integer)
(中略)
type mol
type qmol
type reaction
type sfp
(228 rows)
chemdb=> \q
[postgres@c ~]$
一方で、RDKitの機能をchemdbデータベースから削除すには、
[root@c ~]# psql -c 'DROP EXTENSION rdkit CASCADE' chemdb -U postgres
DROP EXTENSION
[root@c ~]#
[root@c ~]# psql -U caster -d chemdb
psql (9.2.15)
"help" でヘルプを表示します.
chemdb=> \dx
インストール済みの拡張の一覧
名前 | バージョン | スキーマ | 説明
---------+------------+------------+------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(1 行)
chemdb=>
とします。