WO2013106989A1 - 一种字符串匹配的方法及装置 - Google Patents

一种字符串匹配的方法及装置 Download PDF

Info

Publication number
WO2013106989A1
WO2013106989A1 PCT/CN2012/070432 CN2012070432W WO2013106989A1 WO 2013106989 A1 WO2013106989 A1 WO 2013106989A1 CN 2012070432 W CN2012070432 W CN 2012070432W WO 2013106989 A1 WO2013106989 A1 WO 2013106989A1
Authority
WO
WIPO (PCT)
Prior art keywords
character
matched
string
matching
bwt
Prior art date
Application number
PCT/CN2012/070432
Other languages
English (en)
French (fr)
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 中国科学院北京基因组研究所
Priority to PCT/CN2012/070432 priority Critical patent/WO2013106989A1/zh
Publication of WO2013106989A1 publication Critical patent/WO2013106989A1/zh

Links

Classifications

    • 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
    • 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

Definitions

  • FIG. 7 is a schematic diagram of a search tree formed by a target character string in an embodiment of the present invention.
  • the programmable logic module 202 is configured to allocate different identifiers to the obtained plurality of to-be-matched character strings, where each character in the to-be-matched character string is corresponding to the identifier of the string to be matched; Each character of each character string to be matched is matched with the target character string in the BWT space according to the BWT search algorithm, and the coordinates of the previous character are the starting position, and the coordinates of the current character are obtained when the character matching is successful; Matches the identifier of the string, and merges the coordinates of the currently obtained character into the matching path of the corresponding string to be matched. When the coordinates of all the characters in the string to be matched are combined, the character to be matched and the target character are determined. The string match was successful.
  • the programmable logic device in this embodiment includes: a query control module 301, a matching module 302, a merge module 303, and a traversal module 304.
  • the programmable logic device is the aforementioned programmable logic module 202 and programmable logic device. Each module in the programmable logic device and each unit in the module correspond to different logic gates for parallel processing.
  • the programmable logic device also includes: a cache module 305, as shown in FIG.
  • the cache module 305 is used to store the initially set coordinates and the obtained plurality of strings to be matched.
  • the SA unit is used to calculate the upper coordinate k and the lower coordinate 1 of the corresponding SA Interval according to the BWT search algorithm and the OCC array.
  • w is the string before a in the short sequence of the gene;
  • C ( a ) is the number of characters whose string a is smaller than a in the short sequence of genes;
  • OCC is the input OCC array;
  • k[w ] and l[w] are the coordinates of the previous character.
  • Step 1001 Obtain a character from the string to be matched, and assign an identifier to the character.
  • Step 1002 Perform k and 1 calculations on the current character respectively. If there is a calculation result and k>l (indicating that the matching is successful), proceed to step 1003, otherwise continue to step 1004.
  • Step 1004 Update the unsuccessful penalty corresponding to the to-be-matched string.
  • Step 1007 Determine the relationship between the determined number of segments and the preset threshold value. If it is greater, the process is terminated. If yes, proceed to step 1008. If not, proceed to step 1009.

Landscapes

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

Abstract

本申请公开了一种字符串匹配的方法,用于提高匹配效率。所述方法包括:为获得的多个待匹配字符串分配不同的标识,其中一个待匹配字符串中的每个字符均对应该待匹配字符串的标识;针对多个待匹配字符串中每个待匹配字符串的每一个字符,依据BWT搜索算法,以前一个字符的坐标为起始位置与BWT空间中的目标字符串进行匹配,并在字符匹配成功时获得当前字符的坐标;依据待匹配字符串的标识,将当前获得的字符的坐标合并到对应的待匹配字符串的匹配路径中;当一个待匹配字符串中所有字符的坐标均合并时,确定该待匹配字符串与目标字符串匹配成功。本申请还公开了用于实现所述方法的装置。

Description

