centos安装带有rdkit的postgresql数据库
如果你要用到分子结构查询,那么rdkit可以帮你实现这个功能
我们的流程是:
安装anaconda
利用anaconda安装postgresql
安装postgresql
最终完成
安装anaconda
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2019.03-Linux-x86_64.sh
bash Anaconda3-2019.03-Linux-x86_64.sh
中间遇到的该输入yes就输入yes,该回车就回车
利用anaconda安装postgresql
由于rdkit并不是postgresql自带的插件,所以我们如果直接下载posgresql数据库是找不到的,
官方给了一种方案,利用anaconda来安装
conda install -c rdkit rdkit-postgresql
指定数据库目录
[conda folder]/envs/my-rdkit-env/bin/initdb -D /folder/where/data/should/be/stored
开启服务
[conda folder]/envs/my-rdkit-env/bin/postgres -D /folder/where/data/should/be/stored
上面的[conda folder]代表你的conda目录,然后my-rdkit-env代表创建的虚拟环境
创建数据库表
createdb my_rdkit_db
psql my_rdkit_db
配置postgresql.conf
synchronous_commit = off # immediate fsync at commit
full_page_writes = off # recover from partial page writes
shared_buffers = 2048MB # min 128kB # (change requires restart)
work_mem = 128MB # min 64kB
进入数据库,来到想要开启插件的库,开启rdkit插件
create extension if not exists rdkit;
创建分子子结构查询的索引
chembl_25=# select * into rdk.mols from (select molregno,mol_from_ctab(molfile::cstring) m from compound_structures) tmp where m is not null;
SELECT 1870451
chembl_25=# create index molidx on rdk.mols using gist(m);
CREATE INDEX
chembl_25=# alter table rdk.mols add primary key (molregno);
ALTER TABLE
第一条语句是新建一个rdk下的mols表,然后把compound_structures表中的molfile从smiles数据变成mol类型数据。
其中mol_from_smiles(molfile::cstring)是rdkit函数,能够将molfile列作为字符串读取并转换为mol对象
第二条语句是对新创建的表创建一个能够进行子结构查询的索引
这里就用到了gist
再次下载postgresql
上面我们看到在创建分子子结构的索引时用到了gist
它是依赖于btree_gist插件的一个函数
但是我们通过conda下载的postgresql带的插件很少,所以我们没有这个插件
这里我们可以再次下载一个postgresql数据库,使用正常方式。
通过wget下载压缩包
解压压缩包
进入解压文件
执行./configure
make
sudo make install
然后可以直接进入到你想要安装的插件目录里面(contrib下)
然后进行make && sudo make install
然后你就可以把对应的sql文件和so文件一股脑的cp到之前用conda下载的数据库对应位置
然后就可以启用插件了