(検出装置1の概要)
以下では、本発明の一実施形態について、図面を参照して詳細に説明する。まず、本実施形態に係る検出装置の概要について、図1を参照して説明する。図1は、検出装置1の要部構成を示すブロック図である。
検出装置1は、スポットまたはピークを有する測定データの当該スポットまたはピークのモデル関数を構築し、ピークの面積またはスポットの体積を算出する装置である。以下では、検出装置1がスポットを有する二次元データを用いて、当該スポットのモデル関数を構築し、スポットの体積を算出する場合を想定して説明する。二次元データとして、二次元電気泳動の泳動結果のデータ(二次元電気泳動画像)を用いたとする。
二次元電気泳動は、タンパク質の電気的な性質を利用して二次元に分離する方法である。まず、一次元目は、等電点電気泳動ゲルを用いてタンパク質を等電点で分離する等電点電気泳動を行う。そして、二次元目は、ドデシル硫酸ナトリウム(SDS)を含むポリアクリルアミドゲルを用いてタンパク質を分子量で分離するSDS−ポリアクリルアミドゲル電気泳動(SDS−PAGE)を行う。一次元目分離方向と二次元目の分離方向とは互いに直交する。これによって、一次元目方向と二次元目方向とに分離したタンパク質の分離パターンが得られる。
電気泳動ゲル上で分離されたタンパク質をクーマシーブリリアントブルー(CBB)、または蛍光色素等によって染色し、視覚化された後、カメラまたはスキャナ等の画像読取装置によってデジタル画像化されたものが二次元電気泳動画像である。図2に二次元電気泳動画像の一例を示す。図2は、複数のタンパク質を含む試料を二次元電気泳動して得られた泳動結果(二次元電気泳動画像)である。
図2に示すように、得られた二次元電気泳動画像では、タンパク質が一次元目方向(図中の左右方向)に等電点の違いによって分離しており、二次元目方向(図中の上下方向)に分子量の違いによって分離している。二次元電気泳動画像上の黒い斑点で表される複数のスポットは、それぞれ種類の異なるタンパク質を表している。本図では、等電点は、左から右にいくほど高くなり、分子量は、下から上にいくほど大きくなるように図を配置している。
上述したように、検出装置1は、スポットまたはピークを有する測定データの当該スポットまたはピークのモデル関数を構築し、ピークの面積またはスポットの体積を算出する装置である。具体的には、検出装置1は、上記二次元電気泳動画像から、スポットの位置検出、フィッティング、および体積算出を行う。後ほど詳しく説明するが、以下では検出装置1の概要を説明する。
図1に示すように、検出装置1は、入力装置2、データ処理装置3、記憶装置4、外部記憶装置5、および出力装置6から構成されている。データ処理装置3は、スポット位置検出部7、スポットフィッティング部8(分割手段,設定手段,構築手段,フィッティング手段)、およびスポット体積算出部9(算出手段)からなる。また、記憶装置4は、データ格納部10、スポット座標格納部11、およびパラメータ格納部12からなる。
入力装置2は、外部(ユーザ)からの指示を入力するキーボードまたはポインティングデバイス等の装置である。データ処理装置3は、プログラム制御によって動作し、測定データ(二次元電気泳動画像)からのスポットの位置検出、フィッティング、および体積算出等の各種処理を行う。記憶装置4は、情報を一時的に記憶するランダムアクセスメモリ(RAM)等であり、外部記憶装置5は、情報を長期的に記憶するハードディスクドライブ(HDD)等である。外部記憶装置5は、外部から入力された情報を記憶するものであり、二次元電気泳動画像等の測定データは、外部記憶装置5に記憶される。また、出力装置6は、データ処理装置3の処理結果を外部に出力する表示装置または印刷装置等である。
検出装置1が二次元電気泳動画像からスポットのモデル関数を構築し、当該スポットの体積を算出するまでの大まかな流れについて、図3に沿って説明する。図3は、検出装置1が測定データ(二次元電気泳動画像)のスポットのモデル関数を構築し、当該スポットの体積を算出するまでの流れを示すフローチャートである。
まず、複数のタンパク質を含む試料を二次元電気泳動して得られた泳動結果(二次元電気泳動画像)は、外部記録装置5に記憶されている。入力装置2にユーザから、当該二次元電気泳動画像のスポットのモデル関数を構築し、当該スポットの体積を算出する処理の実行指示が入力されると(ステップS1)、その情報はデータ処理装置3および外部記憶装置5に出力される。入力装置2からの実行指示の情報を受けた外部記憶装置5は、自身が保持している二次元電気泳動画像をデータ格納部10に格納する。一方、入力装置2からの実行指示の情報はデータ処理装置3のスポット位置検出部7にも入力され、スポット位置検出部7はデータ格納部10から二次元電気泳動画像を読み込む(ステップS2)。スポット位置検出部7では、読み込んだ二次元電気泳動画像から、スポットの位置を検出する。具体的には、各スポットの中心位置(以下、スポット位置という)の座標を検出し(ステップS3)、その情報はスポット座標格納部11に格納される。さらに、スポット位置検出部7がスポット位置を検出し終えた情報は、スポットフィッティング部8に出力される。当該スポット位置検出部7からのスポット位置の検出終了の情報を受けたスポットフィッティング部8は、データ格納部10から二次元電気泳動画像を読み込み、スポット座標格納部11からスポット位置の座標を読み込む。
スポットフィッティング部8では、各スポットの形状に所定の関数をフィッティングする処理を行い、当該スポットのモデル関数を構築する(ステップS4)。構築したモデル関数のパラメータは、パラメータ格納部12に格納される。さらに、スポットフィッティング部8が各スポットのモデル関数を構築し終えた情報は、スポット体積算出部9に出力される。当該スポットフィッティング部8からのモデル関数構築終了の情報を受けたスポット体積算出部9は、データ格納部10から二次元電気泳動画像を読み込み、パラメータ格納部12からモデル関数のパラメータを読み込む。
スポット体積算出部9では、構築したモデル関数に基づいて、各スポットの体積(積分値)を算出する処理を行う(ステップS5)。算出した各スポットの体積は出力装置6に出力され、出力装置6によって、各スポットの体積がユーザに出力される。なお、以上では、各スポットの体積の算出結果を出力装置6に出力する構成を示したが、特にこれに限定されるわけではない。例えば、スポットの位置検出、フィッティング、および体積算出等の各種処理の結果がユーザに出力されるような構成にすることも可能である。
(スポット位置の検出処理)
以下では、スポット位置検出部7による二次元電気泳動画像のスポット位置の検出処理について、詳しく説明する。
スポット位置検出部7では、入力装置2から二次元電気泳動画像のスポットのモデル関数を構築し、当該スポットの体積を算出する処理の実行指示の情報を受けると、データ格納部10から二次元電気泳動画像を読み込む。二次元電気泳動画像は、ピクセルを構成単位としており、各ピクセルは濃度値(すなわち画素値(輝度値))を持っている。スポット位置検出部7では、二次元電気泳動画像において、隣り合うすべてのピクセルの濃度値よりも大きい濃度値を有するピクセルをスポットの中心位置(スポット位置)として検出する。このようにして検出されたスポット位置の座標はスポット座標格納部11に格納される。
(スポットのフィッティング処理)
続いて、スポットフィッティング部8による各スポットの形状のフィッティング処理について、図4に沿って詳しく説明する。図4は、スポットフィッティング部8がスポットの形状をフィッティングし、モデル関数を構築するまでの流れを示すフローチャートである。
まず、スポットフィッティング部8では、スポット位置検出部7からスポット位置の検出処理終了の情報を受けると、データ格納部10から二次元電気泳動画像を読み込み、スポット座標格納部11からスポット位置の座標を読み込む(ステップS11)。
読み込んだスポット位置を境に、スポットを複数の領域に分割する(ステップS12)。具体的には、スポット位置を境に、分子量が大きい領域と、分子量が小さい領域とにスポットを分割する。例えば、図5に示したようなスポットが得られたとする。図に示すx軸方向(図中の左右方向)が、等電点の違いによって分離する方向(以下、等電点方向という)、すなわち一次元目の電気泳動方向である。一方、図に示すy軸方向(図中の上下方向)が、分子量の違いによって分離する方向(以下、分子量方向という)、すなわち二次元目の電気泳動方向である。この場合には、スポット位置13を境に、分子量が大きい領域15aと、分子量が小さい領域15bとに分割する。すなわち、スポット位置13を境に、スポットを等電点方向(図中の上下方向)に分割する。
続いて、スポットを分割した各領域において、フィッティングに用いる関数を設定する(ステップS13)。具体的には、領域15aをフィッティングするための関数と、領域15bをフィッティングするための関数とを設定するが、関数としてはガウス関数を使用する。ガウス関数は、次式(1)で定義される。
ここで、G(x,y)は、座標(x,y)におけるガウス関数の値であり、x0およびy0は、それぞれガウス関数のピーク位置のx座標とy座標とであり、aは、ガウス関数のピークの高さであり、CxおよびCyは、それぞれピーク位置を中心としたx軸方向への広がりとy軸方向への広がりとである。
上記ガウス関数を用いて、領域15aおよび領域15bのフィッティングを行うための関数を設定する。具体的には、領域15aに設定するガウス関数Aは、次式(2)で定義される。
また、領域15bに設定するガウス関数Bは、次式(3)で定義される。
ガウス関数AにおけるCy1は、ガウス関数A(領域15a)におけるy軸方向の広がりであり、ガウス関数BにおけるCy2は、ガウス関数B(領域15b)におけるy軸方向の広がりである。
次に、上記ガウス関数Aおよびガウス関数Bを組み合わせて、スポットの形状を表すモデル関数を構築する(ステップS14)。スポットの形状を表すモデル関数は、次式(4)で定義される。
ここで、ガウス関数Aおよびガウス関数Bにおいて、パラメータa,x0,y0,Cxを同等の値に設定しない場合、ガウス関数Aおよびガウス関数Bの結合部で関数値が不連続になってしまう。図6に、パラメータa,x0,y0を同等の値にし、Cxを異ならせた場合のモデル関数の一例を示す。図6に示すように、ガウス関数A(領域15a)のCxと、ガウス関数B(領域15b)のCxとを異なる値にした場合(すなわち領域15aおよび領域15bの境界線の伸展方向への広がりを異ならせた場合)、得られるモデル関数には、ガウス関数Aとガウス関数Bとの接合面で段差ができたものになってしまう。そのため、ガウス関数Aおよびガウス関数Bの結合部で関数値が不連続にならないように、ガウス関数Aおよびガウス関数Bにおいて、パラメータa,x0,y0,Cxは同等の値を使用する。したがって、モデル関数におけるf(x,y)は、座標(x,y)におけるモデル関数の値であり、x0およびy0は、それぞれモデル関数のピーク位置のx座標とy座標とである。aは、モデル関数のピークの高さであり、すなわち座標(x0,y0)におけるモデル関数の値を表している。Cxは、モデル関数のピーク位置からx軸の増大方向または減少方向への広がりであり、すなわちピーク位置から等電点の大きい方向または小さい方向への広がりを表している。また、Cy1は、モデル関数のピーク位置からy軸の増大方向への広がりであり、すなわちピーク位置から分子量の大きい方向への広がりを表している。さらに、Cy2は、モデル関数のピーク位置からy軸の減少方向への広がりであり、すなわちピーク位置から分子量の小さい方向への広がりを表している。
ここで、各パラメータについて、具体的なモデル関数を用いて説明する。図7に、上記のように定義したモデル関数の一例を示す。図7は、ピーク位置の座標(x0,y0)が(26,37)であり、ピークの高さaが256であるモデル関数を表している。図7に示すように、モデル関数はピークを有しており、ピーク位置の座標が、(x0,y0)=(26,37)である。また、ピークの高さ、すなわち座標(26,37)におけるf(x,y)は256である。
次に、ピーク位置におけるモデル関数を図8に示す。図8(a)は、y=37(ピーク位置)におけるモデル関数を示す図であり、図8(b)は、x=26(ピーク位置)におけるモデル関数を示す図である。
図8(a)によれば、図中のCxが、ピーク位置(x=26)からx軸の増大方向への広がりであり、Cx=7である。一方、図8(b)によれば、図中のCy1が、ピーク位置(y=37)からy軸の増大方向への広がりであり、Cy1=5である。さらに、図中のCy2が、ピーク位置(y=37)からy軸の減少方向への広がりであり、Cy2=10である。以上により、図7に示したモデル関数は、次式(5)で定義される。
このように、各パラメータによって、モデル関数の形状は定まっている。本実施形態では、各パラメータの値を、フィッティングによって決定する。まず、式(4)で定義されたモデル関数のパラメータa,x0,y0,Cx,Cy1,Cy2の初期値を設定する(ステップS15)。具体的には、モデル関数のパラメータの初期値は以下のように設定する。まず、ピークの高さaの初期値は、スポット位置13におけるピクセルの濃度値とする。また、モデル関数のピーク位置の座標(x0,y0)の初期値は、スポット位置13の座標とする。Cxの初期値は、スポット位置13から、x軸の増大方向への半値幅と、x軸の減少方向への半値幅とのうち、小さい方の半値幅を0.85倍したものとする。ここで言う半値幅とは、スポット位置13(あるいはピーク位置)から、ピクセルの濃度値(あるいは高さ)が半減するまでの幅のこととする。なお、0.85とは、広がりを表す値への変換のための値である。この値の設定根拠について、大まかに説明する。
上記の値は、ガウス関数に基づいて求まるものである。具体的には、ガウス関数は式(1)で定義されるものであるが、計算を簡単にするために、次式(6)で表されるような、ピーク位置の座標x0が0であり、ピークの高さaが1のガウス関数を考える。
式(6)で表されるガウス関数を、図9に示す。この場合、ピークの高さの半分は、0.5となるので、次式(7)が成り立つ。
ここで、図9に示すように、xhalfとは、高さが0.5となるときのx座標である。なお、ピーク位置の座標が0なので、xhalfは半値幅(ピーク位置から、高さが半減するまでの幅)となる。
式(7)をCについて解くと、次のような結果が得られる。
以上の式(8)によれば、ガウス関数における広がりCは、半値幅を約0.85倍した値となることが分かる。したがって、モデル関数のピーク位置からx軸の増大方向または減少方向への広がりを表すCxは、ピーク位置からx軸の増大方向または減少方向への半値幅(ピーク位置から、モデル関数値が半減するまでの幅)を0.85倍した値となる。
同様に、Cy1の初期値は、スポット位置13から、y軸の増大方向への半値幅を0.85倍したものとする。また、Cy2の初期値は、スポット位置13から、y軸の減少方向への半値幅を0.85倍したものとする。
そして、式(4)で定義されたモデル関数のパラメータに上記の初期値を設定した関数と、二次元電気泳動画像のスポット(濃度値)との間で最小二乗法によりフィッティングを行う。具体的には、次式(9)で定義される平方和Sを最小するようなパラメータa,x0,y0,Cx,Cy1,Cy2を決定する(ステップS16)。
ここで、I(x,y)とは、二次元電気泳動画像の座標(x,y)におけるピクセルの濃度値である。また、範囲Dは、スポット位置13を含む一定範囲内とする。より詳細には、スポット位置13を中心として、上記のパラメータCx,Cy1,Cy2の初期値をn倍した値を短径または長径の半分とする楕円の内部を範囲Dとする。範囲Dが占める領域を図10に示す。本図では、図の左右方向がx軸方向であり、図の上下方向がy軸方向である。
図10に示すように、範囲Dは、2n×Cxの短径と、2n×Cy1の長径とを有する半楕円、および2n×Cxの短径と、2n×Cy2の長径とを有する半楕円からなる。なお、範囲Dは、小さすぎるとスポットが十分に含まれず、逆に大きくすぎると周辺のスポットまで含んでしまい、正確にフィッティングすることができない。そこで、上記のnとしては、範囲Dが適度な大きさになるような値を用いるのが望ましい。具体的には、nは、0.5〜3程度であることが好ましい。
以上のようにしてモデル関数のパラメータは決定され、スポットの形状を表すモデル関数が構築される。なお、決定したモデル関数のパラメータは、パラメータ格納部12に格納される。
ここで、スポットフィッティング部8は、1つのスポットのモデル関数の構築を終えると、次のスポットのモデル関数の構築を開始する。この際、スポットフィッティング部8がすべてのスポットのモデル関数を構築し終えるために、当該スポットフィッティング部8にモデル関数を構築するスポットの数をカウントするカウンタ機能を備えても良い。具体的には、スポット位置検出部7が検出したスポット位置の座標に1から順番に番号を振っておき、スポットフィッティング部8がスポット位置検出部7からスポット位置の検出処理終了の情報を受けると、スポットフィッティング部8のカウンタを1に初期化し、1番目のスポット位置の座標をスポット座標格納部11から読み込む構成にしても良い。そして、1番目のスポットのモデル関数の構築が終了すると、カウンタの数を1つ上げ、2番目のスポット位置の座標をスポット座標格納部11から読み込むようにする。このように、順にカウンタの数を上げていき、カウンタが所定の数nになった場合に、スポットフィッティング部8は作業を終了するような構成にすると良い。
(スポットの体積算出処理)
最後に、スポット体積算出部9による各スポットの体積の算出処理について、図11に沿って詳しく説明する。図11は、スポット体積算出部9がスポットの体積を算出するまでの流れを示すフローチャートである。
まず、スポット体積算出部9では、スポットフィッティング部8から各スポットのモデル関数の構築が終了した情報を受けると、データ格納部10から二次元電気泳動画像を読み込み、スポット座標格納部11からスポット位置の座標を読み込み、さらにパラメータ格納部12からモデル関数のパラメータを読み込む(ステップS21)。
読み込んだスポット位置を中心に、スポット領域を設定する(ステップS22)。具体的には、スポット領域は、スポット位置を含む一定範囲内とする。より詳細には、スポット位置を中心として、上記のモデル関数のパラメータCx,Cy1,Cy2をn倍した値を短径または長径の半分とする楕円の内部をスポット領域とする。スポット領域は、2n×Cxの短径と、2n×Cy1の長径とを有する半楕円、および2n×Cxの短径と、2n×Cy2の長径とを有する半楕円からなる。なお、スポット領域は、小さすぎるとスポットが十分に含まれず、逆に大きすぎると周辺のスポットまで含んでしまい、正確に体積を算出することができない。そこで、上記のnとしては、スポット領域が適度な大きさになるような値を用いるのが望ましい。具体的には、nは、0.5〜3程度であることが好ましい。
上記のように決定したスポット領域内におけるピクセルごとに、すべてのスポットのモデル関数値の合計を算出する(ステップS23)。具体的な算出例として、図12を用いて説明する。図12は、2つのスポットのモデル関数(モデル関数108およびモデル関数109)を示す図である。本図では、特定のy座標におけるモデル関数を示しており、横軸がモデル関数のx軸(ピクセルのx座標)であり、縦軸がモデル関数値である。
ここで、図12に示す2つのモデル関数で表される2つのスポットが二次元電気泳動画像上のすべてのスポットであり、体積を求めるスポット(以下、スポットPという)はモデル関数108であるとする。この場合、図に示すピクセル110におけるモデル関数108のモデル関数値は40であり、モデル関数109のモデル関数値は10である。したがって、ピクセル110におけるモデル関数値の合計は、50である。このようにして、スポットPのスポット領域内のピクセルごとに、すべてのスポットのモデル関数値の合計を算出する。
次に、スポット領域内におけるピクセルごとに、スポットPが占める割合を算出する(ステップS24)。具体的には、スポット領域内におけるピクセルごとに、スポットPのモデル関数値を、上記ステップS23で算出した合計値で除算する。これによって、スポット領域内のピクセルごとに、当該ピクセルにおけるすべてのスポットのモデル関数値の合計のうち、スポットPのモデル関数値が占める割合を算出することができる。具体的な算出例として、再び図12を用いて説明する。
図12に示したピクセル110におけるモデル関数108のモデル関数値は40であり、モデル関数109のモデル関数値は10であり、両者の合計は50である。したがって、ピクセル110における、スポットPのモデル関数値が占める割合は、40÷(40+10)=0.8となる。このようにして、スポット領域内のピクセルごとに、スポットPが占める割合を算出する。
上記のようにして算出したスポットPが占める割合に基づいて、スポット領域内のピクセルごとに、スポットPの濃度値を算出する(ステップS25)。具体的には、スポット領域内におけるピクセルごとに、二次元電気泳動画像の濃度値と、上記ステップS24で算出した割合とを積算する。これによって、スポット領域内のピクセルごとに、当該ピクセルにおいてスポットPの濃度値を算出することができる。具体的な算出例として、再び図12を用いて説明する。
ここで、図12のピクセル110における二次元電気泳動画像の濃度値が1000であったとする。この場合、ピクセル110におけるスポットPが占める割合は、以上で算出したように0.8であるので、ピクセル110におけるスポットPの濃度値は1000×0.8=800となる。このようにして、スポット領域内のピクセルごとに、スポットPの濃度値を算出する。
以上のようにしてスポット領域内のピクセルごとにスポットPの濃度値を合計することによって、体積を求めるスポットの体積は算出される(ステップS26)。このように、スポットの体積(積分値)を求めることによって、タンパク質を定量化することができる。
ここで、スポット体積算出部9は、1つのスポットの体積の算出を終えると、次のスポットの体積の算出を開始する。この際、スポット体積算出部9がすべてのスポットの体積を算出し終えるために、当該スポット体積算出部9に体積を算出するスポットの数をカウントするカウンタ機能を備えても良い。具体的には、スポット位置検出部7が検出したスポット位置の座標に1から順番に番号を振っておき、スポット体積算出部9がスポットフィッティング部8からスポットのモデル関数の構築終了の情報を受けると、スポット体積算出部9のカウンタを1に初期化し、1番目のスポット位置の座標をスポット座標格納部11から読み込む構成にしても良い。そして、1番目のスポットの体積の算出が終了すると、カウンタの数を1つ上げ、2番目のスポット位置の座標をスポット座標格納部11から読み込むようにする。このように、順にカウンタの数を上げていき、カウンタが所定の数nになった場合に、スポット体積算出部9は作業を終了するような構成にすると良い。
以上のように、本実施形態では、各スポットを複数の領域に分割し、分割したそれぞれの領域において関数を設定し、当該関数を組み合わせて各スポットのモデル関数を構築している。そして、二次元電気泳動画像とモデル関数との間でフィッティングを行うことによって、スポットの形状が左右非対称な場合でも、ほぼ正確なフィッティングを行うことができる。さらに、フィッティング後のモデル関数に基づいて複数のスポットの重なりを考慮してスポットの体積算出を行うことによって、正確にスポットの体積を算出することができる。
(検出装置1の表示画面例)
以下では、検出装置1の出力装置6に表示される表示画面の一例を、図13〜15に示す。
例えば、スポット検出部7がスポット位置を検出した結果を出力装置6に出力する構成にした場合に、ユーザに表示する画面の一例を図13に示す。図13は、二次元電気泳動画像の濃度値を示した表111と、モデル関数のパラメータの初期値とが表示されている例である。
表111は、二次元電気泳動画像に対応しており、1つのセルが二次元電気泳動画像の1つのピクセルに対応している。各セルに表示されている値は、当該セルに対応するピクセルの濃度値である。本図では、等電点は、左から右にいくほど高くなり、分子量は、下から上にいくほど大きくなるように図を配置している。
図13では、スポットが3つあり、各スポットのスポット位置のセル100〜102は、黒い枠線で囲まれて表示されている。ここで、本図では、セル100をスポット位置とする第1スポットの体積算出を行う場合を想定しており、当該第1スポットのモデル関数のパラメータの初期値が表示されている。図に示すフィッティング結果ボタン103を選択することによって、第1スポットのフィッティング処理の結果が表示される。
スポットフィッティング部9がスポットのフィッティング処理をした結果を出力装置6に出力する構成にした場合に、ユーザに表示する画面の一例を図14に示す。図14は、フィッティング処理後のモデル関数のパラメータと、第1スポットおよびその周辺のモデル関数値を示した表112とが表示されている例である。
表112は、図13に示した表111と対応しており、フィッティング処理後のモデル関数に基づくモデル関数値が算出されている。第1スポットのスポット領域104は黒い枠線で囲まれて表示されている。図に示す体積算出結果ボタン105を選択することによって、第1スポットの体積算出結果(第1スポットが占める割合)が表示される。
スポット体積算出部9が、ピクセルごとに体積を求めるスポットが占める割合を算出した結果を出力装置6に出力する構成にした場合に、ユーザに表示する画面の一例を図15に示す。図15は、スポット領域104内において、第1スポットが占める割合を示す表113が表示されている例である。
表113は、図13に示した表111と対応しており、スポット領域104内のピクセルごとに、すべてのスポットのモデル関数値の合計に対する、第1スポットのモデル関数値の割合が算出されている。図に示すボタン106を選択することによって、第1スポットの体積算出結果(第1スポットの濃度値の合計)が表示される。
スポット体積算出部9が第1スポットの濃度値の合計を算出した結果を出力装置6に出力する構成にした場合に、ユーザに表示する画面の一例を図16に示す。図16は、第1スポットの濃度値を示した表114と、第1スポットの体積とが表示されている例である。
表114は、図13に示した表111と対応しており、表111の濃度値と、図15に示した表113の割合値とを積算した値が算出されている。当該第1スポットの濃度値の合計が、第1スポットの体積として表示されている。ここで、ボタン107を選択することによって、次のスポットの体積算出を行うことができる。
(変形例1)
以上では、スポットの分割方法として、スポット位置を境に分子量が大きい領域と、分子量が小さい領域とに分割する例を示したが、特にこれに限定されるわけではない。例えば、スポット位置を境に等電点が高い領域と、等電点が低い領域とにスポットを分割することも可能である。
例えば、図17に示したようなスポットが得られたとする。図に示すx軸方向(図中の左右方向)が、等電点の違いによって分離する方向(以下、等電点方向という)、すなわち一次元目の電気泳動方向である。一方、図に示すy軸方向(図中の上下方向)が、分子量の違いによって分離する方向(以下、分子量方向という)、すなわち二次元目の電気泳動方向である。この場合には、スポット位置13を境に、等電点が高い領域25aと、等電点が低い領域25bとに分割する。すなわち、スポット位置13を境に、スポットを分子量方向(図中の左右方向)に分割する。ここで、各領域をフィッティングするためのガウス関数を設定するが、領域25aをフィッティングするためのガウス関数Mは、次式(10)で定義される。
また、領域25bをフィッティングするためのガウス関数Nは、次式(11)で定義される。
ガウス関数MにおけるCx1は、ガウス関数Mにおけるx軸方向の広がりであり、ガウス関数NにおけるCx2は、ガウス関数Nにおけるx軸方向の広がりである。なお、上記ガウス関数Mおよびガウス関数Nを組み合わせて、スポットの形状を表すモデル関数を構築すると、当該モデル関数は、次式(12)で定義される。
ここで、ガウス関数Mおよびガウス関数Nにおいて、パラメータa,x0,y0,Cyを同等の値に設定しない場合、ガウス関数Mおよびガウス関数Nの結合部で関数値が不連続になってしまう。図18に、パラメータa,x0,y0を同等の値にし、Cyを異ならせた場合のモデル関数の一例を示す。図18に示すように、ガウス関数M(領域25a)のCyと、ガウス関数N(領域25b)のCyとを異なる値にした場合(すなわち領域25aおよび領域25bの境界線の伸展方向への広がりを異ならせた場合)、得られるモデル関数には、ガウス関数Mとガウス関数Nとの接合面で段差ができたものになってしまう。そのため、ガウス関数Mおよびガウス関数Nの結合部で関数値が不連続にならないように、ガウス関数Mおよびガウス関数Nにおいて、パラメータa,x0,y0,Cyは同等の値を使用する。したがって、モデル関数におけるf(x,y)は、座標(x,y)におけるモデル関数の値であり、x0およびy0は、それぞれモデル関数のピーク位置のx座標とy座標とである。aは、モデル関数のピークの高さであり、すなわち座標(x0,y0)におけるモデル関数の値を表している。Cx1は、モデル関数のピーク位置からx軸の増大方向への広がりであり、すなわちピーク位置から等電点の高い方向への広がりを表している。さらに、Cx2は、モデル関数のピーク位置からx軸の減少方向への広がりであり、すなわちピーク位置から等電点の低い方向への広がりを表している。また、Cyは、モデル関数のピーク位置からy軸の増大方向または減少方向への広がりであり、すなわちピーク位置から分子量の大きい方向または小さい方向への広がりを表している。
式(12)で定義されたモデル関数のパラメータa,x0,y0,Cx1,Cx2,Cyの初期値を設定する場合には、以下のように設定する。まず、ピークの高さaの初期値は、スポット位置におけるピクセルの濃度値とする。また、モデル関数のピーク位置の座標(x0,y0)の初期値は、スポット位置の座標とする。Cx1の初期値は、スポット位置から、x軸の増大方向への半値幅を0.85倍したものとし、Cx2の初期値は、スポット位置から、x軸の減少方向への半値幅を0.85倍したものとする。また、Cyの初期値は、スポット位置から、y軸の増大方向への半値幅と、y軸の減少方向への半値幅とのうち、小さい方の半値幅を0.85倍したものとする。
そして、式(12)で定義されたモデル関数のパラメータに上記の初期値を設定した関数と、二次元電気泳動画像のスポット(濃度値)との間で最小二乗法によりフィッティングを行い、パラメータa,x0,y0,Cx1,Cx2,Cyを決定する。このようにしてモデル関数のパラメータは決定され、スポットの形状を表すモデル関数が構築される。なお、構築したモデル関数に基づいて、スポットの体積を算出するまでの処理は、上記の実施形態と同様であるため、ここでは言及しない。
(変形例2)
スポットの分割方法としては、等電点方向および分子量方向の両方向に分割する方法も可能である。例えば、図19に示したようなスポットが得られたとする。図に示すx軸方向(図中の左右方向)が、等電点の違いによって分離する方向(以下、等電点方向という)、すなわち一次元目の電気泳動方向である。一方、図に示すy軸方向(図中の上下方向)が、分子量の違いによって分離する方向(以下、分子量方向という)、すなわち二次元目の電気泳動方向である。この場合には、スポット位置13を境に、等電点が高くかつ分子量が大きい領域35a、等電点が高くかつ分子量が小さい領域35b、等電点が低くかつ分子量が大きい領域35c、および等電点が低くかつ分子量が小さい領域35dの4つの領域に分割される。
ここで、各領域をフィッティングするためのガウス関数を設定するが、領域35aをフィッティングするためのガウス関数Tは、次式(13)で定義される。また、領域35bをフィッティングするためのガウス関数Uは、次式(14)で定義される。領域35cをフィッティングするためのガウス関数Vは、次式(15)で定義される。さらに、領域35dをフィッティングするためのガウス関数Wは、次式(16)で定義される。
ガウス関数Tおよびガウス関数UにおけるCx1は、ガウス関数Tおよびガウス関数Uにおけるx軸方向の広がりであり、ガウス関数Vおよびガウス関数WにおけるCx2は、ガウス関数Vおよびガウス関数Wにおけるx軸方向の広がりである。また、ガウス関数Tおよびガウス関数VにおけるCy1は、ガウス関数Tおよびガウス関数Vにおけるy軸方向の広がりであり、ガウス関数Uおよびガウス関数WにおけるCy2は、ガウス関数Uおよびガウス関数Wにおけるy軸方向の広がりである。
なお、上記ガウス関数T〜Wを組み合わせて、スポットの形状を表すモデル関数を構築すると、当該モデル関数は、次式(17)で定義される。
ここで、ガウス関数T〜Wにおいて、パラメータa,x0,y0,Cx1,Cx2,Cy1,Cy2を同等の値に設定しない場合、ガウス関数T〜Wの結合部で関数値が不連続になってしまう。図20に、パラメータa,x0,y0を同等の値にし、Cx1,Cx2,Cy1,Cy2を異ならせた場合のモデル関数の一例を示す。図20に示すように、ガウス関数T(領域35a)のCx1と、ガウス関数U(領域35b)のCx1とを異なる値にした場合、得られるモデル関数には、ガウス関数Tとガウス関数Uとの接合面で段差ができたものになってしまう。また、ガウス関数V(領域35c)のCx2と、ガウス関数W(領域35d)のCx2とを異なる値にした場合、得られるモデル関数にはガウス関数Vとガウス関数Wとの接合面で段差ができたものになってしまう。ガウス関数TのCy1と、ガウス関数VのCy1との値を異ならせ、ガウス関数UのCy2と、ガウス関数WのCy2との値を異ならせた場合も同様に、得られるモデル関数には、ガウス関数Tとガウス関数Vとの接合面およびガウス関数Uとガウス関数Wとの接合面で段差ができたものになってしまう。したがって、隣り合う2つの領域の境界線の伸展方向への広がりを異ならせた場合には、得られるモデル関数において、ガウス関数T〜Wの接合面で段差ができてしまう。
そのため、ガウス関数T〜Wの結合部で関数値が不連続にならないように、ガウス関数T〜Wにおいて、パラメータa,x0,y0は同等の値を使用する。したがって、モデル関数におけるf(x,y)は、座標(x,y)におけるモデル関数の値であり、x0およびy0は、それぞれモデル関数のピーク位置のx座標とy座標とである。aは、モデル関数のピークの高さであり、すなわち座標(x0,y0)におけるモデル関数の値を表している。Cx1は、モデル関数のピーク位置からx軸の増大方向への広がりであり、すなわちピーク位置から等電点の高い方向への広がりを表している。さらに、Cx2は、モデル関数のピーク位置からx軸の減少方向への広がりであり、すなわちピーク位置から等電点の低い方向への広がりを表している。また、Cy1は、モデル関数のピーク位置からy軸の増大方向への広がりであり、すなわちピーク位置から分子量の大きい方向への広がりを表している。さらに、Cy2は、モデル関数のピーク位置からy軸の減少方向への広がりであり、すなわちピーク位置から分子量の小さい方向への広がりを表している。
式(17)で定義されたモデル関数のパラメータa,x0,y0,Cx1,Cx2,Cy1,Cy2の初期値を設定する場合には、以下のように設定する。まず、ピークの高さaの初期値は、スポット位置におけるピクセルの濃度値とする。また、モデル関数のピーク位置の座標(x0,y0)の初期値は、スポット位置の座標とする。Cx1の初期値は、スポット位置から、x軸の増大方向への半値幅を0.85倍したものとし、Cx2の初期値は、スポット位置から、x軸の減少方向への半値幅を0.85倍したものとする。また、Cy1の初期値は、スポット位置から、y軸の増大方向への半値幅を0.85倍したものとし、Cy2の初期値は、スポット位置から、y軸の減少方向への半値幅を0.85倍したものとする。
そして、式(17)で定義されたモデル関数のパラメータに上記の初期値を設定した関数と、二次元電気泳動画像のスポット(濃度値)との間で最小二乗法によりフィッティングを行い、パラメータa,x0,y0,Cx1,Cx2,Cy1,Cy2を決定する。このようにしてモデル関数のパラメータは決定され、スポットの形状を表すモデル関数が構築される。なお、構築したモデル関数に基づいて、スポットの体積を算出するまでの処理は、上記の実施形態と同様であるため、ここでは言及しない。
以上のように、スポットを4つの領域に分割し、領域ごとの関数を組み合わせてモデル関数を構築することもできる。したがって、スポットは、スポット位置(ピークの頂点)から鉛直方向に下ろした垂線を含む平面で分割すれば良く、その分割数には特に限定はない。例えば、以上では、スポットを2つの領域および4つの領域に分割した例をそれぞれ示したが、当該スポットを3つの領域に分割したり、5つの領域に分割したりすることも可能である。その場合でも、上記と同様の手順でモデル関数を構築し、スポットの体積を算出することができる。
(変形例3)
以上では、測定データとして二次元データ、すなわち二次元電気泳動画像を用いる例を示したが、これに限定されるわけではなく、一次元データを用いることも可能である。以下では、検出装置1がピークを有する一次元データを用いて、当該ピークのモデル関数を構築し、ピークの面積を算出する場合を想定して説明する。一次元データとして、液体クロマトグラフィーを行った結果のデータ(クロマトグラム)を用いたとする。
液体クロマトグラフィーでは、個々のタンパク質の大きさ、吸着力、または疎水性等の性質の違いを利用して分離している。具体的には、複数のタンパク質を含む試料をカラムに通し、得られた試料を光度計等の検出装置によって経過時間ごとの出力値を検出する。検出装置から出力される信号は、時間間隔が数百ms程度の時系列データであるクロマトグラムである。クロマトグラムでは、縦軸に信号強度をとっており、横軸に保持時間をとっている。一般的に、得られた信号強度は、一定時間ごとにデジタル値に変換するデータ処理が行われる。
上記のタンパク質の性質により、タンパク質ごとにカラムを通過する通過速度が異なるため、カラムを通過している間にタンパク質ごとに分離される。その結果、液体クロマトグラフィーによって分離されたタンパク質は、クロマトグラム上でピークとして観察される。図21にクロマトグラムの一例を示す。図21は、複数のタンパク質を含む試料を用いて液体クロマトグラフィーを行った結果(クロマトグラム)である。
図21に示すように、得られたクロマトグラムでは、タンパク質が時間軸方向(図中の左右方向)にタンパク質の性質の違いによって分離してピークを形成している。クロマトグラム上の複数のピークは、それぞれ種類の異なるタンパク質を表している。本図では、左から右にいくほど経過時間が長いことを表している。
上記の実施形態の二次元電気泳動画像に相当するものがクロマトグラムであり、スポットに相当するものがピークである。したがって、二次元電気泳動画像がクロマトグラムであり、スポットがピークである点以外は、上記の実施形態とほぼ同様である。そのため、以下では、上記の実施形態とは異なる点についてのみ言及する。
まず、本例ではクロマトグラム上からピーク位置を検出する。クロマトグラムは、ピクセルの集合で構成されており、各ピクセルは濃度値(すなわち画素値(輝度値))を持っている。ピーク位置を検出する際には、クロマトグラムにおいて、隣り合うすべてのピクセルの濃度値よりも大きい濃度値を有するピクセルをピーク位置として検出する。
続いて、各ピークの形状のフィッティング処理について説明する。まず、ピーク位置を境に、ピークを複数の領域に分割する。具体的には、ピーク位置を境に、経過時間が短い領域と、経過時間が長い領域とにスポットを分割する。例えば、図22に示したようなスポットが得られたとする。図に示すx軸方向(図中の左右方向)が、タンパク質の性質の違いによって分離する方向、すなわち時間軸方向である。この場合には、ピーク位置を境に、経過時間が長い領域45aと、経過時間が短い領域45bとに分割する。
そして、ピークを分割した各領域において、フィッティングに用いる関数を設定する。具体的には、経過時間が長い領域(領域45a)をフィッティングするための関数と、経過時間が短い領域(領域45b)をフィッティングするための関数とを設定するが、関数としてはガウス関数を使用する。ガウス関数は、次式(18)で定義される。
ここで、G(x)は、座標xにおけるガウス関数の値であり、x0は、ガウス関数のピーク位置のx座標であり、aは、ガウス関数のピークの高さであり、Cは、ピーク位置を中心としたx軸方向への広がりである。
上記ガウス関数を用いて、領域45aおよび領域45bのフィッティングを行うための関数を設定する。具体的には、領域45aに設定するガウス関数Jは、次式(19)で定義される。
また、領域45bに設定するガウス関数Kは、次式(20)で定義される。
ガウス関数JにおけるC1は、ガウス関数Jにおけるx軸方向の広がりであり、ガウス関数KにおけるC2は、ガウス関数Kにおけるx軸方向の広がりである。
次に、上記ガウス関数Jおよびガウス関数Kを組み合わせて、ピークの形状を表すモデル関数を構築する。ピークの形状を表すモデル関数は、次式(21)で定義される。
ここで、ガウス関数Jおよびガウス関数Kにおいて、パラメータa,x0を同等の値に設定しない場合、ガウス関数Jおよびガウス関数Kの結合部で関数値が不連続になってしまう。図23に、パラメータx0を同等の値にし、aを異ならせた場合のモデル関数の一例を示す。図23に示すように、ガウス関数J(領域45a)のaと、ガウス関数K(領域45b)のaとを異なる値にした場合、得られるモデル関数には、ガウス関数Jとガウス関数Kとの接合面で段差ができたものになってしまう。そのため、ガウス関数Jおよびガウス関数Kの結合部で関数値が不連続にならないように、ガウス関数Jおよびガウス関数Kにおいて、パラメータa,x0は同等の値を使用する。したがって、モデル関数におけるf(x)は、座標xにおけるモデル関数の値であり、x0は、モデル関数のピーク位置のx座標である。aは、モデル関数のピークの高さであり、すなわち座標x0におけるモデル関数の値を表している。C1は、モデル関数のピーク位置からx軸の増大方向への広がりであり、すなわちピーク位置から経過時間が長い方向への広がりを表している。さらに、C2は、モデル関数のピーク位置からx軸の減少方向への広がりであり、すなわちピーク位置から経過時間が短い方向への広がりを表している。
続いて、式(21)で定義されたモデル関数のパラメータa,x0,C1,C2の初期値を設定する。具体的には、モデル関数のパラメータの初期値は以下のように設定する。まず、ピークの高さaの初期値は、ピーク位置におけるピクセルの濃度値とする。また、モデル関数のピーク位置の座標x0の初期値は、ピーク位置の座標とする。C1の初期値は、ピーク位置から、x軸の増大方向への半値幅を0.85倍したものとする。また、C2の初期値は、ピーク位置から、x軸の減少方向への半値幅を0.85倍したものとする。
そして、式(21)で定義されたモデル関数のパラメータに上記の初期値を設定した関数と、クロマトグラムのピーク(濃度値)との間で最小二乗法によりフィッティングを行う。具体的には、次式(22)で定義される平方和Sを最小するようなパラメータa,x0,y0,C1,C2を決定する。
ここで、I(xi)とは、クロマトグラムの座標xiにおけるピクセルの濃度値である。このようにしてモデル関数のパラメータは決定され、スポットの形状を表すモデル関数が構築される。なお、構築したモデル関数に基づいて、ピークの面積を算出するが、その算出処理は、上記の実施形態におけるスポットの体積算出処理と同様であるため、ここでは言及しない。
なお、以上では、ガウス関数を用いてスポットおよびピークのフィッティングを行っていたが、特にこれに限定されるわけではない。例えば、ガウス関数以外にも、ローレンツ関数を用いても良い。
二次元のローレンツ関数は、次式(23)で定義される。
ここで、L(x,y)は、座標(x,y)におけるローレンツ関数の値であり、x0およびy0は、それぞれローレンツ関数のピーク位置のx座標とy座標とであり、aは、ローレンツ関数のピークの高さであり、Whxはx軸方向の半値半幅であり、Whyはy軸方向の半値半幅である。
式(23)で定義されるローレンツ関数を用いて、スポットを有する二次元電気泳動画像等の二次元データのフィッティングを行い、モデル関数を構築することができる。一方、ピークを有するクロマトグラム等の一次元データのフィッティングを行い、モデル関数を構築する場合には、次式(24)で定義される一次元のローレンツ関数を用いる。
ここで、L(x)は、座標xにおけるローレンツ関数の値であり、x0は、ローレンツ関数のピーク位置のx座標であり、aは、ローレンツ関数のピークの高さであり、Whはx軸方向の半値半幅である。
なお、モデル関数のパラメータの決定方法、およびスポットの体積またはピークの面積の算出方法は、ガウス関数を用いる場合と同様であるため、ここでは言及しない。
ところで、以上では、タンパク質の二次元電気泳動画像またはクロマトグラムを用いてスポットまたはピークを検出する例を挙げたが、DNAまたはRNA等の生体高分子の二次元電気泳動画像またはクロマトグラムを用いてスポット検出またはピーク検出をしても良い。さらに、二次元電気泳動画像およびクロマトグラムに限定されるわけではなく、DNAマイクロアレイのようにスポットが平面状に散布している画像のスポット検出、あるいは複数の信号成分が一次元方向に散布したスペクトルのピーク検出に使用しても良い。
本発明は、上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明のご術的範囲に含まれる。
(プログラムおよび記録媒体)
最後に、検出装置1に含まれている各部は、ハードウェアロジックによって構成すれば良い。または、次のように、CPUを用いてソフトウェアによって実現しても良い。
すなわち、検出装置1は、各機能を実現するプログラムの命令を実行するCPU、このプログラムを格納した、上記プログラムを実行可能な形式に展開するRAM、および上記プログラムと各種データとを格納するメモリ等の記憶装置(記録媒体)を備えている。この構成により、本発明の目的は、所定の記録媒体によっても達成できる。
この記録媒体は、上述した機能を実現するソフトウェアである検出装置1のプログラムのプログラムコード(実行形式プログラム,中間コードプログラム,ソースプログラム)をコンピュータで読み取り可能に記録していれば良い。検出装置1に、この記録媒体を供給する。これにより、コンピュータとしての検出装置1(またはCPUやMPU)が、供給された記録媒体に記録されているプログラムコードを読み出し、実行すれば良い。
プログラムコードを検出装置1に供給する記録媒体は、特定の構造または種類のものに限定されない。すなわちこの記録媒体は、例えば、磁気テープまたはカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスク、またはCD−ROM/MO/MD/DVD/BD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系等とすることができる。
また、検出装置1を通信ネットワークと接続可能に構成しても、本発明の目的を達成できる。この場合、上記のプログラムコードを、通信ネットワークを介して検出装置1に供給する。この通信ネットワークは検出装置1にプログラムコードを供給できるものであれば良く、特定の種類または形態に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、または衛星通信網等であれば良い。
この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な任意の媒体であれば良く、特定の構成または種類のものに限定されない。例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、またはADSL(Asymmetric Digital Subscriber Line)回線等の有線でも、IrDAまたはリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、または地上波デジタル網等の無線でも利用可能である。なお、本発明は上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。