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

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

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

【KNIME】ノード紹介:Missing Value 〜欠損値を処理しよう〜

 今回は欠損値の処理に使えるノードを紹介します。ざっくりといえばテーブルの空っぽの部分をどうするかということです。

 KNIME(3.3以上)のテーブル表示では、欠損値は?で表示されます(3.2以前は?です。黒色のはてななので、欠損値なのか本物の?なのかちょっとわかりにくので注意)。こういう空っぽのデータがあると、統計解析などの際に不具合です。欠損値を持つデータを除く対応もあると思いますし、何かしらの固定値等で埋めてしまうなどの対応もあると思います。

 主に、そんなときに使えるのがMissing Valueノードです。例として次のようなデータを読んで欠損値処理をしてみます。

f:id:sumtat:20170809220941p:plain

 おぅ。セルの結合が含まれてますね…。解析するときに、これ邪魔です。Missing Valueノードを使って、これもうまく処理しちゃいましょう!

 

続きを読む

【KNIME】ノード紹介:concatenate 〜複数のテーブルをとにかく纏める〜

今回は時間がうまく作れなかったので、短めの記事です。でも活用頻度は大のノードを紹介します。

 

Concatenate

 名前の通り、連結するノードです。極力余計なことはしないで、複数のデータを"縦方向に"連結します。キャプチャを見た方が早いと思うので、貼ります↓。

f:id:sumtat:20170809033425p:plain

 入力側の2つのテーブルには"name", "maker", "price"の共通するカラムがあります(属性も一致)。カラム名が同じものは、同じところに並べてくれます。一方で"status", "amount"はそれぞれ片方にしかありません。このようなカラムもとにかく連結してくれます。データのない部分は欠損値になります。

 設定画面で、両者に共通のカラムだけ残すという指定もできますが、何も考えず繋げてGoでいいかな?と思いますよ!

続きを読む

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

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

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

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

 

定義式としては

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

f:id:sumtat:20170807222426p:plain

です。

続きを読む

KNIMEで構造検索をしよう

 今回は読み込んだsdfの構造式に対して、絞り込みを行う方法を紹介します。

 

f:id:sumtat:20170803232503p:plain

 

 全体像としてはこんな感じ↑です。構造で絞り込む処理をするノードはいくつかありますが、今回はIndigo2のSubstructure Matcherを使います。これは私の単なる好みです。ほとんど同じような設定・使い方のRDKit Molecule Substructure Filterや、描画ツールが立ち上がりながら設定できるCDKのSubstructure Searchなどなど、自分の好みが見つかると良いと思います。

 さらに今回はおまけとしてMarvinSketchノード、Table Creatorノード、RowIDノードも盛り込んでいきます。Joinerは過去記事を参考にして下さい。

続きを読む

【KNIME】ノード紹介:Value Counter 〜重複データを探せ〜

 今回は指定したカラムの中に重複するデータがあるのか無いのか簡単に分かるノードValue Counterを紹介します。繋ぐだけの簡単ノードなので、おまけ活用例もあわせて紹介しますね。

 それでは、webに転がっていたデータを一部改変したものを使って進めていきます。

f:id:sumtat:20170805221129p:plain

名前と連絡先が入ってますね。この中から連絡先に重複があるかどうか確認します。

続きを読む

【KNIME】ノード紹介:Regex Split 〜文字列を分割したい part 2〜

 以前に"区切り文字(列)を指定して、文字列を分割するノード"であるcell splitterについて紹介しました。

【KNIME】ノード紹介:cell splitter 〜文字列を分割したい〜

今回は、これの第二弾です!。前回のColumn Rename (Regex)を紹介記事を書きながら、セットで紹介しようと思ったのがRegex Splitノードです。

 

Regex Split

 正規表現を活用しながら、文字列を分割するノードです。

f:id:sumtat:20170804213009p:plain

 いつかの例を紹介してみます。

 

続きを読む

【KNIME】ノード紹介:Column Rename 〜カラム名を変更したい〜

 今回はカラム名を変えたいときにどうするか?というお話です。後から気が変わったり、KNIMEの仕様で勝手にカラム名を決められたり、様々な理由で変更したくなるタイミングがあると思います。下の例を参考にして、操作の方法を紹介します。

f:id:sumtat:20170731180014p:plain

*このテーブルができるまでの流れについては

【KNIME】ノード紹介:Transpose, Pivoting 〜表(table)の縦と横(行と列)を入れ替えたい〜

をご覧下さい。

 

Column Rename

もう、本当に名前のままのノードがあります。早速設定の内容をみちゃいましょうね。

f:id:sumtat:20170802161438p:plain

 特に難しいところはないと思います。Column Renameの入口▶︎に、カラム名を変えたいデータを繋いで、設定画面を開きます(ダブルクリック or configure...) 。画面左側に、流れてきたデータのカラム名が表示されているので、変更したいものをダブルクリックして下さい。最初は空欄だった右側に設定画面が増えます(左のリストは太字になります)。新しく右側に出た画面のChangeにチェックをいれて、新しいカラム名を入力します。また同時に、カラムの属性もプルダウンで指定可能です。

 apply-OKして実行すると次のようになります。

f:id:sumtat:20170802161956p:plain

 ばっちりですね。これだけだとおもしろくないので、"正規表現を使ってカラム名を変更する"方法についても紹介したいと思います。

続きを読む