JP2008506165A - データ集合の目録作成および探索のための方法およびシステム - Google Patents

データ集合の目録作成および探索のための方法およびシステム Download PDF

Info

Publication number
JP2008506165A
JP2008506165A JP2007516418A JP2007516418A JP2008506165A JP 2008506165 A JP2008506165 A JP 2008506165A JP 2007516418 A JP2007516418 A JP 2007516418A JP 2007516418 A JP2007516418 A JP 2007516418A JP 2008506165 A JP2008506165 A JP 2008506165A
Authority
JP
Japan
Prior art keywords
data
inventory
creating
search
array
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
JP2007516418A
Other languages
English (en)
Inventor
スチュアート・ジョン・イングリス
Original Assignee
リール・トゥー・リミテッド
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 リール・トゥー・リミテッド filed Critical リール・トゥー・リミテッド
Publication of JP2008506165A publication Critical patent/JP2008506165A/ja
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
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • G16B50/30Data warehousing; Computing architectures
    • 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
    • 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
    • G16B30/20Sequence assembly
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Abstract

本発明は、データ構造の目録を作成する方法に関し、好ましくは、データ構造内の探索パターンの存在を検出するためにデータ構造等を通して探索する方法にも関する。本発明の目録を作成する方法は、(データ集合内に存在するデータ要素から変換された)データ項目を記憶アドレスに対応付けるために用いられる目録データ構造の情報を利用する。この目録データ構造は、それにわたる探索を容易にするために整列することが可能である。そのような探索は、受信した探索パターン配列からの複数の探索クエリーの情報を通して実行することが可能であり、そして、これらの探索クエリーの処理の結果が、続く探索パターン配列検出処理に適用されることが可能である。

Description

