KNIMEを用いてのCGBVS計算を行います(後編)

今回は、KNIME上でCGBVSワークフローとその実行の話をさせていただきます。

作業ステップは以下のように分けています。

  1. KNIMEの起動と空きワークフローの作成
  2. 入力化合物構造の読み込み設定
  3. 化合物構造の記述子算出
  4. CGBVS計算の設定
  5. CGBVS計算結果のデータFiltering
  6. CGBVS計算結果をファイルに書き込むまたグラフ作成

それでは、早速始めましょう。

1.KNIMEの起動と空きワークフローの作成

まずは、KNIMEのアイコンをクリックするなどをして、以下の画像のようにKNIMEが起動されます。

KNIMEのスタートウィンドウです。

新しいワークフロー作成するには、メニューの「File」→「New」をクリックします。

出てきたダイアログーボックスで「New KNIME workflow」を選択して「Next」ボタンをクリックします。

次のダイアログボックスでワークフローの名前とその保存場所を指定して「Finish」をクリックします。

以下のように新しいワークフローの空きウィンドウが開かれます。

空きワークフローウィンドウです。

2.入力化合物構造の読み込み設定

SDF入力ファイルを読み込むため、以下のNode Repositoryで「SDF Reader」と言うnodeをクリックしてワークフローウィンドウまでドラッグします。新しく設置したnodeはまだ設定が出来ていないためビックリマークが出ています。また、nodeの下に赤信号のようなマークも出ています。

SDF Reader nodeをクリックドラッグします。

SDF Reader nodeをダブルクリックして設定ウィンドウが開きます。以下の画像のように入力ファイルの場所などを設定して「OK」をクリックします。「Extract SDF Blocks」の項目は構造情報を取り出すことですので、必ずクリックしてください。

入力の場所を指定して、上のようにボックスを設定を行います。

設定は問題なければ、赤信号のマークは黄色信号に変わります。実際にファイルを読み込むにはnodeを右クリックしてコンテキストメニューで「Execute」をクリックします。Nodeは問題なく動作した場合、黄色信号は緑(青?)信号に変わります。

SDF Reader nodeを実行する方法です。

3.化合物構造の記述子算出

次のステップはSDFからDragon記述子を作成する計算です。SDF Reader nodeのようにNode Repositoryから「Dragon 7.0 Descriptors」 nodeをワークフローウィンドウまでクリックドラッグします。

Dragon 7.0 Descriptors nodeをクリックドラッグします。

SDF Reader nodeの出力ポート(nodeの右側の上の三角)をDragon7の入力ポート(Dragon7 nodeの左側の三角)に繋ぎます。繋ぎ方としては、SDF Reader nodeの出力ポートからDragon7 nodeの入力ポートまでクリックドラッグします。以下の動画を参考にしてください。

Nodeの繋ぎ方

Nodeを線で繋いだことでSDF reader nodeの出力データは直接Dragon7 nodeの入力ポートに入り、処理されます。次はその処理の設定を行いますのでDragon7 nodeをダブルクリックします。開いたダイアログボックスで以下の図のように最初の設定を行います。

入力ファイルの設定を行います。

計算できる記述子が多くありますが、CGBVS計算で使用する記述子ブロックのみ選択します。「Descriptors」のタブをクリックしてから「Deselect all blocks」のボタンをクリックします。全部のブロックから「✓」を外した後、ブロック1、2、4、5、8、10、11,22、23、24、28を選択します。

CGBVSで使用する記述子ブロックを選択します。

記述子計算の条件を設定する必要がありますので、「Calculation」のタブをクリックして、以下の図のように設定を行います。

計算設定を行います。

設定が終わったら、Dragon7 nodeを実行させます。信号マークが緑色に変わったら、計算処理の結果が確認できます。Dragon7 nodeを右クリックして、コンテキストメニューの一番したにある「Calculated descriptors」の項目をクリックします。出てきた、ポップアップウィンドウでは計算の結果が表示されます。確認が終わったらウィンドウを閉じます。

計算処理の結果を確認するための操作
記述子計算の結果です。

4.CGBVS計算の設定

前のステップでは、化合物の記述子を計算することができましたが、こちらではCGBVS計算を行います。CGBVSの専用nodeはありませんので、その代わりに「External Tool (Labs)」nodeを使用します。

External Tool (Labs) nodeをワークフローウィンドウにドラッグしてDragon7 nodeと繋ぎます。

External Tool (Labs) nodeをDragon 7.0 Descriptors nodeに繋ぎます。

External Tool (Labs) nodeでCGBVS計算ができるように必要な設定を行います。開いた設定ウィンドウでは「External Tool」タブをクリックして、「Command line」のボックスに以下のようなコードを記入します。

