・KNIMEの使い方は様々にあるが、そのうちで特に発達している利用法の1つにケモインフォマティクスがある。化学情報学や計算化学と日本語訳される学問で、化学物質の性質を情報学の観点から表現・解析・予測する学問らしい。せっかくKNIMEを扱っているので、ケモインフォマティクスを少し齧ってみたいと考えた。
・前準備として、まずデータセットをダウンロードした。今回は、MoleculeNetから、化合物のデータセットを借りた(詳細は下記リンクを参照)。
・siderというデータセットがサイズ的に扱いやすそうだったので落とし、解凍したところ、csvファイルだったので、とりあえずfile readerノードで読み込んでみた(下図)。
・SMILESは構造情報で、各項目は標的臓器などを表しているらしい。分類問題のお試し用データセットだが、今回は分類問題を解くことが目的ではない。
・また、化合物情報を扱う前準備として、Chemistry、CDK、RDkitのExtensionは最低限入れておいた方が良いらしい。
・現在、構造情報であるsmilesが、文字列(String)として認識されているので、これを構造情報の型(SMILES)と認識させる必要がある。そこで、molecular type castノードを実行すると、構造情報として認識された(下図)。
・これだけだとつまらないので、構造式を描画させてみる。構造情報列の列名を右クリックして、Available RenderesからRDkit 2D descriptionを選択する(下図)。
・セルの大きさに合わせて表示されるので、セルを大きくしないと構造がつぶれてしまうが、一応描画された。
・例えば、相同性をざっくり見たければ、Fingerprintを算出し、tanimoto係数を求めればよい(下図)。
・これを使ってクラスタリングしたければ、Distance Matrix Calcurationノード(tanimotoを選択)で距離を算出する(下図)。その先の解析は、Hierarchical Clusteringノードとかk-medoidsノードとかにくっつけても良い。
・今回の教訓は、何も考えずにデータを放り込むと、私のメモリ4GのPCは一瞬で固まるということ。
終わり。