(57)【要約】【課題】信号記録器からコンピュータなどのデータ処理装置へデータを転送する前に、情報を失わずにデータ量を減らす可逆圧縮処理を行う飛行時間測定装置を提供する。【解決手段】信号記録器で記録した時系列デジタル信号を、ベースライン情報を含むビット列と含まないビット列とに分割して複数の時系列デジタル信号に変換する。まず、ベースライン情報を含まないビット列からなる前記時系列デジタル信号に対しては、ゼロレングス符号化やスイッチ連長符号化などの連長方式の符号化により圧縮を施す。その後、それぞれの時系列デジタル信号に対して個別に静的ハフマン符号化を行い、データ量を圧縮する。
2009069225.tif 000002
【特許請求の範囲】
【請求項１】
信号記録器を備えた飛行時間測定装置において、前記信号記録器で検出信号を時系列デジタル信号として記録し、前記デジタル信号をベースライン情報を含むビット列と一つあるいは複数のベースライン情報を含まないビット列とに分割することによって複数の時系列デジタル信号に変換し、前記一つあるいは複数のベースライン情報を含まないビット列に対しては連長方式の符号化を行い、その後、分割された全ての前記複数の時系列デジタル信号のそれぞれに対して個別に静的ハフマン符号化（Static Huffman Coding）を行うことを特徴とする飛行時間測定装置。
【請求項２】
請求項１に記載の飛行時間測定装置において、前記連長方式の符号化が、ゼロレングス符号化（ZLE; Zero Length Encoding）、あるいは、スイッチ連長符号化（SRLE; Switched Run Length Encoding）であることを特徴とする飛行時間測定装置。
【請求項３】
請求項１から２いずれか一項に記載の飛行時間測定装置において、前記信号記録器が、アナログ／デジタル変換器（ADC）を使用することを特徴とする飛行時間測定装置。
【請求項４】
信号記録器を備えた飛行時間測定装置を用い、前記信号記録器で検出信号を時系列デジタル信号として記録し、前記デジタル信号をベースライン情報を含むビット列と一つあるいは複数のベースライン情報を含まないビット列とに分割することによって複数の時系列デジタル信号に変換し、前記一つあるいは複数のベースライン情報を含まないビット列に対しては連長方式の符号化を行い、その後、分割された全ての前記複数の時系列デジタル信号のそれぞれに対して個別に静的ハフマン符号化（Static Huffman Coding）を行うことを特徴とする飛行時間測定装置の信号記録方法。
【請求項５】
請求項４に記載の飛行時間測定装置の信号記録方法において、前記連長方式の符号化がゼロレングス符号化（ZLE; Zero Length Encoding）、あるいは、スイッチ連長符号化（SRLE; Switched Run Length Encoding）である、ことを特徴とする飛行時間測定装置の信号記録方法。
【請求項６】
イオン発生器と、前記イオン発生器から放出されたイオンが到達することでイオン検出信号を発するイオン検出器と、イオン検出信号を時系列デジタル信号として記録し、前記デジタル信号をベースライン情報を含むビット列と一つあるいは複数のベースライン情報を含まないビット列とに分割することによって複数の時系列デジタル信号に変換し、前記一つあるいは複数のベースライン情報を含まないビット列に対しては連長方式の符号化を行い、その後、分割された全ての前記複数の時系列デジタル信号のそれぞれに対して個別に静的ハフマン符号化（Static Huffman Coding）を行うイオン信号記録器を備えることを特徴とする飛行時間型質量分析装置。
【請求項７】
請求項６に記載の飛行時間型質量分析装置において、前記連長方式の符号化が、ゼロレングス符号化（ZLE; Zero Length Encoding）、あるいは、スイッチ連長符号化（SRLE; Switched Run Length Encoding）であることを特徴とする飛行時間型質量分析装置。
【請求項８】
請求項６から７いずれか一項に記載の飛行時間型質量分析装置において、前記イオン信号記録器が、アナログ／デジタル変換器（ADC）を使用することを特徴とする飛行時間型質量分析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検出器から発せられる検出信号を記録し、データ処理装置にデータを転送する信号記録器を備えた飛行時間測定装置に関する。
【背景技術】
【０００２】
飛行時間測定装置は、イオンや電子の飛行時間を計測することで、荷電粒子のエネルギーを測定するものである。その一つ、飛行時間型質量分析装置は、イオン発生器においてイオンを発生させてから、すなわち、イオンを一定の速度に加速して飛行空間に排出してから、一定距離の飛行空間を飛行させた後に、イオン検出器に到達したイオンの信号を検出するまでの時間を、イオン信号記録器で測定して記録し、その情報からイオンの質量を計測する分析装置である。例えば、非特許文献１には、レーザー照射により発生させたイオンを加速して、イオン検出器に到達するまでの飛行時間を測定することで質量分析を行う「マトリクス支援レーザー脱離／イオン化飛行時間型質量分析装置（MALDI-TOFMS）」が開示されている。また、非特許文献２には、イオントラップに蓄積されたイオンを加速して、イオン検出器に到達するまでの飛行時間を測定することで質量分析を行う「イオントラップ飛行時間型質量分析装置（IT-TOFMS）」が開示されている。この他にも、イオン照射により二次イオンを発生させ、これをイオン発生器として利用する飛行時間型二次イオン質量分析装置など、様々な飛行時間型質量分析装置が存在する。【０００３】
飛行時間分析装置のイオン信号記録器においては、イオン検出器に到達したイオンの信号強度が、アナログ／デジタル変換器（ADC; Analog to Digital Converter）を使用してデジタル値に変換されて、時系列デジタル信号として記録される。これはデジタルストレージオシロスコープ（DSO; Digital Storage Oscilloscope）と同様の原理である。デジタルデータ処理技術の向上により、アナログ／デジタル変換の速度が向上したことにより、より高いサンプリング周波数でイオン信号の記録が行えるようになり、質量分解能の向上に役立っている。【０００４】
多くの飛行時間型質量分析装置では、質量範囲や装置の大きさにも依存するが、数μsから数１０μsの飛行時間を測定する。質量分解能として１００００が要求されるとすると、飛行時間の測定精度は、飛行時間の２００００分の１である必要がある。したがって、およそ１ns程度の精度で飛行時間を算出する必要がある。このため、イオン信号記録器のADCのサンプリング周波数は１GHｚか、あるいはそれ以上の周波数である必要がある。【０００５】
このように高い周波数でADCを動作させることは、最近のDSOの技術を持ってすればさほど困難ではない。しかし、例えばサンプリング周波数を１GHｚから２GHｚに増加させると、同じ飛行時間範囲を測定する場合において、2倍の量のデータが発生することになる。仮に、飛行時間の測定範囲を１００μsとすると、一回の測定で発生するデータ量は、１０００００から２０００００に倍増する。４GHｚにすればさらにその倍に膨れ上がる。これらのデータは、データ処理装置（コンピュータなど）において単に記録されるだけではなく、積算処理を行ったり、時間から質量に変換してリアルタイムで表示する処理などが行われる。したがって、無制限にサンプリング周波数を増加させることはできず、データ処理の速度に応じたデータ量に抑えるべくサンプリング周波数を決定する必要がある。【０００６】
イオン信号記録器からデータ処理装置へ転送するデータ量が増えると、より高速な通信手段が必要になる。また、データ処理装置でデータを蓄積するための、ハードディスクドライブ（ＨＤＤ）などのデータ記録装置の容量も大きくする必要がある。このような理由から、通常のADCを使用した飛行時間型質量分析装置では、イオン信号記録器に使用するADCのサンプリング周波数として１GHｚ程度の周波数が選ばれている。【０００７】
一方で、質量精度に対する要求も日ごとに高まっている。DNAやペプチド（たんぱく質の構成要素）などの高分子量試料の質量測定においては、質量の測定精度が、分子構造解析の成否を左右する重要な要因となる。仮に、質量の測定精度を１０ppmとすると、飛行時間の測定精度には５ppmが必要となる。例えば、４０μsの飛行時間を有するイオンに対して許される飛行時間の測定精度は２００psとなる。【０００８】
１GHｚのサンプリング周波数でADCを動作させた場合、デジタル変換の間隔は１nsである。このサンプリング周波数で測定されたイオン信号ピークの形状は、図６に示すように１ns間隔の折れ線グラフのようになり、これらの個々のデータ点を計算処理することにより、ピーク中心の位置を計算する。例えば、個々のデータ点を信号強度で重み付けすることにより、重心を求める方法などが行われる。このような計算処理によって、デジタル変換の間隔よりも高い精度で飛行時間を測定することが可能であるが、分析精度を高めるためには、さらにサンプリング周波数を高くする必要がある。【０００９】
サンプリング周波数を容易に高くできない主な理由はデータ量の増加である。先の例で４GHｚのサンプリング周波数を用いれば、一つの質量スペクトルのデータ量は４０００００測定点となる。一つの質量スペクトルは通常数回の測定の積算が行われるので、８ビットや１０ビットのADCを用いた場合、一測定点のデータ長は１６ビット（２バイト）程度になる。したがって、一つの質量スペクトルのデータ量は８０００００バイトとなる。質量スペクトルの採取を毎秒１０回とし、データの転送に要する通信線の占有率を１／１０とすると、データの転送速度は、８０Mバイト毎秒となる。この程度の転送速度であれば、ギガビットイーサネット（登録商標）などを利用することで実現可能ではあるが、データ処理装置に対しての負担が大きくなり、リアルタイムのデータ処理に大きな負担を与える。また、１時間の連続測定で２８．８Gバイトのデータが生成されるため、ハードディスクの容量を使い切るのを防ぐため、頻繁にDVDなどの外部記録メディアに転送する必要が生じて、データ処理装置の負担をさらに増加させることになる。このように、単にサンプリング周波数を増加して分析性能を向上させようとすると、データ量の増大に伴い装置全体の処理速度が対応できなくなる。【００１０】
これまでの飛行時間型質量分析装置においては、データ量の増大を防ぐため、質量スペクトル中の質量ピーク以外の部分で、信号強度があるスレッショールドレベル以下のデータ値をベースライン値に置き換える方法が、特許文献１に開示されている。別の方法では、信号強度があるスレッショールドレベル以下のデータを削除する処理が行われる。このように、質量ピーク部分のデータだけを残してデータ量を減少させる処理を行うことにより、質量ピークのパターンにも依存するが、例えば１／１００にデータ量を圧縮することができる。しかしながら、一旦これらの処理を施してしまった場合、後処理などで複数のスペクトルを積算処理して信号／強度比（Ｓ／Ｎ）を向上しようと試みても、ノイズに埋もれた微小な質量ピークを見出すことはできない。信号強度がバックグランドレベルである微小な質量ピークを、積算などの統計処理によって見出すためには、信号強度がスレッショールドレベル以下であるバックグランドレベルのデータを削除することなく、全てのデータを記録しておく必要がある。【００１１】
【非特許文献１】田中耕一，「マトリックス支援レーザー脱離イオン化質量分析法」，ぶんせき，４，pp.253-261（1996）
【非特許文献２】Benjamin M. Chien, Steven M. Michael and David M. Lubman，「The design and performance of an ion trap storage-reflectron time-of-flight mass spectrometer」，International Journal of Mass Spectrometry and Ion Processes，131，pp.149-179（1994）
【特許文献１】米国特許6,737,642
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上述のように、従来の飛行時間型質量分析装置においては、サンプリング周波数を増加して分析性能を向上させようとすると、データ量の増大に伴い装置全体の処理速度が対応できなくなる。また、バックグランドレベルのデータを削除してしまうと、微小な質量ピークの情報を失ってしまい、積算処理などでＳ／Ｎを向上することができなくなってしまう。【００１３】
したがって、情報を失わずにデータ量を減らすためには、可逆圧縮処理を適用する必要がある。通常、このような処理は、データ処理装置で処理されており、実用的な圧縮率を実現するためには、広いメモリ領域と、充分な計算時間が必要となる。一方で、せっかく圧縮処理を行ってデータ量を減少させることができても、圧縮処理を行うために多くの計算時間を要するようになると、かえってデータ処理装置の負担を増加させることになる。【００１４】
そこで、可逆圧縮処理を適用するためのハードウェアを設けて、データ処理装置には、圧縮されてデータ量が減少したデータを受け渡すことで、処理の負担を減少させることが望ましい。【００１５】
本発明は上記課題を解決するために成されたものであり、その目的とするところは、信号記録器からデータ処理装置へデータを転送する前にハードウェアで高速にデータ圧縮処理を行う飛行時間測定装置を提供することにある。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、本発明に係る飛行時間測定装置は、信号記録器を備え、前記信号記録器で検出信号を時系列デジタル信号として記録し、前記デジタル信号をベースライン情報を含むビット列と一つあるいは複数のベースライン情報を含まないビット列とに分割することによって複数の時系列デジタル信号に変換し、前記一つあるいは複数のベースライン情報を含まないビット列に対しては連長方式の符号化を行い、その後、分割された全ての前記複数の時系列デジタル信号のそれぞれに対して個別に静的ハフマン符号化（Static Huffman Coding）を行うことを特徴とする。【００１７】
さらに、前記連長方式の符号化が、ゼロレングス符号化（ZLE; Zero Length Encoding）、あるいは、スイッチ連長符号化（SRLE; Switched Run Length Encoding）である、ことを特徴とする。【００１８】
以下、本発明のデータ圧縮の手順を図１のフローチャートに沿って説明する。【００１９】
飛行時間の測定が開始されると、イオン信号記録器にはイオン検出信号が入力し、一つあるいは複数のADCを組み合わせることによりデジタル信号に変換される。一定のサンプリング間隔で生成されるこのデジタル信号を、イオン信号記録器内部のメモリに格納して時系列デジタル信号が形成される（S101）。デジタル信号には、アナログ信号の振幅情報以外にも、ADCのオーバーレンジフラグなどの情報ビットなどが含まれる場合もある。一般的に１６ビット程度のデータ長が用いられるが、アナログ変換のビット長や、イオン信号記録器で積算処理を行う場合には、積算回数に応じて適当なデータ長が決められる。【００２０】
入力された時系列デジタル信号の多くのデータ値は、ADCのオフセット値周辺の値を持つ。これは、質量ピークなどのパルス入力がない場合には、ADCの出力はADCの入力アンプなどのノイズによってオフセット値周辺の限られた範囲のランダムな値をとるためである。このときのデータ値の変動によって頻繁に変化するビット（ここでは「ベースライン情報」と呼ぶ）がひとまとまりになるようにデータ値を複数のビット列に分割する（S102）。デジタル信号のフォーマットにも依存するが、例えばバイナリ形式の場合には、下位ビットのみがランダムに変化するので下位８ビットと上位８ビットに分割する。この時、分割された各ビット列のビット長は、ハードウェアによる圧縮処理が効率良く処理できる程度にする。現在のFPGA（Field Programmable Gate Array）などでは１０ビット以下にするのが適当であるが、集積回路技術の発展に応じてより長いビット数の使用も可能になる。また、イオン信号記録器での積算回数を大きくするために、デジタル信号のデータ長が、例えば２４ビットである場合には、８ビットのビット列三つに分割すれば良い。分割したビット列のビット長は必ずしも等しくする必要はない。また、デジタル信号のデータ長が、積算回数に応じて可変である場合などには、分割したビット列のビット長も可変にしてもかまわない。【００２１】
分割したそれぞれの時系列デジタル信号に対しては、個別に圧縮処理を実行する。データ値の変動によって頻繁に変化するビット（ベースライン情報）を含むビット列の時系列デジタル信号に対しては、静的ハフマン符号化（Static Huffman Coding）を行う（S103）。ベースライン情報を含まないビット列の時系列デジタル信号に対しては、連長方式の符号化（RLE；Run Length Encoding）を行い（S104）、その後に静的ハフマン符号化を行う（S105）。【００２２】
個別に圧縮されたそれぞれの時系列デジタル信号は、データ処理装置へ転送される（S106）。個別に圧縮された時系列デジタル信号のデータは、個別に転送しても良いし、一つのファイルにまとめて転送してもかまわない。【００２３】
本発明の原理を、以下に説明する。画像データの圧縮などに使用される非可逆圧縮とは異なり、プログラムやデータなどのように後から元の状態を復元できる圧縮は可逆圧縮と呼ばれる。可逆圧縮には、情報エントロピーに応じて符号を割り当てるエントロピー符号化や、文字データなどに対してはデータ出現の規則性に基づいて符号を割り当てる辞書式符号化など多数の方式がある。圧縮の効率を高めるためには、圧縮されるデータの規則性などの性質に応じて適当なものを組み合わせる必要がある。そこで、まず飛行時間型質量分析装置のイオン信号記録器で記録されるデータの性質について説明する。【００２４】
イオン信号記録器には一つあるいは複数のＡＤＣが用いられ、あらかじめ決められたサンプリング周期でアナログ信号をデジタル信号に変換する。デジタル信号は、正負の極性やグレイコードなどの電気回路の設計上使用されている符号化に依存するが、基本的には信号の強度を整数値で表現したものである。【００２５】
図２は、質量スペクトルの一例である。測定された順番に測定された信号強度を示している。横軸の目盛りは、測定時刻をm/z値（質量を原子質量単位で割り、電荷数の絶対値で割ったもの）に変換したものである。縦軸は、各データの整数値から３（オフセット値）を引いて表示している。この図のデータについては、実際のベースラインは３よりもわずかに大きいので、質量ピークの無い部分でオフセット値を引いた信号の強度は、ランダムノイズのために０または１となり、時折−１になったりしている。このように、飛行時間測定装置で扱うデータは、ほとんどのデータ値がベースラインに近い値を持ち、測定する対象物に応じて時折検出されるパルス状の信号の部分においてベースラインと大きく異なる値を持つという特徴がある。【００２６】
図３は、同じ質量スペクトルについて、大きな質量ピークが見られるm/z値が３３０から３４５の部分を表示したもので、図４は、図３と同様の質量スペクトルを１０００回積算処理した積算スペクトルを表示したものである。積算処理によって、ランダムノイズはピークの信号強度に比べて相対的に小さくなり、Ｓ／Ｎが向上している。図５は、図４の縦軸を拡大したものである。積算処理によって、平均の強度が１（１０００回の積算スペクトルであるので、縦軸が１０００）以下のピークも明瞭に確認できるようになった。【００２７】
図３に見られるm/z＝３４０．０の強度４のピークは、図５では質量ピークとして確認できるが、図３に見られるm/z＝３３８．５の強度４のピークは、図５では質量ピークとして表れない。このように、ランダムノイズと同程度の信号強度を持つピークでも、積算処理によって質量ピークであるかどうかを判定することができる。このためには、ランダムノイズレベルのデータ値も全て記録しておくことが重要である。【００２８】
ここで、図３のm/z＝３３２からm/z＝３３３までの（オフセット値を引かない）元のデータ値を列挙すると、
３、４、４、３、４、３、３、３、３、３、３、３、４、５、３、３、３、３、３、３、４、３、３、４、３、３、２、３、４、３、３、３、３、３、３、３、３、３、３、３、３、３、３、３、３、３、６、５、３
となる。データ値３の頻度が最も多く、次にデータ値４が多く、残りはデータ値５が２回、データ値６とデータ値２がそれぞれ１回ずつである。データ値２から６を１６ビットの２進数で表すと、
データ値２＝００００００００００００００１０（２進数）
データ値３＝００００００００００００００１１（２進数）
データ値４＝０００００００００００００１００（２進数）
データ値５＝０００００００００００００１０１（２進数）
データ値６＝０００００００００００００１１０（２進数）
となる。データ値のビット列のパターンで、下位の３ビットだけが変化している。このように、質量スペクトルの時系列デジタル信号では、ほとんどのデータ値が特定のビットパターンから構成されており、質量ピークが現れるところにだけそれ以外のビットパターンが現れる、という特徴をもつ。【００２９】
特定のビットのみが頻繁に変化するというこの特徴を利用した最も単純な圧縮方式は、データ値の一つのビットのみを取り出して連長符号化（RLE；Run Length Encoding）することが考えられる。この方式を用いると上位の１３ビットについては高い圧縮率を得られるが、下位の３ビットについてはほとんど圧縮効果を得られない。なぜなら、データ値が３と４の間で変化するとき、下位の３ビットは全て変化するからである。したがって、この方法では圧縮後の平均ビット長は３ビット以上になってしまう。また、積算処理の回数が増えると、オフセット値は増え、データ値の変動する範囲も広がるので、圧縮効果を得られないビットの数は急速に増える。【００３０】
一方、図２の質量スペクトルにおいて、m/z＝２００からm/z＝４００までのデータ値について平均情報量（エントロピー）を計算すると、０．８９ビットになる。したがって、エントロピー符号化を行って、出現頻度の高いデータ値に短い符号を割り当てることにより、圧縮後の平均ビット長を１ビット程度にできる可能性がある。また、文書ファイルなどに一般的に用いられている辞書式符号化は、質量スペクトルのデータ値の出現のパターンに規則性が無いことから、大きな圧縮効果は見られない。【００３１】
エントロピー符号化（Entropy Encoding）の方式には、ハフマン符号化（Huffman Coding）や算術符号化（Arithmetic Coding）、レンジコーダー（Range Encoding）などがある。算術符号化などは圧縮率は高いが計算に時間がかかるため、ハードウェアで高速に圧縮する目的には適さない。ハフマン符号化は、符号化に用いるハフマン木（Huffman Tree）を作成しながら変換を進める動的（Adaptive）ハフマン符号化と、一度データ値の出現頻度を求めてハフマン木を作成した後に符号変換を行う静的（Static）ハフマン符号化に分類される。質量スペクトルのデータ値の出現のパターンは、スペクトル中のランダムな場所に質量ピークが現れ、特別な規則性はないので、静的ハフマン符号化が適している。【００３２】
静的ハフマン符号化を実行する際、まず全てのデータ値を読み込んで、それぞれのデータ値の出現頻度表（Frequency Table）を作成する必要がある。コンピュータなどでプログラムを作成する際には、１６ビットのデータ値の出現頻度表をメモリ内部に確保するのは容易である。しかし、FPGAなどのハードウェアデバイスで、このようなメモリを確保するのは容易ではなく、また、このような表からハフマン木を作成する際にも、大きなメモリを必要とすることや処理時間が長くなることが問題である。【００３３】
したがって、質量スペクトルのデータ値を適当な長さのビット列に分割し、それぞれのビット列に静的ハフマン符号化を実施するのが有効である。このときに、頻繁に現れるデータ値の変化する部分が分割したデータの一つのビット列の部分にまとまるようにする。先ほどの例の場合、データ値が２から６の値が頻繁に現れるので、下位の３ビットが一つの分割したビット列の部分に含まれるようにする。【００３４】
また、ハードウェアで積算処理を行った場合には、データ値の頻繁に変化する部分がシフトする。先ほどの例の質量スペクトルの場合、オフセット値がおよそ３であり標準偏差は１．１であるので、仮に積算回数を６４とした場合、ベースラインの値がおよそ１９２となり、標準偏差は８．８となる。頻繁に現れるデータ値は２５５以下になるので、ビット列の変化する部分は下位８ビットの部分となり、上位８ビットの部分は質量ピークが現れた場合を除いて全てゼロになる。したがって、１６ビットのデータ値を、上位８ビットの部分と下位８ビットの部分に分割し、それぞれのビット列の部分で分割した時系列デジタル信号を作成し、それぞれに静的ハフマン符号化を適用する。【００３５】
分割したビット列の位置や長さは、積算回数に応じて変化させてもかまわない。例えば、積算回数１回の場合は、下位３ビットを一つのビット列の部分としてもかまわない。また、積算回数６４の時に、頻繁に現れるデータ値の範囲が（ベースライン）±３×（標準偏差）として１６６から２１８の範囲とみなせば、各データ値から１６６を引けば、頻繁に現れるデータ値の範囲が０から５２となり、下位６ビットを一つのビット列の部分とすることができる。しかし、データ値の出現頻度は変化しないのでハフマン符号化を実施した後の符号の平均長は変わらず、圧縮の効率も変化しない。ハフマン符号と元のデータ値の対応表を転送する際に、各部分ビット列の上位に現れるビット０の個数が増えるだけである。したがって、積算回数に応じてビット列の位置や長さを変化させても大きな効果は見込めない。FPGAなどのハードウェアデバイスで処理できる範囲でビット列のビット長を適当に選定すれば良い。【００３６】
時系列デジタル信号の長さ、すなわち質量スペクトルのデータ値の数の上限を１００万とすると、出現頻度表の各要素の値の上限は１００万であり２０ビットで表せる。分割したビット列のビット長を仮に１０ビットとすると、出現頻度表の要素の数は１０２４であるので、２０キロビットのメモリで実現できる。ハフマン符号化の処理にはこの数倍のメモリ量があれば実現できるので、ビット長が１０ビット程度であればFPGAなどのハードウェアデバイスでの実現が可能である。これ以上にビット長が大きくなると、FPGA外部にメモリデバイスを設ける必要があり、外部メモリの読み書きの時間により圧縮処理速度が低下してしまう。【００３７】
これまでは、データ値のビット長を１６ビットとしたが、実際のイオン信号記録器では、ADCに入力したアナログ信号がADC変換範囲を超えたことを示すオーバーレンジのビットを付加したり、積算回数を増やすためにビット数を増やしたりする場合がある。このような時にも、頻繁に現れるデータ値が変化させるビット（ベースライン情報）の部分が、全て含まれるように一つのビット列を形成し、他のビットもハードウェアデバイスでの実現が可能な範囲内で、適当なビット列を形成するように分割すれば良い。【００３８】
すなわち、イオン信号記録器で記録された時系列デジタル信号を、ベースライン情報を含むビット列と、一つあるいは複数のベースライン情報を含まないビット列とに分割し、分割されたそれぞれの時系列デジタル信号に静的ハフマン符号化を実施することにより、データ量の圧縮を実現する。【００３９】
言うまでも無いが、データ処理装置へ圧縮されたデータを転送する際には、データの長さや、圧縮されたデータを復元する際に用いるハフマン木の情報や、圧縮符号に対応する元のデータ値などが付加される。  【００４０】
以上に述べたように、データ値を分割することにより、ハードウェアで効率良く圧縮処理が行うことが可能となる。しかし、ベースライン情報を含まないビット列からなる時系列デジタル信号の場合、ビット列のほとんどは全てのビットが０からなるビット列であり、これらは１ビットの符号に変換される。一方、このような時系列デジタル信号の平均情報量は０に近く、さらなる圧縮が可能である。このように、全てのビットが０からなるビット列という同じビット列が連続する場合、連長符号化（RLE; Run-length Encoding）が有効である。つまり、分割されたベースライン情報を含まないビット列からなる時系列デジタル信号を連長符号化によりあらかじめ圧縮しておき、そのデータに対して静的ハフマン符号化を適用する。【００４１】
連長符号化の方式では、TIFF（Tagged Image File Format）ファイルに用いられているPackBits方式が有名であるが、連続する値が１２７個（８ビットの場合）ごとに長さを表すコードを挿入する必要があるため、ゼロレングス符号化（ZLE; Zero Length Encoding）やスイッチ連長符号化（SRLE; Switched Run Length Encoding）を用いる方が、質量スペクトルの圧縮には適している。【００４２】
ゼロレングス符号化は、全てのビットが０からなるビット列が連続する数を数え、それを２種類の符号で表現する方式である。表記を簡単にするため、ビット列の長さが仮に８ビットであるとし、８ビットのビット列の符号をその１０進数表記の数字を「」で囲って表す。例えば、００００００００（２進数）のビット列は「０」で表し、１１１１１１１１（２進数）のビット列は「２５５」で表すことにする。まず、圧縮したい符号「０」が連続する数を数える。連続する数をＮとすると、Ｎ+１を２進数で表現し、先頭のビット１を除いた他のビットについて、ビットが０の時には「０」、ビットが１の時には「１」の符号を用いて表現する。例えばＮが５の時にはＮ+１は６であるので２進数で表すと１１０である。先頭の１を無視して残りの１と０に対して、「１」、「０」という符号列を割り当てる。例えばＮが１１の時にはＮ+１は１２であるので２進数で表すと１１００である。先頭の１を無視して残りの１００に対して、「１」、「０」、「０」という符号列を割り当てる。このように、PackBits方式などと違って、長さを表すコードに複数の符号を使用することになるが、同じデータ値が連続する長さが大きい場合には、PackBits方式のように１２７個（８ビットの場合）ごとに長さを表す符号を挿入する必要が無いため、圧縮率を高めることができる。但し、データ値「０」の連続する長さを表現するために、「０」と「１」の二つの符号を使用したため、他のデータもそれに応じて変更する必要がある。一般的な方法は、「１」から「２５３」までのデータ値は、データ値に１を加えて、それぞれ「２」から「２５４」という符号に変換する。さらに、「２５４」は「２５５」、「０」という符号列に変換し、「２５５」は「２５５」、「１」という符号列に変換する。したがって、「２５５」に続く「０」や「１」は連続するデータの長さを表す符号列の一部ではなくデータ値「２５４」または「２５５」を識別する符号を表し、それ以外の「０」や「１」は連続するデータの長さを表す符号列であると解釈される。連続するデータが多い時、「０」や「１」の出現頻度も多くなり、これはハフマン符号化において少ないビット数の符号に変換されるため、さらに圧縮効率が高まる。【００４３】
スイッチ連長符号化は、あらかじめ異なるデータ値が続く部分と同じデータ値が続く部分とが繰り返すことを前提として、異なるデータ値が続く部分の先頭にはその長さを表す符合を挿入し、同じデータ値が続く部分はその長さを表す符合に変換する。２５５個（８ビットの場合）以上のデータが続く場合には、符号「２５５」を挿入し、残りの長さを同様に符号化する。PackBits方式の場合、１２７個ごとに符号とデータ値が生成されるのに対し、スイッチ連長符号化では２５５ごとに長さを表す符号のみが生成されるので、圧縮効率が向上する。また、ハフマン符号化においては、符号「２５５」が少ないビット数の符号に変換されるため、さらに圧縮効率が高まる。【００４４】
後段のハフマン符号化まで実施した後での圧縮効率は、ゼロレングス符号化の方がスイッチ連長符号化よりも優れている場合が多いが、どちらの方式を採用した場合でも圧縮率は充分に高く、実用的には大きな違いはない。【００４５】
上述では信号記録器がＡＤＣを用いた場合について述べたが、時間／デジタル変換器（TDC; Time to Digital Converter）を用いてもよい。ＴＤＣを用いた場合には、ＡＤＣを用いた場合ほど顕著ではないが、バックグラウンド情報が多く存在する場合には有効な圧縮手段となる。
【発明の効果】
【００４６】
本発明に係る飛行時間測定装置によれば、信号記録器でハードウェアデバイスによる高速な圧縮処理が可能になり、コンピュータなどのデータ処理装置にデータを転送する時間を短縮し、装置の処理性能を向上させると同時に、ハードディスクなどの外部記憶装置の使用量を減らすことにより、ＤＶＤなどのメディアにデータをバックアップする頻度を減少させることができる。また、信号記録器でより高いサンプリング周波数で信号の記録が行えるようになるので、分解能を向上することで装置の性能を改善することが可能になる。飛行時間型質量分析装置の場合には、質量分解能が向上する。
【図面の簡単な説明】
【００４７】
【図１】本発明に係る飛行時間データの圧縮手順。
【図２】質量スペクトルの一例。
【図３】図２の質量スペクトルのm/z値が３３０から３４５の部分の質量スペクトル。
【図４】図３と同様の質量スペクトルを１０００回積算処理した積算スペクトル。
【図５】図４の積算スペクトルの縦軸拡大図。
【図６】１GHｚのクロック周波数のADCで測定されたイオンピーク近傍のデータの一例。
【図７】本発明の一実施例である高速液体クロマトグラフイオントラップ飛行時間型質量分析装置（LC-IT-TOFMS）の要部の構成図。
【図８】変化するビットが上位８ビットに含まれる質量ピークを複数有する質量スペクトルの一例。
【符号の説明】
【００４８】
１…高速液体クロマトグラフ
２…イオン導入光学系
３…飛行時間分析器
４…イオントラップ電源
５…イオン信号記録器
６…データ処理装置
７…制御回路
１１…リング電極
１２、１３…エンドキャップ電極
１４…飛行空間
１５…イオンリフレクタ
１６…イオン検出器
１７…イオン発生器
２１…イオン捕捉空間
【発明を実施するための最良の形態】
【００４９】
以下、本発明に係る飛行時間測定装置の一例として、飛行時間型質量分析装置について説明する。
図７は高速液体クロマトグラフ（LC）を質量分析のための前処理装置として使用する高速液体クロマトグラフイオントラップ飛行時間型質量分析装置（LC-IT-TOFMS）の腰部の構成図である。液体状の試料がLC１に注入され、その成分の特性によって異なる時間に溶出される。【００５０】
LC１から時系列的に溶出される液体試料は、イオン導入光学系２によってイオン化され、真空中に導入される。イオン導入光学系２は、イオン化プローブ、イオンガイドからなる。【００５１】
イオン化にはエレクトロスプレーイオン化や大気圧化学イオン化（共に図示せず）などのイオン化プローブが使用され、試料を液滴化し、溶媒を蒸発させ、電荷を付与することによりイオンを生成する。これらのイオンは差動排気を行いながら、真空中のイオンガイドへと送られ、多重極電場により濃縮保持される。蓄積されたイオンは、適当なタイミングで飛行時間分析器３の構成要素であるイオン発生器１７へと送られる。【００５２】
飛行時間分析器３は、イオン発生器１７と、飛行空間１４とイオンリフレクタ１５とイオン検出器１６から構成されている。【００５３】
イオン発生器１７には、イオントラップが使用され、一つのリング電極１１と二つの互いに対向するエンドキャップ電極１２、１３により構成されている。リング電極１１には高周波高電圧が印加されて、一対のエンドキャップ電極１２、１３との間に形成される四重極電場によってイオン捕捉空間２１を形成し、そこにイオンを捕捉する。イオントラップ内では、イオンの選別や解離を行って、飛行時間測定を行う前の予備分析が行われる。イオントラップの各電極１１、１２、１３は、イオントラップ電源４に接続されており、分析ステップに応じて適当な電圧が印加される。また、イオントラップ電源４は、イオン信号記録器５（TRIG OUT）からのトリガ信号の入力により、イオン捕捉空間２１に捕捉されているイオンを加速して、飛行空間１４へと放出し、イオントラップを飛行時間分析器３のイオン発生器として機能させる。具体的には、トリガ信号を入力すると同時に、例えば正イオンを測定する場合には、リング電極１１の電圧を０Vにし、エンドキャップ電極１２の電圧を＋３７６０Vにし、エンドキャップ電極１３の電圧を−７０００Vにする。この操作により、正イオンは飛行空間１４へ加速されて導入される。【００５４】
飛行空間１４は、例えば正イオンを測定する場合には、イオン加速時のエンドキャップ電極１３の電圧と同じ電圧である−７０００Vにする。したがって、この中を飛行するイオンには電界がかからず、一定の速度で飛行する。【００５５】
飛行空間１４の端部には、イオン発生器１７から導入されたイオンを反射するためのイオンリフレクタ１５が設置されており、イオン発生器１７内部でのイオンの初期位置やエネルギーのばらつきを補正するべく適当な電圧が印加されている。イオンリフレクタ１５に入射したイオンは、イオンリフレクタ１５の内部電界で減速された後、再びイオン検出器１６へ向かって再加速される。イオンリフレクタ１５で反射されたイオンは、再び飛行空間１４の内部を一定の速度で飛行し、イオン検出器１６へ到達する。【００５６】
イオン検出器１６にはMCP（Micro Channel Plate）が使用されており、到達したイオンの数に比例した振幅のアナログ信号パルスを発生する。【００５７】
また、飛行空間１４、イオンリフレクタ１５、イオン検出器１６にも、図示しない電源が接続されており、イオンの極性などに応じて適当な電圧が印加されている。【００５８】
イオン検出器１６から発生するアナログ信号は、イオン検出信号としてイオン信号記録器５の信号入力端子（SIGNAL）に接続されている。イオン信号記録器５は、スタート信号の入力（START）により測定を開始し、１GHｚのサンプリングクロックにより１ns間隔でイオン検出信号をＡ／Ｄ変換して時系列デジタル信号として記録している。【００５９】
イオン信号記録器５で収集されたデータは、図１に示した手順により圧縮処理が行われる。圧縮されたデータは、適当なタイミングでコンピュータなどのデータ処理装置６へ送られ、横軸を質量に変換して表示したり、ピーク位置の計算や、その他の様々な処理が行われる。制御回路７では、上記構成要素のそれぞれの電圧やタイミングを、分析の各フェーズに応じて制御している。【００６０】
イオン信号記録器５で収集された時系列デジタル信号のデータに圧縮処理を行うことにより、制御回路７へ転送する時間が短縮され、すぐに次の作業を行うことができる。また、データの記録に要する負担も減少する。【００６１】
図２に示したデータは、その一例である。m/z値が２００から４００のデータ点数は、１０５２６である。２バイトで一つのデータ値を構成しているので、一つの質量スペクトルは２１０５２バイトのデータ量になる。このデータを下位８ビットと上位８ビットに分割する。ベースライン情報を含む下位８ビットの時系列デジタル信号に静的ハフマン符号化を実施すると、データ長に３バイト、ビット長に１バイト、ハフマン木とデータ値に３０バイトを含め、１７０７バイトに圧縮される。平均ビット長は１．３ビットである。理論限界である平均情報量の０．８９ビットには及ばないが、８ビットのデータが１．３ビットへ圧縮され、データ量は１６％に減少する。【００６２】
図２のデータでは、最大値が（オフセット値の３を加えて）５０であるので、上位８ビットは全て「０」である。ゼロレングス符号化＋静的ハフマン符号化を行うと、データ長に３バイト、ビット長に１バイト、ハフマン木と元データ値と符号化データに４バイトで、８バイトに圧縮される。スイッチ連長符号化＋静的ハフマン符号化を行うと、データ長に３バイト、ビット長に１バイト、ハフマン木と元データ値と符号化データに１１バイトで、１５バイトに圧縮される。このように、ベースライン情報を含まないビット列からなる時系列データは、ベースライン情報を含むビット列からなる時系列データに比べて、極端に小さいデータ量に圧縮される。【００６３】
図８に示した質量スペクトルは、変化するビットが上位８ビットに含まれる（信号強度が２５６以上の）質量ピークを複数有する質量スペクトルの一例である。データ点数は１３７９０で、２７５８０バイトのデータ量である。まず、下位８ビットを圧縮すると、ヘッダーやハフマン木など全てを含むデータ量は１１６０３バイトとなり、もとのサイズの８４％に圧縮される。【００６４】
一方、上位８ビットについては、静的ハフマン符号化だけの場合圧縮後のサイズは１８０１バイトであるが、ゼロレングス符号化＋静的ハフマン符号化を行うと２４５バイトに、スイッチ連長符号化＋静的ハフマン符号化を行うと３７４バイトに圧縮される。ゼロレングス符号化の方が圧縮率は高いが、スイッチ連長符号化でも充分な圧縮効率が実現される。【００６５】
下位８ビットの圧縮データと上位８ビットの圧縮データをあわせるとスペクトル全体の圧縮後のサイズは１１８４８バイトとなり、元のサイズの４３％の大きさに圧縮されたことになる。図８の質量スペクトルのデータの平均情報量は６．５８８ビットであるので理論的な圧縮限界は１１３５６バイトであり、本発明による圧縮を行うことにより、このようなデータに対しても圧縮限界に近いサイズまで圧縮され、充分な圧縮効率が得られることが確認される。【００６６】
図５の例では、上位８ビットと下位８ビットに分割することにより、上位８ビットがベースライン情報を含まないビット列となり、下位８ビットがベースライン情報を含むビット列となり、高い圧縮効率が得られることが示された。ここで、図８に示した質量スペクトルの各データ値を、奇数番目のビット列と偶数番目のビット列に分割した例と比較してみる。どちらのビット列にもベースライン情報を含ませて静的ハフマン符号化を行うと、奇数番目のビット列は６１６８バイトに圧縮され、偶数番目のビット列は７０３７バイトに圧縮され、これらを合わせると１３２０５バイトとなる。ベースライン情報を含むビット列と含まないビット列に分割した場合に比べて圧縮効率が低くなることが示される。【００６７】
以上の結果から、上記飛行時間型質量分析装置の実施例においては、イオン検出信号を時系列デジタル信号として記録した後、イオン信号記録器からコンピュータなどのデータ処理装置へデータを転送する前に、ハードウェアで高速にデータ圧縮処理を行う方法が提供される。【００６８】
これにより、データ処理装置の表示やデータ格納の処理の負担が軽減され、イオン信号記録器のサンプリング周波数を増加して飛行時間分析装置の分析性能を向上させることが可能になる。【００６９】
上記実施例は本発明の単に一例にすぎず、本発明の趣旨の範囲で適宜変更や修正したものも本発明に包含されることは明らかである。
【産業上の利用可能性】
【００７０】
本発明は、信号を高い周波数でサンプリングを行って記録し、コンピュータなどのデータ処理装置へデータを転送する信号記録器として利用される。例えば、飛行時間型質量分析装置におけるイオン信号記録器として使用される。
【図１】
2009069225.tif 000003
【図２】
2009069225.tif 000004
【図３】
2009069225.tif 000005
【図４】
2009069225.tif 000006
【図５】
2009069225.tif 000007
【図６】
2009069225.tif 000008
【図７】
2009069225.tif 000009
【図８】
2009069225.tif 000010
【国際調査報告】
2009069225.tif 000011
2009069225.tif 000012
2009069225.tif 000013
2009069225.tif 000014