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

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

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

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

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

 

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

f:id:sumtat:20170730162547p:plain

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

 

 

Renderer to Image

f:id:sumtat:20170730163121p:plain指定したカラムの内容を画像ファイルに変換するノードです。設定を見ていきます。

f:id:sumtat:20170730163338p:plain

  • Column : どのカラムを画像にするかを選択
  • Image size : エクセルに構造式をのっけるなら、200×200くらいかな?と思います
  • Append or Replace : 画像化した情報を新しいカラムとして追加するなら Append、置き換えるならReplaceです

設定はこのくらいで十分かと思います。あとはエクセルファイルとして書き出せば完成です。 

 

 Pythonとか、すんすんすーんで書ければrdkitとpandasを使えばいい感じにできるのだと思いますが、あくまでGUIでということです。

 

 Python書けるようになりたいけど、なかなか勉強捗らないし、何より周りにわかる人が全然いない。環境構築からハマる場合も結構あって…。先日は32bit-windowsにrdkit入れたら、cmdからは動くけどjupyter notebookだとモジュールが見つからんとか言われて頓挫しました。もっと勉強しないとですね。

 

研究関係での使い道についての次回予告

 sdfを渡されるときに、中身に日本語が入ってる場合があるんですよね。前回紹介したsdf readerでは文字化けします。そもそも、日本語使わないでという話なのかもしれませんが、このような事例に対応可能なノードを近いうちに紹介します。