一、环境搭建
二、数据表准备
三、结构搜索与查询
本文以windows为例进行操作和演示。假设都已经安装好了postgresql,下面依次进行用户切换、启动服务端、创建数据库、导入数据、连接数据库、加载插件、函数测试。在windows上安装带rdkit插件的postgresql以及基本操作可以参考这篇文章。 - 在cmd中切换到postgres用户
runas /user:postgres cmdpostgres -D d:\postgresql\datacreatedb moleculespsql moleculesselect column_name from information_schema.columns WHERE table_name ='info';create extension rdkit;select id, mol_from_smiles(smiles::cstring) mol_col from info limit 5;数据库、rdkit插件都没问题后,接下来依次新建schema、转换mol对象、建立数据表。 - 新建schema,命名为rdk。schema相当于一个命名空间,允许多个用户建立各自的schema来同时操作数据库,每个schema下的对象名字不能重复,但不同的schema中可以重复。如果不指定schema时,默认在public下操作。
create schema rdk;drop schema rdk cascade;select nspname from pg_namespace;select * into rdk.mols from (select id, mol_from_smiles(smiles::cstring) m from info) tmp where m is not null;select table_name from information_schema.tables WHERE table_schema = 'rdk';create index molidx on rdk.mols using gist(m);alter table rdk.mols add primary key (id);终于进入正题了,准备俩小时,查询五分钟。
select count(*) from rdk.mols where m@>'c1ccccc1';select id, m from rdk.mols where m@>'C1(NC=C2)=C2C=CC=C1' limit 5;select count(*) from rdk.mols where m@>'c1[o,s]ncn1'::qmol;set rdkit.do_chiral_sss=true;select * from rdk.mols where m@>'NC(=O)[C@@H]1CCCN1C=O' limit 10;select id, m from rdk.mols where m@>mol_adjust_query_properties('*c1cccc(*)n1') limit 10;select id, m from rdk.mols where m@>mol_adjust_query_properties('*c1cccc(*)n1', '{"adjustDegree":false}') limit 10;本文参考自rdkit官方文档。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3134292/ ,如需转载,请注明出处,否则将追究法律责任。