TWI506462B - 用以執行字串搜尋之系統、方法與電腦程式產品 - Google Patents

用以執行字串搜尋之系統、方法與電腦程式產品 Download PDF

Info

Publication number
TWI506462B
TWI506462B TW102138941A TW102138941A TWI506462B TW I506462 B TWI506462 B TW I506462B TW 102138941 A TW102138941 A TW 102138941A TW 102138941 A TW102138941 A TW 102138941A TW I506462 B TWI506462 B TW I506462B
Authority
TW
Taiwan
Prior art keywords
string
substrings
hash table
memory
segments
Prior art date
Application number
TW102138941A
Other languages
English (en)
Other versions
TW201439795A (zh
Inventor
Jacopo Pantaleoni
David Tarjan
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of TW201439795A publication Critical patent/TW201439795A/zh
Application granted granted Critical
Publication of TWI506462B publication Critical patent/TWI506462B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • 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/10Sequence alignment; Homology search
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Biophysics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Description

用以執行字串搜尋之系統、方法與電腦程式產品
本發明有關字串(string),尤其有關執行字串搜尋(string search)。
字串搜尋是現代計算技術的一個重要面向。例如,字串搜尋可用來執行網路搜尋、對正文(text)之大部分作資料庫查詢(database query)、基因體定序(genome sequencing)等。然而,目前用以執行字串搜尋的技術多所限制。
例如,目前用以執行字串搜尋的方法將利用較大記憶體量及耗費大量的時間及資源來執行。因此需要解決這些及/或其他與先前技術有關的問題。
本發明揭示一種用以執行字串搜尋之系統、方法與電腦程式產品。在使用中,識別第一字串及第二字串。另外,利用第一字串及第二字串執行字串搜尋。
100‧‧‧方法
102‧‧‧操作
104‧‧‧操作
200‧‧‧方法
202‧‧‧操作
204‧‧‧操作
206‧‧‧操作
208‧‧‧操作
300‧‧‧方法
302‧‧‧操作
304‧‧‧操作
306‧‧‧操作
308‧‧‧操作
310‧‧‧操作
312‧‧‧操作
314‧‧‧操作
316‧‧‧操作
400‧‧‧系統
401‧‧‧主機處理器
402‧‧‧通訊匯流排
404‧‧‧主記憶體
406‧‧‧繪圖處理器
408‧‧‧顯示器
410‧‧‧次要儲存器
圖1根據一具體實施例顯示用以執行字串搜尋的方法。
圖2根據另一具體實施例顯示用以利用FM-索引(FM-index)執行基因體定序的方法。
圖3根據另一具體實施例顯示用以利用分割表(partitioned table)及分割讀取項片段(partitioned read segment)執行基因體定序的方法。
圖4圖解可建置各種先前具體實施例之各種架構及/或功能的例示性系統。
圖1根據一具體實施例顯示用以執行字串搜尋的方法100。如操作102所示,識別第一字串及第二字串。在一具體實施例中,第一字串可包括建置為位元組(byte)陣列的字元(character)序列。在另一具體實施例中,第一字串可表示一特定要素(element)。例如,第一字串可表示一或多個網頁的內容。在另一實例中,第一字串可表示正文的一大部分。
在又另一實例中,第一字串可表示基因體的全部或一部分。例如,第一字串可表示有機體遺傳資訊的全部或一部分,及可包括一或多個基因及非編碼(non-coding)DNA、RNA序列等。在另一具體實施例中,第一字串可表示一參考基因體。例如,第一字串可表示代表一例示性基因組的數位核酸序列(digital nucleic acid sequence)。
另外,在一具體實施例中,第二字串可包括搜尋字串。例如,第二字串可包括要在第一字串內搜尋的字串。在另一具體實施例中,第二字串可表示基因體的全部或一部分。例如,第二字串可表示一讀取項(read)(如,從基因體內特定位置讀取之基因體的一部分等)。在又另一具體實施例中,第二字串可表示與第一字串表示之基因體不同之基因體的一部分。例如,第二字串可表示取樣基因體(sampled genome)的一部分,及第一 字串可表示參考基因體的整體,其與取樣基因體有所區別。在另一具體實施例中,可藉由從記憶體讀取第一字串及第二字串而識別第一字串及第二字串。
此外,如操作104所示,利用第一字串及第二字串執行字串搜尋。在一具體實施例中,執行字串搜尋可包括在第一字串內執行第二字串的搜尋,以決定第一字串是否包含第二字串。在另一具體實施例中,執行字串搜尋可包括對照第一字串比對(align)第二字串。
還有,在一具體實施例中,執行字串搜尋可包括儲存第一字串於資料結構(data structure)中。例如,執行字串搜尋可包括儲存第一字串於FM-索引中。例如,第一字串可基於Burrows-Wheeler變換(Burrows-Wheeler transform),儲存於壓縮全文子字串索引(compressed full-text substring index)中。在另一具體實施例中,第一字串可分割成子字串,及此類子字串可儲存於FM-索引中。
還有,在一具體實施例中,執行字串搜尋可包括儲存第一字串於記憶體中。例如,執行字串搜尋可包括儲存第一字串於晶片上記憶體中,儲存第一字串於隨機存取記憶體(RAM)中等。在另一具體實施例中,執行字串搜尋可包括將第二字串劃分成複數個部分。例如,執行字串搜尋可包括將第二字串劃分成複數個非重疊片段(non-overlapping segment)。
此外,在一具體實施例中,執行字串搜尋可包括在儲存第一字串的資料結構內針對第二字串之複數個部分的各者執行一或多個查找(lookup)(如,搜尋等),以決定第二字串之複數個部分的各者是否儲存在該資料結構中。在另一具體實施例中,執行字串搜尋可包括基於該一或多個查找,決定第一字串及第二字串之間的差異。
此外,在一具體實施例中,可在執行字串搜尋時(如,在對儲存第一字串的資料結構執行第二字串的一或多個查找之前等),使用過濾器(filter)。例如,Bloom過濾器(如,節省空間的機率資料結構(space-efficient probabilistic data structure))可用來測試第二字串是否位在儲存第一字串的資料結構內。在另一實例中,若過濾器指示第二字串不在儲存第一字串的資料結構內,可不對該資料結構執行第二字串的一或多個查找。
還有,在一具體實施例中,執行字串搜尋可包括儲存第一字串於雜湊表(hash table)中(如,使用雜湊函數以映射(map)鍵值(key)至關聯值(associated value)的資料結構等)。在另一具體實施例中,執行字串搜尋可包括將儲存第一字串的雜湊表分割成複數個片段。在又另一具體實施例中,執行字串搜尋可包括將複數個片段的各者分類。例如,可區分複數個片段的各者,致使相鄰片段關於一或多個因素(factor)比不相鄰片段更相似。在另一實例中,複數個片段的各者可與複數個預定類別之一者相關聯。
還有,在一具體實施例中,執行字串搜尋可包括建構(construct)複數個新的雜湊表,其中各新的雜湊表與預定類別相關聯。在另一具體實施例中,執行字串搜尋可包括將與特定類別相關聯的所有片段儲存於與該特定類別相關聯之新的雜湊表中。在又另一具體實施例中,新的這些雜湊表可小於儲存第一字串的雜湊表。
另外,在一具體實施例中,執行字串搜尋可包括將第二字串分割成複數個子字串。在另一具體實施例中,執行字串搜尋可包括將複數個子字串分類。例如,可區分複數個子字串的各者,致使相鄰子字串關於一或多個因素比不相鄰子字串更相似。在另一實例中,複數個子字串的各者可與複數個預定類別相關聯(如,複數個預定類別與儲存該複數個片段之新的雜湊表相關聯等)。在又另一具體實施例中,可使用基數排序(radix sort),使複數個子字串的各者與複數個預定類別的一者相關聯。
再者,在一具體實施例中,執行字串搜尋可包括載入新的雜湊表之一者至記憶體。例如,新的雜湊表之一者可載入晶片上記憶體、隨機存取記憶體(RAM)等。在另一具體實施例中,執行字串搜尋可包括識別與載入雜湊表相關聯的類別,及識別與該類別相關聯的一或多個子字串。 在又另一具體實施例中,執行字串搜尋可包括在載入記憶體之該新的雜湊表內執行第二字串之一或多個子字串之各者的一或多個查找(如,搜尋等),以決定第二字串之複數個子字串的各者是否儲存在該新的雜湊表內。
還有,在一具體實施例中,複數個新的雜湊表的各者可載入與相異處理器(distinct processor)相關聯的記憶體,及各相異處理器可利用與雜湊表類別相關聯的一或多個子字串,對其特定新的雜湊表執行字串搜尋。以此方式,字串搜尋可由複數個處理器平行執行。另外,可減少執行字串搜尋所需要的記憶體量。再者,可藉由在較少量的快速記憶體中執行字串搜尋來增加效能。
現將針對可視使用者需要而建置或不建置上述構造的各種選擇性架構及特徵,提出更多的解說性資訊。請特別注意,以下資訊是為了解說的目的而提出,因此不應以任何方式被視為具有限制性。可視需要在排除或包含所述其他特徵的情況下併入任何以下特徵。
圖2根據另一具體實施例顯示用以利用FM-索引執行基因體定序的方法200。作為一選項,方法200可在圖1之功能的背景中實施。然而,方法200當然也可在任何所要環境中建置。亦請注意,上述定義在本說明期間均適用。
如操作202所示,識別取樣基因體及參考基因體。在一具體實施例中,參考基因體可包括代表例示性基因組的數位核酸序列。在另一具體實施例中,取樣基因體可包括取樣以與參考基因體相比較的數位核酸序列。
另外,如操作204所示,從取樣基因體產生一讀取項。在一具體實施例中,該讀取項可藉由從取樣基因體內的位置讀取而產生。再者,如操作206所示,將參考基因體儲存於FM-索引中。在一具體實施例中,儲存參考基因體於FM-索引中可包括決定用於參考基因體的複數個子字串。例如,可在用於參考基因體之m=20個連續基底(contiguous base)的所有可能子 字串上建立FM-索引。
還有,在一具體實施例中,參考基因體可儲存於記憶體的FM-索引中。例如,參考基因體可儲存於晶片上記憶體、隨機存取記憶體(RAM)等的FM-索引中。還有,如操作208所示,對儲存於FM-索引中的參考基因體比對該讀取項。在一具體實施例中,對參考基因體比對該讀取項可包括將該讀取項劃分成非重疊片段。例如,該讀取項可劃分成m個鹼基對(base pair)各者的n/m個非重疊片段。
另外,在一具體實施例中,對參考基因體比對該讀取項可包括在FM-索引中執行各片段的查找。以此方式,使用FM-索引儲存參考基因體可使儲存參考基因體所需的儲存量減到最少。再者,可增加存取參考基因體的速度。
還有,在一具體實施例中,可在對參考基因體比對該讀取項時使用Bloom過濾器。例如,可在查找中使用Bloom過濾器以決定各片段是否位在FM-索引中。在另-實例中,若Bloom過濾器查找無法傳回片段在FM-索引內的結果(如,若Bloom過濾器查找找不到該片段等),則可免除對該片段的FM-索引查找。以此方式,可加速該讀取項對參考基因體的比對,及此比對可更有效率地執行。
還有,在一具體實施例中,可利用可擴充核甘酸比對程式(scalable nucleotide alignment program,SNAP)執行比對。例如,請見「DNA Sequence Alignment with SNAP」(Zaharia等人所著),其全文在此以提及方式併入。
圖3根據另一具體實施例顯示用以利用分割表及分割讀取項片段執行基因體定序的方法300。作為一選項,方法300可在圖1至圖2之功能的背景中實施。然而,方法300當然也可在任何所要環境中建置。亦請注意,上述定義在本說明期間均適用。
如操作302所示,識別取樣基因體及參考基因體。另外,如 操作304所示,從取樣基因體產生一讀取項。再者,如操作306所示,將參考基因體儲存於表格中。在一具體實施例中,儲存參考基因體於表格中可包括決定用於參考基因體的複數個子字串。例如,可在用於參考基因體之m=20個連續基底的所有可能子字串上建立表格(如,雜湊表、FM-索引等)。
還有,如操作308所示,分割其中儲存參考基因體的表格。在一具體實施例中,分割表格可包括將表格劃分成複數個較小表格。在另一具體實施例中,分割表格可包括將參考基因體劃分成片段。
還有,如操作310所示,將分割表分類。在一具體實施例中,可根據一組p個鹼基對(如,[2,8]中的p,及其中該組可由前p個鹼基對或特定的p個位置組等形成)將較小表格的各者分類,及可建立4^p個相異表,每個片段類別使用一個表格。
另外,如操作312所示,分割從取樣基因體產生的該讀取項。在一具體實施例中,分割該讀取項可包括將該讀取項劃分成複數個部分。再者,如操作314所示,該分割讀取項的分類與分割表的分類一致。在一具體實施例中,可根據一組p個鹼基對(如,[2,8]中的p,及其中該組可由前p個鹼基對或特定的p個位置組等形成)將該讀取項之部分的各者分類。
在另一具體實施例中,各分割讀取項部分可與較小表格之一者共用分類法,致使各分割讀取項具有唯一對應的較小表格。在又另一具體實施例中,諸分割讀取項部分可使用基數排序以線性複雜度(linear complexity)O(N*p)進行分類,其中N是片段的數目。
在另一具體實施例中,分割表可包括FM-索引,及可使用參考基因體之片段在FM-索引內的位置對該等片段進行分類。例如,參考基因體在FM-索引內的片段可分割成映射至FM-索引中相異間隔(distinct interval)[j,k]的多個部分,及可針對各部分建構不同雜湊表。在另一具體實施例中,諸分割讀取項部分可使用一或多個FM-索引遍歷步進(FM-index traversal step)來分類,直到與諸讀取項部分相關聯的搜尋範圍小到足以觸及 僅一或兩個部分。
還有,如操作316所示,根據分類法(classification)對分割表比對該分割讀取項。在一具體實施例中,可對對應較小表格比對各分割讀取項部分,該分割讀取項部分與此對應較小表格共用一分類法。在另一具體實施例中,對分割表比對該分割讀取項可包括在對應的較小表格中執行各分割讀取項部分的查找。
以此方式,在具有少量快速記憶體的處理器架構上,可將較小表格逐一地載入記憶體。另外,在具有若干處理器的平台上,各處理器可藉由僅載入諸分割讀取項部分與其共用分類法的對應較小表格,處理諸分割讀取項部分的相異分類法。
圖4圖解可建置各種先前具體實施例之各種架構及/或功能的例示性系統400。如圖所示,提供包括至少一個主機處理器(host processor)401的系統400,該處理器連接至通訊匯流排402。系統400亦包括主記憶體404。控制邏輯(軟體)及資料係儲存於主記憶體404中,該記憶體可採用隨機存取記憶體(RAM)的形式。
系統400亦包括繪圖處理器406及顯示器408(即電腦監視器)。在一具體實施例中,繪圖處理器406可包括複數個著色器模組(shader module)、光柵化模組(rasterization module)等。各上述模組甚至可設置在單一半導體平台(single semiconductor platform)上以形成繪圖處理單元(GPU)。
在本說明中,單一半導體平台是指單獨的一元半導體式積體電路或晶片。注意,用語「單一半導體平台」亦可指連接性增加的多晶片模組,其模擬晶片上操作且做出實質上的改良勝於利用傳統的中央處理單元(CPU)及匯流排建置。當然,各種模組亦可根據使用者的需要而分開設置或以半導體平台的各種組合設置。系統亦可利用可包括(但不限於)場可程式閘陣列(field programmable gate array,FPGA)的可組態邏輯(reconfigurable logic)來實現。
系統400亦可包括次要儲存器410。次要儲存器410包括例如:硬碟機及/或可卸除式儲存機(表示軟碟機、磁帶機、光碟機等)。可卸除式儲存機以熟知方式自可卸除式儲存單元讀取及/或寫入至可卸除式儲存單元。
電腦程式、或電腦控制邏輯演算法可儲存在主記憶體404及/或次要儲存器410中。此類電腦程式在執行時,可讓系統400執行各種功能。記憶體404、儲存器410及/或任何其他儲存器為電腦可讀媒體的可能範例。
在一具體實施例中,各種先前圖式的架構及/或功能可在以下背景中建置:主機處理器401、繪圖處理器406、能夠實現主機處理器401及繪圖處理器406二者功能之至少一部分的積體電路(未顯示)、晶片組(即一組設計可作為執行相關功能之單元運作及銷售的積體電路等)、及/或任何其他用於此用途的積體電路。
還有,各種先前圖式的架構及/或功能可在以下背景中建置:一般電腦系統、電路板系統、專用於娛樂的遊戲機系統、特定應用系統、及/或任何其他理想系統。例如,系統400可採取以下形式:桌上型電腦、膝上型電腦、及/或任何其他類型的邏輯。還有,系統400可採取各種其他元件的形式,其包括但不限於:個人數位助理(PDA)元件、行動電話元件、電視等。
再者,雖然未顯示,但系統400為了通訊目的,可耦合至網路(如,電信網路、區域網路(LAN)、無線網路、諸如網際網路的廣域網路(WAN)、對等網路、有線電視網路等)。
儘管上文已經說明各種具體實施例,但應明白,這些具體實施例僅以舉例而非限制的方式呈現。因此,上述例示性具體實施例的任何一項不應限制較佳具體實施例的廣度及範疇,而只能按照以下申請專利範圍及其等效物加以定義。
100‧‧‧方法
102‧‧‧操作
104‧‧‧操作

Claims (20)

  1. 一種方法,包含:識別一第一字串及一第二字串;及儲存該第一字串於一雜湊表中;將儲存該第一字串的該雜湊表分割成複數個片段;透過將該複數個片段之各者與複數個預定類別中之一預定類別相關聯,將該複數個片段之各者分類;透過將該複數個片段中全部與一特定類別相關連之片段儲存於與該特定類別相關連之一對應雜湊表,而建構複數個新的雜湊表;以及利用複數個處理器,根據該複數個新的雜湊表平行地執行一字串搜尋。
  2. 如申請專利範圍第1項所述之方法,更包含:將該第二字串分割成複數個子字串;透過將該複數個子字串之各者與一預定類別相關聯,將該複數個子字串之各者分類。
  3. 如申請專利範圍第2項所述之方法,更包含:載入該複數個新的雜湊表其中之一至一記憶體;識別與該載入該記憶體之雜湊表相關連之一類別;以及識別該複數個子字串中與該類別相關連之一或多個子字串。
  4. 如申請專利範圍第3項所述之方法,其中執行該字串搜尋包括在該載入該記憶體之雜湊表執行該一或多個子字串之各者的一或多個查找,以決定該一或多個子字串之各者是否儲存在該新雜湊表內。
  5. 如申請專利範圍第1項所述之方法,其中該複數個新的雜湊表之各者係載入至與該複數個處理器中之一特定處理器相關連之一記憶體。
  6. 如申請專利範圍第5項所述之方法,其中該複數個處理器中之每一特定處理器係以一關連於該特定處理器之一對應雜湊表執行該字串搜尋的一部分。
  7. 如申請專利範圍第1項所述之方法,其中該複數個新的雜湊表之各者係儲存於隨機存取記憶體中。
  8. 如申請專利範圍第1項所述之方法,其中該第一字串包含一參考基因體,而該該第二字串包含一取樣基因體。
  9. 如申請專利範圍第1項所述之方法,其中當執行該字串搜尋時,使用一過濾器。
  10. 如申請專利範圍第9項所述之方法,其中該過濾器包含一Bloom過濾器。
  11. 一種實施於一非揮發性電腦可讀媒體上的電腦程式產品,包含:用以識別一第一字串及一第二字串的程式碼;及用以儲存該第一字串於一雜湊表中的程式碼;用以將儲存該第一字串的該雜湊表分割成複數個片段的程式碼;用以透過將該複數個片段之各者與複數個預定類別中之一預定類別相關聯,將該複數個片段之各者分類的程式碼; 用以透過將該複數個片段中全部與一特定類別相關連之片段儲存於與該特定類別相關連之一對應雜湊表,而建構複數個新的雜湊表的程式碼;以及用以利用複數個處理器,根據該複數個新的雜湊表平行地執行一字串搜尋的程式碼。
  12. 如申請專利範圍第11項所述之電腦程式產品,更包含:將該第二字串分割成複數個子字串;透過將該複數個子字串之各者與一預定類別相關聯,將該複數個子字串之各者分類。
  13. 如申請專利範圍第12項所述之電腦程式產品,更包含:載入該複數個新的雜湊表其中之一至一記憶體;識別與該載入該記憶體之雜湊表相關連之一類別;以及識別該複數個子字串中與該類別相關連之一或多個子字串。
  14. 如申請專利範圍第13項所述之電腦程式產品,其中執行該字串搜尋包括在該載入該記憶體之雜湊表執行該一或多個子字串之各者的一或多個查找,以決定該一或多個子字串之各者是否儲存在該新雜湊表內。
  15. 一種系統,包含:一記憶體;複數個處理器,連接至該記憶體,用以:- 識別一第一字串及一第二字串;及- 儲存該第一字串於一雜湊表中; - 將儲存該第一字串的該雜湊表分割成複數個片段;- 透過將該複數個片段之各者與複數個預定類別中之一預定類別相關聯,將該複數個片段之各者分類;- 透過將該複數個片段中全部與一特定類別相關連之片段儲存於與該特定類別相關連之一對應雜湊表,而建構複數個新的雜湊表;以及- 利用該複數個處理器,根據該複數個新的雜湊表平行地執行一字串搜尋。
  16. 如申請專利範圍第15項所述之系統,其中該複數處理器更用以:-將該第二字串分割成複數個子字串;-透過將該複數個子字串之各者與一預定類別相關聯,將該複數個子字串之各者分類。
  17. 如申請專利範圍第16項所述之系統,其中該複數處理器更用以:-載入該複數個新的雜湊表其中之一至該記憶體;-識別與該載入該記憶體之雜湊表相關連之一類別;以及-識別該複數個子字串中與該類別相關連之一或多個子字串。
  18. 如申請專利範圍第17項所述之系統,其中執行該字串搜尋包括在該載入該記憶體之雜湊表執行該一或多個子字串之各者的一或多個查找,以決定該一或多個子字串之各者是否儲存在該新雜湊表內。
  19. 如申請專利範圍第15項所述之系統,其中該複數個處理器經由一匯流排耦合至該記憶體。
  20. 如申請專利範圍第15項所述之系統,其中該記憶體包含一隨機存取記憶體,而該複數個新的雜湊表之各者係儲存於該隨機存取記憶體中。
TW102138941A 2012-11-01 2013-10-28 用以執行字串搜尋之系統、方法與電腦程式產品 TWI506462B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/666,884 US8943091B2 (en) 2012-11-01 2012-11-01 System, method, and computer program product for performing a string search

Publications (2)

Publication Number Publication Date
TW201439795A TW201439795A (zh) 2014-10-16
TWI506462B true TWI506462B (zh) 2015-11-01

Family

ID=50489981

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102138941A TWI506462B (zh) 2012-11-01 2013-10-28 用以執行字串搜尋之系統、方法與電腦程式產品

Country Status (4)

Country Link
US (1) US8943091B2 (zh)
CN (1) CN103810229A (zh)
DE (1) DE102013221125A1 (zh)
TW (1) TWI506462B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9361327B1 (en) * 2012-12-28 2016-06-07 Emc Corporation Rolling bloom filter for data with retention policy
CA2938638C (en) * 2013-09-09 2020-10-06 UnitedLex Corp. Interactive case management system
US10020300B2 (en) 2014-12-18 2018-07-10 Agilome, Inc. Graphene FET devices, systems, and methods of using the same for sequencing nucleic acids
US9859394B2 (en) 2014-12-18 2018-01-02 Agilome, Inc. Graphene FET devices, systems, and methods of using the same for sequencing nucleic acids
US9857328B2 (en) 2014-12-18 2018-01-02 Agilome, Inc. Chemically-sensitive field effect transistors, systems and methods for manufacturing and using the same
US10006910B2 (en) 2014-12-18 2018-06-26 Agilome, Inc. Chemically-sensitive field effect transistors, systems, and methods for manufacturing and using the same
US9618474B2 (en) 2014-12-18 2017-04-11 Edico Genome, Inc. Graphene FET devices, systems, and methods of using the same for sequencing nucleic acids
EP3235010A4 (en) 2014-12-18 2018-08-29 Agilome, Inc. Chemically-sensitive field effect transistor
US10216748B1 (en) * 2015-09-30 2019-02-26 EMC IP Holding Company LLC Segment index access management in a de-duplication system
WO2017201081A1 (en) 2016-05-16 2017-11-23 Agilome, Inc. Graphene fet devices, systems, and methods of using the same for sequencing nucleic acids
CN107122222B (zh) * 2017-04-20 2019-02-19 深圳大普微电子科技有限公司 一种字符串的搜索系统及方法
CN113227997A (zh) * 2018-10-23 2021-08-06 辉达公司 使用多个gpu对散列表有效且可扩展地构建和探测
TWI719537B (zh) * 2019-07-16 2021-02-21 國立清華大學 文字比對方法、系統及其電腦程式產品
JP7327100B2 (ja) * 2019-11-15 2023-08-16 富士フイルムビジネスイノベーション株式会社 データ管理システム、データ管理装置及びデータ管理プログラム
WO2023274497A1 (en) 2021-06-28 2023-01-05 Voredos N-hamming distance search and n-hamming distance search index

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377942B1 (en) * 1998-09-04 2002-04-23 International Computers Limited Multiple string search method
TWI235300B (en) * 2003-07-24 2005-07-01 Fu-Ren Liou Management method for integrating network content and digital files
US20120084311A1 (en) * 2010-09-30 2012-04-05 Aisin Aw Co., Ltd. Search support device, search support method and computer-readable storage medium

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736308A (en) * 1984-09-06 1988-04-05 Quickview Systems Search/retrieval system
US5497488A (en) * 1990-06-12 1996-03-05 Hitachi, Ltd. System for parallel string search with a function-directed parallel collation of a first partition of each string followed by matching of second partitions
US5485373A (en) * 1993-03-25 1996-01-16 Taligent, Inc. Language-sensitive text searching system with modified Boyer-Moore process
JP2960340B2 (ja) * 1995-10-20 1999-10-06 富士ゼロックス株式会社 データ検索方法及び装置
US6738779B1 (en) * 2001-02-21 2004-05-18 Telecom Italia S.P.A. Apparatus for and method of multiple parallel string searching
US7017162B2 (en) * 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US7406458B1 (en) * 2002-09-17 2008-07-29 Yahoo! Inc. Generating descriptions of matching resources based on the kind, quality, and relevance of available sources of information about the matching resources
CN1598821A (zh) * 2004-09-07 2005-03-23 东南大学 基于特征的基因组序列数据库的搜索方法
US8732151B2 (en) * 2011-04-01 2014-05-20 Microsoft Corporation Enhanced query rewriting through statistical machine translation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377942B1 (en) * 1998-09-04 2002-04-23 International Computers Limited Multiple string search method
TWI235300B (en) * 2003-07-24 2005-07-01 Fu-Ren Liou Management method for integrating network content and digital files
US20120084311A1 (en) * 2010-09-30 2012-04-05 Aisin Aw Co., Ltd. Search support device, search support method and computer-readable storage medium

Also Published As

Publication number Publication date
TW201439795A (zh) 2014-10-16
CN103810229A (zh) 2014-05-21
US8943091B2 (en) 2015-01-27
DE102013221125A1 (de) 2014-05-08
US20140122509A1 (en) 2014-05-01

Similar Documents

Publication Publication Date Title
TWI506462B (zh) 用以執行字串搜尋之系統、方法與電腦程式產品
Drew et al. Polymorphic malware detection using sequence classification methods
Schbath et al. Mapping reads on a genomic sequence: an algorithmic overview and a practical comparative analysis
Layer et al. Efficient genotype compression and analysis of large genetic-variation data sets
US8725734B2 (en) Sorting multiple records of data using ranges of key values
JP5950285B2 (ja) 予め決められた複数のビット幅のデータに対して操作を行う命令を使用してツリーの検索を行うための方法、並びに、当該命令を使用してツリーの検索を行うためのコンピュータ及びそのコンピュータ・プログラム
WO2015123269A1 (en) System and methods for analyzing sequence data
US20150379015A1 (en) Method and system for scoring texts
Pajuste et al. FastGT: an alignment-free method for calling common SNVs directly from raw sequencing reads
US20200135301A1 (en) Systems and methods for aligning sequences to graph references
Bhattacharya et al. A GPU-accelerated algorithm for biclustering analysis and detection of condition-dependent coexpression network modules
Marchet et al. A resource-frugal probabilistic dictionary and applications in bioinformatics
US20160232226A1 (en) Identifying categories within textual data
US20150370840A1 (en) Efficient storage of related sparse data in a search index
Kallenborn et al. CARE: context-aware sequencing read error correction
JP5398663B2 (ja) データ処理装置及びデータ処理方法及びプログラム
Baskerville et al. Subgraph ensembles and motif discovery using an alternative heuristic for graph isomorphism
CN115878824A (zh) 图像检索系统、方法和装置
Tang et al. Sketch distance-based clustering of chromosomes for large genome database compression
US10867134B2 (en) Method for generating text string dictionary, method for searching text string dictionary, and system for processing text string dictionary
CN112989190B (zh) 一种商品挂载方法、装置、电子设备和存储介质
US20220199202A1 (en) Method and apparatus for compressing fastq data through character frequency-based sequence reordering
CN113591881B (zh) 基于模型融合的意图识别方法、装置、电子设备及介质
US11334607B2 (en) Identifying key words within a plurality of documents
JP7462191B2 (ja) 検索方法及び検索装置