KNIME: 3D構造アライメント

By | 2015年6月10日


今回は、3D構造アライメントを行うワークフローの構築を行います。
ここでは、複数の化合物を1つの参照化合物に対して重ね合わせを行い、そのスコアで順位付けをしています。

KNIME-3Dalign

各ノードの設定方法を説明します。
各ノードを配置、接続した後、ノードをダブルクリックするとConfigureが開き、設定を行うことができます。

化合物の入力

SDFの読み込みには、SDF Readerノードを使います。
File selectionタブでSDFファイルの場所を指定します。
また、ここで入力するSDFにおいては、各分子の1行目に分子IDを記載していますので、Extract molecule nameにチェックをいれ、分子IDを取得しています。

KNIME-3Dalign_02

RDMolに変換

SDFからRDKitのMol形式(RDMol)にRDKit From Moleculeノードを用いて変換します。

KNIME-3Dalign_03

水素付加

RDKit Add Hsを使って、水素原子の付加を行います。

KNIME-3Dalign_04

複数配座の生成

RDKit Add Conformersを使って、複数の配座生成を行います。
Reference columnは、Molecule nameとしており、化合物のユニークなIDとなります。
あとで、化合物とその配座の関係を識別するのに必要となります。
Number of conformersとNumber of tries to generate conformersは、値が大きい程、適切なアライメントを得られる可能性が高くなりますが、その分、計算時間が増大します。

KNIME-3Dalign_05

構造最適化

RDKit Optimize Geometryを使って、構造最適化を実施します。
ここでは、分子力場としてMMFF94Sを選択しています。

KNIME-3Dalign_06

参照化合物の入力

SDFの読み込みには、SDF Readerノードを使います。
File selectionタブでSDFファイルの場所を指定します。
また、ここで入力するSDFにおいては、各分子の1行目に分子IDを記載していますので、Use molecule name as row IDにチェックをいれ、分子IDを行のIDとして利用します。

KNIME-3Dalign_07

3Dアライメント

RDKit Open 3D Alignmentを使って、3D構造アライメントを行います。

KNIME-3Dalign_08

化合物ごとにScoreでソート

Sorterを使って、化合物ごとに、アライメントのスコアでソートを行います。
この操作により、化合物ごとに、最もスコアの高い配座が上位に位置するようになります。

KNIME-3Dalign_09

化合物ごとにベストScoreを抽出

GroupByノードを使って、化合物ごとにスコアの最も高い配座を抽出します。
入力化合物のIDの収められている列(Reference)を使ってグループ化を行います。

KNIME-3Dalign_10

Reference以外の列のAggregationタイプの指定を行います。
ここでは、すべてFirstとします。SorterノードですでにScore順に並んでいるので、Firstを指定することにより、Scoreの最も高い配座を抽出することができます。

KNIME-3Dalign_11

化合物をScoreでソート

事前のノードまでで、化合物ごとにベストなScoreの計算が終わっています。
ここでは、Scorterノードを使って、最終的な化合物の順位付けを行います。

KNIME-3Dalign_12

アライメントされた配座のファイル出力

SDF Writerを使ってアライメントされた配座とすのスコアをSDFで出力します。

KNIME-3Dalign_13

以上で、設定は終わりです。
実行すると、アライメントされたSDFを得ることができます。
以下の図は、参照化合物(黄色)を加えた結果となります。

KNIME-3Dalign_14


利用したソフトウェア:
KNIME 2.11.3