一种字符串匹配的方法及装置 技术领域
本发明涉及电子及计算机技术领域, 特别是涉及字符串匹配的方法及装 置。 背景技术
Burrows- Wheeler转换 ( Burrows-Wheeler Transform, BWT, 巴罗斯 -惠勒 转换)又称块分类压缩( block-sorting compression )。 这种数据压缩算法技术, 将完整的人类基因组序列索引压缩到不到 2GB大小 (这是当前主流台式机甚 至是笔记本电脑都能达到的水平)。 因此, 目前通常数据库釆用 BWT格式索 引存储完整的人类基因组序列。 BWA ( Burrows- Wheeler Alignment, 巴罗斯- 惠勒对齐)算法能够将段短片段序列 (称为 reads )与经 BWT压缩过的参考 基因组序列进行比对, 最终能找出这段短片段序列在参考基因组中的定位。
比对过程主要包括, 参见图 1所示:
步骤 101 : 从数据库中取出索引和由测序产生的基因短序列, 该基因短序 列为完整的人类基因组序列的一部分。
步骤 102:根据从数据库中查询到的索引和基因短序列中的位置信息运用 FM Index算法(保罗.费拉吉纳和乔瓦尔.曼奇尼于 2000年提出的压缩索引算 法 )计算出对应的 OCC数组, OCC数组包括了所有碱基四个字符在该位置的 OCC值。 具体的, 对基因短序列中的每个字符, 将该字符对应的索引, 加上 从 0到待查询位置之间的该字符的数量, 即得到该字符的 OCC值。 其中, 索 引的实质为前一个字符的坐标, 初值为默认的初始索引, 每成功匹配一次, 该索引的值更新为当前匹配成功的字符的坐标, 以作为下一个字符匹配时的 起始位置。
步骤 103: 根据 OCC数组计算出对应的 SA Interval (后缀数组间隔 ) 的 坐标 k和 1。 对于 k, k[aw]=C[a]+OCC[a, k[w]-l]+l ; 对于 1, l=C[a]+OCC[a, l[w]];其中, a为当前匹配的字符, w为基因短序列中 a之前的字符串; C ( a ) 表示字符串 a在基因短序列中比 a小的字符个数; OCC即为输入的 OCC数组; k[w]和 l[w]为前一个字符的坐标。
最终得到的坐标 k和 1便为短片段序列在参考基因组中的 B WT空间的定 位。 目前 BWA算法均在 CPU中实现, CPU是以 reads (基因短序列)为单位 进行比对。 也就是说, 在执行步骤 101时, CPU针对短片段序列中的每个字 符依次取出索引和基因短序列。 当基因短序列的所有字符均执行完步骤 101~103时, CPU再针对下一个 reads进行匹配, 以此类推。 该比对过程的效 率较低。 发明内容
本发明实施例提供一种字符串匹配的方法及装置, 用于提高匹配效率。 一种字符串匹配的方法, 包括以下步骤:
为获得的多个待匹配字符串分配不同的标识, 其中一个待匹配字符串中 的每个字符均对应该待匹配字符串的标识; 针对多个待匹配字符串中每个待匹配字符串的每一个字符,依据 BWT搜 索算法,以前一个字符的坐标为起始位置与 BWT空间中的目标字符串进行匹 配, 并在字符匹配成功时获得当前字符的坐标;
依据待匹配字符串的标识, 将当前获得的字符的坐标合并到对应的待匹 配字符串的匹配路径中;
当一个待匹配字符串中所有字符的坐标均合并时, 确定该待匹配字符串 与目标字符串匹配成功。
一种可编程逻辑装置, 包括:
查询控制模块, 用于为获得的多个待匹配字符串分配不同的标识, 以及 将待匹配字符串以字符为单位发送给匹配模块, 并将该字符对应的标识发送 给合并模块, 其中一个待匹配字符串中的每个字符均对应该待匹配字符串的 匹配模块, 用于针对多个待匹配字符串中每个待匹配字符串的每一个字 符, 依据 BWT搜索算法, 以前一个字符的坐标为起始位置与 BWT空间中的 目标字符串进行匹配, 并在字符匹配成功时获得当前字符的坐标, 并输出给 合并模块;
合并模块, 用于依据待匹配字符串的标识, 将当前获得的字符的坐标合 并到对应的待匹配字符串的匹配路径中, 并将合并后的匹配路径输出给联结 模块;
遍历模块, 用于当一个待匹配字符串中所有字符的坐标均合并时, 确定 该待匹配字符串与目标字符串匹配成功。
一种单板, 包括: 主控模块和多个可编程逻辑模块;
主控模块, 用于向每个可编程逻辑模块发送多个待匹配字符串, 并接收 可编程逻辑模块返回的匹配结果;
可编程逻辑模块, 用于为获得的多个待匹配字符串分配不同的标识, 其 中一个待匹配字符串中的每个字符均对应该待匹配字符串的标识; 针对多个 待匹配字符串中每个待匹配字符串的每一个字符, 依据 BWT搜索算法, 以前 一个字符的坐标为起始位置与 BWT空间中的目标字符串进行匹配,并在字符 匹配成功时获得当前字符的坐标; 依据待匹配字符串的标识, 将当前获得的 字符的坐标合并到对应的待匹配字符串的匹配路径中; 当一个待匹配字符串 中所有字符的坐标均合并时, 确定该待匹配字符串与目标字符串匹配成功。 本发明实施例中由可编程逻辑器件实现以字符为单位的基于 BWT搜索 的匹配。 一个待匹配字符串中的每个字符均对应该待匹配字符串的标识, 将 当前获得的字符的坐标与对应同一待匹配字符串的之前已获得的字符的坐标 合并; 当一个待匹配字符串中所有字符的坐标均合并时, 确定该待匹配字符 串与目标字符串匹配成功。 这样, 可编程逻辑器件可在一个字符的匹配周期 内处理多个字符的匹配, 不需要每个匹配环节等待一个待匹配字符串中所有 字符均完成之后才能进行下一个环节, 明显提高了匹配效率。 并且, 可编程 逻辑器件中的各逻辑门可独立运行, 匹配过程的各个环节由不同的逻辑门实 现, 也就是说匹配过程的各个环节可同步进行, 进一步提高了匹配效率。 k和 1可独立进行计算, 提高了并行度。 附图说明
图 1为现有技术中字符串匹配的方法流程图;
图 2为本发明实施例中单板的结构图;
图 3为本发明实施例中可编程逻辑器件的主要结构图;
图 4为本发明实施例中可编程逻辑器件的详细结构图;
图 5为本发明实施例中目标字符串移位示意图;
图 6为本发明实施例中目标字符串排序后的示意图;
图 7为本发明实施例中目标字符串形成的搜索树的示意图;
图 8为本发明实施例中第一个字符的搜索空间的示意图;
图 9为本发明实施例中字符串匹配的主要方法流程图; 图 10为本发明实施例中字符串匹配的详细方法流程图。 具体实施方式
本发明实施例中由可编程逻辑器件实现以字符为单位的基于 BWT搜索 算法的匹配。 一个待匹配字符串中的每个字符均对应该待匹配字符串的标识, 将当前获得的字符的坐标与对应同一待匹配字符串的之前已获得的字符的坐 标合并; 当一个待匹配字符串中所有字符的坐标均合并时, 确定该待匹配字 符串与目标字符串匹配成功。 这样, 可编程逻辑器件可在一个字符的匹配周 期内处理多个字符的匹配, 不需要每个匹配环节等待一个待匹配字符串中所 有字符均完成之后才能进行下一个环节, 明显提高了匹配效率。 并且, 可编 程逻辑器件中的各逻辑门可独立运行, 匹配过程的各个环节由不同的逻辑门 实现, 也就是说匹配过程的各个环节可同步进行, 进一步提高了匹配效率。
另外, 本实施例中在一个单板上可以有多个可编程逻辑器件并行处理字 符的匹配, 由单板上的主控模块负责各可编程逻辑器件的负载均衡。
参见图 2, 本实施例中的单板包括主控模块 201 和多个可编程逻辑模块 202。 可编程逻辑模块 202即为前述的可编程逻辑器件, 具体为 FPGA ( Field Programmable Gate Array, 现场可编程门阵列 )等。 主控模块 201 可具体为 CPU, DSP (数字信号处理芯片)或 MCU (微处理器)等。
主控模块 201用于向每个可编程逻辑模块 202发送多个待匹配字符串, 并接收可编程逻辑模块 202返回的匹配结果。 主控模块 201还用于在收到匹 配结果后, 如果有待匹配字符串, 则向发送该匹配结果的可编程逻辑模块 202 发送待匹配字符串。 主控模块 201依据与可编程逻辑模块 202之间的带宽或 可编程逻辑模块 202的逻辑门数量向可编程逻辑模块 202发送多个待匹配字 符串, 使待匹配字符串占满整个带宽, 或使可编程逻辑模块 202 的所有逻辑 门均运行在匹配过程上。 并且, 较佳的, 主控模块 201 优先向负荷最轻的可 编程逻辑模块 202发送待匹配字符串, 以便负载均衡。 主控模块 201还可以 为多个待匹配字符串分配不同的标识, 其中一个待匹配字符串中的每个字符 均对应该待匹配字符串的标识。 或者, 为多个待匹配字符串分配不同的标识 的工作由可编程逻辑模块 202实现。
可编程逻辑模块 202用于为获得的多个待匹配字符串分配不同的标识, 其中一个待匹配字符串中的每个字符均对应该待匹配字符串的标识; 针对多 个待匹配字符串中每个待匹配字符串的每一个字符,依据 BWT搜索算法, 以 前一个字符的坐标为起始位置与 BWT空间中的目标字符串进行匹配,并在字 符匹配成功时获得当前字符的坐标; 依据待匹配字符串的标识, 将当前获得 的字符的坐标合并到对应的待匹配字符串的匹配路径中; 当一个待匹配字符 串中所有字符的坐标均合并时, 确定该待匹配字符串与目标字符串匹配成功。
下面对可编程逻辑模块 202的内部结构和进行详细介绍。
参见图 3 , 本实施例中可编程逻辑装置包括: 查询控制模块 301、 匹配模 块 302、 合并模块 303和遍历模块 304。 可编程逻辑装置即为前述的可编程逻 辑模块 202及可编程逻辑器件。 可编程逻辑装置中的各模块及模块内的各单 元均对应不同的逻辑门, 以便实现并行处理。
查询控制 (query )模块 301用于为获得的多个待匹配字符串分配不同的 标识, 以及将待匹配字符串以字符为单位发送给匹配模块, 并将该字符对应 的标识发送给合并模块, 其中一个待匹配字符串中的每个字符均对应该待匹 配字符串的标识。
匹配模块 302用于针对多个待匹配字符串中每个待匹配字符串的每一个 字符, 依据 BWT搜索算法, 以前一个字符的坐标(primary位置) 为起始位 置与 BWT空间中的目标字符串进行匹配,并在字符匹配成功时获得当前字符 的坐标。 该当前字符的坐标为当前字符之前的字符串在 BWT空间中的坐标, 并输出给合并模块。 字符的前后依据字符串中字符的匹配顺序确定, 例如, 字符串 LOO, 如果按照从左到右的顺序读取字符进行匹配, 则中间的 0的前 一个字符为 L; 如果按照从右到左的顺序读取字符进行匹配, 则中间的 0的 前一个字符为 0。
较佳的, 匹配模块 302在以前一个字符的坐标为起始位置要进行匹配时, 针对当前字符分配字符标识, 同一字符串中的不同字符对应不同的标识。 对 当前字符分别进行 k和 1的计算, 然后利用当前字符的字符标识将 k和 1的计 算结果合并得到当前字符的坐标。
合并(merge )模块 303用于依据待匹配字符串的标识, 将当前获得的字 符的坐标合并到对应的待匹配字符串的匹配路径中。 匹配路径是指序列联配 中查找路径与待匹配字符串之间的映射关系。
遍历 (traverse )模块 304用于当一个待匹配字符串中所有字符的坐标均 合并时, 确定该待匹配字符串与目标字符串匹配成功。
若匹配模块 302在字符匹配过程中匹配不成功, 此时存在错配, 插入和 缺失三种情况,则遍历模块 304分别针对三种情况继续在 BWT空间进行匹配。
如果有过多的字符匹配不成功, 则说明待匹配字符串与目标字符串无法 匹配, 或者说没有关联。 因此需要设置一个错误的容忍度。 则若字符匹配不 成功时, 遍历模块 304 更新匹配不成功的罚分, 并判断当前的罚分是否达到 预设的门限值。若未达到,则在 BWT空间上继续匹配。若达到预设的门限值, 则结束待匹配字符串的匹配, 待匹配字符串的匹配失败。 对于每个字符, 每 次匹配不成功均对应有罚分, 错配, 插入和缺失三种情况的罚分可以不同, 也就是三种情况的权重不同, 例如错配的罚分为 1 , 插入的罚分为 2, 缺失的 罚分为 2。 每匹配不成功一次, 便将相应的罚分累加, 得到更新后的罚分, 将 其与预设的门限值比较。
由于针对一个字符在第一次匹配不成功时存在错配, 插入和缺失三种情 况, 可能需要尝试三种情况后才能获得正确的结果。 但是这样需要大量的匹 配操作, 设备的负荷较大。 为解决该问题, 遍历模块 304先将待匹配字符串 与目标字符串进行初配, 针对当前字符, 在匹配不成功时, 在 BWT空间中确 定字符当前位置后存在的初配结果中的段数, 当段数大于预设门限值时, 终 止该待匹配字符串的匹配; 当等于预设门限值时, 根据当前位置后续的初配 结果段从所有可能的查询路径中删除相应的查询路径, 由于初配结果段会对 应错配、 插入或缺失的情况, 所以这些路径都将被删除, 然后从剩余查询路 径中继续匹配; 当小于预设门限时, 则在 BWT空间的所有可能路径上继续匹 配。 其中, 所述 BWT空间为前缀树或后缀树, 查询路径为字符串在树上的查 询路径。 所有可能的查询路径是在树上针对错配, 插入和缺失三种情况的所 有查询路径。
初配是指: 将待匹配字符串与 BWT空间中的目标字符串进行匹配, 针对 当前字符,在字符匹配不成功时,记录该字符之前的字符串的 BWT空间坐标, 并以此字符之前匹配成功的字符串记为一段, 并从匹配不成功的位置起, 继 续将当前字符与 BWT空间中的目标字符串进行匹配,确定第一次匹配成功的 位置, 并将下一个字符以该匹配成功的位置为起始位置, 继续与 BWT空间中 的目标字符串进行匹配, 直到出现匹配不成功的字符, 以此字符之前匹配成 功的字符串记为一段, 或者直到待匹配字符串的每个字符均匹配完毕。 初配 可以从待匹配字符串中的不同字符开始进行多次匹配(初始匹配字符可以由 用户指定), 得到针对不同初始字符的多组片段作为初配结果。 每组片段对应 一个初始字符关于待匹配字符串的初配结果。
本实施例中 BWT 空间中的目标字符串可存储在可编程逻辑装置以外的 存储设备中, 该存储设备可具体为 DDR SDRAM ( Double Data Rate Synchronous Dynamic Random Access Memory 双倍速率同步动态随机存储 器)。 例如, DDR包括两个内存区块 ( RANK ), 每个 RANK包括 8个 BANK (存储阵列)。 每次访问需要启动一个 BANK, 并在一段时间内完成访问。 BANK —次只能处理一个访问请求, 在处理时间内, 不能接受新的请求。 同 时,任意时刻,每个 RANK最多有四个 BANK处于活动状态。 目前在与 BWT 空间中的目标字符串进行匹配时, 对 BANK的访问请求是按照接收请求的顺 序来处理的, 如果多个请求需要访问同一 BANK, 则需要排队, 后续不访问 该 BANK的请求也不能立即处理。 本申请的发明人发现该问题后, 为解决该 问题, 可编程逻辑装置的匹配模块 302在访问 BANK之前, 对当前的所有访 问请求散列排队, 尤其是针对各访问请求需访问的 BANK进行排队, 尽可能 使连续的多个访问请求访问不同的 BANK, 从而减少存储设备带宽的空闲。 实测结果表明, 这一方案可以将数据库访问吞吐量提升四倍左右, 这对于算 法整体的加速比有重大的贡献。
可编程逻辑装置还包括: 緩存模块 305 , 参见图 4所示。 緩存模块 305用 于存储初始设置的坐标和获得的多个待匹配字符串。
本申请的发明人发现, 当字符匹配应用在基因序列匹配方面时, 数据库 的访问在顺序上具有依赖关系,所有的访问都是从 0或者 PRIMARY位置(即 前一个字符的坐标)开始。 根据每一个当前字符, 下一次访问的位置有四种 可能(因为基因有四种碱基), 对应四种不同字符。 这样, 可以将数据库的所 有位置看做从 0和 PRIMARY起始的两颗树, 树的每个节点有四条分支。 这 决定了在树的一定深度内, 对数据库的访问位置局限在一个小的集合内。 由 于每个子序列比对的数据库访问都将从这个局部集合起始, 并且发明人经统 计发现, 基因的待匹配字符串的前几个字符相同的情况比较多, 因此在所述 局部集合存储在某个 BANK中时, 会需要频繁的访问该 BANK, 且一次只能 处理一个访问请求, 影响访问的整体随机性, 造成性能下降。
当釆用多个可编程逻辑装置时, 每个可编程逻辑装置可访问为其唯一配 置的 DDR SDRAM, 以提高访问效率和匹配效率。 为解决该问题, 本实施例中緩存模块 305 包括第一緩存单元和第二緩存 单元。 第一緩存单元可以是 SDRAM ( Synchronous Dynamic Random Access Memory, 同步动态随机存储器), 用于存储初始设置的坐标和获得的多个待 匹配字符串等。 第二緩存单元可以是 Cache (緩存), 用于存储所述局部集合。 当 BWT空间釆用前缀树或后缀树时, 所述局部集合包括从根节点开始的 3、 4层节点的目标字符串及节点间的父子关系。在不使用第二緩存单元时,存储 设备的带宽利用率只有 70%, 0和 PRIMARY所在的通道出现阻塞, 其他通道 可能出现饥饿。 使用第二緩存单元时, 存储设备带宽的利用率达到 90%, 提 高了所有通道的负载均衡。
匹配模块 302包括: 数据库查询单元、 OCC单元和 SA单元。
数据库查询单元用于从数据库中取出 BWT格式的初始索引和目标字符 串。
OCC单元用于根据 BWA算法、 初始索引和目标字符串中的位置信息计 算出对应的 OCC数组。 OCC数组包括了所有可能的字符在该位置的 OCC值。 具体的, 对待匹配字符串中的每个字符, 将该字符对应的初始索引中的起始 索引值, 加上初始索引中从 0到待查询位置之间的该字符的数量, 即得到该 字符的 OCC值。
SA单元用于根据 BWT搜索算法和 OCC数组计算出对应的 SA Interval 的上坐标 k 和下坐标 1。 对于 k, k[aw]=C[a]+OCC[a, k[w]-l]+l ; 对于 1, l=C[a]+OCC[a, l[w]];其中, a为当前匹配的字符, w为基因短序列中 a之前的 字符串; C ( a )表示字符串 a在基因短序列中比 a小的字符个数; OCC即为 输入的 OCC数组; k[w]和 l[w]为前一个字符的坐标。
查询控制 (query )模块 301还可以为每个字符分配标识, 则 SA单元可 以针对一个字符分配计算 k和 1, 然后依据该字符的标识将该字符对应的 k和 1组合。
例如, 目标字符串为 LEELGE$, 字符长度为 7, 则循环移位后如图 5所 示, 将字符按照大小排序, 则排序后的结果如图 6所示。 经 BWT算法可得到 搜索树(即 BWT空间), 如图 7所示。 待匹配字符串为 LE, 长度为 2。
目标字符串 LEELGES存于单板或外部的内存上。
緩存模块 305从主控模块 201处获得并存储待匹配字符串 LE, 以及存储 初始配置的坐标 k和 1的值( 0,6 )。 緩存模块 305将坐标 k和 1的值( 0,6 )和 待匹配字符串 GO的长度 2发送给遍历模块 304。 当前遍历模块 304中 k和 1 的值只有(0,6 ), 则将(0,6 )发送给查询控制模块 301。 查询控制模块 301为 緩存模块 305中的存储待匹配字符串 LE分配标识 EID1 ,以及从緩存模块 305 处获得存储待匹配字符串中的第一个字符 L,则根据遍历模块 304指示的查询 路径, 确定从节点 (0,6 ) 的子节点中匹配。 查询控制模块 301将字符 L、 坐 标( 0,6 )和搜索方向信息发送给数据库查询单元 3021。 数据库查询单元 3021 依据坐标(0,6 )和搜索方向信息从数据库中获得节点(0,6 )的子节点(1,2 )、
( 4,6 )和(3,3 ), 参见图 8所示。 OCC单元 3021依据字符 L计算出 OCC数 组。 SA单元 3022依据 OCC数组计算出 k和 1的新值( 1,2 ), 并将该值发送 给合并模块 303。 合并模块 303将值( 1,2 )合并到 EID1对应的默认的空的匹 配路径中, 记录对应的标识 EID1。 合并模块 303将值( 1,2 )发送给遍历模块 304。此时遍历模块 304中有值( 0,6 )和( 1,2 ),依据 BWT搜索算法确定( 1,2 ) 存在子节点, 并且从緩存模块 305中获得第二个字符 E, 确定继续与 (1,2 ) 的子节点匹配。 重复上述过程,合并模块 303将对应 EID1的字符 E对应的坐 标(4,4 )合并到 EID1的匹配路径。 遍历模块 304确定緩存模块 305中待匹 配字符串的字符均匹配完毕, 则输出匹配结果。 匹配成功, 结果为 (1,2 ),
( 4,4 )。
当有多个待匹配字符串并行匹配时, 例如 OCC单元 3022依据待匹配字 符串 EID1的第一个字符计算出 OCC数组。 此时, 数据库查询单元 3021可以 针对待匹配字符串 EID2的第一个字符查询数据库。从而实现可编程逻辑装置 大概在一个待匹配字符串的匹配周期内实现多个待匹配字符串的匹配。
可编程逻辑装置中各模块之间的逻辑门关系为: 例如, 釆用逻辑门百分 比, 查询控制模块 301、 匹配模块 302、 合并模块 303、 遍历模块 304和緩存 模块 305对应的逻辑门百分比为: 3%~4%、 35-40%%, 4%~5%、 35%~40% 和 15%~20%, 百分比和等于 1。 该逻辑门的比例关系是依据各模块的运算量 设置的, 是一种较佳配比方案, 当然也可以在适当的范围内调整该配比关系。
以上是单板及可编程逻辑装置的介绍, 下面对字符串匹配的过程进行描 述。
参见图 9, 本实施例中字符串匹配的主要方法流程如下:
步骤 901 : 为获得的多个待匹配字符串分配不同的标识, 其中一个待匹配 字符串中的每个字符均对应该待匹配字符串的标识。
步骤 902: 针对多个待匹配字符串中每个待匹配字符串的每一个字符,依 据 BWT搜索算法, 以前一个字符的坐标为起始位置与 BWT空间中的目标字 符串进行匹配, 并在字符匹配成功时获得当前字符的坐标。 该当前字符的坐 标为当前字符之前的字符串在 BWT空间中的坐标。
较佳的, 在以前一个字符的坐标为起始位置要进行匹配时, 针对当前字 符分配字符标识, 同一字符串中的不同字符对应不同的标识。 对当前字符分 别进行 k和 1的计算, 然后利用当前字符的字符标识将 k和 1的计算结果合并 得到上述坐标。
步骤 903: 依据待匹配字符串的标识, 将当前获得的字符的坐标合并到对 应的待匹配字符串的匹配路径中。 匹配路径是指序列联配中查找路径与待匹 配字符串之间的映射关系。
步骤 904: 当一个待匹配字符串中所有字符的坐标均合并时, 确定该待匹 配字符串与目标字符串匹配成功。
针对多个待匹配字符串中每个待匹配字符串的第一个字符, 前一个字符 的坐标是初始设置的。
若在字符匹配过程中匹配不成功, 此时存在错配, 插入和缺失三种情况, 则分别针对三种情况继续在 BWT空间进行匹配。
如果有过多的字符匹配不成功, 则说明待匹配字符串与目标字符串无法 匹配, 或者说没有关联。 因此需要设置一个错误的容忍度。 则若字符匹配不 成功时, 更新匹配不成功的罚分, 并判断当前的罚分是否达到预设的门限值。 若未达到, 则在 BWT空间上继续匹配。 若达到预设的门限值, 则结束待匹配 字符串的匹配, 待匹配字符串的匹配失败。 对于每个字符, 每次匹配不成功 均对应有罚分, 错配, 插入和缺失三种情况的罚分可以不同, 也就是三种情 况的权重不同, 例如错配的罚分为 1 , 插入的罚分为 2, 缺失的罚分为 2。 每 匹配不成功一次, 便将相应的罚分累加, 得到更新后的罚分, 将其与预设的 门限值比较。
由于针对一个字符在第一次匹配不成功时存在错配, 插入和缺失三种情 况, 可能需要尝试三种情况后才能获得正确的结果。 但是这样需要大量的匹 配操作, 设备的负荷较大。 为解决该问题, 先将待匹配字符串与目标字符串 进行初配, 针对当前字符, 在匹配不成功时, 在 BWT空间中确定字符当前位 置后存在的初配结果中的段数, 当段数大于预设门限值时, 终止该待匹配字 符串的匹配; 当等于预设门限值时, 根据当前位置后续的初配结果段从所有 可能的查询路径中删除相应的查询路径, 从剩余查询路径中继续匹配; 当小 于预设门限时,则在 BWT空间的所有可能路径上继续匹配。其中,所述 BWT 空间为前缀树或后缀树, 查询路径为字符串在树上的查询路径。 所有可能的 查询路径是在树上针对错配, 插入和缺失三种情况的所有查询路径。
参见图 10, 本实施例中字符串匹配的详细方法流程如下:
为获得的待匹配字符串分配标识,并将待匹配字符串与 BWT空间中的目 标字符串进行初配, 得到初配结果。
步骤 1001 : 从待匹配字符串中获得一个字符, 并为该字符分配标识。 步骤 1002: 对当前字符分别进行 k和 1的计算, 若均有计算结果且 k>l (表示匹配成功), 则继续步骤 1003 , 否则继续步骤 1004。
步骤 1003: 利用当前字符的字符标识将 k和 1的计算结果合并得到当前 字符的坐标。 继续步骤 1010。
步骤 1004: 更新待匹配字符串对应的匹配不成功的罚分。
步骤 1005: 判断当前的罚分是否达到预设的门限值, 若未达到, 则继续 步骤 1006, 否则结束流程。
步骤 1006: 在 BWT空间中确定字符当前位置后存在的初配结果中的段 数。
步骤 1007: 判断确定的段数与预设的门限值的大小关系, 若大于, 则结 束流程, 若等于, 则继续步骤 1008 , 若小于则继续步骤 1009。
步骤 1008: 根据当前位置后续的初配结果段从所有可能的查询路径中删 除相应的查询路径, 从剩余查询路径中继续匹配, 继续步骤 1002。
步骤 1009: 在 BWT空间的所有可能路径上继续匹配, 继续步骤 1002。 步骤 1010: 依据待匹配字符串的标识, 将当前获得的字符的坐标合并到 对应的待匹配字符串的匹配路径中。
步骤 1011 : 判断待匹配字符串中是否有未参与匹配的字符, 若有, 则继 续步骤 1001 , 否则继续步骤 1012。
步骤 1012: 当一个待匹配字符串中所有字符的坐标均合并时, 确定该待 匹配字符串与目标字符串匹配成功。
本发明实施例中由可编程逻辑器件实现以字符为单位的基于 BWA算法 的匹配。 一个待匹配字符串中的每个字符均对应该待匹配字符串的标识, 将 当前获得的字符的坐标与对应同一待匹配字符串的之前已获得的字符的坐标 合并; 当一个待匹配字符串中所有字符的坐标均合并时, 确定该待匹配字符 串与目标字符串匹配成功。 这样, 可编程逻辑器件可在一个字符的匹配周期 内处理多个字符的匹配, 不需要每个匹配环节等待一个待匹配字符串中所有 字符均完成之后才能进行下一个环节, 明显提高了匹配效率。 并且, 可编程 逻辑器件中的各逻辑门可独立运行, 匹配过程的各个环节由不同的逻辑门实 现, 也就是说匹配过程的各个环节可同步进行, 进一步提高了匹配效率。
本领域内的技术人员应明白, 本发明的实施例可提供为方法、 系统、 或 计算机程序产品。 因此, 本发明可釆用完全硬件实施例、 完全软件实施例、 或结合软件和硬件方面的实施例的形式。 而且, 本发明可釆用在一个或多个 其中包含有计算机可用程序代码的计算机可用存储介质 (包括但不限于磁盘 存储器和光学存储器等 )上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、 设备(系统)、 和计算机程序产 品的流程图和 /或方框图来描述的。 应理解可由计算机程序指令实现流程图 和 /或方框图中的每一流程和 /或方框、 以及流程图和 /或方框图中的流程 和 /或方框的结合。 可提供这些计算机程序指令到通用计算机、 专用计算机、 嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器, 使得通 过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流 程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能的 装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设 备以特定方式工作的计算机可读存储器中, 使得存储在该计算机可读存储器 中的指令产生包括指令装置的制造品, 该指令装置实现在流程图一个流程或 多个流程和 /或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的 处理, 从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图 一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能的步 骤。
发明的精神和范围。 这样, 倘若本发明的这些修改和变型属于本发明权利要 求及其等同技术的范围之内, 则本发明也意图包含这些改动和变型在内。

