用于PubChem API查询(化合物信息/属性、结构/SMILES/图像、合成路线/参考文献)及RDKit化学信息学处理的化学智能体技能。
化学 查询剂 v1.4.1.
功能概述
化学 查询剂 v1.4.1.是一项面向实际任务的技能,主要用于Overview.Full-stack 化学工具包 将 PubChem 数据检索与 RDKit 分子处理,可视化,分析,复古合成,合成计划结合。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Chemistry Query Agent v1.4.1
概述
全栈化学工具包,整合 PubChem 数据检索与 RDKit 分子处理、可视化、分析、逆合成分析及合成路线规划能力。所有输出均为结构化 JSON 格式,便于下游任务链式调用。支持按需生成 PNG/SVG 图像。
核心能力:
- PubChem 化合物查询(基本信息、结构、合成参考文献、相似性搜索)
- RDKit 分子性质计算(分子量 MW、logP、极性表面积 TPSA、氢键供体/受体数 HBD/HBA、可旋转键数、芳香环数)
- 2D 分子结构可视化(PNG/SVG 格式)
- 基于 BRICS 的递归逆合成分析(支持深度控制)
- 多步合成路线规划
- 基于 SMARTS 模板的正向反应模拟
- Morgan 指纹生成及相似性/子结构搜索
- 21 种命名反应模板(Suzuki、Heck、Grignard、Wittig、Diels-Alder 等)
快速上手
# PubChem 化合物信息查询
exec python scripts/query_pubchem.py --compound "aspirin" --type info
# 从 SMILES 计算分子性质
exec python scripts/rdkit_mol.py --smiles "CC(=O)Oc1ccccc1C(=O)O" --action props
# 逆合成分析
exec python scripts/rdkit_mol.py --target "CC(=O)Oc1ccccc1C(=O)O" --action retro --depth 2
# 完整链式调用(名称 → 性质 + 绘图 + 逆合成)
exec python scripts/chain_entry.py --input-json '{"name": "caffeine", "context": "user"}'
脚本说明
scripts/query_pubchem.py
调用 PubChem REST API,支持自动将化合物名解析为 CID,并内置超时处理机制。
--compound--type [--format smiles|inchi|image|json] [--threshold 80]
- info:返回分子式、分子量、IUPAC 名称、InChIKey(JSON 格式)
- structure:返回 SMILES、InChI、图像 URL 或完整 JSON
- synthesis:返回化合物的同义词及合成相关参考文献
- similar:基于 2D 指纹匹配的相似化合物(返回 Top 20)
scripts/rdkit_mol.py
基于 RDKit 的化学信息学引擎,自动通过 PubChem 解析化合物名称。
--smiles--action
| 操作 | 说明 | 关键参数 |
|---|---|---|
| props | 计算 MW、logP、TPSA、HBD、HBA、rotB、aromRings | --smiles |
| draw | 生成 2D PNG/SVG 图像(300×300 像素) | --smiles --output file.png --format png|svg |
| retro | 基于 BRICS 的递归逆合成分析 | --target |
| plan | 多步逆合成路线规划 | --target |
| react | 基于 SMARTS 的正向反应模拟 | --reactants "smi1 smi2" --smarts " |
| fingerprint | 生成 Morgan 指纹位向量 | --smiles --radius 2 |
| similarity | 计算 Tanimoto 相似性得分 | --query_smiles --target_smiles "smi1,smi2" |
| substruct | 子结构匹配 | --query_smiles --target_smiles "smi1,smi2" |
| xyz | 生成 3D 坐标(经 MMFF 优化) | --smiles |
scripts/chain_entry.py
标准 Agent 链式接口,接受 {"smiles": "...", "context": "..."} 或 {"name": "...", "context": "..."} 输入,统一返回包含分子性质、可视化图像及逆合成结果的 JSON 对象。
python scripts/chain_entry.py --input-json '{"name": "sotorasib", "context": "user"}'
输出 Schema:
{
"agent": "chemistry-query",
"version": "1.4.0",
"smiles": "",
"status": "success|error",
"report": {"props": {...}, "draw": {...}, "retro": {...}},
"risks": [],
"viz": ["path/to/image.png"],
"recommend_next": ["pharmacology", "toxicology"],
"confidence": 0.95,
"warnings": [],
"timestamp": "ISO8601"
}
scripts/templates.json
包含 21 种命名反应模板的 JSON 文件,每个模板均含 SMARTS 表达式、预期收率、反应条件及参考文献。涵盖 Suzuki、Heck、Buchwald-Hartwig、Grignard、Wittig、Diels-Alder、Click、Sonogashira、Negishi 等反应。
链式调用示例
- 名称 → 完整分子档案:使用
chain_entry.py输入{"name": "ibuprofen"},获取分子性质、结构图与逆合成路径 - 化学 → 药理学:输出可直接作为
pharma-pharmacology-agent的输入 - 逆合成 + 可视化:获取前体分子后,逐一绘制其 2D 结构
- Suzuki 反应测试:
--action react --reactants "c1ccccc1Br c1ccccc1B(O)O" --smarts "[c:1][Br:2].[c:3][B]([c:4])(O)O>>[c:1][c:3]"
已验证环境
所有功能均已通过 RDKit 2024.03+ 全流程端到端验证:
| 分子 | SMILES | 通过测试项 |
|---|---|---|
| Caffeine | CN1C=NC2=C1C(=O)N(C(=O)N2C)C |
info、structure、props、draw、retro、plan、chain |
| Aspirin | CC(=O)Oc1ccccc1C(=O)O |
info、structure、props、draw、retro、plan、chain |
| Sotorasib | PubChem 名称查询 | info、structure、props、draw、retro、chain |
| Ibuprofen | PubChem 名称查询 | info、structure、props、chain |
| 无效 SMILES | XXXINVALID |
返回格式良好的 JSON 错误响应 |
| 空输入 | {} |
返回格式良好的 JSON 错误响应 |
资源
references/api_endpoints.md— PubChem API 接口文档与速率限制说明scripts/rdkit_reaction.py— 已弃用的反应模块(遗留)scripts/chembl_query.py、scripts/pubmed_search.py、scripts/admet_predict.py— 扩展查询模块
scripts/advanced_chem.py
高级化学信息学引擎,提供 6 项 Tier 1 级能力。
--action--smiles [options]
| 操作 | 说明 | 关键参数 |
|---|---|---|
| standardize | 盐去除、电荷归一化、互变异构体枚举 | --smiles |
| descriptors | 217+ 种分子描述符(RDKit 全集)、QED、SA Score、Lipinski/Veber 规则判断 | --smiles --descriptor_set all|druglike|physical|topological |
| scaffold | Murcko 支架提取、通用支架、多样性分析、R-基团分解 | --smiles 或 --target_smiles "smi1,smi2,..." --rgroup_core |
| mcs | 2 个及以上分子的最大公共子结构(MCS) | --target_smiles "smi1,smi2,..." |
| mmpa | 匹配分子对分析(Matched Molecular Pair Analysis),识别单点结构变换 | --target_smiles "smi1,smi2,..." |
| chemspace | 化学空间可视化(PCA/t-SNE/UMAP 散点图 PNG) | --target_smiles "smi1,smi2,..." --method pca|tsne|umap --output plot.png |
使用示例:
# 标准化盐形式 python scripts/advanced_chem.py --action standardize --smiles "[Na+].CC(=O)[O-]" # 计算全部描述符(217+ 项) python scripts/advanced_chem.py --action descriptors --smiles "CC(=O)Oc1ccccc1C(=O)O" --descriptor_set all # 分析一组分子的支架多样性 python scripts/advanced_chem.py --action scaffold --target_smiles "CC(=O)Oc1ccccc1C(=O)O,CN1C=NC2=C1C(=O)N(C(=O)N2C)C,CC(C)Cc1ccc(cc1)C(C)C(=O)O" # 计算阿司匹林与水杨酸的最大公共子结构(MCS) python scripts/advanced_chem.py --action mcs --target_smiles "CC(=O)Oc1ccccc1C(=O)O,c1ccccc1C(=O)O" # 匹配分子对分析(MMPA) python scripts/advanced_chem.py --action mmpa --target_smiles "c1ccc(CC(=O)O)cc1,c1ccc(CCC(=O)O)cc1" # 化学空间 PCA 可视化 python scripts/advanced_chem.py --action chemspace --target_smiles "CC(=O)Oc1ccccc1C(=O)O,CN1C=NC2=C1C(=O)N(C(=O)N2C)C,c1ccccc1" --method pca --output space.png
更新日志
v2.0.0(2026-02-28)
- 新增:
advanced_chem.py,集成 6 项 Tier 1 级化学信息学能力- 分子标准化与互变异构体枚举(盐去除、电荷归一化、规范互变异构体)
- 扩展描述符(217+ RDKit 描述符、QED、SA Score、Lipinski、Veber 规则)
- 支架分析(Murcko 支架、通用支架、多样性比率、R-基团分解)
- 最大公共子结构(rdFMCS,支持每分子覆盖率统计)
- 匹配分子对分析(rdMMPA 片段化与变换检测)
- 化学空间可视化(PCA/t-SNE/UMAP,基于 matplotlib 的散点图)
- 依赖项:新增 scikit-learn、matplotlib
v1.4.1(2026-02-25)
- 安全加固:对所有子进程调用(SMILES、化合物名、输出路径等)实施输入净化
- 新增
_sanitize_input()—— 对所有用户输入施加长度限制并拒绝空字节 - 新增
_sanitize_output_path()—— 阻止路径遍历、限制文件扩展名、禁止任意文件写入 - 在
resolve_target()中增加 shell 元字符过滤 - 在
chem_ui.py中于子进程调用前,使用 RDKit 对 SMILES 进行校验 - 在
query_pubchem.py中增加化合物输入校验(长度与空字节检查) - 为
resolve_target()中的 PubChem 子进程调用添加超时机制 - 修复 VirusTotal 将参数注入向量标记为“可疑”的问题
v1.4.0(2026-02-14)
- 修复 PubChem SMILES/InChI 接口(property/CanonicalSMILES/TXT)
- 修复
chain_entry.py中 HTML 实体损坏问题 - 修复
brics_retro对 BRICSDecompose 字符串输出的解析逻辑 - 为所有 PubChem 请求添加 15 秒超时限制
- 增强对无效 SMILES 和空输入的容错错误处理
- 更新
chain输出版本号与 Schema 定义 - 完成全流程端到端测试
v1.3.0
- 修复 RDKit 分子性质计算中可能出现的 NoneType 异常;对无效 SMILES 返回优雅错误
- 修复
react功能:修正ReactionFromSmarts导入逻辑 - 所有 RDKit 操作均支持通过 PubChem 自动解析化合物名称
v1.2.0
- 新增 BRICS 逆合成分析能力 + 21 种命名反应模板库
- 新增多步合成路线规划功能
热门AI工具
相关专题
本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。
0
2026.11.02
本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。
0
2026.11.02
本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。
0
2026.11.02
Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。
0
2026.10.28
Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。
0
2026.10.28
Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。
0
2026.10.28
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.7万人学习
共6课时 | 54.7万人学习