ChemDraw Skill

让 AI 画出可编辑的 ChemDraw 结构式

ChemDraw Skill 让 AI 编程 Agent 能直接做出 ChemDraw 文件。你说要画哪个分子或哪张图,Agent 先查证结构,再写出 CDXML,让 ChemDraw 渲染,并把文件读回来核对。打开来就是一份普通的 ChemDraw 文档,原子和键都能接着改。同一个 Skill 还能算反应周围的数字:试剂用量、收率、表征文字和原子映射。

git clone https://github.com/ZiChenWang114514/chemdraw-skill.git

适用于 Claude Code、Codex、Gemini CLI、GitHub Copilot、Cursor、OpenCode,以及任何能执行命令行的 Agent。

aspirin.cdxml
O O O OH

Chemical Formula: C9H8O4
Exact Mass: 180.04
Molecular Weight: 180.16
  1. “用 ChemDraw Skill 把阿司匹林画成可编辑 CDXML,渲染后给我看。”
  2. resolve_nameaspirin → CC(=O)Oc1ccccc1C(=O)O
  3. buildaspirin.cdxml,ACS Document 1996
  4. renderChemDraw 原生 PNG,300 dpi
  5. readbackC9H8O4 与输入一致 ✓

四步,每一步都能检查

图看起来对,化学上也可能是错的。所以每一步都有明确的输入和产物,出了问题,一眼就能看出是哪一步。

四步都从同一个入口 cdx.py 运行,能执行命令行的 Agent 都能调用,MCP 可选。

“阿司匹林”

  1. resolve_nameOPSIN、PubChem

    确认结构

    从名称、标识符、可信 SMILES 或 DECIMER 识别结果出发,并记录来源,不让模型凭空编 SMILES。

    查看命令和输出
    $ cdx.py call resolve_name --json '{"query": "aspirin"}'
    {"ok": true, "name": "aspirin", "smiles": "CC(=O)Oc1ccccc1C(=O)O", "formula": "C9H8O4",
     "mw": 180.159, "exact_mass": 180.0423, "source": "reagent_db", …}

    CC(=O)Oc1ccccc1C(=O)O

  2. buildACS Document 1996

    原生绘制

    生成 CDXML,保留立体、电荷和同位素。原子、键和文字都能在 ChemDraw 里接着改。

    查看命令和输出
    $ cat aspirin.json
    {"objects": [{"type": "molecule", "smiles": "CC(=O)Oc1ccccc1C(=O)O", "at": [80, 60]}]}
    $ cdx.py build aspirin.json aspirin.cdxml
    {"cdxml": "…/aspirin.cdxml", "ok": true}

    aspirin.cdxml

  3. renderChemDraw,300 dpi

    渲染查看

    由 ChemDraw 本身渲染,Agent 打开图片,逐项检查标签、箭头、电荷和交叉。

    查看命令和输出
    $ cdx.py render aspirin.cdxml
    {"source": "…/aspirin.cdxml", "png": "…/aspirin.png", "ok": true}

    aspirin.png

  4. readbackChemScript、RDKit

    回读核对

    保存后重新读取文件,确认写进去的就是要画的结构;读取器之间不一致时如实报告。

    查看命令和输出
    $ cdx.py chemscript-info aspirin.cdxml
    Type:    structure
    Name:    2-acetoxybenzoic acid
    Formula: C9H8O4
    SMILES:  CC(OC1=CC=CC=C1C(O)=O)=O
    InChI:   InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)
    Atoms:   13
    Bonds:   13

    C9H8O4,与输入一致 ✓

反应用量、收率和相关数字

对你画出或粘贴的反应,cdx.py calc 会打开一个页面,改任何一个用量,其余数值跟着变。算的是台面上常做的那些运算,所用的假设都摆在明面上。

  • 溶剂浓度、溶剂体积、收率、原子经济性和过程质量强度(PMI;E 因子等于 PMI 减 1)。
  • 你没设的用量会标成默认值,不会当作你给的数。
  • 常见试剂带 Danger 或 Warning 标记,来自内置的表;表里没有的显示“未收录”。它只是提醒,不能代替 SDS。
  • 用量可以写到 ChemDraw 流程图的结构下方,同一个反应也能进入 SI 原料表。
  • 旁边还有:按 ACS 顺序的表征段落(核磁峰数会核对)、多步路线的总收率和 PMI、带反应类型标注的原子映射。
苯甲醇与乙酰氯的反应计算器页面:可编辑的用量、安全标记、PMI、收率和一句实验写法
苯甲醇与乙酰氯的计算器页面。琥珀色的格子是你固定的用量,其余都是算出来的。

能做什么

十四类工作:绘图,以及随之而来的计算。

