課題別チュートリアル

SMARTSパターンでSMILESライブラリを絞り込む

ローカルのSMILESリストから官能基パターンを検索し、一致したSMILESを入力順で残します。

作るもの

明示したSMARTSクエリに対する、再現可能なローカルヒット一覧。

手順

  1. SMARTSパターンとローカルSMILESリストを用意します。
  2. 並列パターン検索を1回実行します。
  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ワークフローを見る