見出し画像

【W5】化合物クラスタリング_04_Step2.1_後編

【W5の目的】
化合物をグループ化する方法と、多様性のある化合物セットを選ぶ方法
を学びます。

Python版TeachOpenCADDのT5が対応しますが、こちらはより発展的です。

【クラスターサイズを見てみよう】

W5の本体であるメタノード「5. Compound clustering」

画像1

のStep1で階層型クラスタリングを体験しました。Step2.1ではクラスターサイズを算出してデータ処理します。今回は上下に分岐しているうちの下部のworkflowだけ扱います。クラスターサイズ分布を可視化します。

画像2


【Sorter】

画像3

前回にも紹介した通り、化合物数で降順に並べ替えます。

設定:

画像4

結果も同様なのでここでは割愛します。


【Number To String】

画像5

データ型変換です。

1. データ型とは、パソコンがそのデータを(文字、数字、時間etc)として認識したことを示すものです。
2. 計算に使用しないものはすべて文字列に変換する。

日本語化したディスクリプションにもある通り、このノードを使って

列(または一連の列)内の数値を文字列に変換します。

今回のCluster numberカラムはID番号なのに整数すなわちInteger型なので、文字列すなわちString型に変換しています。

画像6

結果:

画像7

Cluster numberカラムはString型になったので、「S」表示されています。


【Line Plot】

画像8

TeachOpenCADDでは初めて使います。
線グラフを描画するのに使います。

まっきーさんはオプション全解説を達成されており、頭が下がります。
使い方について加える言葉はありません。

設定:

画像9

結果:

画像10

クラスターサイズの解析というか可視化ができました。
また、このノードはメタノードの外のLine Plotノードと全く同じ設定です。

画像11

今回は以上です。次は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ノードへ繋いでください。

画像12

まっきーさんのつぶやきを参考に設定します。

設定:

画像13

結果:

画像14

文字列であるCluster_IDというカラムで昇順にソートしても、想定通りに並べ替えられていますよね。

さっきのNumber To Stringの結果だとそうはいかないですよね。

画像15

String Manipulationノードは文字列の変換定義に関数を使うのでちょこっとだけローコードですが、できることは本当に多彩なのでご活用いただけたらと思います。
こちらも引用しておきます。

ほかにも
• 文字列の先頭、末尾の空白を削除する
• 文字列中の2以上の空白を1にする(重複スペースの除去)
• 正規表現による置換
• すべて大文字(小文字)に変換
• 文字数を数える
などなど、Functionは盛りだくさんです。冒頭でも述べた通り、
文字列に対して、何か処理を施したい。そんなときはString Manipulationです。


記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。