nmr-prediction
Installation
SKILL.md
NMR Chemical Shift Prediction Skill
When to use this
Use this skill when the user provides a SMILES string and wants:
- Per-atom ¹H or ¹³C liquid-phase NMR chemical shifts (ppm)
- Simulated NMR spectrum image (Lorentzian line-shape)
- Quick deep-learning based prediction without DFT
Inputs
- SMILES string (required, e.g.
CCOfor ethanol) --nucleus H | C | both(optional, defaultboth)
Outputs
/tmp/chemclaw/nmr_1H_<smiles>.png— ¹H NMR spectrum/tmp/chemclaw/nmr_13C_<smiles>.png— ¹³C NMR spectrum- Console: per-atom chemical shifts (ppm)
目录结构
nmr-prediction/
├── SKILL.md
├── nmr_prediction.py
├── requirements.txt
└── assets/
├── NMRNet/ ← NMRNet 精简推理代码 + `oc_limit_dict.txt`
└── Uni-Core/ ← Uni-Core 基础库(需要先 install)
模型权重(大文件,不放进 repo)存放于 /tmp/weights/,通过 --setup 自动下载。
环境安装 (首次)
1. 准备 assets/
# 将 NMRNet 放入 assets/(从 GitHub 下载 zip 后解压)
cp -r ~/Downloads/NMRNet-main nmr-prediction/assets/NMRNet
# 将 Uni-Core 放入 assets/ 并安装
cp -r ~/Downloads/Uni-Core-main nmr-prediction/assets/Uni-Core
cd nmr-prediction/assets/Uni-Core
python setup.py install # macOS 默认禁用 CUDA,直接执行
2. 安装 Python 依赖
cd nmr-prediction
pip install -r requirements.txt
# 如果还没装 torch:pip install torch (CPU 版即可)
3. 下载模型权重 + scaler → /tmp/weights/
cd nmr-prediction
python nmr_prediction.py --setup
此命令通过 remotezip 从 Zenodo 仅提取所需文件:
- H/C 模型 checkpoint(各 ~560 MB)→
/tmp/weights/finetune/liquid/.../ - H/C 液相 scaler(各 623 B)→ 同上目录
注意:NMRNet 仓库自带的
demo/notebook/scaler/是固态 NMR scaler,不适用于液相预测。 当前 skill 只保留 NMRNet 的精简推理代码与oc_limit_dict.txt,不依赖demo/数据目录。
How to run(环境已准备好时)
cd nmr-prediction
# 预测乙醇的 ¹H + ¹³C 谱
python nmr_prediction.py "CCO"
# 只预测苯的 ¹³C 谱
python nmr_prediction.py "c1ccccc1" --nucleus C
# 预测咖啡因的 ¹H 谱
python nmr_prediction.py "Cn1cnc2c1c(=O)n(c(=O)n2C)C" --nucleus H
运行原理(Pipeline)
SMILES
↓ RDKit: AddHs + EmbedMolecule + MMFFOptimize
3D 分子坐标 (atoms + coordinates)
↓ atoms_target_mask: 标记目标元素 (H 或 C) 为 1
NMRNet 数据记录 (dict)
↓ UniMatModel (SE(3)-Transformer, unimol_large 架构)
每原子预测化学位移 (scaled)
↓ TargetScaler.inverse_transform
化学位移 (ppm)
↓ Lorentzian 叠加
NMR 谱图 PNG
注意事项
- 模型仅训练于液态 NMR 数据(nmrshiftdb2),固态化合物不适用
- macOS CPU 推理速度较慢:¹H 约 10-30 秒,¹³C 约 10-30 秒(取决于分子大小)
- 权重固定存放在
/tmp/weights/(重启后消失,需重新--setup) - NMRNet / Uni-Core 代码在
assets/里,随 repo 一起走 assets/NMRNet/oc_limit_dict.txt为运行时所需字典文件,不能删除
References
- NMRNet 论文: arXiv:2408.15681
- NMRNet 代码: https://github.com/Colin-Jay/NMRNet
- Uni-Core: https://github.com/dptech-corp/Uni-Core
- 模型权重: https://zenodo.org/records/19142375
Related skills
More from internscience/chemclaw
literature-parsing
将 PDF 文献转换为 Markdown 文件,并提取所有图表图片。使用 MinerU (opendatalab) 进行工业级高质量解析。
13molecular_properties_predictor
预测小分子多种物化性质(沸点、折射率、密度、黏度、表面张力等),当前已真实接入 bamboo_mixer 单分子物性模型后端。
13adme-prediction
ADME 性质预测工具。预测分子的吸收、分布、代谢、排泄性质,包括 Caco-2 通透性、PAMPA、HIA、Pgp 抑制、生物利用度、亲脂性等。使用 Morgan 指纹 + Random Forest/XGBoost。当用户提到 ADME 预测、药物性质、通透性、吸收、代谢等时触发。
13reaction-data-extraction
从 PDF 文献中提取化学反应数据,特别是反应条件优化信息。支持提取反应物、产物、催化剂、溶剂、温度、时间、产率等,并输出结构化 CSV 文件。使用 MinerU + NLP + 规则匹配进行精确提取。
13mol-3d-viewer
将 SMILES 或化学名称转换为分子 3D 结构。支持生成 SDF 文件、3D 分子图片和可交互 HTML 网页(可旋转观察)。
13mineru-pdf-converter
|
13