本発明は、パターンのインデックス付けおよび探索のためのシステムおよび方法に関する。特に、本発明は、パターンの探索に有効なインデックスとしてのパック形式のデータ構造を開示する。本発明は、特に、大きなパターンを探索するために有効であるが、他のサイズのパターンも探索可能である。
多くの分野において、大量のパターンデータが蓄積され、数え切れないデータベースに記憶されてきた。しかし、収集され記憶された莫大な量のデータを利用する機能が不足している。様々な異なるパターンを位置付けるコンパクトで効果的なデータベース探索技術への関心が増している。そのようなパターンは、ヌクレオチド配列、アミノ酸(例えば、ペプチド)配列、地質学上の標本、2進数データ、テキスト形式データ等を含む。生命情報科学の特定の分野において、ペプチド配列を解読する試みとともに、DNAを含むヌクレオチド配列(および他のヌクレオチド配列)に記憶された情報、および、生物分子へのそれらの合成(translation)を解読する試みが行われている。生命情報科学における非常に多くの応用において、ヌクレオチドおよびアミノ酸の特定の配列(sequence)を探索することが望ましい。配列データベースは幾何級数的に増大しているので、テキストパターン照合は重大な計算上の問題を提示している。
ときどき、“比較ゲノム解析”と呼ばれる技術を用いることによって、異なる種属のゲノムが比較および分析される。研究者はゲノムを比較するとき、異なる特性、すなわち、配列の類似性、遺伝子座(gene location)、遺伝子内の(エクソンと呼ばれる)翻訳領域の長さおよび数、各ゲノムにおける非翻訳DNAの量、バクテリアと同じぐらい単純な生物および人間と同じぐらい複雑な生物において維持される高度保存領域を検査する。比較ゲノム解析は、複数のゲノムを整列させ、それらの中で類似の領域を探すことが可能なコンピュータプログラムの使用を伴う。そのような類似性の探索を実行するために、(NCBIから入手可能な)BLASTのようなツールが利用可能である。
配列データが生成されると、類似の配列について共用のデータベースがルーチン的に走査される。その後、より大きなコンセンサスを作り上げるために、クラスタ探索を実行することによって配列の断片が集められる。コンセンサス配列および全体のゲノムを作り上げることは、パターン探索が、クラスタ探索および階層メタクラスタ探索に従って、反復領域を発見および隠蔽することを要求する。さらに、比較ゲノム解析は、関連する分子を発見するために多数の異なるゲノムの探索を要求する。現在の配列データの量およびそれが増大する速度を考えると、配列探索は現代のゲノム解析において、多くの場合、速度限界の段階にある。
大多数の現在の探索方法は、単一のアレイ(array)データ構造におけるパターン位置情報を調べる。この単一アレイのインデックスは、多くの場合、探索パターンを数値インデックスにマッピングする関数によって計算される。そして、アレイはインデックスによって表わされる位置において検査される。アレイは、通常、探索されるパターンの位置の参照を含む。例えば、SSAHA(英国ケンブリッジのSanger Instituteから入手可能なSequence Search and Alignment by Hashing Algorithm)方式は、全ての可能な配列インデックスについて単一のアレイを記憶する。より大きなパターンの長さに対して、単一アレイ方式は、大きな、多くの場合、非常に低密度なアレイを生成する。
大きなパターンについて、この単一アレイデータ構造の大きさおよび長さはかなりのものになりうる。この単一アレイは、探索される各々の可能な固有のパターンについてエントリまたは記憶位置を提供する必要があるが、必ずしもインデックス付けされたデータベース内に存在しなくてもよい。
この方式は、任意の特定のパターンについて高速な探索が完了することを可能とするが大きなパターンサイズについては現実的でない。長い長さのパターンを作り上げるために多数の記号の固有の組み合わせが可能であり、そのような方式を容易にするために用いられるコンピュータシステムのメモリにかなりの要求を提示する。さらに、先行技術における方法で利用されている単一の大きなインデックス付けされたアレイは、データを用いて比較的低密度で生成され、資源の比較的非効率な使用となる。この技術分野の当業者によって理解されるように、そのようなシステムを実装するために用いられるメモリ資源は、探索されるパターンの長さの線形的な増加とともに幾何級数的に増加する。
既存の処理よりも高速にパターンを発見し、かつワードサイズに制限のない処理の必要性が存在する。探索機能は、現在の探索技術による必要メモリと比較してメモリ使用を減少させるために、効果的かつコンパクトであるべきである。
この明細書で引用される特許または特許出願を含む全ての引用文献は、引用してここに組み込まれる。引用が先行技術を構成するとは認められない。引用文献の記載は、それらの著者が主張することを記載しており、出願人は引用文献の正確性および妥当性に異議を申し立てる権利を留保する。ここで多数の先行技術文献が引用されるが、この引用は、これらの文献が、ニュージーランドまたは他の国においてこの技術分野における共通の一般的知識の一部を構成することの承認を構成しないことが明確に理解される。
用語‘具備する’は、様々な裁判権のもとで、排他的または包括的な意味のいずれかに属すると考えられていると認められる。この明細書の目的のために、用語‘具備する’は、他に注釈されるのでなければ、包括的な意味を有する、すなわち、直接的に参照する列挙された構成要素のみでなく、他の規定されていない構成要素または要素の包含を意味すると解釈されるべきである。この原則は、方法または処理における1つまたは複数のステップに関して用語‘具備した’または‘具備する’が用いられるときにも用いられる。
本発明の目的は、上述した課題を解決するために、または、少なくとも有効な選択を公に提供することである。
本発明のさらなる態様および効果は、単なる例として与えられる続く説明から明らかになる。
本発明の一態様によれば、複数のデータ記号で構成されるデータ集合の目録を作成する方法であって、前記データ記号は前記データ集合内で互いに対する定義された順序を有し、前記方法は、
(1)前記データ集合内に存在する記号の配列の最初から第1データ要素を構成するステップを有し、前記最初のデータ要素は記憶アドレスを有する前記データ集合内の記憶位置において記憶され、
(2)前記第1データ要素を第1データ項目に変換するステップをさらに有し、前記データ項目は他のデータ項目に対する順位付けが可能であり、
(3)複数の順次的に配置される記憶位置を定義する順序付けられた目録データ構造を用いて前記第1データ項目を記憶するステップと、
(4)前記第1データ要素が検索された記憶アドレスを前記第1データ項目に対応付けるステップと、
(5)前記データ集合からの要求された各データ要素についてステップ(1)から(4)を繰り返すステップと、
(6)前記目録データ構造内に記憶された前記データ項目を順位付けることによって順序付けられた目録データ構造を整列するステップと、
をさらに有することを特徴とするデータ集合の目録を作成する方法が提供される。
本発明のさらなる態様によれば、
(7)存在しうる固有のデータ要素の最大数に等しいか、またはより小さい多数の記憶位置を定義する少なくとも1つの順序付けられた内容データ構造を構成するステップと、
(8)少なくとも1つのデータ要素を各記憶位置と対応付けるステップと、
(9)前記記憶位置に対応付けられた前記少なくとも1つのデータ要素が前記データ集合内に存在するか否かに応じて正または負の表示を、前記内容データ構造の各記憶位置内に記憶するステップと、
をさらに有することを特徴とする実質的に説明されたデータ集合の目録を作成する方法が提供される。
本発明は、データ集合の目録を作成するための方法、システムおよび装置を提供するために適用される。提供されるシステムおよび装置は、コンピュータ読み取り可能な媒体に記録されたコンピュータが実行可能な一連の命令を読み取るために使用される少なくとも1つのコンピュータシステムを含むことが可能である。これらの命令は、コンピュータシステムによって実行されると、以下で説明する目録を作成する方法を実行するために使用されることが可能である。さらに、目録が作成されるデータ集合は、電子的形態で提供することも可能であり、それによって、それが含むデータをコンピュータシステムが読み取り、かつ目録を作成することを可能とする。
好ましくは、本発明によって生成される目録は、目録が作成されたデータ集合に存在するデータ内で特定のデータまたはパターンを発見するために探索される1つまたは複数の順序付けられたデータ構造から構成される。
好ましい実施形態において、目録が作成されるデータ集合は、電子的データベース内に記憶される。データベース技術はこの技術分野においてよく知られており、大量のデータまたは情報を記憶および検索するために容易に利用可能である。
好ましくは、目録が作成されるデータ集合は、データ集合内で互いに対する定義された順序を有する多数のデータ記号から構成される。さらに好ましい実施形態において、記憶されるデータ記号は、4つの塩基対の記号A,T,C,Gから得られるヌクレオチド配列である。これらの記号が現れる配列、および、これらの記号の領域または集合が互いに対して配置される配列は、非常に適切である。しかし、この技術分野の当業者は、例えば、ペプチド配列、地質学上の標本データ、テキストに基づくデータ、2進数の形式で表わされうる任意の他の形式のデータのような他の種類のデータ要素は、本発明により目録が作成されるデータ集合内に保持可能であることを理解すべきである。
好ましい実施形態において、データ要素は、スライドするウィンドウ処理を用いて、記憶されたデータ集合の記号から構成することも可能である。用いられるウィンドウのサイズは、結果として提供されるデータ要素のサイズおよびウィンドウに対応付けられるスライドする変位値を反映し、データ集合の記号から生成されるデータ要素の数を決定することが可能である。これらの例において、最初のデータ要素は、ウィンドウまたは構成されるデータ要素の長さに等しいデータ集合内に存在する最初の多数の記号によって構成することが可能である。そして、2番目のデータ要素を構成するために、このウィンドウは、ウィンドウに対応付けられた変位値に等しい多数の記号に沿って移動することが可能であり、この変位値は、最小値において1つの記号に等しいか、または最大値においてウィンドウの長さまたはサイズに等しい。
この技術分野の当業者は、用いられるスライドするウィンドウ技術に対応付けられる変位値がデータ集合から生成または構成されるデータ要素の数を決定することを理解する。このスライドするウィンドウ処理に対応付けられる変位値がデータ要素に与えられる標準の長さに設定されるならば、結果としての目録またはデータ構造は目録が作成されるデータ集合のサイズに実質的に等しいサイズを有する。逆に、より大きな目録データ構造は、使用されるメモリ資源を犠牲にして、そのような目録データ構造を用いて得られた結果を探索するために高い解像度を与えるためのより小さい変位値を設けることが可能である。
好ましくは、データ要素は塩基対の記号の配列として定義され、配列の長さまたは各データ要素に統合される記号の数は、提供される目録に要求される性能によって決定される。以下でさらに説明するように、処理されるデータ要素のサイズが増加するに連れて、本発明のメモリ資源要求は減少する。逆に、要求される目録を提供するためにさらに要求するメモリ資源を犠牲にして、より高い探索の解像度をシステムに与えるために、より小さいデータ要素を処理することが可能である。
便宜のため、この明細書を通して、ヌクレオチド配列の5つの塩基対の記号から構成される単一のデータ要素が参照される。しかし、この技術分野の当業者は、長さまたはサイズが違う異なる種類のデータ要素も用いることが可能であり、この特定の選択は決して限定として見るべきではないことを理解すべきである。
この明細書を通して、対象となる項目または要素の形式に応じて多数の記号から構成されるデータ要素および/またはデータ項目も言及される。この技術分野の当業者は、これらの記号が2進数の記号または任意の他の基数の記号、他の形式の英数字の記号、または任意の他の形式または表現の情報を組み込むことが可能であることを理解すべきである。さらに、そのような記号の順序または優先度または配置は、データ要素または項目の中に含まれる情報を変えることも可能であり、提供される記号の配列は、データ要素または項目よりも重要性、重大性、高い順位、または優先度を与えることが可能な1つまたは複数の最上位の記号を含むことが可能である。
単一のデータ要素は、データ集合内の既知の位置または場所において記憶することが可能である。これらの既知の位置は、RAMにおけるまたはディスク上のメモリアドレスとすることが可能であり、またはその代わりに、対象となるデータが記憶される場所を示す付加されたオフセットとベースアドレスから構成することも可能である。従って、これらの位置または場所の各々は、対象となるデータ要素を検索するために用いることが可能な対応するアドレスを有することが可能である。
好ましくは、集合の各々のおよび全てのデータ要素は、データ要素からデータ項目を生成する変換操作に従う。生成されるデータ項目は、それらを互いに対して順位付けまたは優先度付けすることが可能な形式を有することが可能である。さらに好ましい実施形態において、データ要素に適用される変換は、生成される数値形式のデータ項目となる情報技術のデータインデックス付けアプリケーションにおいて用いられるハッシュ関数に類似のものとすることが可能である。従って、数値形式のデータ項目は、降順または昇順に互いに対して容易に順位付けまたは優先度付けすることが可能である。
好ましい実施形態において、データ要素に適用される変換は、直接のハッシュ関数である。直接のハッシュ関数は、データ要素内に存在する全ての情報をカプセル化するデータ項目の提供を可能とする。
ある場合において、変換されるデータ要素のサイズまたは長さは、結果として、コンピュータハードウェアにおいて利用可能なメモリ資源によって収容可能であるより大きいデータインデックスとなりうる。そのような場合において、“損失の多いハッシング”の変換操作が利用可能であり、2つの固有なデータ要素に対して生成される同一のデータ項目となりうる。そのような場合において、他のデータ要素から代わりのデータ項目を提供するために、よく知られた再ハッシング技術を利用可能である。しかし、そのような再ハッシング技術は、一般に、結果として目録を作成する処理の計算上のオーバヘッドを増大させ、続く探索処理は、目録データ構造内で現在のデータ項目を発見することが可能となる前に、探索されるデータ要素への複数の変換を実行する必要がある。
損失の多いハッシング変換が用いられるある実施形態において、検索または探索処理の間に検索検証処理を実現することが可能である。各々の記憶されたデータ項目は、データ項目を生成するために用いられるデータ要素の記憶アドレスと対応付けられ、元のデータ要素は、正しいデータ項目が識別されたか否かを検証するために検索されることが可能である。探索されるデータ要素と検索されたデータ要素との間に不一致が存在するならば、ハッシュのコリジョンを防止するために割り当てられる代わりのデータ項目を見つけるために、探索されるデータ要素について続く再ハッシングまたはさらなる変換操作を実行することが可能である。
好ましくは、本発明は、複数の順次的に配置された記憶場所を定義する順序付けられた目録データ構造も用いる。上述したデータ項目は、好ましくは、目録データ構造によって提供される記憶場所内に、好ましくは、順次的に順序付けられた配置でロードおよび記憶される。さらなる好ましい実施形態において、順序付けられた目録データ構造はアレイによって構成することが可能である。アレイは、記憶場所の単一の配列から構成される順序付けられた線形のデータ構造を提供する。
しかし、代わりの実施形態において、記憶される同一のデータ要素に関する多数の重複するデータ項目について、目録データ構造は、さらなる重複に基づくデータ構造へのフラグまたは参照を記憶することが可能である。この重複に基づくデータ構造は、各々の重複するデータ要素の複数の記憶アドレスとデータ項目を対応付けるために用いることが可能である。さらなる実施形態において、そのような重複に基づくデータ構造は、記憶アドレスのアレイに加えて、対象となる単一のデータ項目の値の両方を保持することが可能である。これらの場合において、目録データ構造は、データ項目を直接に記憶するために用いられる目録データ構造とは異なり、さらなる重複に基づくデータ構造の位置へのフラグまたは参照を提供することによってデータ項目を記憶するために効果的に用いることが可能である。
本発明のこの態様は、データ集合の目録を作成し、続いて探索するために必要とされるメモリ資源の消費を減少させるために利用することが可能である。目録データ構造において2分探索または補間探索が用いられる場合、通常、重複するデータ要素についてのデータ項目の同一の値を通して進む多数の冗長な探索ステップが遂行されうる。重複するデータ項目が目録データ構造内に直接に記憶されることを取り除くことによって、そのような冗長な探索ステップを除去することが可能であり、従って、結果として探索処理を高速にすることが可能である。
この明細書を通して、アレイを用いた目録データ構造が参照されるが、この技術分野の当業者は、他の種類の順序付けられたデータ構造が用いられることも可能であり、この明細書を通しての上記のみの参照は決して限定として見られるべきではないことを理解すべきである。
好ましくは、目録データ構造の記憶場所のサイズ、長さ、または数は、これらのデータ要素の長さに等しいスライドするウィンドウ変位値が提供されるとき、データ集合内のデータ要素の数に実質的に等しい。そのような場合において、目録データ構造のサイズは、データ集合のサイズに実質的に等しくすることも可能である。そのような実施形態において、目録データ構造は、パック形式の高度に利用される構造を提供することが可能であり、本発明により必要とされるメモリ資源の使用を最適化することが可能である。好ましくは、生成される各々の結果としてのデータ項目は、データ項目が生成される順序において目録データ構造に実質的にロードされる。しかし、この技術分野の当業者は、目録データ構造は要求される任意の特定の順序または配列においてデータ項目とともに最初にロードすることも可能であることを理解すべきである。
さらに、この技術分野の当業者は、目録データ構造の記憶場所のサイズ、長さ、または数は、スライドするウィンドウのデータ要素の生成処理が、提供されるデータ要素の固定された長さより小さい値のウィンドウ変位値とともに用いられる場合、データ集合のサイズに必ずしも等しいとは限らないことも理解すべきである。そのような実施形態において、より大きい目録データ構造は、実行される探索の結果に、より高い解像度を与えるために提供することが可能である。
好ましくは、各々のおよび全てのデータ項目は、データ項目を生成するために用いられるデータ要素の記憶アドレスと対応付けられる。そのようなデータ項目の記憶アドレスへの対応付けは、互いに対するこれら2つの種類の情報を相互参照することが可能である。
好ましい実施形態において、データ項目は追加の並列アドレスデータ構造の提供によって記憶アドレスと対応付けることが可能である。このアドレスデータ構造は、そのような実施形態において目録データ構造と実質的に同一とすることが可能であり、要求される並列の特性を提供するために、相補的な方法において記憶アドレスに対応付けられたデータ項目を整列することも可能である。そのような実施形態において、目録データ構造に実行される任意の続く整列、変換または変更処理は、データ項目と要求される記憶アドレスとの間の並列の対応付けを維持するようにアドレスデータ構造について実行される。
さらなる好ましい実施形態において、上述した並列アドレスデータ構造は、アレイによって構成することが可能である。目録データ構造を提供するためにアレイが用いられる場合、アレイは、要求されるアドレスデータ構造の並列の特性を実現するためにも用いることが可能である。
この明細書を通して、データ項目を記憶位置と対応付けるために、一組にされたアレイの並列集合を利用する本発明が言及される。しかし、この技術分野の当業者は、要求される同一の目標を達成するために、代わりのデータ構造の実装を利用することが可能であることを理解すべきである。例えば、1つの代わりの実施形態において、関連するデータ項目との対応付けを維持するために、目録データ構造が拡張され、または、記憶アドレスのための記憶場所を含むことが可能である。
好ましくは、目録データ構造が全ての利用可能なデータ項目で満たされると、これらのデータ項目は、各データ項目の順位付けまたは優先度付けに応じて新たな場所に整列することが可能である。例えば、1つの好ましい実施形態において、最低に順位付けされたデータ項目は最初の記憶場所に配置することが可能であり、最高に順位付けされたデータ項目は目録データ構造の最後の記憶場所に配置することが可能である。その代わりに、要求されるならば、他の実施形態において、降順の順位付けの整列を適用することが可能である。
目録データ構造に関して実行される整列操作は、利用される任意の並列アドレスデータ構造に関して実行されることも可能である。同一の整列操作をアドレスデータ構造に適用することによって、これは特定のデータ項目と相互参照される記憶アドレスとの間の対応付けを維持する。
データ項目における整列操作の実行は、目録データ構造において実行される比較的高速な発見の操作を可能とする。例えば、中間の順位付けの値を有するデータ項目について探索が実行されるならば、目録データ構造の中間付近の場所においてこのデータ項目の存在について最初の調査が行われる。
さらなる好ましい実施形態において、データ項目の最上位の記号、ビット、または構成要素は、上述した結果として整列された目録データ構造内に記憶されないことも可能である。この記号または構成要素は目録データ構造の特定の領域内で全てのデータ項目に共通であり、従って、異なるデータ項目の間の識別に適用できないので、この目録データ構造が整列されると、最上位の記号、ビット、または構成要素は除去することが可能である。例えば、数値形式のデータ項目が提供される好ましい実施形態において、数値のデータ項目の最上位の数字は、本発明のメモリ要求を減少させるために記憶されないことが可能である。
好ましい実施形態において、本発明に関してさらなる順序付けされたクラスデータ構造を用いることが可能である。クラスデータ構造は、目録データ構造の区間へのポインタまたは参照を提供するために実現することが可能であり、これらの区間は同様な順位付けを有するデータ項目を含む。
さらなる好ましい実施形態において、そのようなクラスデータ構造は、最上位の記号または構成要素において相違を有するデータ項目を保持する目録データ構造内の各種の区間または場所へのポインタを保持するための記憶場所の集合を定義することが可能である。増加する順位付けの相違を有するデータ項目に関して目録データ構造の全体の領域または区間を分類するために、これらの最上位の記号における相違の最初のインスタンス(instance)へのポインタを作ることが可能である。例えば、数値形式のデータ項目が用いられる実施形態において、記憶されるデータ項目の最上位の数字において変化が存在する目録データ構造の区間へのポインタを保持するカテゴリデータ構造が維持される。
さらなる好ましい実施形態において、クラスデータ構造はアレイによって構成することが可能であり、このアレイは、順位付けデータ項目に用いられる最上位の固有の記号の数に等しい多数の記憶場所を定義する。例えば、1から10,000までの範囲の数値を有するデータ項目が提供されるならば、クラスデータ構造は、数百、1000、2000等を基準とするカテゴリデータ構造の区間へのポインタを用いて実現することが可能である。
さらなる好ましい実施形態において、本発明に関して少なくとも1つの内容データ構造を利用することが可能である。内容データ構造は、記憶アドレスを検索するために利用される目録データ構造に対して、目録が作成されるデータ集合において保持される現在のデータ要素の概観(overview)を与えるために提供することが可能である。
そのような順序付けされた内容データ構造は、存在しうる固有のデータ要素の最大数以下の多数の記憶場所を定義することが可能である。この技術分野の当業者によって理解されるように、この内容データ構造は比較的大きいことが可能であり、潜在的に、各データ要素の省略時のまたは設定されたサイズが増加するに連れて、サイズが増加する。従って、内容データ構造の最大の長さまたはサイズは、対象となるデータ集合内に含まれうる固有のデータ要素の最大数によって決定される。
好ましくは、少なくとも1つのデータ要素は内容データ構造の各々の記憶場所と対応付けられる。さらなる好ましい実施形態において、複数の固有のデータ要素を内容データ構造の単一の記憶場所と対応付けるために、損失の多いハッシュ関数を用いることが可能である。そのような実施形態において、対象となるデータ記号から構成される全ての単一の固有のデータ要素と対応付けられた記憶場所を有する、比較的小さい、コンパクトな内容データ構造を提供することが可能である。
好ましくは、内容データ構造は、記憶場所に対応付けられた少なくとも1つのデータ要素がデータ集合内に実際に存在するか否かに応じて、各々のその記憶場所内に記憶された正または負の表示を有することが可能である。これらの正または負の表示は、本発明を実現するために用いられるソフトウェアおよびハードウェアプラットフォームに応じて、ある実施形態においてブール(boolean)オブジェクトまたは他の実施形態において整数値によって単一のビット符号化から構成することが可能である。しかし、そのような表示の形式は、完全にロードされた関係する内容データ構造を実現するために必要とされるバイト数を最小化するように選択することが可能であることを理解すべきである。
好ましくは、内容データ構造は、目録データ構造またはアドレスデータ構造に関して上述したものと同様の単一のアレイによって実現される。単一のアレイは、要求される内容データ構造を提供するために適切な表示とともに容易に構成され、かつロードされることが可能である。
好ましくは、内容データ構造は、そのデータ要素に対応付けられた記憶場所の検査において、特定のデータ要素がデータ集合内に存在するか否かを迅速に決定するために用いられる。従って、そのような記憶場所における正または負の表示の存在は、対象となるデータ要素がデータ集合内に存在するか否かを迅速に確認するために用いることが可能である。さらに、複数のデータ要素を内容データ構造の単一の記憶場所と対応付けるために損失の多いハッシュ関数が用いられる実施形態において、この迅速な検査は、記憶場所に対応付けられた少なくとも1つのデータ要素がデータ集合内に存在することを示す。
この技術は、基本的な目録データ構造において実行される探索を高速化するために適用することも可能である。最初の検査は、特定のデータ要素が存在するか否かを決定するために内容データ構造について行われ、存在するならば、関心のあるデータ要素に対応付けられたアドレスを発見するために目録データ構造について探索操作を実行することが可能である。データ要素が存在しないならば、この探索処理は早期に終了することが可能である。
さらなる好ましい実施形態において、複数の内容データ構造は、本発明に従って提供することが可能である。別個の個々の各内容データ構造は、複数の固有のデータ要素を内容データ構造の単一の記憶場所にマッピングするために別個の損失の多いハッシュ関数を利用することが可能である。異なる損失の多いハッシュ関数は内容データ構造の各々にわたって利用されるので、全ての内容データ構造にわたる特定のデータ要素の存在についての検査は、その特定のデータ要素が、目録が作成されたデータ集合内に存在するか否かに関する不確かさを減少させることが可能である。
本発明のさらなる態様によれば、実質的に説明された方法によって目録が作成されたデータ集合内の探索パターンの存在を検出する方法であって、
(1)探索パターン配列を受信するステップと、
(2)前記受信した探索パターン配列にわたってスライドするウィンドウ処理を実行することによって複数の探索クエリーを構成するステップと、
(3)前記目録データ構造から複数の記憶アドレスを検索するステップと、を有し、前記記憶アドレスは、構成された前記探索クエリーと合致するデータ要素と対応付けられ、
(4)受信した前記記憶アドレスの間の空間的な関係を検査することによって受信した前記探索パターン配列の存在を検出するステップと、
をさらに有する探索パターンの存在を検出する方法が提供される。
本発明は、様々な異なる種類のパターンのデータベース記憶および探索のための効果的な技術を提供することが可能である。パターンは、ヌクレオチド配列、ペプチド配列、地質学上の標本、2進数データ、テキストデータ等とすることが可能である。
好ましくは、探索されるパターンまたはデータ要素の記号の配列は、対象となるデータ集合の目録を作成するために用いられるデータ要素のサイズを超えることが可能である。一般的な条件において、探索パターンは、2つ以上のデータ要素において通常見られるより長い長さを有するデータ要素の記号の配列から構成されることが可能である。
好ましい実施形態において、本発明により単一のデータ配列パターンを発見するために複数の探索クエリー(search query)を処理することが可能である。
そのような実施形態において、探索されるデータ配列は、標準とするデータ要素の長さに等しい長さを有する記号の集合に区分することが可能である。様々なデータ要素についての多数のクエリーは、1つからデータ要素内に通常存在するデータ記号の数までの範囲にわたるデータ記号の固定された変位で探索パターンに沿ってウィンドウが順次的に移動する、スライドするウィンドウ処理を用いて構成することが可能である。そのような実施形態において、最初の探索クエリーは、探索される配列内に存在する最初のデータ要素によって構成することが可能である。次の探索クエリーは、スライドするウィンドウについて固定された変位値によって配列の始点から変位した位置において、探索配列から得ることが可能である。この点において、さらなるデータ要素サイズの探索クエリーを生成することが可能であり、ウィンドウ変位値によって再び探索配列を通してウィンドウがスライドし、さらなるデータ要素サイズのクエリーを抽出することが可能である。そして、この処理は、提供される探索配列から、全体の長さとなる、最後のデータ要素サイズの探索クエリーが抽出されるまで継続する。
この技術分野の当業者は、このスライドするウィンドウのアプローチは、小さいウィンドウ変位サイズについて多数の探索クエリーを生成し、ウィンドウの変位値が使用されるデータ要素の長さに等しいとき最小数のクエリーを生成することを理解すべきである。スライドするウィンドウのサイズは、好ましくは、本発明が用いる利用可能なメモリ資源に応じて利用者によって制御される。各ステップにおいて小さいウィンドウ変位を用いることによって、探索クエリーのより広範囲にわたる集合が生成され、結果として比較的多数の探索結果となる。
本発明は、探索パターン配列検出処理を実現することも可能である。この処理は、対応付けられた記憶アドレスを有するデータ要素から構成される一連のヒット(hit)を生成するために目録データ構造を用いて多数の探索クエリーが処理されたときに用いることが可能である。
好ましい実施形態において、データ要素の特定の配列について検索された記憶アドレスの間の空間的な関係の検査によって、探索結果からのパターンの検出を行うことが可能である。例えば、ある場合において、元の探索配列に合致するデータ要素の配列が発見され、検索されたまたは対応付けられた対象となる記憶アドレスによって示されるように、これらのデータ要素がデータ集合内で互いに対して隣接して順次的に記憶されるならば、探索パターンは検出することが可能である。
さらなる好ましい実施形態において、パターンの合致として配列を分類する一方、配列内で最大数の不一致なデータ要素の記号を許容することによって、エラー閾値をそのようなパターンまたは配列検出処理に組み込むことが可能である。そのような場合において、閾値エラーレベルは利用者によって設定されることが可能であり、探索のヒットの集合が検出されたパターンとして分類されることを可能とする、特定の長さの探索配列またはパターンについて最大数の記号の不一致を許容する。
パターン位置は、好ましくは、比較的少ない記憶領域を消費することによってデータベース内で決定される。資源の要求は、実行される探索方法について許容される時間に反比例する。特に、本発明は、パターン照合のワードサイズが増加するに連れて減少するスケーリングおよびサンプリング技術を用いることによってパターン照合のために要求される資源を最適化するために提供される。1つまたは複数の高度に利用されるまたはパック形式のデータ構造の提供によって、本発明は特定のパターンまたはデータ要素の位置が容易に発見されることを可能とする。さらに、パターンまたはデータ要素のサイズまたは長さが増加するに連れて、用いられるメモリ資源における結果としてのロード場所は減少する。逆に、より高い解像度の探索は、要求されるメモリ資源の増加を犠牲にして、データ集合内のより小さい長さのパターンについて実行される。
提供される方法は、資源の要求に依存するサンプリング関数の選択を含むことも可能である。さらに、パターンは、好ましくは、アレイの長さに依存しない探索速度を可能とする方法で、並列アレイの集合に記憶される。本技術は、非常に大きいデータ集合、例えば、ゲノム配列に拡張可能である。本方法は資源の範囲にわたる探索機能のために設計されたが、探索速度をさらに増加させるために追加の計算資源を設けることが可能である。
パターン探索および記憶のために生成されるデータ構造は、好ましくは、配列の位置情報のアレイを用いて一組にされたインデックス値のアレイを含む。最適化されたハッシュ関数は、減少されたハッシュ関数のコリジョンを有する大きなパターンのインデクス付けのために提供することが可能である。データ構造の少なくとも一部は、RAM、外部記憶媒体、例えば、ディスク、複数のCPU、および/または複数のコンピュータシステムに存在することが可能である。
本発明により記憶または探索されるパターンは、幅広い各種の領域で利用することが可能である。例えば、パターンは、データ暗号システムにおける構成要素を構成することが可能である。もう1つの実施形態において、パターンは、通信システムにおいて用いることが可能である。さらに、パターンは、クラスタリングシステムの一部として分析されることが可能である。パターンは、機能割り当て(function assignment)、突然変位探索、SNPスキャン、コンセンサスまたはゲノム全体の構築、オーソログ(orthologue)の発見について用いることも可能である。さらに他の実施形態において、パターンは、データベースエンジン、画像分析または処理、音声解析または処理、無線または深宇宙周波数分析、海からまたは宇宙から生じるデータまたは信号の分析において用いられる。同時に、パターンは、人間または動物の体の分析、分子像、化学的またはスペクトル分析における使用を見つけることも可能である。
このパターン探索機能は、特に、典型的に、配列比較機能において莫大な投資を必要とする比較ゲノム解析において用いることが望ましい。本発明の一組にされたアレイは、例えば、ゲノム組み立て、データ組み立て、断片組み立て、繰り返されるゲノム領域(“リピート(repeat)”)の発見等のために、パターン比較を実行するために用いることが可能である。
一実施形態において、他の現在のまたは将来の探索処理は、全体の性能を向上させるために本方法およびシステムと組み合わせることが可能である。例えば、ゲノム探索のSSAHA方式は、本方法による並列アレイのパック形式のデータ構造にゲノム情報を効果的に記憶することによって向上される。SSAHAアルゴリズムは、k個のタプルについて4の大きさの低密度の構造を生成する。この構造は、任意のヌクレオチドの部分配列から配列におけるそれらの位置に直接のマッピングを提供する。本発明は、位置情報を効果的に記録し、kが増加するに連れて減少し、非常に大きいkの値が用いられることを可能とする(L/k)のサイズの密な構造を生成する。
本発明は、添付図面の図における例によって表わされ、図は本発明を限定することを意図するものではない。
本発明は、パターン探索機能を含み、データベースにおけるパターン探索の探索フェーズを行わせるための方法を用いる。本方法の一態様は、与えられたデータベースにおけるパターンのコンパクトな表現を含む。表現は、位置情報にマッピングされるパターン情報を含む。この効果的な表現は、任意の特定のパターンが高速に位置付けられることを可能とする。
本方法は、複数のアレイ、すなわち、位置パターン情報を追跡するための相互参照データを具備する少なくとも2つのアレイを利用することによって前述の単一アレイ技術を向上させる。アレイは、通常、対応付けられるデータの容易な相互参照を可能とするために並列に整列される。しかし、整列の他の方法およびアレイにおけるデータを相互参照する他の方法を用いることが可能である。
第1アレイは、ここで“index[ ] アレイ”と呼び、データベースのデータのパック形式の表現である。第1アレイは“インデックス”値から構成される。第2アレイは、ここで“location[ ] アレイ”と呼び、データベースにおける特定の部分パターンの位置を指し、パターン位置情報を具備する。第1アレイのインデックス値は第2アレイの位置情報と一組にされる。
任意の特定のインデックスを発見するために、index[ ] アレイは、インデックスのアレイにおいて特定のインデックスの位置を発見するために探索されなければならない。合致(match)が発見されると(すなわち、特定のクエリーが存在すると)、一組にされたlocation[ ] アレイが、データベースにおけるパターンの位置を発見するために検査される。本発明のコンパクトなアプローチは、より複雑な探索方法に対して少ないメモリ使用をトレードオフする。アレイは、アレイへのインデックスを単に調べるのではなく、合致するパターンを位置付けるために探索される。
データ構造を生成するために、データベースを重複しない領域(chunk)に分割することによって、index[ ] アレイが生成される。各領域は長さkを有する。領域はそれぞれインデックス値に変換される。入力パターンから数値インデックスへの変換は“イデックス付け”として知られる処理である。インデックスはいくつかの方法で計算することが可能である。イデックス付け方法の種類は、とりわけ、ワードサイズ(k)、アルファベットサイズ(a)、および/または、ヌクレオチドまたはペプチド配列のような探索されるパターンの種類に応じて変わる。
一般に、テンプレートがCPUのワードサイズ(通常32または64ビット)に適合するほど十分に小さいならば、領域は基本的な変換を実行することによって直接にインデックスに変換することが可能である。例えば、ヌクレオチドから構成されるパターンについて、各ヌクレオチド塩基はA=0、C=1、G=2、T=3を用いて変換することが可能である。テンプレートがワードサイズに適合するには大き過ぎるならば、領域はハッシュ関数を用いてインデックスに変換することが可能である。
インデックス付けの一実施形態は、インデックス値を割り当てるために直接のマッピング技術を利用することが可能である。64ビット整数がインデックス値を表わし、a=4のサイズのアルファベットが遺伝子のヌクレオチドを表わす特定の場合においてk=32の長さのパターン(文字あたり2ビットすなわち2=4の可能性を許容することは、64ビット/2ビット/文字=32文字を与える)、または、k=12のペプチドのパターン(文字あたり5ビットすなわち2=32の可能性を許容することは、64ビット/5ビット/文字=12文字を与える)を記憶することが可能である。
パターンから数値インデックスへのこの変換処理は、多くの場合、“ハッシング”と呼ばれる。インデックスが最適にまたはほぼ最適に記憶されることが可能である直接のマッピングの間に区別が存在する。ここで“損失の多いハッシング”と呼ばれる技術は、パターンからインデックスへの変換の間に精度が損失する。ゲノムの実例について、k≦32(ヌクレオチドについてa=4)またはk≦12(アミノ酸についてa=20)のときにマッピングは直接であり、あるいは、k>32(a=4)またはk>12(a=20)のときに損失の多いハッシングを用いる。
オプションの損失の多いハッシング方法は、一貫してパターンを疑似乱数にマッピングする複雑な関数である。直接のマッピング関数からハッシュ関数を区分する鍵となる属性は、インデックスの最大値が予めハッシングにおいて知られていることであり、一方、直接に計算する方法では最大値は潜在的に境界付けられていない。ハッシュのインデックス値は常にある範囲に存在する。さらに、ハッシュ関数の特性は、“ハッシュコリジョン”と呼ばれ、時々、2つのパターンを同一のインデックス値にハッシュすることを引き起こす。
各データ領域について、データベースにおける位置は、対応付けられたlocation[ ] アレイに記憶される。location[ ] アレイは、通常、インデックスアレイと並列に、かつindex[ ] アレイの対応付けられたインデックス値のデータを用いて整列されたその位置データを有して配置される。従って、index[ ] アレイにおいて与えられた特定の位置iについて、index[i]は、アレイでの位置iにおけるインデックス値を示す。対応するlocation[ ] アレイにおいて、location[i]は、位置iにおける位置情報を示す。
データベース全体を処理することによってアレイの組が生成されると、index[ ] アレイのデータが整列され、例えば、昇順で整列される。そのような整列は、大きなパターンを探索するために特に望ましい。従って、一組にされたlocation[ ] アレイは、index[ ] アレイにおけるデータと並列な関係でデータを維持するために整列することも可能である。整列されたindex[ ] アレイは、index[ ] アレイにおいて任意のインデックス値が存在するか否かを迅速に発見するために用いられる。
インデックス探索フェーズの間に、任意の“キー”がindex[ ] アレイに存在するか否かについて迅速な判定を行うことが可能である。キーが存在するか否かの迅速な発見のために各種の効果的な方法を利用することが可能である。
大きな値kについて、多くの場合に、特定の正確な合致が発見されない。この共通的な場合を最適化するために、特定のインデックス値がindex[ ]に存在しないかどうかを迅速に判定するために、ここで“bitvector[ ]”と呼ばれるビットベクトルアレイを構成することが可能である。bitvector[ ]は、特定のインデックス値がindex[ ] アレイにおいてどこかで発生するか否かを表わすために単一のビットを記憶する。コンパクトなbitvector[ ]を最初に調べることによって、キーがデータベースに存在しないときにindex[ ] アレイ全体を探索する必要がない。
さらに、index[ ] アレイの効果的な探索は、アレイにおける位置に関して最初の推定(initial guess)とともに補間探索の実行を含むことが可能である。最初の推定はキーの関数として判定される。index[ ] アレイにおけるキーの最も可能性のある位置のこの推定は、標準的な2分探索に対する向上したアプローチである。
任意の特定のキーについて、インデックス探索段階の結果は、インデックスの合致が発見されないこと、あるいは、合致する位置の集合に結合されるインデックスの集合が発見されることを含みうる。
本方法を用いてインデックス付けされたデータベース内での入力探索パターンから合致を発見するために、データベースに対して各パターンを探索することが可能である。探索パターンは、k個の重複する領域(chunk)に区分され、探索パターンを表わす、ここで“search[ ] アレイ”と呼ばれる探索インデックスのアレイに変換される。search[ ] アレイにおけるインデックスのエントリの各々は、上述した方法を用いて探索される。各々のヒット(hit)の探索は多数のヒットを返却しうるので、ここで“chunkhit[ ]”と呼ばれるヒットしたインデックス値の集合が生成される。このアレイの各エントリは、データベース位置情報を記録するエントリである。
ヒットした領域の集合は、その集合をhits[ ]と呼ぶ集合アレイに変換することによって照合することが可能である。hits[ ] アレイにおける各エントリは、領域の度数カウントとともに、探索パターンにおける位置および/またはデータベースにおける位置のような、位置情報への参照である。
ヒットが収集されると、結果の量を減少させるために多数のフィルタ操作が実行される。実行されうる各種のフィルタ操作は、パターン全体の合致をフィルタリングするとともに、特定のヒット(または領域の合致)をフィルタリングすることを含む。フィルタリングすることの特定の種類のいくつかの例は、度数が低過ぎるならば特定のヒットをフィルタリングすること、度数が高過ぎるならば特定のヒットをフィルタリングすること、合致した領域の最大度数が高過ぎるならば全てのヒットを除去すること、x(最大度数)−y(ヒット)の線型関数に閾値を適用することに基づいて全てのヒットを除去することを含む。
探索が実行された後に、ヒットフィルタリング段階からの結果は、ここで“hits[ ]”と呼ばれるヒットのアレイの形式である。選択的に、この結果について多数の順位付け技術を用いることが可能である。そのような順位付け技術のいくつかは、領域のヒットの総数に基づくもの、上記のフィルタリング段階における線形関数、全体のパターンの合致をヒットした領域の間の距離と組み合わせるデルタギャップ関数がある。
出力探索結果はいくつかの方法で要約することが可能である。例えば、出力は、合致するパターンのリスト、合致するパターンのリストとそれらの整列された点数によって順位付けされたそれらの点数、探索文字列と合致した特定の部分パターン、および/または、(bl2seqのような)サードパーティのツールを用いて整列された部分パターンの集合を含むことが可能である。
<例1>
“A T C G T C G T T C A G C A T A C C G T”を具備するヌクレオチド配列である元の入力パターンについて探索が実行される。図1の実例10に表わされているように、入力パターン12は、それにわたって適用されるk=5の重複しない隣接するウィンドウを有する。入力配列パターンは、4つのデータ領域14“ATCGT,CGTTC,AGCAT,ACCGT”に区分される。4つの領域の各々は、図2に表わされているように、並列アレイ表20のindex[ ] アレイ16において10進数のインデックス、例えば32、56、45、19に変換される。location[ ] アレイ18は、元のファイルにおける各データ領域の位置を表わすデータを含む。この例において、インデックス32を有するデータ領域は位置0に存在し、インデックス56を有する領域は位置5に存在し、インデックス45を有する領域は位置10に存在し、インデックス19を有する領域は位置15に存在する。
特定のデータ領域の位置を発見するために、正しいインデックスを有する領域が発見され、対応する位置が相互参照される。並列アレイ表によれば、第1行が45のインデックスを有する領域について検査されるならば、領域は元のファイルにおける位置10において発見される。
大きなパターンについて、並列アレイ表に(長さkの)列が存在する。例えば、人間のゲノムのためのアレイ表は約500,000,000個のエントリを有する。並列アレイ表に多数のエントリが存在するとき、単にアレイを走査して合致するインデックスを調べるために時間を消費し過ぎる。より効果的な探索技術が必要とされる。
第1段階は、インデックスによって並列アレイ表を整列する。本来、位置は探索のために用いられるので、多くの場合、表は位置によって整列される。しかし、この場合、位置よりも領域のインデックスが探索のために用いられるので、整列することが望ましい。この例についての整列されたアレイ22が図3に表わされ、整列されたindex[ ] アレイ16および整列されたlocation[ ] アレイ18を具備する。k=5について8つの要素からなるアレイ表22が必要とされ、これは領域のインデックスのために4つのアレイおよび位置情報のために4つの並列アレイを含む。要素毎に8バイトが用いられるならば、64バイトの記憶装置が必要とされる。
比較すると、単一アレイ技術は、通常、ずっと多くの記憶容量を必要とする。例えば、SSAHAは、Cを領域の数として、4k+1+8Cバイトを必要とする(SSAHA、“A Fast Search Method for Large DNA Databases”、Genome Research、2001年)。これは4128バイトを(4096+32)に変換する。従って、この例によると、SSAHAの処理は、本発明によって整列された同じ構造を記憶するために、本発明の要求する記憶装置より64倍多くのRAMを必要とする。本発明の使用によって実現される節約は実際のデータにおいてkが増加するに従って印象的である。
図4は探索方法の一実施形態を表わす。探索の間に、k=5のテンプレート26は探索文字列にわたってスライドする。各領域はインデックス値にマッピングされる。
図3に表わされている(インデックス、位置)のアレイにおいてインデックスを発見するために利用可能な多数の効果的なアルゴリズムが存在する。これらの方法は、O(log L)の計算量を有する2分探索を含む。2分探索においては、低い/高い境界が発見され、中間において検査される。位置における値が低過ぎまたは高過ぎるならば、境界は調節され処理は繰り返される。
<例2>
現在の探索技術と比較して大きなデータ集合について性能が評価された。ゲノム配列の比較は、本発明を用いておよび現在の探索標準のBLASTを用いて行われた。バルサムポプラの亜種トリコカーパのゲノム5百万HTGの読み出しの各々が互いに比較された(事実上、25百万の比較)。結果として、本方法は、全ての配列の比較においてBLAST法の探索時間より10,782倍高速であった。実験は、2つの64ビット1.8GHzプロセッサおよび12GBのRAMを有し、Linuxが動作するAMD Opteron 244で実行された。本発明を用いると、作業が大きくなるほど、他の現在の探索方法との差が大きくなる。
図5は、本発明の一実施形態によって実行される基本的な目録作成処理のフローチャートを表わす。この処理の最初のステップAにおいて、目録作成されるデータ集合が、多数の固定長のデータ要素に区分される。
この処理の次のステップBは、各データ要素についてのデータ項目となるように構成された各要素に変換関数が適用される。好ましくは、この変換は直接のハッシュ関数によって実現される。
ステップCにおいて、各データ項目は、順序付けられた目録データ構造内に記憶され、好ましくはアレイによって構成される。
ステップDにおいて、各々の記憶されたデータ項目は、データ項目を構成するために用いられるデータ要素の開始メモリアドレスに対応付けられる。好ましくは、このステップは、これらのアドレスを並列アドレスデータ構造に記憶することによって遂行される。
この処理の最後のステップEにおいて、目録データ構造および(好ましい実施形態において提供される)対応付けられた並列アドレスデータ構造の両方は、各データ項目の形態によって与えられる順位付け表示に基づいて整列される。
図6は、本発明の一実施形態によって提供される探索およびパターン検出処理の基本的なフローチャートを表わす。
この処理の最初のステップ100において、探索パターン配列は、このパターンの存在が目録作成されたデータ集合内で検出される場合に受信される。
次のステップ101において、受信された探索パターンにスライドするウィンドウ処理を適用することによって、受信された探索パターンから複数の探索クエリーが構成される。構成される探索クエリーの数は、このスライドするウィンドウ処理に割り当てられた変位値に依存する。
次のステップ102において、与えられた目録データ構造から複数の記憶アドレスが検索され、検索されたアドレスの各々は、ステップ101において構成された探索クエリーと合致するデータ要素に対応付けられる。
最後のステップ103において、検索された記憶アドレスの間の空間的関係を検査することによってパターンを検出するために、検索された記憶アドレスにわたってパターン配列検出処理が実行される。
本発明は特定の実施形態および図面を参照して様々な詳細について説明した。しかし、これらの詳細は本実施形態のいくつかの説明に過ぎず、本発明の範囲についての限定として解釈されるべきでない。さらに、本発明の広い範囲から逸脱することなく、説明されたシステムおよびその使用方法に他の変形または代替を行うことが可能であることが理解されるべきである。
本発明の態様は単なる例によって説明され、特許請求の範囲において定義される範囲から逸脱することなく、変形および付加を行うことが可能であると理解すべきである。
本発明の好ましい実施形態による入力パターンを区分するための一実施形態を表わす。 本発明による、図1の入力パターンを表わす並列アレイのブロック図である。 本発明による、図2の並列アレイを表わす整列されたアレイのブロック図である。 本発明による、図1に表わされた入力パターンを探索するための一実施形態を表わす。 本発明の一実施形態によって実行される基本的な目録作成処理のフローチャートを表わす。 本発明の一実施形態によって提供される基本的な探索およびパターン検出処理のフローチャートを表わす。
符号の説明
10 実例
12 入力パターン
14 データ領域
16 index[ ] アレイ
18 location[ ] アレイ
20 並列アレイ表
22 整列されたアレイ
26 テンプレート

