以下に、本発明にかかる特定方法、特定プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1~図4は、本実施例1に係る情報処理装置の処理を説明するための図である。情報処理装置は、下記の処理を行うことで、分析対象の塩基配列に発生した点突然変異を特定する。点突然変異には「塩基挿入」、「塩基欠失」、「塩基置換」が含まれる。本実施例1では、コドン単位に示される、正常な塩基配列の情報を「基準コドン配列データ」と表記する。コドン単位に示される、分析対象の塩基配列の情報を「分析対象コドン配列データ」と表記する。
図1について説明する。情報処理装置は、基準コドン配列データ20Aと、分析対象コドン配列データ20Bとをコドン単位で先頭から順に比較する。情報処理装置は、基準コドン配列データ20Aと、分析対象コドン配列データ20Bとを比較すると、配列位置P20以降のコドンが異なっていることを特定する。これにより、情報処理装置は、分析対象コドン配列データ20Bに、突然変異が存在すると判定する。以下の説明では、基準コドン配列データと、分析対象コドン配列データとを先頭から順に比較し、コドンが異なる配置位置を「変異位置」と表記し、それぞれのコドンを「被変異コドン」、「変異コドン」と表記する。
図2について説明する。情報処理装置は、分析対象コドン配列データ20Bに、突然変異が存在すると判定すると、分析対象コドン配列データ20Bに含まれるコドンから、変異コドンと、後続する2つのコドンとを特定する。後続する2つのコドンを「変異nコドン」(nは1以上の整数)、「変異n+1コドン」と表記する。たとえば、図2において、変異コドンを「GUC」とすると、変異1コドンは「CAA」となり、変異2コドンは「GUG」となる。
情報処理装置は、挿入遷移テーブル140fと、変異コドンに後続する2つの変異nコドンと変異n+1コドンとをもとに、被変異コドンの次の被変異nコドンを特定する。なお、nは1以上の整数である。被変異コドンの次のコドンを「被変異nコドン(塩基挿入)」と表記する。挿入遷移テーブル140fは、変異コドンに後続する2つのコドンと、塩基挿入前の被変異コドンの次の1つのコドンとを対応付けるテーブルである。挿入遷移テーブル140fの被変異nコドンと、基準コドン配列データの変異位置の次のコドンとが一致する場合には、分析対象コドン配列データに発生した点突然変異が「塩基挿入」となる。
図2に示す例では、挿入遷移テーブル140fにおいて、変異コドン「GUC」に後続する変異nコドン「CAA」と変異n+1コドン「GUG」とに対応する被変異nコドンは「AAG」である。情報処理装置は、基準コドン配列データ20Aの基準位置P20の次のコドン「AAG」と、被変異nコドン(挿入)「AAG」とを比較すると、一致する。このため、情報処理装置は、分析対象コドン配列データ20Bに発生した点突然変異が「塩基挿入」であると判定する。
なお、挿入遷移テーブル140fの変異nコドンと、基準コドン配列データの変異位置の次のコドンとが一致しない場合、分析対象コドン配列データに発生した点突然変異は「塩基欠失」または「塩基置換」である。
図3について説明する。情報処理装置は、基準コドン配列データ30Aと、分析対象コドン配列データ30Bとをコドン単位で先頭から順に比較する。情報処理装置は、基準コドン配列データ30Aと、分析対象コドン配列データ30Bとを比較すると、配置位置(変異位置)P30以降のコドンが異なっていることを特定する。これにより、情報処理装置は、分析対象コドン配列データ30Bに、突然変異が存在すると判定する。
図4について説明する。情報処理装置は、分析対象コドン配列データ30Bに、突然変異が存在すると判定すると、分析対象コドン配列データ30Bに含まれるコドンから、変異コドンと、後続する2つのコドンを特定する。たとえば、図4に示す例では、変異コドンは「UCA」となる。後続する2つのコドンは「AGU」「GCU」となる。
情報処理装置は、欠失遷移テーブル140gと、変異コドンに後続する2つのコドンとをもとに塩基欠失前の被変異コドンに後続する2つ目のコドンを特定する。後続する2つ目のコドンは「被変異n+1コドン(塩基欠失)」と表記する。欠失遷移テーブル140gは、変異コドンと、後続する2つのコドンと、塩基欠失前の被変異コドンに後続する2つ目のコドンとを対応付けるテーブルである。欠失遷移テーブル140gの被変異n+1コドンと、基準コドン配列データの変異位置に継続する2つ目のコドンとが一致する場合には、分析対象コドン配列データに発生した点突然変異が「塩基欠失」となる。
図4に示す例では、欠失遷移テーブル140gにおいて、変異コドン「UCA」と後続する2つのコドン「AUG」「GCU」とに対応する塩基欠失前の被変異n+1コドンは「UGC」である。情報処理装置は、基準コドン配列データ30Aの変異位置P30のコドン「UUU」に後続する2つ目のコドン「UGC」を比較すると、一致する。このため、情報処理装置は、分析対象コドン配列データ30Bに発生した点突然変異が「塩基欠失」であると判定する。
これまで、便宜上、被変異2コドン「UGC」につき、欠失を判定する例を説明したが、被変異1コドン「AAG」についても、欠失遷移テーブル140gを用いて、変異(0)コドン「UCA」と変異1コドン「AUG」から、被変異1コドン「AAG」を参照することができ、欠失を判定することが可能である(なお、nは0以上の整数である。)。
なお、欠失遷移テーブル140gの被変異n+1コドンと、基準コドン配列データの変異位置に後続する2つ目のコドンとが一致しない場合、分析対象コドン配列データに発生した点突然変異は「塩基挿入」または「塩基置換」である。
一方、分析対象コドン配列データの変異コドンに後続する複数のコドンと基準コドン配列データの被変異コドンに後続する複数のコドンが一致する場合、分析対象コドン配列データに発生した点突然変異は「塩基置換」である。
上記のように、本実施例1に係る情報処理装置は、基準コドン配列データと、分析対象コドン配列データとをコドン単位で比較して、不一致となるコドンを特定する。そして、情報処理装置は、不一致となる変異コドンに後続する2つのコドンをもとに、挿入遷移テーブル140fから被変異コドンの次のコドン、欠失遷移テーブル140gから、被変異コドンに後続する2つ目のコドンを取得し、分析対象コドン配列データに含まれる被変異コドンに後続するコドンと比較し、点突然変異の種別を特定する。これにより、一貫して、符号化されたコドン単位の比較によって、不一致コドンを特定しつつ、突然変異の種別を判定できるため、突然変異の種別判定に要する時間を短縮することができる。
次に、本実施例1に係る情報処理装置の構成について説明する。図5は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。図5に示すように、情報処理装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
通信部110は、ネットワークを介して図示しない外部装置とデータ通信を実行する処理部である。通信部110は、通信装置の一例である。たとえば、情報処理装置100は、ネットワークを介して外部装置から、基準コドン配列データ140a、分析対象コドン配列データ140b等の情報を受信してもよい。
入力部120は、各種の情報を情報処理装置100に入力するための入力装置である。たとえば、入力部120は、キーボードやマウス、タッチパネルなどに対応する。
表示部130は、制御部150から出力される各種の情報を表示する表示装置である。表示部130は、有機EL(electro-luminescence)ディスプレイ、液晶ディスプレイ、タッチパネル等に対応する。
記憶部140は、基準コドン配列データ140a、分析対象コドン配列データ140b、コード変換テーブル140c、第1配列データ140d、第2配列データ140eを有する。また、記憶部140は、挿入遷移テーブル140f、欠失遷移テーブル140g、検出結果テーブル140hを有する。記憶部140は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
基準コドン配列データ140aは、コドン単位に示される、正常な塩基配列の情報である。図6は、基準コドン配列データのデータ構造の一例を示す図である。図6に示すように、基準コドン配列データ140aには、開始コドンから終止コドンまで、複数のコドンが配列されている。たとえば、開始コドンを「AUG」とする。また、終止コドンを「UGA」とする。
分析対象コドン配列データ140bは、コドン単位に示される、分析対象となる塩基配列の情報である。図7は、分析対象コドン配列データのデータ構造の一例を示す図である。図7に示すように、分析対象コドン配列データ140bには、開始コドンから終止コドンまで、複数のコドンが配列されている。たとえば、開始コドンを「AUG」とする。また、終止コドンを「UGA」とする。
コード変換テーブル140cは、コドンと、符号とを対応付けるテーブルである。図8は、コード変換テーブルのデータ構造の一例を示す図である。たとえば、コドン「UUU」は、符号「40h(01000000)」に対応付けられる。hは16進数を示す符号である。説明の便宜上、コドン「UUU」を符号化したものを「UUU(40h)」と表記する。他のコドンについても同様に、符号化したものを括弧によって示す。
第1配列データ140dは、コード変換テーブル140cに基づき、基準コドン配列データ140aを符号化した配列データである。図9は、第1配列データのデータ構造の一例を示す図である。図9に示すように、第1配列データ140dには、開始コドンから終止コドンまで、複数の符号化されたコドンが配列されている。
第2配列データ140eは、コード変換テーブル140cに基づき、分析対象コドン配列データ140bを符号化した配列データである。図10は、第2配列データのデータ構造の一例を示す図である。図10に示すように、第2配列データ140eは、開始コドンから終止コドンまで、複数の符号化されたコドンが配列されている。
挿入遷移テーブル140fは、変異コドンに後続する変異nコドン、変異n+1コドンと、塩基挿入前の被変異nコドンとを対応付けるテーブルである。図11は、挿入遷移テーブルのデータ構造の一例を示す図である。図11に示すように、挿入遷移テーブル140fは、遷移テーブル50U,50C,50A,50Gを有する。
遷移テーブル50Uは、各変異nコドンと、変異n+1コドン(Uからはじまるコドン)と、塩基挿入前の被変異nコドンとを対応付ける。各コドンの関係は、符号化されたコドンで定義される。図12Aは、挿入遷移テーブルの遷移テーブル50Uのデータ構造を示す図である。i行目j列目の変異nコドンおよび変異n+1コドンに対応するコドンは、i行目j列目の塩基挿入前の被変異nコドンである。
遷移テーブル50Cは、各変異nコドンと、変異n+1コドン(Cからはじまるコドン)と、塩基挿入前の被変異nコドンとを対応付ける。各コドンの関係は、符号化されたコドンで定義される。図12Bは、挿入遷移テーブルの遷移テーブル50Aのデータ構造を示す図である。i行目j列目の変異nコドンおよび変異n+1コドンに対応するコドンは、i行目j列目の塩基挿入前の被変異nコドンである。
遷移テーブル50Aは、各変異nコドンと、変異n+1コドン(Aからはじまるコドン)と、塩基挿入前の被変異nコドンとを対応付ける。各コドンの関係は、符号化されたコドンで定義される。図12Cは、挿入遷移テーブルの遷移テーブル50Aのデータ構造を示す図である。i行目j列目の変異nコドンおよび変異n+1コドンに対応するコドンは、i行目j列目の塩基挿入前の被変異nコドンである。
遷移テーブル50Cは、各変異nコドンと、変異n+1コドン(Gからはじまるコドン)と、塩基挿入前の変異nコドンとを対応付ける。各コドンの関係は、符号化されたコドンで定義される。図12Dは、挿入遷移テーブルの遷移テーブル50Gのデータ構造を示す図である。i行目j列目の変異nコドンおよび変異n+1コドンに対応するコドンは、i行目j列目の塩基挿入前の被変異nコドンである。たとえば、11行目2列目の変異nコドン「CAA(5Ah)」および変異n+1コドン「GUG(73h)」に対応するコドンは、11行目2列目の塩基挿入前の被変異nコドン「AAG(6Bh)」となる。
欠失遷移テーブル140gは、変異nコドンおよび各変異n+1コドンと、塩基欠失前の被変異n+1コドンとを対応付ける。図13は、欠失遷移テーブルのデータ構造の一例を示す図である。図13に示すように、欠失遷移テーブル140gは、遷移テーブル55U,55C,55A,55Gを有する。
遷移テーブル55Uは、変異nコドン(末尾がUとなるコドン)と、各変異n+1コドンと、塩基欠失前の被変異n+1コドンとを対応付ける。各コドンの関係は、符号化されたコドンで定義される。図14Aは、欠失遷移テーブルの遷移テーブル55Uのデータ構造を示す図である。図14Aに示されるいずれかの変異nコドンおよびi行目j列目の変異n+1コドンに対応するコドンは、i行目j列目の塩基欠失前の被変異n+1コドンである。たとえば、変異nコドン「AGU(6Ch))」および5行目4列目の変異n+1コドン「GCU(74h)」に対応するコドンは、5行目4列目の被変異n+1コドン「UGC(4Dh)」となる。
遷移テーブル55Cは、変異nコドン(末尾がCとなるコドン)と、各変異n+1コドンと、塩基欠失前の被変異n+1コドンとを対応付ける。各コドンの関係は、符号化されたコドンで定義される。図14Bは、欠失遷移テーブルの遷移テーブル55Cのデータ構造を示す図である。図14Bに示されるいずれかの変異nコドンおよびi行目j列目の変異n+1コドンに対応するコドンは、i行目j列目の塩基欠失前n+1コドンである。
遷移テーブル55Aは、変異nコドン(末尾がAとなるコドン)と、各変異n+1コドンと、塩基欠失前の被変異n+1コドンとを対応付ける。各コドンの関係は、符号化されたコドンで定義される。図14Cは、欠失遷移テーブルの遷移テーブル55Aのデータ構造を示す図である。図14Cに示されるいずれかの変異nコドンおよびi行目j列目の変異n+1コドンに対応するコドンは、i行目j列目の塩基欠失前n+1コドンである。
遷移テーブル55Gは、変異nコドン(末尾がGとなるコドン)と、各変異n+1コドンと、塩基欠失前の被変異n+1コドンとを対応付ける。各コドンの関係は、符号化されたコドンで定義される。図14Dは、欠失遷移テーブルの遷移テーブル55Gのデータ構造を示す図である。図14Dに示されるいずれかの変異nコドンおよびi行目j列目の変異n+1コドンに対応するコドンは、i行目j列目の塩基欠失前n+1コドンである。
図5の説明に戻る。検出結果テーブル140hは、分析対象コドン配列データ140bから検出される点突然変異の情報を保持するテーブルである。
制御部150は、受付部150a、符号化部150b、比較部150c、特定部150dを有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
受付部150aは、入力部120、外部装置等から、基準コドン配列データ140aおよび分析対象コドン配列データ140bを受け付ける処理部である。受付部150aは、基準コドン配列データ140aおよび分析対象コドン配列データ140bを記憶部140に登録する。
また、受付部150aは、入力部120、外部装置等から、挿入遷移テーブル140fおよび欠失遷移テーブル140gを受け付けた場合には、挿入遷移テーブル140fおよび欠失遷移テーブル140gを記憶部140に登録する。
符号化部150bは、コード変換テーブル140cを基にして、基準コドン配列データ140aおよび分析対象コドン配列データを符号化する処理部である。符号化部150bは、基準コドン配列データ140aと、コード変換テーブル140cとを比較して、各コドンを符号化することで、第1配列データ140dを生成する。符号化部150bは、分析対象コドン配列データ140bと、コード変換テーブル140cとを比較して、各コドンを符号化することで、第2配列データ140eを生成する。符号化部150bは、第1配列データ140dおよび第2配列データ140eを、記憶部140に格納する。
図8に示したように、コード変換テーブル140cにより、各コドンには、1バイトのコードが割り当てられる。たとえば、コドン「UUU」は「40h(01000000)」に変換される。符号化されたコドンを「UUU(40h)」と表記する。
比較部150cは、第1配列データ140dと、第2配列データ140eとを比較して、符号化されたコドンが不一致となる変異位置を特定する処理部である。上述したように、各コドンには1バイトのコードが割り当てられているため、比較部150cは、第1配列データ140dおよび第2配列データ140eについて、先頭から1バイトずつコードを読み出し、比較する処理を繰り返し実行する。
比較部150cは、不一致となる変異位置を特定した場合には、比較結果を特定部150dに出力する。比較結果には、変異位置、第1の被変異コドン、第2の変異コドン、変異nコドン、変異n+1コドンの情報が含まれる。第1の被変異コドンは、第1配列データ140dに含まれる、変異位置の符号化されたコドンである。第2の変異コドンは、第2配列データ140eに含まれる、変異位置の符号化されたコドンである。変異nコドンは、第2の変異コドンの次のコドン(符号化されたコドン)である。変異n+1コドンは、第2の変異コドンの次の次のコドン(符号化されたコドン)である。
なお、比較部150cは、第1配列データ140dと、第2配列データ140eとが一致する場合には、一致した旨の情報を、比較結果として特定部150dに出力する。
特定部150dは、比較部150cの比較結果と、挿入遷移テーブル140fおよび欠失遷移テーブル140gとを基にして、変異位置に発生した点突然変異の種別を特定する処理部である。
特定部150dは、変異nコドンおよび変異n+1コドンと、挿入遷移テーブル140fとの比較により特定される塩基挿入前の被変異nコドンと、第1の被変異コドンの次のコドンとが一致する場合には、変異位置に発生した点突然変異の種別を「塩基挿入」とする。
たとえば、比較結果に含まれる情報を、第1の被変異nコドン「AAG(6Bh)」、第2の変異nコドン「CAA(5Ah))」、変異n+1コドン「GUG(73h)」とする。図12Dで説明したように、変異nコドン「CAA(5Ah)」、変異n+1コドン「GUG(73h)」に対応する塩基挿入前の被変異nコドンは「AAG(6Bh)」である。特定部150dは、塩基挿入前の被変異nコドン「AAG(6Bh)」が、第1の被変異コドンの次のコドン「AAG(6Bh)」と一致するため、変異位置に発生した点突然変異の種別を「塩基挿入」とする。
これに対して、特定部150dは、変異nコドンおよび変異n+1コドンと、挿入遷移テーブル140fとの比較により特定される塩基挿入前の被変異nコドンと、第1の被変異コドンの次のコドンとが一致しない場合には、変異位置に発生した点突然変異の種別から「塩基挿入」を除外する。
特定部150dは、変異nコドンおよび変異n+1コドンと、欠失遷移テーブル140gとの比較により特定される塩基欠失前の被変異n+1コドンと、第1の被変異コドンの次の次のコドンとが一致する場合には、変異位置に発生した点突然変異の種別を「塩基欠失」とする。
たとえば、比較結果に含まれる情報を、第1の被変異n+1コドン「UGC(4Dh)」、第2の変異nコドン「AGU(6Ch)」、変異n+1コドン「GCU(74h)」とする。図14Aで説明したように、変異nコドン「AGU(6Ch)」、変異n+1コドン「GCU(74h))」に対応する塩基欠失前の被変異n+1コドンは「UGC(4Dh)」である。特定部150dは、塩基欠失前の被変異コドン「UGC(4Dh)」が、第1の被変異コドンの次の次のコドン「UGC(4Dh)」と一致するため、基準位置に発生した点突然変異の種別を「塩基欠失」とする。
これに対して、特定部150dは、変異nコドンおよび変異n+1コドンと、欠失遷移テーブル140gとの比較により特定される塩基欠失前の被変異n+1コドンと、第1の被変異コドンの次の次のコドンとが一致しない場合には、変異位置に発生した点突然変異の種別から「塩基欠失」を除外する。
ところで、特定部150dは、挿入遷移テーブル140fを用いた特定および欠失遷移テーブル140gを用いた特定により、点突然変異の種別から「塩基挿入」および「塩基欠失」が除外された場合には、変異位置に発生した点突然変異の種別を「塩基置換」とする。
特定部150dは、変異位置と、点突然変異の種別とを対応付けた情報を、検出結果テーブル140hに登録する。なお、特定部150dは、比較結果に、一致した旨の情報が含まれている場合には、異常がない旨の情報を、検出結果テーブル140hに登録する。情報処理装置100は、検出結果テーブル140hの情報を、ネットワークを介して、外部装置に通知してもよいし、表示部130に出力して表示させてもよい。
次に、本実施例1に係る情報処理装置100の処理手順の一例について説明する。図15は、本実施例1に係る情報処理装置の処理手順を示すフローチャートである。図15に示すように情報処理装置100の受付部150aは、基準コドン配列データ140aおよび分析対象コドン配列データ140bを受け付ける(ステップS101)。
情報処理装置100の符号化部150bは、基準コドン配列データ140aおよび分析対象コドン配列データ140bを符号化し、第1配列データ140dおよび第2配列データ140eを生成する(ステップS102)。
情報処理装置100の比較部150cは、コドン(1バイト)単位に、第1配列データ140dと、第2配列データ140eとを比較し、不一致となる変異位置を特定する(ステップS103)。比較部150cは、変異位置に基づき、第1配列データ140dの第1の被変異コドン、被変異nコドン、被変異n+1コドン、第2配列データ140eの第2の変異コドン、変異nコドン、変異n+1コドンを特定する(ステップS104)。
情報処理装置100の特定部150dは、挿入遷移テーブル140fにおいて、変異nコドン、変異n+1コドンから特定される塩基挿入前の被変異nコドンが、第1の被変異コドンの次のコドンと一致するか否かを判定する(ステップS105)。特定部150dは、一致する場合には(ステップS105,Yes)、点突然変異の種別を「塩基挿入」と特定する(ステップS106)。一方、特定部150dは、一致しない場合には(ステップS105,No)、ステップS107に移行する。
ステップS107について説明する。特定部150dは、欠失遷移テーブル140gにおいて、変異nコドン、変異n+1コドンから特定される塩基挿入前の被変異nコドンが、第1の被変異コドンの次の次のコドンと一致するか否かを判定する(ステップS107)。特定部150dは、一致する場合には(ステップS107,Yes)、点突然変異の種別を「塩基欠失」と特定する(ステップS108)。
一方、特定部150dは、一致しない場合には(ステップS107,No)、点突然変異の種別を「塩基置換」と特定する(ステップS109)。
特定部150dは、特定した突然変異の種別の情報を、検出結果テーブル140hに登録する(ステップS110)。情報処理装置100は、検出結果テーブル140hを、表示部130に出力する(ステップS111)。
次に、本実施例1に係る情報処理装置100の効果について説明する。情報処理装置100は、第1配列データ140dと、第2配列データ140eとを1バイトのコドン単位で比較して、不一致となるコドン(符号化されたコドン)を特定する。そして、情報処理装置100は、不一致となるコドンを変異位置とする遷移先のコドンと、挿入遷移テーブル140f、欠失遷移テーブル140gとの比較により、分析対象コドン配列データに含まれる点突然変異の種別を特定する。これにより、一貫して、符号化されたコドン単位の比較によって、不一致コドンを特定しつつ、突然変異の種別を判定できるため、突然変異の種別判定に要する時間を短縮することができる。
図16~図18は、本実施例2に係る情報処理装置の処理を説明するための図である。図16では、点突然変異「塩基挿入」を検出した場合の処理について説明する。本実施例2に係る情報処理装置は、実施例1の情報処理装置100と同様にして、第1配列データ140dと、第2配列データ140eとを比較することで、不一致となる、変異位置P40を特定する。情報処理装置は、変異位置P40に基づく、変異コドン「GUC(71h)」につき、変異nコドン「CAA(5Ah)」、変異n+1コドン「GUG(73h)」と、挿入遷移テーブル140fとを比較して、塩基挿入前の被変異nコドン「AAG(68h)」を特定する。情報処理装置は、変異コドンの次のコドン「CAA(5Ah)」を、塩基挿入前の被変異nコドン「AAG(68h)」に置き換えることで、修正を行う。
情報処理装置は、変異位置P40を、次のコドンの配列位置に移動させる。移動させた配列位置P41とする。情報処理装置は、配列位置P41につき、変異nコドン「GUG(73h)」と変異n+1コドン「CAU(48h)」と挿入遷移テーブル140fとを比較して、塩基挿入前の被変異nコドン「UGC(4Dh)」を特定する。情報処理装置は、変異コドンの次のコドン「GUG(73h)を、塩基挿入前の被変異コドンの次のコドン「UGC(4Dh)」に置き換えることで、修正を行う。
情報処理装置は、上記のように、配列位置を移動させつつ、変異nコドンを塩基挿入前の被変異nコドンに置き換える処理を繰り返し実行することで、第3配列データ240eを生成する。
情報処理装置は、第3配列データ240eの符号化されたコドンと、第1配列データ140dとの符号化されたコドンを比較して、相違するコドンを特定する。情報処理装置は、相違するコドンを、潜在的な遺伝子変異として特定する。図16に示す例では、情報処理装置は、配列位置P42のコドン「UCG(47h)」と、配列位置P43のコドン「AAA(6Ah)」を、遺伝子変異として特定する。
図17は、点突然変異「塩基欠失」を検出した場合の処理について説明する。本実施例2に係る情報処理装置は、実施例1の情報処理装置100と同様にして、第1配列データ140dと、第2配列データ140eとを比較することで、不一致となる、変異位置P50を特定する。情報処理装置は、変異位置P50の、変異コドン「UCA(40h)」につき、変異nコドン「AUG(63h)」、変異n+1コドン「GCU(74h)」と、欠失遷移テーブル140gとを比較して、塩基欠失前の被変異n+1コドン「UGC(4Dh)」を特定する。情報処理装置は、変異コドンの次の次のコドン「GCU(74h)」を、塩基挿入前の被変異n+1コドン「UGC(4Dh)」に置き換えることで、修正を行う。
図示を省略するが、情報処理装置は、変異位置P50を、次のコドンの配列位置に移動させる。情報処理装置は、新たな配置位置に基づく、変異nコドン、変異n+1コドンと欠失遷移テーブル140gとを比較して、塩基欠失前の被変異n+1コドンを特定する。情報処理装置は、変異n+1コドンを、塩基欠失前被変異n+1コドンに置き換えることで、修正を行う。
情報処理装置は、上記のように、配列位置を移動させつつ、変異n+1コドンを塩基欠失前被変異n+1コドンに置き換える処理を繰り返し実行することで、第3配列データ240eを生成する。
情報処理装置は、第3配列データ240eの符号化されたコドンと、第1配列データ140dの符号化されたコドンとを比較して、相違するコドンを特定する。情報処理装置は、相違するコドンを、潜在的な遺伝子変異として特定する。図17に示す例では、情報処理装置は、配列位置P52のコドン「UCG(47h)」と、配列位置P53のコドン「AAA(6Ah)」を、遺伝子変異として特定する。
図18では、点突然変異「塩基置換」を検出した場合の処理について説明する。本実施例2に係る情報処理装置は、実施例1の情報処理装置100と同様にして、第1配列データ140dと、第2配列データ140eとを比較することで、不一致となる、変異位置P60を特定する。情報処理装置は、挿入遷移テーブル140fおよび欠失遷移テーブル140gを用いて、点突然変異を「塩基置換」と判定したものとする。この場合には、情報処理装置は、第2配列データ140eの変異位置P60の変異コドンの次の配列位置P61のコドン以降を複写することで、第3配列データ240eを生成する。
情報処理装置は、第3配列データ240eの符号化されたコドンと、第1配列データ140dとの符号化されたコドンを比較して、相違するコドンを特定する。情報処理装置は、相違するコドンを、潜在的な遺伝子変異として特定する。図18に示す例では、情報処理装置は、配列位置P62のコドン「UCG(47h)」と、配列位置P63のコドン「AAA(6Ah)」を、遺伝子変異として特定する。
上記のように、本実施例2に係る情報処理装置は、点突然変異の種別を特定した後に、第2配列データ140eを修正した第3配列データ240eを生成し、第1配列データ140dと、第3配列データ240eとの相違するコドンを特定する。これにより、潜在的な遺伝子変異を検出することができる。
次に、本実施例2に係る情報処理装置の構成について説明する。図19は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。図19に示すように、情報処理装置200は、通信部110、入力部120、表示部130、記憶部240、制御部250を有する。ここで、通信部110、入力部120、表示部130に関する説明は、図5で説明した、通信部110、入力部120、表示部130に関する説明と同様である。
記憶部240は、基準コドン配列データ140a、分析対象コドン配列データ140b、コード変換テーブル140c、第1配列データ140d、第2配列データ140eを有する。また、記憶部240は、挿入遷移テーブル140f、欠失遷移テーブル140g、第3配列データ240e、検出結果テーブル240hを有する。記憶部240は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
記憶部240に含まれる基準コドン配列データ140a、分析対象コドン配列データ140b、コード変換テーブル140c、第1配列データ140d、第2配列データ140eの説明は、実施例1で説明したものと同様である。また、記憶部240に含まれる挿入遷移テーブル140f、欠失遷移テーブル140gの説明は、実施例1で説明したものと同様である。
第3配列データ240eは、第2配列データ140eの符号化されたコドンのうち、点突然変異を含むコドンを、正常なコドンに修正した配列データである。
検出結果テーブル240hは、分析対象コドン配列データ140bから検出される点突然変異および遺伝子変異の情報を保持するテーブルである。
制御部250は、受付部150a、符号化部150b、比較部150c、特定部250dを有する。制御部250は、CPUやMPUなどによって実現できる。また、制御部250は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
受付部150aは、入力部120、外部装置等から、基準コドン配列データ140aおよび分析対象コドン配列データ140bを受け付ける処理部である。受付部150aは、基準コドン配列データ140aおよび分析対象コドン配列データ140bを記憶部240に登録する。その他の説明は、実施例1の受付部150aの処理と同様である。
符号化部150bは、コード変換テーブル140cを基にして、基準コドン配列データ140aおよび分析対象コドン配列データ140bを符号化する処理部である。その他の説明は、実施例1の符号化部150bの処理と同様である。
比較部150cは、第1配列データ140dと、第2配列データ140eとを比較して、符号化されたコドンが不一致となる変異位置を特定する処理部である。比較部150cは、比較結果を、特定部250dに出力する。その他の説明は、実施例1の比較部150cの処理と同様である。
特定部250dは、比較部150cの比較結果と、挿入遷移テーブル140fおよび欠失遷移テーブル140gとを基にして、変異位置に発生した点突然変異の種別を特定する。特定部250dは、点突然変異の種別を特定すると、第2配列データ140eを修正した第3配列データ240eを生成する。特定部250dは、第1配列データ140dと、第3配列データ240eとを比較して、遺伝子変異を検出する。特定部250dは、変異位置、点突然変異の種別、遺伝子変異の情報を、検出結果テーブル240hに登録する。
特定部250dが、点突然変異の種別を特定する処理は、実施例1で説明した特定部150dの処理と同様である。以下では、点突然変異が「塩基挿入」、「塩基欠失」、「塩基置換」である場合に分けて、特定部250dの処理について説明する。
点突然変異が「塩基挿入」である場合の特定部250dの処理について説明する。特定部250dは、図16で説明したように、変異位置P40に基づく、変異コドン「GUC(71h)」につき、変異nコドン「CAA(5Ah)」、変異n+1コドン「GUG(73h)」と、挿入遷移テーブル140fとを比較して、塩基挿入前の被変異nコドン「AAG(6Bh)」を特定する。特定部250dは、被変異コドンの次のコドン「CAA(5Ah)」を、塩基挿入前の被変異nコドン「AAG(6Bh)」に置き換えることで、修正を行う。
特定部250dは、変異位置P40を、次の配列位置に移動させる。移動させた配列位置P41とする。特定部250dは、配列位置P41につき、変異nコドン「GUG(73h)」、変異n+1コドン「CAU(48h)」と、挿入遷移テーブル140fとを比較して、塩基挿入前の被変異nコドン「UGC(4Dh))」を特定する。特定部250dは、変異コドンの次の次のコドン「GUG(73h)」を、塩基挿入前の被変異nコドン「UGC(4Dh)」に置き換えることで、修正を行う。
特定部250dは、上記のように、配列位置を移動させつつ、変異nコドンを塩基挿入前の被変異nコドンに置き換える処理を繰り返し実行することで、第3配列データ240eを生成する。
特定部250dは、第3配列データ240eの符号化されたコドンと、第1配列データ140dとの符号化されたコドンを比較して、相違するコドンを特定する。特定部250dは、相違するコドンを、潜在的な遺伝子変異として特定する。図16に示す例では、情報処理装置は、配列位置P42のコドン「UCG(47h)」と、配列位置P43のコドン「AAA(6Ah)」を、遺伝子変異として特定する。
特定部250dは、点突然変異の種別「塩基挿入」および変異位置の情報と、遺伝子変異として特定したコドンおよび配列位置の情報とを、検出結果テーブル240hに登録する。
点突然変異が「塩基欠失」である場合の特定部250dの処理について説明する。特定部250dは、図17で説明したように、第1配列データ140dと、第2配列データ140eとを比較することで、不一致となる、変異位置P50を特定する。特定部250dは、変異位置P50に基づく、変異コドン「UCA(40h)」につき、変異nコドン「AGU(63h)」、変異n+1コドン「GCU(74h)」と、欠失遷移テーブル140gとを比較して、塩基欠失前の被変異n+1コドン「UGC(4Dh)」を特定する。情報処理装置は、変異コドンの次の次のコドン「GCU(74h)」を、塩基挿入前の被変異n+1コドン「UGC(4Dh)」に置き換えることで、修正を行う。
図示を省略するが、特定部250dは、変異位置P50を、次の配列位置に移動させる。特定部250dは、新たな配列位置に基づく、変異nコドンおよび変異n+1コドンと、欠失遷移テーブル140gとを比較して、塩基欠失前の被変異n+1コドンを特定する。特定部250dは、変異n+1コドンを、塩基欠失前の被変異n+1コドンに置き換えることで、修正を行う。
特定部250dは、上記のように、配列位置を移動させつつ、変異n+1コドンを塩基欠失前の被変異n+1コドンに置き換える処理を繰り返し実行することで、第3配列データ240eを生成する。
特定部250dは、第3配列データ240eの符号化されたコドンと、第1配列データ140dの符号化されたコドンとを比較して、相違するコドンを特定する。特定部250dは、相違するコドンを、潜在的な遺伝子変異として特定する。図17に示す例では、特定部250dは、配列位置P52のコドン「UCG(47h)」と、配列位置P53のコドン「AAA(6Ah)」を、遺伝子変異として特定する。
特定部250dは、点突然変異の種別「塩基欠失」および変異位置の情報と、遺伝子変異として特定したコドンおよび配列位置の情報とを、検出結果テーブル240hに登録する。
点突然変異が「塩基置換」である場合の特定部250dの処理について説明する。特定部250dは、図18で説明したように、第1配列データ140dと、第2配列データ140eとを比較することで、不一致となる、変異位置P60を特定する。特定部250dは、挿入遷移テーブル140fおよび欠失遷移テーブル140gを用いて、点突然変異を「塩基置換」と判定したものとする。この場合には、特定部250dは、第2配列データ140eの変異位置P60の変異コドンの次の配列位置P61のコドン以降を複写することで、第3配列データ240eを生成する。
特定部250dは、第3配列データ240eの符号化されたコドンと、第1配列データ140dとの符号化されたコドンを比較して、相違するコドンを特定する。特定部250dは、相違するコドンを、潜在的な遺伝子変異として特定する。図18に示す例では、特定部250dは、配列位置P62のコドン「UCG(47h)」と、配列位置P63のコドン「AAA(6Ah)」を、遺伝子変異として特定する。
特定部250dは、点突然変異の種別「塩基置換」および変異位置の情報と、遺伝子変異として特定したコドンおよび配列位置の情報とを、検出結果テーブル240hに登録する。
次に、本実施例2に係る情報処理装置200の処理手順の一例について説明する。図20は、本実施例2に係る情報処理装置の処理手順を示すフローチャート(1)である。図20に示すように、情報処理装置200の受付部150aは、基準コドン配列データ140aおよび分析対象コドン配列データ140bを受け付ける(ステップS201)。
情報処理装置200の符号化部150bは、基準コドン配列データ140aおよび分析対象コドン配列データ140bを符号化し、第1配列データ140dおよび第2配列データ140eを生成する(ステップS202)。
情報処理装置200の比較部150cは、コドン(1バイト)単位に、第1配列データ140dと、第2配列データ140eとを比較し、不一致となる変異位置を特定する(ステップS203)。情報処理装置200の特定部250dは、点突然変異の種別を特定する(ステップS204)。点突然変異の種別を特定する処理手順は、図15のステップS105~ステップS109で説明した処理手順に対応する。
特定部250dは、点突然変異の種別を基にして、第2配列データ140eを修正した第3配列データ240eを生成する(ステップS205)。特定部250dは、第1配列データ140dと第3配列データ240eとを比較して、遺伝子変異を特定する(ステップS206)。
特定部250dは、特定した突然変異の種別および遺伝子変異の情報を検出結果テーブル250hに登録する(ステップS207)。情報処理装置200は、検出結果テーブル240hを、表示部130に出力する(ステップS208)。
次に、本実施例2に係る情報処理装置200の効果について説明する。情報処理装置200は、第2配列データ140eに含まれる点突然変異の種別を特定すると、第2配列データ140eを修正した第3配列データ240eを生成し、第1配列データ140dと、第3配列データ240eとの相違するコドンを特定する。これにより、点突然変異の種別の判定後も、一貫して、符号化されたコドン単位の比較によって、潜在的な遺伝子変異を検出することができる。
なお、本実施例2に係る情報処理装置200は、便宜上、第3配列データ240eを生成し、第1配列データ140dと比較する方法を説明したが、これに限定されるものでは無い。情報処理装置200は、第3配列データ240eを生成せず、第2配列データ140eをバイト単位に変換し、第1配列データ140dとバイト単位に比較することも可能である。
続いて、本実施例2に係る情報処理装置200のその他の処理について説明する。情報処理装置200は、検索クエリの入力がアミノ酸配列の場合、塩基記号で記述された基準コドン配列データ140aを符号化した第1配列データ140dを基にして、コドン・アミノ酸変換を行うことで、第4配列データ(図示略)を生成する。情報処理装置200は、コドン・アミノ酸変換を行った第4配列データと、検索クエリのアミノ酸配列とを、アミノ酸の単位で比較し、変異位置を特定する。
図21Aは、コドン・アミノ酸変換テーブルのデータ構造の一例を示す図である。図21Aに示すように、コドン・アミノ酸変換テーブル240iは、符号化されたコドンと、符号化されたアミノ酸とが対応付けられる。たとえば、符号化されたコドン「UUU(40h)」は、符号化されたアミノ酸「Phe(50h)」と対応付けられる。図19において図示を省略するが、コドン・アミノ酸変換テーブル240iは、情報処理装置200の記憶部240に格納される。
図21Bは、本実施例2に係る情報処理装置のその他の処理を説明するための図である。図21Bに示すように、情報処理装置200は、第1配列データ140dと、コドン・アミノ酸変換テーブル240iとを比較して、符号化された各コドンを、符号化されたアミノ酸にそれぞれ変換することで、第4配列データ240jを生成する。たとえば、コドン「AUG(63h)」は、アミノ酸「Met(4Dh)」に変換される。図19において図示を省略するが、第4配列データ240jは、情報処理装置200の記憶部240に格納される。
情報処理装置200は、第4配列データ240jと、第2配列データ140eとを比較して、不一致となる変異位置を特定する。図21Bに示す例では、配列位置P25以降のアミノ酸が異なっていると判定する。
次に、検索クエリの入力がアミノ酸配列の場合における、本実施例2に係る情報処理装置200の処理手順の一例について説明する。図22は、本実施例2に係る情報処理装置の処理手順を示すフローチャート(2)である。図22に示すように、情報処理装置200の受付部150aは、基準コドン配列データを受け付ける(ステップS210)。情報処理装置200の符号化部150bは、基準コドン配列データ140aを符号化し、第1配列データ140dを生成する(ステップS211)。
受付部150aは、分析対象アミノ酸配列データを受け付ける(ステップS212)。符号化部150bは、分析対象アミノ酸配列データを符号化し、第2配列データ140eを生成する(ステップS213)。ステップS213において、符号化部150bは、コード変換テーブル140cを基にして、分析対象アミノ酸配列データを、第2配列データ140eに変換する。具体的な説明は省略するが、コード変換テーブル140cは、アミノ酸と、符号化されたアミノ酸とを対応付けた情報を保持しているものとする。
情報処理装置200の比較部150cは、コドン・アミノ酸変換テーブル240iを基にして、第1配列データ140dから、第4配列データ240jを生成する(ステップS214)。比較部150cは、アミノ酸単位に第4配列データ240jと第2配列データ140eとを比較し、変異位置を特定する(ステップS215)。
情報処理装置200は、比較部150cにより特定された変異位置の情報を、検出結果テーブル240hに登録する(ステップS216)。情報処理装置200は、検出結果テーブル240hを、表示部130に出力する(ステップS217)。
上記のように、情報処理装置200は、検索クエリの入力がアミノ酸配列の場合、塩基記号で記述された基準コドン配列データ140aを符号化した第1配列データ140dを基にして、コドン・アミノ酸変換を行い、検索クエリと比較する。これにより、検索クエリの入力がアミノ酸配列であっても、突然変異の発生したアミノ酸を特定することができる。
図23および図24は、本実施例3に係る情報処理装置の処理を説明するための図である。図示を省略するが、本実施例3に係る情報処理装置は、実施例1の情報処理装置100と同様にして、基準コドン配列データ140aを受け付けると、コード変換テーブル140cを基にして符号化を行い、第1配列データ140dし、同時に転置インデックス340aを生成する。また、情報処理装置は、分析対象コドン配列データ140bを受け付けると、コード変換テーブル140cを基にして符号化を行い、第2配列データ140eを生成する。
図23について説明する。本実施例3に係る情報処理装置は、第1配列データ140dの生成と同時に、転置インデックス340aを生成する。転置インデックス340aは、第1配列データ140dの符号化されたコードの種別と、配列位置(オフセット)との関係をビットマップによって示す情報である。
転置インデックス340aの横軸は、オフセットに対応する軸である。転置インデックス340aの縦軸は、符号化されたコドンの種別に対応する軸である。転置インデックス340aは、「0」または「1」のビットマップで示され、初期状態では全てのビットマップが「0」に設定される。
ここで、オフセットは、配列データに含まれる先頭のコドンからのオフセットである。本実施例3では、先頭のコドンのオフセットを「0」とする。たとえば、第1配列データ140dについて、コドン「AUG(63h)」が先頭から7番目のコドンである場合には、コドン「AUG(63h)」のオフセットは「6」となる。
情報処理装置は、第1配列データ140dを先頭から走査して、符号化されたコドンの種別と、オフセットとの関係を特定し、転置インデックス340aの対応する箇所に「1」を設定する。たとえば、オフセット「6」にコドン「AUG(63h)」が存在するため、オフセット「6」の列と、コドンの種別「AUG(63h)」の行とが交差する箇所に「1」を設定する。情報処理装置は、上記処理を繰り返し実行することで、転置インデックス340aを生成する。
図24について説明する。情報処理装置は、第2配列データ140eの開始コドンから順に符号化されたコドンを読み出し、読み出したコドンの種別に対応するビットマップを、転置インデックス340aからそれぞれ取得する。たとえば、開始コドンを「AUG(63h)」とする。
情報処理装置は、コドン「AUG(63h)」のビットマップb10、コドン「UUU(40h)」のビットマップb11、コドン「GUC(71h)」のピットマップb12を順に、転置インデックス340aから取得する。ビットマップb10は、転置インデックス340aのコドンの種別「AUG(63h)」の行に対応するビットマップである。ビットマップb11は、転置インデックス340aのコドンの種別「UUU(40h)」の行に対応するビットマップである。ビットマップb12は、転置インデックス340aのコドンの種別「GUC(71h)」の行に対応するビットマップである。
情報処理装置は、ビットマップb10~b12のビットマップの「1」の位置に着目し、「1」が順番に1つ左シフトしている間は、第1配列データ140dと、第2配列データ140eとのコドンが一致していると判定する。情報処理装置は、「1」が順番に1つ左シフトしなくなった段階で、第1配列データ140dと、第2配列データ140eとのコドンが不一致であると判定する。図24に示す例では、ビットマップb11からビットマップb12への段階で、「1」がオフセット「7」からオフセット「20」に移動しているため、オフセット(配列位置)「8」のコドン「GUC(71h)」が、不一致となる旨が特定される。
上記のように、本実施例3に係る情報処理装置は、第1配列データ140dを基にして、転置インデックス340aを生成しておく。情報処理装置は、第2配列データ140eに含まれるコドンの先頭から順に、コドンの種別に対応するビットマップを転置インデックス340aから取得し、取得した複数のビットマップのフラグ「1」の位置を基にして、不一致となるコドンを特定する。これにより、点突然変異を含むコドンの検索を高速に実行することが可能となる。
次に、本実施例3に係る情報処理装置の構成について説明する。図25は、本実施例3に係る情報処理装置の構成を示す機能ブロック図である。図25に示すように、情報処理装置300は、通信部110、入力部120、表示部130、記憶部340、制御部350を有する。ここで、通信部110、入力部120、表示部130に関する説明は、図5で説明した、通信部110、入力部120、表示部130に関する説明と同様である。
記憶部340は、基準コドン配列データ140a、分析対象コドン配列データ140b、コード変換テーブル140c、第1配列データ140d、転置インデックス340a、第2配列データ140eを有する。また、記憶部340は、挿入遷移テーブル140f、欠失遷移テーブル140g、第3配列データ240e、検出結果テーブル240hを有する。記憶部340は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。図25において図示を省略するが、記憶部340は、コドン・アミノ酸変換テーブル240i、第4配列データ240jを有していてもよい。
記憶部240に含まれる基準コドン配列データ140a、分析対象コドン配列データ140b、コード変換テーブル140c、第1配列データ140d、第2配列データ140eの説明は、実施例1で説明したものと同様である。記憶部340に含まれる挿入遷移テーブル140f、欠失遷移テーブル140gの説明は、実施例1で説明したものと同様である。記憶部340に含まれる第3配列データ240e、検出結果テーブル240hに関する説明は、実施例2で説明したものと同様である。
転置インデックス340aは、第1配列データ140dの符号化されたコードの種別と、配列位置(オフセット)との関係をビットマップによって示す情報である。図23で説明したように、転置インデックス340aの横軸は、オフセットに対応する軸である。転置インデックス340aの縦軸は、符号化したコドンの種別に対応する軸である。
制御部350は、受付部150a、符号化部150b、生成部350a、取得部350b、特定部350cを有する。制御部350は、CPUやMPUなどによって実現できる。また、制御部350は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
受付部150aは、入力部120、外部装置等から、基準コドン配列データ140aおよび分析対象コドン配列データ140bを受け付ける処理部である。受付部150aは、基準コドン配列データ140aおよび分析対象コドン配列データ140bを記憶部340に登録する。その他の説明は、実施例1の受付部150aの処理と同様である。
符号化部150bは、コード変換テーブル140cを基にして、基準コドン配列データ140aおよび分析対象コドン配列データ140bを符号化する処理部である。その他の説明は、実施例1の符号化部150bの処理と同様である。
生成部350aは、第1配列データ140dを基にして、転置インデックス340aを生成する処理部である。生成部350aは、第1配列データ140dを先頭から走査して、符号化されたコドンの種別と、オフセット(配列位置)との関係を特定し、転置インデックス340aの対応する箇所に「1」を設定する。たとえば、生成部350aは、オフセット「6」にコドン「AUG(63h)」が存在するため、オフセット「6」の列と、コドンの種別「AUG(63h)」の行とが交差する箇所に「1」を設定する。生成部350a、上記処理を繰り返し実行することで、転置インデックス340aを生成する。
生成部350aは、転置インデックス340aを生成すると、情報量を削減するため、転置インデックス340aをハッシュ化してもよい。図26は、転置インデックスをハッシュ化する処理の一例を説明するための図である。
図26で説明する例では、32ビットレジスタを想定し、「29」と「31」の素数(底)を基に、転置インデックス340aの各行のビットマップをハッシュ化する。ここでは、一例として、ビットマップb1から、ハッシュ化ビットマップh11およびハッシュ化ビットマップh12を生成する場合について説明する。
ビットマップb1は、転置インデックス(たとえば、図23に示した転置インデックス340a)のある行を抽出したビットマップを示すものとする。ハッシュ化ビットマップh11は、底「29」によりハッシュ化されたビットマップである。ハッシュ化ビットマップh12は、底「31」によりハッシュ化されたビットマップである。
生成部350aは、ビットマップb1の各ビットの位置を、1つの低で割った余りの値を、ハッシュ化ビットマップの位置と対応付ける。生成部350aは、該当するビットマップb1のビットの位置に「1」が設定されている場合には、対応付けられたハッシュ化ビットマップの位置に「1」を設定する処理を行う。
ビットマップb1から、底「29」のハッシュ化ビットマップh11を生成する処理の一例について説明する。はじめに、生成部350aは、ビットマップb1の位置「0~28」の情報を、ハッシュ化ビットマップh11にコピーする。続いて、ビットマップb1のビットの位置「35」を、低「29」で割った余りは「6」となるので、ビットマップb1の位置「35」は、ハッシュ化ビットマップh11の位置「6」と対応付けられる。生成部350aは、ビットマップb1の位置「35」に「1」が設定されているため、ハッシュ化ビットマップh11の位置「6」に「1」を設定する。
ビットマップb1のビットの位置「42」を、低「29」で割った余りは「13」となるので、ビットマップb1の位置「42」は、ハッシュ化ビットマップh11の位置「13」と対応付けられる。生成部350aは、ビットマップb1の位置「42」に「1」が設定されているため、ハッシュ化ビットマップh11の位置「13」に「1」を設定する。
生成部350aは、ビットマップb1の位置「29」以上の位置について、上記処理を繰り返し実行することで、ハッシュ化ビットマップh11を生成する。
ビットマップb1から、底「31」のハッシュ化ビットマップh12を生成する処理の一例について説明する。はじめに、生成部350aは、ビットマップb1の位置「0~30」の情報を、ハッシュ化ビットマップh12にコピーする。続いて、ビットマップb1のビットの位置「35」を、低「31」で割った余りは「4」となるので、ビットマップb1の位置「35」は、ハッシュ化ビットマップh12の位置「4」と対応付けられる。生成部350aは、ビットマップb1の位置「35」に「1」が設定されているため、ハッシュ化ビットマップh12の位置「4」に「1」を設定する。
ビットマップb1のビットの位置「42」を、低「31」で割った余りは「11」となるので、ビットマップb1の位置「42」は、ハッシュ化ビットマップh12の位置「11」と対応付けられる。生成部350aは、ビットマップb1の位置「42」に「1」が設定されているため、ハッシュ化ビットマップh12の位置「11」に「1」を設定する。
生成部350aは、ビットマップb1の位置「31」以上の位置について、上記処理を繰り返し実行することで、ハッシュ化ビットマップh12を生成する。
生成部350aは、転置インデックス340aの各行について上記の折り返し技術による圧縮を行うことで、転置インデックスをハッシュ化する。なお、底「29」、「31」のハッシュ化ビットマップは、生成元のビットマップの行(符号化されたコドンの種別)の情報が付与される。
取得部350bは、第2配列データ140eに含まれる各符号化されたコドンに対応するビットマップを転置インデックス340aから順番に取得する処理部である。取得部350bは、取得した各ビットマップの情報を特定部350cに出力する。特定部350cに出力されるビットマップの情報は、読み出した順にソートされているものとする。
取得部350bは、第2配列データ140eの開始コドンから順に、符号化されたコドンを読み出し、読み出したコドンの種別に対応するビットマップを、転置インデックス340aから取得する。たとえば、開始コドンを「AUG(63h)」とし、第2配列データ140eを、図24に示すものとする。この場合には、取得部350bは、「AUG(63h)」のビットマップb10、「UUU(40h)」のビットマップb11、「GUC(71h)」のビットマップb12、「CAA(5Ah)」のビットマップ(図示略)、続く各コドンのビットマップを読み出す。
ところで、取得部350bは、転置インデックス340aがハッシュ化されている場合には、次の処理を実行することで、ハッシュ化された転置インデックス340aを復元する。図27は、転置インデックスを復元する処理の一例を示す図である。ここでは一例として、取得部350bが、ハッシュ化ビットマップh11およびハッシュ化ビットマップh12を基にして、ビットマップb1を復元する場合について説明する。
取得部350bは、底「29」のハッシュ化ビットマップh11から、中間ビットマップh11’を生成する。取得部350bは、ハッシュ化ビットマップh11の位置0~28の値を、中間ビットマップh11’の位置0~28にそれぞれ、コピーする。
取得部350bは、中間ビットマップh11’の位置29以降の値については、「29」毎に、ハッシュ化ビットマップh11の位置0~28の値を、それぞれコピーする処理を繰り返し実行する。図27に示す例では、中間ビットマップh11’の位置29~43の位置に、ハッシュ化ビットマップh11の位置0~14の値を、コピーした例を示す。
取得部350bは、底「31」のハッシュ化ビットマップh12から、中間ビットマップh12’を生成する。取得部350bは、ハッシュ化ビットマップh12の位置0~30の値を、中間ビットマップh12’の位置0~30にそれぞれ、コピーする。
取得部350bは、中間ビットマップh12’の位置31以降の値については、「31」毎に、ハッシュ化ビットマップh12の位置0~30の値を、それぞれコピーする処理を繰り返し実行する。図27に示す例では、中間ビットマップh12’の位置31~43の位置に、ハッシュ化ビットマップh12の位置0~12の値を、コピーした例を示す。
取得部350bは、中間ビットマップh11’と、中間ビットマップh12’とを生成すると、中間ビットマップh11’と、中間ビットマップh12’とをAND演算することで、ハッシュ化前のビットマップb1を復元する。取得部350bは、他のハッシュ化されたビットマップについても、同様の処理を繰り返し実行することで、コドンに対応する各ビットマップを復元する(転置インデックス340aを復元する)ことができる。
図25の説明に戻る。特定部350cは、第1配列データ140dと第2配列データ140eとの不一致となる変異位置を特定する処理、点突然変異の種別を特定する処理、遺伝子変異を特定する処理を実行する。
特定部350cが、第1配列データ140dと第2配列データ140eとの不一致となる変異位置を特定する処理について説明する。図28は、本実施例3に係る特定部の処理を説明するための図である。図28に示すビットマップb10,b11,b12は、上記の取得部350bから受け付けたビットマップである。
特定部350cは、ビットマップb10を左シフトすることで、ビットマップb10-1を生成する(ステップS10)。特定部350cは、ビットマップ10-1と、ビットマップb11とをAND演算することで、ビットマップb11-1を算出する(ステップS11)。ビットマップb11-1では、オフセット7にビット「1」が立っているため、第1配列データ140dと、第2配列データ140eとは、オフセット「6」からオフセット「7」まで一致していることを意味する。
特定部350cは、ビットマップb11-1を左シフトすることで、ビットマップ11-2を算出する(ステップS12)。特定部350cは、ビットマップb11-2と、ビットマップb12とをAND演算することで、ビットマップb12-1を算出する(ステップS13)。ビットマップb11-2のオフセット「8」にビット「1」が立っていたが、ビットマップb12-1では、オフセット「8」にビットが「0」となる。これにより、特定部350cは、第1配列データ140dと、第2配列データ140eとは、オフセット(配列位置)「8」において、不一致であると判定する。
続いて、特定部350cが、点突然変異の種別を特定する処理について説明する。特定部350cは、不一致となる変異位置(オフセット)と、挿入遷移テーブル140fと、欠失遷移テーブル140gとを基にして、変異位置に発生した点突然変異の種別を特定する。特定部350cは、点突然変異の種別を特定すると、第2配列データ140eを修正した第3配列データ240eを生成する。
ここで、特定部350cが、点突然変異の種別を特定する処理は、実施例1で説明した特定部150dの処理と同様である。また、特定部350cが、点突然変異の種別を基にして、第2配列データ140eを修正した第3配列データ240eを生成する処理は、実施例2で説明した特定部250dの処理と同様である。
続いて、特定部350cが、遺伝子変異を特定する処理について説明する。特定部350cは、第3配列データ240eに含まれる各符号化されたコドンの種別に対応するビットマップを、転置インデックス340aから順に取得する。特定部350cは、ビットマップを読み出す場合には、取得部350bと同様にして、開始コドンから順に、符号化されたコドンを読み出し、読み出したコドンの種別に対応するビットマップを、転置インデックス340aから取得する。
特定部350cは、各ビットマップを取得すると、図24で説明した処理と同様にして、ビットマップを左シフトしたビットマップと、次のビットマップとをAND演算することで、新たなビットマップを算出する処理を繰り返し実行する。特定部350cは、新たなビットマップにビット「1」が含まれなくなった時点のオフセットにおいて、第1配列データ140dと、第3配列データ240eとが不一致であると判定する。特定部350cは、判定した不一致となるオフセットに対応する第3配列データ240eのコドンを、遺伝子変異となるコドンであると判定する。
特定部350cは、上記の処理を実行し、点突然変異の種別および変異位置(オフセット)の情報、遺伝子変異として特定したコドンおよび配列位置(オフセット)の情報とを、検出結果テーブル240hに登録する。
次に、本実施例3に係る情報処理装置300の処理手順の一例について説明する。図29は、本実施例3に係る情報処理装置の処理手順を示すフローチャートである。図29に示すように、情報処理装置300の受付部150aは、基準コドン配列データ140aと分析対象コドン配列データ140bを受け付ける(ステップS301)。
情報処理装置300の符号化部150bは、基準コドン配列データ140aを符号化して第1配列データ140dを生成し、同時に転置インデックス340aを生成する(ステップS302)。
符号化部150bは、分析対象コドン配列データ140bを符号化して、第2配列データ140dを生成する(ステップS303)。情報処理装置300の取得部350bは、第2配列データ140eの符号化されたコドンと、転置インデックス340aとを比較して、コドンに対応するビットマップを順番に取得する(ステップS304)。
情報処理装置300の特定部350cは、各ビットマップのシフト演算、AND演算を実行することで、不一致となる変異位置(オフセット)を特定する(ステップS305)。特定部350cは、点突然変異の種別を特定する(ステップS306)。
特定部350cは、点突然変異の種別を基にして、第2配列データ140eを修正した第3配列データ240eを生成する(ステップS307)。特定部350cは、第3配列データの符号化されたコドンと、転置インデックス340aとを比較して、コドンに対応するビットマップを順番に取得する(ステップS308)。
特定部350cは、各ビットマップのシフト演算、AND演算を実行することで、不一致となる変異位置(オフセット)および遺伝子変異を特定する(ステップS309)。特定部350cは、特定した点突然変異の種別および遺伝子変異の情報を、検出結果テーブル240hに登録する(ステップS310)。情報処理装置300は、検出結果テーブル240hを、表示部130に出力して表示させる(ステップS311)。
次に、特定部350cがビットマップを基にして点突然変異のオフセットを特定する処理手順の一例について説明する。図30は、本実施例3に係る特定部が点突然変異のオフセットを特定する処理を示すフローチャートである。図30に示すように、情報処理装置300の特定部350cは、オフセットnを、開始コドンのオフセットに設定する(ステップS401)。情報処理装置100の取得部350bは、第2配列データ140eのオフセットnのコドンに対応する第1ビットマップを転置インデックス340aから取得する(ステップS402)。
特定部350cは、第1ビットマップを左シフトする(ステップS403)。特定部350cは、オフセットnに1をインクリメントする(ステップS404)。取得部350bは、第2配列データのオフセットnのコドンに対応する第2ビットマップを転置インデックス340aから取得する(ステップS405)。
特定部350cは、第1ビットマップと、第2ビットマップとをAND演算し、第3ビットマップを生成する(ステップS406)。特定部350cは、第3ビットマップのオフセットnのビットが「1」であるか否かを判定する(ステップS407)。
特定部350cは、第3ビットマップのオフセットnのビットが「1」でない場合には(ステップS408,No)、第2配列データのオフセットnに点突然変異があると判定する(ステップS409)。
一方、特定部350cは、第3ビットマップのオフセットnのビットが「1」である場合には(ステップS408,Yes)、第3ビットマップを左シフトしたビットマップによって、第1ビットマップを更新し(ステップS410)、ステップS404に移行する。
次に、本実施例3に係る情報処理装置300の効果について説明する。本実施例3に係る情報処理装置300は、第2配列データ140eに含まれるコドンの先頭から順に、コドンの種別に対応するビットマップを転置インデックス340aから取得し、取得した複数のビットマップのシフト演算、AND演算に基づいて、不一致となるコドンを特定する。これにより、点突然変異や遺伝子変異を含むコドンの検索を高速に実行することが可能となる。
なお、本実施例3に係る情報処理装置300は、便宜上、第3配列データ240eを生成し、第1配列データ140dと比較する方法を説明したが、これに限定されるものでは無い。情報処理装置200は、第3配列データ240eを生成せず、第2配列データ140eをバイト単位に変換し、第1配列データ140dとバイト単位に比較することも可能である。
続いて、本実施例3に係る情報処理装置300のその他の処理について説明する。情報処理装置300は、検索クエリの入力がアミノ酸配列の場合、塩基記号で記述された基準コドン配列データを符号化し、コドンに対応付けた転置インデックスを生成する。また、情報処理装置300は、コドン配列をアミノ酸配列に変換し、アミノ酸に対応付けた転置インデックスに生成し、生成した転置インデックスを用いて変異位置を特定する。
図31は、本実施例3に係る情報処理装置のその他の処理を説明するための図である。図31に示すように、情報処理装置300は、第1配列データ140dと、図21Aに示したコドン・アミノ酸変換テーブル240iとを基にして、第4配列データ240jを生成し、同時に転置インデックス340bを生成する。転置インデックス340bは、第4配列データ240jの符号化されたコードの種別と、配列位置(オフセット)との関係をビットマップによって示す情報である。
情報処理装置300は、アミノ酸配列に対応した転置インデックス340bを用いて、変異位置を特定する処理を行う。たとえば、情報処理装置300は、アミノ酸配列データに含まれるアミノ酸の先頭から順に、アミノ酸の種別に対応するビットマップを転置インデックス340bから取得し、取得した複数のビットマップのフラグの位置を基にして、アミノ酸配列データに含まれるアミノ酸のうち、第4配列データ240jと不一致となる配列位置を特定する。
次に、検索クエリの入力がアミノ酸配列の場合における、本実施例3に係る情報処理装置300の処理手順の一例について説明する。図32は、本実施例3に係る情報処理装置の処理手順を示すフローチャート(2)である。
図32に示すように、情報処理装置300の受付部150aは、基準コドン配列データを受け付ける(ステップS401)。情報処理装置300の符号化部150bは、基準コドン配列データを符号化し、第1配列データ140dを生成すると共に、生成部350aが、転置インデックス350aを生成する(ステップS402)。
受付部150aは、分析対象アミノ酸配列データを受け付ける(ステップS403)。符号化部150bは、分析対象アミノ酸配列データを符号化し、第2配列データ140eを生成する(ステップS404)。
生成部350aは、コドン・アミノ酸変換テーブル240iを基にして、第1配列データ140dから第4配列データ240jを生成し、同時にアミノ酸に対応付けた転置インデックス340bを生成する(ステップS405)。
情報処理装置400の特定部350cは、各ビットマップのシフト演算、AND演算を実行することで、不一致となる変異位置(オフセット)を特定する(ステップS406)。特定部350cは、特定した突然変異の情報を、検出結果テーブル240hに登録する(ステップS407)。情報処理装置300は、検出結果テーブル240hを、表示部130に出力して表示させる(ステップS408)。
上記のように、情報処理装置300は、検索クエリの入力がアミノ酸配列の場合、アミノ酸に対応した転置インデックス340bを生成し、第2配列データ140eと比較する。これにより、検索クエリの入力がアミノ酸配列であっても、突然変異の発生したアミノ酸を、転置インデックスを用いて、特定することができる。
次に、実施例1、2に示した情報処理装置100,200と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図33は、本実施例1、2に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図33に示すように、コンピュータ400は、各種演算処理を実行するCPU401と、ユーザからのデータの入力を受け付ける入力装置402と、ディスプレイ403とを有する。また、コンピュータ400は、記憶媒体からプログラム等を読み取る読み取り装置404と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置405とを有する。コンピュータ400は、各種情報を一時記憶するRAM406と、ハードディスク装置407とを有する。そして、各装置401~407は、バス408に接続される。
ハードディスク装置407は、受付プログラム407a、符号化プログラム407b、比較プログラム407c、特定プログラム407dを有する。CPU401は、受付プログラム407a、符号化プログラム407b、比較プログラム407c、特定プログラム407dを読み出してRAM406に展開する。
受付プログラム407aは、受付プロセス406aとして機能する。符号化プログラム407bは、符号化プロセス406bとして機能する。比較プログラム407cは、比較プロセス406cとして機能する。特定プログラム407dは、特定プロセス406dとして機能する。
受付プロセス406aの処理は、受付部150aの処理に対応する。符号化プロセス406bの処理は、符号化部150bの処理に対応する。比較プロセス406cの処理は、比較部150cの処理に対応する。特定プロセス406dの処理は、特定部150d,250dの処理に対応する。
なお、各プログラム407a~407dについては、必ずしも最初からハードディスク装置407に記憶させておかなくてもよい。例えば、コンピュータ400に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ400が各プログラム407a~407dを読み出して実行するようにしてもよい。
次に、実施例3に示した情報処理装置300と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図34は、本実施例3に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図34に示すように、コンピュータ500は、各種演算処理を実行するCPU501と、ユーザからのデータの入力を受け付ける入力装置502と、ディスプレイ503とを有する。また、コンピュータ500は、記憶媒体からプログラム等を読み取る読み取り装置504と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置505とを有する。コンピュータ500は、各種情報を一時記憶するRAM506と、ハードディスク装置507とを有する。そして、各装置501~507は、バス508に接続される。
ハードディスク装置507は、受付プログラム507a、符号化プログラム507b、生成プログラム507c、取得プログラム507d、特定プログラム507eを有する。CPU501は、受付プログラム507a、符号化プログラム507b、生成プログラム507c、取得プログラム507d、特定プログラム507eを読み出してRAM406に展開する。
受付プログラム507aは、受付プロセス506aとして機能する。符号化プログラム507bは、符号化プロセス506bとして機能する。生成プログラム507cは、生成プロセス506cとして機能する。取得プログラム507dは、取得プロセス506dとして機能する。特定プログラム507eは、特定プロセス506eとして機能する。
受付プロセス406aの処理は、受付部150aの処理に対応する。符号化プロセス406bの処理は、符号化部150bの処理に対応する。生成プロセス506cの処理は、生成部350aの処理に対応する。取得プロセス506dの処理は、取得部350bの処理に対応する。特定プロセス506eの処理は、特定部350cの処理に対応する。
なお、各プログラム507a~507dについては、必ずしも最初からハードディスク装置507に記憶させておかなくてもよい。例えば、コンピュータ500に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ500が各プログラム507a~507eを読み出して実行するようにしてもよい。