Claims

权 利 要 求
1、 一种字符串匹配的方法, 其特征在于, 包括以下步骤:
为获得的多个待匹配字符串分配不同的标识, 其中一个待匹配字符串中 的每个字符均对应该待匹配字符串的标识; 并行处理所述多个待匹配字符串, 并针对每个待匹配字符串的每一个字 符, 依据 BWT搜索算法, 以前一个字符的坐标为起始位置与 BWT空间中的 目标字符串进行匹配, 并在字符匹配成功时获得当前字符的坐标;
依据待匹配字符串的标识, 将当前获得的字符的坐标合并到对应的待匹 配字符串的匹配路径中;
当一个待匹配字符串中所有字符的坐标均合并时, 确定该待匹配字符串 与目标字符串匹配成功。
2、 如权利要求 1所述的方法, 其特征在于, 针对多个待匹配字符串中每 个待匹配字符串的第一个字符, 其前一个字符的坐标是初始设置的。
3、 如权利要求 1所述的方法, 其特征在于, 针对多个待匹配字符串中每 个待匹配字符串的每一个字符, 依据 BWT搜索算法, 以前一个字符的坐标为 起始位置与 BWT空间中的目标字符串进行匹配,并在字符匹配成功时获得当 前字符的坐标, 具体包括:
在以前一个字符的坐标为起始位置要进行匹配时, 针对当前字符分配字 符标识, 并依据前一个字符的坐标对当前字符分别进行 k和 1的计算, 利用当 前字符的字符标识将 k和 1的计算结果合并得到当前字符的坐标, 其中, 同一 字符串中的不同字符对应不同的标识, 其中 k和 1 分别是 BWT空间中后缀 数组间隔的开始位置和结束位置。
4、 如权利要求 1所述的方法, 其特征在于, 还包括步骤: 若在字符匹配 过程中匹配不成功, 则分别针对错配, 插入和缺失三种情况, 根据与该三种 情况对应的匹配策略, 将当前字符继续与 BWT 空间中的目标字符串进行匹 配。
5、 如权利要求 4所述的方法, 其特征在于, 分别针对错配, 插入和缺失 三种情况将当前字符继续与 BWT空间中的目标字符串进行匹配之前,还包括 步骤: 更新匹配不成功的罚分, 并判断当前的罚分是否达到预设的门限值; 若未达到门限值, 则分别针对错配, 插入和缺失三种情况继续与 BWT空 间中的目标字符串进行匹配。
6、 如权利要求 5所述的方法, 其特征在于, 在将待匹配字符串与 BWT 空间中的目标字符串进行匹配之前, 还包括步骤: 将待匹配字符串与 BWT空 间中的目标字符串进行初配, 得到包括多个初配结果段;
在当前的罚分未达到门限值时, 还包括步骤: 在 BWT空间中确定字符当 前匹配不成功的位置后存在的初配结果段的段数, 并将确定的段数与预设的 门限值比较;
当段数大于预设门限值时, 终止该待匹配字符串的匹配;
当段数等于预设门限值时,根据当前位置后续的初配结果段从 BWT空间 的所有可能的查询路径中删除相应的查询路径, 从剩余查询路径中继续匹配; 当段数小于预设门限时, 则在 BWT空间的所有可能路径上继续匹配。
7、 一种可编程逻辑装置, 其特征在于, 包括:
查询控制模块, 用于为获得的多个待匹配字符串分配不同的标识, 以及 将待匹配字符串以字符为单位发送给匹配模块, 并将该字符对应的标识发送 给合并模块, 其中一个待匹配字符串中的每个字符均对应该待匹配字符串的 标识;
匹配模块, 用于并行处理所述多个待匹配字符串, 并针对每个待匹配字 符串的每一个字符,依据 BWT搜索算法, 以前一个字符的坐标为起始位置与 BWT空间中的目标字符串进行匹配, 并在字符匹配成功时获得当前字符的坐 标, 并输出给合并模块;
合并模块, 用于依据待匹配字符串的标识, 将当前获得的字符的坐标合 并到对应的待匹配字符串的匹配路径中, 并将合并后的匹配路径输出给联结 模块; 遍历模块, 用于当一个待匹配字符串中所有字符的坐标均合并时, 确定 该待匹配字符串与目标字符串匹配成功。
8、 如权利要求 7所述的装置, 其特征在于, 还包括: 緩存模块, 用于存 储初始设置的坐标和获得的多个待匹配字符串。
9、 如权利要求 7所述的装置, 其特征在于, 针对多个待匹配字符串中每 个待匹配字符串的第一个字符, 前一个字符的坐标是初始设置的。
10、 如权利要求 7 所述的装置, 其特征在于, 查询控制模块还用于在以 前一个字符的坐标为起始位置要进行匹配时, 针对当前字符分配字符标识; 匹配模块依据前一个字符的坐标对当前字符分别进行 k和 1的计算,利用 当前字符的字符标识将 k和 1的计算结果合并得到当前字符的坐标, 其中, 同 一字符串中的不同字符对应不同的标识, 其中 k和 1 分别是 BWT空间中后 缀数组间隔的开始位置和结束位置。
11、 如权利要求 10所述的装置, 其特征在于, 匹配模块包括:
数据库查询单元,用于从数据库中取出 BWT空间的初始索引和目标字符 串;
OCC单元, 用于根据 BWT搜索算法、 初始索引和目标字符串中的位置 信息计算出对应的 OCC数组;
SA单元,用于根据 BWT搜索算法和 OCC数组计算出对应的 SA Interval 的上坐标 k和下坐标 1, 并利用当前字符的字符标识将 k和 1的计算结果合并 得到当前字符的坐标。
12、 如权利要求 7 所述的装置, 其特征在于, 若在字符匹配过程中匹配 不成功, 则遍历模块用于分别针对错配, 插入和缺失三种情况确定, 根据与 该三种情况对应的匹配策略,将当前字符继续与 BWT空间中的目标字符串进 行匹配的查询路径, 并通过查询控制模块指示匹配模块依据该查询路径继续 匹配。
13、 如权利要求 12所述的装置, 其特征在于, 遍历模块还用于: 更新匹 配不成功的罚分, 并判断当前的罚分是否达到预设的门限值, 若未达到门限 值, 则分别针对错配, 插入和缺失三种情况确定继续与 BWT空间中的目标字 符串进行匹配的查询路径。
14、如权利要求 13所述的装置, 其特征在于,在将待匹配字符串与 BWT 空间中的目标字符串进行匹配之前,遍历模块还用于:将待匹配字符串与 BWT 空间中的目标字符串进行初配, 得到包括多个初配结果段;
遍历模块还用于: 在当前的罚分未达到门限值时, 在 BWT空间中确定字 符当前匹配不成功的位置后存在的初配结果段的段数, 并将确定的段数与预 设的门限值比较; 当段数大于预设门限值时, 终止该待匹配字符串的匹配; 当段数等于预设门限值时,根据当前位置后续的初配结果段从 BWT空间的所 有可能的查询路径中删除相应的查询路径, 通过查询控制模块指示匹配模块 从剩余查询路径中继续匹配; 当段数小于预设门限时, 通过查询控制模块指 示匹配模块在 BWT空间的所有可能路径上继续匹配。
15、 如权利要求 7所述的装置, 其特征在于, 各模块对应不同的逻辑门。
16、 一种单板, 其特征在于, 包括: 主控模块和多个可编程逻辑模块; 主控模块, 用于向每个可编程逻辑模块发送多个待匹配字符串, 并接收 可编程逻辑模块返回的匹配结果;
可编程逻辑模块, 用于为获得的多个待匹配字符串分配不同的标识, 其 中一个待匹配字符串中的每个字符均对应该待匹配字符串的标识; 针对多个 待匹配字符串中每个待匹配字符串的每一个字符, 依据 BWT搜索算法, 以前 一个字符的坐标为起始位置与 BWT空间中的目标字符串进行匹配,并在字符 匹配成功时获得当前字符的坐标; 依据待匹配字符串的标识, 将当前获得的 字符的坐标合并到对应的待匹配字符串的匹配路径中; 当一个待匹配字符串 中所有字符的坐标均合并时, 确定该待匹配字符串与目标字符串匹配成功。
17、 如权利要求 16所述的单板, 其特征在于, 主控模块还用于在收到匹 配结果后, 如果有待匹配字符串, 则向发送该匹配结果的可编程逻辑模块发 送待匹配字符串。
PCT/CN2012/070432 2012-01-16 2012-01-16 一种字符串匹配的方法及装置 WO2013106989A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/070432 WO2013106989A1 (zh) 2012-01-16 2012-01-16 一种字符串匹配的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/070432 WO2013106989A1 (zh) 2012-01-16 2012-01-16 一种字符串匹配的方法及装置

