rdkit

在PostgreSQL化学领域数据管理功能

概览

扩展包名版本分类许可证语言
rdkit202503.6FEATBSD 3-ClauseC++
ID扩展名BinLibLoadCreateTrustReloc模式
2930rdkit-
相关扩展age hll rum pg_graphql pg_jsonschema jsquery pg_hint_plan hypopg

d13/u24/el10 rdkit build by pigsty, u24/el10 deps on inchi

版本

类型仓库版本PG 大版本包名依赖
EXTMIXED202503.61817161514rdkit-
RPMPIGSTY202503.61817161514rdkit_$v-
DEBPGDG202503.61817161514postgresql-$v-rdkit-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64PIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISS
el8.aarch64PIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISS
el9.x86_64PIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISS
el9.aarch64PIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISS
el10.x86_64
el10.aarch64
d12.x86_64PGDG MISSPGDG MISS
d12.aarch64PGDG MISSPGDG MISS
d13.x86_64
d13.aarch64
u22.x86_64PGDG MISSPGDG MISS
u22.aarch64PGDG MISSPGDG MISS
u24.x86_64
u24.aarch64

构建

您可以使用 pig build 命令构建 rdkit 扩展的 RPM / DEB 包:

pig build pkg rdkit         # 构建 RPM / DEB 包

安装

您可以直接安装 rdkit 扩展包的预置二进制包,首先确保 PGDGPIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install rdkit;          # 当前活跃 PG 版本安装
pig ext install -y rdkit -v 18  # PG 18
pig ext install -y rdkit -v 17  # PG 17
pig ext install -y rdkit -v 16  # PG 16
pig ext install -y rdkit -v 15  # PG 15
pig ext install -y rdkit -v 14  # PG 14
dnf install -y rdkit_18       # PG 18
dnf install -y rdkit_17       # PG 17
dnf install -y rdkit_16       # PG 16
dnf install -y rdkit_15       # PG 15
dnf install -y rdkit_14       # PG 14
apt install -y postgresql-18-rdkit   # PG 18
apt install -y postgresql-17-rdkit   # PG 17
apt install -y postgresql-16-rdkit   # PG 16
apt install -y postgresql-15-rdkit   # PG 15
apt install -y postgresql-14-rdkit   # PG 14

创建扩展

CREATE EXTENSION rdkit;

用法

来源: GitHub README, Cartridge 文档, 项目网站 RDKit 提供 PostgreSQL 的化学信息学 cartridge,用于分子存储、检索、指纹和描述符计算。

CREATE EXTENSION rdkit;

该 cartridge 增加了分子类型和运算符,支持子结构搜索、精确匹配、相似性搜索、指纹生成以及大量描述符函数。

核心类型

  • mol 用于分子和查询分子值。
  • bfp 用于位向量指纹。
  • sfp 用于稀疏计数指纹。

搜索操作符

  • @> 判断右侧分子是否为左侧分子的子结构。
  • <@ 执行反向子结构判断。
  • @= 判断分子是否完全相等。
  • # 是 Dice 相似度阈值操作符。
  • <%> 支持 Tanimoto KNN 搜索。
  • <#> 支持 Dice KNN 搜索。

指纹

  • morgan_fpmorganbv_fp 用于 Morgan 指纹。
  • featmorgan_fpfeatmorganbv_fp 用于基于特征的 Morgan 指纹。
  • rdkit_fp 用于哈希化 RDKit 指纹。
  • atompair_fpatompairbv_fptorsion_fptorsionbv_fp
  • layered_fpmaccs_fp

描述符示例

SELECT is_valid_smiles('c1ccccc1');
SELECT tanimoto_sml(morganbv_fp('c1ccccc1'::mol), morganbv_fp('c1ccccc1O'::mol));
SELECT mol_amw('c1ccccc1'::mol);
SELECT mol_hba('c1ccccc1O'::mol);
SELECT mol_numrings('c1ccccc1'::mol);

说明

  • 文档还描述了更多分子校验辅助函数,例如 is_valid_smilesis_valid_ctabis_valid_smarts
  • 该 cartridge 还暴露了大量额外的描述符和指纹大小 GUC,但此 stub 仅保留最核心的用户入口。

最后修改 2026-04-14: update extension catalog (fa7cf58)