見出し画像

【JChem】ChemAxon/Infocomノード群を使ってみよう_08_構造検索編

【ノーコードで部分構造検索】

TeachOpenCADD-KNIMEでは部分構造検索において、既存のフィルターもしくはSMARTS形式でリストを作成して検索条件を定義していました。

一方で、創薬化学者が化合物データベースを検索する際には、化学構造式でQueryを作成するのが一般的だと思います。周りに訊いてみましたが、SMARTSを自在に書ける人は10人に1人もいなかったです。

今回は、Marvinを活用して、KNIMEでも化学構造式でQueryを作成してみます。言うなればSMARTSも使わない、ノーコードでの部分構造検索です。

【Marvin Sketchノードについて】

KNIMEへの導入方法は前に紹介しました。

ChemAxon社がトライアルライセンスの期限を設けたことで、新たなユーザーさんは増えにくくなったかもと1人のファンとして心配しています。プラットフォーム戦略から転換を図っているのでしょうか。
KNIME社はスケッチャーとしてKecherを推し始めていますね。

This component is intended to replace the MarvinSketch node, which is no longer openly available from the December 2020 release on. It is based on the Molecule Widget node, which uses the Ketcher web-based chemical structure editor.

https://lifescience.opensource.epam.com/ketcher/

大きな転換点になるかもしれないです。

Marvin / JChemノード群の便利さ自体は変わりませんので、今後も都度紹介していきます。


【体験環境】

これまで紹介してきたTeachOpenCADD-KNIMEのW3を利用します。

下図のようにW3のメタノードの上のポートにMarvin SketchとRDKit Molecule Substructure Filterの2つを繋ぎます。

画像1

RDKit Molecule Substructure Filterについては上記記事を参照ください。

下図の部分を転用しています。

画像2

今回はMarvin Sketchノードが上のworkflowの左3つのノードの代わりとなります。


【Marvin Sketchで検索式作成】

Marvin Sketchノードをダブルクリックすると、ちょっと不安になるくらい待ってから下記のウィンドウが開くと思います。

画像3

構造式の一般的な書き方は下記のサイトが詳しいです。

今回の体験では、BRENKフィルターでは除去されてしまう、含ヨウ素化合物のうち、ヨウ化アリール基は薬になりうると考えて救済してみようと思います。
<参考> BRENKらの忌避化合物リストについて

A) 画面下のベンゼン環アイコンをクリック後、描画画面上でクリック。

画像4

B) ウィンドウ右下の「I」を選択後、ヨウ素を結合させたい位置へカーソルを動かす。
環の炭素上へカーソルを合わせながらSHIFTキーを押すと自動的に結合した構造式となる。クリックで決定。
文章でうまく伝えきれなくてすみません。便利なのでやってみてください。
どうにもわからなかったらtwitterにDMください。

画像5

画像6

C) 次が分かりにくいが重要です。芳香環の結合様式を「Aromatic」に変換します。
これをしないと正しくヒットしないです。

まず、ウィンドウ左上の
Selectionの方法を選ぶアイコンをクリック、Rectangle Selectionにします。

画像7


SHIFTキーを押しながら、ベンゼン環の6つの結合部分を順にクリックして6つとも選択した状態にする。

画像8

6つのボンドをすべて選びます

画像9

上図の状態で、ウィンドウ左上のBondの状態を設定するアイコン(▼マーク)をクリックすると結合様式を選択できる

画像10

「Aromatic」を選択する。

画像11

D) ウィンドウ下の「OK」をクリックして設定完了

画像12

以上で構造式でのQuery作成は完了です。

次は出力の設定です。
Marvin Sketchノードをダブルクリックして下記のOutput optionsタブを開いて下さい。
Structure typeをSmartsCellにして、「OK」でウィンドウを閉じます。

画像13

以上で設定が完了しました。


結果:

画像14

そのまんまなんですが、データ形式はSMARTSになっています。
そこで表示を変えてみます。
カラム名”Molecule”で右クリック、出てきたメニューからStringを選ぶと下図のようにSMARTSで表示されます。

画像15


【RDKit Molecule Substructure Filter】

特別な設定は何もしないので、下図の通りです。

画像16

結果:

画像17

目的の部分構造検索が達成されていることが確認できます。


【複数フラグメントでの検索】

Marvin Sketchノードで複数の検索式を併記しておくと、Output optionsタブの設定でAND検索かOR検索のどちらかを選べます。
今回は2つのQuery構造を入力し、そのどちらかがヒットしたらよいというOR検索をしてみます。

設定例:

先ほど設定したMarvin Sketchノードを開いて、
Insert > Groups…を選択

画像18

Insert Abbreviation Groupウィンドウが開くので、下図のようにテキストで”NO”と打ち込むと絞り込みされた結果が出るので、NO2を選択して「Close」

画像19

構造描画画面でクリックして、ニトロ基をQueryに加えました。

画像20

Output optionsタブを開いて、AND/OR検索を選択します。Output molecules as separate rowsに設定を変えましたので、OR検索となります。

画像21


結果:RDKit Molecule Substructure Filterの検索を再実行した結果を以下に一部抜粋して示します。

画像22

どちらかの部分構造さえ持てばヒットするので、他の問題構造を持っていてもヒットしてしまうのが難しいところですね。これは仕様上やむを得ないので、多段階でフィルターするなど、他の方法で解決する必要があります。

部分構造検索機能だけでも、いろいろと考えないといけないことがありますね。今回は構造式でのQuery作成体験が主目的なので、ここまでとさせていただきます。


記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。