・先日、化合物をKNIMEで扱ってみた。
・化合物の構造ファイルとして、いろいろな記述法があり、中でもSMILESとSDFはよく見かける。
・SMILESの特徴は、1次元の文字列の配列であり、記述自体がシンプルであること。SDFの特徴は、化合物の構造以外の情報も盛り込めることだと思う。
・今回は、SDFから化合物名などを抽出する方法をメモしておく。
・SDFファイルの構成は以下の通り。
・思うに、"M END"までが構造情報で、"><chembl_id>"など"><>"で囲まれたところが項目名、そのあとの行がその内容で、分子同士の区切りが"$$$$"になっているのだろう(あっているかは知らない)。
・このSDFファイルには、構造情報以外に"chembl_id"と"chembl_pref_name"という情報が含まれ、それぞれ"CHEMBL32479"と"BROTIZOLAM"であるらしい。
・これらの情報を抽出するワークフローを組んでみた(下図)。
・工程は以下の通り。
①SDFファイルを読み込む。
上の出力ポートからは、ちゃんと読み込めた分子が出てくる。
下の出力ポートからは、ちゃんと読めなかった分子が出てくる。
②><chembl_id>でSDFファイルを読み込んだ文字列を切る(下図。Cell Splitterの設定画面と出力画面)。
③> <chembl_pref_name>でSDFファイルを読み込んだ文字列を切る(下図。Cell Splitterの出力画面)。
④String Manipulationで$$$$を削除した(下図)。
・これで、目的の情報の抽出はできる。あとは"Column Filter"で必要な列を抽出したり、"Column Rename"で列名を変更したり、"Column Resorter"で列の順番を変更したり、表示を切り替えたりすると、見やすい感じになった(下図)。
終わり。