課題別チュートリアル
検査済みSMILESライブラリをECFP4類似度で並べ替える
1つの検索分子を検査済みのローカルリストと比較し、最も高いTanimotoスコアを残します。
作るもの
検索分子、候補SMILES、ECFP4の手法、スコアを残す再現可能な上位ヒット一覧。
手順
- スコアと入力行の対応を保つため、先にライブラリを検査します。
- 検索分子と候補SMILESのリストを用意します。
- ECFP4の1対多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は無効なライブラリ要素をスキップするため、検査前の生データでは配列位置を元の行番号に対応づけられません。類似度は活性、安全性、合成可能性の証拠ではありません。