(57)【要約】【課題】研究者とのインターフェースであるＧＵＩ部の高速化処理をソフトウエアにより行って描画速度を向上させ、大量の遺伝子型判定処理の効率を高めることができるクロマトデータ処理システムを提供する。【解決手段】まず、特徴として、ノイズデータ除去条件決定処理を行う。これは、不要なデータを切り捨てることによって通常、３２ビット必要なバッファを８ないし１６ビットにして、メモリーの効率的な利用と高速処理に導こうというものである。次に、高速化表示をするためクロマトデータを分割して表示モジュールにデータを送信する条件を決定する。データの送信個数は多すぎても処理速度が落ちるため、クロマト波形データを分割して表示モジュールに渡す方法をとる。【選択図】        図８
2005265637.tif 000002
【特許請求の範囲】
【請求項１】
記憶部に格納された個体サンプルごとのクロマト信号データを読み出して描画表示するクロマトデータ処理システムにおいて、
所定の信号強度区間毎に前記記憶部のデータをヒストグラム処理して頻度分布を算出する頻度分布算出手段と、
前記頻度分布算出手段により求めた頻度分布からノイズ信号部分を決定するノイズ決定手段とを備え、
前記ノイズ決定手段で決定されたノイズ信号部分を除去し、クロマト信号データのビット数を軽減させることを特徴とするクロマトデータ処理システム。
【請求項２】
前記ノイズ決定手段は、前記頻度分布算出手段により求められた頻度分布の頻度が０の信号強度区間が所定の数以上連続して続く場合に最初の信号強度区間をカットオフ値と設定することを特徴とする請求項１記載のクロマトデータ処理システム。
【請求項３】
前記ノイズ決定手段は、前記頻度分布算出手段により求められた頻度分布曲線の下り勾配の降りきった位置から頻度分布の頻度が０の信号強度区間が連続するかどうか検査することを特徴とする請求項２記載のクロマトデータ処理システム。
【請求項４】
記憶部に格納された個体サンプルごとのクロマト信号データを読み出して描画表示するクロマトデータ処理システムにおいて、
クロマト信号データに基づいて描画処理を行うＧＵＩ部を備え、前記記憶部からのクロマト信号データを前記ＧＵＩ部上の表示モジュールに送信する場合には、所定個数のデータを前記記憶部から一度に読み出して送信することを特徴とするクロマトデータ処理システム。  
【請求項５】
前記記憶部から一度に読み出すデータ個数の決定は、クロマト信号データの読み出し個数を順次増減させて、前記ＧＵＩ部による描画速度を計測し、最小値を求めることを特徴とする請求項４記載のクロマトデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを用いた一塩基多型（ＳＮＰ）解析のためのデータ処理に関するもので、特にキャピラリー電気泳動法を利用して取得した大量の遺伝子データを高速に効率良く処理するためのクロマトデータ処理システムに関する。
【背景技術】
【０００２】
一塩基多型（ＳＮＰ）解析では、まず、ヒトゲノムからの研究疾患などに有用とされる遺伝子などにあるＳＮＰの発見作業を行うか、既にゲノムデータベースに登録されているＳＮＰを利用して解析を始める。
【０００３】
次に、ＳＮＰの中でも有用とされる部分については、患者サンプルなどの個体サンプルを複数利用し、遺伝子型を調べるためにＳＮＰタイピングを実施する。現状では、多数の個体サンプル、多数のＳＮＰ部のタイピング解析を行うことで、統計的に安定した数値を得ることができる。したがって、コンピュータ処理において高速処理が要求される。さらにはデータ処理アルゴリズムが変更されることが多く、ソフトウェアの柔軟な対応を求められる。
【０００４】
ＳＮＰタイピングのための実験、解析手法にはいくつかあり、例えばインベーダ法やＴａｑｍａｎＰＣＲ法、ＰＬＡＣＥ‐ＳＳＣＰ法などがある。これらの手法は、それぞれの特性に応じて使い分けられており、ＰＬＡＣＥ‐ＳＳＣＰ法について説明すると、ＳＳＣＰ（Single Strand Conformation Polymorphism） 法とは二本鎖ＤＮＡ変性によって一本鎖ＤＮＡとしたものを変性剤を含まないゲル中で電気泳動によって分離すると配列特異的な移動度を示すことを利用して、塩基配列変化を移動度の違いとして検出する方法である。
【０００５】
それを、より自動化に適した方法として、これまでのラジオアイソトープで標識し電気泳動する替わりに、キャピラリー電気泳動を利用したのがＰＬＡＣＥ‐ＳＳＣＰ法である。
【０００６】
ＰＬＡＣＥ‐ＳＳＣＰ法では、キャピラリー中で分離した試料を蛍光分析などの手法を用いて電極付近で一定時間検出する。試料からの蛍光信号は波長フィルタを通して検出器により検出されて電気信号に変換され、Ａ／Ｄ変換された後、コンピュータシステムに取り込まれる。
【０００７】
上記のように検出されたデータ（クロマトデータ）は、コンピュータ内部で、ノイズのフィルタリングやアライメント処理などＳＳＣＰ法による必要な解析が行なわれ、波形の描画やピークの検出などの処理が行われ、ＧＵＩ（Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ）によって研究者等に結果を表示するように構成されている。これらの処理をソフトウェアで行った後、ＳＮＰの解析として遺伝子型の判定処理を行っている。
【非特許文献１】PubMed：9371745
【非特許文献２】Methods in Molecular Biology, 163号, 2001年
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、上記従来の技術では、ＧＵＩ部において高速処理が行えず、大量の遺伝子型判定処理の効率が悪くなっていた。
【０００９】
特に、ＳＳＣＰ法を用いた遺伝子型判定では、キャピラリー電気泳動装置から得られる電気信号を数値として表した情報をコンピュータの画面上に描く必要があるが、サンプリングポイントが通常1万ポイント程度あり、さらにそれが蛍光試薬の数だけ存在する。
【００１０】
例えば、通常、サンプリングポイント １万 × 蛍光試薬 ４色（約４万）のサンプリングデータが1個体サンプルに存在する。現状では、一度に９６個体サンプルから３８４個体サンプルの処理がキャピラリー電気泳動で可能なために、遺伝子型判定処理も同様な数を処理しなければならない。
【００１１】
遺伝子型判定処理を行うためには、上記のデジタルデータ（サンプリングポイントデータ）を繋ぎ合わせて各個体サンプルごとにクロマト波形を描き、これらのクロマト波形を画面上で並列的に表示する必要があるが、上記のような大量のデジタルデータを用いているために、クロマト波形が描画されるまで時間がかかり、遺伝子型判定が迅速に行えないという問題があった。
【００１２】
また、描画処理速度を上げるためには、ＤＭＡ（ダイレクトメモリーアクセス）などを利用してハードウェアで対応することも考えられるが、ハードウェアを利用する方法では開発コストが高くなるという問題があった。
【００１３】
本発明は、上述した課題を解決するために創案されたものであり、表示データからあらかじめノイズ部分を除去し、メモリーの効率的な利用をすることと、ＶＲＡＭに複数データを一度に渡すことのできる表示モジュールを効率良く利用することで、研究者とのインターフェースであるＧＵＩ部の高速化処理をソフトウエアにより行って描画速度を向上させ、大量の遺伝子型判定処理の効率を高めることができるクロマトデータ処理システムを提供することを目的としている。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、請求項１記載の発明は、記憶部に格納された個体サンプルごとのクロマト信号データを読み出して描画表示するクロマトデータ処理システムにおいて、所定の信号強度区間毎に前記記憶部のデータをヒストグラム処理して頻度分布を算出する頻度分布算出手段と、前記頻度分布算出手段により求めた頻度分布からノイズ信号部分を決定するノイズ決定手段とを備え、前記ノイズ決定手段で決定されたノイズ信号部分を除去し、クロマト信号データのビット数を軽減させることを特徴とするクロマトデータ処理システムである。
【００１５】
また、請求項２記載の発明は、前記ノイズ決定手段は、前記頻度分布算出手段により求められた頻度分布の頻度が０の信号強度区間が所定の数以上連続して続く場合に最初の信号強度区間をカットオフ値と設定することを特徴とする請求項１記載のクロマトデータ処理システムである。
【００１６】
また、請求項３記載の発明は、前記ノイズ決定手段は、前記頻度分布算出手段により求められた頻度分布曲線の下り勾配の降りきった位置から頻度分布の頻度が０の信号強度区間が連続するかどうか検査することを特徴とする請求項２記載のクロマトデータ処理システムである。
【００１７】
また、請求項４記載の発明は、記憶部に格納された個体サンプルごとのクロマト信号データを読み出して描画表示するクロマトデータ処理システムにおいて、クロマト信号データに基づいて描画処理を行うＧＵＩ部を備え、前記記憶部からのクロマト信号データを前記ＧＵＩ部上の表示モジュールに送信する場合には、所定個数のデータを前記記憶部から一度に読み出して送信することを特徴とするクロマトデータ処理システムである。  
【００１８】
また、請求項５記載の発明は、前記記憶部から一度に読み出すデータ個数の決定は、クロマト信号データの読み出し個数を順次増減させて、前記ＧＵＩ部による描画速度を計測し、最小値を求めることを特徴とする請求項４記載のクロマトデータ処理システムある。
【発明の効果】
【００１９】
本発明によれば、表示データからあらかじめノイズ部分を除去し、メモリーの効率的な利用をすることと、ＶＲＡＭに複数データを一度に渡すことのできる表示モジュールを利用し、その表示モジュールを効率よく利用する方法で、動作に制限をつけず、常識の範囲のメモリーを搭載したＰＣで動作させることができる。
【００２０】
また、クロマトデータを高速に処理することで、大量の遺伝子型判定処理を迅速に行うことができる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して本発明の一実施形態を説明する。図１は本発明が適用されるシステム全体の構成を示す。
【００２２】
図１のように、キャピラリー電気泳動装置１で分析されたデータ（以下クロマトデータ）は、本発明の内容を含む解析ソフトＧＵＩ（Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ）部２に処理のために取り込まれる。取り込まれたクロマトデータは、フィルター処理やピーク検出、データの整列、アレル頻度計算などのモジュールをもったデータ処理部４とデータのやりとりを行いながら、それぞれのデータの遺伝子型を決定していき、その結果を外部の一般的な解析結果データベース３に保存する。
【００２３】
この、GUI部２とデータ処理部４のやり取りをさらに詳しく示したのが図２である。キャピラリー電気泳動装置１のデータをＧＵＩ部２のハードディスク上に一旦保存する（Ｐ１）。
保存したデータを表示や処理用にメモリ上に展開し、メモリー上のデータをそのまま画面上に表示する（Ｐ２）。
【００２４】
処理対象のデータを表示されたデータより選択し、データ処理部４に引渡し、FFTフィルターを利用したノイズ除去、ベースライン補正などを行ってデータを平滑化する処理を行う。
得られた数値情報化したクロマトデータのピーク（以下ピーク）検出をＳＮＰタイピング処理のために行う。ここで検出したピーク情報を以下、「ＳＮＰタイピング用ピーク情報」という。処理後、再度ＧＵＩ部２に戻し、表示する（Ｐ３）。表示した例を図３に示す。
【００２５】
次に、アライメント（整列）処理のためのデータをＧＵＩ部で選択し（Ｐ４）、再度データ処理部４でアライメント処理を行う。
【００２６】
現状のキャピラリー電気泳動装置の機能だと、９６もしくは３８４個体サンプルを一度に電気泳動実験を行うことが可能である。これら、９６ないし３８４サンプルのデータは一斉に電気泳動を始める。同一の電圧をかけて実験するので、９６ないし３８４のサンプルは同じ速さで、キャピラリーチューブ内を移動するはずである。したがって、SNPなどのサンプルの個体差がない部分では各サンプルで同時に波形のピークが得られるはずである。
【００２７】
しかし、実験上のさまざまな誤差で、キャピラリーチューブ内を移動する早さがサンプル間で異なってしまう。結果として、サンプルのクロマト波形のピークが現れる時間が少しずつ異なってくる。この結果はクロマト波形を分析すると、サンプル間でのピーク位置が微妙にずれるのである。[kk1]したがって、これらのクロマト波形のピークのずれをソフトウェアで補正し、サンプル間で異なるピークの位置をあわせる必要がある。アライメントはこの微妙な違いを補正する作業である。
【００２８】
次に、処理後のデータは再度、目で確認するためにGUI部で表示される（Ｐ５）。これらのデータから遺伝子型を決定するために必要なアレル（スペクトル）を選択する。このとき、場合によっては正確にアレルを求めるため、ピークの削除や検出を研究者と対話式で処理を行う（Ｐ６）。検出されたピーク情報や、ピークを含むスペクトルの面積などをアレル頻度計算部に引き渡し、処理を行う。その処理結果を利用して、遺伝子型を決定する（Ｐ７）。
【００２９】
本発明は、特に上述した図２の処理ステップＰ２、Ｐ３、Ｐ５に関するもので、クロマトデータ表示高速化のための処理システムである。
【００３０】
図３は ＧＵＩ部で表示したキャピラリー電気泳動のデータの例である。
【００３１】
（１）がクロマト波形描画フレーム領域で、蛍光試薬４[kk2]色分×８個体サンプルのデータを同時に表示した例である。（２）は実験サンプルデータを管理する部分にあたり、処理に必要なデータをここで選択する。（３）で示す線はサンプルごとのクロマト波形の各スペクトラムのピーク位置をあらわすために、ピークの位置に線を引いた例である。（４）がそのピークを拡大した様子である。
【００３２】
図４はキャピラリー電気泳動装置や処理部から渡されるクロマトデータ例を示す。
【００３３】
この例は、図２のステップＰ２で得られたデータ例で[kk3]あり、反応用の蛍光試薬を４色利用しているために縦の列が４列存在する。（１）で示す数字が、キャピラリー電気泳動装置やデータ処理部から送られてきた個々のサンプリングポイントに対応する信号強度を数字に置き換えたデータである。（２）で示す部分はこの例では11201ポイントのデータがあり、その長さは泳動時間によってことなる。
【００３４】
したがって、（サンプリングポイント） 11201 × （蛍光試薬） ４ 色 = 44804のサンプリングデータが1個体サンプルに存在することになる。
【００３５】
データの構造は図７に示す。図７は、サンプリングポイントの数値を縦軸に蛍光試薬の数を横軸にとるマトリックスを模式的に表したものである。「ｎ」方向がサンプリングポイントで、「ｍ」方向が蛍光色素である。図４の例でいうと、n=11201、m=4で11201×4のマトリクスである。
【００３６】
このようなデータがサンプル数分存在する。現状では、一度に９６個体サンプルから３８４個体サンプルの処理がキャピラリー電気泳動装置で可能なために、ｎ×ｍのマトリクスデータが、一度に９６ないし３８４個、ＧＵＩ部に入ってくる。これらのデータをグラフィック表示した例が、図３である。蛍光試薬４色分×８個体サンプルのデータを同時に表示した例である。
【００３７】
また、データ処理部と交換するデータとしてＳＮＰタイピング用ピーク情報のデータが従来用いられており、図５に示す。本データは、図３の（４）に示されたＳＮＰタイピングに利用するスペクトラムのピークの位置情報を示したもので、ＳＮＰタイピング用ピーク情報とは図３のような波形（クロマト波形という）で構成されている。図５はクロマト波形それぞれのスペクトルのピーク強度（１）とその位置を羅列した情報（２）を示す。
【００３８】
本発明では、従来用いられていた図５のＳＮＰタイピング用ピーク情報を用いずに、キャピラリー電気泳動装置や処理部から渡されるクロマトデータのサンプリングデータ（図４）とＳＮＰタイピング用ピーク情報（図５）と同じ形式で作られた、ノイズ除去用ピークデータ（図６）を用いる。図６の（１）はクロマト波形それぞれのスペクトルのピーク強度を示し、（２）はそのピーク位置情報を示す。
【００３９】
ＳＮＰタイピング用ピーク情報とノイズ除去用ピークデータの違いは、ＳＮＰタイピング用ピーク情報はSNPタイピング処理に必要な条件でピーク検出を行っているが、ノイズ除去用ピークデータはすべてのクロマトデータの個々のスペクトルのすべてのピークを検出している。
【００４０】
全体の処理の流れを図８に示す。キャピラリー電気泳動装置やデータ処理部から渡された表示用の図４で示すクロマト波形データ、図６で示すノイズ除去用ピーク情報のデータと図７の（２）で示す表示範囲指定のデータである。すなわち、クロマトデータの表示範囲を指定するためのデータであり、表示したい範囲を指定したデータであって、サンプリングポイントの場所（データポイント）を範囲で指定する２つの数字であり、図７の(２)で示す「ｎ」の範囲である。
【００４１】
これらのデータは、ファイル、メモリー、通信手段によってＧＵＩ部に存在する表示モジュールに渡される（Ｓ１）。渡されたデータは、モジュール内で処理のために一旦メモリー上に展開され、各データの有無のチェックを行う（Ｓ２）。上述したクロマト波形データ、ノイズ除去用ピーク情報データ、表示範囲指定データの各データの内、必須データはクロマト波形データである。表示範囲指定データがない場合、クロマト波形データのすべての範囲が処理の対象ととしている。
【００４２】
ノイズ除去用ピークデータは必ず本処理にには必要であるために、あるかどうかチェックし（Ｓ３）、なければ波形ピークの情報を後述する「ノイズ除去用ピークデータ検出法」にしたがって作成する（Ｓ４）。
【００４３】
クロマト波形データのノイズデータ除去条件決定処理がすでに終了しているかをチェックする（Ｓ５）。ノイズデータ除去条件決定処理は、不要なデータを切り捨てることによって通常、３２ビット必要なバッファを８ないし１６ビットにして、メモリーの効率的な利用と高速処理に導こうというものである。データを圧縮するのではなく、ＳＳＣＰ特有の高いピークを持つスペクトラム波形を取り除き、有効的にバッファーを利用することが目的である。
【００４４】
ノイズデータ除去条件は、一度に処理をしようとする９６ないし３８４サンプルを１グループとすると、そのグループ（以降データグループ）ごとに、条件を決定していく。
【００４５】
このノイズデータ除去条件決定処理は、毎回のデータで実行する必要はなく、図１で示す流れでキャピラリー電気泳動装置１からＧＵＩ部２上の表示モジュールにデータが引き渡された時と、データ処理部４から表示モジュールにデータが引き渡された時にそれぞれ１回だけ行えばよい。
【００４６】
したがってノイズデータ除去条件決定処理がすでに終了しているかをチェックし、すでに終了していたら決定された条件にしたがって処理を進める。もしも、ノイズデータ除去条件が決定されていなかったら、後述する「ノイズデータ除去条件決定処理」にしたがって処理を行い、条件決定を行う（Ｓ６）。
【００４７】
次に、高速化表示をするためクロマトデータを分割してJava2Dモジュール等の表示モジュールにデータを送信する条件を決定する（Javaは登録商標です）。Java2Dモジュール等の表示モジュールは、一度にクロマト波形データ全体を渡すとＳＳＣＰ法で得られたクロマトデータは蛍光色素ごとに、１００００以上のサンプリングポイントがある。またキャピラリー電気泳動の条件によっては、さらに多くのサンプリングポイントが存在し、描画速度が著しく落ちる。
【００４８】
したがって、クロマト波形データを分割して表示モジュールに渡す方法をとる。データを分割する条件も、キャピラリー電気泳動の条件によってサンプリングポイントの数が変化するために、一概に決定できない。そこで、一度に処理をしようとするデータグループごとに、分割条件をダイナミックに決定していく。
【００４９】
まずは、この分割の条件がすでに決定されているかどうかをチェックする（Ｓ７）。本処理も毎回行う必要なく、（Ｓ５）の条件と同じく毎回のデータでする必要なく、図１で示す流れでキャピラリー電気泳動装置１からＧＵＩ部２上の表示モジュールにデータが引き渡された時と、データ処理部４から表示モジュールにデータが引き渡された時にそれぞれ１回だけ行えばよい。
【００５０】
したがって高速化表示をするためのデータ分割条件決定がすでに終了しているかをチェックし、すでに終了していたら決定された条件にしたがって処理を進める。もしも、高速化表示をするためのデータ分割条件決定が決定されていなかったら、後述する「高速化表示をするためのデータ分割条件決定処理」にしたがって処理を行い、条件決定を行う（Ｓ８）。
上記のノイズデータ除去条件でクロマト波形データのノイズ処理を行い、一旦メモリー上に展開されたクロマト波形データを置き換え、データの数を少なくする（Ｓ９）。
【００５１】
ノイズデータ除去処理が終了したデータを利用し、表示範囲指定がなされている場合は、その範囲内のデータを決定されたデータ分割条件を利用し、後述する「分割したデータの表示モジュールへの送信」の方法で表示モジュールに送る（Ｓ１０）。
【００５２】
次に、図８の処理ステップで後述すると記載された処理方法の内、まず「ノイズ除去用ピークデータ検出法」について説明する。
【００５３】
ＳＮＰタイピング用ピーク情報とノイズ除去用ピークデータの違いは、前述したように、ＳＮＰタイピング用ピーク情報はSNPタイピング処理に必要な条件でピーク検出を行っているが、ノイズ除去用ピークデータはすべてのクロマトデータの個々のスペクトルのすべてのピークを検出している。
【００５４】
クロマト波形におけるスペクトラムのピークの検出方法は、図３の(５)のようなクロマトデータについて、処理部でフィルタ処理がすでに終了し、高周波ノイズが取り去られた状態であった場合はそのまま、もしもフィルタ処理が終了していない場合は、フィルター処理を実行したあとに、微分法にて各スペクトルのピークを求め、そのピークの高さデータを取得するといった一般的な手法で行う。
【００５５】
次に、「ノイズデータ除去条件決定処理」について説明する。キャピラリー電気泳動の信号は、図９のＡ、Ｂ、Ｃのように解析には不要なノイズとされる大きな信号が取り出される。この大きな信号はプライマーの信号波形であるＡ、ＢやゴミＣや気泡の混入などによるもので、実質不要で、通常サンプリングデータの最初に出現する。これら信号は正常に利用しようとする信号に比べ、著しく高い。
【００５６】
これらのノイズ信号があるために数値を収まるためのバッファ領域を広く準備しなければならない。バッファ領域を広くすることで、処理が遅くなったり無駄なメモリーを利用していることになる。
【００５７】
SSCP法で得られるキャピラリー電気泳動からの信号強度は図１０に示すように、低いところに分布するのが特徴である。ノイズデータを除去することによって、利用する数値範囲を狭めることが可能であるために、バッファを無駄に広くする必要なく、処理も早くなる。
【００５８】
図１０では、図９のＳＳＣＰデータでのクロマトデータの信号強度の主に利用する部分のヒストグラムを示した。図１０でわかるように、データのほとんどが信号強度の弱い部分に分布している。図１０では信号強度、０から１０００までの分布で、実際に有効な範囲で示しているが、信号強度はもっと広く分布する。
【００５９】
図１１がその例で、クロマトデータ全体のデータを対象に信号強度の分布を数値で示した。途中、０が長く続く部分については、（・・・・）で省略した。図１１の信号強度で示すのが、実施例で利用したデータの信号強度の範囲で、最高強度ものデータは、７４００である。頻度は各信号強度区間に当てはまるピークデータの信号強度の頻度である。
【００６０】
図１０に全体のヒストグラムを表示してみた。すると、大きな信号の部分に３箇所ノイズが現れているのがわかる。図１２のＤ、Ｅ、Ｆである。このような特徴を利用し、最適なノイズのカットオフ値を求める。図１３に処理の流れを示す。
【００６１】
クロマトデータの全てのスペクトルのピークについて、ピークの信号強度分布を求める（Ｍ１）。求めた結果は図１１のような例になるが、信号強度区間（図９の信号強度の幅（この例では５０に設定））はＳＳＣＰ法のデータだと、最高ピークの値を１００から２００分割すれば十分である。
【００６２】
次に、頻度分布曲線の下り勾配の降りきった位置（図１０の１１）[kk4]を一般的な微分法で見つけ（Ｍ２）、頻度「０」のデータ区間を探す。
【００６３】
連続する「０」の数を求め、連続する「０」の数があらかじめ指定された数（実施例では「３」に設定）より多いときは「０」の続くブロックの最初の信号高度（図１１で実施例の数を利用すると、７０１）を仮のカットオフとする（Ｍ３）。
【００６４】
カットオフが決定されたら次にそのカットオフ値を利用して、バッファサイズを８ビットにするか３２ビットにするかを決定する。しかし、ここで分解能の補正を行う必要がある。つまりサンプリングデータの小数点以下をどれだけ有効とするかというデータの処理（以下標準化）を行い、標準化した仮のカットオフ値が含まれる２のべき乗を求める（Ｍ４）。
【００６５】
求めた２のべき乗を正式なカットオフとし（Ｍ５）、カットオフ値以上のサンプリングデータの値はノイズとみなし、カットオフ値に丸め込む処理を行う（Ｍ６）。
【００６６】
実際にこのような頻度分布の中で取り扱うデータは図４のように小数点３桁まで表現されているために、取り扱う数値の深さはまともに考えると、３２ビットの領域が必要となる。しかし、ここでは表示するという目的であるために、画面分解能もあり詳しく表示できないことを考慮し、丸め込みを行うのが通常である。仮に１６ビットで表現できる数[kk5]より大きいデータを扱う場合、32ビットの空間を準備しなければならないことになりメモリー空間だけでも４倍必要で、これらをVRAMに渡すにも余分な時間が必要となる。
【００６７】
通常の丸め込みであると、すべてのデータ（ここでいうと、０から７４００まで）を16ビット内に丸め込むという手法をとるが、ＳＳＣＰのデータは図１１の２１、２２、２３のようなデータはノイズとみなすのでこれらを、消去したあとに必要であれば丸め込みを行う。
したがっておおきなノイズデータを消すことで、データの数値範囲を出来るだけ８ビットか１６ビット程度にして、取り扱うデータ量少なくし、を出来るだけ少ないメモリーで実行できるようにする。
【００６８】
標準化したデータが、２５５以内であれば８ビット、32767[kk6]以内であれば１６ビットに収まると判断し、処理モードを決定する。処理モードが８ビットと判断された場合、２５５以上となるノイズデータ全て２５５に丸め込まれるが、実際の処理場は問題が無い。前処理用メモリー上には8ビットのデータの枠しか準備しないことによって、処理時間が短縮される。
以上述べたノイズ除去用ピークデータ検出法及びノイズデータ除去条件決定処理にしたがって処理した結果を図１５に示す。
【００６９】
本処理は、図１０で利用した値を参考にノイズ除去条件を決定した。図１１で示す表でノイズデータ除去条件決定処理にしたがって、連続する「０」の数を「３」に設定した。
【００７０】
つまり、７００より大きい信号を自動的にノイズと決定してデータの丸め込み処理を行った。
このように、自動的にノイズと必要なデータの区別をつけることができ、その結果、小数点以下を考慮するためのデータの標準化を行い、７０００近くの信号をカバーすべく確保していた３２ビットメモリーも必要な数字幅を圧縮することができるために１６ビットですむことになる。
【００７１】
次に、「高速化表示をするためのデータ分割条件決定処理」について説明する。
一回で表示モジュールに引き渡す最適サンプリングデータ数は、データの切捨て処理後のデータに対して、取り出すサンプリング数を変化させながら最短の時間で表示できる数値を決定する。
【００７２】
処理の流れは図１４に示す。測定にはすべてのデータを用いるわけではないので、測定に利用する代表データを決定する（Ｋ１）。この代表データはどのデータでもいので、適当なクロマトデータを用いる。
【００７３】
１つの分割データの数（ｒ）の初期値を適当な数にセットする。実施例で利用した数は１０でとした（Ｋ２）
【００７４】
一度にクロマトデータをｒ個取り出し、１サンプル分全てか、蛍光色素１色分のデータをｒ個ずつに分割して表示モジュールに１データ分（たとえば、図７のa(1.1)からa(1.ｒ)まで）を送り、描画時間を計測する（Ｋ３）。
【００７５】
ｒを設定したサンプリング数（この例では１０）ずつ増やしながら（Ｋ５）繰り返し描画時間測定を行い（Ｋ７、Ｋ３）、描画時間の最小値となる「ｒ」を求める（Ｋ４）。
【００７６】
最小の描画時間で書けた「ｒ」付近で、さらに小刻みに同様なルーチンで調べ、最小の時間となるｒを求める（Ｋ６）。また、設定したサンプリング数ずつ増加させた結果、ｒがサンプリングポイント数を超えた場合は、エラーとして終了する（Ｋ８）。
【００７７】
図１６に、コンピュータのスペックをＣＰＵ：ＰｅｎｔｉｕｍＩＩＩ ８００ＭＨｚ、ＲＡＭ：３８４ＭＢと固定して行った実施例を示す。（Ｐｅｎｔｉｕｍは登録商標です）
【００７８】
本実施例では２５ポイントで最高速度が得られた。このように、（図２のステップＰ２、Ｐ３）で示すキャピラリー電気泳動装置の生データを表示するときと、ピーク処理が終了しした処理データを表示する時の２箇所のタイミングで表示モジュールに引き渡すデータ量を計測し、最高の効率となる調整を行う。
【００７９】
次に、「分割したデータの表示モジュールへの送信」について説明する。
分割されたデータは、図１７の流れで処理を行う。図１４で決定された１回のデータ送信数などの初期化を行う（Ｔ１）。
【００８０】
決定された１回のデータ送信数（ｒ）分のデータを、バッファからとりだす。図７でいうと、１クロマトデータを ｒ×m個を一度に取り出し（図７の（２））、メモリ上に展開して順にＪａｖａ２Ｄの表示モジュールなどにデータを引き渡す。
【００８１】
【数１】
2005265637.tif 000003
のマトリックスで一度にデータを取り出し、一旦バッファに入れる（Ｔ３）。この際、描画範囲の指定があったなら、その範囲内で処理を行う。
【００８２】
次に、a(1.1)からa(1.ｒ)のデータを表示モジュールに引き渡す。すると、表示モジュールは送られたデータブロックを描画する（描画した例を図１９に示す）。
【００８３】
繰り返し、a(2.1)からa(2.ｒ)、a(3.1)からa(3.ｒ)、a(m.1)からa(m.ｒ)までのデータを表示モジュールに引渡しデータブロックを描画する。（描画した例を図１３‐Ｂに示す）。この作業の繰り返しを「ｒ」個ずつ、図５のｎ方向に、最後のデータ（a(1n), a(2.n), a(3.n), ・・・・・, a(m.n)）まで行う。
【００８４】
具体的な処理として、描画開始点を（ｓ）とし送信数（ｒ）を取り出した際の終了点を（ｐ）とすると終了点（ｐ）は、ｐ＝ｓ+ｒ で求められる（Ｔ４）。この最初の（ｓ）と（ｐ）で（ｍ）番目（蛍光試薬（K））までのデータブロックを描画する（Ｔ６）。次に、現在の終了点から次の開始点を求め（ｓ＝ｓ+ｒ+１）（Ｔ８）、次の（ｓ）と（ｐ）で同様にそのデータブロックを描画する。この繰り返しの処理を行い範囲指定された終了点まで描画していく（Ｔ９、Ｔ１０）。
【００８５】
このように、一度にブロックのr×ｍの配列でデータを取得し、表示モジュールに引き渡すことで、さらなる高速化とメモリの効率化が可能である。
【００８６】
従来、このようなクロマトデータを表示するには、処理量が大きいこともあって、広大なメモリー空間が利用できるサーバーでの処理を行っていた。その表示方法は、広大なメモリー空間を利用して表示する方法と、ＷＥＢサーバー形式で、一旦画像や表示用データに加工し、ＪａｖａやＨＴＭＬを利用して配信する方法である。
【００８７】
いずれにしてもサーバー上での高速処理であるのと、一旦画像や表示用データに加工し、ＪａｖａやＨＴＭＬを利用して配信した場合、リアルタイムのズームなどではサーバーと通信を行いながらの処理になるために、操作性に限界がある。
【００８８】
通常、１本のクロマトデータを描画するために図７の ａ（1.1）、ａ（1.2）、ａ（1.3）・・・・・ａ（1.ｎ）と順次数値データを取り出し表示モジュールに送り、表示モジュール内部でVRAM（グラフィックスチップがパソコンのディスプレイ画面に表示する文字や図形データを蓄えたりする専用メモリー）に書き込むことで、画面上にクロマト波形を描いていく。
【００８９】
このように、数値データを1個ずつ取り出していくので、１クロマト波形を描くには、n回この処理を繰り返して描画していく。それに、ｍ個の波形を描画するためには、合計で （ｎ×ｍ）回繰り返すことになる。この方法では、ｎやｍの値が大きくなると、多くの繰り返し処理が必要になり、コンピュータのＣＰＵなどに負荷がかかり処理時間がかかる要因となる。
【００９０】
描画処理速度を上げるためには、ＤＭＡ（ダイレクトメモリーアクセス）などを利用してハードウェアを直接制御することも考えられる。しかし、ハードウェアを利用する方法は、処理方法が変わりやすいバイオインフォマティックの分野においては不便であるし、開発費用も大きく必要とするし、通常のＰＣで動作しなくなる可能性がある。
【００９１】
しかし、上記のようにＶＲＡＭに複数データを一度に渡すことのできる表示モジュールを利用することで高速にクロマト波形を描画することができる。
【図面の簡単な説明】
【００９２】
【図１】本発明のクロマトデータ処理システムの概略構成を示す図である。
【図２】図１のシステムで処理されるデータの流れ図である。
【図３】遺伝子型判定処理に用いられるクロマト波形表示例を示す図である。
【図４】クロマト描画用のデータ例を示す図である。
【図５】ＳＮＰタイピング用ピークデータの例を示す図である。。
【図６】ノイズ除去用ピークデータの例を示す図である。
【図７】クロマト描画用のデータを模式的に示す図である。
【図８】本発明の処理フローを示す図である。
【図９】ＳＳＣＰでのクロマト波形データを示す図である。
【図１０】クロマト信号データの利用部分についての強度ヒストグラムを示す図である。
【図１１】クロマト信号データの強度分布状態を示す図である。
【図１２】クロマト信号データ全体の強度ヒストグラムを示す図である。
【図１３】ノイズカットオフ算出のためのフローを示す図である。
【図１４】データ分割条件決定のフローを示す図である。
【図１５】ノイズ除去処理を行ったクロマト波形表示の例を示す図である。
【図１６】データ分割条件決定の実施例を示す図である。
【図１７】分割したデータの表示モジュールへの送信のフローを示す図である。
【図１８】ｒ個のデータを描画した例を示す図である。
【図１９】ｒ個のデータブロックをｍ個描画した例を示す図である。
【符号の説明】
【００９３】
１    キャピラリー電気泳動装置
２    ＧＵＩ部
３    解析結果データベース
４    データ処理部
【図１】
2005265637.tif 000004
【図２】
2005265637.tif 000005
【図４】
2005265637.tif 000006
【図５】
2005265637.tif 000007
【図６】
2005265637.tif 000008
【図７】
2005265637.tif 000009
【図８】
2005265637.tif 000010
【図１０】
2005265637.tif 000011
【図１１】
2005265637.tif 000012
【図１３】
2005265637.tif 000013
【図１４】
2005265637.tif 000014
【図１６】
2005265637.tif 000015
【図１７】
2005265637.tif 000016
【図１８】
2005265637.tif 000017
【図１９】
2005265637.tif 000018
【図３】
2005265637.tif 000019
【図９】
2005265637.tif 000020
【図１２】
2005265637.tif 000021
【図１５】
2005265637.tif 000022