課題別チュートリアル
SMARTSパターンでSMILESライブラリを絞り込む
ローカルのSMILESリストから官能基パターンを検索し、一致したSMILESを入力順で残します。
作るもの
明示したSMARTSクエリに対する、再現可能なローカルヒット一覧。
手順
- SMARTSパターンとローカルSMILESリストを用意します。
- 並列パターン検索を1回実行します。
- 結果を解釈する前に、パターン、入力の版、一致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になるため、不一致と区別できません。陰性結果を説明する必要があるときは、先に入力データを検査します。