いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【KNIME】不等号を分離したい

・低分子化合物の生理活性データが纏まっている表で、たまに不等号が入り込んでいることがある。溶解度やアッセイ条件によって濃度の上限または下限が決まっているのが原因なのだけれど、表中に不等号が入り込むと文字列データとして処理されるので、非常に取り扱いが難しくなる。

・そこで、不等号を分離するワークフローを組んでみた。

・サンプルデータは以下の通り。

・事前の条件は以下の通り。

①AIC50とBIC50という二つの数値情報が含まれている。

②単位は別列に分離してあり、それぞれ_unitという名前になっている。

③AIC50とBIC50の列には、不等号・等号があったりなかったり、全角だったり半角だったりする。

④AIC50とBIC50の列を、それぞれ_relation(不等号と等号)と_value(数値情報)という二つの列に分けたい。

⑤不等号と等号は、>、=、<の3種類だけ。≪や≥は想定していない。

・組んだワークフローは以下の通り。窓はそれぞれのTable Creatorノードの出力。どの列が不等号を含む可能性のある(処理対象の)数値データなのか、指定してやる必要がある。

・Futogoメタノードの出力は以下。

・メタノードの中身は以下の通り。

・工程はざっくり以下の通り。

①全部半角に変換。

②処理対象の列から、処理後の列名を作成してLoopとFilterで切り出して変数化。

③String Manipulationで処理しやすいように列名を変更して、処理対象列の最初の一文字を切りだした列と処理対象列から不等号・等号を除いた列を作成。

④処理対象列の最初の一文字が数字の場合は等号に変換。

⑤順番を整えてLoopを返す。

 

終わり。