今回はMIDASという化合物構造推定ツールを紹介します.使い方も少しだけ紹介しますが,これは少し敷居が高いので,理解しなくても良いかも…というよりMetFragもそうですが,ソースコードを自分で改変して使って,評価してなんぼのもんで,Web applicationとしてエンドユーザーに使いやすく!というようには全く設計されていません.今回は,コンセプトを把握していただければ!と思います.
Wang, Y., Kora, G., Bowen, B. P., & Pan, C. MIDAS: A Database-Searching Algorithm for Metabolite Identification in Metabolomics. 86, 9496-9503, 2014
前回のMetFragは「使い方」をメインに説明しましたが,実際このMIDASとMetFragで何が違うのか?ということをまず紹介します.
共通点:仮想フラグメンテーションの方法は(ほとんど)同じ
相違点:候補化合物を順位付けするための計算方法が違う
これがすべてなのですが,簡単に詳細を述べます.
まず,仮想的なフラグメンテーション(以下,in silico fragmentation)はケモインフォマティクスで頻用されているツールキット,CDK (MetFrag),RDKit(MIDAS)の違いはあれど,
「構造中に存在する結合を考えられる限りすべて切断する」
「三段開裂まで考える」
ということは同じです.細部を見ると細かな違いはあれど,基本部分はほとんど同じかと思います.
CDKを使ってプログラム的にどう開裂させるか?は,以下のサイトを参考にしていただければと思います.
http://cheminformatics.seesaa.net/article/20558217.html
基本的なアルゴリズムとしては,化合物構造(SDFやSMILES)をCDKのメソッドを使って読み込んだ後,
1.化合物の(水素以外の)原子に対して,番号付けをする.
2.芳香環判定メソッドを使って,芳香環を形成する原子番号を記憶させる.
3.芳香環に寄与する原子以外の結合ペアを判定し,上記サイトのメソッドを使ってフラグメントを作る.
4.開裂させた2つのうちどちらがイオン化し,どちらがニュートラルになるかは考えない.
5.生成したフラグメントそれぞれに対して,同じ操作を繰り返す.
上記操作を,考えられる結合ペアすべてに対して実行し,大体3段階くらいまで(Tree depthとか言います)メソッドを繰り返します.
まぁマニアックなことは置いておいて,MetFragとMIDASの本質的な違いは,そのフラグメントの「妥当性」をどのように考慮し,複数ある化合物候補の「順位付け」を行う方法が違うということです.
MetFragは,(ちょっとオリジナルの論文の意図を把握しきれていないのですが)
・in silicoフラグメントと実測MS/MSスペクトルのマッチ率に質量数の重みを考慮した値(0から1のスコア)と結合解離エネルギーの影響(0から0.5のスコア)を統合的に評価したもの
です.候補化合物が10個あったとしたら,その10個それぞれに0から1で変動するスコアを計算し,最も1に近いものをより可能性が高いものとして出力するというものです.
一方,MIDASの場合は
・多段階開裂を考えた際,(たとえば)3段階目のフラグメントが実測ピークにアサイメントされたならば,2段階目のフラグメントは実測ピークにアサイメントされていなければならない.
という仮説を,MetFragが考慮した結合解離エネルギーのかわりに用いているような意味合いになります.管理人としては,両方考慮すれば…?とか思っているのですが,一応このMIDASの論文では,MetFragよりも性能が良いという結果が得られております.
スコアリングが異なれば,結果が異なるのか…という意味合いになりますが…これらのプログラムがそもそも,正確にin silicoフラグメントを出力できているかと言うと,実は少しクエスチョンだったりします.In silicoフラグメントは,管理人が今まで経験した中でも複雑性が高く,「理論通りに,思ったことを正確にプログラムとして具現化する」ことは難しいアルゴリズムの1つだと思います.こんなこと,論文には書かないことですが,プログラムそれ自身のバグを修正してあげるだけで,性能が格段に向上するということもあり得ると,少なくとも管理人は感じています.
すみません,余談でした.笑
さて使い方ですが,まずは以下のサイトにいってください
そして,マススペクトルをアップロードするという話になるのですが,ここの敷居が高いんです…MetFragのように,1つ1つのマススペクトルを手入力でアップロードするという形ではなく,分析生データそのものをアップロードすることになります.僕はThermo Fisher Scientificの装置をオペレートしたことが無いので,詳しくはわからないのですが,少なくともThermoユーザーは簡単にできると思います.生データの吐き出しとして,FT2(MS/MSの情報だけASCII,つまりテキスト形式で格納したもの)というオプションがきっとあると思います.MIDAS自身はFT2を推奨していて,開発者と一度メールをしたことはありますが(管理人とおそらくほぼ同い年),FT2は安定的に動作するようです.
さて,Thermo以外のユーザーはどうすれば良いかというと,MIDAS自身はmzMLもサポートしています.mzMLはProteoWizardで簡単に各社生データから変換できる「共通MSフォーマット」として認識されています.
http://proteowizard.sourceforge.net/
ただ,共通フォーマットと言われていますが,本当に細かい話をすれば,各社メーカーの質量分析データをProteowizardからダウンロードできるMS-Convertを使って変換してみると,少しずつですが,各社ごとにフォーマットが違います.このMIDASは,まだこの表記ゆれに柔軟に対応できておらず,mzMLでの解析は不安定で,うまく動作しないことがあります.ただ,開発者は仕事人で,メールを書いて送ればプログラムを修正してくれます.
ただ開発者は,どちらかというと自分でそれを行いたくなく,「Themoが提供しているFT2コンバーターを使って,ユーザー自身がまずmzMLからFT2に変換して,それをMIDASにアップロードしてほしい」そうです.
で,mzMLからFT2へ変換するためのコンバーターが用意されていて,以下からダウンロード可能です.
https://code.google.com/p/raxport/downloads/detail?name=mzML2FT.py
ただ,これはPythonで書かれていて,このPythonコードを実行するためにはまずPCにPython実行環境をインストールしなければならず…
と,この辺でかなり疲れてくると思いますので,今日はこのへんでやめにします.笑
もし興味がある方で,使い方を教えてほしい人は,管理人に直接メールをいただければと思います.それでは,今日はこの辺で!