关于 rdkit
rdkit 技能为化学信息学研究者提供 RDKit Python API 的使用指导,涵盖分子读写、分析、搜索与可视化,并附有参考资料和工作流脚本。
主要功能
- 01分子结构读写与验证
- 02描述符计算与指纹分析
- 03SMARTS 子结构搜索
- 04化学反应与分子修改
- 05二维及三维坐标生成
- 06分子图像与可视化
适用场景
- 01计算分子性质与药物相似性
- 02筛选含特定子结构的分子
- 03生成并分析化学反应产物
- 04绘制分子结构用于研究
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ kalarislabs/ research-agent-skills --skill rdkit安装后在 Claude Code 中输入/rdkit确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/api_reference.mdcore_capabilities.mddescriptors_reference.mdsmarts_patterns.mdworkflows_and_best_practices.mdscripts/molecular_properties.pysimilarity_search.pysubstructure_filter.py详细介绍
RDKit 化学信息学工具包
概述
RDKit 是一个全面的化学信息学库,提供用于分子分析和操作的 Python API。本技能提供有关读取和写入分子结构、计算描述符、生成指纹、子结构搜索、化学反应、生成 2D/3D 坐标以及分子可视化的指导。可将本技能用于药物发现、计算化学和化学信息学研究任务。
当前基线(检查于 2026-06-07): RDKit 2026.03.3 是 GitHub/PyPI 上的最新版本(PyPI 上的 rdkit 2026.3.3)。官方安装文档仍建议大多数用户使用 conda-forge,同时也以 rdkit 为包名发布了跨平台 PyPI wheel。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 | 分子修改 | 显式氢、凯库勒化、芳香性、子结构替换、电荷中和 |
| 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:基于 RDKit 和 datamol,使用 Python medchem 库(datamol-io,v2.0.5)筛选和分流小分子库。