按任务学习

用 Python 从 SMILES 写出 SDF 记录

创建本地 SDF 结构记录,并将结构名和精确源 SMILES 保留为 SD 数据。

完成内容

一个 ethanol.sdf 文件,包含乙醇结构、自动生成的二维坐标、记录名称和 source_smiles 字段。

步骤

  1. 在本地解析一个完整 SMILES,并设置人类可读的记录名称。
  2. 写文件前将精确源 SMILES 存为 SD 属性。
  3. 用 SDWriter 写出一条 SDF 记录,然后检查文件头、属性块和记录终止符。
import chematic

smiles = "CCO"
mol = chematic.from_smiles(smiles)
mol.SetProp("_Name", "ethanol")
mol.SetProp("source_smiles", smiles)

with chematic.SDWriter("ethanol.sdf") as writer:
    writer.write(mol)

print({"input_smiles": smiles, "file": "ethanol.sdf"})

预期结果

ethanol.sdf 会作为名为 ethanol 的 V2000 SDF 记录打开。SD 数据包含值为 CCO 的 source_smiles,记录以 $$$$ 结束。

遇到问题时

写出文件前先修正解析错误。该 writer 生成的是结构记录和二维坐标,不能证明化学身份、立体化学意图、材料来源、安全性或实验有效性。批量转换时请保留原始文件。

下一步

在本地检查 SDF 和 CSV 文件