KNIMEで構造検索をしよう
今回は読み込んだsdfの構造式に対して、絞り込みを行う方法を紹介します。
全体像としてはこんな感じ↑です。構造で絞り込む処理をするノードはいくつかありますが、今回はIndigo2のSubstructure Matcherを使います。これは私の単なる好みです。ほとんど同じような設定・使い方のRDKit Molecule Substructure Filterや、描画ツールが立ち上がりながら設定できるCDKのSubstructure Searchなどなど、自分の好みが見つかると良いと思います。
さらに今回はおまけとしてMarvinSketchノード、Table Creatorノード、RowIDノードも盛り込んでいきます。Joinerは過去記事を参考にして下さい。
Substructure Matcher
ノード上側入口▶︎には検索対象のデータを連結します。下側入口▶︎にはクエリとなるデータを連結します。今回のsdfには構造式とCHEMBLID, M.W., ALOGPが入っています。検索したい条件としては、thiophene, pyrazoleが入っています。
それぞれを連結したら設定画面を開きます。
Target columnは上側▶︎由来、Query columnは下側▶︎由来です。sdfカラムを選んで下さい。
- Match:At least→少なくとも何個のクエリ構造を含むか?の意。今回は1個でも持っていればhitとします。All queriesを選べば、すべてのクエリ構造を含むとhitの意。今回これを選ぶと、チオフェンとピラゾールの両方を同時に持つ化合物を探しますよーということになります。
- Append queries row ID column:これにチェックを入れると、hitした構造はクエリ側のどの構造にヒットしたのかを【クエリ側のrowID】で示してくれます。
- Highlight matched structures:これにチェックを入れると、ヒット化合物のうち、該当する部分構造を赤色に変えてくれます。また、ハイライトされた部分構造はAppend columnにチェックを入れることで生成されます。(Highlightにチェックを入れると、Append columnがチェックできるようになります)
このくらいの設定をしたら、apply-OKして実行してみます。
こんな感じです。両方のクエリ構造に一致するものもちゃんと分かるような形になっていますね。キャプチャが小さいですが、今回の例では125 / 4335件のヒットがありました。
ここからはおまけ編です。
MarvinSketch
KNIMEの作業エリアで構造式を描画できるノードです。
まずはOptionsの設定で、構造式を描きます。複数描いても大丈夫です。次にOutput optionsに移ります。Change structure outputにチェックを入れて、typeをSdfCellに変えます。さらに、複数のフラグメントを描いた場合はOutput molecules as separate rowsにチェックを入れておくと便利です。Output as one row...にチェックを入れた場合、複数の分子がひとまとめになってしまうので、自分でバラさないといけなくなります。
ちなみにばらし方は前回の記事を参考にして下さい。
KNIMEでChemdrawファイルを読みたい 〜 Chemical Structures File Reader〜
apply-OKして実行すると次のようになります。
Table Creator
これはKNIME上で、自作のテーブルを作るノードです。いろんな使い方ができます。使用頻度大です!設定画面を開こうとすると、まっさらなtableが開きます。作成したいtableを作ったらapply-OKです。クリック、ダブルクリックなど直感的に使えると思います。今回はこんな感じに化合物名を入れました。
joinerを使って、MarvinSketch・Table Creatorの双方で準備したデータをrowIDをキーにしてくっつけると次のようになります。
RowID
最後にrowIDの加工です。今回は、主役のSubstructure MatcherノードでhitしたクエリのrowIDを活用できることが分かっていたので、このノードを挟んでいます。
New RowID columnはデフォルトでは<none>になっています。そのまま、何も設定を変更せずに実行すると、rowIDが"row0", "row1", "row2"...と再度振り直しになります。また、今回の様に特定のcolumnを指定すると、その内容がrowIDとして上書きされます。さらにRemove selected columnにチェックを入れておくと、rowIDに上書きされると、その役目を終えてカラムが消えます。この設定でapply-OK後、実行すると次の様になります。
これで冒頭に紹介したSubstructure Matcherノードの下側入口▶︎に入れ込むデータになりました。
KNIMEとは関係ないですが、MarvinsketchはChemaxonのサイトからフリーでダウンロードできます。chemdrawは結構高いので、個人でお金をかけずに使うならお勧めできますよ。ちなみにcdxも読めますし、cdxとして書き出すことも可能です。
さて、次回はLEでも計算してみようかなと思います。