【W5】化合物クラスタリング_04_Step2.1_後編
【W5の目的】
化合物をグループ化する方法と、多様性のある化合物セットを選ぶ方法
を学びます。
Python版TeachOpenCADDのT5が対応しますが、こちらはより発展的です。
【クラスターサイズを見てみよう】
W5の本体であるメタノード「5. Compound clustering」
のStep1で階層型クラスタリングを体験しました。Step2.1ではクラスターサイズを算出してデータ処理します。今回は上下に分岐しているうちの下部のworkflowだけ扱います。クラスターサイズ分布を可視化します。
【Sorter】
前回にも紹介した通り、化合物数で降順に並べ替えます。
設定:
結果も同様なのでここでは割愛します。
【Number To String】
データ型変換です。
1. データ型とは、パソコンがそのデータを(文字、数字、時間etc)として認識したことを示すものです。
2. 計算に使用しないものはすべて文字列に変換する。
日本語化したディスクリプションにもある通り、このノードを使って
列(または一連の列)内の数値を文字列に変換します。
今回のCluster numberカラムはID番号なのに整数すなわちInteger型なので、文字列すなわちString型に変換しています。
結果:
Cluster numberカラムはString型になったので、「S」表示されています。
【Line Plot】
TeachOpenCADDでは初めて使います。
線グラフを描画するのに使います。
まっきーさんはオプション全解説を達成されており、頭が下がります。
使い方について加える言葉はありません。
設定:
結果:
クラスターサイズの解析というか可視化ができました。
また、このノードはメタノードの外のLine Plotノードと全く同じ設定です。
今回は以上です。次はStep2.2に進めます。
おまけ:
【String Manipulationは便利です】
IDのデータを数値型から文字列型にするときのTipsとして、まっきーさんの下記のつぶやきを紹介し、実装してみます。
KNIME Tips - 数字の0埋め integer型の数字を3桁(例 - 001)で揃えて0埋めする場合、String ManipulationのpadLeftを使用する
padLeft(string($NumberColumn$), 3, "0")
まっきーさんとしては下記記事の補足といった位置づけで紹介して下さっているのかなと思います。
文字列に関して何かしたかったらとりあえずString Manipulation
上述のNumber To Stringでの整数から文字列への変換はノーコードで楽ではあるのですが、実はID順にソートしたいときに問題が生じます。
デモデータで実際に比較しましょう。
下図の通り、Number To String ノードと同様にSorterノードからString Manipulationノードへ繋いでください。
まっきーさんのつぶやきを参考に設定します。
設定:
結果:
文字列であるCluster_IDというカラムで昇順にソートしても、想定通りに並べ替えられていますよね。
さっきのNumber To Stringの結果だとそうはいかないですよね。
String Manipulationノードは文字列の変換定義に関数を使うのでちょこっとだけローコードですが、できることは本当に多彩なのでご活用いただけたらと思います。
こちらも引用しておきます。
ほかにも
• 文字列の先頭、末尾の空白を削除する
• 文字列中の2以上の空白を1にする(重複スペースの除去)
• 正規表現による置換
• すべて大文字(小文字)に変換
• 文字数を数える
などなど、Functionは盛りだくさんです。冒頭でも述べた通り、
文字列に対して、何か処理を施したい。そんなときはString Manipulationです。