Claims (26)

  1. 複数のデータ記号で構成されるデータ集合の目録を作成する方法であって、
    前記データ記号は前記データ集合内で互いに対する定義された順序を有し、
    前記方法は、
    (1)前記データ集合内に存在する記号の配列の最初から第1データ要素を構成するステップを有し、前記最初のデータ要素は記憶アドレスを有する前記データ集合内の記憶位置において記憶され、
    (2)前記第1データ要素を第1データ項目に変換するステップをさらに有し、前記データ項目は他のデータ項目に対する順位付けが可能であり、
    (3)複数の順次的に配置される記憶位置を定義する順序付けられた目録データ構造を用いて前記第1データ項目を記憶するステップと、
    (4)前記第1データ要素が検索された記憶アドレスを前記第1データ項目に対応付けるステップと、
    (5)前記データ集合からの要求された各データ要素についてステップ(1)から(4)を繰り返すステップと、
    (6)前記目録データ構造内に記憶された前記データ項目を順位付けることによって順序付けられた目録データ構造を整列するステップと、
    をさらに有することを特徴とするデータ集合の目録を作成する方法。
  2. 前記目録データ構造のサイズは、前記データ集合のサイズに実質的に等しい請求項1に記載のデータ集合の目録を作成する方法。
  3. 前記目録データ構造はアレイ(array)で構成される請求項1または2に記載のデータ集合の目録を作成する方法。
  4. 前記データ項目は、並列アドレスデータ構造によって記憶アドレスと対応付けられる請求項1から3のいずれか1項に記載のデータ集合の目録を作成する方法。
  5. 前記並列アドレスデータ構造はアレイで構成される請求項4に記載のデータ集合の目録を作成する方法。
  6. 前記データ項目は、前記目録データ構造内の記憶アドレスの記憶によって記憶アドレスと対応付けられる請求項1から3のいずれか1項に記載のデータ集合の目録を作成する方法。
  7. 前記データ項目は、重複に基づくデータ構造によって記憶アドレスと対応付けられる請求項1から6のいずれか1項に記載のデータ集合の目録を作成する方法。
  8. 前記データ要素に適用される前記変換処理は、数値形式のデータ要素を提供する請求項1から7のいずれか1項に記載のデータ集合の目録を作成する方法。
  9. 前記データ要素に適用される前記変換は、直接のハッシュ関数によって実現される請求項1から8のいずれか1項に記載のデータ集合の目録を作成する方法。
  10. 前記データ要素に適用される前記変換は、損失の多いハッシュ関数によって実現される請求項1から8のいずれか1項に記載のデータ集合の目録を作成する方法。
  11. 前記目録データ構造を用いる探索において検索検証処理が実行される請求項10に記載のデータ集合の目録を作成する方法。
  12. 前記データ要素の最上位の記号は、整列された結果の前記目録データ構造内に記憶されない請求項1から11のいずれか1項に記載のデータ集合の目録を作成する方法。
  13. クラスデータ構造が提供される請求項1から12のいずれか1項に記載のデータ集合の目録を作成する方法。
  14. 前記クラスデータ構造は、データ項目内に存在する固有の最上位の記号の数に等しい多数の記憶位置を定義するアレイによって提供される請求項13に記載のデータ集合の目録を作成する方法。
  15. (7)存在しうる固有のデータ要素の最大数に等しいか、またはより小さい多数の記憶位置を定義する少なくとも1つの順序付けられた内容データ構造を構成するステップと、
    (8)少なくとも1つのデータ要素を各記憶位置と対応付けるステップと、
    (9)前記記憶位置に対応付けられた前記少なくとも1つのデータ要素が前記データ集合内に存在するか否かに応じて正または負の表示を、前記内容データ構造の各記憶位置内に記憶するステップと、
    をさらに有することを特徴とする請求項1から14のいずれか1項に記載のデータ集合の目録を作成する方法。
  16. 前記内容データ構造はアレイで構成される請求項15に記載のデータ集合の目録を作成する方法。
  17. 前記目録データ構造は、データ要素の記号配列から生成された複数の探索クエリーを処理することによって特定のデータ要素の記号配列を発見するために用いられる請求項1から16のいずれか1項に記載のデータ集合の目録を作成する方法。
  18. 前記処理される複数の探索クエリーは、スライドするウィンドウ処理を用いて生成される請求項17に記載のデータ集合の目録を作成する方法。
  19. 前記複数の探索クエリーの処理によって生成される結果は、探索パターン配列検出処理によって処理される請求項18に記載のデータ集合の目録を作成する方法。
  20. 前記探索パターン配列検出処理は、前記探索クエリーによって発見されたデータ要素に対応付けられた記憶アドレスの間の空間的な関係の検査においてパターンの存在を検出する請求項19に記載のデータ集合の目録を作成する方法。
  21. 合致するパターン配列が検出されたか否かを検査するためにエラー許容閾値が用いられる請求項20に記載のデータ集合の目録を作成する方法。
  22. 請求項1から21のいずれか1項に記載の方法によって目録が作成されたデータ集合内の探索パターンの存在を検出する方法であって、
    (1)探索パターン配列を受信するステップと、
    (2)前記受信した探索パターン配列にわたってスライドするウィンドウ処理を実行することによって複数の探索クエリーを構成するステップと、
    (3)前記目録データ構造から複数の記憶アドレスを検索するステップと、を有し、前記記憶アドレスは、構成された前記探索クエリーと合致するデータ要素と対応付けられ、
    (4)受信した前記記憶アドレスの間の空間的な関係を検査することによって受信した前記探索パターン配列の存在を検出するステップと、
    をさらに有する探索パターンの存在を検出する方法。
  23. 合致するパターン配列が検出されたか否かを検査するためにエラー許容閾値が用いられる請求項22に記載の探索パターンの存在を検出する方法
  24. 請求項1から23のいずれか1項に記載のデータ集合の目録を作成する方法を実行するために使用されるコンピュータ読み取り可能な媒体に記憶されたコンピュータが実行可能な命令。
  25. 請求項1から21のいずれか1項に記載のデータ集合の目録を作成する方法を実行するために使用される、コンピュータが実行可能な命令が記憶されたコンピュータ読み取り可能な媒体。
  26. 添付図面および/または例を参照して実質的に説明され、かつ表わされたデータ集合の目録を作成する方法。
