SuperAPI AI 工具集

rdkit

数据与分析

查看项目

更新于 10-21 16:18

技能介绍

RDKit 化学信息学工具包

概述

RDKit 是一个综合性的化学信息学库,提供用于分子分析和操作的 Python API。本技能为读写分子结构、计算描述符、生成指纹、子结构搜索、化学反应、2D/3D 坐标生成以及分子可视化提供指导。适用于药物发现、计算化学和化学信息学研究任务。

当前基线(检查于 2026-06-07):RDKit 2026.03.3 是最新的 GitHub/PyPI 发布版本(PyPI 上为 rdkit 2026.3.3)。官方安装文档继续推荐大多数用户使用 conda-forge,同时跨平台 PyPI wheel 以 rdkit 包名发布。rdkit-pypi 是旧的 PyPI 包名,仅应在维护遗留环境时出现。

安装与设置

在现有 Python 环境中安装时使用 uv:

uv pip install rdkit

对于可复现的化学环境,尤其是在混合编译科学包时,conda-forge 仍是上游推荐:

conda create -c conda-forge -n my-rdkit-env rdkit conda activate my-rdkit-env

避免在同一环境中同时安装 conda rdkit 和 PyPI rdkit/rdkit-pypi,除非您有意调试打包行为。混合安装可能导致无法确定正在导入哪个二进制扩展。

核心能力

十二个能力领域,每个都有示例代码,记录在 references/core_capabilities.md 中:

领域 涵盖内容

1 分子 I/O 与创建 SMILES、MOL 文件和块、InChI、SDF 和 SMILES 供应器、多线程读取、写入器

2 净化与验证 禁用自动净化、手动和部分净化、先检测问题

3 分析与属性 原子和键迭代、环信息和 SSSR、手性和立体化学、片段

4 描述符 MW、LogP、TPSA、氢键供体/受体、可旋转键、芳香环、批量计算、类药性

5 指纹与相似性 拓扑、通过 rdFingerprintGenerator 的 Morgan/ECFP、MACCS、原子对、扭转、Avalon;Tanimoto 和其他度量;Butina 聚类

6 子结构搜索 SMARTS 查询、匹配检索以及常见模式库

7 化学反应 反应 SMARTS、应用反应、反应指纹

8 2D 和 3D 坐标 描绘、模板对齐、ETKDG 嵌入、力场优化、RMSD、约束嵌入

9 可视化 单图和网格图像、子结构高亮、自定义绘制选项、Jupyter 集成、指纹位环境

10 分子修饰 显式氢、Kekulization、芳香性、子结构替换、电荷中和

11 哈希与标准化 Murcko 骨架和规范哈希、区域异构体哈希、用于增强的随机 SMILES

12 药效团与 3D 特征 特征工厂和特征提取

工作流程以及性能、线程安全和版本敏感性说明在 references/workflows_and_best_practices.md 中。

对于共享数据,优先使用可移植交换格式(SMILES、SDF);对于本地缓存,RDKit 的二进制分子表示避免使用通用 pickle。

常见陷阱

忘记检查 None:解析后始终验证分子

净化失败:使用 DetectChemistryProblems() 调试

缺少氢:在计算依赖氢的属性时使用 AddHs()

2D 与 3D:在可视化或 3D 分析前生成适当的坐标

SMARTS 匹配规则:记住未指定的属性匹配任何内容

MolSuppliers 的线程安全:不要跨线程共享供应器对象

资源

references/

本技能包含详细的 API 参考文档:

api_reference.md - 按功能组织的 RDKit 模块、函数和类的综合列表

descriptors_reference.md - 可用分子描述符的完整列表及描述

smarts_patterns.md - 用于官能团和结构特征的常见 SMARTS 模式

在需要特定 API 细节、参数信息或模式示例时加载这些参考。

只有 references/ 和 scripts/ 中列出的文件是捆绑的本地资源。rdkit、datamol、scipy 和 sklearn 等名称指的是可安装的 Python 包,而不是本技能中的本地文件。

scripts/

常见 RDKit 工作流程的示例脚本:

molecular_properties.py - 计算综合分子属性和描述符

similarity_search.py - 执行基于指纹的相似性筛选

substructure_filter.py - 按子结构模式过滤分子

这些脚本可以直接执行或用作自定义工作流程的模板。

相关技能

datamol:通过 datamol Python 库(import datamol as dm)封装 RDKit,用于分子化学信息学,返回原生 rdkit.Chem.Mol 对象…

molfeat:使用 molfeat(0.11.0)将 SMILES 字符串或 RDKit/datamol 分子转换为数值特征,提供计算器、scikit-learn…

medchem:使用 Python medchem 库(datamol-io,v2.0.5)在 RDKit 和 datamol 之上过滤和分类小分子库。