ワンクリックで
mol-paper-renderer
论文级分子渲染工具。使用 xyzrender 生成出版质量的 SVG、PNG、PDF 和 GIF 动画。支持过渡态、非共价相互作用、分子轨道、晶体结构等高级功能。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
论文级分子渲染工具。使用 xyzrender 生成出版质量的 SVG、PNG、PDF 和 GIF 动画。支持过渡态、非共价相互作用、分子轨道、晶体结构等高级功能。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Extract structured chemical compound characterization data from chemistry supplementary material documents (PDF/Markdown). 从化学论文补充材料(PDF/Markdown)中提取结构化化合物表征数据。 Use when Kimi needs to extract compound properties including NMR spectra, HRMS, HPLC data, melting points, optical rotation, and yield information from chemistry research papers or supplementary materials. 支持提取NMR谱图、HRMS、HPLC数据、熔点、旋光度、产率等信息。 Supports both single compound extraction and batch extraction of all compounds. 支持单个化合物提取和批量提取所有化合物。
Convert Gaussian gjf input files to XYZ format. 将Gaussian gjf输入文件转换为XYZ格式。 Use when agent needs to convert molecular structure files from Gaussian input format (.gjf) to XYZ format for visualization or use with other computational chemistry software. 当智能体需要将Gaussian输入格式(.gjf)的分子结构文件转换为XYZ格式用于可视化或其他计算化学软件时使用。
Convert PDF files to Markdown using MinerU API. 使用MinerU API将PDF文件转换为Markdown格式。 Use when Kimi needs to extract structured text, images, tables, and formulas from PDF documents while preserving document layout and formatting. 适用于需要提取结构化文本、图片、表格和公式并保留文档布局的场景。 Supports batch conversion and outputs full.md with images/, JSON metadata, and other extracted assets. 支持批量转换,输出full.md、images/目录、JSON元数据等。 Now supports large PDFs (600+ pages) by automatic splitting and merging. 现已支持大文件(600+页)自动拆分和合并处理。
Extract DFT calculation coordinates from PDF files and generate Gaussian gjf files. 从PDF文件中提取DFT计算坐标并生成Gaussian gjf输入文件。 Supports batch processing with separate output folders for each PDF. 支持批量处理,每个PDF单独生成输出文件夹。
Predict and visualize MS/MS spectra from a single SMILES using the fioRa online app. Use when the user wants a mass spectrum, MGF/MSP output, or a plotted stick spectrum from SMILES, with optional custom Name, precursor type, collision energy, and instrument settings.
Predict liquid-phase ¹H and ¹³C NMR chemical shifts from a SMILES string using NMRNet (deep learning, SE(3)-Transformer). Outputs per-atom shift values (ppm) and Lorentzian-broadened spectrum PNG files.
| name | mol-paper-renderer |
| description | 论文级分子渲染工具。使用 xyzrender 生成出版质量的 SVG、PNG、PDF 和 GIF 动画。支持过渡态、非共价相互作用、分子轨道、晶体结构等高级功能。 |
| trigger | ["论文级","publication-quality","出版质量","xyzrender","论文图片","论文绘图","规范分子图","过渡态","TS bond","NCI","分子轨道","cube file","晶体结构","unit cell","convex hull","GIF 动画","rotation GIF"] |
使用 xyzrender 生成论文级分子结构图。这不是普通的分子查看器,而是专门为科研出图设计的自动渲染工具。
生成 caffeine 的论文级分子结构图
用 xyzrender 渲染这个 XYZ 文件,输出 SVG
画出过渡态结构,显示 TS 键
显示非共价相互作用(NCI)
生成 HOMO 轨道图(从 cube 文件)
创建旋转 GIF 动画用于 PPT
画出晶胞结构,显示周期性
标注芳香环的凸包
# 基础渲染(XYZ → SVG)
xyzrender molecule.xyz -o output.svg
# 指定输出格式
xyzrender molecule.xyz -o output.png
xyzrender molecule.xyz -o output.pdf
# 过渡态(自动检测 TS 键)
xyzrender ts.out --ts -o ts_figure.png
# 非共价相互作用
xyzrender hbond.xyz --nci -o nci.svg
# 旋转 GIF 动画
xyzrender molecule.xyz --gif-rot -o rotation.gif
# TS 振动 GIF
xyzrender ts.out --gif-ts -o ts_vibration.gif
# 分子轨道(HOMO/LUMO)
xyzrender caffeine_homo.cube --mo -o homo.svg
# 电子密度表面
xyzrender caffeine_dens.cube --dens -o density.svg
# 静电势映射
xyzrender caffeine_dens.cube --esp caffeine_esp.cube -o esp.svg
# 晶体结构
xyzrender caffeine_cell.xyz -o crystal.svg
# 凸包(标注芳香环)
xyzrender benzene.xyz --hull 1-6 -o benzene_hull.svg
# vdW 表面
xyzrender molecule.xyz --vdw -o vdw.svg
# 显示氢原子
xyzrender ethanol.xyz --hy -o ethanol_all_h.svg
# 凯库勒化(显示双键)
xyzrender benzene.xyz --kekule -o benzene_kekule.svg
# 原子索引标注
xyzrender caffeine.xyz --idx -o caffeine_indexed.svg
# 键长测量标注
xyzrender ethanol.xyz --measure -o ethanol_measured.svg
# 从 SMILES 生成(自动 3D 嵌入)
xyzrender --smi "C1CC(O)CCC1O" --hy -o molecule.svg
# 使用预设样式
xyzrender molecule.xyz --config flat -o flat.svg
xyzrender molecule.xyz --config paton -o paton.svg
from xyzrender import load, render, render_gif, build_config
# 加载并渲染
mol = load("caffeine.xyz")
render(mol) # Jupyter 内联显示
render(mol, output="caffeine.svg") # 保存 SVG
render(mol, output="caffeine.png") # 保存 PNG
# 从 SMILES 生成
smi = load("C1CC(O)CCC1O", smiles=True)
smi.to_xyz("smiles.xyz")
render(smi, output="smiles.svg")
# 使用预设配置
cfg = build_config("flat", atom_scale=1.5, gradient=False)
render(mol, config=cfg)
# 高级功能
render(mol, ts_bonds=[(1, 6)]) # 手动 TS 键
render(mol, nci_bonds=[(2, 8)]) # 手动 NCI 键
render(mol, vdw=True) # vdW 球体
render(mol, hull=[1,2,3,4,5,6]) # 凸包
render(mol, mo=True) # 分子轨道(cube 文件)
render(mol, dens=True) # 密度表面
render(mol, esp="esp.cube") # ESP 映射
# GIF 动画
render_gif("mol.xyz", gif_rot="y", output="rotation.gif")
render_gif("ts.out", gif_ts=True, output="ts_vib.gif")
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
--output | -o | 输出文件路径 | {input}.svg |
--config | -c | 样式预设或 JSON 配置 | default |
--charge | 分子电荷 | 0 | |
--multiplicity | -m | 自旋多重度 | 1 |
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
--canvas-size | -S | 画布大小(像素) | 800 |
--atom-scale | -a | 原子半径缩放 | 1.0 |
--bond-width | -b | 键线宽度 | 2.0 |
--bond-color | 键颜色 | 自动 | |
--background | -B | 背景颜色 | #ffffff |
--transparent | -t | 透明背景 | false |
--gradient | --grad | 径向渐变 | true |
--fog | --fog | 深度雾效果 | true |
--bond-orders | --bo | 渲染键级 | true |
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
--hydrogens | --hy | 显示氢原子 | false |
--no-hydrogens | --no-hy | 隐藏所有氢 | false |
--kekule | -k | 凯库勒键级 | false |
--vdw | vdW 球体 | false | |
--vdw-opacity | vdW 透明度 | 0.25 |
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
--ts | 自动检测 TS 键 | false | |
--ts-bond | 手动 TS 键(1-indexed) | - | |
--nci | 自动检测 NCI | false | |
--nci-bond | 手动 NCI 键 | - |
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
--mo | 分子轨道(cube) | false | |
--mo-colors | 轨道颜色(正 负) | steelblue maroon | |
--iso | 等值面阈值 | 0.05 (MO) / 0.001 (dens) | |
--dens | 电子密度表面 | false | |
--esp | ESP cube 文件 | - | |
--nci-surf | NCI 表面 cube | - |
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
--hull | 凸包原子索引 | - | |
--hull-color | 凸包颜色 | 自动循环 | |
--hull-opacity | 凸包透明度 | 0.2 | |
--hull-edge | 绘制凸包边 | true |
注意: 凸包功能需要 xyzrender >= 0.3。当前安装版本为 0.2.1。
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
--crystal | 加载 VASP/QE 结构 | false | |
--cell | 绘制晶胞盒 | 自动 | |
--cell-color | 晶胞颜色 | gray | |
--ghosts | 显示 ghost atoms | true | |
--axes | 显示晶轴箭头 | true | |
--axis | 观察方向 [HKL] | 001 |
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
--gif-rot | 旋转 GIF | false | |
--gif-ts | TS 振动 GIF | false | |
--gif-trj | 轨迹 GIF | false | |
--gif-output | -go | GIF 输出路径 | {input}.gif |
--gif-fps | GIF 帧率 | 10 | |
--rot-frames | 旋转帧数 | 120 |
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
--measure | 输出键长/角/二面角 | false | |
--index | --idx | 原子索引标注 | false |
--label | -l | 内联标注 | - |
--label-file | 批量标注文件 | - | |
--cmap | 原子性质着色文件 | - | |
--vectors | 矢量箭头 JSON | - |
$ xyzrender caffeine.xyz -o caffeine.svg
✓ 已生成:caffeine.svg (800x800, SVG)
$ xyzrender sn2.out --ts -o sn2_ts.png
✓ 已生成:sn2_ts.png (800x800, PNG) [过渡态,自动检测 TS 键]
$ xyzrender hbond.xyz --nci -o hbond.svg
✓ 已生成:hbond.svg (800x800, SVG) [NCI 相互作用]
$ xyzrender molecule.xyz --gif-rot -o rotation.gif
✓ 已生成:rotation.gif (800x800, 120 帧,10fps)
$ xyzrender caffeine_homo.cube --mo -o homo.svg
✓ 已生成:homo.svg (800x800, SVG) [HOMO 轨道]
$ xyzrender caffeine_dens.cube --esp caffeine_esp.cube -o esp.svg
✓ 已生成:esp.svg (800x800, SVG) [ESP 映射]
$ xyzrender caffeine_cell.xyz -o crystal.svg
✓ 已生成:crystal.svg (800x800, SVG) [晶胞,ghost atoms,晶轴]
$ xyzrender benzene.xyz --hull 1-6 -o benzene_hull.svg
✓ 已生成:benzene_hull.svg (800x800, SVG) [芳香环凸包]
| 预设 | 说明 | 适用场景 |
|---|---|---|
default | 默认样式,带渐变和深度雾 | 通用 |
flat | 无渐变,平面风格 | 简洁图表 |
paton | PyMOL 风格(参考 Rob Paton) | 计算化学论文 |
pip install xyzrender
# 所有功能
pip install 'xyzrender[all]'
# 或按需安装
pip install xyzrender[smiles] # SMILES 支持(rdkit)
pip install xyzrender[cif] # CIF 支持(ase)
pip install xyzrender[crystal] # VASP/QE 支持(phonopy)
pip install xyzrender[v] # 交互式查看器(vmol,Linux only)
pip install xyzrender[gif] # GIF 生成(cairosvg, Pillow)
uv tool install xyzrender
uv tool install --editable . # 开发模式
# 快速预览
python3 scripts/mol_2d_viewer.py -s "CCO" -o ethanol_preview.png
# 论文级渲染
xyzrender ethanol.xyz -o ethanol_paper.svg --config paton
# 生成 3D 坐标
python3 scripts/mol_3d_viewer.py -s "CCO" -o ethanol
# 使用生成的 XYZ 进行论文级渲染
xyzrender ethanol.xyz -o ethanol_paper.svg --config paton --hy
# 1. 转换名称为 SMILES
python3 scripts/iupac_to_smiles.py -n "caffeine" -o result.json
# 2. 提取 SMILES 并生成 3D 坐标
SMILES=$(cat result.json | jq -r '.results[0].smiles')
xyzrender --smi "$SMILES" --hy -o caffeine.svg
# 一键生成(SMILES → 3D 嵌入 → 论文级 SVG)
xyzrender --smi "C1=CC(=CC=C1C(=O)O)C(=O)O" --hy --config paton -o aspirin.svg
# 从 ORCA 输出直接渲染 TS 结构
xyzrender ts_freq.out --ts --hy --vdw 84-169 -o ts_figure.svg
# 生成 TS 振动 GIF
xyzrender ts_freq.out --gif-ts --gif-rot -o ts_animation.gif
# 从几何结构自动检测 NCI
xyzrender complex.xyz --nci -o nci_auto.svg
# 或使用 NCIPLOT cube 文件
xyzrender complex_dens.cube --nci-surf complex_grad.cube -o nci_surface.svg
# 从 ORCA 生成 cube 文件后渲染
orca_plot calculation.out -i
# 选择 HOMO 轨道,生成 caffeine_homo.cube
# 渲染 HOMO
xyzrender caffeine_homo.cube --mo -o homo.svg
# 渲染 LUMO
xyzrender caffeine_lumo.cube --mo --mo-colors teal orange -o lumo.svg
# 从 extXYZ 渲染(自动检测晶格)
xyzrender caffeine_cell.xyz -o crystal.svg
# 沿 [111] 方向观察
xyzrender caffeine_cell.xyz --axis 111 -o crystal_111.svg
# 生成旋转 GIF
xyzrender caffeine_cell.xyz --gif-rot 111 -o crystal_rot.gif
# 从 ORCA 生成密度和 ESP cube
orca_plot calculation.out -i
# 生成 density.cube 和 esp.cube
# 渲染 ESP 映射表面
xyzrender density.cube --esp esp.cube -o esp_map.svg
pip install xyzrender[smiles]pip install xyzrender[crystal]pip install xyzrender[gif]pip install xyzrender[v]| 错误 | 说明 | 解决方案 |
|---|---|---|
File not found | 输入文件不存在 | 检查路径 |
Invalid format | 文件格式不支持 | 检查扩展名或添加 --rebuild |
RDKit not installed | SMILES 嵌入失败 | pip install xyzrender[smiles] |
phonopy not installed | 晶体加载失败 | pip install xyzrender[crystal] |
cairosvg not installed | GIF/PNG 转换失败 | pip install xyzrender[gif] |
No bond orders | 键级检测失败 | 添加 --bo 或检查几何结构 |
| 任务 | 时间 | 说明 |
|---|---|---|
| 小分子 SVG | <1s | <50 原子 |
| 大分子 SVG | 1-5s | 50-200 原子 |
| 晶体结构 | 2-10s | 含 ghost atoms |
| MO 表面 | 5-20s | cube 文件等值面 |
| 旋转 GIF | 10-60s | 120 帧,10fps |
| TS 振动 GIF | 10-30s | 含 graphRC 分析 |
默认输出目录:~/.openclaw/media/mol-paper-renderer/
mkdir -p ~/.openclaw/media/mol-paper-renderer
创建 my_style.json:
{
"canvas_size": 1200,
"atom_scale": 2.0,
"bond_width": 3.0,
"gradient": true,
"fog": true,
"background": "#f8f8f8",
"colors": {
"C": "#333333",
"H": "#ffffff",
"N": "#3050F8",
"O": "#FF0000"
}
}
使用:
xyzrender molecule.xyz --config my_style.json -o custom.svg
创建 labels.txt:
1 2 d
2 3 4 a
1 2 3 4 t
7 "Partial charge: +0.5"
使用:
xyzrender molecule.xyz --label labels.txt -o labeled.svg
创建 charges.txt:
1 0.512
2 -0.234
3 0.041
使用:
xyzrender molecule.xyz --cmap charges.txt --cmap-range -0.5 0.5 -o colored.svg
当前安装版本: xyzrender 0.2.1
如需使用最新功能,可升级:
pip install --upgrade xyzrender --break-system-packages