JP2007516418A 2004-06-18 2005-06-17 データ集合の目録作成および探索のための方法およびシステム Pending JP2008506165A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US58115604P 2004-06-18 2004-06-18
PCT/NZ2005/000134 WO2005124596A1 (en) 2004-06-18 2005-06-17 Data collection cataloguing and searching method and system

Publications (1)

Publication Number Publication Date
JP2008506165A true JP2008506165A (ja) 2008-02-28

Family

ID=35509906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007516418A Pending JP2008506165A (ja) 2004-06-18 2005-06-17 データ集合の目録作成および探索のための方法およびシステム

Country Status (5)

Country Link
US (1) US7640256B2 (ja)
EP (1) EP1769398A4 (ja)
JP (1) JP2008506165A (ja)
AU (1) AU2005255348B2 (ja)
WO (1) WO2005124596A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010091023A2 (en) * 2009-02-03 2010-08-12 Complete Genomics, Inc. Indexing a reference sequence for oligomer sequence mapping
WO2010091021A2 (en) * 2009-02-03 2010-08-12 Complete Genomics, Inc. Oligomer sequences mapping
EP2394165A4 (en) * 2009-02-03 2013-12-11 Complete Genomics Inc ASSIGNMENT OF OLIGOMER SEQUENCES
DK2511843T3 (en) * 2009-04-29 2017-03-27 Complete Genomics Inc METHOD AND SYSTEM FOR DETERMINING VARIATIONS IN A SAMPLE POLYNUCLEOTIDE SEQUENCE IN TERMS OF A REFERENCE POLYNUCLEOTIDE SEQUENCE
WO2011145955A1 (en) * 2010-05-20 2011-11-24 Real Time Genomics, Inc. Method and system for sequence correlation
EP2500837A1 (en) * 2011-03-11 2012-09-19 Qlucore AB Method for robust comparison of data
US20130091266A1 (en) 2011-10-05 2013-04-11 Ajit Bhave System for organizing and fast searching of massive amounts of data
WO2013096620A1 (en) * 2011-12-20 2013-06-27 Baym Michael H Compressing, storing and searching sequence data
US9600625B2 (en) 2012-04-23 2017-03-21 Bina Technologies, Inc. Systems and methods for processing nucleic acid sequence data
US20130297624A1 (en) * 2012-05-07 2013-11-07 Microsoft Corporation Interoperability between Map-Reduce and Distributed Array Runtimes
GB2506523A (en) 2012-08-31 2014-04-02 Real Time Genomics Inc A computerised assignment of genomic sequence values based on multiple reads and probabilistic analysis
US10726942B2 (en) 2013-08-23 2020-07-28 Complete Genomics, Inc. Long fragment de novo assembly using short reads
US20150169682A1 (en) * 2013-10-18 2015-06-18 Google Inc. Hash Learning
EP3189478A4 (en) * 2014-09-03 2018-03-07 The Dun and Bradstreet Corporation System and process for analyzing, qualifying and ingesting sources of unstructured data via empirical attribution
US9811391B1 (en) * 2016-03-04 2017-11-07 Color Genomics, Inc. Load balancing and conflict processing in workflow with task dependencies
US10853130B1 (en) 2015-12-02 2020-12-01 Color Genomics, Inc. Load balancing and conflict processing in workflow with task dependencies
CN106202154B (zh) * 2016-06-21 2019-04-02 南开大学 一种基于重复数据删除架构的倒排索引表示方法及系统
US11550751B2 (en) * 2016-11-18 2023-01-10 Microsoft Technology Licensing, Llc Sequence expander for data entry/information retrieval
KR102594625B1 (ko) * 2017-03-19 2023-10-25 오펙-에슈콜롯 리서치 앤드 디벨롭먼트 엘티디 K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법
US11183270B2 (en) * 2017-12-07 2021-11-23 International Business Machines Corporation Next generation sequencing sorting in time and space complexity using location integers

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799299A (en) * 1994-09-14 1998-08-25 Kabushiki Kaisha Toshiba Data processing system, data retrieval system, data processing method and data retrieval method
US5742807A (en) * 1995-05-31 1998-04-21 Xerox Corporation Indexing system using one-way hash for document service
US6023659A (en) * 1996-10-10 2000-02-08 Incyte Pharmaceuticals, Inc. Database system employing protein function hierarchies for viewing biomolecular sequence data
US5966712A (en) * 1996-12-12 1999-10-12 Incyte Pharmaceuticals, Inc. Database and system for storing, comparing and displaying genomic information
GB9811574D0 (en) * 1998-05-30 1998-07-29 Ibm Indexed file system and a method and a mechanism for accessing data records from such a system
US6261782B1 (en) * 1999-04-06 2001-07-17 Yale University Fixed address analysis of sequence tags
EP1316023A2 (en) 1999-08-11 2003-06-04 Institute of Medicinal Molecular Design, Inc. Specific identifiers of amino-acid and base sequences
ATE318932T1 (de) * 1999-08-13 2006-03-15 Univ Yale Binär kodierte sequenzmarker
EP1387292A1 (en) 2002-07-26 2004-02-04 LION Bioscience AG Method and apparatus for combining data of biological sequences into a non-redundant data source
US6977153B2 (en) * 2002-12-31 2005-12-20 Qiagen Gmbh Rolling circle amplification of RNA
US7158999B2 (en) * 2004-02-20 2007-01-02 Mainstar Software Corporation Reorganization and repair of an ICF catalog while open and in-use in a digital data storage system
US7618778B2 (en) * 2004-06-02 2009-11-17 Kaufman Joseph C Producing, cataloging and classifying sequence tags