结构与反应
解析名称和标识符;绘制、编辑、清理、合并、拆分、转换和渲染 CDXML / CDX。
论文图复刻
裁剪原图、DECIMER 识别、并排比对、修正化学,组装条件与版面。
专利 Markush
从专利图和权利要求提取通式,输出 CXSMILES、V3000 molfile 和可编辑 CDXML。
试卷与讲义
由 JSON 生成 ACS 1996 插图,支持缩写节点、富文本、中文注释和带框编号。
SAR 与底物拓展
由 CSV / Excel 生成可持续更新的 SAR 图和底物拓展图,保留手工排版。
比较与性质
相似度与精确身份比较;含 MS 加合物和 logP 的性质表;反应配平检查,指出缺失的副产物;把文件中的全部结构导出为 SMILES 和 InChI;ChemDraw 生成的名称会读回核对。
反应计算器
用量、浓度、收率、原子经济性和 PMI 随输入实时更新;内置表提供的试剂安全提示;把用量写到 ChemDraw 流程图下方;最多 100 个反应的 SI 原料表。
表征文字
HRMS 表征句和按 ACS 顺序排列的整段文字:外观、Rf、熔点、比旋光度、IR、核磁、HRMS。峰数按结构核对,不一致只提示,不改数据。
路线收率与 PMI
线性或汇聚路线的总收率和累计 PMI。缺少的数字保持为空并给出提示。
原子映射
内置方法遇到歧义会如实报告;也可一条命令安装 RXNMapper 与 LocalMapper。给出键变化、反应中心 SMARTS、仅凭结构判断的反应类型,并把映射编号写进图的副本。
反应机理
按原子坐标绘制电子箭头、电荷和抗衡离子。
TLC 与装置
原生 TLC 板、泳道、斑点和 Rf 计算;ChemDraw 装置模板组装。
谱图与实验记录
一维 NMR 寻峰与区间积分,数值数据输出为可编辑曲线;处理 LCMS、SciFinder RDF 和实验记录。
Word 与 PPT
在 Word、PowerPoint 文档中嵌入可编辑的 ChemDraw 对象(Windows 或 macOS 上生成)。

三步开始使用

安装脚本需要 Python 3.9 以上,会自动找到 64 位 Python 3.10–3.13 作为运行时,Windows、macOS、Linux 都能装。原生渲染和 Office 嵌入需要 Windows 或 macOS 上已授权的桌面版 ChemDraw。

选择 Agent 和系统后,右边的命令会随之改写。安装到项目目录等其他用法见 Agent 接入说明。

  1. 安装

    git clone https://github.com/ZiChenWang114514/chemdraw-skill.git
    cd chemdraw-skill
    python scripts/install.py --agent claude --runtime --apply
  2. 检查本机能用哪些功能

    python $HOME/.claude/skills/chemdraw/scripts/cdx.py doctor
  3. 直接对 Agent 说

    用 ChemDraw Skill 把阿司匹林画成可编辑 CDXML,用 ChemDraw 原生渲染并给我看 PNG。

常见问题

任意 AI Agent 都能使用这个 ChemDraw Skill 吗?

可以。Agent 只需要能读取 Skill 指令并执行命令行,所有工具都通过 cdx.py 运行。安装脚本会把 Skill 放到 Claude Code、Codex、Gemini CLI、GitHub Copilot、Cursor、OpenCode 等 Agent 能发现的目录;不支持自动发现的 Agent,在它的指令文件里指向 SKILL.md 即可。

必须使用 MCP 服务吗?

不需要。命令行覆盖全部工具,并保留同样的工作进程隔离、ChemDraw 原生锁和超时控制。需要类型化工具调用的客户端仍可使用 MCP。

能从 Excel 实验数据生成 SAR 图和底物拓展图吗?

可以。将可信结构与 CSV/XLSX 数据绑定,生成可编辑的构效关系(SAR)图或底物拓展图;更新数据时保留无关的手工布局修改。见数据驱动绘图指南。

能帮我算每种试剂该称多少吗?

可以。cdx.py calc 会打开计算器页面,画出或粘贴反应后,改当量、mmol、质量或体积中的任何一个,浓度、收率、原子经济性和 PMI 随之变化。你没有给出的用量使用默认值,并标明是假设值。见化学报告指南。

安全信息可以信到什么程度?

它只是提醒,来自内置的约五十种常用溶剂和试剂表:GHS 图标、H 说明、沸点和闪点。表里没有的物质显示“未收录”,不会显示成安全。请以你实际使用的产品的 SDS 为准。

能把文献里的结构图复刻成可编辑 ChemDraw 文件吗?

可以。论文图复刻流程结合 DECIMER 结构识别、结构确认、版式重建与原生视觉复核,输出可编辑 CDXML 和 ChemDraw 原生预览。见重建指南。

没有安装 ChemDraw 能用吗?

可以使用跨平台的 cdxml-toolkit 运行时生成和检查 CDXML(Windows、macOS、Linux)。原生渲染、ChemScript 检查和 Office 嵌入需要 Windows 或 macOS 上已授权的桌面版 ChemDraw。