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;

用法

RDKit 自带 PostgreSQL cartridge,用于化学信息学场景下的分子存储、检索、指纹和描述符计算。cartridge docs 仍然是主要的上游用法参考;2025.03.6 release note 没有提到 cartridge 相关的用户侧变化。

创建扩展

CREATE EXTENSION rdkit;

该 cartridge 会增加 molbfpsfp 等化学类型。

核心搜索操作符

cartridge 文档覆盖了以下内容:

  • @><@:用于子结构匹配。
  • @=:用于分子精确相等判断。
  • %<%><#> 这一类指纹相似度与 KNN 操作符:用于相似性搜索。

这些操作通常会和建在指纹列上的 GiST 索引一起使用。

指纹与相似度

文档中常见的 SQL 指纹函数包括 morgan_fpmorganbv_fpfeatmorgan_fprdkit_fpatompair_fptorsion_fplayered_fpmaccs_fp

cartridge docs 中的示例:

SELECT tanimoto_sml(
  morganbv_fp('c1ccccc1'::mol),
  morganbv_fp('c1ccccc1O'::mol)
);

描述符与校验

cartridge docs 还公开了校验与描述符辅助函数,例如:

  • is_valid_smiles()
  • is_valid_ctab()
  • is_valid_smarts()
  • mol_amw()
  • mol_hba()
  • mol_numrings()

这些函数构成了 SQL 层面对分子结构做分析时最主要的用户接口。


最后修改 2026-04-19: update extension stub docs (aa5941a)