Publications (1)

Publication Number Publication Date
WO2013106989A1 true WO2013106989A1 (zh) 2013-07-25

Family

ID=48798480

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/070432 WO2013106989A1 (zh) 2012-01-16 2012-01-16 一种字符串匹配的方法及装置

Country Status (1)

Country Link
WO (1) WO2013106989A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138575A (zh) * 2015-07-29 2015-12-09 百度在线网络技术(北京)有限公司 语音文本串的解析方法和装置
GB2530012A (en) * 2014-08-05 2016-03-16 Illumina Cambridge Ltd Methods and systems for data analysis and compression
CN109087368A (zh) * 2018-06-14 2018-12-25 阿里巴巴集团控股有限公司 一种字符串图形化方法和装置
CN112052413A (zh) * 2020-08-28 2020-12-08 上海谋乐网络科技有限公司 Url模糊匹配方法、装置和系统
CN112668667A (zh) * 2021-01-22 2021-04-16 上海华虹宏力半导体制造有限公司 版图文件的扫描方法
CN113887223A (zh) * 2021-09-29 2022-01-04 苏州浪潮智能科技有限公司 一种字符串匹配方法和相关装置
CN117574178A (zh) * 2024-01-15 2024-02-20 国网湖北省电力有限公司信息通信公司 基于fpga的网络流量字符串自动匹配方法和匹配装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1809054A (zh) * 2005-01-21 2006-07-26 华为技术有限公司 基于会话初始协议的消息文本解码器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1809054A (zh) * 2005-01-21 2006-07-26 华为技术有限公司 基于会话初始协议的消息文本解码器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LI, HENG ET AL.: "Fast and accurate short read alignment with Burrows-Wheeler transform", BIOINFORMATICS., vol. 25, no. 14, 2009, pages 1754 - 1760, XP055052861 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2530012A (en) * 2014-08-05 2016-03-16 Illumina Cambridge Ltd Methods and systems for data analysis and compression
CN105138575A (zh) * 2015-07-29 2015-12-09 百度在线网络技术(北京)有限公司 语音文本串的解析方法和装置
CN109087368A (zh) * 2018-06-14 2018-12-25 阿里巴巴集团控股有限公司 一种字符串图形化方法和装置
CN112052413A (zh) * 2020-08-28 2020-12-08 上海谋乐网络科技有限公司 Url模糊匹配方法、装置和系统
CN112052413B (zh) * 2020-08-28 2024-02-13 上海谋乐网络科技有限公司 Url模糊匹配方法、装置和系统
CN112668667A (zh) * 2021-01-22 2021-04-16 上海华虹宏力半导体制造有限公司 版图文件的扫描方法
CN112668667B (zh) * 2021-01-22 2024-05-14 上海华虹宏力半导体制造有限公司 版图文件的扫描方法
CN113887223A (zh) * 2021-09-29 2022-01-04 苏州浪潮智能科技有限公司 一种字符串匹配方法和相关装置
CN113887223B (zh) * 2021-09-29 2023-08-29 苏州浪潮智能科技有限公司 一种字符串匹配方法和相关装置
CN117574178A (zh) * 2024-01-15 2024-02-20 国网湖北省电力有限公司信息通信公司 基于fpga的网络流量字符串自动匹配方法和匹配装置
CN117574178B (zh) * 2024-01-15 2024-04-26 国网湖北省电力有限公司信息通信公司 基于fpga的网络流量字符串自动匹配方法和匹配装置

