(57)【特許請求の範囲】
【請求項１】
遺伝子発現プロファイルを記憶した遺伝子発現プロファイルデータベースと、
比較対象の質問プロファイルの入力を受け付ける入力手段と、
前記入力手段にて入力された質問プロファイルと前記遺伝子発現プロファイルデータベースに記憶された遺伝子発現プロファイルとの相関を演算する演算手段と、を備え、
前記演算手段は、
前記遺伝子発現プロファイルデータベースに記憶された遺伝子発現プロファイルのプラットフォームを構成する遺伝子の識別子を、その識別子によって定まる順序に従って、連続するメモリ領域に記憶して第１の構成遺伝子配列データを生成し、
前記質問プロファイルを構成する遺伝子の識別子を、その識別子によって定まる順序に従って、連続するメモリ領域に記憶して第２の構成遺伝子配列データを生成し、
前記第１の構成遺伝子配列データの先頭から順に遺伝子の識別子を読み出すと共に前記第２の構成遺伝子配列データの先頭から順に遺伝子の識別子を読み出し、読み出した遺伝子の識別子を比較し、
両遺伝子の識別子が一致した場合には、遺伝子発現プロファイルのプラットフォームと質問プロファイルに共通する共通遺伝子として記憶すると共に前記第１の構成遺伝子配列データおよび前記第２の構成遺伝子配列データから次の遺伝子の識別子を読み出して比較し、両遺伝子の識別子が一致しない場合には、両遺伝子の識別子のうち順序が早い方の識別子が読み出された配列データから次の遺伝子の識別子を読み出して再度比較する処理を、第１の構成遺伝子配列データおよび第２の構成遺伝子配列データのいずれかのデータをすべて読み出すまで繰り返し行って共通遺伝子を抽出し、
前記遺伝子発現プロファイルデータベースに記憶された遺伝子発現プロファイルに含まれる遺伝子の識別子を、それぞれの遺伝子の発現順位に従って、連続するメモリ領域に記憶して第１の発現順遺伝子配列データを生成し、
前記第１の発現順遺伝子配列データの先頭から順にデータを読み出し、読み出した遺伝子が前記共通遺伝子である場合には、読み出した遺伝子が何個目の共通遺伝子であるかを特定することによって、前記遺伝子発現プロファイルに含まれる共通遺伝子の中での発現順位を求め、
前記質問プロファイルに含まれる遺伝子の識別子を、それぞれの遺伝子の発現順位に従って、連続するメモリ領域に記憶して第２の発現順遺伝子配列データを生成し、
前記第２の発現順遺伝子配列データの先頭から順にデータを読み出し、読み出した遺伝子が前記共通遺伝子である場合には、読み出した遺伝子が何個目の共通遺伝子であるかを特定することによって、前記質問プロファイルに含まれる共通遺伝子の中での発現順位を求め、
前記識別子として、比較対象となり得る遺伝子に連続した識別番号を付与し、
前記識別番号が付与された遺伝子数分の発現順位データを書き込むことができる第１の発現順位配列データと第２の発現順位配列データのためのメモリ領域を確保し、
前記遺伝子発現プロファイルに含まれる前記共通遺伝子の中での発現順位を、第１の発現順位配列データの中のそれぞれの共通遺伝子の識別番号で示される位置に書き込み、
前記質問プロファイルに含まれる前記共通遺伝子の中での発現順位を、第２の発現順位配列データの中のそれぞれの共通遺伝子の識別番号で示される位置に書き込み、
前記第１の発現順位配列データおよび前記第２の発現順位配列データから、それぞれの配列データにおいて対応する位置にある発現順位のデータを読み出し、読み出した発現順位の差に基づいて、遺伝子発現プロファイルと質問プロファイルとの順位相関係数を計算することによって前記相関を求める遺伝子発現プロファイル比較装置。
【請求項２】
前記第１の発現順位配列データおよび前記第２の発現順位配列データからの発現順位データの読み出しは、前記第２の発現順位配列データにおいて発現順位が小さい順に行い、
前記第２の発現順位配列データから読み出した発現順位データに対応する前記第１の発現順位配列データの発現順位データが欠損している場合には、欠損値の個数を記憶しておき、
前記第１の発現順位配列データおよび前記第２の発現順位配列データから読み出した発現順位の差を計算するときに、前記第２の発現順位配列データから読み出した発現順位からその時点での欠損値の個数を減算してから、発現順位の差を計算する請求項１に記載の遺伝子発現プロファイル比較装置。
【請求項３】
遺伝子発現プロファイルデータベースに記憶された遺伝子発現プロファイルと、比較対象の質問プロファイルとの相関をコンピュータに演算させるコンピュータ読み取り可能なプログラムであって、
前記コンピュータに、
前記遺伝子発現プロファイルデータベースに記憶された遺伝子発現プロファイルのプラットフォームを構成する遺伝子の識別子を、その識別子によって定まる順序に従って、連続するメモリ領域に記憶して第１の構成遺伝子配列データを生成させ、
前記質問プロファイルを構成する遺伝子の識別子を、その識別子によって定まる順序に従って、連続するメモリ領域に記憶して第２の構成遺伝子配列データを生成させ、
前記第１の構成遺伝子配列データの先頭から順に遺伝子の識別子を読み出すと共に前記第２の構成遺伝子配列データの先頭から順に遺伝子の識別子を読み出し、読み出した遺伝子の識別子を比較させ、
両遺伝子の識別子が一致した場合には、遺伝子発現プロファイルのプラットフォームと質問プロファイルに共通する共通遺伝子として記憶すると共に前記第１の構成遺伝子配列データおよび前記第２の構成遺伝子配列データから次の遺伝子の識別子を読み出して比較し、両遺伝子の識別子が一致しない場合には、両遺伝子の識別子のうち順序が早い方の識別子が読み出された配列データから次の遺伝子の識別子を読み出して再度比較する処理を、第１の構成遺伝子配列データおよび第２の構成遺伝子配列データのいずれかのデータをすべて読み出すまで繰り返し行って共通遺伝子を抽出させ、
前記遺伝子発現プロファイルデータベースに記憶された遺伝子発現プロファイルに含まれる遺伝子の識別子を、それぞれの遺伝子の発現順位に従って、連続するメモリ領域に記憶して第１の発現順遺伝子配列データを生成させ、
前記第１の発現順遺伝子配列データの先頭から順にデータを読み出し、読み出した遺伝子が前記共通遺伝子である場合には、読み出した遺伝子が何個目の共通遺伝子であるかを特定することによって、前記遺伝子発現プロファイルに含まれる共通遺伝子の中での発現順位を求めさせ、
前記質問プロファイルに含まれる遺伝子の識別子を、それぞれの遺伝子の発現順位に従って、連続するメモリ領域に記憶して第２の発現順遺伝子配列データを生成させ、
前記第２の発現順遺伝子配列データの先頭から順にデータを読み出し、読み出した遺伝子が前記共通遺伝子である場合には、読み出した遺伝子が何個目の共通遺伝子であるかを特定することによって、前記質問プロファイルに含まれる共通遺伝子の中での発現順位を求めさせ、
前記識別子として、比較対象となり得る遺伝子に連続した識別番号を付与させ、
前記識別番号が付与された遺伝子数分の発現順位データを書き込むことができる第１の発現順位配列データと第２の発現順位配列データのためのメモリ領域を確保させ、
前記遺伝子発現プロファイルに含まれる前記共通遺伝子の中での発現順位を、第１の発現順位配列データの中のそれぞれの共通遺伝子の識別番号で示される位置に書き込ませ、
前記質問プロファイルに含まれる前記共通遺伝子の中での発現順位を、第２の発現順位配列データの中のそれぞれの共通遺伝子の識別番号で示される位置に書き込ませ、
前記第１の発現順位配列データおよび前記第２の発現順位配列データから、それぞれの配列データにおいて対応する位置にある発現順位のデータを読み出し、読み出した発現順位の差に基づいて、遺伝子発現プロファイルと質問プロファイルとの順位相関係数を計算することによって前記相関を求めさせる遺伝子発現プロファイル比較プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースに記憶された既知の細胞の遺伝子発現プロファイルと、質問として入力された遺伝子発現プロファイルとの相関を求める装置に関する。
【背景技術】
【０００２】
現在、ＤＮＡマイクロアレイを用いた遺伝子発現モニタリングの研究が盛んに行われている。例えば、非特許文献１では遺伝子発現プロファイルデータから違いのあった遺伝子を見つける研究、非特許文献２では遺伝子発現プロファイルから癌を見つける研究が発表されている。
【０００３】
さて、ＤＮＡマイクロアレイを用いて遺伝子発現プロファイルから、そのプロファイルを有する細胞を特定することができれば、病理解析、犯罪捜査等の分野において非常に有用である。あらゆる細胞を網羅した遺伝子発現プロファイルデータベースから、未知の細胞の遺伝子発現プロファイルに一致する細胞、または類似度の高い細胞を検索することにより、未知の細胞を特定することができる。
【０００４】
既知の遺伝子発現プロファイルと、未知の遺伝子発現プロファイル（質問プロファイル）とを比較する手法としては、それぞれの遺伝子発現プロファイルに共通して含まれる遺伝子の発現量を比較する手法が知られている。
【０００５】
この手法では、まず、遺伝子発現プロファイルおよびその遺伝子発現プロファイルに含まれる遺伝子を特定して、その遺伝子の発現量を求めるクエリをデータベースに送信する。そして、データベースからのレスポンス（発現量のデータ）と、質問プロファイルに含まれる同じ遺伝子の発現量とを比較する。この方法で、比較対象の遺伝子発現プロファイルに含まれる複数の遺伝子について発現量を比較することにより、データベースに記憶された遺伝子発現プロファイルと質問プロファイルとの類似度を求める。
【非特許文献１】“Tumorclassification and marker gene prediction by feature selection and fuzzyc-means clustering using microarray data.”, Wang J, Bo TH, Jonassen I,Myklebost O, Hovig E, BMC Bioinformatics. 2003 Dec 02;4(1):60.
【非特許文献２】“Multiclasscancer diagnosis using tumor gene expression signatures.”, Ramaswamy S, TamayoP, Rifkin R, Mukherjee S, Yeang CH, Angelo M, Ladd C, Reich M, Latulippe E,Mesirov JP, Poggio T, Gerald W, Loda M, Lander ES, Golub TR, Proc Natl Acad SciU S A. 2001 Dec 18;98(26):15149-54.
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上記の方法では、比較対象の遺伝子発現プロファイルが増えると、計算処理に多大な時間を要し、かつ大きいメモリ領域を要するという問題があった。上記の方法において、遺伝子の発現量を求めるためにデータベースに送信するクエリは汎用の関数を用いるので便利ではあるが、レスポンスに時間を要する。また、指定した遺伝子のデータが欠損している場合には、遺伝子の発現量の問い合わせに要した時間が無駄となる。これらの原因により、計算処理に時間を要していた。
【０００７】
本発明は上記背景に鑑み、遺伝子発現プロファイルデータを高速に比較できる遺伝子発現プロファイル比較装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の遺伝子発現プロファイル比較装置は、遺伝子発現プロファイルを記憶した遺伝子発現プロファイルデータベースと、比較対象の質問プロファイルの入力を受け付ける入力手段と、前記入力手段にて入力された質問プロファイルと前記遺伝子発現プロファイルデータベースに記憶された遺伝子発現プロファイルとの相関を演算する演算手段とを備え、前記演算手段は、前記遺伝子発現プロファイルデータベースに記憶された遺伝子発現プロファイルのプラットフォームを構成する遺伝子の識別子を、その識別子によって定まる順序に従って、連続するメモリ領域に記憶して第１の構成遺伝子配列データを生成し、前記質問プロファイルを構成する遺伝子の識別子を、その識別子によって定まる順序に従って、連続するメモリ領域に記憶して第２の構成遺伝子配列データを生成し、前記第１の構成遺伝子配列データの先頭から順に遺伝子の識別子を読み出すと共に前記第２の構成遺伝子配列データの先頭から順に遺伝子の識別子を読み出し、読み出した遺伝子の識別子を比較し、両遺伝子の識別子が一致した場合には、遺伝子発現プロファイルのプラットフォームと質問プロファイルに共通する共通遺伝子として記憶すると共に前記第１の構成遺伝子配列データおよび前記第２の構成遺伝子配列データから次の遺伝子の識別子を読み出して比較し、両遺伝子の識別子が一致しない場合には、両遺伝子の識別子のうち順序が早い方の識別子が読み出された配列データから次の遺伝子の識別子を読み出して再度比較する処理を、第１の構成遺伝子配列データおよび第２の構成遺伝子配列データのいずれかのデータをすべて読み出すまで繰り返し行って共通遺伝子を抽出し、抽出した共通遺伝子の発現量を比較することによって前記相関を求める。
【０００９】
このように遺伝子発現プロファイルのプラットフォームを構成する遺伝子の識別子を識別子順に記憶した第１の構成遺伝子配列データと、質問プロファイルを構成する遺伝子の識別子を識別子順に記憶した第２の構成遺伝子配列データを生成する。これにより、第１の構成遺伝子配列データを先頭から順に読み出すという簡単な処理により、プラットフォームを構成する遺伝子の識別子を所定の順序に従って（例えば、小さい順に）読み出すことができる。同様に、第２の構成遺伝子配列データを先頭から順に読み出すという簡単な処理により、質問プロファイルを構成する遺伝子の識別子を所定の順序に従って読み出すことができる。第１の構成遺伝子配列データおよび第２の構成遺伝子配列データのそれぞれから所定の順序に従って（例えば、小さい順に）遺伝子の識別子が読み出されるので、読み出された両遺伝子が一致しない場合、識別子の順序が早い方の遺伝子は、他方の配列データに共通する遺伝子を有しないと判断できる。従って、識別子の順序が早い方の遺伝子を読み出した配列データから次の遺伝子（次に識別子の順序が早い遺伝子）を読み出して、再度比較する処理を繰り返し行う。この処理を繰り返すことにより、共通する遺伝子が存在するか否かを、他方の配列データの全遺伝子と比較することなく高速に求めることができる。このようにして求めた共通遺伝子について発現量を比較することにより、遺伝子発現プロファイルデータと質問プロファイルとの相関を求める演算処理の高速化を図ることができる。
【００１０】
上記遺伝子発現プロファイル比較装置において、前記演算手段は、前記遺伝子発現プロファイルデータベースに記憶された遺伝子発現プロファイルに含まれる遺伝子の識別子を、それぞれの遺伝子の発現順位に従って、連続するメモリ領域に記憶して第１の発現順遺伝子配列データを生成し、前記第１の発現順遺伝子配列データの先頭から順にデータを読み出し、読み出した遺伝子が前記共通遺伝子である場合には、読み出した遺伝子が何個目の共通遺伝子であるかを特定することによって、前記遺伝子発現プロファイルに含まれる共通遺伝子の中での発現順位を求め、前記質問プロファイルに含まれる遺伝子の識別子を、それぞれの遺伝子の発現順位に従って、連続するメモリ領域に記憶して第２の発現順遺伝子配列データを生成し、前記第２の発現順遺伝子配列データの先頭から順にデータを読み出し、読み出した遺伝子が前記共通遺伝子である場合には、読み出した遺伝子が何個目の共通遺伝子であるかを特定することによって、前記質問プロファイルに含まれる共通遺伝子の中での発現順位を求めてもよい。
【００１１】
このように遺伝子発現プロファイルに含まれる遺伝子の識別子を発現順位に従って記憶した第１の発現順遺伝子配列データの先頭から共通遺伝子を読み出し、読み出した順に順位を付すという簡単な処理により、遺伝子発現プロファイルに含まれる共通遺伝子の中での発現順位を求めることができる。同様にして、質問プロファイルに含まれる共通遺伝子の中での発現順位を、簡単な処理によって求めることができる。
【００１２】
上記遺伝子発現プロファイル比較装置において、前記演算手段は、前記識別子として、比較対象となり得る遺伝子に連続した識別番号を付与し、前記識別番号が付与された遺伝子数分の発現順位データを書き込むことができる第１の発現順位配列データと第２の発現順位配列データのためのメモリ領域を確保し、前記遺伝子発現プロファイルに含まれる前記共通遺伝子の中での発現順位を、第１の発現順位配列データの中のそれぞれの共通遺伝子の識別番号で示される位置に書き込み、前記質問プロファイルに含まれる前記共通遺伝子の中での発現順位を、第２の発現順位配列データの中のそれぞれの共通遺伝子の識別番号で示される位置に書き込み、前記第１の発現順位配列データおよび前記第２の発現順位配列データから、それぞれの配列データにおいて対応する位置にある発現順位のデータを読み出し、読み出した発現順位の差に基づいて、遺伝子発現プロファイルと質問プロファイルとの順位相関係数を計算してもよい。
【００１３】
このように比較対象となり得る遺伝子に連続した識別番号を付与し、遺伝子の情報をその識別番号で示される位置に書き込んだ配列データによって管理することにより、高速に遺伝子の情報を取得できる。本発明の構成によれば、付与した識別番号と同数の発現順位データを書き込める第１の発現順位配列データのメモリ領域を確保し、それぞれの共通遺伝子の識別番号で示される位置に発現順位データを書き込むことにより、遺伝子の識別番号順に共通遺伝子の発現順位のデータが書き込まれる。従って、第１の発現順位配列データの識別番号で示される位置からデータを読み出すという簡単な処理により、識別番号に対応する遺伝子の発現順位データを読み出すことができる。同様に、質問プロファイルに含まれる共通遺伝子の発現順位データも簡単な処理によって読み出すことができる。
【００１４】
上記遺伝子発現プロファイル比較装置において、前記第１の発現順位配列データおよび前記第２の発現順位配列データからの発現順位データの読み出しは、前記第２の発現順位配列データにおいて発現順位が小さい順に行い、前記第２の発現順位配列データから読み出した発現順位データに対応する前記第１の発現順位配列データの発現順位データが欠損している場合には、欠損値の個数を記憶しておき、前記第１の発現順位配列データおよび前記第２の発現順位配列データから読み出した発現順位の差を計算するときに、前記第２の発現順位配列データから読み出した発現順位からその時点での欠損値の個数を減算してから、発現順位の差を計算してもよい。
【００１５】
遺伝子発現プロファイルデータにおいては、プラットフォームに存在する遺伝子であっても、発現量データが必ずしも存在するとは限らず、欠損している場合もある。欠損遺伝子については、質問プロファイルの遺伝子の発現量との比較を行うことができない。本発明によれば、第２の発現順位配列データ（質問プロファイル）の発現順位データに対応する第１の発現順位配列データ（遺伝子発現プロファイル）の発現順位データが欠損している場合には、その遺伝子について発現順位データを比較することができないので、発現順位データの比較の対象から除く。第２の発現順位配列データにおいて発現順位が小さい順に読み出しを行っているので、欠損値が検出された後に読み出される発現順位データから欠損値の個数を減算することにより、欠損値が検出された後の発現順位データを欠損値の個数だけ繰り上げて順位差を計算し、相関を適切に求めることができる。
【００１６】
本発明の相関演算装置は、複数の識別子のそれぞれに与えられた順位を示す順位データを記憶した順位データベースと、前記順位データベースに記憶された順位データの比較対象となる順位データの入力を受け付ける入力手段と、前記入力手段にて入力された順位データと前記順位データベースに記憶された順位データとの相関を演算する演算手段とを備え、前記演算手段は、前記順位データベースに記憶された順位データに含まれる識別子を、その識別子によって定まる順序に従って、連続するメモリ領域に記憶して第１の配列データを生成し、前記入力手段に入力された順位データを構成する遺伝子の識別子を、その識別子によって定まる順序に従って、連続するメモリ領域に記憶して第２の配列データを生成し、前記第１の配列データの先頭から順に識別子を読み出すと共に前記第２の配列データの先頭から順に識別子を読み出し、読み出した識別子を比較し、両識別子が一致した場合には、一致した識別子を共通識別子として記憶すると共に前記第１の配列データおよび前記第２の配列データから次の識別子を読み出して比較し、両識別子が一致しない場合には、両識別子のうち順序が早い方の識別子が読み出された配列データから次の識別子を読み出して再度比較する処理を、第１の配列データおよび第２の配列データのいずれかのデータをすべて読み出すまで繰り返し行って共通識別子を抽出し、抽出した共通識別子の順位を比較することによって前記相関を求める。
【００１７】
この構成により、本発明の遺伝子発現プロファイル比較装置と同様に、第１の配列データと第２の配列データとの相関を求める演算処理を高速に行うことができる。また、本発明の遺伝子発現プロファイル比較装置の各種の構成を本発明の相関演算装置に適用することも可能である。
【００１８】
本発明のプログラムは、遺伝子発現プロファイルデータベースに記憶された遺伝子発現プロファイルと、比較対象の質問プロファイルとの相関をコンピュータに演算させるコンピュータ読み取り可能なプログラムであって、前記コンピュータに、前記遺伝子発現プロファイルデータベースに記憶された遺伝子発現プロファイルのプラットフォームを構成する遺伝子の識別子を、その識別子によって定まる順序に従って、連続するメモリ領域に記憶して第１の構成遺伝子配列データを生成させ、前記質問プロファイルを構成する遺伝子の識別子を、その識別子によって定まる順序に従って、連続するメモリ領域に記憶して第２の構成遺伝子配列データを生成させ、前記第１の構成遺伝子配列データの先頭から順に遺伝子の識別子を読み出すと共に前記第２の構成遺伝子配列データの先頭から順に遺伝子の識別子を読み出し、読み出した遺伝子の識別子を比較させ、両遺伝子の識別子が一致した場合には、遺伝子発現プロファイルのプラットフォームと質問プロファイルに共通する共通遺伝子として記憶すると共に前記第１の構成遺伝子配列データおよび前記第２の構成遺伝子配列データから次の遺伝子の識別子を読み出して比較し、両遺伝子の識別子が一致しない場合には、両遺伝子の識別子のうち順序が早い方の識別子が読み出された配列データから次の遺伝子の識別子を読み出して再度比較する処理を、第１の構成遺伝子配列データおよび第２の構成遺伝子配列データのいずれかのデータをすべて読み出すまで繰り返し行って共通遺伝子を抽出させ、抽出した共通遺伝子の発現量を比較することによって前記相関を求めさせる。
【００１９】
この構成により、本発明の遺伝子発現プロファイル比較装置と同様に、遺伝子発現プロファイルデータと質問プロファイルとの相関を求める演算処理を高速に行うことができる。また、本発明の遺伝子発現プロファイル比較装置の各種の構成を本発明の遺伝子発現プロファイル比較プログラムに適用することも可能である。
【発明の効果】
【００２０】
本発明によれば、識別子順に構成遺伝子を並べた第１の構成遺伝子配列データおよび第２の構成遺伝子配列データから遺伝子を読み出すことにより、それぞれの配列データから遺伝子の識別子が所定の順序に従って（例えば、小さい順に）読み出されるので、簡単な処理で共通遺伝子を高速に求めることができる。このようにして求めた共通遺伝子を比較することにより、遺伝子発現プロファイルデータと質問プロファイルとの相関を求める演算処理の高速化を図ることができるというすぐれた効果を有する。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態の遺伝子発現プロファイル比較装置について図面を用いて説明する。
【００２２】
図１は、本実施の形態の遺伝子発現プロファイル比較装置１０の構成を示す図である。遺伝子発現プロファイル比較装置１０は、比較対象の遺伝子発現プロファイルを質問プロファイルとして入力する入力部１２と、入力された質問プロファイルと遺伝子発現プロファイルデータベース（以下、「遺伝子発現プロファイルＤＢ」という）１６に記憶された遺伝子発現プロファイルデータを比較するＣＰＵ１４と、比較結果を出力する出力部２０とを備えている。ＣＰＵ１４には、メモリ１８が接続されている。ＣＰＵ１４は、演算を行う際に、メモリ１８にデータを書き込み、またメモリ１８からデータを読み出す。
【００２３】
遺伝子発現プロファイル比較装置１０は、例えば、パーソナルコンピュータによって構成される。入力部１２は、例えば、キーボード、マウス、ＣＤ−ＲＯＭ読取装置などで構成される。出力部２０は、例えば、モニタ、プリンタ、ＣＤ−ＲＯＭ書込装置などで構成される。
【００２４】
遺伝子発現プロファイルＤＢ１６には、複数の遺伝子発現プロファイルデータが記憶されている。遺伝子発現プロファイルデータを構成する遺伝子は、識別番号によって特定される。遺伝子発現プロファイル比較装置１０で比較対象として取り扱う遺伝子に対し、識別番号を付与しておく。ここで、比較対象として取り扱う遺伝子は、例えば、人間の遺伝子発現プロファイルを解析する場合には、人間が持つ全遺伝子である。また、全遺伝子のデータを持つことが難しい場合には、遺伝子発現プロファイルＤＢ１６に記憶された遺伝子発現プロファイルのプラットフォームを構成する遺伝子を、比較対象として取り扱う遺伝子としてもよい。例えば、遺伝子発現プロファイル比較装置１０で取り扱う遺伝子に、遺伝子発現プロファイル比較装置１０に特有の連続した識別番号を付与する。このとき、遺伝子発現プロファイル比較装置１０で用いる識別番号と、一般に用いられる遺伝子の識別子との対応を示すテーブルを使って、一般の識別子と遺伝子発現プロファイル比較装置１０に特有の識別番号とを変換してもよい。
【００２５】
図２（ａ）は、遺伝子発現プロファイルＤＢ１６に記憶されたデータの例を示す図である。以下の説明では、説明の便宜上、遺伝子の識別番号は「〜番」と記載し、識別番号にて特定される遺伝子の発現順位は「〜位」と記載する。なお、実際の遺伝子発現プロファイルデータは、何万個もの遺伝子に関する情報を有するが、本実施の形態では説明の便宜上、１〜１１番の遺伝子を対象としている。遺伝子発現プロファイルＤＢ１６は、遺伝子の発現量の情報を、遺伝子の発現順位として記憶する。これにより、遺伝子発現プロファイルの比較を容易に行える。図２（ａ）に示す例では、遺伝子発現プロファイルデータは、発現順位の高い方から、７番、３番、８番、１番、４番、１０番、１１番の遺伝子によって構成されている。すなわち、遺伝子発現プロファイルＤＢ１６に記憶された遺伝子発現プロファイルのプラットフォームは、比較対象となり得る１〜１１番の全遺伝子のうち、２番、５番、６番、９番の遺伝子を有しない。遺伝子発現プロファイルＤＢ１６には、図２（ａ）において、発現順位に従って並べた遺伝子の情報（太線で囲った部分）が記憶される。なお、遺伝子発現プロファイル比較装置１０は、図２（ａ）のように発現順位によってソートされた遺伝子発現プロファイルデータの情報を、図２（ｂ）に示すように識別番号順にソートすることができる。
【００２６】
次に、本実施の形態の遺伝子発現プロファイル比較装置１０によって、遺伝子発現プロファイルＤＢ１６に記憶された遺伝子発現プロファイルと、質問プロファイルとを比較する処理について説明する。
【００２７】
まず、入力部１２から入力される質問プロファイルの例について説明する。
図３は、質問プロファイルの例を示す図である。質問プロファイルは、遺伝子発現プロファイルと同様に、遺伝子の発現量を発現順位で示す情報である。入力部１２は、発現順位に従って並べた遺伝子の情報（太線で囲った部分）の入力を受け付ける。
【００２８】
遺伝子発現プロファイル比較装置１０は、遺伝子発現プロファイルＤＢ１６に記憶された遺伝子発現プロファイルと、入力部１２より入力された質問プロファイルとの相関を求める。最初に、計算の概略について述べる。
【００２９】
図４は、遺伝子発現プロファイル比較装置１０による計算処理を示すフローチャートである。まず、遺伝子発現プロファイルと質問プロファイルとに共通して含まれる遺伝子を共通遺伝子として求める（Ｓ１０）。次に、共通遺伝子の中での発現順位を求め（Ｓ１２）、同じ共通遺伝子における発現順位の差に基づいて順位相関係数を求める（Ｓ１４）。
以下、図２（ａ）と図３に示すデータを例として詳しく説明する。
【００３０】
（共通遺伝子の求め方）
遺伝子発現プロファイル比較装置１０のＣＰＵ１４は、遺伝子発現プロファイルＤＢ１６に記憶された遺伝子発現プロファイルのプラットフォームに含まれる遺伝子と、質問プロファイルの含まれる遺伝子との共通遺伝子を求める処理を行う。
【００３１】
ＣＰＵ１４は、プラットフォームに含まれる遺伝子の識別番号を、識別番号に従ってソートし、配列データとしてメモリ１８に記憶する。この配列データを第１の構成遺伝子配列データという。図５（ａ）は、遺伝子発現プロファイルデータ（図２（ａ））を識別番号順に並べた第１の構成遺伝子配列データを示す。同様に、質問プロファイルに含まれる遺伝子の識別番号を、識別番号に従ってソートし、配列データとしてメモリ１８に記憶する。この配列データを第２の構成遺伝子配列データという。図５（ｂ）は、質問プロファイル（図３）を識別番号順に並べた第２の構成遺伝子配列データを示す。
【００３２】
ＣＰＵ１４は、第１の構成遺伝子配列データおよび第２の構成遺伝子配列データのそれぞれから、先頭から順に読み出したデータを比較して、共通遺伝子を求める。具体的には、まず、プラットフォームの配列データ（図５（ａ））の先頭からデータを読み出し、「１番」という識別番号のデータを取得する。質問プロファイルの配列データ（図５（ｂ））の先頭からデータを読み出し、「１番」という識別番号のデータを取得する。読み出した両データを比較すると、ともに「１番」で一致していることから、プラットフォームと質問プロファイルとで「１番」の遺伝子が共通していることが分かる。ＣＰＵ１４は、「１番」を共通遺伝子として記憶する。
【００３３】
次に、ＣＰＵ１４は、プラットフォームの配列データ（図５（ａ））の２番目からデータを読み出し、「３番」という識別番号のデータを取得する。質問プロファイルの配列データ（図５（ｂ））の２番目からデータを読み出し、「２番」という識別番号のデータを取得する。読み出された両データを比較すると、両データは一致しないので、小さい方の識別番号を読み出した質問プロファイルの配列データ（図５（ｂ））から次の（３番目の）データを読み出し、「４番」という識別番号のデータを取得する。プラットフォームの配列データから読み出されたデータは「３番」であり、質問プロファイルの配列データから読み出されたデータは「４番」であるので、両データは一致しない。ＣＰＵ１４は、小さい方の識別番号を読み出したプラットフォームの配列データ（図５（ａ））から次の（配列の３番目）のデータを読み出し、「４番」という識別番号のデータを取得する。読み出したデータを比較すると、ともに「４番」で一致していることから、プラットフォームと質問プロファイルとで「４番」の遺伝子が共通していることが分かる。ＣＰＵ１４は、「４番」を共通遺伝子として記憶する。
【００３４】
以下、同様に、第１の構成遺伝子配列データおよび第２の構成遺伝子配列データのそれぞれから順にデータを読み出して比較する処理を、第１の構成遺伝子配列データまたは第２の構成遺伝子配列データのすべてのデータを読み出すまで行い、共通遺伝子を求める。この例では、１番、４番、７番、８番、１１番の遺伝子が共通遺伝子として求められる。なお、プラットフォームを構成する遺伝子と質問プロファイルとに共通する共通遺伝子は、遺伝子発現プロファイルＤＢ１６に記憶された個々の遺伝子発現プロファイルとの比較を行う前に求めておくことが好ましい。
【００３５】
図６は、共通遺伝子を示す配列データ（以下、「共通遺伝子配列データ」という）の例を示す図である。共通遺伝子配列データは、本実施の形態で比較対象としている１〜１１番の遺伝子についてのデータを記憶する。共通遺伝子配列データは、１１個のデータを記憶できる大きさを有し、共通遺伝子配列データのａ番目には、識別番号がａ番の遺伝子についてのデータが記憶される。共通遺伝子配列データでは、共通遺伝子に「ＴＲＵＥ」の値を記憶し、共通遺伝子以外の遺伝子の「ＦＡＬＳＥ」の値を記憶する。例えば、１番は共通遺伝子なので、配列データの１番目に「ＴＲＵＥ」の値が記憶される。２番は共通遺伝子ではないので、配列データの２番目に「ＦＡＬＳＥ」の値が記憶される。メモリ１８にこのような共通遺伝子配列データを記憶しておくことにより、遺伝子の識別番号から、その遺伝子が共通遺伝子であるか否かを簡単にチェックすることができる。例えば、ａ番の遺伝子が共通遺伝子であるか否かを見る場合には、配列データのａ番目のデータを読み出し、ＴＲＵＥかＦＡＬＳＥかを判定することにより、高速に判定できる。なお、実際のプログラムにおいては、遺伝子の識別番号を配列データの添字として用いることにより、その識別番号の遺伝子の情報を参照できる。
【００３６】
（共通遺伝子の中での発現順位の求め方）
次に、共通遺伝子の中での発現順位を求める方法について説明する。
ＣＰＵ１４は、図７（ａ）に示すように、遺伝子発現プロファイルデータを発現順に並べた配列データを生成する。この配列データを、発現順遺伝子配列データという。この配列データでは、共通遺伝子か否かにかかわらず、遺伝子発現プロファイルに含まれる遺伝子に発現順位を付与している。ＣＰＵ１４は、発現順遺伝子配列データの先頭の方から順に共通遺伝子を読み出し、読み出した順に順位を付し、遺伝子発現プロファイルに含まれる共通遺伝子の中での発現順位を求める。遺伝子発現プロファイルデータから共通遺伝子を読み出し、読み出した共通遺伝子の発現順位を記憶するための構成について詳述する。
【００３７】
ＣＰＵ１４は、図７（ｃ）に示すように、識別番号と同数のデータを書き込むことができる配列データを生成する。この配列データの値は、最初、すべて「０」としておく。この配列データを発現順位配列データという。図７（ｂ）は、前述した共通遺伝子配列データである。ＣＰＵ１４は、発現順遺伝子配列データの先頭から識別番号のデータを読み出す。ここでは、「７番」という識別番号が読み出される。ＣＰＵ１４は、識別番号で示される位置にある共通遺伝子配列データの値を参照する。図７（ｂ）を参照すると、共通遺伝子配列データの７番目の値は、「ＴＲＵＥ」である。従って、ＣＰＵ１４は、「７番」を共通遺伝子と判定し、発現順位をカウントアップし（この段階では１位）、共通遺伝子の中での発現順位とする。ＣＰＵ１４は、求めた発現順位を発現順位配列データ（図７（ｃ））の中の識別番号で示される位置に書き込む。
【００３８】
次に、ＣＰＵ１４は、発現順遺伝子配列データの次のデータ（２番目のデータ）を読み出す。ここでは、「３番」という識別番号が読み出される。この識別番号で示される位置にある共通遺伝子配列データ（図７（ｂ））の値を参照すると、「ＦＡＬＳＥ」である。従って、ＣＰＵ１４は、「３番」の遺伝子は共通遺伝子ではないと判断し、次の処理に進む。ＣＰＵ１４は、発現順遺伝子配列データの次のデータ（３番目のデータ）を読み出す。ここでは、「８番」という識別番号が読み出される。この識別番号で示される位置にある共通遺伝子配列データ（図７（ｂ））を参照すると、「ＴＲＵＥ」である。従って、ＣＰＵ１４は、「８番」を共通遺伝子と判定し、発現順位をカウントアップし（この段階では２位）、共通遺伝子の中での発現順位とする。ＣＰＵ１４は、求めた発現順位を、発現順位配列データ（図７（ｃ））の中の識別番号で示される位置に書き込む。以上の処理を発現順遺伝子配列データ（図７（ａ））の中の全データを読み出すまで繰り返し行い、共通遺伝子の中での発現順位を求める。図７（ｄ）は、共通遺伝子の中での発現順位を記憶した発現順位配列データを示す図である。「０」は、共通遺伝子ではないか、あるいは発現量のデータがないことを示す。同様に、ＣＰＵ１４は、質問プロファイルの共通遺伝子の中での発現順位を求める。
【００３９】
（順位相関係数の求め方）
次に、順位相関係数の求め方について説明する。
図８（ａ）は遺伝子発現プロファイルデータの共通遺伝子の中での発現順位を示す第１の発現順位配列データを示す図、図８（ｂ）は質問プロファイルの共通遺伝子の中での発現順位を示す第２の発現順位配列データを示す図である。メモリ１８に、図８（ａ）および図８（ｂ）に示す発現順位配列データを記憶しておく。
【００４０】
ＣＰＵ１４は、第１の発現順位配列データと第２の発現順位配列データから同じ識別番号の発現順位データを読み出し、読み出したそれぞれの発現順位データの差に基づいて順位相関係数を求める。ＣＰＵ１４は、それぞれの共通遺伝子の個数ｎ、それぞれの順位の差をＤｉとして、式（１）によって順位相関係数ｒを求める。
【数１】
0004568861.tif 000002
第１の発現順位配列データと第２の発現順位配列データからのデータ読み出しは、第２の発現順位配列データにおいて発現順位の高い方から順に読み出す。この例では、７番、１番、８番、１１番、４番の順で発現順位データを読み出す。これにより、次に説明するように、遺伝子発現プロファイルデータに欠損がある場合にも、適切に順位相関係数を求めることができる。
【００４１】
（欠損値がある場合の順位相関係数の求め方）
図９（ａ）は、図８（ａ）に示す第１の発現順位配列データにおいて、識別番号「１番」の遺伝子のデータが欠損している例を示す図である。図９（ａ）に示すように、「１番」の遺伝子は欠損によりデータを有しないので、「０」の値となっている。また、これに伴い、「４番」「１１番」の共通遺伝子内での発現順位が一つずつ繰り上がっている。
【００４２】
ＣＰＵ１４は、まず、第２の発現順位配列データにおいて最も順位の高い「７番」の発現順位データを、第１の発現順位配列データおよび第２の発現順位配列データから読み出す。第１の発現順位配列データおよび第２の発現順位配列データの「７番」からは、ともに発現順位データが取得することができ、ＣＰＵ１４は、順位の差Ｄｉを求める。
【００４３】
次に、ＣＰＵ１４は、第２の発現順位配列データにおいて２番目に順位の高い「１番」の発現順位データを、第１の発現順位配列データおよび第２の発現順位配列データから読み出す。第１の発現順位配列データからは、データがないことを示す「０」が読み出されるので、ＣＰＵ１４は順位の差Ｄｉの計算を行わず、欠損値の個数をカウントアップする。この段階では、欠損値の個数は１個となる。
【００４４】
次に、ＣＰＵ１４は、第２の発現順位配列データにおいて３番目に順位の高い「８番」の発現順位データを、第１の発現順位配列データおよび第２の発現順位配列データから読み出す。第１の発現順位配列データおよび第２の発現順位配列データの「８番」からは、ともに発現順位データが取得することができるので、順位の差Ｄｉを求める。この際、第２の発現順位配列データから読み出した発現順位データから欠損値の個数を減算する。ここでは、第２の発現順位配列データの「８番」からは、「３位」という発現順位データが読み出されたので、欠損値の個数１個を減算して発現順位を「２位」とした後に、第１の発現順位配列データから読み出した発現順位との差Ｄｉを求める。以下、同様の処理を繰り返し、共通遺伝子について順位の差Ｄｉを求め、順位相関係数を計算する。
以上、本実施の形態におけるＣＰＵ１４の処理について説明した。
【００４５】
次に、本実施の形態の遺伝子発現プロファイル比較装置１０の効果について説明する。
本実施の形態の遺伝子発現プロファイル比較装置１０では、プラットフォームを構成する遺伝子を識別番号順に記憶した第１の構成遺伝子配列データと質問プロファイルを構成する遺伝子を識別番号順に記憶した第２の構成遺伝子配列データを生成し、それぞれの配列データの先頭から順に遺伝子の識別番号を読み出して比較する。第１の構成遺伝子配列データおよび第２の構成遺伝子配列データから、識別番号が小さい順に遺伝子の識別番号が読み出されるので、共通遺伝子を効率良く検索することができる。
【００４６】
共通遺伝子を求める従来方法として、ハッシュ法または木構造を利用した方法が知られていた。しかし、ハッシュ法では、複数のポインタを辿る必要があり、処理に時間を要する。また、ハッシュ法においてはハッシュ表のコマ、木構造を利用する方法においては木構造を表すポインタなどをメモリに記憶する必要がある。これに対し、本実施の形態の方法によれば、単純な配列データを用いるのでポインタを辿る必要がなく、使用するメモリも小さい。これにより、配列データがＣＰＵキャッシュに入り切る可能性が高く、計算処理の高速化を図れる。
【００４７】
また、本実施の形態では、配列に遺伝子の識別番号順にデータを格納しているので、計算量を低減し、処理速度を高めることができる。図１０（ａ）は、識別番号をランダムに格納した配列データを用いて共通遺伝子を検索した例を説明する図であり、遺伝子発現プロファイルに含まれる「３番」の遺伝子が、質問プロファイルに含まれているかを検索する例を示す。例えば、「３番」の遺伝子を見つけ出すまで、質問プロファイルの全データを検索する必要がある。例えば、１万個の遺伝子を含む遺伝子発現プロファイルと１万個の遺伝子を含む質問プロファイルとに共通する遺伝子を見つけるためには、最大で、１万×１万＝１億（回）のデータ読み出しが必要である。これに対し、図１０（ｂ）は本実施の形態による共通遺伝子の検索を説明する図である。本実施の形態では、図１０（ｂ）に示すように、識別番号を小さい順に記憶しているので、遺伝子発現プロファイルに含まれる「３番」の遺伝子が質問プロファイルに含まれているか否かを検索する際には、質問プロファイルの構成遺伝子配列データから読み出される遺伝子の識別番号が「３番」より大きくなった時点で、質問プロファイルには「３番」の遺伝子が含まれていないと判断できる。従って、質問プロファイルの全データを検索する必要がなくなり、効率良く共通遺伝子を検索できる。遺伝子発現プロファイルまたは質問プロファイルに含まれる遺伝子数が多い場合には、特に大きい効果を発揮する。
【００４８】
また、共通遺伝子の中での発現順位を求めるときには、発現順に並べて記憶した識別番号の発現順遺伝子配列データを生成し、発現順遺伝子配列データの先頭から順に遺伝子の識別番号を読み出して、読み出した遺伝子が共通遺伝子である場合に、発現順位を付与していく。従って、配列データから順次データを読み出すという簡単な処理によって、共通遺伝子の中での発現順位を高速に求めることができる。
【００４９】
また、共通遺伝子か否かの判定においては、識別番号によって指定される位置にその識別番号の遺伝子が共通であるか否かを示す情報を記憶した共通遺伝子配列データを参照するので、所定の識別番号の遺伝子が共通遺伝子であるか否かを高速に判定できる。すなわち、共通遺伝子配列データを記憶したメモリ１８には、識別番号に従って、共通遺伝子であるか否かの情報が記憶されているので、所定の識別番号の遺伝子のデータを参照したいときには、識別番号で示される位置のデータを参照すれば、共通遺伝子であるか否かを即座に読み取ることができる。
【００５０】
また、相関順位係数を求める際に、遺伝子の発現順位のデータを識別番号順に並べた発現順位配列データを用いているので、所定の遺伝子の発現順位を迅速に求めることができる。図１１は、所定の遺伝子の発現順位を読み出す従来方法の例を示す図である。従来の装置では、発現順位のデータは、識別番号に関連付けられてデータベース等に記憶されている。識別番号を指定して発現順位を求める関数をデータベースに送信すると、データベースでは、指定された識別番号に一致する遺伝子を検索し、指定された遺伝子が見つかると、その遺伝子に関連付けられた発現順位のデータを読み出しに行く。つまり、識別番号の情報に、発現順位データが記録された領域のアドレスが付加されており、このアドレスを参照して発現順位データを読み出す。従って、所定の遺伝子の発現順位を検索するには時間を要していた。本実施の形態によれば、発現順位配列データの中で識別番号で指定された位置に記憶されたデータを読み出すだけなので、極めて短時間で発現順位データを取得できる。
【００５１】
また、順位相関係数を求める際に、質問プロファイルに含まれる共通遺伝子の中での発現順位データを識別番号順に記憶した第２の発現順位配列データの発現順に発現順位を読み出し、対応する発現順位データが欠損している場合には、欠損値をカウントアップする。そして、順位相関係数を計算する際に、第２の発現順位配列データから読み出した発現順位から、その時点での欠損値の個数を減じて新たな発現順位とする処理を行う。これにより、読み出した遺伝子の識別番号より上位に存在する欠損値の個数を発現順位から減じて、欠損遺伝子を除く共通遺伝子の中での発現順位を計算することができる。欠損値が存在する場合にも、順位相関係数を適切に求めることができる。
【００５２】
以上、本発明の遺伝子発現プロファイル比較装置１０について実施の形態を挙げて詳細に説明したが、本発明は上記した実施の形態に限定されるものではない。
【００５３】
上記の実施の形態では、遺伝子発現プロファイルを比較する比較装置について説明したが、複数の遺伝子発現プロファイルから質問プロファイルに最も相関の高い遺伝子発現プロファイルを検索する検索装置にも適用することができる。
【００５４】
また、上記の実施の形態では、遺伝子発現プロファイル比較装置１０について説明したが、上記したＣＰＵ１４の処理を実行させるためのプログラムも本発明に含まれる。
【００５５】
また、上記した実施の形態では、遺伝子発現プロファイルを比較する遺伝子発現プロファイル比較装置１０について説明したが、一般の順位データを比較する相関演算装置にも適用することができる。
【産業上の利用可能性】
【００５６】
以上説明したように、本発明は、遺伝子発現プロファイルデータと質問プロファイルとの相関を求める演算処理を高速に行うことができるというすぐれた効果を有し、遺伝子発現プロファイルを比較する遺伝子発現プロファイル比較装置等として有用である。
【図面の簡単な説明】
【００５７】
【図１】実施の形態の遺伝子発現プロファイル比較装置の構成を示す図である。
【図２】（ａ）は、遺伝子発現プロファイルＤＢに記憶されたデータの例を示す図である。  （ｂ）は、遺伝子発現プロファイルデータを識別子順にソートしたデータの例を示す図である。
【図３】質問プロファイルのデータの例を示す図である。
【図４】遺伝子発現プロファイル比較装置による順位相関係数の計算処理を示す図である。
【図５】（ａ）は、遺伝子発現プロファイルデータの例を示す図である。  （ｂ）は、質問プロファイルの例を示す図である。
【図６】共通遺伝子配列データの例を示す図である。
【図７】（ａ）は、遺伝子発現プロファイルデータの例を示す図である。  （ｂ）は、共通遺伝子配列データの例を示す図である。  （ｃ）は、識別番号と同数のデータを書き込むことができる配列データを示す図である。  （ｄ）は、共通遺伝子の中での発現順位を記憶した発現順位配列データを示す図である。
【図８】（ａ）は、遺伝子発現プロファイルデータの発現順位配列データの例を示す図である。  （ｂ）は、質問プロファイルの発現順位配列データの例を示す図である。
【図９】（ａ）は、遺伝子発現プロファイルデータの発現順位配列データの例を示す図である。  （ｂ）は、質問プロファイルの発現順位配列データの例を示す図である。
【図１０】（ａ）は、従来の共通遺伝子の検索を説明する図である。  （ｂ）は、本実施の形態による共通遺伝子の検索を説明する図である。
【図１１】所定の遺伝子の発現順位を読み出す従来方法の例を示す図である。
【符号の説明】
【００５８】
１０  遺伝子発現プロファイル比較装置
１２  入力部
１４  ＣＰＵ
１６  遺伝子発現プロファイルＤＢ
１８  メモリ
２０  出力部
【図１】
0004568861.tif 000003
【図２】
0004568861.tif 000004
【図３】
0004568861.tif 000005
【図４】
0004568861.tif 000006
【図５】
0004568861.tif 000007
【図６】
0004568861.tif 000008
【図７】
0004568861.tif 000009
【図８】
0004568861.tif 000010
【図９】
0004568861.tif 000011
【図１０】
0004568861.tif 000012
【図１１】
0004568861.tif 000013