Also Published As

Publication number Publication date
AU2005255348B2 (en) 2009-12-17
WO2005124596A1 (en) 2005-12-29
EP1769398A4 (en) 2009-01-21
US7640256B2 (en) 2009-12-29
EP1769398A1 (en) 2007-04-04
US20080256070A1 (en) 2008-10-16
AU2005255348A1 (en) 2005-12-29

Similar Documents

Publication Publication Date Title
JP2008506165A (ja) データ集合の目録作成および探索のための方法およびシステム
KR101153033B1 (ko) 사본 탐지 및 삭제 방법
Drew et al. Polymorphic malware detection using sequence classification methods
CN106295250B (zh) 二代测序短序列快速比对分析方法及装置
US10649997B2 (en) Method, system and computer program product for performing numeric searches related to biometric information, for finding a matching biometric identifier in a biometric database
US10521441B2 (en) System and method for approximate searching very large data
CA2395327A1 (en) Sequence database search with sequence search trees
US7822700B2 (en) Method for using lengths of data paths in assessing the morphological similarity of sets of data by using equivalence signatures
US20140188396A1 (en) Oligomer sequences mapping
Vaddadi et al. Read mapping on genome variation graphs
WO2011073680A1 (en) Improvements relating to hash tables
Giuliani et al. Computing maximal unique matches with the r-index
Giladi et al. SST: An algorithm for searching sequence databases in time proportional to the logarithm of the database size
Esmat et al. A parallel hash‐based method for local sequence alignment
Somayajulu Index based multiple pattern matching algorithm using DNA sequence and pattern count
CN109727645B (zh) 生物序列指纹
Bonnici et al. A k-mer based sequence similarity for pangenomic analyses
US20170323050A1 (en) Structural analysis of proteins by structural representation and comparison of proteins
KR102614401B1 (ko) 생물학적 서열 정보 핸들링
Xu et al. Covariant evolutionary event analysis for base interaction prediction using a relational database management system for RNA
Kim et al. Metabuli: sensitive and specific metagenomic classification via joint analysis of amino-acid and DNA
Du Chemical molecules search based on graph similarity measure
Jaber et al. Adapting decision tree-based method to index large DNA-protein sequence datasets
Boža et al. Fishing in Read Collections: Memory Efficient Indexing for Sequence Assembly
Bhavsar Search-Optimized Disk Layouts for Suffix-Tree Genomic Indexes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080613

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20091208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20091208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111115