Similar Documents

Publication Publication Date Title
WO2013106989A1 (zh) 一种字符串匹配的方法及装置
US10261902B2 (en) Parallel processing of a series of data units for writing
CN102929900B (zh) 一种字符串匹配的方法及装置
JP6356675B2 (ja) 集約/グループ化動作:ハッシュテーブル法のハードウェア実装
JP6028567B2 (ja) データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法
CN105117415B (zh) 一种优化的ssd数据更新方法
US10366065B2 (en) Memory efficient lookup structure
TW201837720A (zh) 用於多串流儲存裝置之串流選擇
US20180365277A1 (en) Query Access Optimizations for Tiered Index Architecture
JP5999351B2 (ja) データベース処理装置、方法、プログラム及びデータ構造
CN111858651A (zh) 一种数据处理方法以及数据处理装置
WO2014089828A1 (zh) 访问存储设备的方法和存储设备
US9946461B2 (en) In-flash immutable object processing
CN115712583B (zh) 一种提升分布式缓存跨节点访问性能的方法及装置、介质
Chen et al. A high-throughput FPGA accelerator for short-read mapping of the whole human genome
CN106055679A (zh) 一种多层次缓存感知型索引方法
CN111028897B (zh) 一种基于Hadoop的基因组索引构建的分布式并行计算方法
CN112199304B (zh) 数据预取方法及装置
JP5382383B2 (ja) データベース処理装置、データベース処理方法、プログラム及びデータベースのデータ構造
US9275091B2 (en) Database management device and database management method
CN106484818B (zh) 一种基于Hadoop和HBase的层次聚类方法
CN103761298B (zh) 一种基于分布式架构的实体匹配方法
US9292559B2 (en) Data distribution/retrieval using multi-dimensional index
WO2017161589A1 (zh) 一种字符串序列的压缩索引方法及装置
CN113495901B (zh) 一种面向可变长数据块的快速检索方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12866104

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12866104

Country of ref document: EP

Kind code of ref document: A1