按任务学习
使用 SMARTS 模式筛选 SMILES 库
在本地 SMILES 列表中筛选官能团模式,并按输入顺序保留匹配结果。
完成内容
针对一个明确 SMARTS 查询的可复现本地命中列表。
步骤
- 选择 SMARTS 模式和本地 SMILES 列表。
- 运行一次并行模式筛选。
- 在解读命中列表前,将模式、输入版本和匹配 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,因此无法与未匹配区分。需要解释阴性结果时,请先验证输入数据。