3週間ぶりくらいの更新となります.放置していてすみません…このコラムでは,MS-DIALで用いるデータフォーマットであるABFについて,紹介させていただきたいと思います.
ESI友の会のコラムでは,「学生の知識向上」も意識しております.いきなりMS-DIALで用いるABFコンバーターの話・使い方を説明しても良いのですが,ここではまず,どうして共通データフォーマットというのが必要か?ということについて,ソフトウェア開発の観点から説明したいと思います.一人のユーザーにとって,「えー.○○社のデータそのまま読み込めないのー?」と,思うかもしれません.管理人も,昔そう思っていました.しかしながら,各社メーカーの生データすべてに対応するためのコードを書くというのは,非常にソフトウェアの開発効率が悪くなってしまいます.各社の,生データ構造が変わってしまうかもしれないですし…
ですので,ソフトウェア側としては,「1種類のデータアクセスのためのコード」だけ用意すれば良いという環境を作りたいわけです.つまり,「各社データを変換し1つの共通データフォーマットとするためのコード」と「共通データフォーマットを読み込み,データ解析をするソフトウェアコード」を切り離すことで,プログラムの開発効率が上がるわけです.もちろん,各装置メーカー付属ソフトウェアは,この限りではありません.
GCMSの分野では,netCDFが有名ですよね.単純な配列データのみからなり,質量分析データの場合だと,スキャンナンバー,保持時間,マススペクトルの配列が,ある一定の規則を持って格納されているような構造になっています.Unidataのサイトにいけば, netCDFにアクセスするためのJava,Fortran,CのライブラリがUnidataから提供されています.
http://www.unidata.ucar.edu/software/netcdf/
コードを自分で書き始めればわかると思うのですが,netCDFは,「配列」が格納できるだけなので,どの箱が保持時間で,どの箱がスペクトルなのかは,データを開けてみないとわからないということが,問題として挙げられます.また配列の数値が,double型なのか,integer型なのか等,データを取り出す過程において注意しなければいけない点がいくつかあります.一番面倒なのは,各社,アジレントさん,島津さん等々,「netCDF(AIAともいう)エクスポート」のオプションがあるのですが,この配列の格納方法や数値型がバラバラで,結局ソフトウェア開発の側としては「アジレント用netCDFコード」「島津用netCDFコード」「LECO用netCDFコード」を書かなければならず,共通フォーマットにしている穏健を全く得ることができません.
netCDFはもともと,質量分析用に作られていないので仕方ないのですが…このような背景から,少なくとも管理人は,netCDFは(質量分析装置において)共通フォーマットには成り得ないと思っています.また,MS1やMS/MSの階層化に至っては,刃が立たないのが現状で,結局各社メーカーの挙動を見ると,QTOFなどのデータは,MS1とMS/MSそれぞれについてnetCDFで吐き出すような感じになっています.
ただ,GCMSの場合は,単純な配列で話がつきますし,何より,「GCMSのデータはnetCDFが標準」ということで受け入れられているので,GCMSソフトウェア開発者は,サポートしなければならないと思います.
質量分析の業界で,「質量分析データに特化した共通データフォーマットを作ろう」という流れから,これまで,mzData,mzXML,mzMLなど(最近はまた新たにデータフォーマットができてきました)が改良を重ねて作られてきました.今は,mzMLでひと通り落ち着いている感じがあります.mzXMLやmzMLは,ASCII,つまりテキスト形式で記載されているので,メモ帳などで開いてみることができます.ダブルクリックしても開けないので,ドラッグ&ドロップでメモ帳などに落としてくださいね.
まったくの余談ですが,「ダブルクリックで開けない」=「バイナリーファイル(人間が理解できない言語)」ではないです.Windowsでは,拡張子が「.TXT」となっていれば自動的にメモ帳が呼ばれ,開くことができますが,それ以外では「ASCIIで記載されているのに」メモ帳が呼ばれません.また,このようにASCIIで管理されているデータを開くのには,「メモ帳」は適していません.改行コードなどがうまく反映されないことが多いので…ですので,これまで紹介してきたMSPフォーマットや,mzMLなどをちゃんと見たければ,適当なテキストエディターをPCにインストールして使うことをおすすめします.以下,おすすめです.
Notepad++:https://notepad-plus-plus.org/
TextPad:https://www.textpad.com/
質量分析データのmzML等へのコンバートは,ProteoWizardのホームページからダウンロード可能なMsconvertにより可能です.(以前,NIST MS Search Programの説明のときにも少しだけ紹介しました)
http://proteowizard.sourceforge.net/
さてさて,やっと本題です.MS-DIALは,ライフィクス株式会社が提供しているABF(Analysis Base File)を共通フォーマットとして読み込む形式になっています.ABFは,一種のバイナリーファイル(人が読めない)になっており,ソフトウェアから生データへの高速アクセスが可能です.このABFを利用したソフトウェアは,MS-DIAL以外に,MRMPROBSというソフトウェアでも使用されています.
Tsugawa, H. et. al. MRMPROBS suite for metabolomics using large-scale MRM assays. Bioinformatics, 30, 1–2, 2014
ライフィクス株式会社は学術機関にもすごく協力してくれていて,各社生データからABFへ変換するためのファイルコンバーターを無償で提供してくれています.
ABFコンバーターは,以下のサイトからダウンロードしてください.登録が必要になっていますが,配布の範囲を管理したいだけですので,全く宣伝メールとかはきません.
http://www.reifycs.com/AbfConverter/
ファイルコンバーターをダウンロードすれば,フォルダー中に入っているEXEファイルをダブルクリックすれば,ファイルコンバーターが起動します.
あとは,自身の生データをすべて,このコンバーターにドラッグ&ドロップで入れて下さい.そして,右下のConvertボタンを押せば,生データが入っている場所と同じ階層に,ABFフォーマットファイルが出力されます.
各社生データを変換する上での注意点をいかに示します.
1.島津製作所のデータの場合,LabSolutionsがインストールされているPCでないとコンバーターが働きません.またその測定データが,LabSolutionsバージョンが5.53.SP4以降で取られている必要があります.もし,測定データがそれ以前のバージョンで取得されたものである場合,お手数ですが,直接ライフィクス株式会社のほうへご連絡ください.コンバートするためのファイルを送ります.
2.アジレントとSCIEXのデータの場合は,何も必要はありません.ただ,SCIEXはWIFFファイルとWIFF.SCANファイルの2つがあると思うのですが,WIFFファイルだけをドラッグ&ドロップでいれてください.
3.Brukerの場合,ComassXtractというソフトウェアを,パソコンにインストールしている必要があります.下記のホームページにいき,ご自身のPCにあった環境(64 bitか32 bit)を選択して,インストールしてください.
https://www.bruker.com/service/support-upgrades/software-downloads/mass-spectrometry.html
(ハードリンクは,予告なく変更されることがあり,ページが見つからなくなってしまうことがあるので注意!)
インストーラーをダウンロードする際に,ライセンス管理のための,必要事項の記載を求められますが,気にせず,素直に必要事項を記載してダウンロードしてください.
4.Thermoの場合,MSFileReaderというソフトウェアを,パソコンにインストールしている必要があります.下記のホームページにいき,ダウンロードしてください.MSFileReaderのバージョンが古いと,正常にコンバートできないことがあるので,「あれ?」と思った時は,再度ホームページへ行き,インストールし直してください.
http://thermo-msfilereader.software.informer.com/download/
5.Watersの場合,すみません,少しややこしいです.まず,MassLynx Raw Data Reader Interface Libraryというものを,以下のサイトからダウンロードしてください.
http://www.waters.com/waters/supportList.htm?filter=documenttype%7CDWNL&locale=ja_JP
つぎに,ダウンロードして得られたZipファイルを解凍して得られるMassLynxRaw.dllを,ABFコンバーターをダウンロードしたフォルダー内に入っている,「ABFCvtSvrWtrRawフォルダー」に入れてください.そしたら,コンバーターが正常に動作します.ちなみに,64 bitしか,現在動作しません.また,2015年7月4日現在,Watersから提供されているMassLynxRaw.dllに,「バグ」が存在していて,「Lock massのデータが正常に反映されていない」という問題があります.ですので,MS-DIALで読み込んだWatersのデータは,100 ppm以上ずれたデータになっています.このような問題は,ProteoWizardにも同様に見られており,現在のところWatersのデータを共通フォーマットに正常にコンバートする方法は,かなり難しいものになっています(一応,やり方はあるのですが,ややこしすぎるのでここでは紹介しません).ライフィクス株式会社がWatersの開発者に連絡を取り,現在このバグ修正を依頼しています.早ければ,近日中に新しいMassLynxRaw.dllが公開されるため,公開され次第,ESI友の会のサイトでもご連絡致します.
いかがでしたでしょうか?共通フォーマットへの変換というのは,ProteoWizardを使うにしろ,ABFコンバーターを使うにしろ,実はいろいろ注意点があり,難しい印象があると思います.コンピューターに強い人は,へっちゃらかと思います.管理人が修士の時は,実はパソコンを見るのも億劫で,すごく嫌いでした.人間変わるものですね…(だから未だに,プログラムは書けるけどPCには弱いです)
このファイルコンバートが,フリーソフトウェアを使う際の最初の難関かと思います.ここでつまずくと,「あーやっぱりデータ解析難しい…嫌だー…」ってなってしまいますので,管理人もがんばって手伝うので,気軽に相談の連絡をしてください.
それでは,本日はこの辺で!