按任务学习

使用 SMARTS 模式筛选 SMILES 库

在本地 SMILES 列表中筛选官能团模式,并按输入顺序保留匹配结果。

完成内容

针对一个明确 SMARTS 查询的可复现本地命中列表。

步骤

  1. 选择 SMARTS 模式和本地 SMILES 列表。
  2. 运行一次并行模式筛选。
  3. 在解读命中列表前,将模式、输入版本和匹配 SMILES 一起写出。
import chematic

smiles = ["CC(=O)O", "CCO", "O=C(O)c1ccccc1O"]
pattern = "[CX3](=O)[OX2H1]"  # 羧酸
matches = chematic.bulk.substructure_search(pattern, smiles)
hits = [smiles[i] for i, matched in enumerate(matches) if matched]
print(hits)

预期结果

匹配的 SMILES 按照输入原始顺序返回。这里的模式匹配乙酸和水杨酸,但不匹配乙醇。

遇到问题时

此筛选 API 会为无效 SMILES 返回 False,因此无法与未匹配区分。需要解释阴性结果时,请先验证输入数据。

下一步

阅读 Python 工作流