有了 SMILES CSV,就可以为每个结构计算分子式和分子量。在同一行保留化合物 ID 与原始 SMILES,便于将结果合并回工作表。

一则关于从 Excel 或 CSV 列表生成分子式的公开提问描述了这个任务。下面用五个化合物示例,在自己的设备上生成 formula-report.csv。

将 CSV 和脚本放在同一文件夹

下载 compounds.csv 和 formula_csv.py。输入包含三列:

source_id,name,smiles
CMP001,acetic acid,CC(=O)O
CMP002,ethanol,CCO
CMP003,aspirin,CC(=O)Oc1ccccc1C(=O)O

示例还包含乙酸乙酯和醋酸钠。使用自己的表格时,在 source_id 中填写每行唯一的管理用 ID,在 smiles 中填写结构。可选的 name 列用于显示名称。

计算分子式和分子量

在该文件夹中打开终端。macOS 或 Linux 可以运行:

python3 -m venv .venv
.venv/bin/python -m pip install "chematic==1.1.2"
.venv/bin/python formula_csv.py compounds.csv

请在已安装 Python 的环境中执行;本例在 macOS arm64 上使用 Python 3.13.6 核对。Windows 用户将第一行改为 py -m venv .venv,并将 .venv/bin/python 替换为 .\.venv\Scripts\python.exe。安装软件包后,文件读取和计算都在本机进行。

脚本为每个 SMILES 计算 mol.formula 和 mol.mw。输出保留 source_id 与原始 smiles,并添加 formula、mw_g_mol、处理状态和引擎版本。

将结果合并回工作表

下面的结果已用公开 Python 包 v1.1.2 核对。mol.mw 的实现使用平均原子质量计算;CSV 将对应的摩尔质量以 g/mol 为单位记录,保留两位小数。

source_id  formula    mw_g_mol
CMP001     C2H4O2     60.05
CMP002     C2H6O      46.07
CMP003     C9H8O4     180.16
CMP004     C4H8O2     88.11
CMP005     C2H3NaO2   82.03

醋酸钠的结果包含输入中的钠。如果要统一盐的处理方式,可以结合记录标准化设置的步骤使用。

打开输出 CSV 示例,按 source_id 将结果列合并回原表。status=ok 表示已完成计算;对于 status=review,请结合 error 列检查原始 SMILES。测试使用的包与检查项目见执行记录。