bin/bash -c "/full/path/to/cgbvs predict /full/path/to/prediction/model/std_trans.db SC5A2_HUMAN %inFile% > %outFile%"

上記のコードはパースの設定が自分のシステムに合うように内容を変えてください。以下はのコードの説明となります。

  • cgbvs → cgbvsの実行ファイルです
  • predict → cgbvsスコアを計算するサブコマンドです
  • std_trans.db → Transporterを対象するモデルDBです(実際にはGPCR、Kinaseなどの他のDBファイルもあります)
  • SCA5_HUMAN → 今回のため設定しましたタンパク名です
  • %inFile% → 入力ファイルのプレースホルダーです
  • %outFile% → 出力ファイルのプレースホルダーです
CGBVSコマンドの設定を行います。

次は、「Input File」のタブをクリックして入力ファイルについて設定を行います。以下の図のように、「Exclude」のボックスに「Name」項目のみ移動します。他のパラメターも表示どおり設定してください。

入力ファイルの設定を行います。

「Output File」の設定では、以下のような設定ですが、必ずCSVのボタンをクリックしてください。設定が完成しましたら「OK」ボタンをクリックしてください。

出力ファイルの設定を行います。

いつもの方法でnodeを実行してください。問題なければ、次のステップに進みます。

5.CGBVS計算結果のデータFiltering

前のステップで、CGBVSの計算を行いましたが、結果データには要らない部分が含まれているため、Filteringが必要となります。「Colum Filter」 nodeを使うことで要らないデータを省き化合物IDとCGBVSスコアのみ残すことが出来ます。
Node repositoryからColumn Filter nodeをワークフローウィンドウまでドラッグし、External Tool nodeに繋ぎます。

Column Filter nodeをクリックドラッグします。

Nodeをダブルクリックして設定ウィンドウが開きます。「Include」ボックスのなかに「NAME」とタンパクの名前のみ入れます。この例では、タンパクの名前は「SC5A2_HUMAN」になっています。「OK」ボタンをクリックしてください。その後、nodeを実行させます。

要らない項目を「Exlude」に移動して省きます。

nodeのコンテキストメニューで「Filtered table」を選択してFilteringの結果を確認します。

Filteringの結果を確認します。

6.CGBVS計算結果をファイルに書き込むまたグラフ作成

ここのステップはCGBVS計算の結果ファイルに保存するために行います。このファイルは別のワークフローで使うことができます。ここでは、データをファイルに保存するするステップだけではなく、並行で、例えば、データからグラフを作成することもできます。

先ず、「CSV Writer」 nodeをワークフローウィンドウにドラッグしてColumn Filter nodeと繋ぎます。CSV Writer nodeをダブルクリックして設定を行います。最初に開くタブ、「Settings」では結果ファイルを保存するパースを指定します。また、「Write column header」のチェックボックスにチェックを入れます

出力ファイルを指定します。

「Advanced」タブでは、「LF line endings (Linux/Unix style)」をクリックします。

Line Endingsの枠で「LF line endings (Linux/Unix style)」を選択します。

「Quotes」タブでは「Quote Mode」の枠で「never」をクリックします

Quote Modeを「never」に設定します。

最後に、「Encoding」タブで「UTF-8」を選択します。「OK」ボタンをクリックします。

ファイル encodingは「UTF-8」に設定します。

CSV writer nodeを実行して、保存ファイルの中身を確認します。

先に述べたように、計算結果のデータからグラフを作成することができます。そのためには「Histogram」nodeを使います。そのnodeを設置して、「Column Filter」nodeに繋ぎます。Histogram nodeの設定ウィンドウは以下になりますが、今回のデータの場合はdefaultの設定のままで使います。

設定の変更は必要ありません。

Nodeを実行し、コンテキストメニューで「View: Histogram view」を選択してグラフを表示します。Histogram viewでは「Column/Aggregation Settings」タブで「Average」をクリックすればそれぞれの化合物のCGBVSスコアを比較できます。基本的にCGBVSのスコアは0~1の値になります。0.5以上のスコアはpositive結果として判定されます。

上のグラフの表示でCGBVSのスコアを比較できます。

完成しましたワークフローは以下になります。一つの豆知識ですが、ワークフローのなかで少なくても1個のnodeの設定を変更したら、全体を再実行する必要がありますが、一番最後のnodeだけ実行すれば他のnodeも自動的に実行されます。ただし、並列に繋がっているnodeがあれば、それだけのnodeを個別に実行する必要があります。例えば、以下の図でCSV WriterとHistogram nodeを別々で実行する必要があります。

完成したワークフローです。

これでKNIMEを使用するCGBVS計算のワークフローが完成です。

最後までお読み頂きありがとうございます。