JP2005190248A - Array search system and search program - Google Patents

Array search system and search program Download PDF

Info

Publication number
JP2005190248A
JP2005190248A JP2003431970A JP2003431970A JP2005190248A JP 2005190248 A JP2005190248 A JP 2005190248A JP 2003431970 A JP2003431970 A JP 2003431970A JP 2003431970 A JP2003431970 A JP 2003431970A JP 2005190248 A JP2005190248 A JP 2005190248A
Authority
JP
Japan
Prior art keywords
array
sequence
partial sequence
appearance position
appearance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003431970A
Other languages
Japanese (ja)
Inventor
Tomoyuki Yamada
智之 山田
Shinichi Morishita
真一 森下
Koichiro Doi
晃一郎 土井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Todai TLO Ltd
Original Assignee
Todai TLO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Todai TLO Ltd filed Critical Todai TLO Ltd
Priority to JP2003431970A priority Critical patent/JP2005190248A/en
Priority to PCT/JP2004/019182 priority patent/WO2005064520A1/en
Publication of JP2005190248A publication Critical patent/JP2005190248A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids

Landscapes

  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Biophysics (AREA)
  • Medical Informatics (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To improve time computational quantity and space computational quantity at the time of searching similar parts of an array. <P>SOLUTION: The array search system is provided with: a first table for storing the appearance positions of partial strings extended from respective elements in a first array out of partial arrays constituting an array; an appearance position acquisition means for acquiring appearance positions concerned with the partial arrays of the 1st array in the first table which correspond to partial arrays extended from respective elements in a second array; a heap formation means for providing a structure based on the appearance positions of partial strings of the second array and the partial strings of the first array to a heap in accordance with differences among respective appearance positions, and when the structure having the same difference appears on the root of the formed heap by the prescribed number of times, extracting the structure and storing the information of the structure in a storage device; and a similar position specification means for specifying a position in which the first array and the second array coincide with each other by prescribed length or more from the appearance positions of the partial strings of the first array and the partial strings of the second array of the extracted structure having the same difference. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、複数の配列中、類似する配列の位置を探索する方法およびプログラムに関する。   The present invention relates to a method and a program for searching for positions of similar sequences among a plurality of sequences.

配列の探索方法においては、長い文字列からなるデータベース中から、クエリー配列に類似の文字列がある領域(類似領域)を探すこと、特にゲノム配列のような少ない種類の文字で構成される大きなデータベースに対して、クエリー配列と一致もしくは類似の文字列が存在する領域を探索する。このような手法は、クエリー配列の類似領域を高速に推定する方法は近年爆発的に増加している生物学的情報の処理方法として重要である。   In the method of searching for sequences, search a region (similar region) with a character string similar to the query sequence from a database consisting of long character strings, especially a large database consisting of a small number of characters such as genome sequences. In contrast, a region where a character string that matches or is similar to the query sequence is searched. Such a method is important as a method for processing biological information, in which a method for estimating a similar region of a query sequence at high speed has been explosively increasing in recent years.

たとえば、ゲノム配列中から遺伝子の領域を推定する方法において、もしくは大規模な文章中から文字の置換、挿入、損を許して検索する必要のあるような検索方法において重要である。
WO03/056458号公報
For example, it is important in a method for estimating a gene region from a genome sequence, or in a search method that requires a search from a large-scale sentence with substitution, insertion, or loss of characters.
WO03 / 056458 publication

たとえば、配列からクエリー配列に類似する領域を探索するアルゴリズム(以下、「配列写像アルゴリズム」とも称する。)として、動的プログラミング手法と比較して高速であるため、FastaやBlastのようなheuristicアルゴリズムが用いられている。また、250万個のヒトEST(長さ数百から1万程度)を約30億個の塩基からなるゲノム配列に写像する場合に、ヒトESTをエクソンに分割しながらゲノム配列に写像する際に、長いギャップを少数だけ挿入するようなアルゴリズムにより、高速にEST配列をアラインメントできる手法が特許文献1に開示されている。   For example, an algorithm for searching a region similar to a query sequence from a sequence (hereinafter also referred to as “sequence mapping algorithm”) is faster than a dynamic programming method, so that a heuristic algorithm such as Fasta or Blast is used. It is used. In addition, when mapping 2.5 million human ESTs (approximately several hundred to 10,000 in length) into a genome sequence consisting of about 3 billion bases, when mapping human ESTs into genome sequences while dividing them into exons, Patent Document 1 discloses a technique that can align EST sequences at high speed by an algorithm that inserts only a few long gaps.

しかしながら、これらアルゴリズムは、多くの処理時間を必要とする。また、二つの配列感の類似性を解くことのみのために設計されているため、ESTを、既知のコード化すべきゲノムに射影することができない。以下、二つの配列中の類似する部分を探索するための技術の例について説明する。   However, these algorithms require a lot of processing time. Moreover, since it is designed only for solving the similarity between two senses of sequence, EST cannot be projected onto a known genome to be encoded. Hereinafter, an example of a technique for searching for a similar portion in two sequences will be described.

[ハッシュテーブルを利用した類似位置推定方法]
クエリー配列をデータベース配列上に高速にアライメントするために、データベース配列に対して、ゲノム配列中に現れる短い配列(以降索引単語とする)をキーとするハッシュテーブルを構成して、それを用いてその所在を高速に探し出す方法がある。ここで索引単語とは、例えばデータベース配列上の全ての12merの配列でもよいし、不連続な配列であってもよい。また、例えば空白文字で囲まれた単語であってもかまわない。
[Similar location estimation method using hash table]
In order to quickly align the query sequence on the database sequence, a hash table with a short sequence (hereinafter referred to as an index word) appearing in the genome sequence as a key is constructed with respect to the database sequence, There is a way to find the location at high speed. Here, the index word may be, for example, all 12-mer sequences on the database sequence or a discontinuous sequence. Further, for example, it may be a word surrounded by blank characters.

「シングルヒット法による類似位置推定方法」
索引単語をキーとする索引が作成された上記ハッシュテーブルもしくはルックアップテーブルを用いて、クエリー配列中にある単語がハッシュテーブル中の索引単語にあるかどうか、そしてその索引単語はデータベース中どの位置にあったのかを調べることによって、クエリー配列の類似位置を推定する方法が提案されている。ここでいうシングルヒット法とは、ハッシュテーブルもしくはルックアップテーブルに対してひとつの単語について調べ、そのデータベース中での該当位置を取得し、その該当位置周辺を類似領域の候補とする手法をいう。
"Similar position estimation method by single hit method"
Using the above hash table or look-up table with the index word as a key, whether the word in the query sequence is in the index word in the hash table, and where the index word is in the database There has been proposed a method for estimating a similar position of a query sequence by examining whether or not there has been. Here, the single hit method refers to a method in which one word is checked with respect to a hash table or a lookup table, a corresponding position in the database is obtained, and the vicinity of the corresponding position is used as a candidate for a similar region.

また、N−hit法は、シングルヒット法と同様に、索引単語を用いて索引が作成された上記ハッシュテーブルもしくはルックアップテーブルを用いて、クエリー配列中の各々の単語がデータベース中のどの位置にあるのか調べることによって、クエリー配列の類似位置を推定する方法である。N−hit法においては、クエリー配列のN箇所の単語がその位置関係を保存したまま、データベース配列中に現れることを条件にして、その該当位置周辺を類似領域の候補とする。ここで、N=1の時に、N−hit法はシングルヒット法と同じになる。   Similarly to the single hit method, the N-hit method uses the hash table or lookup table in which an index is created using index words, and each word in the query sequence is located at which position in the database. This is a method for estimating a similar position of a query sequence by examining whether there is any. In the N-hit method, N words in the query sequence appear in the database sequence while preserving their positional relationships, and the vicinity of the corresponding location is taken as a candidate for a similar region. Here, when N = 1, the N-hit method is the same as the single hit method.

従来のN−hit法は、以下の手法で類似領域の候補を見出している。まず、データベース配列に対して作成されたルックアップテーブルの表を、クエリー配列の各単語に対して索引する。次いで、ルックアップテーブルから取り出されたデータベース配列中の位置から該当する単語が、クエリー配列上にあった位置を引いた値(対角位置とする)を全ての該当箇所に対して求める。それらの値全体を例えばマージソートすることによって、対角位置を昇順に並べ、同じ対角位置を与える単語を探すことによって、N−hitを見つけることができる。この手法を用いると、クエリー配列の単語に対するデータベース上の位置の候補数の合計をNとすると、時間計算量でO(NlogN)、空間計算量でO(N)必要である。   The conventional N-hit method finds candidates for similar regions by the following method. First, a table of lookup tables created for the database sequence is indexed for each word of the query sequence. Next, a value obtained by subtracting the position where the corresponding word is on the query array from the position in the database array extracted from the lookup table (diagonal position) is obtained for all the corresponding portions. N-hit can be found by arranging the diagonal positions in ascending order by, for example, merge-sorting all of these values, and searching for words that give the same diagonal position. When this method is used, if the total number of candidate positions on the database for words in the query sequence is N, O (NlogN) is required for the time calculation amount, and O (N) is required for the space calculation amount.

本発明は、時間計算量および空間計算量が改善された、高速な配列の探索システムおよびプログラムを提供することを目的とする。   It is an object of the present invention to provide a high-speed array search system and program with improved time complexity and space complexity.

本発明の目的は、第1の配列から、第2の配列と類似する位置を探索する配列探索システムであって、
配列を構成する所定の長さの部分列中、第1の配列中の各要素から延びる当該所定の長さの部分列の出現位置を格納する第1のテーブルと、
第2の配列中の各要素から延びる当該所定の長さの部分列に対応する、前記第1のテーブル中の、前記第1の配列の部分列に関する出現位置を取得する出現位置取得手段と、
前記第2の配列の部分列に関する出現位置および第1の配列の部分列に関する出現位置に基づく構造体を、前記第2の配列の部分列に関する出現位置と、第1の配列の部分列に関する出現位置との間の差異にしたがってヒープに投入することにより、ヒープを形成するヒープ形成手段であって、前記形成されたヒープの根に、前記差異が同一の構造体が所定回数表れるときに、当該構造体を取り出して、その情報を記憶装置に記憶するヒープ形成手段と、
前記取り出された、差異が同一の構造体の第1の配列の部分列に関する出現位置と、前記第2の配列の部分列に関する出現位置とから、少なくとも所定の長さ以上、第1の配列および第2の配列とが一致する位置を特定する類似位置特定手段とを備えたことを特徴とする配列探索システムにより達成される。
An object of the present invention is a sequence search system that searches a position similar to a second sequence from a first sequence,
A first table that stores the appearance positions of the substrings of a predetermined length extending from each element in the first array in the substrings of the predetermined length constituting the array;
Appearance position acquisition means for acquiring an appearance position related to the partial sequence of the first array in the first table, corresponding to the partial sequence of the predetermined length extending from each element in the second array;
A structure based on the appearance position related to the partial sequence of the second array and the appearance position related to the partial sequence of the first array is represented by the appearance position related to the partial sequence of the second array and the appearance related to the partial sequence of the first array. A heap forming means for forming a heap by throwing it into the heap according to the difference between the position and the root when the structure with the same difference appears a predetermined number of times Heap forming means for taking out the structure and storing the information in a storage device;
From the appearance position related to the partial sequence of the first array of the structure having the same difference, and the appearance position related to the partial sequence of the second array, the first array and at least a predetermined length or more This is achieved by an array search system comprising a similar position specifying means for specifying a position where the second array matches.

本発明において、出現位置取得手段は、第1のテーブル中の要素に対して配置されたポインタが指し示す値を取得し、その後、ポインタを移動させるように構成しても良い。或いは、出現位置を示す第2のテーブルを生成し、当該第2のテーブルを参照しても良い。   In the present invention, the appearance position acquisition unit may be configured to acquire a value indicated by a pointer arranged with respect to an element in the first table, and then move the pointer. Alternatively, a second table indicating the appearance position may be generated and the second table may be referred to.

たとえば、前記第2の部分列qkの第2の配列中の出現位置をquery(qk)、第1の配列中の部分列qkの出現位置をdb(qk)とするときに、前記ヒープ形成手段が、構造体として、(query(qk),db(qk))を生成するのが望ましい。   For example, when the appearance position of the second partial sequence qk in the second array is query (qk) and the appearance position of the partial sequence qk in the first array is db (qk), the heap formation means However, it is desirable to generate (query (qk), db (qk)) as a structure.

或いは、第2の配列の部分列qkの第2の配列中の出現位置をquery(qk)、第1の配列中の部分列qkの出現位置をdb(qk)とするときに、ヒープ形成手段が、構造体として、(query(qk)-db(qk))または(db(qk)-query(qk)と、前記部分列qkの第2の配列における出現位置を表わすIDとの組を生成しても良い。   Alternatively, when the appearance position in the second array of the partial sequence qk of the second array is query (qk) and the appearance position of the partial sequence qk in the first array is db (qk), heap formation means Generates a set of (query (qk) -db (qk)) or (db (qk) -query (qk) as a structure and an ID representing the appearance position in the second array of the subsequence qk You may do it.

好ましい実施態様においては、前記ヒープ形成手段が、第2の配列の部分列と、第2の配列の他の部分列との間の距離が所定の値を超えた場合には、前記他の部分列を、前記ヒープ形成処理の処理対象から除外する。これにより、処理時間をより短縮することが可能となる。   In a preferred embodiment, the heap forming means is configured to cause the other portion to be stored when a distance between the partial sequence of the second array and another partial sequence of the second array exceeds a predetermined value. The column is excluded from the processing target of the heap formation process. As a result, the processing time can be further shortened.

また、本発明の別の実施態様において、第1の配列から、第2の配列と類似する位置を探索する配列探索システムであって、
配列を構成する所定の長さの部分列中、第1の配列中の各要素から延びる当該所定の長さの部分列の出現位置を格納する第1のテーブルと、
第2の配列中の各要素から延びる当該所定の長さの部分列に対応する、前記第1のテーブル中の、前記第1の配列の部分列に関する出現位置を取得する出現位置取得手段と、
前記第2の配列の部分列に関する出現位置および第1の配列の部分列に関する出現位置に基づく第1の構造体を形成するとともに、前記第2の配列の他の部分列に関する出現位置および第1の配列の部分列に関する出現位置に基づく第2の構造体を形成し、前記第1の構造体における、前記第2の配列の部分列に関する出現位置と、第1の配列の部分列に関する出現位置との間の差異と、前記第2の構造体における前記第2の配列の部分列に関する出現位置と、第1の配列の部分列に関する出現位置との間の差異とが一致するときに、前記第1の構造体および第2の構造体を取り出して、それらの情報を記憶する比較手段と、
前記取り出された、差異が同一の構造体の第1の配列の部分列に関する出現位置と、前記第2の配列の部分列に関する出現位置とから、少なくとも所定の長さ以上、第1の配列および第2の配列とが一致する位置を特定する類似位置特定手段とを備えている。
In another embodiment of the present invention, there is provided a sequence search system for searching a position similar to the second sequence from the first sequence,
A first table that stores the appearance positions of the substrings of a predetermined length extending from each element in the first array in the substrings of the predetermined length constituting the array;
Appearance position acquisition means for acquiring an appearance position related to the partial sequence of the first array in the first table, corresponding to the partial sequence of the predetermined length extending from each element in the second array;
Forming a first structure based on an appearance position related to a partial sequence of the second array and an appearance position related to a partial sequence of the first array, and an appearance position related to another partial sequence of the second array and the first Forming a second structure based on the appearance position related to the partial sequence of the array, and the appearance position related to the partial sequence of the second array and the appearance position related to the partial sequence of the first array in the first structure When the difference between the position of occurrence of the second sequence in the second structure and the position of occurrence of the partial sequence in the second structure coincides with each other, A comparing means for taking out the first structure and the second structure and storing the information;
From the appearance position related to the partial sequence of the first array of the structure having the same difference, and the appearance position related to the partial sequence of the second array, the first array and at least a predetermined length or more Similar position specifying means for specifying the position where the second array matches is provided.

たとえば、前記第2の配列の部分列をqi、他の部分列をqjとしたときに、前記比較手段が、qi=(q1,q2,…,qQ-1)およびqj=(q2,…,qQ)として、qiに関する第1の構造体と、qjに関する第2の構造体との間で比較を実行する。   For example, when the subsequence of the second array is qi, and the other subsequence is qj, the comparison means can perform qi = (q1, q2, ..., qQ-1) and qj = (q2, ..., As qQ), a comparison is performed between the first structure for qi and the second structure for qj.

別の好ましい実施態様においては、前記第2の配列の部分列をqi、他の部分列をqjとしたときに、前記比較手段が、qi=(q1,q2,…,qQ-1)およびq2=(qi+1,…max(qi+k,qQ)として、qiに関する第1の構造体と、q2に関する第2の構造体との間で比較を実行する。   In another preferred embodiment, when the subsequence of the second sequence is qi and the other subsequence is qj, the comparison means includes qi = (q1, q2,..., QQ-1) and q2 As = (qi + 1,... max (qi + k, qQ), a comparison is performed between the first structure related to qi and the second structure related to q2.

また、本発明の目的は第1の配列から、第2の配列と類似する位置を探索するために、配列を構成する所定の長さの部分列中、第1の配列中の各要素から延びる当該所定の長さの部分列の出現位置を格納する第1のテーブルを備えたコンピュータを、
前記第1のテーブルに基づいて、第2の配列中の各要素から延びる当該所定の長さの部分列に対応する、前記第1のテーブル中の、前記第1の配列の部分列に関する出現位置を取得する出現位置取得手段と、
前記第2の配列の部分列に関する出現位置および第1の配列の部分列に関する出現位置に基づく構造体を、前記第2の配列の部分列に関する出現位置と、第1の配列の部分列に関する出現位置との間の差異にしたがってヒープに投入することにより、ヒープを形成するヒープ形成手段であって、前記形成されたヒープの根に、前記差異が同一の構造体が所定回数表れるときに、当該構造体を取り出して、その情報を記憶装置に記憶するヒープ形成手段と、
前記取り出された、差異が同一の構造体の第1の配列の部分列に関する出現位置と、前記第2の配列の部分列に関する出現位置とから、少なくとも所定の長さ以上、第1の配列および第2の配列とが一致する位置を特定する類似位置特定手段として機能させることを特徴とするコンピュータにより読み取り可能な配列探索プログラムによっても達成される。
Further, the object of the present invention is to extend from each element in the first array in a substring of a predetermined length constituting the array in order to search for a position similar to the second array from the first array. A computer comprising a first table for storing the appearance positions of the subsequences of the predetermined length,
Based on the first table, the appearance position for the partial sequence of the first array in the first table corresponding to the partial sequence of the predetermined length extending from each element in the second array Appearance position acquisition means for acquiring
A structure based on the appearance position related to the partial sequence of the second array and the appearance position related to the partial sequence of the first array is represented by the appearance position related to the partial sequence of the second array and the appearance related to the partial sequence of the first array. A heap forming means for forming a heap by throwing it into the heap according to the difference between the position and the root when the structure with the same difference appears a predetermined number of times Heap forming means for taking out the structure and storing the information in a storage device;
From the appearance position related to the partial sequence of the first array of the structure having the same difference, and the appearance position related to the partial sequence of the second array, the first array and at least a predetermined length or more It is also achieved by a computer-readable sequence search program characterized by causing it to function as a similar position specifying means for specifying a position where the second sequence matches.

さらに、本発明の目的は、第1の配列から、第2の配列と類似する位置を探索するために、配列を構成する所定の長さの部分列中、第1の配列中の各要素から延びる当該所定の長さの部分列の出現位置を格納する第1のテーブルを備えたコンピュータを、
第2の配列中の各要素から延びる当該所定の長さの部分列に対応する、前記第1のテーブル中の、前記第1の配列の部分列に関する出現位置を取得する出現位置取得手段と、
前記第2の配列の部分列に関する出現位置および第1の配列の部分列に関する出現位置に基づく第1の構造体を形成するとともに、前記第2の配列の他の部分列に関する出現位置および第1の配列の部分列に関する出現位置に基づく第2の構造体を形成し、前記第1の構造体における、前記第2の配列の部分列に関する出現位置と、第1の配列の部分列に関する出現位置との間の差異と、前記第2の構造体における前記第2の配列の部分列に関する出現位置と、第1の配列の部分列に関する出現位置との間の差異とが一致するときに、前記第1の構造体および第2の構造体を取り出して、それらの情報を記憶する比較手段と、
前記取り出された、差異が同一の構造体の第1の配列の部分列に関する出現位置と、前記第2の配列の部分列に関する出現位置とから、少なくとも所定の長さ以上、第1の配列および第2の配列とが一致する位置を特定する類似位置特定手段として機能させることを特徴とするコンピュータにより読み取り可能な配列探索プログラムによっても達成される。
Furthermore, an object of the present invention is to search from each element in the first array in a substring of a predetermined length constituting the array in order to search for a position similar to the second array from the first array. A computer comprising a first table for storing the appearance positions of the substrings of the predetermined length extending;
Appearance position acquisition means for acquiring an appearance position related to the partial sequence of the first array in the first table, corresponding to the partial sequence of the predetermined length extending from each element in the second array;
Forming a first structure based on an appearance position related to a partial sequence of the second array and an appearance position related to a partial sequence of the first array, and an appearance position related to another partial sequence of the second array and the first Forming a second structure based on the appearance position related to the partial sequence of the array, and the appearance position related to the partial sequence of the second array and the appearance position related to the partial sequence of the first array in the first structure When the difference between the position of occurrence of the second sequence in the second structure and the position of occurrence of the partial sequence in the second structure coincides with each other, A comparing means for taking out the first structure and the second structure and storing the information;
From the appearance position related to the partial sequence of the first array of the structure having the same difference, and the appearance position related to the partial sequence of the second array, the first array and at least a predetermined length or more It is also achieved by a computer-readable sequence search program characterized by causing it to function as a similar position specifying means for specifying a position where the second sequence matches.

以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本発明の実施の形態にかかる配列探索システムの概略を示すブロックダイヤグラムである。本実施の形態において、配列探索システムは、ゲノム配列中、EST配列に類似する位置を推定する。図1に示すように、配列探索システム10は、ゲノム配列に基づく第1のルックアップテーブル(LUT)を生成するゲノム配列LUT生成部12と、EST配列に関する第2のLUTを生成するEST配列LUT生成部14と、ヒープを構築するヒープ形成処理部16と、後述する値の対(位置の対)に基づいて類似する配列の位置を抽出するNhit抽出部18と、LUTや処理結果を記憶する記憶装置20とを有している。記憶装置20は、RAMなどのメモリやハードディスク装置などの外部記憶装置を含む。配列探索システムは、コンピュータにより実現でき、配列探索プログラムをコンピュータにインストールし、これを起動することにより、コンピュータが、ゲノム配列LUT生成部、EST配列生成部、ヒープ形成処理部およびNhit抽出部として機能する。   Embodiments of the present invention will be described below with reference to the accompanying drawings. FIG. 1 is a block diagram showing an outline of a sequence search system according to an embodiment of the present invention. In the present embodiment, the sequence search system estimates a position similar to the EST sequence in the genome sequence. As shown in FIG. 1, the sequence search system 10 includes a genome sequence LUT generation unit 12 that generates a first lookup table (LUT) based on a genome sequence, and an EST array LUT that generates a second LUT related to the EST sequence. A generation unit 14, a heap formation processing unit 16 that constructs a heap, a Nhit extraction unit 18 that extracts a position of a similar array based on a value pair (position pair) described later, and a LUT and a processing result are stored. And a storage device 20. The storage device 20 includes a memory such as a RAM and an external storage device such as a hard disk device. The sequence search system can be realized by a computer, and the computer functions as a genome sequence LUT generation unit, an EST sequence generation unit, a heap formation processing unit, and an Nhite extraction unit by installing and starting a sequence search program in the computer To do.

なお、本実施の形態においては説明を容易にするために、EST配列LUT生成部14を設け、EST配列LUT生成部14が第2のLUTを生成しているが、これは必須のものではなく、後述するように、第1のLUTのみを生成し、第1のLUTの要素に対するポインタを配置することで、第2のLUTの要素に相当する値を適切に取得することはできる。   In the present embodiment, for ease of explanation, the EST array LUT generation unit 14 is provided and the EST array LUT generation unit 14 generates the second LUT. However, this is not essential. As will be described later, by generating only the first LUT and placing pointers to the elements of the first LUT, values corresponding to the elements of the second LUT can be appropriately acquired.

本発明の第1の実施の形態においては、クエリー配列(本実施の形態ではEST配列)の長さをQとすると、時間計算量O(NlogQ)、空間計算量O(Q)となる。また、後述する第2の実施の形態においては、時間計算量O(N^2)、空間計算量O(1)となる。第1の実施の形態および第2の実施の形態とも、N−hitの条件(クエリー配列のN個の単語とデータベース配列のN個の単語が位置関係を保存して発見される条件)を満たす対角位置を抽出することを目的としている。   In the first embodiment of the present invention, if the length of the query sequence (EST sequence in this embodiment) is Q, the time calculation amount O (NlogQ) and the space calculation amount O (Q) are obtained. In the second embodiment to be described later, the time calculation amount O (N ^ 2) and the space calculation amount O (1) are used. Both the first embodiment and the second embodiment satisfy the N-hit condition (the condition that N words in the query sequence and N words in the database sequence are found by storing the positional relationship). The objective is to extract diagonal positions.

以下、第1の実施の形態にかかる配列探索システム10にて実行される処理について説明する。ゲノム配列LUT生成部12は、記憶装置に記憶されたゲノム配列のデータを読み出し、第1のLUTを生成する。第1のLUTは、所定の長さのN−mer配列のそれぞれが、ゲノム配列中のどの位置に出現するかを示す。つまり、各N−mer配列の出現位置が格納される。図2(a)はゲノム配列の例を示す図、図3は、図2(a)に示すゲノム配列に基づいて、2−mer配列の出現位置が格納された第1のLUTの例を示す。   Hereinafter, the process performed in the sequence search system 10 concerning 1st Embodiment is demonstrated. The genome sequence LUT generation unit 12 reads the genome sequence data stored in the storage device, and generates a first LUT. The first LUT indicates at which position in the genome sequence each N-mer sequence having a predetermined length appears. That is, the appearance position of each N-mer array is stored. FIG. 2A shows an example of a genome sequence. FIG. 3 shows an example of a first LUT in which the appearance positions of 2-mer sequences are stored based on the genome sequence shown in FIG. .

次いで、EST配列LUT生成部14は、第1のLUTを参照して、EST配列を構成するN−mer配列のそれぞれに、当該N−mer配列が出現するゲノム配列中の位置を格納したような第2のLUTを生成する。ここで、EST配列を構成するN−mer配列は、ESTの各要素を先頭としてN個の要素からなる。したがって、第2のLUTにおいては、(N−Q+1)個の配列のそれぞれについて、当該配列について格納されていた第1のLUTの値が収容される。図4は、図2(b)に示すEST配列を構成する2−mer配列のそれぞれが、図2(a)のゲノム配列中に出現する位置を示したLUTの例を示す。図4において、先頭の行(符号401参照)には、EST配列中の先頭の2−mer配列「GC」が、ゲノム配列において出現する位置「8、23、25,29」が示される。次の行(符号402参照)には、EST配列中の次の2−mer配列「CA」が、ゲノム配列において出現する位置「26」が示される。なお、処理の便宜のため、それぞれの値の組の末尾には、別の値「φ」が格納される。   Next, the EST sequence LUT generation unit 14 refers to the first LUT and stores the position in the genome sequence where the N-mer sequence appears in each N-mer sequence constituting the EST sequence. A second LUT is generated. Here, the N-mer array constituting the EST array is composed of N elements with each element of the EST as the head. Therefore, in the second LUT, for each of the (N−Q + 1) arrays, the value of the first LUT stored for the array is accommodated. FIG. 4 shows an example of an LUT in which positions of the 2-mer sequences constituting the EST sequence shown in FIG. 2B appear in the genome sequence shown in FIG. 2A. In FIG. 4, the first row (see reference numeral 401) shows the positions “8, 23, 25, 29” where the first 2-mer sequence “GC” in the EST sequence appears in the genome sequence. The next row (see reference numeral 402) shows a position “26” where the next 2-mer sequence “CA” in the EST sequence appears in the genome sequence. For convenience of processing, another value “φ” is stored at the end of each set of values.

ルックアップテーブル(LUT)には、キーとなる配列が出現する位置を保存している。第1の実施の形態にかかる手法では、LUT中の配列の出現位置が位置によってソートされていることが望ましい。これは、第1の実施の形態においては、各配列について出現位置順にLUTから取り出すためである。このようなLUTは、ゲノム配列LUT生成部12やEST配列LUT生成部14が、記憶装置に記憶されたデータに基づいてLUTを生成する際に、出現位置の小さなものから順に作成してゆくことで実現できる。   A look-up table (LUT) stores a position where a key array appears. In the method according to the first embodiment, it is desirable that the appearance positions of the arrays in the LUT are sorted by position. This is because, in the first embodiment, each array is extracted from the LUT in the order of appearance position. Such LUTs are created in order from the smallest appearance position when the genome sequence LUT generation unit 12 or the EST sequence LUT generation unit 14 generates an LUT based on the data stored in the storage device. Can be realized.

以下の説明において、LUTのキーとなる2−merの配列を、複数の文字からなる単語と考えることもできるため、「単語」とも称する。EST配列(以下、機能面から「クエリー配列」とも称する。)において、類似位置推定に使用する単語をq1,q2,q3,....,qQとする。また、単語qkが出現するデータベース上の位置は、長さn1のリストdb(qk)で与えられるものとする。また、単語qkが出現するクエリー配列上の位置はquery(qk)で与えられるものとする。リストdb(qk)の各要素db(qk)1,db(qk)2,...,db(qk)n1は出現位置順にソートされている。   In the following description, the 2-mer array that is the key of the LUT can also be considered as a word composed of a plurality of characters, and is also referred to as a “word”. In the EST sequence (hereinafter also referred to as “query sequence” in terms of function), the words used for similarity position estimation are q1, q2, q3,. The position on the database where the word qk appears is given by a list db (qk) of length n1. The position on the query sequence where the word qk appears is given by query (qk). Each element db (qk) 1, db (qk) 2,..., Db (qk) n1 of the list db (qk) is sorted in the order of appearance.

次に、ヒープ形成処理部16における処理について、図5のフローチャートを参照して説明する。ヒープには、q1,..,qQの各単語の最初の出現位置とクエリー配列での出現位置との対角位置〔db(qk)1
- query(qk)〕、および、単語qkのクエリー配列上の位置を特定するためのID〔k、qk、或いは、query(qk)〕が対となった構造体が格納される(ステップ501)。或いは、ヒープには、単語qkのデータベース上の出現位置db(qk)およびクエリー配列上の出現位置query(qk)が対となった構造体が格納されてもよい(ステップ501)。後述する具体例では、後者にしたがって形成された構造体が利用される。
Next, processing in the heap formation processing unit 16 will be described with reference to the flowchart of FIG. In the heap, the diagonal position of the first occurrence position of each word of q1, .., qQ and the occurrence position in the query array [db (qk) 1
-query (qk)] and a structure paired with ID [k, qk, or query (qk)] for specifying the position of the word qk on the query array is stored (step 501). . Alternatively, a structure in which the appearance position db (qk) on the database of the word qk and the appearance position query (qk) on the query array are paired may be stored in the heap (step 501). In a specific example described later, a structure formed according to the latter is used.

ここで、これらの構造体は、対角位置とクエリー単語の出現位置の大小関係によって構築され(つまり、対角位置の大小関係を優先し、対角位置が等しい場合は、クエリー単語の出現位置の大小関係を用いる。)、現在ヒープ中にある最小の対角位置を与える構造体から順に取り出すことができる。   Here, these structures are constructed by the magnitude relationship between the diagonal position and the appearance position of the query word (that is, when the diagonal position is prioritized and the diagonal position is equal, the appearance position of the query word is ), And the structure that gives the smallest diagonal position in the current heap can be extracted sequentially.

次いで、ヒープ形成処理部16は、ヒープ中の最小の対角位置を与える構造体を取得し
ステップ502)、その構造体からクエリー配列上の位置を特定するためのID(k)を取り出し(ステップ503)、そのIDが示すリストdb(qk)から次の要素を新しく取得して、構造体を作成し、ヒープに入れる(ステップ504)。リストdb(qk)から取得する要素がなくなったら、ヒープ形成処理部16は、ヒープには何もいれない。ヒープ形成処理部16は、取得した構造体を、直前までに取得した構造体と比較して(ステップ505)、連続してN回以上の等しい、若しくは、幅k以下の距離にある対角位置を与える場合、対角位置とクエリー配列上の位置関係を出力する(ステップ506)。
Next, the heap formation processing unit 16 obtains a structure that gives the minimum diagonal position in the heap (step 502), and extracts ID (k) for specifying the position on the query array from the structure (step 502). 503), the next element is newly acquired from the list db (qk) indicated by the ID, a structure is created, and it is put in the heap (step 504). When there are no more elements to be acquired from the list db (qk), the heap formation processing unit 16 does not need anything in the heap. The heap formation processing unit 16 compares the acquired structure with the structure acquired immediately before (step 505), and is diagonally located at a distance not less than N times continuously or equal to or less than the width k. Is given, the diagonal position and the positional relationship on the query sequence are output (step 506).

ヒープ形成処理部16は、ヒープに構造体がなくなるまで、ステップ502〜507を繰り返す(ステップ507参照)。このようにすると、N-hitの条件を満たす対角位置を抽出することができる。   The heap formation processing unit 16 repeats steps 502 to 507 until there is no structure in the heap (see step 507). In this way, diagonal positions that satisfy the N-hit condition can be extracted.

このように、第1の実施の形態では、ヒープを利用して、ヒープのルートに(y−x)が最小となるような値の組が位置するようにしておく。そして、このルートの構造体を順に取り出すことで、(y−x)の値が昇順となるような構造体群を取得することができる。ヒープから、(y−x)の値が等しいような構造体がN回取り出すことができれば、それがN-hitとなる。   As described above, in the first embodiment, a heap is used so that a set of values that minimizes (y−x) is located in the root of the heap. Then, by extracting the structures of this route in order, it is possible to acquire a structure group in which the value of (y−x) is in ascending order. If a structure having the same value of (y−x) can be extracted N times from the heap, it becomes N-hit.

図2〜図4に示したゲノム配列およびEST配列に関して、ヒープ形成処理部16の処理をより具体的に説明する。図6に示すように、まず、先頭の単語「q1=GC」のクエリー配列(つまりEST配列)上の出現位置「query(q1)=1」と、当該単語のデータベース上(つまりゲノム配列上)の出現位置「db(q1)=8」との対(1、8)がヒープに入れられる。なお、この対の構造体(x,y)に関して、ヒープは「y−x」の大小関係で構成される。   The processing of the heap formation processing unit 16 will be described more specifically with respect to the genome sequence and the EST sequence shown in FIGS. As shown in FIG. 6, first, the appearance position “query (q1) = 1” on the query sequence (that is, EST sequence) of the first word “q1 = GC” and the word database (that is, on the genome sequence). The pair (1, 8) with the appearance position “db (q1) = 8” is placed in the heap. It should be noted that the heap is configured with a size relationship of “y−x” with respect to the pair of structures (x, y).

次いで、図7に示すように、次の単語「q2=AG」のクエリー配列上の出現位置「query(q2)=2」と、当該単語のデータベース上の出現位置「db(q2)=26」との対の構造体(2,26)がヒープに入れられる。ここでは上記「y−x」の大小関係が考慮される。このように、図8〜図10に示すように、クエリー配列の出現位置(を示す値)が進むように、それぞれの単語q3〜q5の、クエリー配列上の出現位置(「3」〜「5」)およびデータベース上の出現位置(それぞれ、「7」、「6」、「2」)の対の構造体がヒープに入れられる。   Next, as shown in FIG. 7, the appearance position “query (q2) = 2” on the query sequence of the next word “q2 = AG” and the appearance position “db (q2) = 26” on the database of the word. The paired structure (2,26) is placed in the heap. Here, the magnitude relationship of “y−x” is considered. In this way, as shown in FIGS. 8 to 10, the appearance positions (“3” to “5” of the respective words q3 to q5 on the query array so that the appearance positions (values indicating) of the query array advance. )) And appearance structures on the database (respectively “7”, “6”, “2”) are put into the heap.

全ての単語qk(その出現位置「query(qk)」)について、対の構造体をヒープに入れた状態を図11に示す。この状態において、ヒープ中の最小の構造体(つまりヒープにおいてルートに位置する構造体(11,2)が取り出され、記憶装置20中に記憶される。図12は、ヒープにおいて構造体(11,2)が取り出された状態を示す。   FIG. 11 shows a state in which pairs of structures are placed in the heap for all the words qk (its appearance position “query (qk)”). In this state, the smallest structure in the heap (that is, the structure (11, 2) located at the root in the heap is taken out and stored in the storage device 20. FIG. 2) shows the state of being taken out.

構造体が取り出されると、当該取り出された構造体に対応する単語の、次のデータベース上の出現位置「db(qk)=14」が取得されて、対の構造体(11,14)がヒープに入れられる(図13参照)。   When the structure is extracted, the appearance position “db (qk) = 14” on the next database of the word corresponding to the extracted structure is acquired, and the paired structures (11, 14) are heaped. (See FIG. 13).

これにより、「y−x」が最小となる対の構造体(8,4)がヒープから取り出され、記憶装置20中に記憶される。図14は、ヒープにおいて構造体(8,4)が取り出された状態を示す図である。次いで、当該取り出された構造体に対応する単語の、次のデータベース上の出現位置「db(qk)=24」が取得されて、対の構造体(8,24)がヒープに入れられる(図15参照)。   As a result, the pair of structures (8, 4) having the smallest “y-x” is extracted from the heap and stored in the storage device 20. FIG. 14 is a diagram illustrating a state in which the structure (8, 4) is extracted from the heap. Next, the appearance position “db (qk) = 24” on the next database of the word corresponding to the extracted structure is acquired, and the pair of structures (8, 24) is put in the heap (FIG. 15).

ここでも、「y−x」が最小となる対の構造体(9,5)がヒープから取り出され、記憶装置20中に記憶される。図16は、ヒープにおいて構造体(9,5)が取り出された状態を示す図である。なお、取り出された構造体に対応する単語の次のデータベース上の出現位置は「φ」であるため、「query(qk)=9」に関する処理は終了する。そこで、次の単語(つまり、「query(qk)=10」)について、構造体(10,6)が取り出されて記憶装置に記憶され(図17参照)、さらに、次の構造体(10,17)を形成してヒープに入れられる(図18参照)。   Again, the pair of structures (9, 5) that minimizes “y−x” are taken out of the heap and stored in the storage device 20. FIG. 16 is a diagram illustrating a state in which the structure (9, 5) is extracted from the heap. Since the next occurrence position of the word corresponding to the extracted structure on the database is “φ”, the processing related to “query (qk) = 9” ends. Therefore, for the next word (that is, “query (qk) = 10”), the structure (10, 6) is taken out and stored in the storage device (see FIG. 17). 17) is formed and placed in the heap (see FIG. 18).

このような構造体のヒープへの投入、所定の条件の下でのヒープの取り出し/記憶を繰り返すことにより、取り出された順で、図19(a)に示すような構造体の列を作ることができる。これら構造体の「y−x」は、図19(b)に示すように、ソートされている。したがって、N−hit算出部18は、連続で同じ値が並んでいるものとN−hitとして取り出す。取り出された構造体の情報(位置情報など)は、記憶装置20に記憶される。図20(a)は、取り出された構造体の値「y−x」を示し、図20(b)は、図20(a)の値に対応する構造体を示す。   By repeatedly putting such structures into the heap and taking out / storing the heap under a predetermined condition, a sequence of structures as shown in FIG. Can do. “Yx” of these structures are sorted as shown in FIG. Therefore, the N-hit calculating unit 18 takes out as N-hit that the same value is continuously arranged. Information of the extracted structure (position information and the like) is stored in the storage device 20. FIG. 20A shows the value “y−x” of the extracted structure, and FIG. 20B shows the structure corresponding to the value of FIG.

図21は、N−hit算出部18により取り出された構造体に基づいて、ゲノム配列において、EST配列と類似する部分が見出された状態を示す図である。たとえば、図20(b)に示す「y−x=−4」の構造体の組(8,4)、(9,5)および(10,6)から、クエリー配列(つまりEST配列)の「8」の位置から「10」の位置までの要素(この例では2−mer配列)と、データベース上の配列(つまりゲノム配列)の「4」の位置から6の位置までの要素とが一致することが理解できる(符号2101、2102参照)。なお、図2等で示した例において、ゲノム配列の位置は先頭で「0」をとり、EST配列の位置は先頭で「1」をとっている。   FIG. 21 is a diagram showing a state in which a portion similar to the EST sequence is found in the genome sequence based on the structure extracted by the N-hit calculating unit 18. For example, from the set of structures (8, 4), (9, 5) and (10, 6) of “yx = −4” shown in FIG. 20B, the query sequence (ie, EST sequence) “ The elements from the position “8” to the position “10” (in this example, the 2-mer array) and the elements from the position “4” to the position 6 in the sequence (that is, the genome sequence) on the database match. (See reference numerals 2101 and 2102). In the example shown in FIG. 2 and the like, the position of the genome sequence takes “0” at the beginning, and the position of the EST sequence takes “1” at the beginning.

また、図20(b)に示す「y−x=7」の構造体の組(1,8)、(6,13)、(10,17)および(11,18)から、クエリー配列の「1」の位置、「6」の位置、「10」の位置および「11」の位置の要素と、データベース上の配列の「8」の位置、「13」の位置、「17」の位置および「18」の位置の要素とが一致することが理解できる(符号2103、2104参照)。他の部分についても同様に、それぞれの配列において類似する要素をもつ位置を特定することが可能である。   Further, from the set of structures (1, 8), (6, 13), (10, 17) and (11, 18) of “yx = 7” shown in FIG. 1 ”position,“ 6 ”position,“ 10 ”position and“ 11 ”position elements, and“ 8 ”position,“ 13 ”position,“ 17 ”position and“ It can be seen that the element at the position 18 ”matches (see reference numerals 2103 and 2104). Similarly, for other portions, it is possible to specify a position having a similar element in each array.

次に、本発明の第2の実施の形態について説明する。図1ではヒープを形成しているが、第2の実施の形態ではヒープを形成せず、対角位置を逐一比較している。第2の実施の形態にかかる配列探索システムでは、図1のヒープ形成処理部の代わりに、比較処理部が配置される。   Next, a second embodiment of the present invention will be described. Although a heap is formed in FIG. 1, the heap is not formed in the second embodiment, and the diagonal positions are compared one by one. In the array search system according to the second embodiment, a comparison processing unit is arranged instead of the heap formation processing unit of FIG.

比較処理部では、以下の処理が実行される。図22は本実施の形態にかかる比較処理部で実行される処理を示すフローチャートである。   In the comparison processing unit, the following processing is executed. FIG. 22 is a flowchart showing processing executed by the comparison processing unit according to this embodiment.

比較処理部は、単語qi = (q1,...,qQ-1)の各々、および、単語qj = (q2,...,qQ)の各々について、qiとqjの与える対角位置を比較して、等しい対角位置を与える組を得る(ステップ2201)。
db(qi)1 - query(qi),db(qi)2 - query(qi), ... , db(qi)x - query(qi)
db(qj)1 - query(qj),db(qj)2 - query(qj), ... , db(qj)y - query(qj)
つまり、上記のようなリストを、db(q1)1-query(q1)およびdb(q2)1-query(q2)の組から順に比較し、小さいほうを大きいほうより大きくなるまで進めることを繰り返し、その過程で等しい対角位置を与える組を得る。
The comparison processing unit compares the diagonal positions given by qi and qj for each word qi = (q1, ..., qQ-1) and each word qj = (q2, ..., qQ) Thus, a set giving equal diagonal positions is obtained (step 2201).
db (qi) 1-query (qi), db (qi) 2-query (qi), ..., db (qi) x-query (qi)
db (qj) 1-query (qj), db (qj) 2-query (qj), ..., db (qj) y-query (qj)
In other words, the above list is compared in order from the pair of db (q1) 1-query (q1) and db (q2) 1-query (q2), and the smaller one is repeated until it becomes larger. In the process, a pair giving equal diagonal positions is obtained.

等しい対角位置を与える組を発見した場合、比較処理部は、その組を記憶装置に記憶するとともに、単語qi側で、その対角位置を与えるデータベース上の位置を重複して発見しないために、リストから除外する(ステップ2202)。或いは、ステップ2201を繰り返す際に、等しい対角位置を与える組を無視する。   When a pair that gives the same diagonal position is found, the comparison processing unit stores the pair in the storage device, and on the word qi side, in order not to find a duplicate position on the database that gives the diagonal position And excluded from the list (step 2202). Alternatively, when step 2201 is repeated, the set giving equal diagonal positions is ignored.

リストから除外されたものを除く全ての組について処理が終了すると(ステップ2203でイエス(Yes))、比較処理部は、記憶装置に記憶された等しい対角位置を与える組を取得した後、対角位置とクエリー配列での出現位置の大小関係でソートし(ステップ2204)、連続してN回以上の、若しくは幅k以下の距離にある対角位置を与える場合、対角位置とクエリー配列上の位置関係を出力する(ステップ2205)。このような処理によっても、N-hitの条件を満たす対角位置を抽出することができる。   When the processing is completed for all pairs except those excluded from the list (Yes in Step 2203), the comparison processing unit obtains a pair that gives the same diagonal position stored in the storage device, Sorting by the magnitude relationship between the corner position and the appearance position in the query sequence (step 2204), and in the case of giving diagonal positions at a distance of N times or more or width k or less in succession, Is output (step 2205). Also by such processing, diagonal positions that satisfy the N-hit condition can be extracted.

図2〜図4に示したゲノム配列およびEST配列に関して、比較処理部の処理をより具体的に説明する。まず、図23に示すように、db(q1)1-query(q1)と、db(q2)1-query(q2)とを比較する。上記例では、先頭の単語の「8−1」と次の単語の「26−2」とが比較される。ここでは、「26−2>8−1」のため、単語q1のデータベース上の出現位置が進められ、db(q1)2-query(q1)と、db(q2)1-query(q2)とが比較される(図24参照)。ここでも、「26−2>23−1」であるため、さらに単語q1のデータベース上の出現位置が進められ、db(q1)3-query(q1)と、db(q2)1-query(q2)とが比較される(図25参照)。ここで、「26−2=25−1」となるため、(query(qk),db(qk)の組(2,26)および(1,25)が、それぞれ記憶装置20に記憶される。引き続く比較において、(query(q2),db(q2)2)=(2,φ)であるため、この組の処理は終了する。   The processing of the comparison processing unit will be described more specifically with respect to the genome sequence and the EST sequence shown in FIGS. First, as shown in FIG. 23, db (q1) 1-query (q1) is compared with db (q2) 1-query (q2). In the above example, the first word “8-1” is compared with the next word “26-2”. Here, since “26-2> 8-1”, the appearance position of the word q1 in the database is advanced, and db (q1) 2-query (q1), db (q2) 1-query (q2), and Are compared (see FIG. 24). Again, since “26-2> 23-1”, the appearance position of the word q1 on the database is further advanced, and db (q1) 3-query (q1) and db (q2) 1-query (q2 ) Is compared (see FIG. 25). Here, since “26-2 = 25-1”, the pairs (2, 26) and (1, 25) of (query (qk), db (qk) are stored in the storage device 20, respectively. In the subsequent comparison, since (query (q2), db (q2) 2) = (2, φ), the processing of this set ends.

単語q2に関する処理は終了したため、次に、単語q1および単語q3に関して処理が進められる。ここでは、db(q1)1-query(q1)と、db(q3)1-query(q3)とが比較される(図26参照)。「7−3<8−1」であるため、db(q3)が進められて、db(q1)1-query(q1)と、db(q3)2-query(q3)とが比較される(図27参照)。ここでは、「16−3>8−1」であるため、db(q1)が進められる。このような処理を必要な(qi,qj)の組について繰り返し、db(qi)-query(qi)とdb(qj)-query(qj)との差が同一となるような、(query(qi),db(qi))よび(query(qj),db(qj))の組を記憶装置に記憶しておく。   Since the processing related to the word q2 has been completed, the processing is next advanced regarding the word q1 and the word q3. Here, db (q1) 1-query (q1) and db (q3) 1-query (q3) are compared (see FIG. 26). Since “7-3 <8-1”, db (q3) is advanced, and db (q1) 1-query (q1) is compared with db (q3) 2-query (q3) ( (See FIG. 27). Here, since “16-3> 8-1”, db (q1) is advanced. This process is repeated for the necessary (qi, qj) pairs, and the difference between db (qi) -query (qi) and db (qj) -query (qj) is the same (query (qi ), db (qi)) and (query (qj), db (qj)) are stored in the storage device.

その後、比較処理部は、抽出した値の組を、db(qk)-query(qk)の値でソートする(ステップ2206)。この値が同じ場合には、query(qk)の値に従う。つまり、昇順のソートであれば、query(qk)の値が小さいほうが、先頭に近い位置に配置される。これにより、図19(a)と同様の結果を得ることができる。   Thereafter, the comparison processing unit sorts the extracted value pairs by the value of db (qk) -query (qk) (step 2206). If this value is the same, it follows the value of query (qk). In other words, if the sort is in ascending order, the smaller the value of query (qk), the closer to the top. Thereby, the same result as that in FIG. 19A can be obtained.

本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。   The present invention is not limited to the above embodiments, and various modifications can be made within the scope of the invention described in the claims, and these are also included in the scope of the present invention. Needless to say.

たとえば、前記実施の形態においては、ゲノム配列生成部12が、第1のLUTを生成し、EST配列LUT生成部14が、第2のLUTを生成しているが、このような構成をとらずとも本発明を実現することができる。他の例においては、ゲノム配列生成部12は、第1のLUTを生成する。その一方、第2のLUTは生成されず、したがって、EST配列LUT生成部14は存在しない。その代わりに、第1のLUTへのポインタを生成してポインタを制御し、db(qk)の値を第1のLUTから取り出すことができるようにするポインタ制御部が設けられれば良い。この構成では、ポインタは、第1のLUTにおいて、クエリー配列の部分列qkと同じ値の部分列に設けられていれば良い。たとえば、上述した例では、第1のLUTにおいて、「GC」、「CA」、「AG」、「GA」、「AT」、「TA」、「AC」、「CG」および「GG」についてポインタを配置しておけばよい。初期的には、ポインタは、第1のLUTにおける先頭の値に位置する。   For example, in the above embodiment, the genome sequence generation unit 12 generates the first LUT and the EST sequence LUT generation unit 14 generates the second LUT. Both can implement the present invention. In another example, the genome sequence generation unit 12 generates a first LUT. On the other hand, the second LUT is not generated, and therefore the EST array LUT generation unit 14 does not exist. Instead, a pointer control unit may be provided that generates a pointer to the first LUT, controls the pointer, and retrieves the value of db (qk) from the first LUT. In this configuration, the pointer only needs to be provided in the partial column having the same value as the partial column qk of the query array in the first LUT. For example, in the above-described example, pointers for “GC”, “CA”, “AG”, “GA”, “AT”, “TA”, “AC”, “CG”, and “GG” in the first LUT. Should be placed. Initially, the pointer is located at the first value in the first LUT.

たとえば、第1の実施の形態にかかる処理において、ヒープ形成部16が、DB20中に記憶されたクエリー配列の所定の部分列qkを参照し、第1のLUT中、部分列qkに一致する値に関するポインタを参照して、db(qk)を特定することができる。これにより、(query(qk),db(qk))を得ることができる。値を得た後、ポインタ制御部が、参照されたポインタを一つ進めればよい。   For example, in the processing according to the first embodiment, the heap forming unit 16 refers to a predetermined partial sequence qk of the query sequence stored in the DB 20 and matches the partial sequence qk in the first LUT. Db (qk) can be specified by referring to the pointer. As a result, (query (qk), db (qk)) can be obtained. After obtaining the value, the pointer control unit may advance the referenced pointer by one.

また、第1の実施の形態のステップのステップ502以降において、抽出して連続してN回近い対角位置を与える場合を調べる際に、クエリー配列上での単語の距離が指定の距離よりも遠い場合を除外することで、おこる確率が極めて低い2hitを検出しないことが可能である。   In addition, in step 502 and subsequent steps of the first embodiment, when examining the case where diagonal positions are extracted and given N times consecutively, the word distance on the query sequence is larger than the specified distance. By excluding far-off cases, it is possible not to detect 2hit with a very low probability of occurring.

また、第2の実施の形態において、qi=(q1,...,qQ-1),qj=(q2,...,qQ)としてqiおよびqjに関する逐一比較を実行したが、おこる確率が極めて低い2hitを検出しないために、qi=(q1,...,qQ-1),q2=(qi+1,...,max(qi+k,qQ))として、qiおよびq2に関する逐一比較を実行しても良い。   In the second embodiment, qi = (q1,..., QQ-1), qj = (q2,. In order not to detect extremely low 2hit, qi = (q1, ..., qQ-1), q2 = (qi + 1, ..., max (qi + k, qQ)) A comparison may be performed.

さらに、上記実施の形態によれば、N-hitによってアライメント候補地点を推定することができるが、クエリー配列とデータベース配列のすべてのN-hitを出力すると、N-hitが存在しない領域がクエリー配列中に存在することがわかる。これらは、クエリー配列とデータベース配列には、相同領域がないことを示している。クエリー配列中にそのようなN-hitが存在しない領域が一定以上存在する場合に、相同領域がないものとして詳細なアライメントをする必要はなく、アライメントプログラムにおいて、このような条件分岐によって、アライメントの枝かりを行うことで効率化を図ることが可能である。   Furthermore, according to the above embodiment, the alignment candidate point can be estimated by N-hit, but if all N-hit of the query sequence and the database sequence are output, the region where N-hit does not exist is the query sequence. You can see that it exists inside. These indicate that there is no homology region between the query sequence and the database sequence. When there is more than a certain region where such N-hit does not exist in the query sequence, it is not necessary to perform detailed alignment as if there is no homologous region. It is possible to improve efficiency by branching.

また、前記実施の形態において、理解を容易にするために、部分列として2−mer配列を利用したが、これに限定されず、N−mer(たとえば8−mer)配列を利用しても良いことは言うまでもない。   In the above embodiment, in order to facilitate understanding, a 2-mer array is used as a partial sequence. However, the present invention is not limited to this, and an N-mer (for example, 8-mer) array may be used. Needless to say.

また、本発明によれば、時間計算量の改善(処理の高速化)、空間計算量の改善(必要なメモリ量の削減)に加え、以下のような利点がある。   Further, according to the present invention, in addition to the improvement of the time calculation amount (speeding up of processing) and the improvement of the space calculation amount (reduction of necessary memory amount), there are the following advantages.

文字(遺伝子)の置換、挿入、損を許して検索することにより、文字の読み取りミス(ゲノムの読み取りミス)が生じた場合でも適用することができる。また、異種の動物のゲノム間でも高速かつ正確な候補を挙げることが可能となる。さらに、たんぱく質から推定される核酸配列をゲノムにアライメントすることに適用可能である。   It is possible to apply even when a character reading error (genome reading error) occurs by allowing a character (gene) substitution, insertion, or loss and performing a search. In addition, it is possible to list fast and accurate candidates among different genomes of animals. Furthermore, the present invention can be applied to aligning a nucleic acid sequence deduced from a protein with a genome.

さらには、一般の文書、たとえば、特許明細書などで、検索したい言葉が等距離で出てくるものを一緒にして抽出することなどに適用することも可能である。   Further, the present invention can be applied to extraction of common documents such as patent specifications in which words to be searched appear at the same distance.

図1は、本発明の実施の形態にかかる配列探索システムの概略を示すブロックダイヤグラムである。FIG. 1 is a block diagram showing an outline of a sequence search system according to an embodiment of the present invention. 図2(a)は、本実施の形態において、ゲノム配列の例を示す図、図2(b)はEST配列の例を示す図である。FIG. 2A is a diagram illustrating an example of a genome sequence in the present embodiment, and FIG. 2B is a diagram illustrating an example of an EST sequence. 、図3は、図2(a)に示すゲノム配列に基づいて、2−mer配列の出現位置が格納された第1のLUTの例を示す図である。FIG. 3 is a diagram showing an example of a first LUT in which the appearance positions of 2-mer sequences are stored based on the genome sequence shown in FIG. 図4は、図2(b)に示すEST配列を構成する2−mer配列のそれぞれが、図2(a)のゲノム配列中に出現する位置を示したLUTの例を示す図である。FIG. 4 is a diagram showing an example of an LUT in which each 2-mer sequence constituting the EST sequence shown in FIG. 2B appears in the genome sequence shown in FIG. 図5は、本実施の形態にかかるヒープ形成処理部にて実行される処理を示すフローチャートである。FIG. 5 is a flowchart showing processing executed by the heap formation processing unit according to this embodiment. 図6は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 6 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図7は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 7 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図8は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 8 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図9は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 9 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図10は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 10 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図11は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 11 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図12は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 12 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図13は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 13 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図14は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 14 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図15は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 15 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図16は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 16 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図17は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 17 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図18は、ヒープ形成処理部の実行により形成されるヒープを具体的に示す図である。FIG. 18 is a diagram specifically illustrating a heap formed by the execution of the heap formation processing unit. 図19(a)は、ヒープから取り出された構造体群を示す図、図19(b)は、各構造体に基づく値「y−x」を示す図である。FIG. 19A is a diagram showing a group of structures extracted from the heap, and FIG. 19B is a diagram showing a value “yx” based on each structure. 図20(a)は、取り出された各構造体の値「y−x」を示す図、図20(b)は対応する構造体群を示す図である。FIG. 20A is a diagram illustrating the value “y−x” of each extracted structure, and FIG. 20B is a diagram illustrating a corresponding structure group. 図21は、N−hit算出部により取り出された構造体に基づいて、ゲノム配列において、EST配列と類似する部分が見出された状態を示す図である。FIG. 21 is a diagram showing a state in which a portion similar to the EST sequence is found in the genome sequence based on the structure extracted by the N-hit calculation unit. 図22は、本実施の形態にかかる比較処理部で実行される処理を示すフローチャートである。FIG. 22 is a flowchart showing processing executed by the comparison processing unit according to this embodiment. 図23は、第2の実施の形態にかかる構造体の比較を具体的に示す図である。FIG. 23 is a diagram specifically illustrating comparison of structures according to the second embodiment. 図24は、第2の実施の形態にかかる構造体の比較を具体的に示す図である。FIG. 24 is a diagram specifically illustrating the comparison of the structures according to the second embodiment. 図25は、第2の実施の形態にかかる構造体の比較を具体的に示す図である。FIG. 25 is a diagram specifically illustrating a comparison of structures according to the second embodiment. 図26は、第2の実施の形態にかかる構造体の比較を具体的に示す図である。FIG. 26 is a diagram specifically illustrating the comparison of the structures according to the second embodiment. 図27は、第2の実施の形態にかかる構造体の比較を具体的に示す図である。FIG. 27 is a diagram specifically illustrating a comparison of structures according to the second embodiment.

符号の説明Explanation of symbols

10 配列探索システム
12 ゲノム配列LUT生成部
14 EST配列LUT生成部
16 ヒープ形成処理部
18 N−hit抽出部
20 記憶装置
DESCRIPTION OF SYMBOLS 10 Sequence search system 12 Genome arrangement | sequence LUT production | generation part 14 EST arrangement | sequence LUT production | generation part 16 Heap formation process part 18 N-hit extraction part 20 Storage device

Claims (9)

第1の配列から、第2の配列と類似する位置を探索する配列探索システムであって、
配列を構成する所定の長さの部分列中、第1の配列中の各要素から延びる当該所定の長さの部分列の出現位置を格納する第1のテーブルと、
第2の配列中の各要素から延びる当該所定の長さの部分列に対応する、前記第1のテーブル中の、前記第1の配列の部分列に関する出現位置を取得する出現位置取得手段と、
前記第2の配列の部分列に関する出現位置および第1の配列の部分列に関する出現位置に基づく構造体を、前記第2の配列の部分列に関する出現位置と、第1の配列の部分列に関する出現位置との間の差異にしたがってヒープに投入することにより、ヒープを形成するヒープ形成手段であって、前記形成されたヒープの根に、前記差異が同一の構造体が所定回数表れるときに、当該構造体を取り出して、その情報を記憶装置に記憶するヒープ形成手段と、
前記取り出された、差異が同一の構造体の第1の配列の部分列に関する出現位置と、前記第2の配列の部分列に関する出現位置とから、少なくとも所定の長さ以上、第1の配列および第2の配列とが一致する位置を特定する類似位置特定手段とを備えたことを特徴とする配列探索システム。
A sequence search system for searching for a position similar to the second sequence from the first sequence,
A first table that stores the appearance positions of the substrings of a predetermined length extending from each element in the first array in the substrings of the predetermined length constituting the array;
Appearance position acquisition means for acquiring an appearance position related to the partial sequence of the first array in the first table, corresponding to the partial sequence of the predetermined length extending from each element in the second array;
A structure based on the appearance position related to the partial sequence of the second array and the appearance position related to the partial sequence of the first array is represented by the appearance position related to the partial sequence of the second array and the appearance related to the partial sequence of the first array. A heap forming means for forming a heap by throwing it into the heap according to the difference between the position and the root when the structure with the same difference appears a predetermined number of times Heap forming means for taking out the structure and storing the information in a storage device;
From the appearance position related to the partial sequence of the first array of the structure having the same difference, and the appearance position related to the partial sequence of the second array, the first array and at least a predetermined length or more A sequence search system comprising: similar position specifying means for specifying a position where the second sequence matches.
前記第2の配列の部分列qkの第2の配列中の出現位置をquery(qk)、第1の配列中の部分列qkの出現位置をdb(qk)とするときに、
前記ヒープ形成手段が、構造体として、(query(qk),db(qk))を生成することを特徴とする請求項1に記載の配列探索システム。
When the appearance position in the second array of the subsequence qk of the second array is query (qk) and the appearance position of the subsequence qk in the first array is db (qk),
The array search system according to claim 1, wherein the heap forming unit generates (query (qk), db (qk)) as a structure.
前記第2の配列の部分列qkの第2の配列中の出現位置をquery(qk)、第1の配列中の部分列qkの出現位置をdb(qk)とするときに、ヒープ形成手段が、構造体として、(query(qk)-db(qk))または(db(qk)-query(qk)と、前記部分列qkの第2の配列における出現位置を表わすIDとの組を生成することを特徴とする請求項1に記載の配列探索システム。 When the appearance position in the second array of the subsequence qk of the second array is query (qk) and the appearance position of the subsequence qk in the first array is db (qk), the heap forming means As a structure, a pair of (query (qk) -db (qk)) or (db (qk) -query (qk) and an ID representing the appearance position in the second array of the subsequence qk is generated. The sequence search system according to claim 1. 前記ヒープ形成手段が、第2の配列の部分列と、第2の配列の他の部分列との間の距離が所定の値を超えた場合には、前記他の部分列を、前記ヒープ形成処理の処理対象から除外することを特徴とする請求項1ないし3の何れか一項に記載の配列探索システム。 When the heap forming means has a distance between a partial sequence of the second array and another partial sequence of the second array exceeding a predetermined value, the heap formation is performed on the other partial sequence. The sequence search system according to any one of claims 1 to 3, wherein the sequence search system is excluded from processing targets. 第1の配列から、第2の配列と類似する位置を探索する配列探索システムであって、
配列を構成する所定の長さの部分列中、第1の配列中の各要素から延びる当該所定の長さの部分列の出現位置を格納する第1のテーブルと、
第2の配列中の各要素から延びる当該所定の長さの部分列に対応する、前記第1のテーブル中の、前記第1の配列の部分列に関する出現位置を取得する出現位置取得手段と、
前記第2の配列の部分列に関する出現位置および第1の配列の部分列に関する出現位置に基づく第1の構造体を形成するとともに、前記第2の配列の他の部分列に関する出現位置および第1の配列の部分列に関する出現位置に基づく第2の構造体を形成し、前記第1の構造体における、前記第2の配列の部分列に関する出現位置と、第1の配列の部分列に関する出現位置との間の差異と、前記第2の構造体における前記第2の配列の部分列に関する出現位置と、第1の配列の部分列に関する出現位置との間の差異とが一致するときに、前記第1の構造体および第2の構造体を取り出して、それらの情報を記憶する比較手段と、
前記取り出された、差異が同一の構造体の第1の配列の部分列に関する出現位置と、前記第2の配列の部分列に関する出現位置とから、少なくとも所定の長さ以上、第1の配列および第2の配列とが一致する位置を特定する類似位置特定手段とを備えたことを特徴とする配列探索システム。
A sequence search system for searching for a position similar to the second sequence from the first sequence,
A first table that stores the appearance positions of the substrings of a predetermined length extending from each element in the first array in the substrings of the predetermined length constituting the array;
Appearance position acquisition means for acquiring an appearance position related to the partial sequence of the first array in the first table, corresponding to the partial sequence of the predetermined length extending from each element in the second array;
Forming a first structure based on an appearance position related to a partial sequence of the second array and an appearance position related to a partial sequence of the first array, and an appearance position related to another partial sequence of the second array and the first Forming a second structure based on the appearance position related to the partial sequence of the array, and the appearance position related to the partial sequence of the second array and the appearance position related to the partial sequence of the first array in the first structure When the difference between the position of occurrence of the second sequence in the second structure and the position of occurrence of the partial sequence in the second structure coincides with each other, A comparing means for taking out the first structure and the second structure and storing the information;
From the appearance position related to the partial sequence of the first array of the structure having the same difference, and the appearance position related to the partial sequence of the second array, the first array and at least a predetermined length or more A sequence search system comprising: similar position specifying means for specifying a position where the second sequence matches.
前記第2の配列の部分列をqi、他の部分列をqjとしたときに、前記比較手段が、qi=(q1,q2,…,qQ-1)およびqj=(q2,…,qQ)として、qiに関する第1の構造体と、qjに関する第2の構造体との間で比較を実行することを特徴とする請求項5に記載の配列探索システム。 When the subsequences of the second array are qi and the other subsequences are qj, the comparison means is qi = (q1, q2, ..., qQ-1) and qj = (q2, ..., qQ) The sequence search system according to claim 5, wherein the comparison is performed between the first structure related to qi and the second structure related to qj. 前記第2の配列の部分列をqi、他の部分列をqjとしたときに、前記比較手段が、qi=(q1,q2,…,qQ-1)およびq2=(qi+1,…max(qi+k,qQ)として、qiに関する第1の構造体と、q2に関する第2の構造体との間で比較を実行することを特徴とする請求項5に記載の配列探索システム。 When the subsequences of the second array are qi and the other subsequences are qj, the comparison means can calculate qi = (q1, q2, ..., qQ-1) and q2 = (qi + 1, ... max 6. The sequence search system according to claim 5, wherein a comparison is performed between the first structure related to qi and the second structure related to q2 as (qi + k, qQ). 第1の配列から、第2の配列と類似する位置を探索するために、配列を構成する所定の長さの部分列中、第1の配列中の各要素から延びる当該所定の長さの部分列の出現位置を格納する第1のテーブルを備えたコンピュータを、
前記第1のテーブルに基づいて、第2の配列中の各要素から延びる当該所定の長さの部分列に対応する、前記第1のテーブル中の、前記第1の配列の部分列に関する出現位置を取得する出現位置取得手段と、
前記第2の配列の部分列に関する出現位置および第1の配列の部分列に関する出現位置に基づく構造体を、前記第2の配列の部分列に関する出現位置と、第1の配列の部分列に関する出現位置との間の差異にしたがってヒープに投入することにより、ヒープを形成するヒープ形成手段であって、前記形成されたヒープの根に、前記差異が同一の構造体が所定回数表れるときに、当該構造体を取り出して、その情報を記憶装置に記憶するヒープ形成手段と、
前記取り出された、差異が同一の構造体の第1の配列の部分列に関する出現位置と、前記第2の配列の部分列に関する出現位置とから、少なくとも所定の長さ以上、第1の配列および第2の配列とが一致する位置を特定する類似位置特定手段として機能させることを特徴とするコンピュータにより読み取り可能な配列探索プログラム。
In order to search for a position similar to the second array from the first array, a part of the predetermined length extending from each element in the first array in a substring of the predetermined length constituting the array A computer comprising a first table for storing the appearance positions of the columns;
Based on the first table, the appearance position for the partial sequence of the first array in the first table corresponding to the partial sequence of the predetermined length extending from each element in the second array Appearance position acquisition means for acquiring
A structure based on the appearance position related to the partial sequence of the second array and the appearance position related to the partial sequence of the first array is represented by the appearance position related to the partial sequence of the second array and the appearance related to the partial sequence of the first array. A heap forming means for forming a heap by throwing it into the heap according to the difference between the position and the root when the structure with the same difference appears a predetermined number of times Heap forming means for taking out the structure and storing the information in a storage device;
From the appearance position related to the partial sequence of the first array of the structure having the same difference, and the appearance position related to the partial sequence of the second array, the first array and at least a predetermined length or more A computer-readable sequence search program which functions as a similar position specifying means for specifying a position where the second sequence matches.
第1の配列から、第2の配列と類似する位置を探索するために、配列を構成する所定の長さの部分列中、第1の配列中の各要素から延びる当該所定の長さの部分列の出現位置を格納する第1のテーブルを備えたコンピュータを、
第2の配列中の各要素から延びる当該所定の長さの部分列に対応する、前記第1のテーブル中の、前記第1の配列の部分列に関する出現位置を取得する出現位置取得手段と、
前記第2の配列の部分列に関する出現位置および第1の配列の部分列に関する出現位置に基づく第1の構造体を形成するとともに、前記第2の配列の他の部分列に関する出現位置および第1の配列の部分列に関する出現位置に基づく第2の構造体を形成し、前記第1の構造体における、前記第2の配列の部分列に関する出現位置と、第1の配列の部分列に関する出現位置との間の差異と、前記第2の構造体における前記第2の配列の部分列に関する出現位置と、第1の配列の部分列に関する出現位置との間の差異とが一致するときに、前記第1の構造体および第2の構造体を取り出して、それらの情報を記憶する比較手段と、
前記取り出された、差異が同一の構造体の第1の配列の部分列に関する出現位置と、前記第2の配列の部分列に関する出現位置とから、少なくとも所定の長さ以上、第1の配列および第2の配列とが一致する位置を特定する類似位置特定手段として機能させることを特徴とするコンピュータにより読み取り可能な配列探索プログラム。
In order to search for a position similar to the second array from the first array, a part of the predetermined length extending from each element in the first array in a substring of the predetermined length constituting the array A computer comprising a first table for storing the appearance positions of the columns;
Appearance position acquisition means for acquiring an appearance position related to the partial sequence of the first array in the first table, corresponding to the partial sequence of the predetermined length extending from each element in the second array;
Forming a first structure based on an appearance position related to a partial sequence of the second array and an appearance position related to a partial sequence of the first array, and an appearance position related to another partial sequence of the second array and the first Forming a second structure based on the appearance position related to the partial sequence of the array, and the appearance position related to the partial sequence of the second array and the appearance position related to the partial sequence of the first array in the first structure When the difference between the position of occurrence of the second sequence in the second structure and the position of occurrence of the partial sequence in the second structure coincides with each other, A comparing means for taking out the first structure and the second structure and storing the information;
From the appearance position related to the partial sequence of the first array of the structure having the same difference, and the appearance position related to the partial sequence of the second array, the first array and at least a predetermined length or more A computer-readable sequence search program which functions as a similar position specifying means for specifying a position where the second sequence matches.
JP2003431970A 2003-12-26 2003-12-26 Array search system and search program Pending JP2005190248A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003431970A JP2005190248A (en) 2003-12-26 2003-12-26 Array search system and search program
PCT/JP2004/019182 WO2005064520A1 (en) 2003-12-26 2004-12-22 Sequence search system and search program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003431970A JP2005190248A (en) 2003-12-26 2003-12-26 Array search system and search program

Publications (1)

Publication Number Publication Date
JP2005190248A true JP2005190248A (en) 2005-07-14

Family

ID=34736456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003431970A Pending JP2005190248A (en) 2003-12-26 2003-12-26 Array search system and search program

Country Status (2)

Country Link
JP (1) JP2005190248A (en)
WO (1) WO2005064520A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7781451B2 (en) * 2004-04-02 2010-08-24 Novartis Ag Thiazolopyridine derivatives, pharmaceut ical conditions containing them and methods of treating glucokinase mediated conditions

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3534471B2 (en) * 1995-02-16 2004-06-07 富士通株式会社 Merge sort method and merge sort device
JPH11232473A (en) * 1998-02-16 1999-08-27 Fuji Xerox Co Ltd Printing processor
CA2408498A1 (en) * 2000-05-10 2001-11-15 E.I. Du Pont De Nemours And Company Method of discovering patterns in symbol sequences
US6931401B2 (en) * 2001-05-04 2005-08-16 Paracel, Inc. Methods and apparatus for high-speed approximate sub-string searches

Also Published As

Publication number Publication date
WO2005064520A1 (en) 2005-07-14

Similar Documents

Publication Publication Date Title
US8208730B2 (en) Word search using handwriting recognition input with dictionary-based correction suggestions
US8095526B2 (en) Efficient retrieval of variable-length character string data
US20180143979A1 (en) Method for segmenting and indexing features from multidimensional data
US20210183466A1 (en) Identification method, information processing device, and recording medium
US20220005546A1 (en) Non-redundant gene set clustering method and system, and electronic device
US9323889B2 (en) System and method for processing reference sequence for analyzing genome sequence
JP2014089690A (en) System and method for aligning base sequence
JP5252596B2 (en) Character recognition device, character recognition method and program
US20120284279A1 (en) Code string search apparatus, search method, and program
KR101394339B1 (en) System and method for processing genome sequence in consideration of seed length
CN110795617A (en) Error correction method and related device for search terms
JP2005190248A (en) Array search system and search program
KR101584857B1 (en) System and method for aligning genome sequnce
Chen et al. An FPGA aligner for short read mapping
KR102594625B1 (en) System and method for generating filters for K-mismatch search
EP3539038B1 (en) Reduced memory nucleotide sequence comparison
CN107203512B (en) Method for extracting key elements from natural language input of user
Esmat et al. A parallel hash‐based method for local sequence alignment
JP7422367B2 (en) Approximate string matching method and computer program for realizing the method
CN111916153B (en) Parallel multiple sequence comparison method
JP3812799B2 (en) Document set characterization method, document set search method using the method, and apparatus thereof
JPS61141036A (en) Data retrieval system
Albrecht et al. Space Efficient Modifications to Structator—A Fast Index-Based Search Tool for RNA Sequence-Structure Patterns
CN112349349A (en) Transcription factor binding site recognition discovery method and device based on Spark Streaming
CN117609332A (en) Large-scale high-dimension data clustering method based on weighted hash and LSH