iupac-to-smiles
Installation
SKILL.md
IUPAC Name to SMILES Converter
将 IUPAC 化学名称转换为 SMILES 字符串,完全使用 OPSIN API,支持聚合物智能解析。
触发条件
- 用户提供 IUPAC 名称并要求转换
- 提到"SMILES"、"化学名称转换"
- 说"name to smiles"、"IUPAC 转 SMILES"
- 提到聚合物名称(如
poly[...])
功能
- ✅ 完全使用 OPSIN API(剑桥大学)- 不再依赖 PubChem
- ✅ 聚合物智能解析 - 自动识别
poly[...]、poly(...)格式 - ✅ 单体提取 - 从聚合物名称中提取单体并解析
- ✅ 连接基团识别 - 自动识别 oxy、thio、imino 等连接基团
- ✅ 批量转换 - 支持多个名称同时转换
- ✅ 分子信息 - 返回分子式、分子量等(普通化合物)
- ✅ 聚合物说明 - 生成聚合物结构说明
聚合物解析逻辑
对于聚合物名称如 poly[oxy(1-methylethylene)]:
- 识别聚合物前缀:
poly[...] - 提取括号内容:
oxy(1-methylethylene) - 解析连接基团:
oxy→ 氧原子-O- - 解析单体:
1-methylethylene→ 通过 OPSIN 转换为 SMILES - 组合结果: 生成聚合物 SMILES 和说明
支持的连接基团
| 名称 | SMILES | 说明 |
|---|---|---|
| oxy | O | 氧桥 -O- |
| thio | S | 硫桥 -S- |
| imino | NH | 亚氨基 -NH- |
| carbonyl | C=O | 羰基 |
| ester | C(=O)O | 酯基 |
| amide | C(=O)N | 酰胺基 |
使用方法
对话框中使用
把 ethanol 转成 SMILES
IUPAC: 2-hydroxypropanoic acid,转 SMILES
poly[oxy(1-methylethylene)] 转 SMILES
批量转换:ethanol, benzene, poly[oxyethylene]
命令行使用
# 单个名称转换
python3 scripts/iupac_to_smiles.py --name "ethanol"
# 聚合物转换
python3 scripts/iupac_to_smiles.py --name "poly[oxy(1-methylethylene)]"
# 批量转换
python3 scripts/iupac_to_smiles.py --names "ethanol,benzene,poly[oxyethylene]"
# 从文件读取
python3 scripts/iupac_to_smiles.py --input names.txt --output results.json
# 指定输出格式
python3 scripts/iupac_to_smiles.py --name "aspirin" --format csv
参数说明
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
--name |
-n |
单个 IUPAC 名称 | - |
--names |
-N |
多个名称(逗号分隔) | - |
--input |
-i |
输入文件(每行一个名称) | - |
--output |
-o |
输出文件路径 | 自动生成 |
--format |
-f |
输出格式:json/csv | json |
--quiet |
-q |
安静模式 | false |
输出示例
简单化合物
{
"status": "success",
"results": [
{
"input_name": "ethanol",
"smiles": "CCO",
"isomeric_smiles": "CCO",
"molecular_formula": "C2H6O",
"molecular_weight": 46.07,
"source": "OPSIN",
"status": "success",
"type": "simple"
}
]
}
聚合物
{
"status": "success",
"results": [
{
"input_name": "poly[oxy(1-methylethylene)]",
"status": "success",
"type": "polymer",
"polymer_info": {
"is_polymer": true,
"monomers": [
{"name": "1-methylethylene", "position": "repeat_unit"}
],
"linkers": [
{"name": "oxy", "smiles": "O", "position": "backbone"}
]
},
"monomer_results": [
{
"name": "1-methylethylene",
"smiles": "CC(C)",
"status": "success"
}
],
"polymer_smiles": "*OCC(C)*",
"final_smiles": "*OCC(C)*",
"explanation": "连接基团:oxy | 单体 SMILES: CC(C) | 聚合物 SMILES: *OCC(C)*"
}
]
}
CSV 格式
input_name,smiles,status,type,monomer_count,explanation
ethanol,CCO,success,simple,,
poly[oxy(1-methylethylene)],*OCC(C)*,success,polymer,1,连接基团:oxy | 单体 SMILES: CC(C)
依赖
pip install rdkit requests
OPSIN API 说明
- 来源: 剑桥大学化学系
- 网址: https://opsin.ch.cam.ac.uk/
- 优势:
- 支持复杂 IUPAC 名称解析
- 对聚合物名称有更好的支持
- 无需 API 密钥
- 限制:
- 需要网络连接
- 某些非常复杂的名称可能失败
聚合物解析示例
示例 1: poly[oxy(1-methylethylene)]
输入:poly[oxy(1-methylethylene)]
解析:
- 聚合物类型:bracketed
- 连接基团:oxy → O
- 单体:1-methylethylene → CC(C)
输出:*OCC(C)* (聚环氧丙烷)
示例 2: poly[oxyethylene]
输入:poly[oxyethylene]
解析:
- 聚合物类型:bracketed
- 连接基团:oxy → O
- 单体:ethylene → CC
输出:*OCC* (聚环氧乙烷)
示例 3: poly(methyl methacrylate)
输入:poly(methyl methacrylate)
解析:
- 聚合物类型:bracketed
- 单体:methyl methacrylate
输出:*CC(C)(C(=O)OC)* (PMMA)
注意事项
- ✅ 完全使用 OPSIN - 不再使用 PubChem 作为后备
- ✅ 聚合物支持 - 自动识别和解析聚合物名称
- ✅ 灵活解析 - 支持多种聚合物命名格式
- ⚠️ 复杂聚合物可能无法完全解析 - OPSIN 对某些复杂名称支持有限
- ⚠️ 需要网络连接 - OPSIN API 需要在线访问
- ⚠️ 建议先测试常见化合物
错误处理
| 错误 | 说明 | 解决方案 |
|---|---|---|
Name not found |
OPSIN 无法识别名称 | 检查拼写,尝试更简单的名称 |
API error |
OPSIN API 调用失败 | 检查网络连接 |
Parse error |
聚合物解析失败 | 提供更标准的聚合物名称 |
与旧版本的区别
- ❌ 移除了 PubChem 后备 - 完全依赖 OPSIN
- ✅ 新增聚合物解析 - 智能识别和解析聚合物
- ✅ 新增连接基团识别 - 自动识别 oxy、thio 等
- ✅ 新增单体提取 - 从复杂名称中提取可解析的部分
- ✅ 更详细的输出 - 包含聚合物结构说明
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