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

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

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

【KNIME】小ネタ:変数受け渡しに使う"赤線"の活用法

前回の記事の最後に、こんなキャプチャを載せました。

f:id:sumtat:20170812235908p:plain

 ●ー●の繋がりは、基本的には変数の受け渡しを行うためのものです。上記の例だと、Table Row to Variableで日付データを変数として、Excel Writerに渡す部分だけあれば目的は達成できるはずなんですよね。解説にもそう書きました。

 では、最初のExcel ReaderとTime Generatorを赤線で繋ぐことに、何かadvantageがあるんでしょうか?

 

…無いのにわざわざ話題にしないですよね。はい、いいことあります。

結論を言うと、

workflowの動きをコントロールできる

ということです。

 

では例を挙げて紹介します。

続きを読む

【超入門】KNIMEで変数を使うには 〜今日の日付をエクセルのシート名にして書き出してみよう〜

 今回*1は変数*2の使い方について、基本的な部分を書いてみようと思います。あまり馴染みのない方もいらっしゃるかもしれませんが、

くらいに幅が広がると思います。

(さらにループ処理ができればルーラですかね。それはまた別の機会にしましょう)

 

題材として、

【作業(stock:noを取ってくる)をしている日付を、書き出すエクセルのシート名にする】

ということをしてみようと思います。 

f:id:sumtat:20170812221019p:plain

*1:記事の作成日は2017/08/12です

*2:変数について書かれている記事はweb上にたっぷりあるので、好みのものを探して読んでみるのが1番いいと思いますが、"状況により変わる数(データ)"のことです。

 例えば今回の記事では【変数="本日の日付グループご担当者様"】みたいな感じでしょうか?今日の時点では【"2017/08/12さん"が実際の担当者=実際の変数の値】みたいな感じです。明日の担当者は"2017/08/13さん"になるし、その後も変わっていく数ですよね。

*場合によっては変数といいながらも内容が変わらないこともあります。"変わることができる数"といったほうが適当かもしれません

続きを読む

【KNIME】ノード紹介:Nominal Value Row Filter 〜欲しいカテゴリのrowを抽出したい〜

お盆休みですね。まったりと更新してきます。

 

 さて、行(row)の抽出のために使うrow filterやrow splitterには結構色々な種類があります。これまでの記事では

なんかを紹介しました。個人的には上記のsplitter2つをよく使います。

今回はより一段とお手軽な設定で、欲しいカテゴリのデータを抽出するときに活用できそうなノードを紹介します。

 

例題としては、

f:id:sumtat:20170811222111p:plain上記のようなテーブルから、"犬と猿"のデータを取ってこようと思います。

続きを読む

【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は過去記事を参考にして下さい。

続きを読む