CN106096332A - 面向存储的dna序列的并行快速匹配方法及其系统 - Google Patents
面向存储的dna序列的并行快速匹配方法及其系统 Download PDFInfo
- Publication number
- CN106096332A CN106096332A CN201610485409.6A CN201610485409A CN106096332A CN 106096332 A CN106096332 A CN 106096332A CN 201610485409 A CN201610485409 A CN 201610485409A CN 106096332 A CN106096332 A CN 106096332A
- Authority
- CN
- China
- Prior art keywords
- dna sequence
- matching
- kmer
- hash
- matched
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B25/00—ICT specially adapted for hybridisation; ICT specially adapted for gene or protein expression
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biotechnology (AREA)
- Evolutionary Biology (AREA)
- Genetics & Genomics (AREA)
- Medical Informatics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种面向存储的DNA序列的并行快速匹配方法,应用于DNA序列的压缩存储,所述方法包括:哈希索引构建步骤:基于前缀对FASTA格式的参考基因组构建哈希索引,找出指定前缀的所有kmer并以其为键值建立哈希索引表,每个表项存储对应kmer出现的位置;文件分块步骤:输入FASTQ格式的DNA序列文件,并将所述DNA序列文件进行分块处理;多线程处理步骤:开启多个线程分别处理由线程数决定的若干任务,多个子块同时调用基于kmer哈希索引快速定位的匹配函数,将子块并行匹配到FASTA格式的目标参考基因组,通过存储匹配结果代替原始DNA序列达到压缩存储目的。
Description
技术领域
本发明涉及数据压缩领域,尤其涉及一种面向存储的DNA序列的并行快速匹配方法及其系统。
背景技术
下一代测序技术的发展促进了高通量DNA测序数据的产生,数据指数级的增长速度超过了计算机微处理器和存储设备的增长速度,而高通量DNA测序数据压缩技术是有效解决DNA序列存储和传输的方法。而在应用于压缩存储之前,一种常见做法是将高通量测序数据FASTQ序列文件匹配到已有的基因组即参考基因组中,其中参考基因组文件的格式为FASTA文件格式,存储目标序列和参考基因组的匹配结果代替原始序列达到压缩存储的目的,有效地剔除了冗余信息,只保留记录不同的部分信息。因此碱基匹配就成为了DNA序列压缩存储所需要解决的一个重要问题。
目前主流的FASTQ匹配软件有包括BWA(Burrows-Wheeler Aligner)工具、Bowtie工具,都是基于BWT的匹配方法。但是,基于BWT算法的BWA工具计算量较大,对存储空间要求高,计算机内存消耗多,在运算速度上也较稀疏索引算法慢,内存占用和运算速度上相对于基于稀疏索引算法并不占据优势。同时,Bowtie工具由于考虑质量分数的处理问题,其匹配时间和内存消耗进一步扩大,并且错配情况考虑仅有3个以下,并且不允许序列和参考基因组之间有间隔的存在,例如插入和删除的错误。上述方法都是针对下游序列分析而设计的匹配工具,它们追求匹配结果的完整性和精确性,但在DNA压缩存储中并不适用,特别是在高噪声的DNA数据上。DNA压缩存储要求匹配速度快但对匹配结果的精确性要求可以适当放宽。
此外,现有已存在的这些匹配工具大多使用单线程,程序没有采用多线程级进行并行化的处理,不能充分发挥多核处理器的线程应用的能力,不能够充分利用多个执行内核,不能在特定的时间内执行更多任务,在整个匹配过程中,经常会出现运行速度慢、时间消耗多、内存消耗大等等问题,导致匹配效率非常低。
发明内容
有鉴于此,本发明的目的在于提供一种面向存储的DNA序列的并行快速匹配方法及其系统,旨在解决现有技术中针对DNA序列的匹配效率低的问题。
本发明提出一种面向存储的DNA序列的并行快速匹配方法,应用于DNA序列的压缩存储,其中,所述方法包括:
哈希索引构建步骤:基于前缀对FASTA格式的参考基因组构建哈希索引,找出指定前缀的所有kmer并以其为键值建立哈希索引表,每个表项存储对应kmer出现的位置;
文件分块步骤:输入FASTQ格式的DNA序列文件,并将所述DNA序列文件进行分块处理;
多线程处理步骤:开启多个线程分别处理由线程数决定的若干任务,多个子块同时调用基于kmer哈希索引快速定位的匹配函数,将子块并行匹配到FASTA格式的目标参考基因组,通过存储匹配结果代替原始DNA序列达到压缩存储目的。
优选的,所述哈希索引构建步骤具体包括:
定义以碱基组合“AT”、“CG”为前缀的k个连续碱基称为kmer;
找出FASTA格式的参考基因组中所有“AT”或“CG”前缀的kmer并转化成哈希值;
定义四种碱基“A”、“C”、“G”、“T”的二进制哈希值分别为00、01、10、11,少量存在的“N”、“W”碱基,采用近似规则转换成相应的“A”、“C”、“G”、“T”碱基;
将一个kmer中的碱基分别转换成二进制哈希值,组合起来作为哈希表的一个键值,一个键值关联的哈希表项存储对应kmer在参考基因组中出现的所有位置,由此即构建了哈希索引;
并根据需要调整错误匹配率参数、最小有效匹配长度参数以及匹配线程数参数,并将调整后的多个参数应用到后续匹配运算步骤中。
优选的,所述文件分块步骤还包括:
在进行分块处理之前,预置所需分块的数量;
对原有的DNA序列文件进行文件指针遍历;
计算出每个子块含有的具体的序列的数量。
优选的,所述多线程处理步骤具体包括:
开启与子块数量相应的线程数,并执行调用了基于kmer哈希索引快速定位的匹配函数的线程函数来处理命令;
根据所述线程函数处理命令调用相应匹配函数,同步执行所有线程,直至所有线程执行完毕;
在匹配函数中,找出待匹配的DNA序列中所有“AT”或“CG”前缀的kmer并转化为二进制哈希值,若哈希表中不存在该键值即不做匹配;
若存在键值,即以哈希表返回的匹配位置为起点对DNA序列和参考基因组进行双向延展匹配,并设置容错率允许部分碱基存在错配、插入、删除的情况;
当匹配长度大于设定值最小有效匹配长度并且错配率小于设置的容错率时,则匹配成功;
若序列只有部分匹配,则将不匹配的部分转换为回文结构再重复上述过程进行重新匹配;
最后输出匹配结果包括匹配位置、匹配类型、匹配长度、错配位置,错配内容,并将多个子块各自执行匹配运算所得到的多个匹配结果作归档合并处理。
另一方面,本发明还提供一种面向存储的DNA序列的并行快速匹配系统,所述系统包括:
哈希索引构建模块,用于基于前缀对FASTA格式的参考基因组构建哈希索引,找出指定前缀的所有kmer并以其为键值建立哈希索引表,每个表项存储对应kmer出现的位置;
文件分块模块,用于输入FASTQ格式的DNA序列文件,并将所述DNA序列文件进行分块处理;
多线程处理模块,用于开启多个线程分别处理由线程数决定的若干任务,多个子块同时调用基于kmer哈希索引快速定位的匹配函数,将子块并行匹配到FASTA格式的目标参考基因组;
具体匹配模块,用于找出待匹配的DNA序列中所有指定前缀的kmer并转化成哈希值,查询哈希表获得参考基因组中对应kmer的位置,以此为起点进行双向延展匹配。
优选的,所述文件分块模块还用于:
在进行分块处理之前,预置所需分块的数量;
对原有的DNA序列文件进行文件指针遍历;
计算出每个子块含有的具体的序列的数量。
优选的,所述多线程处理模块具体用于:
开启与子块数量相应的线程数,并执行调用了匹配运算的线程函数来处理命令;
根据所述线程函数处理命令调用相应的匹配函数,同步执行所有线程,直至所有线程执行完毕。
优选的,所述哈希索引构建模块具体用于:
定义以碱基组合“AT”、“CG”为前缀的k个连续碱基称为kmer;
找出FASTA格式的参考基因组中所有“AT”或“CG”前缀的kmer并转化成哈希值;
定义四种碱基“A”、“C”、“G”、“T”的二进制哈希值分别为00、01、10、11,少量存在的“N”、“W”碱基,采用近似规则转换成相应的“A”、“C”、“G”、“T”碱基;
将一个kmer中的碱基分别转换成二进制哈希值,组合起来作为哈希表的一个键值,一个键值关联的哈希表项存储对应kmer在参考基因组中出现的所有位置,由此即构建了哈希索引;
并根据需要调整错误匹配率参数、最小有效匹配长度参数以及匹配线程数参数,并将调整后的多个参数应用到后续匹配运算步骤中。
优选的,所述系统还包括具体匹配模块用于:
找出待匹配的DNA序列中所有“AT”或“CG”前缀的kmer并转化为二进制哈希值,若哈希表中不存在该键值即不做匹配;
若存在键值,即以哈希表返回的匹配位置为起点对DNA序列和参考基因组进行双向延展匹配,并设置容错率允许部分碱基存在错配、插入、删除的情况;
当匹配长度大于设定值最小有效匹配长度并且错配率小于设置的容错率时,则匹配成功;
若序列只有部分匹配,则将不匹配的部分转换为回文结构再重复上述过程进行重新匹配;最后输出匹配结果包括匹配位置、匹配类型、匹配长度、错配位置,错配内容,并将多个子块各自执行匹配运算所得到的多个匹配结果作归档合并处理。
本发明提供的技术方案应用于DNA序列压缩方法中的基于参考基因组的压缩方法,对FASTQ格式中的碱基序列作基于参考基因组的轻量级并行匹配,将最终得出的匹配结果再使用压缩工具进行进一步处理。其中并行算法处理部分主要是基于Pthreads(POSIXthreads)的线程级并行编程,是一套创建线程的应用程序接口,使用多线程并行实现多任务处理,实现了轻量级匹配的并行化,有效提高针对FASTQ格式的DNA数据的效率,并使得程序的运行速度大大加快。
附图说明
图1为本发明一实施方式中面向存储的DNA序列的并行快速匹配方法流程图;
图2为本发明一实施方式中匹配并行执行过程的流程图;
图3为本发明一实施方式中多子块匹配结果的合并过程的流程图;
图4为本发明一实施方式中并行匹配模型的总体流程图;
图5为本发明一实施方式中具体匹配流程图;
图6为本发明一实施方式中面向存储的DNA序列的并行快速匹配系统10的内部结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明具体实施方式提供了一种面向存储的DNA序列的并行快速匹配方法,应用于DNA序列的压缩存储,其中,所述方法主要包括如下步骤:
S11、哈希索引构建步骤:基于前缀对FASTA格式的参考基因组构建哈希索引,找出指定前缀的所有kmer并以其为键值建立哈希索引表,每个表项存储对应kmer出现的位置;
S12、文件分块步骤:输入FASTQ格式的DNA序列文件,并将所述DNA序列文件进行分块处理;
S13、多线程处理步骤:开启多个线程分别处理由线程数决定的若干任务,多个子块同时调用基于kmer哈希索引快速定位的匹配函数,将子块并行匹配到FASTA格式的目标参考基因组,通过存储匹配结果代替原始DNA序列达到压缩存储目的。
本发明提供的一种面向存储的DNA序列的并行快速匹配方法使用多线程并行实现多任务处理,实现应用于压缩存储的轻量级DNA序列匹配的并行化,有效提高针对FASTQ格式的DNA数据的效率,并使得匹配速度也相应加快,从而使整个程序的运行速度大大加快,减少了在时间上的消耗,并增强了该方法的可用性。
以下将对本发明所提供的一种面向存储的DNA序列的并行快速匹配方法进行详细说明。
请参阅图1,为本发明一实施方式中面向存储的DNA序列的并行快速匹配方法流程图。
在步骤S11中,哈希索引构建步骤:基于前缀对FASTA格式的参考基因组构建哈希索引,找出指定前缀的所有kmer并以其为键值建立哈希索引表,每个表项存储对应kmer出现的位置。
在本实施方式中,FASTQ格式是一种存储生物序列的文本格式,也是DNA序列常用的存储格式之一。DNA测序技术产生成千上万条DNA序列,这些DNA序列存储于以FASTQ为格式的文件中,包含测序产生的所有信息。在广泛使用的FASTQ格式中,每条序列包含四行,每行由换行符分割。每条序列以字符‘@’开始,后面紧接着元数据作为第一行,用来唯一标识DNA序列。第二行是碱基数据,由包含常见的{‘A’,‘T’,‘C’,‘G’,‘N’}五个字符的序列构成,其中字符‘N’表示不明确的碱基,可表示为{‘A’,‘T’,‘C’,‘G’}中任意一个字符。第三行以字符‘+’开始,紧接着与第一行相同的DNA序列标识。最后一行为质量分数行,与碱基一一对应,表示每个碱基字符对应位置测序的可信度。
在步骤S12中,文件分块步骤:输入FASTQ格式的DNA序列文件,并将所述DNA序列文件进行分块处理。
在本实施方式中,需要对FASTQ格式的DNA序列文件进行预处理,主要包括:由于每条DNA序列记录含有四行关键信息,所以根据四的倍数对FASTQ格式的DNA序列文件进行分块处理,同时预置所需分块的数量为10,当然也可作调整,例如可以根据需要将分块数目调整为8、9、11、12等等,在分块处理之前对原有的FASTQ格式的文件进行文件指针遍历之后,计算得出每个子块含有的具体的序列的数量。
在本实施方式中,所述文件分块步骤S12还包括:在进行分块处理之前,预置所需分块的数量;对原有的DNA序列文件进行文件指针遍历;计算出每个子块含有的具体的序列的数量。
在步骤S13中,多线程处理步骤:开启多个线程分别处理由线程数决定的若干任务,多个子块同时调用基于kmer哈希索引快速定位的匹配函数,将子块并行匹配到FASTA格式的目标参考基因组,通过存储匹配结果代替原始DNA序列达到压缩存储目的。
在本实施方式中,并行的算法思路是使用线程级并行编程,开启多个线程分别处理由线程数决定的若干个任务,再将该任务放到后台去处理,其中线程函数调用了匹配函数,多个子块同时执行线程函数,以实现匹配运算的并行执行。
在本实施方式中,多线程处理步骤S13采用Pthreads(即POSIX threads)的线程级并行编程方式来实现匹配运算的并行化,有效提高针对FASTQ格式的DNA数据的效率,具体包括:开启与子块数量相应的线程数,并执行调用了基于kmer哈希索引快速定位的匹配函数的线程函数来处理命令;根据所述线程函数处理命令调用相应的匹配函数,同步执行所有线程,直至所有线程执行完毕;在匹配函数中,找出待匹配的DNA序列中所有“AT”或“CG”前缀的kmer并转化为二进制哈希值,若哈希表中不存在该键值即不做匹配;若存在键值,即以哈希表返回的匹配位置为起点对DNA序列和参考基因组进行双向延展匹配,并设置容错率允许部分碱基存在错配、插入、删除的情况;当匹配长度大于设定值最小有效匹配长度并且错配率小于设置的容错率时,则匹配成功;若序列只有部分匹配,则将不匹配的部分转换为回文结构再重复上述过程进行重新匹配;最后输出匹配结果包括匹配位置、匹配类型、匹配长度、错配位置,错配内容。并将多个子块各自执行匹配运算所得到的多个匹配结果作归档合并处理。其中,匹配并行执行的流程如图2所示,为本发明一实施方式中匹配并行执行过程的流程图。
如图2中,在分成定义的子块数量确定之后,例如分成n个子块,根据子块数量开启相应的线程数(即开启n个线程),每个子块执行调用了基于kmer哈希索引快速定位的匹配函数的线程函数,然后所有线程同步执行,直至所有线程执行完毕。
在本实施方式中,所述哈希索引构建步骤S11还包括:定义前缀即碱基组合“AT”、“CG”等,其后的k个碱基称为kmer;找出参考基因组中所有前缀,然后将其后的kmer碱基序列转化成哈希值;定义四种碱基“A”、“C”、“G”、“T”二进制哈希值分别为00、01、10、11,少量存在的“N”、“W”等碱基,可以采用近似规则转换成相应的“A”、“C”、“G”、“T”等碱基;将转换的哈希值存入哈希表中,即构建了哈希索引;并根据需要调整错误匹配率参数、最小有效匹配长度参数以及匹配线程数参数,并将调整后的多个参数应用到后续匹配运算步骤中。
在本实施方式中,所述具体匹配过程包括:找出待匹配的DNA序列中所有的前缀以及前缀后面k个碱基(kmer)转化为哈希值,若不存在则直接输出不匹配信息;并根据之前构建的哈希表返回的最佳匹配位置进行双向匹配,并设置容错率允许部分碱基存在错配、插入、删除的情况;当匹配长度大于设定值最小有效匹配长度并且错配率小于设置的容错率时,则匹配成功;若第一次匹配不满足上述条件时候,将该序列的匹配部分输出,将不匹配的部分转换为回文结构再进行重新匹配;最后根据匹配过程,输出匹配结果,匹配结果包括匹配位置、匹配类型、匹配长度等信息。如图5所示,为本发明一实施方式中具体匹配流程图。
本发明在所有线程任务执行完毕之后,由于文件分块后进行并行匹配过程中会产生中间文件,记录与分块数量相应的匹配结果,理论上这些匹配结果可以直接应用于下一步的压缩储存工作,但压缩存储过程中必须基于FASTQ格式的DNA序列文件的整体匹配结果,所以需要将多个匹配结果作归档合并处理,以便后续工作进行,同时,输出与性能相关的关键统计信息,在此就不在详述,其中,多子块匹配结果的合并过程如图3所示,为本发明一实施方式中多子块匹配结果的合并过程的流程图。
在本实施方式中,本发明的面向存储的DNA序列的并行快速匹配方法,还进一步包括:
参数可调步骤:在FASTA格式的参考基因中找出所有前缀,取前缀之后的k个碱基数创建哈希索引值,根据需要调整错误匹配率参数、最小有效匹配长度参数以及匹配线程数参数,并将调整后的多个参数应用到所述匹配运算步骤中。
在本实施方式中,一些匹配过程中运行所需要的关键参数,例如匹配前缀P(默认值为“CG”)、匹配错误容忍度e(默认值为0.05)、最小有效匹配长度L(默认值为30),取前缀之后的k个碱基数创建哈希索引值,k默认值为8,匹配错误容忍度e即错误匹配率,这些都是固定的默认参数,本发明中提供参数的可调化,用户可以根据需要调整参数以得到性能的最大化。同时,匹配线程也进行了参数可调处理,线程数b(默认值为10)可以根据需要调整开启相应的线程数进行快速匹配。
在本实施方式中,利用步骤S12对FASTQ格式的DNA序列文件进行分块预处理,得到FASTQ格式的DNA序列文件的子块,从而减少一次性串行匹配所带来的时间占用问题。利用步骤S13实现应用于DNA序列文件压缩存储的轻量级匹配过程的并行化,开启多个线程处理多个子块,实现多子块同步快速匹配,并将匹配结果作归档合并处理。同时,对参数设置进行可调化处理,可以自行调整参数来得到理想的匹配结果。在本实施方式中,并行匹配模型的总体流程图图4所示。
本发明提供的一种面向存储的DNA序列的并行快速匹配方法,对FASTQ格式中的碱基序列作基于参考基因组的轻量级并行匹配,将得出的匹配结果再使用压缩工具进行进一步处理。其中并行算法处理部分主要是基于Pthreads(POSIX threads)的线程级并行编程,是一套创建线程的应用程序接口,使用多线程并行实现多任务处理,实现了轻量级匹配的并行化,有效提高针对FASTQ格式的DNA数据的效率,并使得程序的运行速度大大加快。
本发明具体实施方式还提供一种面向存储的DNA序列的并行快速匹配系统10,主要包括:
哈希索引构建模块11,用于基于前缀对FASTA格式的参考基因组构建哈希索引,找出指定前缀的所有kmer并以其为键值建立哈希索引表,每个表项存储对应kmer出现的位置;
文件分块模块12,用于输入FASTQ格式的DNA序列文件,并将所述DNA序列文件进行分块处理;
多线程处理模块13,用于开启多个线程分别处理由线程数决定的若干任务,多个子块同时调用基于kmer哈希索引快速定位的匹配函数,将子块并行匹配到FASTA格式的目标参考基因组;
具体匹配模块14,用于找出待匹配的DNA序列中所有指定前缀的kmer并转化成哈希值,查询哈希表获得参考基因组中对应kmer的位置,以此为起点进行双向延展匹配。
本发明提供的一种面向存储的DNA序列的并行快速匹配系统10,使用多线程并行实现多任务处理,实现应用于压缩存储的轻量级DNA序列匹配的并行化,有效针对压缩FASTQ格式的DNA数据的效率,并使得程序的运行速度大大加快,匹配速度也相应加快,减少在时间上的消耗,并增强了该方法的可用性。
请参阅图6,所示为本发明一实施方式中面向存储的DNA序列的并行快速匹配系统10的结构示意图。
在本实施方式中,面向存储的DNA序列的并行快速匹配系统10,应用于DNA序列的压缩存储,主要包括哈希索引构建模块11、文件分块模块12、多线程处理模块13以及具体匹配模块14。
哈希索引构建模块11,用于基于前缀对FASTA格式的参考基因组构建哈希索引,找出指定前缀的所有kmer并以其为键值建立哈希索引表,每个表项存储对应kmer出现的位置。
在本实施方式中,哈希索引构建模块11用于:定义以碱基组合“AT”、“CG”为前缀的k个连续碱基称为kmer;找出FASTA格式的参考基因组中所有“AT”或“CG”前缀的kmer并转化成哈希值;定义四种碱基“A”、“C”、“G”、“T”的二进制哈希值分别为00、01、10、11,少量存在的“N”、“W”等碱基,可以采用近似规则转换成相应的“A”、“C”、“G”、“T”等碱基;将一个kmer中的碱基分别转换成二进制哈希值,组合起来作为哈希表的一个键值,一个键值关联的哈希表项存储对应kmer在参考基因组中出现的所有位置,由此即构建了哈希索引;并根据需要调整错误匹配率参数、最小有效匹配长度参数以及匹配线程数参数,并将调整后的多个参数应用到后续匹配运算步骤中。
在本实施方式中,具体匹配模块14,用于找出待匹配的DNA序列中所有指定前缀的kmer并转化成哈希值,查询哈希表获得参考基因组中对应kmer的位置,以此为起点进行双向延展匹配。
具体的,具体匹配模块14,用于找出待匹配的DNA序列中所有“AT”或“CG”前缀的kmer并转化为二进制哈希值,若哈希表中不存在该键值即不做匹配;若存在键值,即以哈希表返回的匹配位置为起点对DNA序列和参考基因组进行双向延展匹配,并设置容错率允许部分碱基存在错配、插入、删除的情况;当匹配长度大于设定值最小有效匹配长度并且错配率小于设置的容错率时,则匹配成功;若序列只有部分匹配,则将不匹配的部分转换为回文结构再重复上述过程进行重新匹配;最后输出匹配结果包括匹配位置、匹配类型、匹配长度、错配位置,错配内容,并将多个子块各自执行匹配运算所得到的多个匹配结果作归档合并处理。
文件分块模块12,用于输入FASTQ格式的DNA序列文件,并将所述DNA序列文件进行分块处理。
在本实施方式中,FASTQ格式是一种存储生物序列的文本格式,也是DNA序列常用的存储格式之一。DNA测序技术产生成千上万条DNA序列,这些DNA序列存储于以FASTQ为格式的文件中,包含测序产生的所有信息。在广泛使用的FASTQ格式中,每条序列包含四行,每行由换行符分割。每条序列以字符‘@’开始,后面紧接着元数据作为第一行,用来唯一标识DNA序列。第二行是碱基数据,由包含常见的{‘A’,‘T’,‘C’,‘G’,‘N’}五个字符的序列构成,其中字符‘N’表示不明确的碱基,可表示为{‘A’,‘T’,‘C’,‘G’}中任意一个字符。第三行以字符‘+’开始,紧接着与第一行相同的DNA序列标识。最后一行为质量分数行,与碱基一一对应,表示每个碱基字符对应位置测序的可信度。
在本实施方式中,文件分块模块12还用于:在进行分块处理之前,预置所需分块的数量;对原有的DNA序列文件进行文件指针遍历;计算出每个子块含有的具体的序列的数量。
多线程处理模块13,用于开启多个线程分别处理由线程数决定的若干任务,多个子块同时调用基于kmer哈希索引快速定位的匹配函数,将子块并行匹配到FASTA格式的目标参考基因组。
在本实施方式中,并行的算法思路是使用线程级并行编程,开启多个线程分别处理由线程数决定的若干个任务,再将该任务放到后台去处理,其中线程函数调用了匹配函数,多个子块同时执行线程函数,以实现匹配运算的并行执行。
在本实施方式中,多线程处理步骤采用Pthreads(即POSIX threads)的线程级并行编程方式来实现匹配运算的并行化,有效提高针对FASTQ格式的DNA数据的效率,具体用于:开启与子块数量相应的线程数,并执行调用了匹配运算的线程函数处理命令;根据所述线程函数处理命令调用相应的匹配函数,同步执行所有线程,直至所有线程执行完毕。
本发明在所有线程任务执行完毕之后,由于文件分块后进行并行匹配过程中会得到中间文件,产生与分块数量相应的匹配结果,理论上这些匹配结果将应用于压缩储存工作,但压缩存储过程中必须基于FASTQ格式的DNA序列文件的整体匹配结果,所以需要匹配结果合并模块将多个匹配结果作归档合并处理,以便后续工作进行,同时,输出与性能相关的关键统计信息结果,在此就不在详述。
在本实施方式中,面向存储的DNA序列的并行快速匹配系统10,还包括:
参数可调模块,用于在FASTQ格式的参考基因中找出所有前缀(如“CG”、“AT”),然后取前缀之后的k个碱基数创建哈希索引值,根据需要调整错误匹配率参数、最小有效匹配长度参数以及匹配线程数,并将调整后的多个参数应用到所述匹配运算步骤中。
在本实施方式中,一些匹配过程中运行所需要的关键参数,例如匹配前缀P(默认值为“CG”)、匹配错误容忍度e(默认值为0.05)、最小有效匹配长度L(默认值为30),取前缀之后的k个碱基数创建哈希索引值,k默认值为8,匹配错误容忍度e即错误匹配率,这些都是固定的默认参数,本发明中实现了参数的可调化,用户可以根据需要调整参数以得到性能的最大化。同时,匹配线程也进行了参数可调处理,线程数b(默认值为10)可以根据需要调整开启相应的线程数进行快速匹配。
本发明提供的一种面向存储的DNA序列的并行快速匹配系统10,对FASTQ格式中的碱基序列作基于参考基因组的轻量级并行匹配,将得出的匹配结果再使用压缩工具进行进一步处理。其中并行算法处理部分主要是基于Pthreads(POSIX threads)的线程级并行编程,是一套创建线程的应用程序接口,使用多线程并行实现多任务处理,实现了轻量级匹配的并行化,有效提高针对FASTQ格式的DNA数据的效率,并使得程序的运行速度大大加快。
值得注意的是,上述实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种面向存储的DNA序列的并行快速匹配方法,应用于DNA序列的压缩存储,其特征在于,所述方法包括:
哈希索引构建步骤:基于前缀对FASTA格式的参考基因组构建哈希索引,找出指定前缀的所有kmer并以其为键值建立哈希索引表,每个表项存储对应kmer出现的位置;
文件分块步骤:输入FASTQ格式的DNA序列文件,并将所述DNA序列文件进行分块处理;
多线程处理步骤:开启多个线程分别处理由线程数决定的若干任务,多个子块同时调用基于kmer哈希索引快速定位的匹配函数,将子块并行匹配到FASTA格式的目标参考基因组,通过存储匹配结果代替原始DNA序列达到压缩存储目的。
2.如权利要求1所述的面向存储的DNA序列的并行快速匹配方法,其特征在于,所述哈希索引构建步骤具体包括:
定义以碱基组合“AT”、“CG”为前缀的k个连续碱基称为kmer;
找出FASTA格式的参考基因组中所有“AT”或“CG”前缀的kmer并转化成哈希值;
定义四种碱基“A”、“C”、“G”、“T”的二进制哈希值分别为00、01、10、11,少量存在的“N”、“W”碱基,采用近似规则转换成相应的“A”、“C”、“G”、“T”碱基;
将一个kmer中的碱基分别转换成二进制哈希值,组合起来作为哈希表的一个键值,一个键值关联的哈希表项存储对应kmer在参考基因组中出现的所有位置,由此即构建了哈希索引;
并根据需要调整错误匹配率参数、最小有效匹配长度参数以及匹配线程数参数,并将调整后的多个参数应用到后续匹配运算步骤中。
3.如权利要求1所述的面向存储的DNA序列的并行快速匹配方法,其特征在于,所述文件分块步骤还包括:
在进行分块处理之前,预置所需分块的数量;
对原有的DNA序列文件进行文件指针遍历;
计算出每个子块含有的具体的序列的数量。
4.如权利要求1所述的面向存储的DNA序列的并行快速匹配方法,其特征在于,所述多线程处理步骤具体包括:
开启与子块数量相应的线程数,并执行调用了基于kmer哈希索引快速定位的匹配函数的线程函数来处理命令;
根据所述线程函数处理命令调用相应匹配函数,同步执行所有线程,直至所有线程执行完毕;
在匹配函数中,找出待匹配的DNA序列中所有“AT”或“CG”前缀的kmer并转化为二进制哈希值,若哈希表中不存在该键值即不做匹配;
若存在键值,即以哈希表返回的匹配位置为起点对DNA序列和参考基因组进行双向延展匹配,并设置容错率允许部分碱基存在错配、插入、删除的情况;
当匹配长度大于设定值最小有效匹配长度并且错配率小于设置的容错率时,则匹配成功;
若序列只有部分匹配,则将不匹配的部分转换为回文结构再重复上述过程进行重新匹配;
最后输出匹配结果包括匹配位置、匹配类型、匹配长度、错配位置,错配内容,并将多个子块各自执行匹配运算所得到的多个匹配结果作归档合并处理。
5.一种面向存储的DNA序列的并行快速匹配系统,其特征在于,所述系统包括:
哈希索引构建模块,用于基于前缀对FASTA格式的参考基因组构建哈希索引,找出指定前缀的所有kmer并以其为键值建立哈希索引表,每个表项存储对应kmer出现的位置;
文件分块模块,用于输入FASTQ格式的DNA序列文件,并将所述DNA序列文件进行分块处理;
多线程处理模块,用于开启多个线程分别处理由线程数决定的若干任务,多个子块同时调用基于kmer哈希索引快速定位的匹配函数,将子块并行匹配到FASTA格式的目标参考基因组;
具体匹配模块,用于找出待匹配的DNA序列中所有指定前缀的kmer并转化成哈希值,查询哈希表获得参考基因组中对应kmer的位置,以此为起点进行双向延展匹配。
6.如权利要求5所述的面向存储的DNA序列的并行快速匹配系统,其特征在于,所述文件分块模块还用于:
在进行分块处理之前,预置所需分块的数量;
对原有的DNA序列文件进行文件指针遍历;
计算出每个子块含有的具体的序列的数量。
7.如权利要求6所述的面向存储的DNA序列的并行快速匹配系统,其特征在于,所述多线程处理模块具体用于:
开启与子块数量相应的线程数,并执行调用了匹配运算的线程函数来处理命令;
根据所述线程函数处理命令调用相应的匹配函数,同步执行所有线程,直至所有线程执行完毕。
8.如权利要求5所述的面向存储的DNA序列的并行快速匹配系统,其特征在于,所述哈希索引构建模块具体用于:
定义以碱基组合“AT”、“CG”为前缀的k个连续碱基称为kmer;
找出FASTA格式的参考基因组中所有“AT”或“CG”前缀的kmer并转化成哈希值;
定义四种碱基“A”、“C”、“G”、“T”的二进制哈希值分别为00、01、10、11,少量存在的“N”、“W”碱基,采用近似规则转换成相应的“A”、“C”、“G”、“T”碱基;
将一个kmer中的碱基分别转换成二进制哈希值,组合起来作为哈希表的一个键值,一个键值关联的哈希表项存储对应kmer在参考基因组中出现的所有位置,由此即构建了哈希索引;
并根据需要调整错误匹配率参数、最小有效匹配长度参数以及匹配线程数参数,并将调整后的多个参数应用到后续匹配运算步骤中。
9.如权利要求5所述的面向存储的DNA序列的并行快速匹配系统,其特征在于,所述具体匹配模块具体用于:
找出待匹配的DNA序列中所有“AT”或“CG”前缀的kmer并转化为二进制哈希值,若哈希表中不存在该键值即不做匹配;
若存在键值,即以哈希表返回的匹配位置为起点对DNA序列和参考基因组进行双向延展匹配,并设置容错率允许部分碱基存在错配、插入、删除的情况;
当匹配长度大于设定值最小有效匹配长度并且错配率小于设置的容错率时,则匹配成功;
若序列只有部分匹配,则将不匹配的部分转换为回文结构再重复上述过程进行重新匹配;
最后输出匹配结果包括匹配位置、匹配类型、匹配长度、错配位置,错配内容,并将多个子块各自执行匹配运算所得到的多个匹配结果作归档合并处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610485409.6A CN106096332A (zh) | 2016-06-28 | 2016-06-28 | 面向存储的dna序列的并行快速匹配方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610485409.6A CN106096332A (zh) | 2016-06-28 | 2016-06-28 | 面向存储的dna序列的并行快速匹配方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106096332A true CN106096332A (zh) | 2016-11-09 |
Family
ID=57213966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610485409.6A Pending CN106096332A (zh) | 2016-06-28 | 2016-06-28 | 面向存储的dna序列的并行快速匹配方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106096332A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107403075A (zh) * | 2017-08-02 | 2017-11-28 | 深圳市瀚海基因生物科技有限公司 | 比对方法、装置及系统 |
WO2018000174A1 (zh) * | 2016-06-28 | 2018-01-04 | 深圳大学 | 面向存储的dna序列的并行快速匹配方法及其系统 |
CN107609350A (zh) * | 2017-09-08 | 2018-01-19 | 厦门极元科技有限公司 | 一种二代测序数据分析平台的数据处理方法 |
CN109360605A (zh) * | 2018-09-25 | 2019-02-19 | 安吉康尔(深圳)科技有限公司 | 基因组测序数据归档方法、服务器及计算机可读存储介质 |
CN109885576A (zh) * | 2019-03-06 | 2019-06-14 | 珠海金山网络游戏科技有限公司 | 一种哈希表创建方法及系统、计算设备及存储介质 |
WO2019119336A1 (zh) * | 2017-12-21 | 2019-06-27 | 深圳大学 | 一种通用数据gz格式的多线程压缩与解压方法及装置 |
CN110021368A (zh) * | 2017-10-20 | 2019-07-16 | 人和未来生物科技(长沙)有限公司 | 比对型基因测序数据压缩方法、系统及计算机可读介质 |
CN110299187A (zh) * | 2019-07-04 | 2019-10-01 | 南京邮电大学 | 一种基于Hadoop的并行化基因数据压缩方法 |
CN111061434A (zh) * | 2019-12-17 | 2020-04-24 | 人和未来生物科技(长沙)有限公司 | 基因压缩多流数据并行写入及读取方法、系统及介质 |
CN111224831A (zh) * | 2018-11-26 | 2020-06-02 | 中国电信股份有限公司 | 用于生成话单的方法和系统 |
CN111292805A (zh) * | 2020-03-19 | 2020-06-16 | 山东大学 | 一种三代测序数据重叠检测方法及系统 |
CN111370064A (zh) * | 2020-03-19 | 2020-07-03 | 山东大学 | 基于simd的哈希函数的基因序列快速分类方法及系统 |
CN111415708A (zh) * | 2020-03-24 | 2020-07-14 | 山东大学 | 双缓冲模型实现大规模数据库聚类方法及系统 |
CN111767256A (zh) * | 2020-05-22 | 2020-10-13 | 北京和瑞精准医学检验实验室有限公司 | 一种从fastq文件分离出样本read数据的方法 |
CN114334008A (zh) * | 2022-01-24 | 2022-04-12 | 广州明领基因科技有限公司 | 基于fpga的基因测序加速比对方法及装置 |
US11482304B2 (en) | 2017-08-02 | 2022-10-25 | Genemind Biosciences Company Limited | Alignment methods, devices and systems |
CN117373538A (zh) * | 2023-12-08 | 2024-01-09 | 山东大学 | 一种基于多线程计算的生物序列比对方法及系统 |
US11931742B2 (en) | 2018-01-23 | 2024-03-19 | Genemind Biosciences Company Limited | Carrying module, nucleic acid loading device and use thereof |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049680A (zh) * | 2012-12-29 | 2013-04-17 | 深圳先进技术研究院 | 基因测序数据读取方法及系统 |
CN103559020A (zh) * | 2013-11-07 | 2014-02-05 | 中国科学院软件研究所 | 一种dna读序数据fastq文件并行压缩和解压缩方法 |
CN103995988A (zh) * | 2014-05-30 | 2014-08-20 | 周家锐 | 一种高通量dna测序质量分数无损压缩系统及压缩方法 |
CN103997346A (zh) * | 2014-05-12 | 2014-08-20 | 东南大学 | 一种基于流水线的数据匹配方法和装置 |
CN105391454A (zh) * | 2015-12-14 | 2016-03-09 | 季检 | 一种dna测序质量分数无损压缩方法 |
-
2016
- 2016-06-28 CN CN201610485409.6A patent/CN106096332A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049680A (zh) * | 2012-12-29 | 2013-04-17 | 深圳先进技术研究院 | 基因测序数据读取方法及系统 |
CN103559020A (zh) * | 2013-11-07 | 2014-02-05 | 中国科学院软件研究所 | 一种dna读序数据fastq文件并行压缩和解压缩方法 |
CN103997346A (zh) * | 2014-05-12 | 2014-08-20 | 东南大学 | 一种基于流水线的数据匹配方法和装置 |
CN103995988A (zh) * | 2014-05-30 | 2014-08-20 | 周家锐 | 一种高通量dna测序质量分数无损压缩系统及压缩方法 |
CN105391454A (zh) * | 2015-12-14 | 2016-03-09 | 季检 | 一种dna测序质量分数无损压缩方法 |
Non-Patent Citations (6)
Title |
---|
SEBASTIAN DEOROWICZ等: "Compression of DNA sequence reads in FASTQ format", 《BIOINFORMATICS》 * |
TUNGADRI BOSE等: "BIND – An algorithm for loss-less compression of nucleotide sequence data", 《JOURNAL OF BIOSCIENCES》 * |
何娜等: "高通量DNA 测序数据的多任务并行压缩算法", 《计算机应用研究》 * |
叶丹丹等: "宏基因组研究的生物信息学平台现状", 《动物学研究》 * |
张永朋: "高通量 DNA测序数据无损压缩研究", 《中国优秀硕士学位论文全文数据库 基础科学辑》 * |
朱泽轩等: "高通量DNA 测序数据压缩研究进展", 《深圳大学学报理工版》 * |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018000174A1 (zh) * | 2016-06-28 | 2018-01-04 | 深圳大学 | 面向存储的dna序列的并行快速匹配方法及其系统 |
US11482304B2 (en) | 2017-08-02 | 2022-10-25 | Genemind Biosciences Company Limited | Alignment methods, devices and systems |
CN107403075B (zh) * | 2017-08-02 | 2021-04-27 | 深圳市真迈生物科技有限公司 | 比对方法、装置及系统 |
CN107403075A (zh) * | 2017-08-02 | 2017-11-28 | 深圳市瀚海基因生物科技有限公司 | 比对方法、装置及系统 |
CN107609350A (zh) * | 2017-09-08 | 2018-01-19 | 厦门极元科技有限公司 | 一种二代测序数据分析平台的数据处理方法 |
CN107609350B (zh) * | 2017-09-08 | 2020-04-03 | 厦门极元科技有限公司 | 一种二代测序数据分析平台的数据处理方法 |
CN110021368B (zh) * | 2017-10-20 | 2020-07-17 | 人和未来生物科技(长沙)有限公司 | 比对型基因测序数据压缩方法、系统及计算机可读介质 |
CN110021368A (zh) * | 2017-10-20 | 2019-07-16 | 人和未来生物科技(长沙)有限公司 | 比对型基因测序数据压缩方法、系统及计算机可读介质 |
WO2019119336A1 (zh) * | 2017-12-21 | 2019-06-27 | 深圳大学 | 一种通用数据gz格式的多线程压缩与解压方法及装置 |
US11931742B2 (en) | 2018-01-23 | 2024-03-19 | Genemind Biosciences Company Limited | Carrying module, nucleic acid loading device and use thereof |
CN109360605A (zh) * | 2018-09-25 | 2019-02-19 | 安吉康尔(深圳)科技有限公司 | 基因组测序数据归档方法、服务器及计算机可读存储介质 |
CN111224831A (zh) * | 2018-11-26 | 2020-06-02 | 中国电信股份有限公司 | 用于生成话单的方法和系统 |
CN111224831B (zh) * | 2018-11-26 | 2022-03-29 | 中国电信股份有限公司 | 用于生成话单的方法和系统 |
CN109885576B (zh) * | 2019-03-06 | 2020-12-01 | 珠海金山网络游戏科技有限公司 | 一种哈希表创建方法及系统、计算设备及存储介质 |
CN109885576A (zh) * | 2019-03-06 | 2019-06-14 | 珠海金山网络游戏科技有限公司 | 一种哈希表创建方法及系统、计算设备及存储介质 |
CN110299187A (zh) * | 2019-07-04 | 2019-10-01 | 南京邮电大学 | 一种基于Hadoop的并行化基因数据压缩方法 |
CN111061434B (zh) * | 2019-12-17 | 2021-10-01 | 人和未来生物科技(长沙)有限公司 | 基因压缩多流数据并行写入及读取方法、系统及介质 |
CN111061434A (zh) * | 2019-12-17 | 2020-04-24 | 人和未来生物科技(长沙)有限公司 | 基因压缩多流数据并行写入及读取方法、系统及介质 |
CN111292805A (zh) * | 2020-03-19 | 2020-06-16 | 山东大学 | 一种三代测序数据重叠检测方法及系统 |
CN111370064A (zh) * | 2020-03-19 | 2020-07-03 | 山东大学 | 基于simd的哈希函数的基因序列快速分类方法及系统 |
CN111370064B (zh) * | 2020-03-19 | 2023-05-05 | 山东大学 | 基于simd的哈希函数的基因序列快速分类方法及系统 |
CN111292805B (zh) * | 2020-03-19 | 2023-08-18 | 山东大学 | 一种三代测序数据重叠检测方法及系统 |
CN111415708B (zh) * | 2020-03-24 | 2023-05-05 | 山东大学 | 双缓冲模型实现大规模数据库聚类方法及系统 |
CN111415708A (zh) * | 2020-03-24 | 2020-07-14 | 山东大学 | 双缓冲模型实现大规模数据库聚类方法及系统 |
CN111767256A (zh) * | 2020-05-22 | 2020-10-13 | 北京和瑞精准医学检验实验室有限公司 | 一种从fastq文件分离出样本read数据的方法 |
CN111767256B (zh) * | 2020-05-22 | 2023-10-20 | 北京和瑞精湛医学检验实验室有限公司 | 一种从fastq文件分离出样本read数据的方法 |
CN114334008A (zh) * | 2022-01-24 | 2022-04-12 | 广州明领基因科技有限公司 | 基于fpga的基因测序加速比对方法及装置 |
CN114334008B (zh) * | 2022-01-24 | 2022-08-02 | 广州明领基因科技有限公司 | 基于fpga的基因测序加速比对方法及装置 |
CN117373538A (zh) * | 2023-12-08 | 2024-01-09 | 山东大学 | 一种基于多线程计算的生物序列比对方法及系统 |
CN117373538B (zh) * | 2023-12-08 | 2024-03-19 | 山东大学 | 一种基于多线程计算的生物序列比对方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106096332A (zh) | 面向存储的dna序列的并行快速匹配方法及其系统 | |
CN1552032B (zh) | 数据库 | |
Zhang et al. | Minimizing makespan on a single batch processing machine with nonidentical job sizes | |
Deliège et al. | Position list word aligned hybrid: optimizing space and performance for compressed bitmaps | |
US20140129530A1 (en) | System, method and data structure for fast loading, storing and access to huge data sets in real time | |
EP3362916B1 (en) | Signature-based cache optimization for data preparation | |
EP2924594A1 (en) | Data encoding and corresponding data structure in a column-store database | |
WO2017065885A1 (en) | Distributed pipeline optimization data preparation | |
US7761474B2 (en) | Indexing stored data | |
CN110209728A (zh) | 一种分布式异构数据库同步方法、电子设备及存储介质 | |
US20070078909A1 (en) | Database System | |
US11620280B2 (en) | Projections for big database systems | |
Ghosh et al. | Fast compaction algorithms for NoSQL databases | |
WO2015010508A1 (zh) | 一种基于一维线性空间实现Trie树的词典存储管理方法 | |
US20170109389A1 (en) | Step editor for data preparation | |
CN102207935A (zh) | 用于创建索引的方法和系统 | |
CN108073641B (zh) | 查询数据表的方法和装置 | |
Kunkel et al. | Piejoin: towards parallel set containment joins | |
KR101955376B1 (ko) | 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
CN103761298A (zh) | 一种基于分布式架构的实体匹配方法 | |
US7165072B2 (en) | Method for merging information from effective dated base tables | |
CN102033863B (zh) | 一种公式处理方法与系统 | |
JP2008065716A (ja) | データ管理装置、データ管理方法及びデータ管理プログラム | |
Pibiri et al. | Meta-colored compacted de Bruijn graphs | |
JP2007048318A (ja) | リレーショナルデータベースの処理方法およびリレーショナルデータベース処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161109 |