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

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

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

エクセルファイルに構造式を入れたい

 エクセルは便利ですし、市民権も獲得していて、データのちょっとした共有などによく使われます(少なくとも私の周りの環境では)。

 でも、エクセルで構造式入りのファイルをつくるとなると「純手作業」では結構めんどくさいですよ(ハイパーコピペモード突入)。またexcelのアドインを使ってsdfを読み込んで表示する方法もありますが、重くなるし、動作もやや不安定だったりします。(chem officeのアドインを使う場合が私の周りでは多いようです。他に簡単な方法はあるんですかね?)

 

 そんな時は、私は構造式をKNIME上でpng形式にしてtableに埋め込んで、エクセルファイルを書き出しています。

f:id:sumtat:20170730162547p:plain

 画像ファイルですので、もちろん構造情報は視覚的なものとしての意味しか成しません。それでも意外と需要があります(…本当はsdfでそのまま渡したいのだけど)。KNIMEではファイルの書き出し前に、たった1つのノードを追加するだけで実現可能です。あまり研究の役に立つとは思いませんが、紹介していきます。

 

続きを読む

【KNIME】ノード紹介:String Manipulation 〜文字列変換の万能選手〜

今回は下のようなデータに対し、年齢データのおしりに「歳」をつけたり、会員番号のハイフンを@に変えたりしてみます。

f:id:sumtat:20170729222304p:plain String Manipulation

文字列に対して、何か処理を施したい。そんなときは俺に任せろ的なノードです。かなり色んなことができます。めちゃくちゃよく使うノードです!

早速設定を見ていきましょう。

f:id:sumtat:20170730145503p:plain

続きを読む

【KNIME】ノード紹介:GroupBy 〜同じものをひとまとめに〜

前回までにcell splitterを使って、セルの中身を縦・横にぶった切る方法を紹介しました。

【KNIME】ノード紹介:cell splitter 〜文字列を分割したい〜

【KNIME】ノード紹介:cell splitterとUngroupのコラボ 〜文字列を縦方向に分割したい〜

予告通り、今回はバラバラにしたものを元の形に戻す方法を紹介したいと思います。

…KNIME内の処理は、最初のデータを上書きして消しているわけではないので作業自体に意味はないです。でも、子供の頃とかいろんな玩具や機械を分解したことありませんか?その時に、もう一度組み直すことができるとなんとなく仕組みがわかった気が私はしました。やっぱり綺麗なデータを準備するには、tableの中身を自在に扱えた方がいいと思います。なので、【バラす】【まとめる】を続けて紹介したいなーと感じ今回の題材を選びました。

例題では、前回のデータの名前(年齢も重複ですが)が重複するものをまとめて、元の形に戻していきます。

f:id:sumtat:20170728220234p:plain

GroupBy

名前通り、【***でグループにする】処理を実行するノードです。使用頻度は非常に高いです。

早速設定画面を見ていきます。

f:id:sumtat:20170729214906p:plain

続きを読む

【メドケム】KNIMEで構造式を扱おう 〜sdfを読んでみよう〜

 突然ですが、sdfというファイル形式があります。ごく一部のニッチな世界でしか使われていないような気がしますが、筆者は毎日扱うファイル形式です。sdfの説明は、もうchem-stationに丸投げしますね。

www.chem-station.com

 私は化合物を作る方が専門なのですが、構造情報をうまく扱えないと仕事は捗らないです。wetのデータ管理も必要ですし、公共データベースなどの活用・Virtual compoundの発生・文献情報の収集・Fingerprint等からの各種予測などなど、多方面からのアプローチが必要となります。最近ではdeep learningなども盛り上がりっているようで、時代に置いて行かれないように必死なわけです。で、無料だし、GUIだしということで触り始めたのがKNIMEです。

  そんな私が合成研究者レベルでも覚えられたこと、勉強中のことをまとめていこうと思ったわけです。またKNIMEユーザーはあまり国内には多くないのか、あまり情報がないので、ブログをきっかけに誰か詳しい人とか見つかったりしないかなーとかも思ってます。

  chemistry関係の最初はSDF readerにしてみます。やっぱりこれがスタートだと思うので。

f:id:sumtat:20170728230256p:plain

続きを読む

【KNIME】ノード紹介:cell splitterとUngroupのコラボ 〜文字列を縦方向に分割したい〜

前回は文字列を特定の区切り文字で分割し、新しいカラムとして(横方向に)分割する方法を紹介しました。

 

sumtat.hatenablog.com

 今回は、予告通り縦方向にぶった切ります。目標はこんな感じです。

f:id:sumtat:20170728211527p:plain

続きを読む

【KNIME】ノード紹介:cell splitter 〜文字列を分割したい〜

Cell splitter

今回は特定の文字(列)で、エクセルでいうところのセルの中身を分割してみよう!というお話です。紹介するノードはcell splitterです。これは使用率大です!思わぬ場面で活躍してくれています。

 

*ノードの名前、だいたい"そのまんま"という感じのネーミングになっていますが、やっぱり覚えないとです。とてもたくさんのノードがありますが、各個人の職種、分野などでよく使うノードはある程度限られてきます。慣れればなんとかなりますよ!

 

さて、キャプチャのような内容のテーブルの【会員番号】について、"-"で分割してみましょう。

f:id:sumtat:20170727220811p:plainこれを分割すると、例えば「数字部分だけでソートをかけたい」などの需要に応えることができます。早速設定画面を見ていきます。

続きを読む

【KNIME】ノード紹介:Joiner 〜2つのテーブルをくっつけよう〜

今回はJoiner を紹介したいと思います。スーパー基本操作に関しては過去記事【超入門シリーズ(全3回)】に書いてみました。必要に応じて参照いただければと思います。

【超入門(1/3)】KNIMEの使い方 〜エクセルファイルを読んでみよう(Excel Reader)〜 - 非プログラマーのためのインフォマティクス入門。(仮)

【超入門(2/3)】KNIMEの使い方 〜欲しい行だけ抽出しよう(Row filter, splitter)〜 - 非プログラマーのためのインフォマティクス入門。(仮)

【超入門(3/3)】KNIMEの使い方 〜エクセルファイルとして書き出してみよう(Excel Writer)〜 - 非プログラマーのためのインフォマティクス入門。(仮)

 

Joiner

さて本題です。"Joinerは2つの異なるテーブルを照合しながらくっつける"ノードです。Excelでいうところのvlookupに近いんですかね?何かを入力することで動的?に情報を表示させるような入力フォーム作成時などにはvlookupを用いたExcelが有効かと思いますが、そういう使い方をするものではありません。

文章では分かりにくいので、キャプチャを載せます。おそらく一目瞭然かと思います。

f:id:sumtat:20170726213106p:plainJoinerには入口▶︎が2つあります。上の入口▶︎には【名前】【性別】【都道府県】をまとめたエクセルファイル、下の入口▶︎には【名前】【年齢】【会員番号】をまとめたエクセルファイルを入力情報として繋げています。これを名前をキーにして1つのテーブルにまとめましょう!というのがjoinerの使い方です。

続きを読む