非プログラマーのためのインフォマティクス入門。(仮)

非プログラマーがインフォマティクスについて勉強したことを記録します。主にKNIMEというソフトを使用しています。

【メドケム】KNIMEでリガンド効率を計算するよ 〜言い換えれば、ただの四則演算〜

 今回は四則演算の題材としてLE(Ligand Efficiency, リガンド効率)の計算をしてみます。もはや説明の必要もないかもしれませんが、ざっくりと言えば、

"水素以外の原子1つ1つが、どのくらい頑張って活性に貢献してるの?"

みたいな感じでしょうか。ずいぶん前に提唱された指標ですが、わかりやすいし私は嫌いじゃないです。

 

定義式としては

非水素原子数(HA)あたりの結合のギブス自由エネルギー

f:id:sumtat:20170807222426p:plain

です。

 

ギブズエネルギーと平衡定数(解離定数)関係式

f:id:sumtat:20170807222927p:plain

と組み合わせて、単位の変換と定数部分の計算をすると

f:id:sumtat:20170807223015p:plain

こんな感じになります。

途中の変換はさておき、

pIC50に1.36掛けて、重原子数でわればOK

ということです。逆に読むと、もしLEが0.45くらいなら、重原子3個で10倍の活性増減に繋がるということですね。

 

ポイントは

  1. 重原子数を計算すること
  2. 四則演算ができること

です。それではKNIMEのworkflowを書いてみます。

f:id:sumtat:20170807225007p:plain

 全体としてはこんな感じです。まずsdfを読みます。データの内容としては構造情報と何かしらのIC50値(μM)が入っているとします(例は、CHEMBLでとってきたアミノキナゾリンにランダムで数字をつけただけです)。構造情報から重原子数を計算します。

 

Molecule Properties

 今回はIndigo2のMolecule Propertiesノードを使いました。他にもRDKitやCDKにも記述子を計算するノードがありますので、用途・使い勝手に合わせて選択してください。

設定画面は次のようになります。

f:id:sumtat:20170807225906p:plain

 計算したいものを緑枠内に指定するだけです。実行すると"Number of heavy atoms"というカラムが増えて、ちゃんと重原子数を数えてくれています。

f:id:sumtat:20170807230133p:plain

それでは続けて、LEを計算していきます。

Math Formula

いろいろな計算ができるノードです。四則演算だけではないですよ!

f:id:sumtat:20170807230524p:plain

 Functionの中に、実施可能な計算方法がたくさん用意してあります。探してダブルクリックすると、ある程度Expressionに勝手に記述されるので微調整してください。もちろん慣れれば全て手入力でも構いません。

 まずはIC50値(今回はμM)をpIC50(対数)に変換しました。結果は新たにpIC50という名前のカラムとして吐き出しますので、"Append Column"を選択してカラム名を指定しました。もし、どこかのカラムの内容を計算後のものに書き換えたいならばReplace Columnをチェックして、プルダウンから所望のカラムを選んでください。

 

f:id:sumtat:20170807231030p:plain

 続けてLEの計算をします。1つ前で算出した pIC50に係数を掛けて、重原子数で割ります。結果は "LE"というカラム名で出力します。実行結果を見てみましょう。

f:id:sumtat:20170807231228p:plain

 LEを求めることができました!

 

 ここで1つ紹介です。カラム名の上で右クリックするとキャプチャのようなメニューが表示されます(気づいてました?)。色々選んで遊ぶのが一番なのですが、例として"Full Precision"を選んでみます。

f:id:sumtat:20170807231510p:plain

 実は、計算結果は丸めらてないんですね。table表示のデフォルトの設定で丸めて見せてくれているだけです。ですので、お好みにもよりますが、小数を丸める作業をするためのノードをおまけとして紹介します。

 

Round Double

 端数処理を行うノードです。設定画面を簡単に説明します。

f:id:sumtat:20170807232217p:plain

 まずは、端数処理を行いたいカラムを緑枠内に指定します。処理前・後の両方を残したい場合はAppend as new columns (specify suffix)にチェックを入れてください。処理後のカラム名につける接頭字を指定できます。Precisionで桁数を指定できます。Precision modeではDesimal places(小数n位にする)とSignificant figures(有効数字n桁)を選べます。また切り捨て・切り上げ・四捨五入などはRounding modeで設定可能です。

 

 いかがでしたか?自分でフローにしなくても、sdfを指定すればポンポンのポーンで勝手に計算してくれるようなツールは沢山あるとは思いますが、自分で計算しても大した手間ではないです。

 たくさんの記述子を計算できるので(私にはよくわからないのもある)、いろいろ試してみたり、掛けたり割ったりしてみてはいかがでしょうか?