説明

相同性検索装置及びプログラム

【課題】特定のシード構造を使用せず、最適化マッチを適応的に生成可能な、ワードベース探索戦略に基づく相同性検索装置の提供。
【解決手段】相同性判定の編集距離閾値Tに対し、検索要求ワードWを段階的に分割する終端節点数T+1のワード二分木を生成し、各終端節点に対応する素ワード素ワードWをクエリとして検索対象シーケンスSに対する完全検索を行い、完全マッチを抽出する。次いで、抽出した各完全マッチについて、ワード二分木に基づき、ワード二分木の各節点に対するワードを単位として素ワードWを伸長し、検索対象シーケンスSの完全マッチ部分に所定の検索ウィンドウを追加した比較対象シーケンスと伸長した素ワードとの編集距離を算出し、編集距離がT以下ならば伸長した素ワードとのマッチを出力するという処理を繰り返す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、核酸の塩基配列やタンパク質のアミノ酸配列のように所定の種類の文字又は記号の文字列からなるシーケンスについて、2つのシーケンスの相同性を検索するための相同性検索技術に関する。
【背景技術】
【0002】
「相同性(homology)」とは、共通の祖先からの進化的関係に由来して、異なる有機体間で構造が対応することをいう。生物情報科学においては、「相同」は、異なるシーケンス(タンパク質又は核酸の塩基配列)間の類似するセグメントによって表される。相同性検索は、このような類似性を探索し、対応するマッチ(match)の位置決めを行うための計算プロセスである。これは、生物情報科学においては、様々な調査・研究の基礎となる基本的な問題である。
【0003】
シーケンスの類似性は、2つのシーケンス間の編集距離(edit distance)によって定義することができる。多くの場合、編集距離としては、レーベンシュタイン距離(Levenshtein distance)が用いられる。2つのシーケンス間の編集距離とは、一方のシーケンスを他方のシーケンスに変換する基本操作の最小数をいう。「基本操作」とは、挿入(insert)、欠失(deletion)、及び置換(substitution)である。この定義によれば、編集距離が小さいほど、類似性が高くなる。
【0004】
レーベンシュタイン距離は、最初に非特許文献1において生物情報科学に導入され、非特許文献2において、局所配列に拡張された。このレーベンシュタイン距離は、動的計画法によって正確に計算することが可能である(非特許文献3,pp.18−28参照)。これらの動的計画法の基本アルゴリズムは、相同性検索にも使用することができ、最適な検出感度を維持することができる。
【0005】
しかしながら、動的計画法の計算複雑性はO(nm)である(非特許文献3,p.28,31,34参照)。ここで、n,mは、それぞれのシーケンスの長さである。このように、動的計画法は計算量が多く速度が遅いため、調査すべきシーケンスデータの量が膨大化するに従って、相同性検索問題の大部分に適用することができなくなった。
【0006】
そのため、多少の検出感度の低下(すなわち、多少のマッチの欠失)と引き替えに、より高速化する方向で、発見的アプローチが発展してきた。発見的アプローチでは、シードを基礎とするアプローチ(シードベースアプローチ)が主流である。このシードベースアプローチでは、低くても十分な感度を維持しつつ検索速度を極めて高速化するために提案されたフィルタ原理に基づき、動的計画法のプロセスの近似値を求める。
【0007】
シードは、「11100101」のような2進列で表される。ここで、「1」は正確にマッチする位置を表し、「0」はマッチ条件を満たさない位置を表す。シードパターンに一致する、クエリシーケンス及び検索対象シーケンス間の部分シーケンスのマッチは「ヒット(hit)」と呼ばれる。
【0008】
このシードベースアプローチでは、次のようなステップを含む戦略が用いられる。
(1)クエリシーケンスから、シードの長さと等しい長さの部分シーケンスをすべてリストアップする。
(2)クエリシーケンスと検索対象シーケンスとの間で、上記部分シーケンスのすべてのヒットを索出する。
(3)近似マッチングによりヒットを伸長する。この伸長は、類似性スコア(例えば、非特許文献3,pp.28−31参照)が、ユーザにより予め決められた検索要求まで減少した時点で終了する。
【0009】
現在、最も広く使用されているこの種のアルゴリズムは、BLAST(非特許文献4参照)であり、これは連続的な完全一致のシードパターンを使用している。一方、BLASTの性能と柔軟性を向上させるため、多くの取り組みがなされており、同様のアイデアを用いた相同性検索の様々なバージョンが考案されている(非特許文献5−9参照)。
【0010】
また、「0」を含んだ分隔シード(spaced prime)は、非特許文献10において最初に提案された。非特許文献10において、分隔シードにより作られる近似マッチにより生成されるヒットは、感度と速度の間のバランスがよいことが示された。シードにおける「1」の数は「シードの重み(prime weight)」と呼ばれる。その後、非特許文献11−13等のように、多くのシード最適化法が開発された。
【0011】
他方、非特許文献14−17では、単一シードパターンの代わりに、1組の最適化された多重シード(multiple prime)を使用する方法が導入されている。これらのアプローチでは、様々な統計的又は実証的方法に基づいて、複数のシードパターンの評価が行われている。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2000−194713号公報
【特許文献2】特開2002−229998号公報
【特許文献3】特開2009−116559号公報
【特許文献4】特開2005−84859号公報
【特許文献5】特表2002−529817号公報
【特許文献6】特表2000−500896号公報
【非特許文献】
【0013】
【非特許文献1】Needleman, Saul B.; Wunsch, Christian D.: A general method applicable to the search for similarities in the amino acid sequence of two proteins. Journal of Molecular Biology 1970, 48 (3): 443-53.
【非特許文献2】Smith, Temple F.; Waterman, Michael S. Identification of Common Molecular Subsequences. Journal of Molecular Biology 1981, 147: 195-197.
【非特許文献3】阿久津達也,「アルゴリズム・サイエンスシリーズ12 バイオインフォマティクスの数理とアルゴリズム」,初版,共立出版株式会社,2007年2月.
【非特許文献4】Altschul, S.F.; Gish, W.; Miller, W.; Myers, E.W.; Lipman, D.J.: Basic local alignment search tool. J Mol Biol 1990, 215 (3): 403-410.
【非特許文献5】Altschul, S.F.; Madden, T.L.; Schaffer, A.A.; Zhang, J.; Zhang, Z.; Miller, W.; and Lipman, D.J. Gapped BLAST and PSI-BLAST: A new generation of protein database search programs. Nucleic Acids Res. 1997 25: 3389-3402
【非特許文献6】Gish, W. and States, D.J. Identification of protein coding regions by database similarity search. Nat. Genet. 1993 3: 266-272.
【非特許文献7】Gotoh, O. Homology-based gene structure prediction: Simplified matching algorithm using a translated codon (tron) and improved accuracy by allowing for long gaps. Bioinformatics 2000 16: 190-202.
【非特許文献8】Zhang, Z.; Schwartz, S.; Wagner, L.; and Miller, W. A greedy algorithm for aligning DNA sequences. J. Comput. Biol. 2000 7: 203-214.
【非特許文献9】Kent, W. J. BLAT-the BLAST-Like Alignment Tool. Genome Res. 2002, 12:656-664.
【非特許文献10】Ma, B.; Tromp, J.; Li, M.: PatternHunter: faster and more sensitive homology search. Bioinformatics. 2002, 18:440-445.
【非特許文献11】B. Brejova, D. Brown, and T. Vinar, Optimal spaced primes for homologous coding regions. J. Bioinf. And Comp. Biol. 1(2004), pp. 595-610.
【非特許文献12】J. Buhler, U. Keich, and Y. Sun, Designing primes for similarity search in genomic DNA. Proc. 7th Annual Int'l Conf. on Comput. Mol. Biol. (RECOMB'03), pp. 67-75, Berlin, Germany.
【非特許文献13】K.P. Choi, and L. Zhang, Sensitivity analysis and efficient method for identifying optimal spaced primes, J. Comput. Sys. Sci., 68(2004), pp. 22-40.
【非特許文献14】Sun, Y.; Buhler, J.: Designing multiple simultaneous primes for DNA similarity search. J. Comput. Biol. 2005 12:847-861.
【非特許文献15】J. Xu, D. Brown, M. Li, and B. Ma, Optimizing multiple spaced primes for homology search, In Proc. of CPM'04, LNCS, vol. 3109, pp. 47-58.
【非特許文献16】I.-H. Yang et al. E_cient Methods for Generating Optimal Single and Multiple Spaced Primes, In Proc. IEEE 4th Symp. on Bioinformatics and Bioengineering, Taiwan, 2004, pp. 411-418.
【非特許文献17】Li, M., Ma, B., Kisman, D., et al. 2004. PatternHunter II: highly sensitive and fast homology search. J. Bioinform. Comput. Biol. 2, 417-439.
【非特許文献18】M. Li, B. Ma, L. Zhang, Superiority and complexity of the spaced primes, in: Proceedings of the 17th Annual ACM-SIAM Symposium On Discrete Algorithms (SODA'06), ACM Press, 2006, pp. 444-453.
【発明の概要】
【発明が解決しようとする課題】
【0014】
以上のような各相同性検索方法は、その性能が、いずれもシードの構造に大きく依存する。シード最適化法でさえ、予め定義されたシードの重みによって制限される(非特許文献16−18参照)。従って、上記各各相同性検索方法は、シードの重みをあまり大きく設定しすぎると多くの相同配列を欠失する(感度が低下する)こととなる一方、シードをあまり短くしすぎると誤ったヒットが増加して検索速度も低下するといったジレンマが、未解決のまま残されている。これは、上述した(1)〜(3)のステップを含む戦略から発展したことに起因する根本的な問題である。
【0015】
そこで、本発明の目的は、特定のシード構造を使用することなく、最適化されたマッチを適応的に生成することが可能な、ワードベースの探索戦略に基づく相同性検索装置及びそのプログラムを提供することにある。
【課題を解決するための手段】
【0016】
最初に、本発明の基礎となるアルゴリズムについて説明し、次いで、本発明の構成について説明する。
【0017】
〔1〕本発明の基礎となるアルゴリズム
最初に、本発明の基礎となるワードベースの探索戦略について説明する。
【0018】
相同性検索の目標は、最小の編集距離が閾値T以下である、クエリシーケンスと検索対象シーケンスの部分シーケンスのペアを検出することにある。本発明におけるワードベースの探索戦略は、上記従来のシードベースの探索戦略とは異なるため、以下、本発明の検索アルゴリズムを説明する際には、混同を避けるために「シード(prime)」,「ヒット(hit)」等の用語は使用しない。
【0019】
本発明の相同性検索装置の基礎となるアルゴリズムは、以下のような手順で実行される。
【0020】
(1)クエリシーケンスから、長さLの全てのサブシーケンスのリストを作る。これらのサブシーケンスを「検索要求ワード」と呼ぶ。
【0021】
この段階では、従来のシードベースのアプローチと類似している。しかしながら、本発明で用いるアルゴリズムでは、シードパターンに相当する検索要求ワードがマッチする必要はなく、この検索要求ワードを構成する非重畳セグメント(non-overlapped segment)を、相同性判定を行いながら連結していくことによって適応的にマッチが作り出されていく点で、従来とは全く相違する。
【0022】
(2)全ての検索要求ワードを、非重畳セグメントに分解する。これらの非重畳セグメントを「素ワード(prime word:PW)」と呼ぶ。
【0023】
(3)検索対象シーケンスに対して、素ワードをクエリとする完全一致検索を行い、すべての厳密な素ワード・マッチ(prim word match:PWM)を索出する。
【0024】
(4)素ワード・マッチを伸長(expand)する。
【0025】
(5)検索対象シーケンスにおいて、編集距離がT以下の素ワード・マッチが検出された場合、この素ワード・マッチを検索結果(相同性索出データ)として出力し、さらなる伸長は、従来方法と同じくできるだけ長い結果が得られるように実行する。
【0026】
このワードベースの探索戦略においては、次の2つの重要な問題を解決する必要がある。
【0027】
(1)素ワードの長さ: 素ワードの長さは、偽性候補(false candidate)が索出されるのを制限しつつ、陽性候補(positive candidate)が欠失するのを回避するように設定しなければならない。
【0028】
(2)素ワード・マッチの伸長の計算速度。
これらの課題を解決するために、本発明においては、以下に説明する「最小マッチ性(least match property)」に基づいて新たに開発したアプローチを用いる。
【0029】
〔1−1〕最小マッチ性
シーケンスの距離測度に関して、以下のような簡単に証明可能な定理がある。
【0030】
(定理1)
シーケンスW及びSに対して、それらの間の距離をD(W,S)=dとし、シーケンスWはd+1個の非重畳セグメントW=W…Wd+1に分割されるとすると、S内に完全マッチ(exact match)を持つセグメントW(1≦i≦d+1)が、少なくとも1つ存在する。
(定理終り)
【0031】
この定理は明らかである。なぜなら、WからSに変換するにはd回の操作のみが必要とされ、それらは少なくともd個の非重畳サブシーケンスを生じるからである。
【0032】
この(定理1)に示される性質は、以下の(定理2)により、より一般化することができる。
【0033】
(定理2)
D(W,S)=dとし、Wはk個の非重畳セグメントW=W…Wに分割される場合、次式を満たすような、1つのSのサブシーケンスSと、少なくとも1つのWのセグメントWが存在する。
【0034】
【数1】

ここで、W及びSは、それぞれ、W及びSのサブシーケンス(セグメント)、[d/k]はd/kを超えない最大の整数である([ ]は、一般に「ガウス記号」と呼ばれる)。
(定理終り)
【0035】
この(定理2)に示される性質を「最小マッチ性」と呼ぶ。
【0036】
〔1−2〕素ワード長の選定
今、クエリシーケンスから切り出される一つのワードWを考え、ワードWの長さを|W|=Lとする。また、D(W,S)≦Tとなる検索対象シーケンス内のサブシーケンスSを索出したいものとする。
【0037】
上述の最小マッチ性によれば、もしワードWがT+1個の非重畳セグメントに分割されるならば、検索対象シーケンスにおいて当該セグメントの完全マッチが少なくとも1つ存在するか、然もなくばD(W,S)≦Tの条件を満たすサブシーケンスSは存在しない。従って、ワードWをT+1個の同じ長さの非重畳セグメントに分割する。すなわち、任意の1≦i≦T+1及び1≦j≦T+1について、W=W…WT+1,|W|=|W|とする。但し、最後のセグメントWT+1の長さは、それよりも前の各セグメントの長さよりも短くてもよいこととする。本発明では、これらのセグメントを素ワードとして使用する。これによって、Wの如何なる可能なマッチも欠失しないことが保証される。
【0038】
〔1−3〕素ワード・マッチの高速伸長
完全一致検索により素ワード・マッチの位置が決定されると、次に、より長いマッチを探索するために、それらの素ワード・マッチを伸長する。
【0039】
ここで、従来の動的計画法又は完全探索法(窮舉法:exhausted search)の代わりとして、最小マッチ性に基づいて、素ワード・マッチに隣接する素ワードをワード単位で連結していくことにより、素ワード・マッチの伸長を行うことが可能である。これは、最小マッチ性により許容される距離は、分割の変化のみによるとともに、最小マッチ性に係る(定理2)は、任意のシーケンスの分割及び初期素ワード同士の結合を行ったとしても、依然として成り立つからである。
【0040】
すなわち、最小マッチ性の成立条件は次式のように表される。
【0041】
【数2】

【0042】
各ステップにおいて、kは2の冪乗である。式(2)は、W,Sの完全一致から距離[T/k]までを相同条件として容認し、この相同条件を満たす限り隣接する2つのセグメントは互いに結合することができることを意味している。そこで、素ワードを二進木(binary tree)により体系化する。ここで、二進木の根節点は検索要求ワードWに対応し、各終端節点(terminal node)は素ワードに対応し、非終端節点は、その子節点に向かう1つ又は2つの枝を有する。ここで、各非終端節点の左側の枝は、常に右側の枝と同数か又は1つだけ多い素ワードを有するものとする。
【0043】
図5にワード二分木の一例を示す。この例では、探索条件である最大許容編集距離Tが6である。ここで、終端節点の親節点のみが、1つの枝のみを有することができるものとする。ワード二分木のレベル(階数)は、終端節点がレベル1とし、終端節点から根節点に向かってレベルが増加するとする。ワード二分木の各レベルにおいて、1つの節点はワードWのセグメントの距離[T/k]の近似マッチを表す。ここで、k=21−n(T+1)であり、nはレベルを表すインデックスである。例えば、n=1はレベル1である。
【0044】
図5の例を用いて、本発明の素ワード・マッチの伸長アルゴリズムについて説明する。
【0045】
ワード二分木の各レベルは、検索要求ワードWの分割を表す。例えば、図5におけるレベル2の分割は、W=W’ W’ W’ W’である。ここで、i<4に対してはW’=W2i−12iであり、W’=Wである。
【0046】
レベル1における素ワード・マッチの伸長は、レベル2において、相同判定条件D(W’,S)≦[6/4]=1の素ワードの連結を探索することと等価である。ここで、Sは、先頭又は末尾にワードW’内の素ワードを含んだ検索対象シーケンスSのサブシーケンスである。従って、素ワードWの素ワード・マッチを伸長することは、検索要求ワードWにおける素ワードWと親節点を共有する兄弟節点Q^を探索することと等価である。最小マッチ性によれば、探索窓のサイズは|Q^|+[T/k]である。図5の例では、レベル2に対しては、T=4,k=6である。従って、検索対象シーケンスSにおけるワードWのワードマッチを伸長する場合、探索窓は、検索対象シーケンスS内のワードWの左側のサイズ|Q|+[T/k]の領域となる(図6参照)。
【0047】
任意のレベルにおいて、全ての節点でマッチが検出されなかったときに、素ワード・マッチの伸長は終了する。
【0048】
検索窓のサイズは、特に最低レベルにおいて、検索対象シーケンスSに比べて極めて小さくなる。故に、窓内探索の過程は、距離閾値[T/k]を与えることにより非常に高速に実行することができる。
【0049】
レベルが上がるにつれて、探索窓のサイズは大きくなり、伸長において探索すべきシーケンスは、ワード二分木に従って連結した素ワードの連鎖に成長していく。素ワードの連鎖が伸長できない場合には、そのサブツリーが、予め決められた巡回順序に従って探索される。この過程の間、探索空間は小片に分解され、偽性候補は初期の段階で淘汰される。従って、探索過程の計算複雑性は低い値に保たれる。
【0050】
〔1−4〕さらなる伸長過程
上記素ワード・マッチの伸長によって、相同性判定基準に合致する全ての局所シーケンスが索出された後、さらにできるだけ長いアラインメントとなるように、両サイドにさらに伸長することができないかチェックされる。このステージにおいては、従来方法と同じギャップのある伸長フェーズと同様の方法が使用されるが、本発明とは直接関係がないので説明は割愛する。
【0051】
〔2〕本発明の構成
【0052】
本発明に係る相同性検索装置の第1の構成は、所定の種類の文字又は記号の文字列からなる検索対象シーケンスを記憶する検索対象シーケンス記憶手段と、
前記検索対象シーケンス内の相同な文字列を検索するために検索条件として設定される文字列である検索要求ワードを記憶する検索要求ワード記憶手段と、
前記検索要求ワードを段階的に順次二分割してなる完全二分木又は不完全二分木であるワード二分木のデータを記憶するワード二分木テーブル記憶手段と、
前記検索要求ワードを分割して生成される素ワードを記憶する素ワード記憶手段と、
前記検索対象シーケンス内における前記素ワードに一致するマッチ部分文字列の位置を記憶する完全一致位置記憶手段と、
前記素ワード,前記検索要求ワード内における前記素ワードの位置,前記マッチ部分文字列,及び検索対象シーケンス内における前記マッチ部分文字列の位置を含む相同性索出データを記憶する相同テーブル記憶手段と、
2つの文字列が相同と判定するための許容編集距離の最大値である最大許容編集距離Tを入力手段により取得する最大許容編集距離設定手段と、
前記検索要求ワード記憶手段に記憶された前記検索要求ワードを(T+1)個の前記素ワードに分割し、終端節点が(T+1)個の前記各素ワードに対応する前記ワード二分木を生成し、前記ワード二分木テーブル記憶手段に前記ワード二分木テーブルとして格納するワード二分木生成手段と、
前記ワード二分木の各終端節点を順次選択し、選択した終端節点に対応する素ワードを前記素ワード記憶手段に格納する初期素ワード設定手段と、
前記素ワード記憶手段に記憶された前記素ワードに基づき、前記検索対象シーケンス内における当該素ワードと完全に一致するマッチ部分文字列の位置をすべて索出し、当該マッチ部分文字列の位置を完全一致位置記憶手段に格納するとともに、当該素ワード,当該素ワードの位置,当該マッチ部分文字列,及び当該マッチ部分文字列の位置を含む前記相同性索出データを前記相同テーブル記憶手段に格納する完全一致検索手段と、
前記完全一致位置記憶手段に記憶された前記各マッチ部分文字列について、前記素ワード記憶手段に記憶された前記素ワードに対し、前記ワード二分木に従って、当該素ワードの節点に双対する節点に対応する部分ワードを当該素ワードに結合した伸長素ワード、及び前記伸長素ワードに対応する節点に双対する節点又はその子孫節点に対応する部分ワードを当該伸長ワードに結合した伸長素ワードを順次生成し、前記各伸長素ワードのうち、当該マッチ部分文字列を当該伸長素ワードと同方向に伸長した文字列である伸長マッチ部分文字列が当該伸長素ワードと相同な場合に、当該伸長素ワード,当該伸長素ワードの位置,当該伸長マッチ部分文字列,及び当該伸長マッチ部分文字列の位置を含む前記相同性索出データを前記相同テーブル記憶手段に格納する素ワード伸長検索処理を行う素ワード伸長検索処理手段と、を備えたことを特徴とする。
【0053】
この構成により、上述のワードベースの探索戦略に基づくアルゴリズムにより、検索対象シーケンスに対する検索要求ワードによる相同性探索を具体的に実行することが可能となり、最適化されたマッチを適応的に生成することが可能となる。
【0054】
また、本発明に係る相同性検索装置の第2の構成は、前記第1の構成において、前記最大許容編集距離設定手段は、前記最大許容編集距離Tに1を加えた値を相同判定パラメータkの初期値に設定するものであり、
前記素ワード伸長検索処理手段は、
前記素ワード伸長検索処理の開始時に、降下階数nを0に初期化するとともに、[k/2]([ ]はガウス記号)の値を前記相同判定パラメータkの新たな値に更新する降下階数初期化手段と、
前記素ワード記憶手段に記憶された現在の前記素ワードに対応する前記ワード二分木の節点が、左側子節点の場合にはそれに双対する右側子節点から左枝を辿り降下階数nだけ降下した節点を結合候補節点に設定し、右側子節点の場合にはそれに双対する左側子節点から右枝を辿り降下階数nだけ降下した節点を結合候補節点に設定する結合候補節点設定手段と、
前記結合候補節点に対応する結合候補ワードを前記検索要求ワード記憶手段から読み出し、現在の前記素ワードに前記結合候補ワードを結合した結合ワードを前記伸長素ワードに設定する伸長素ワード設定手段と、
前記伸長素ワードに対応して、前記マッチ部分文字列を伸長した部分文字列を前記検索対象シーケンスから抽出し、比較対象シーケンスに設定する比較対象シーケンス抽出手段と、
前記比較対象シーケンスから前記伸長素ワードとの距離が最小となる前記伸長マッチ部分文字列を抽出し、当該伸長マッチ部分文字列と前記伸長素ワードとの距離である最小編集距離Lを算出する最小編集距離演算手段と、
前記最大許容編集距離Tと前記相同判定パラメータkに基づき、編集距離閾値Dthの値を[T/k]([ ]はガウス記号)に設定する編集距離閾値設定手段と、
前記最小編集距離Lと前記編集距離閾値Dthとを比較し、L≦Dthの場合には相同条件充足と判定し、前記伸長素ワード,前記伸長素ワードの位置,前記伸長マッチ部分文字列,及び前記伸長マッチ部分文字列の位置を前記相同性索出データとして前記相同テーブル記憶手段に格納する一方、L>Dthの場合には相同条件未充足と判定する相同条件判定手段と、
前記相同条件判定手段が相同条件充足と判定し且つ降下階数nが0の場合、現在の前記素ワードに対応する前記ワード二分木の節点の親節点が根節点であれば素ワード伸長検索処理を終了し、前記相同条件判定手段が相同条件未充足と判定した場合又は降下階数nが1以上の場合、最後に設定された前記結合候補節点が終端節点であれば素ワード伸長検索処理を終了する終了条件判定手段と、
前記相同条件判定手段が相同条件充足と判定し且つ降下階数nが0の場合、現在の前記素ワードを前記伸長素ワードに更新し前記素ワード記憶手段に格納するとともに、[k/2]([ ]はガウス記号)の値を前記相同判定パラメータkの新たな値に更新する素ワード更新手段と、
前記相同条件判定手段が相同条件未充足と判定した場合又は降下階数nが1以上の場合、降下階数nを1だけ増加させる降下階数変更手段と、
前記終了条件判定手段により素ワード伸長検索処理が終了されるまで、前記結合候補節点設定手段、前記伸長素ワード設定手段、前記比較対象シーケンス抽出手段、前記最小編集距離演算手段、前記編集距離閾値設定手段、前記相同条件判定手段、前記終了条件判定手段、前記素ワード更新手段、及び前記降下階数変更手段による素ワード伸長検索処理を反復実行する制御を行う素ワード伸長検索処理制御手段と、を備えたことを特徴とする。
【0055】
また、本発明に係る相同性検索装置の第3の構成は、前記第1又は2の構成において、前記検索対象シーケンスを構成する文字記号と同種の文字記号の文字列からなるクエリシーケンスを記憶するクエリシーケンス記憶手段と、
前記クエリシーケンスから前記クエリシーケンス内の所定の長さの部分文字列を切り出し、前記検索要求ワードとして前記検索要求ワード記憶手段に格納する検索要求ワード設定手段と、を備え、
前記要求ワード設定手段は、前記部分文字列の先頭位置を、前記クエリシーケンスの先頭から1文字ずつ移動させながら前記部分文字列を順次切り出し、前記検索要求ワード記憶手段に格納された前記検索要求ワードを逐次更新するものであり、
前記ワード二分木生成手段は、前記検索要求ワード記憶手段に格納された前記検索要求ワードが更新される毎に、前記ワード二分木を生成し、前記ワード二分木テーブルの更新を行うことを特徴とする。
【0056】
また、本発明に係るプログラムは、コンピュータに読み込ませて実行させることにより、当該コンピュータを請求項1乃至3のいずれかの構成の相同性検索装置として動作させることを特徴とする。
【発明の効果】
【0057】
上記本発明に係る相同性検索装置によれば、素ワード伸長検索処理の際に検索対象シーケンス内のマッチを探索する際の探索空間が極めて小さいため、高速で検索を行うことが可能となるとともに、特定のシード構造に依存せず適応的に構成されるワード(素ワード及び伸長素ワード)による検索が行われるため、ヒットの欠失を低く抑え、検索感度を向上左折ことが可能となる。
【図面の簡単な説明】
【0058】
【図1】本発明の実施例1に係る相同性検索装置1の全体構成を表すブロック図である。
【図2】図1の検索実行部19の構成を表すブロック図である。
【図3】図2の素ワード伸長検索処理部の構成を表すブロック図である。
【図4】検索対象シーケンスS及びクエリシーケンスQのデータ構造、並びにクエリシーケンスQと検索要求ワードWとの関係を表す図である。
【図5】ワード二分木のデータ構造を表す図である。
【図6】比較対象シーケンス抽出部33が検索対象シーケンスから抽出する比較対象シーケンスの一例を表す図である。
【図7】本発明の実施例1に係る相同性検索装置1の動作の全体の流れを表すPAD(Problem Analysis Diagram)図である。
【図8】図7の二分木相同性検索処理サブルーチンの処理の流れを表すPAD図である。
【図9】図8の素ワード伸長検索処理サブルーチンの処理の流れを表すPAD図である。
【発明を実施するための形態】
【0059】
以下、本発明を実施するための形態について、図面を参照しながら説明する。
【実施例1】
【0060】
図1は、本発明の実施例1に係る相同性検索装置の全体構成を表すブロック図である。本実施例の相同性探索装置1は、入力装置2から入力されるクエリシーケンスQと相同性判定の際の最大許容編集距離Tに基づいて、シーケンスデータベース3に格納された検索対象シーケンスSと当該クエリシーケンスQとの相同性検索を行い、その索出結果を出力装置4に出力するものである。入力装置2としては、キーボードやマウス、ディスクドライブ等の通常のコンピュータの入力装置が使用される。また、出力装置4としては、ディスプレイや外部記憶装置等の通常のコンピュータの出力装置が使用される。シーケンスデータベース3は、ハードディスクドライブ等の大容量記憶装置が使用される。
【0061】
本実施例の相同性探索装置1は、検索対象シーケンス選択部10、検索対象シーケンス記憶部11、クエリシーケンス入力部12、クエリシーケンス記憶部13、検索要求ワード設定部14、検索要求ワード記憶部15、ワード二分木生成部16、ワード二分木テーブル記憶部17、最大許容編集距離設定部18、検索実行部19、及び相同テーブル記憶部20を備えている。これらの機能構成は、専用回路として構成してもよいが、コンピュータ・プログラムとして提供し、当該プログラムをコンピュータにロードして実行することにより機能的に構成されるようにしてもよい。
【0062】
シーケンスデータベース3には、複数の検索対象シーケンスSが記憶されている。ここで、「検索対象シーケンス」とは、所定の種類の文字又は記号の文字列からなるシーケンスであり、核酸の塩基配列(核酸を構成する塩基を表す「A」,「C」,「G」,「T」の文字及びドント・ケア(欠失部分)を表す記号「−」からなる配列)やタンパク質のアミノ酸配列(アミノ酸を表す20種類の文字「A」,「C」,「D」,「E」,「F」,「G」,「H」,「I」,「K」,「L」,「M」,「N」,「P」,「Q」,「R」,「S」,「T」,「V」,「W」,「Y」及びドント・ケアを表す記号「−」からなる配列)等が想定されている。
【0063】
検索対象シーケンス選択部10は、シーケンスデータベース3から、相同性検索に使用する検索対象シーケンスSを選択して読み出し、検索対象シーケンス記憶部11に格納する。検索対象シーケンス記憶部11は、この検索対象シーケンスSを記憶する。
【0064】
図4(a),(b)に、検索対象シーケンスS及びクエリシーケンスQのデータ構造を示す。検索対象シーケンスSはN個の文字配列から構成され、クエリシーケンスQはN個の文字配列から構成されている。核酸やタンパク質のシーケンスの場合、N,Nは通常非常に大きな値となる。
【0065】
最大許容編集距離設定部18は、2つの文字列が相同であると判定するための許容される2つの文字列間の編集距離の最大値である最大許容編集距離Tを入力手段から取得する。また、最大許容編集距離Tに1を加えた値を相同判定パラメータkの初期値に設定する。「相同判定パラメータ」とは、検索対象の文字列と素ワードとの相同性を判定するための編集距離閾値Dthを算出するパラメータであり、最大許容編集距離Tと編集距離閾値Dthと相同判定パラメータkとはDth=[T/k]の関係にある。
【0066】
クエリシーケンス入力部12は、ユーザが入力装置2から入力するクエリシーケンスQを取得して、クエリシーケンス記憶部13に格納する。クエリシーケンス記憶部13は、このクエリシーケンスQを記憶する。ここで、「クエリシーケンス」は、前記検索対象シーケンスと同種の文字又は記号の配列からなるシーケンスである。
【0067】
検索要求ワード設定部14は、クエリシーケンス記憶部13に記憶されたクエリシーケンスQから、当該クエリシーケンスQ内の所定の長さLの部分文字列を切り出し、検索要求ワードWとして検索要求ワード記憶部15に格納する。検索要求ワード記憶部15は、当該検索要求ワードWを一時的に記憶する。
【0068】
図4(c)に、クエリシーケンスQと検索要求ワードWとの関係を示す。検索要求ワード設定部14は、検索要求ワードWの先頭位置を、クエリシーケンスQの先頭から末尾方向に、1文字ずつずらしながら長さLの検索要求ワードWを順次切り出して、検索要求ワード記憶部15に格納する。従って、この切り出しの全回数をN回とすると、N=N−L+1となる。
【0069】
ワード二分木生成部16は、検索要求ワード記憶部15に検索要求ワードWが設定されると、その検索要求ワードWに基づき、終端節点の数が(T+1)個のワード二分木を生成し、ワード二分木テーブル記憶部17にワード二分木テーブルとして格納する。ワード二分木テーブル記憶部17は、当該ワード二分木テーブルを記憶する。
【0070】
ここで、ワード二分木については既に説明したが、ワード二分木は、例えば、図5に示したようなデータ構造を有する。ワード二分木の終端節点は、検索要求ワードWを(T+1)個に分割した素ワードW(i=1,…,T+1)に対応する。検索要求ワードWの長さLが(T+1)で割り切れる場合には、すべての素ワードWの長さは等しくなり、|W|=L/(T+1)となる。一方、Lが(T+1)で割り切れない場合、素ワードW〜Wまでは同じ長さ[L/(T+1)]とし、Wの長さは余りのL−T([L/(T+1)])とする。ここで、[ ]はガウス記号を表す(以下同じ)。また、ワード二分木の根節点は、検索要求ワードWそのものに対応する。ワード二分木は、終端節点から構成してゆき、最も左側の節点から、隣接する2つの節点のペアを作り、それらの節点ペアの共通の親節点を生成するという処理を繰り返すことにより容易に構成することができる。尚、最も右側の終端節点だけは、ペアの相手がない場合(すなわち、終端節点の数が奇数の場合)には単独の節点とし、その親節点を1つ生成すればよい(図5参照)。
【0071】
ワード二分木テーブルは、上述のようなデータ構造のワード二分木の情報を格納するテーブルであり、例えば、図5のワード二分木を格納するワード二分木テーブルは、表1のようになる。
【0072】
【表1】

【0073】
表1において、「節点名」フィールドには、図5の各節点に付されたラベルが格納される。「位置pos」フィールドには、各節点に対応するセグメントの検索要求ワードW内における位置が格納され、具体的には、各節点に対応するワードの先頭位置のポインタが格納される。「ワード長l」フィールドには、それぞれのセグメントの長さ、「階層Lev」フィールドには節点の階層(レベル)、「親節点pparent」フィールドには各節点の親節点のラベル、「左子節点pleft」フィールドには各節点から出る左枝に接続する子節点のラベル、「右子節点pright」フィールドには各節点から出る右枝に接続する子節点のラベルがそれぞれ格納される。
【0074】
検索実行部19は、上記ワード二分木に基づき、検索対象シーケンスSと検索要求ワードWとの相同性検索を行い、その結果索出される相同性索出データを相同テーブル記憶部20に相同テーブルとして格納する。相同テーブル記憶部20は、当該相同テーブルを記憶する。
【0075】
ここで、相同テーブルは、表2に示すような構造のデータテーブルである。
【0076】
【表2】

【0077】
表2において、「検索要求ワード位置」フィールドには、検索要求ワードWの先頭位置の、クエリシーケンスQの先頭位置からのシフト量(すなわち、クエリシーケンスQ内の検索要求ワードWの位置)が格納される(図4(c)参照)。「素ワード」フィールドには、検索対象シーケンスS内のサブシーケンスにマッチした素ワードのシーケンスが格納される。「マッチ位置」フィールドには、マッチした素ワードの先頭文字の検索要求ワードW内における位置が格納される。「相同シーケンス」フィールドには、前記サブシーケンスと相同と判定された検索対象シーケンスS内のサブシーケンスが格納される。また、「相同シーケンス位置」フィールドには、前記サブシーケンスの先頭文字の検索対象シーケンスS内における位置が格納される。
【0078】
次に、図1の検索実行部19の構成について説明する。図2は、検索実行部19の構成を表すブロック図である。
【0079】
検索実行部19は、クエリ素ワード設定部25、素ワード記憶部26、完全一致検索部27、完全一致位置記憶部28、及び素ワード伸長検索処理部29を備えている。
【0080】
クエリ素ワード設定部25は、ワード二分木テーブル記憶部17に格納されているワード二分木の各終端節点を左側から順次選択し、選択した終端節点に対する文字列W(i=1,…,T+1)を初期の素ワードWprimeとして素ワード記憶部26に格納する。素ワード記憶部26は、当該素ワードWprimeを記憶し保持する。
【0081】
完全一致検索部27は、素ワード記憶部26に記憶されている素ワードWprimeに基づき、検索対象シーケンスS内における当該素ワードWprimeと完全に一致するマッチ部分文字列Sexactの位置pmatchをすべて索出し、当該マッチ部分文字列の位置pmatchを完全一致位置記憶部28に格納するとともに、{検索要求ワードWの位置,当該素ワードWprime,当該素ワードWprimeの位置,当該マッチ部分文字列Sexact,当該マッチ部分文字列Sexactの位置pmatch}を相同性索出データとして相同テーブル記憶部20に格納する。完全一致位置記憶部28は、前記マッチ部分文字列の位置を記憶し保持する。
【0082】
素ワード伸長検索処理部29は、完全一致位置記憶部28に記憶された各マッチ部分文字列について、素ワード記憶部26に記憶された素ワードWprimeに対し後述の素ワード伸長検索処理を行うとともに、素ワード伸長検索処理により伸長される伸長素ワードWexpandのうち、当該マッチ部分文字列Sexactの位置にある当該伸長素ワードWexpandに対応する文字列である伸長マッチ部分文字列Smatchが当該伸長素ワードWexpandと相同な場合に、{検索要求ワードWの位置,当該伸長素ワードWexpand,当該伸長素ワードWexpandの位置,当該伸長マッチ部分文字列Smatch,当該伸長マッチ部分文字列Smatchの位置}を相同性索出データとして相同テーブル記憶部20に格納する。
【0083】
次に、図2の素ワード伸長検索処理部29の構成について説明する。図3は、図2の素ワード伸長検索処理部の構成を表すブロック図である。
【0084】
素ワード伸長検索処理部29は、降下階数初期化部30、結合候補節点設定部31、伸長素ワード設定部32、比較対象シーケンス抽出部33、最小編集距離演算部34、編集距離閾値設定部35、相同条件判定部36、終了条件判定部37、素ワード更新部38、降下階数変更部39、及び素ワード伸長検索処理制御部40を備えている。
【0085】
降下階数初期化部30は、素ワード伸長検索処理の開始時に、降下階数nを0に初期化するとともに、[k/2]の値を相同判定パラメータkの新たな値に更新する。
【0086】
結合候補節点設定部31は、素ワード記憶部26に記憶された現在の素ワードに対応するワード二分木の節点が、左側子節点の場合にはそれに双対する右側子節点から左枝を辿り降下階数nだけ降下した節点を結合候補節点pcombに設定し、右側子節点の場合にはそれに双対する左側子節点から右枝を辿り降下階数nだけ降下した節点を結合候補節点pcombに設定する。
【0087】
伸長素ワード設定部32は、結合候補節点pcombに対応する結合候補ワードWcombを検索要求ワード記憶部15から読み出し、現在の素ワードWprimeに結合候補ワードWcombを結合した結合ワードを伸長素ワードWexpandに設定する。
【0088】
比較対象シーケンス抽出部33は、伸長素ワードWexpandに対応して、マッチ部分文字列Sexactを伸長した部分文字列を検索対象シーケンスSから抽出し、比較対象シーケンスに設定する。
【0089】
最小編集距離演算部34は、比較対象シーケンスSから伸長素ワードWexpandとの編集距離が最小となる伸長マッチ部分文字列Smatchを抽出し、当該伸長マッチ部分文字列Smatchと伸長素ワードWexpandとの編集距離である最小編集距離Lを出力する。
【0090】
編集距離閾値設定部35は、最大許容編集距離Tと相同判定パラメータkに基づき、編集距離閾値Dthの値を[T/k]に設定する。
【0091】
相同条件判定部36は、最小編集距離Lと編集距離閾値Dthとを比較し、L≦Dthの場合には相同条件充足と判定し、{検索要求ワードWの位置,伸長素ワードWexpand,伸長素ワードの位置,伸長マッチ部分文字列Smatch,伸長マッチ部分文字列の位置}を相同性索出データとして相同テーブル記憶部に格納する一方、L>Dthの場合には相同条件未充足と判定する。
【0092】
終了条件判定部37は、相同条件判定部36が相同条件充足と判定し且つ降下階数nが0の場合、現在の素ワードWprimeに対応するワード二分木の節点の親節点が根節点であれば素ワード伸長検索処理を終了し、相同条件判定部36が相同条件未充足と判定した場合又は降下階数nが1以上の場合、最後に設定された結合候補節点が終端節点であれば素ワード伸長検索処理を終了する。
【0093】
素ワード更新部38は、相同条件判定部36が相同条件充足と判定し且つ降下階数nが0の場合、現在の素ワードを伸長素ワードに更新し素ワード記憶部26に格納するとともに、[k/2]の値を相同判定パラメータkの新たな値に更新する。
【0094】
降下階数変更部39は、相同条件判定部36が相同条件未充足と判定した場合又は降下階数nが1以上の場合、降下階数nを1だけ増加させる。
【0095】
素ワード伸長検索処理制御部40は、終了条件判定部37により素ワード伸長検索処理が終了されるまで、結合候補節点設定部31、伸長素ワード設定部32、比較対象シーケンス抽出部33、最小編集距離演算部34、編集距離閾値設定部35、相同条件判定部36、終了条件判定部37、素ワード更新部38、及び降下階数変更部39による素ワード伸長検索処理を反復実行する制御を行う。
【0096】
以上のように構成された本発明の実施例1に係る相同性検索装置について、以下その動作を説明する。
【0097】
図7は、本発明の実施例1に係る相同性検索装置1の動作の全体の流れを表すPAD(Problem Analysis Diagram)図である。
【0098】
まず、ステップS1において、ユーザにより入力手段から最大許容編集距離T、ワード長L、及びクエリシーケンスQが入力される。最大許容編集距離設定部18は、入力された最大許容編集距離Tを保持する。検索要求ワード設定部14は、入力されたワード長Lを保持する。また、クエリシーケンス入力部12は、入力されたクエリシーケンスQを、クエリシーケンス記憶部13に保存する。
【0099】
また、検索対象シーケンス選択部10は、シーケンスデータベース3から1つの検索対象シーケンスSを選択して読み出し、検索対象シーケンス記憶部11に保存する。
【0100】
次に、ステップS2において、最大許容編集距離設定部18は、相同判定パラメータkの値をT+1に初期化する。
【0101】
次に、ステップS3において、検索要求ワード設定部14がシフト量を表す内部変数iを0からN−1まで1ずつ増加させながら、以下のステップS4〜S6の処理が反復実行される。
【0102】
次に、ステップS4において、検索要求ワード設定部14は、図4(c)に示したように、切り出し位置をクエリシーケンスQの先頭からi文字シフトさせ、クエリシーケンスQの当該切り出し位置から長さLの部分文字列を切り出し、これを検索要求ワードWとして検索要求ワード記憶部15に格納する。
【0103】
次に、ステップS5において、ワード二分木生成部16は、検索要求ワード記憶部15に記憶された検索要求ワードWに基づき、終端節点の数が(T+1)個の図5に示したようなワード二分木を生成し、ワード二分木テーブル記憶部17に表1のようなワード二分木テーブルとして格納する。
【0104】
次に、ステップS6において、ワード二分木テーブル記憶部17に格納されたワード二分木に基づいて、検索実行部19による二分木相同性探索処理が行われる。
【0105】
以上のステップS4〜S6の処理がN回反復実行された後、相同性探索装置1は相同性検索を終了する。相同性検索による相同性索出データは、二分木相同性探索処理により相同テーブル記憶部20に蓄積されるので、これらの結果を出力装置4に出力すればよい。
【0106】
次に、上記ステップS6における二分木相同性探索処理について説明する。図8は、図7の二分木相同性検索処理サブルーチンの処理の流れを表すPAD図である。
【0107】
まず、ステップS11において、クエリ素ワード設定部25は、選択する終端節点のインデックスを表す内部変数jを1からT−1まで1ずつ増加させながら、以下のステップS12〜S17の処理を反復実行する。
【0108】
ステップS12において、クエリ素ワード設定部25は、ワード二分木テーブル記憶部17に格納されたワード二分木テーブルを参照し、左からj番目の終端節点に対応するワードWを検索要求ワード記憶部15から読み出して、初期の素ワードWprimeとして素ワード記憶部26に格納する。
【0109】
次に、ステップS13において、完全一致検索部27は、素ワード記憶部26に記憶された素ワードWprimeに基づき、検索対象シーケンスS内における当該素ワードWprimeと完全に一致するマッチ部分文字列Wexactの位置pmatchをすべて索出し、当該マッチ部分文字列の位置pmatchを完全一致位置記憶部28に格納する。ここで、索出されたマッチ部分文字列の数をNmatchとし、各マッチ部分文字列の位置をpmatch(ξ)(ξ=1,…,Nmatch)と記す。
【0110】
次に、ステップS14において、Nmatch>0(完全マッチが存在する)の場合、完全一致検索部27は、マッチ部分文字列のインデックスξを1からNmatchまで1ずつ増加させながら、以下のステップS15〜S17の処理を反復実行する。
【0111】
ステップS15において、完全一致検索部27は、ξ番目のマッチ部分文字列pmatch(ξ)に対して、{検索要求ワードWの位置,素ワードWprime,素ワードの位置,マッチ部分文字列,マッチ部分文字列の位置pmatch(ξ)}を相同性索出データとして相同テーブル記憶部20に格納する。
【0112】
次に、ステップS16において、降下階数初期化部30は、内部変数である降下階数ndownを0に初期化するとともに、[k/2]の値を相同判定パラメータkの新たな値として更新する。
【0113】
最後に、ステップS17において、{マッチ部分文字列の位置pmatch(ξ),現在の素ワードW,現在選択されている終端節点のレベルLev=1,現在選択されている終端節点の親節点pparent,現在選択されている終端節点の親節点に対するサイドSide(Left又はRight),最大許容編集距離T,現在の相同判定パラメータk,現在の降下階数ndown=0}を入力値として、後述の素ワード伸長検索処理部29による素ワード伸長検索処理素素ワード伸長検索処理が実行される。
【0114】
図9は、図8の素ワード伸長検索処理サブルーチンの処理の流れを表すPAD図である。この素ワード伸長検索処理サブルーチンでは、再帰処理が用いられている。なお、この素ワード伸長検索処理サブルーチンは、入力値として、{マッチ部分文字列の位置pmatch,現在の素ワードWprime,現在選択されている節点のレベルLev,現在選択されている節点の親節点pparent,現在選択されている節点の親節点に対するサイドSide(Left又はRight),最大許容編集距離T,現在の相同判定パラメータk,現在の降下階数ndown}をとるものとする。
【0115】
まず、ステップS21において、編集距離閾値設定部35は、最大許容編集距離Tと現在の相同判定パラメータkに基づき、編集距離閾値Dthの値を[T/k]に設定する。
【0116】
次に、ステップS22において、結合候補節点設定部31は、入力されたサイドSideを参照して、現在選択されている節点が、その親節点に対し左側子節点か右側子節点かを判定する。
【0117】
左側子節点と判定された場合、ステップS23において、結合候補節点設定部31は、現在選択されている節点の親節点pparentの右側子節点を指定節点に設定し、ステップS24において、結合候補節点設定部31は、当該指定節点から左側枝を辿りながらndown階降下した節点を結合候補節点pcombに設定する。次いで、ステップS25において、伸長素ワード設定部32は、結合候補節点pcombに対応するワード(結合候補ワード)Wcombを素ワード記憶部26から読み出して、現在の素ワードWprimeの右側に当該結合候補ワードWcombを結合した結合ワードを生成し、これを伸長素ワードWexpandに設定する。そして、ステップS26において、比較対象シーケンス抽出部33は、探索窓幅を|Wcomb|+Dthとして、検索対象シーケンスSのマッチ部分文字列Wexactの位置pmatchから長さ|Wexpand|+Dth(=|Wprime|+|Wcomb|+Dth)のシーケンスを抽出し、これを比較対象シーケンスSに設定する。
【0118】
一方、ステップS22において右側子節点と判定された場合、ステップS27において、結合候補節点設定部31は、現在選択されている節点の親節点pparentの左側子節点を指定節点に設定し、ステップS28において、結合候補節点設定部31は、当該指定節点から右側枝を辿りながらndown階降下した節点を結合候補節点pcombに設定する。次いで、ステップS29において、伸長素ワード設定部32は、結合候補節点pcombに対応するワード(結合候補ワード)Wcombを素ワード記憶部26から読み出して、現在の素ワードWprimeの左側に当該結合候補ワードWcombを結合した結合ワードを生成し、これを伸長素ワードWexpandに設定する。そして、ステップS30において、比較対象シーケンス抽出部33は、探索窓幅を|Wcomb|+Dthとして、検索対象シーケンスSのマッチ部分文字列の位置pmatchに対し|Wcomb|+Dthだけ左(先頭側)にシフトした位置ptop=pmatch−(|Wcomb|+Dth)から、長さ|Wexpand|+Dth(=|Wprime|+|Wcomb|+Dth)のシーケンスを抽出し、これを比較対象シーケンスSに設定する。
【0119】
次に、ステップS31において、最小編集距離演算部34は、比較対象シーケンスSから伸長素ワードWexpandとの編集距離が最小となる伸長マッチ部分文字列Smatchを抽出し、当該伸長マッチ部分文字列Smatchと伸長素ワードWexpandとの距離である最小編集距離Lを算出する。
【0120】
次に、ステップS32において、相同条件判定部36は、最小編集距離Lと編集距離閾値Dthとを比較し、LがDth以下であるか否かを判定する。
【0121】
ここで、L≦Dthの場合、相同条件判定部36は、伸長素ワードWexpandと伸長マッチ部分文字列Smatchとが相同性条件を充足する(相同性条件充足)と判定し、ステップS33において、マッチ部分文字列の位置pmatchを伸長マッチ部分文字列Smatchの先頭位置に更新した後、ステップS34において、{検索要求ワードWの位置,伸長素ワードWexpand,伸長素ワードWexpandの位置pexpand,伸長マッチ部分文字列Smatch,伸長マッチ部分文字列Smatchの位置pmatch}を相同性索出データとして相同テーブル記憶部20に格納する。
【0122】
次いで、ステップS35において、終了条件判定部37は、現在の降下階数ndownが0か否かを判定する。
【0123】
down=0の場合は、ステップS36において、終了条件判定部37は、現在の節点のレベルLevが根節点のレベルLevmaxよりも小さいか否かを判定する。ここで、Lev=Levmaxならば、終了条件判定部37は素ワード伸長検索処理を終了する。一方、Lev<Levmaxならば、ステップS37において、素ワード更新部38は、素ワードWを伸長素ワードWexpandに更新し素ワード記憶部26に格納するとともに、ステップS38において、[k/2]の値を相同判定パラメータkの新たな値としてkを更新する。そして、ステップS39において、素ワード伸長検索処理制御部40は、{伸長マッチ部分文字列の位置pmatch,現在の素ワードW,現在選択されている節点の親節点のレベルLev+1,現在選択されている節点の祖父節点pgrand,現在選択されている節点の親節点の祖父節点に対するサイドSide(Left又はRight),最大許容編集距離T,現在の相同判定パラメータk,現在の降下階数ndown}を入力値として、素ワード伸長検索処理部29による素ワード伸長検索処理を再帰的に実行する。
【0124】
ステップS35においてndown>0の場合は、ステップS40において、終了条件判定部37は、現在の節点のレベルLevから降下階数ndownを引いた値Lev−ndownが1より大きい(すなわち、最後に設定された結合候補節点pcombが終端節点でない)か否かを判定する。ここで、Lev−ndown=1ならば、終了条件判定部37は素ワード伸長検索処理を終了する。一方、Lev−ndown>1ならば、ステップS41において、降下階数変更部39は、降下階数nを1だけ増加させる。そして、ステップS42において、素ワード伸長検索処理制御部40は、{伸長マッチ部分文字列の位置pmatch,現在の素ワードWprime,現在選択されている節点のレベルLev,現在選択されている節点の親節点pparent,現在選択されている節点の親節点に対するサイドSide(Left又はRight),最大許容編集距離T,現在の相同判定パラメータk,現在の降下階数ndown}を入力値として、素ワード伸長検索処理部29による素ワード伸長検索処理を再帰的に実行する。
【0125】
ステップS32においてL>Dthの場合、相同条件判定部36は、相同条件未充足と判定し、ステップS43において、終了条件判定部37は、現在の節点のレベルLevから降下階数ndownを引いた値Lev−ndownが1より大きい(すなわち、最後に設定された結合候補節点pcombが終端節点でない)か否かを判定する。ここで、Lev−ndown=1ならば、終了条件判定部37は素ワード伸長検索処理を終了する。一方、Lev−ndown>1ならば、ステップS44において、降下階数変更部39は、降下階数nを1だけ増加させる。そして、ステップS39において、素ワード伸長検索処理制御部40は、{伸長マッチ部分文字列の位置pmatch,現在の素ワードWprime,現在選択されている節点のレベルLev,現在選択されている節点の親節点pparent,現在選択されている節点の親節点に対するサイドSide(Left又はRight),最大許容編集距離T,現在の相同判定パラメータk,現在の降下階数ndown}を入力値として、素ワード伸長検索処理部29による素ワード伸長検索処理を再帰的に実行する。
【0126】
以上の一連の処理によって、素ワード伸長検索処理が実行され、伸長された素ワードによるすべてのマッチの相同性索出データが相同テーブル記憶部20に蓄積される。
【符号の説明】
【0127】
1 相同性探索装置
2 入力装置
3 シーケンスデータベース
4 出力装置
10 検索対象シーケンス選択部
11 検索対象シーケンス記憶部
12 クエリシーケンス入力部
13 クエリシーケンス記憶部
14 検索要求ワード設定部
15 検索要求ワード記憶部
16 ワード二分木生成部
17 ワード二分木テーブル記憶部
18 最大許容編集距離設定部
19 検索実行部
20 相同テーブル記憶部
25 クエリ素ワード設定部
26 素ワード記憶部
27 完全一致検索部
28 完全一致位置記憶部
29 素ワード伸長検索処理部
30 降下階数初期化部
31 結合候補節点設定部
32 伸長素ワード設定部
33 比較対象シーケンス抽出部
34 最小編集距離演算部
35 編集距離閾値設定部
36 相同条件判定部
37 終了条件判定部
38 素ワード更新部
39 降下階数変更部
40 素ワード伸長検索処理制御部

【特許請求の範囲】
【請求項1】
所定の種類の文字又は記号の文字列からなる検索対象シーケンスを記憶する検索対象シーケンス記憶手段と、
前記検索対象シーケンス内の相同な文字列を検索するために検索条件として設定される文字列である検索要求ワードを記憶する検索要求ワード記憶手段と、
前記検索要求ワードを段階的に順次二分割してなる完全二分木又は不完全二分木であるワード二分木のデータを記憶するワード二分木テーブル記憶手段と、
前記検索要求ワードを分割して生成される素ワードを記憶する素ワード記憶手段と、
前記検索対象シーケンス内における前記素ワードに一致するマッチ部分文字列の位置を記憶する完全一致位置記憶手段と、
前記素ワード,前記検索要求ワード内における前記素ワードの位置,前記マッチ部分文字列,及び検索対象シーケンス内における前記マッチ部分文字列の位置を含む相同性索出データを記憶する相同テーブル記憶手段と、
2つの文字列が相同と判定するための許容編集距離の最大値である最大許容編集距離Tを入力手段により取得する最大許容編集距離設定手段と、
前記検索要求ワード記憶手段に記憶された前記検索要求ワードを(T+1)個の前記素ワードに分割し、終端節点が(T+1)個の前記各素ワードに対応する前記ワード二分木を生成し、前記ワード二分木テーブル記憶手段に前記ワード二分木テーブルとして格納するワード二分木生成手段と、
前記ワード二分木の各終端節点を順次選択し、選択した終端節点に対応する素ワードを前記素ワード記憶手段に格納するクエリ素ワード設定手段と、
前記素ワード記憶手段に記憶された前記素ワードに基づき、前記検索対象シーケンス内における当該素ワードと完全に一致するマッチ部分文字列の位置をすべて索出し、当該マッチ部分文字列の位置を完全一致位置記憶手段に格納するとともに、当該素ワード,当該素ワードの位置,当該マッチ部分文字列,及び当該マッチ部分文字列の位置を含む前記相同性索出データを前記相同テーブル記憶手段に格納する完全一致検索手段と、
前記完全一致位置記憶手段に記憶された前記各マッチ部分文字列について、前記素ワード記憶手段に記憶された前記素ワードに対し、前記ワード二分木に従って、当該素ワードの節点に双対する節点に対応する部分ワードを当該素ワードに結合した伸長素ワード、及び前記伸長素ワードに対応する節点に双対する節点又はその子孫節点に対応する部分ワードを当該伸長ワードに結合した伸長素ワードを順次生成し、前記各伸長素ワードのうち、当該マッチ部分文字列を当該伸長素ワードと同方向に伸長した文字列である伸長マッチ部分文字列が当該伸長素ワードと相同な場合に、当該伸長素ワード,当該伸長素ワードの位置,当該伸長マッチ部分文字列,及び当該伸長マッチ部分文字列の位置を含む前記相同性索出データを前記相同テーブル記憶手段に格納するワード伸長検索処理を行うワード伸長検索処理手段と、を備えたことを特徴とする相同性検索装置。
【請求項2】
前記最大許容編集距離設定手段は、前記最大許容編集距離Tに1を加えた値を相同判定パラメータkの初期値に設定するものであり、
前記ワード伸長検索処理手段は、
前記ワード伸長検索処理の開始時に、降下階数nを0に初期化するとともに、[k/2]([ ]はガウス記号)の値を前記相同判定パラメータkの新たな値に更新する降下階数初期化手段と、
前記素ワード記憶手段に記憶された現在の前記素ワードに対応する前記ワード二分木の節点が、左側子節点の場合にはそれに双対する右側子節点から左枝を辿り降下階数nだけ降下した節点を結合候補節点に設定し、右側子節点の場合にはそれに双対する左側子節点から右枝を辿り降下階数nだけ降下した節点を結合候補節点に設定する結合候補節点設定手段と、
前記結合候補節点に対応する結合候補素ワードを前記検索要求ワード記憶手段から読み出し、現在の前記素ワードに前記結合候補素ワードを結合した結合ワードを前記伸長素ワードに設定する伸長素ワード設定手段と、
前記伸長素ワードに対応して、前記マッチ部分文字列を伸長した部分文字列を前記検索対象シーケンスから抽出し、比較対象シーケンスに設定する比較対象シーケンス抽出手段と、
前記比較対象シーケンスから前記伸長素ワードとの距離が最小となる前記伸長マッチ部分文字列を抽出し、当該伸長マッチ部分文字列と前記伸長素ワードとの距離である最小編集距離Lを算出する最小編集距離演算手段と、
前記最大許容編集距離Tと前記相同判定パラメータkに基づき、編集距離閾値Dthの値を[T/k]に設定する編集距離閾値設定手段と、
前記最小編集距離Lと前記編集距離閾値Dthとを比較し、L≦Dthの場合には相同条件充足と判定し、前記伸長素ワード,前記伸長素ワードの位置,前記伸長マッチ部分文字列,及び前記伸長マッチ部分文字列の位置を前記相同性索出データとして前記相同テーブル記憶手段に格納する一方、L>Dthの場合には相同条件未充足と判定する相同条件判定手段と、
前記相同条件判定手段が相同条件充足と判定し且つ降下階数nが0の場合、現在の前記素ワードに対応する前記ワード二分木の節点の親節点が根節点であればワード伸長検索処理を終了し、前記相同条件判定手段が相同条件未充足と判定した場合又は降下階数nが1以上の場合、最後に設定された前記結合候補節点が終端節点であればワード伸長検索処理を終了する終了条件判定手段と、
前記相同条件判定手段が相同条件充足と判定し且つ降下階数nが0の場合、現在の前記素ワードを前記伸長素ワードに更新し前記素ワード記憶手段に格納するとともに、[k/2]の値を前記相同判定パラメータkの新たな値に更新する素ワード更新手段と、
前記相同条件判定手段が相同条件未充足と判定した場合又は降下階数nが1以上の場合、降下階数nを1だけ増加させる降下階数変更手段と、
前記終了条件判定手段によりワード伸長検索処理が終了されるまで、前記結合候補節点設定手段、前記伸長素ワード設定手段、前記比較対象シーケンス抽出手段、前記最小編集距離演算手段、前記編集距離閾値設定手段、前記相同条件判定手段、前記終了条件判定手段、前記素ワード更新手段、及び前記降下階数変更手段によるワード伸長検索処理を反復実行する制御を行うワード伸長検索処理制御手段と、を備えたことを特徴とする請求項1に記載の相同性検索装置。
【請求項3】
前記検索対象シーケンスを構成する文字記号と同種の文字記号の文字列からなるクエリシーケンスを記憶するクエリシーケンス記憶手段と、
前記クエリシーケンスから前記クエリシーケンス内の所定の長さの部分文字列を切り出し、前記検索要求ワードとして前記検索要求ワード記憶手段に格納する検索要求ワード設定手段と、を備え、
前記検索要求ワード設定手段は、前記部分文字列の先頭位置を、前記クエリシーケンスの先頭から1文字ずつ移動させながら前記部分文字列を順次切り出し、前記検索要求ワード記憶手段に格納された前記検索要求ワードを逐次更新するものであり、
前記ワード二分木生成手段は、前記検索要求ワード記憶手段に格納された前記検索要求ワードが更新される毎に、前記ワード二分木を生成し、前記ワード二分木テーブルの更新を行うことを特徴とする請求項1乃至3のいずれか一に記載の相同性検索装置。
【請求項4】
コンピュータに読み込ませて実行させることにより、当該コンピュータを請求項1乃至3のいずれかに記載の相同性検索装置として動作させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−128672(P2012−128672A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2010−279658(P2010−279658)
【出願日】平成22年12月15日(2010.12.15)
【出願人】(899000068)学校法人早稲田大学 (602)
【出願人】(504174135)国立大学法人九州工業大学 (489)
【Fターム(参考)】