按任务学习
按 ECFP4 相似度排序已验证的 SMILES 库
将一个查询分子与本地已验证列表比较,并保留最高的 Tanimoto 分数。
完成内容
保留查询、候选 SMILES、ECFP4 方法和分数的可重复高分命中列表。
步骤
- 先验证库,确保分数仍可对应输入行。
- 设置查询分子和候选 SMILES 列表。
- 运行一对多 ECFP4 Tanimoto 评分,按降序排序,并与输入一起保留。
import chematic
import numpy as np
query = "CC(=O)OC1=CC=CC=C1C(=O)O"
library = ["O=C(O)c1ccccc1O", "CCO", "c1ccccc1"] # 已验证 SMILES
scores = chematic.bulk.tanimoto_search(query, library)
for index in np.argsort(scores)[::-1][:3]:
i = int(index)
print(library[i], f"{float(scores[i]):.3f}")预期结果
候选会按 ECFP4 Tanimoto 分数降序输出。对同一查询和已验证库重复运行得到同一排序。
遇到问题时
bulk.tanimoto_search 会跳过无效库条目,因此在完成验证前,不应使用其数组位置标识原始数据行。相似度不是活性、安全性或合成可行性的证据。