こんばんは,@PKです.
前回のブログではKNIME Workflowによる実験データ処理について,「データの読み込み」部分のお話をしました.
www.t-kahi.com
データを読み込むためには,実験デザインの時から意識してデータを加工しやすい表記にしておくことを紹介しました.
下記に,KNIME Workflow全体を示しています. 今回は,後半部分の数字データの処理の仕方について,ご紹介したいと思います.
数字データの処理について
前回のブログの最後にこのようなデータをお示ししました.
今回のデータは,化合物処理群(Compound),無処理(blank),ポジコン(positive control)に対して,それぞれの刺激を加えた際の測定データ(results)という設定にしました.
今回は,
- 化合物,ポジコンの数値からブランクのデータを引き算する
- ポジコンの数値で化合物の数値を割って,相対値を算出する
という数字データ処理を行います.
このような数値データの解析では「Rule Engine」と「Math Formula」ノードを使用します.
それぞれのノードの詳細な使い方は下記を参考にしてください.
nodepit.comnodepit.com
作業の流れとしては,「Rule Engineで計算に使用する列(ブランク,ポジコン)を抜き出し新たなカラムを作成」し,「Math Formulaでそれらのカラムを使って計算を行う」となります.
計算に使用する列をRule Engineで抜き出すことに慣れれば,KNIMEを使って簡単な計算ができるようになります.
それぞれのノードで行う処理としては以下のようになっています.
まず,「Rule Engine」でブランクの列を抜き出します.
やり方は非常に簡単で,sample列に"blank"という文字が含まれている場合だけ,resultsの数値を返しなさい,ということを以下のように記入します.
$sample$ = "blank" => $results$
append columnにチェックを入れて,「blank_results」というカラムを作成します.
結果,上右表のように,「blank_results」というカラムにブランク列の数値データを入れることができました.
同様の操作を,ポジコンについても行います.
$sample$ = "positive control" => $results$
上右表のように,「agonist_results」というカラムにポジコン列の数値データを入れることができました.
後は,「Math Formula」で計算していきます. 「Math Formula」ではカラムの平均値等を簡単に出すことができるので,以下のように入力をします.
($results$ - COL_MEAN($blank_results$))/(COL_MEAN($agonist_results$)- COL_MEAN($blank_results$))
あとはノードを実行するだけで,以下のように計算結果の新しいカラムが作成されました.
おまけ(KNIMEでグラフ表示)
計算した後は,そのままExcelやSpotfire形式で保存してデータを解析すればいいと思うのですが,今回はKNIME上でそのままグラフ化してみました.
KNIMEはそこまで可視化が特異ではないので,濃度の列とサンプルの列を「Column Combiner」でくっつけた新しいカラムを作成しました(本当はやりたくない…)
「Bar Chart」ノードで数字データの平均値を表示させると,以下のようになります.
一応目的の数字データの処理はうまくできていそうです.
まとめ
今回は,前編と合わせて,KNIMEを使って実験データを扱う際のデータの読み込みについてと,KNIME上での簡単な数字データ処理の説明をしました.
もし,他にもこんなことが知りたいということがありましたら,気軽にご連絡いただけると嬉しいです.
一番大事なのは,KNIMEのようなツール使えるようになることで,生産性が上がって,考える時間が増えることだと思います.(とはいえKNIMEのWorkflow考えるのは楽しいのですが…).
また,機会があれば実際の実験解析や業務に活かせる操作を紹介していきます.