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

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

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

KNIMEでChemdrawファイルを読みたい 〜 Chemical Structures File Reader〜

以前にsdfの読み方を紹介しました。 

 

 『構造式の入ったファイルありますか?』 

→『cdxなら有るんだけど…。』

 

 みたいなことを言われるパターンもあるんですよね。該当ファイルが1つ2つなら、手動で開いてsdfとして保存し直す。これでいいんですが、もっと沢山あるとやる気が失せます。複数ファイルを一括で読む方法は置いておいて、

 【なんとかchemdrawファイルは読めないのかね?】ということです。

はい、読めます。

 Erlwood nodeのChemical Structures File Readerを使うと読めるんです。難しい設定はありませんが、1つのcdxに複数の構造が含まれる場合、それぞれを単一の化合物として扱うには、4つくらいノードを繋げる必要があります。今回はこれを紹介します。

f:id:sumtat:20170801221912p:plain

 

 Chemical Structures File Reader

 読みたいファイルを指定します。今回の場合はcdxです(もちろんsdfも読めますよ)。

f:id:sumtat:20170801223231p:plainapply-OKして実行するとこんな感じになります↓

f:id:sumtat:20170801223429p:plain 今回の例の場合、4分子がまとまって1つの化合物として認識されています。そこでこの4分子をバラバラに分割します。

 

Componet Separator

f:id:sumtat:20170801223748p:plain どこのカラムの構造をバラすの?という設定がMolecule columnです。今回はSDFの方にしてください。apply-OKして実行すると次のようになります。

f:id:sumtat:20170801224027p:plain 個々の分子に分割できました。これで、もう1つにまとまってるやつらは不要なので除きます。

 

 Column Filter

 以前に紹介したRow Filterに似ています。

【超入門(2/3)】KNIMEの使い方 〜欲しい行だけ抽出しよう(Row filter, splitter)〜 

設定画面は下の通りです。

f:id:sumtat:20170801224438p:plain 捨ててしまう情報をもつカラムを赤枠側、残すカラムを緑枠側に指定します。今回のフローの場合、読み込むcdxの内容が変わっても捨てるのは必ずMoleculeとSDF StringなのでEnforce exclusionにチェックを入れているのがポイントとなります(componet #nは増減する可能性がある)。それでは実行してみます。

f:id:sumtat:20170801224929p:plain 欲しい部分だけになったのが確認できました。それでは最後に縦横を変えてみましょう。これは前回紹介したTransposeの復習です。

【KNIME】ノード紹介:Transpose, Pivoting 〜表(table)の縦と横(行と列)を入れ替えたい〜 

特に設定は不要です。実行すると次のようになります。

f:id:sumtat:20170801225239p:plain

 完成です。あとはカラムの名前を変えたいですね。それは次回紹介します。

 

 sdfを読むときに困った場合、Chemical Structures File Readerが役に立つことがあります。たまに日本語が入ってるsdfがあって、文字コードのせいで化けることがあるんです(例えばUTF-8のsdfをwindows環境でKNIMEに読み込む場合など)。

 色々試したのですが、sdf readerでは文字コードの指定はできないっぽいので、元のファイルの文字コードを何かしらの手段で変えるしかない(前述のケースだと、例えばメモ帳で開き、別名保存することでANSIに変える)。面倒臭い。そんな時はErlwood nodeのChemical Structures File Readerを試してみてください。何もしなくても意外と読めます。

 

近いうちに、構造検索の方法でも紹介してみようかと思います。