CN107480466B - 基因组数据存储方法及电子设备 - Google Patents
基因组数据存储方法及电子设备 Download PDFInfo
- Publication number
- CN107480466B CN107480466B CN201710546293.7A CN201710546293A CN107480466B CN 107480466 B CN107480466 B CN 107480466B CN 201710546293 A CN201710546293 A CN 201710546293A CN 107480466 B CN107480466 B CN 107480466B
- Authority
- CN
- China
- Prior art keywords
- storage unit
- statistical information
- information
- indicating
- storing
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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
- G16B99/00—Subject matter not provided for in other groups of this subclass
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Biotechnology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基因组数据存储方法,包括:在基因组比对过程中,得到基因序列比对信息,并创建基因序列统计信息;将所述基因序列比对信息存储于磁盘,并按基因序列比对信息在基因组的比对位置,在内存中存储相应的索引;所述索引为所述基因序列比对信息在磁盘中的存储位置;对所述基因组统计信息进行分类,得到第一统计信息和第二统计信息;将第一统计信息存储于内存,所述第一统计信息为变异检测过程中访问频率高于预设频率的统计信息;将第二统计信息存储于磁盘,所述第二统计信息为无法存储于内存的统计信息和/或变异检测过程中访问频率低于预设频率的统计信息。本发明还公开了一种采用所述基因组数据存储方法的电子设备。
Description
技术领域
本发明涉及数据处理技术领域,特别是指一种基因组数据存储方法及电子设备。
背景技术
基因组变异检测计算流程,一般可分为比对、排序、去重复、重比对、变异检测、过滤等步骤。其中,主要的步骤需要使用BAM文件(SAM的全称是sequence alignment map,序列比对图。而BAM文件就是SAM文件的二进制格式的文件(B取自binary))作为输出文件写入硬盘,在下一个步骤再将其从硬盘上读取到内存,接着进行下一步处理。
在实现本发明的过程中,发明人发现现有技术存在如下问题:
在人类全基因组数据分析中,原始数据一般在100GB左右,中间的主要分析步骤都需要读写上百GB的文件,整个的计算过程耗费大量的I/O资源且程序效率低下。
而发明人发现导致该问题的主要原因有:
1、中间文件太大,无法直接放入内存。
64GB内存是一个典型的常见生物信息分析的机器配置。人类全基因组分析数据,中间结果一般在100GB左右,无法直接存在内存里,而且变异检测过程本身就需要加载参考序列和索引文件到内存里,导致能用来放中间结果的空间进一步缩小。
2、中间文件的格式,无法直接用于计算。
通用的中间文件格式为SAM/BAM格式,这种格式是一种行记录格式,也就是每行存储一条记录,直接放入内存也不能直接用于计算。变异检测所需要的数据,主要是对每个位点的比对情况的统计信息,包括每个位点各类碱基的数目的分布、***缺失(InDel)序列和频数、比对中的软剪切(soft clipping)序列等信息。
发明内容
有鉴于此,本发明的目的在于提供一种基因组数据存储方法及电子设备,能够解决基因组变异检测过程中需要频繁地输入输出大量二进制文件而造成的低效率问题。
基于上述目的本发明提供的基因组数据存储方法,包括:
在比对过程中,得到基因序列比对信息,并创建基因序列统计信息;
将所述基因序列比对信息存储于磁盘,并按基因序列比对信息在基因组的比对位置,在内存中存储相应的索引;所述索引为所述基因序列比对信息在磁盘中的存储位置;
对所述基因组统计信息进行分类,得到第一统计信息和第二统计信息;
将第一统计信息存储于内存,所述第一统计信息为变异检测过程中访问频率高于预设频率的统计信息;
将第二统计信息存储于磁盘,所述第二统计信息为无法存储于内存的统计信息和/或变异检测过程中访问频率低于预设频率的统计信息。
可选的,所述第一统计信息包括碱基加权质量值统计信息、正负链统计信息、***缺失统计信息和软剪切统计信息。
可选的,对于没有出现***缺失和软剪切且碱基类型最多出现过2种的位点,该位点的第一统计信息采用第一数据结构存储;
所述第一数据结构,包括:
用于表示碱基类型的第一头部;
用于表示碱基加权质量值的第一质量值存储部;
用于表示正链数量的第一正链数存储部;
用于表示负链数量的第一负链数存储部。
可选的,对于有***缺失出现且碱基类型出现过3-4种的位点,该位点的第一统计信息采用第一数据结构和第二数据结构存储;
所述第二数据结构,包括:
4种碱基类型各自的碱基加权质量值统计信息和正负链统计信息;每种碱基类型的碱基加权质量值统计信息和正负链统计信息的存储结构具体包括:用于表示碱基加权质量值的第二质量值存储部,用于表示正链数量的第二正链数存储部,以及,用于表示负链数量的第二负链数存储部;
第一***统计信息,具体包括:用于表示***序列的第一***序列存储部,用于表示低质量***数量的第一低质量***数存储部;
第一缺失统计信息,具体包括:用于表示缺失长度的第一缺失长度存储部,用于表示高质量缺失数量的第一高质量缺失数存储部,用于表示低质量缺失数量的第一低质量缺失数存储部;
所述第一数据结构,包括:
用11填充的第二头部;
用于表示是否存在***的第一***信息存储部,具体包括:用于表示是否存在***的第一***信息子存储部,用于表示***长度的***长度子存储部,用于表示低质量***数量的低质量***数子存储部;
用于表示是否存在缺失的第一缺失信息存储部,具体包括:用于表示是否存在缺失的第一缺失信息子存储部;
用于指向相应的第二数据结构存储位置的指针。
可选的,对于出现多余1个的***缺失、***长度大于12个碱基的位点,该位点的第一统计信息采用第一数据结构和第三数据结构存储,且对于这样的位点的第一统计信息,在内存中创建内存池来进行存储;
所述第三数据结构,包括:
4种碱基类型各自的碱基加权质量值统计信息和正负链统计信息;每种碱基类型的碱基加权质量值统计信息和正负链统计信息的存储结构具体包括:用于表示碱基加权质量值的第三质量值存储部,用于表示正链数量的第三正链数存储部,以及,用于表示负链数量的第三负链数存储部;
第二***统计信息,具体包括:用于表示***长度的***长度存储部,用于表示***序列的第二***序列存储部,用于表示低质量***数量的第二低质量***数存储部,以及,用于表示高质量***数量的高质量***数存储部;
第二缺失统计信息,具体包括:用于表示缺失长度的第二缺失长度存储部,用于表示高质量缺失数量的第二高质量缺失数存储部,用于表示低质量缺失数量的第二低质量缺失数存储部;
所述第一数据结构,包括:
用11填充的第三头部;
用于表示是否存在***的第二***信息存储部,具体包括:用于表示是否存在***的第二***信息子存储部,用于表示是否使用了内存池的第一内存池信息子存储部,用于表示在内存池中的占用长度的第一占用长度子存储部;
用于表示是否存在缺失的第二缺失信息存储部,具体包括:用于表示是否存在缺失的第二缺失信息子存储部,用于表示是否使用了内存池的第二内存池信息子存储部,用于表示在内存池中的占用长度的第二占用长度子存储部。
可选的,对于所述软剪切统计信息,采用一个动态数组来记录,每条记录包括:
用于表示软剪切在基因组上所处位置的软剪切位置存储部;
用于表示软剪切发生在相应位点左边的次数的软剪切左侧数存储部;
用于表示软剪切发生在相应位点右边的次数的软剪切右侧数存储部。
可选的,所述索引包括双端比对信息索引和单端比对信息索引;
对于双端比对信息索引,采用双端比对数组结构进行存储,所述双端比对数组结构包括:
用于表示基因序列的ID的第一ID存储部;
用于表示基因序列比对到基因组上的位置的第一比对位置存储部;
用于表示基因序列的***片段长度的***片段长度存储部;
用于表示基因序列的比对质量值的第一比对质量值存储部;
用于表示基因序列的平均质量值的第一平均质量值存储部;
对于单端比对信息索引,采用单端比对数组结构进行存储,所述单端比对数组结构包括:
用于表示基因序列的ID的第二ID存储部;
用于表示基因序列比对到基因组上的位置的第二比对位置存储部;
用于表示基因序列的比对质量值的第二比对质量值存储部;
用于表示基因序列的平均质量值的第二平均质量值存储部;
其中,对于每条用于比对的基因序列,根据该基因序列在基因组上的比对位置,其相应的索引依次排列。
可选的,将所述基因序列比对信息存储于磁盘,具体包括:
所以将基因序列比对信息分成512个文件并存储于磁盘,每个文件存储一定基因组区间的基因序列比对信息,每条基因序列比对信息的存储数据结构包括:
用于表示基因序列的序列长度的序列长度存储部;
用于表示基因序列本身的序列存储部;
用于表示基因序列的质量值的质量值存储部;
用于表示基因序列在比对时的比对算法开始位置的开始位置存储部;
用于表示基因序列在比对时的正负链信息的正负链存储部;
用于表示基因序列在比对时选取的基因组区域长度的区域长度存储部;
用于表示基因序列在比对时左边铆定的位置的左侧位置存储部;
用于表示基因序列在比对时右边铆定的位置的右侧位置存储部。
可选的,所述的方法还包括:
在去重复过程中,减去所述基因组统计信息中重复序列造成的干扰;
和/或,
在重比对过程中,提取基因组的重比对区域的基因序列,重新比对重比对区域的基因序列后,调整重比对区域的基因序列的所述基因组统计信息。
从上面所述可以看出,本发明提供的基因组数据存储方法及电子设备,针对变异检测全过程中的中间文件的特点,设计了精巧的数据存储结构,将其中一些主要的中间数据保持在内存里,这些数据可从内存中直接调用,使得变异检测全过程的每一个步骤不用大量的进行磁盘的I/O读写,显著提高了整个变异检测分析流程的效率。
附图说明
图1为本发明提供的基因组数据存储方法的一个实施例的流程示意图;
图2a为在没有出现***缺失和软剪切,且碱基类型最多出现过2种的位点时,所述第一数据结构的示意图;
图2b为在有***缺失(InDel)出现,且碱基类型出现过3-4种的位点时,所述第二数据结构的示意图;
图2c为在有***缺失(InDel)出现,且碱基类型出现过3-4种的位点时,所述第一数据结构的示意图;
图2d为在出现多余1个的***缺失、***长度大于12个碱基的位点时,所述第三数据结构的示意图;
图2e为在出现多余1个的***缺失、***长度大于12个碱基的位点时,所述第一数据结构的示意图;
图2f为在对于所述软剪切统计信息,采用一个动态数组来记录时,所述动态数组的示意图;
图2g为所述索引的示意图;
图2h为所述每条基因序列比对信息的存储数据结构的示意图;
图3为本发明提供的基因组序列比对方法的一个实施例的流程示意图;
图4为本发明提供的基因组数据存储装置的一个实施例的结构示意图;
图5为本发明提供的电子设备的一个实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”、“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种基因组数据存储方法的一个实施例,能够解决基因组变异检测过程中需要频繁地输入输出大量二进制文件而造成的低效率问题。如图1所示,为本发明提供的基因组数据存储方法的一个实施例的流程示意图。
所述基因组数据存储方法,包括:
步骤101:在比对过程中,得到基因序列比对信息,并创建基因序列统计信息;所述基因序列比对信息为基因组比对过程中产生的基因序列比对结果信息,根据该基因序列比对结果信息,从中可以提取得到所述基因序列统计信息;
步骤102:将所述基因序列比对信息存储于磁盘,并按基因序列比对信息在基因组的比对位置,在内存中存储相应的索引;所述索引为所述基因序列比对信息在磁盘中的存储位置;
步骤103:对所述基因序列统计信息进行分类,得到第一统计信息和第二统计信息;
步骤104:将所述第一统计信息存储于内存,所述第一统计信息为变异检测过程中访问频率高于预设频率的统计信息;
步骤105:将所述第二统计信息存储于磁盘,所述第二统计信息为无法存储于内存的统计信息和/或变异检测过程中访问频率低于预设频率的统计信息。
从上述实施例可以看出,本发明实施例提供的基因组数据存储方法,针对变异检测全过程(包括比对、排序、去重复、重比对、变异检测、过滤等步骤)中的中间文件的特点,设计了精巧的数据存储结构,将其中一些主要的中间数据保持在内存里,这些数据可从内存中直接调用,使得变异检测全过程的每一个步骤不用大量的进行磁盘的I/O读写,显著提高了整个变异检测分析流程的效率。
在一些可选实施方式中,所述第一统计信息包括碱基加权质量值统计信息、正负链统计信息、***缺失统计信息和软剪切统计信息;具体包括:
所述碱基加权质量值统计信息(Weighted Count):
由于每个比对到参考基因序列上的碱基都有一个质量值,在0-40之间,赋予的权重如下表所示:
Base Quality Scores | Parameter* | Weight |
0–10 | [0–Weight0] | 0 |
11–13 | (Weight0–Weight1) | 1 |
14–17 | (Weight1–Weight2) | 2 |
18–20 | (Weight2–Weight3) | 3 |
21–40 | (Weight3–40) | 4 |
将所有比对到同一位置的相同碱基的权重相加,得到这个碱基类型的质量值权重和;
所述正负链统计信息(Strand Count):正向和反向比对到同一位置的基因序列数统计;
所述***缺失统计信息以及***序列信息(InDel Count):比对基因序列中在基因组某个位置***缺失序列以及累计出现的次数;
所述软剪切统计信息(Soft Clip Count):比对基因序列中在基因组某个位置出现软剪切(soft clip)的次数。
在一些可选实施方式中,考虑最简单的情况,对于没有出现***缺失和软剪切,且碱基类型最多出现过2种的位点,该位点的第一统计信息采用第一数据结构存储;可选的,所述第一数据结构为8bytes的数据结构Counter(容器),采用一个8bytes的数据结构Counter保存一个位点的信息,整个人类基因组大约包括3G个位点,因此需要内存约24GB;
所述第一数据结构,如图2a所示,两个碱基的统计信息(base1information和base2 information)采用同样的4bytes数据结构存储,包括:
用于表示碱基类型的第一头部;可选的,所述第一头部(base)使用2bits表示碱基类型,碱基A、C、G、T分别使用00、01、10和11来表示;
用于表示碱基加权质量值的第一质量值存储部;可选的,所述第一质量值存储部(weighted count)使用14bits表示加权质量值和,最大值为16383;
用于表示正链数量的第一正链数存储部;可选的,所述第一正链数存储部(+vestrand count)使用1byte(8bits)来表示正链的数量,最大值为255;
用于表示负链数量的第一负链数存储部;可选的,所述第一负链数存储部(-vestrand count)使用1byte(8bits)来表示负链的数量,最大值为255。
在一些可选实施方式中,对于有***缺失(InDel)出现,且碱基类型出现过3-4种的位点,该位点的第一统计信息采用第一数据结构和第二数据结构存储;可选的,采用一个32bytes的数据结构OverflowCounter(溢出容器)来保存一个位点的信息,碱基ACGT的统计信息(base A information、base C information、base G information和base Tinformation)分别各用6bytes表示,***信息(Insertion Info.)和缺失信息(DeletionInfo.)各用4bytes表示;根据经验30X全基因组数据大约有200M个这样的位点;
所述第二数据结构,如图2b所示,包括:
4种碱基类型各自的碱基加权质量值统计信息和正负链统计信息;每种碱基类型的碱基加权质量值统计信息和正负链统计信息的存储结构具体包括:用于表示碱基加权质量值的第二质量值存储部(weighted count,可选的,使用2bytes表示加权质量值和,最大值为65535),用于表示正链数量的第二正链数存储部(+ve strand count,可选的,使用2bytes表示正链数量,最大值为65535),以及,用于表示负链数量的第二负链数存储部(-vestrand count,可选的,使用2bytes表示负链数量,最大值为65535);
第一***统计信息,具体包括:用于表示***序列的第一***序列存储部(Insertion Pattern,可选的,使用3bytes表示,这里最长能表示12个碱基),用于表示低质量***数量的第一低质量***数存储部(LQ count,可选的,使用1byte表示,最大值255);
第一缺失统计信息,具体包括:用于表示缺失长度的第一缺失长度存储部(Del.Len,可选的,使用1byte表示,最大值255),用于表示高质量缺失数量的第一高质量缺失数存储部(HQ count,可选的,使用1byte表示,最大值255),用于表示低质量缺失数量的第一低质量缺失数存储部(LQ count,可选的,使用1byte表示,最大值255);可选的,还包括1byte未使用空间;
当使用Overf lowCounter时,相应的所述第一数据结构的存储内容会发生变化,所述第一数据结构,如图2c所示,包括:
用11填充的第二头部;原先用来存储base1 information和base2information两个碱基类型的数据,会都被填充为“11”表示使用了OverflowCounter;
用于表示是否存在***的第一***信息存储部(Insertion Information),可选的,使用14bits来保存***信息,具体包括:用于表示是否存在***的第一***信息子存储部(1bit),用于表示***长度的***长度子存储部(Ins.Len.使用4bits表示),用于表示低质量***数量的低质量***数子存储部(LQ count,使用8bits表示);可选的,1bit设置为0;
用于表示是否存在缺失的第一缺失信息存储部(Deletion Information),可选的,使用14bits来保存缺失信息,使用1bit表示是否存在缺失(第一缺失信息子存储部),1bit设置为0,12bits未使用(Unused);
用于指向相应的第二数据结构存储位置的指针(array index pointing todynamic array of overflow counter),可选的,使用4bytes来保存指向OverflowCounter数据的位置的一个指针。
在一些可选实施方式中,对于出现多余1个的***缺失、***长度大于12个碱基的位点,该位点的第一统计信息采用第一数据结构和第三数据结构存储,且对于这样的位点的第一统计信息,在内存中创建内存池(Memory Pool,专门开辟一块内存)来进行存储,碱基ACGT的统计信息(base A information、base C information、base G information和base T information)分别各用6bytes表示,并在OverflowCounter中记录***缺失信息的指针,如图2d所示;
所述第三数据结构,如图2d所示,包括:
4种碱基类型各自的碱基加权质量值统计信息和正负链统计信息;每种碱基类型的碱基加权质量值统计信息和正负链统计信息的存储结构具体包括:用于表示碱基加权质量值的第三质量值存储部(weighted count,可选的,使用2bytes表示加权质量值和,最大值为65535),用于表示正链数量的第三正链数存储部(+ve strand count,可选的,使用2bytes表示正链数量,最大值为65535),以及,用于表示负链数量的第三负链数存储部(-vestrand count,可选的,使用2bytes表示负链数量,最大值为65535);
第二***统计信息(Insertion Ptr),可选的,使用4bytes来表示,具体包括:用于表示***长度的***长度存储部(Insertion length,可选的,使用1byte表示***长度),用于表示***序列的第二***序列存储部(Insertion pattern,长度不定,每2bits表示一个碱基),用于表示低质量***数量的第二低质量***数存储部(LQ count,可选的,使用1byte表示低质量***数量),以及,用于表示高质量***数量的高质量***数存储部(HQcount,可选的,使用1byte表示高质量***数量);
第二缺失统计信息(Deletion Ptr),可选的,使用4bytes来表示,具体包括:用于表示缺失长度的第二缺失长度存储部(Deletion length,可选的,使用1byte表示缺失长度),用于表示高质量缺失数量的第二高质量缺失数存储部(HQ count,可选的,使用1byte表示高质量缺失数量),用于表示低质量缺失数量的第二低质量缺失数存储部(LQ count,可选的,使用1byte表示低质量缺失数量);
与此同时,在Counter中的信息记录变化如图2e所示,所述第一数据结构,包括:
用11填充的第三头部;原先用来存储base1 information和base2information两个碱基类型的数据,会都被填充为“11”表示使用了OverflowCounter;
用于表示是否存在***的第二***信息存储部(Insertion Information),可选的,使用14bits表示,具体包括:用于表示是否存在***的第二***信息子存储部(1bit),用于表示是否使用了内存池的第一内存池信息子存储部(1bit),用于表示在内存池中的占用长度的第一占用长度子存储部(12bits);
用于表示是否存在缺失的第二缺失信息存储部(Deletion Information),可选的,使用14bits表示,具体包括:用于表示是否存在缺失的第二缺失信息子存储部(1bit),用于表示是否使用了内存池的第二内存池信息子存储部(1bit),用于表示在内存池中的占用长度的第二占用长度子存储部(12bits)。
根据经验,软剪切(soft clipping)只会发生很少的基因组位置上,因此没有必要为每个位点单独开辟一块存储空间。因此,在一些可选实施方式中,对于所述软剪切统计信息,采用一个动态数组来记录,如图2f所示,每条记录的格式为{position,left counts,right counts},占用12bytes,具体包括:
用于表示软剪切在基因组上所处位置的软剪切位置存储部(position),占用4bytes;
用于表示软剪切发生在相应位点左边的次数的软剪切左侧数存储部(leftcounts),占用4bytes;
用于表示软剪切发生在相应位点右边的次数的软剪切右侧数存储部(rightcounts),占用4bytes。
在一些可选实施方式中,如图2g所示,所述索引包括双端比对(Pair End)信息索引和单端比对(Single End)信息索引;
对于双端比对信息索引,采用双端比对数组结构进行存储,所述双端比对数组结构(PairEndAlignment Info,占用12bytes)包括:
用于表示基因序列的ID的第一ID存储部(ReadID),占用4bytes;
用于表示基因序列比对到基因组上的位置的第一比对位置存储部(AlignedPosition),占用4bytes;
用于表示基因序列的***片段长度的***片段长度存储部(Insert Size),占用2bytes;
用于表示基因序列的比对质量值的第一比对质量值存储部(MAPQ),占用1byte;
用于表示基因序列的平均质量值的第一平均质量值存储部(Average BaseQuality),占用1byte;
对于单端比对信息索引,采用单端比对数组结构进行存储,所述单端比对数组结构(SingleEndAlignmentInfo,占用10bytes)包括:
用于表示基因序列的ID的第二ID存储部(ReadID),占用4bytes;
用于表示基因序列比对到基因组上的位置的第二比对位置存储部(AlignedPosition),占用4bytes;
用于表示基因序列的比对质量值的第二比对质量值存储部(MAPQ),占用1byte;
用于表示基因序列的平均质量值的第二平均质量值存储部(Average BaseQuality),占用1byte;
其中,对于每条用于比对的基因序列,根据该基因序列在基因组上的比对位置,其相应的索引依次排列。
因为变异检测过程中读取序列非常随机,在一些可选实施方式中,将所述基因序列比对信息存储于磁盘,具体包括:
所以将基因序列比对信息分成512个文件(buckets)并存储于磁盘,每个文件存储一定基因组区间的基因序列比对信息,如图2h所示,每条基因序列比对信息的存储数据结构包括:
用于表示基因序列的序列长度的序列长度存储部(Read Length),占用2bytes;
用于表示基因序列本身的序列存储部(Packed Read),长度不定,使用2bits表示一个碱基;
用于表示基因序列的质量值的质量值存储部(Base Qualities),长度不定;
用于表示基因序列在比对时的比对算法开始位置的开始位置存储部(DP StartPos.),占用4bytes;
用于表示基因序列在比对时的正负链信息的正负链存储部(Strand),占用1bit;
用于表示基因序列在比对时选取的基因组区域长度的区域长度存储部(DPref.length),占用15bits;
用于表示基因序列在比对时左边铆定的位置的左侧位置存储部(Left Anchor),占用4bytes;
用于表示基因序列在比对时右边铆定的位置的右侧位置存储部(Right anchor),占用4bytes。
除了前述的实施例中在对比过程中,创建统计数据和索引的步骤外,在一些可选实施方式中,所述方法还包括:
在去重复(de-duplication)过程中,减去所述基因组统计信息中重复序列造成的干扰;
和/或,
在重比对(realignment)过程中,提取基因组的重比对区域的基因序列,重新比对重比对区域的基因序列后,调整重比对区域的基因序列的所述基因组统计信息;
在变异检测过程中,直接使用这些统计信息,计算各种基因型的概率。
通过本发明实施例提供的基因组数据存储方法,整个分析过程不用反复输出大量二进制文件,经过整体的算法优化,分析一个全基因组的数据,可以在4小时内完成,而一般的分析流程需要几十小时才能完成;极大的减少了变异检测分析过程中的I/O过程,极大的提高了程序的分析效率。
为了便于前述技术方案的理解,在这里简单介绍一种基因组序列比对方法的实施例,用于解释前述实施例中步骤101中的基因组比对过程。如图3所示,为本发明提供的基因组序列比对方法的一个实施例的流程示意图。
所述基因组序列比对方法,包括以下步骤:
步骤201:获取参考基因组序列和待比对的基因组序列文件。这里的文件获取方式采用常规获取方式即可。其中,所述待比对的基因组序列文件的格式可以是FASTQ文件。
所述基因组序列比对方法,将序列比对分为3个级别来进行;每次从输入的待比对的基因组序列文件中读取一部分序列,然后依次对执行1级、2级、3级比对算法,上一级没有比对上的序列,进入下一级的比对算法中继续比对;具体包括以下步骤。
步骤202:从待比对的基因组序列文件中读取部分基因组序列。
步骤203:按照双向BWT比对算法(第1级:双向BWT比对算法,双向BWT:Bi-directional Burrows–Wheeler Transform,双向巴罗斯-惠勒变换),将所述部分基因组序列与参考基因组序列进行比对。其中,所述双向BWT比对算法处理最多允许4个碱基错误的reads比对。Reads,读长,是高通量测序中获得的测序序列,每一个read是一段碱基序列。在生物信息分析过程中,将每个read比对到参考基因组上,就可以得到测序序列和参考基因组的不同,从而发现变异。
可选的,按照双向BWT比对算法比对基因组序列的方法,具体可包括以下步骤:
使用鸽舍原理对reads进行分段,每段允许0-2个碱基错误;
接着使用双向BWT比对算法进行搜索比对,包括:
建立所述参考基因组序列的BWT、后缀数组及参考基因组序列逆序的BWT;
使用后向搜索(backward)和前向搜索(forward)分别对reads或reads的每个片段从右到左和从左到右两个方向搜索其在参考基因组序列上的位置。
所述双向BWT比对在处理多个碱基错误匹配的时候,效率比较低。在最多允许4个碱基错误匹配的情况下,根据鸽舍原理对reads进行分段,每个段落允许0-2个碱基错误匹配,这样用双向BWT处理最多2个碱基错误的比对,效率大大增加。
常见比对软件BWA在建立参考序列的BWT和相应的索引以及SA(suffix array)后,使用backward搜索,即对reads或者reads的每个片段从右到左搜索其在基因组上的位置。本专利使用的双向BWT除了建立传统的BWT索引(记为B)外,对参考序列的逆序序列也建立一个BWT索引(记为B’)。利用B、B’、SA,通过backward、forward在两个方向上搜索reads或seeds在基因组上的位置,序列比对的效率显著提高。
步骤204:所述部分基因组序列中是否至少存在一对reads中仅有一条read比对上(即,在所述部分基因组序列中,至少有一对reads是只有一条read被比对上了);若是,进入步骤208;若否,进入步骤205。
步骤205:按照单端动态规划比对算法(第2级),将所述部分基因组序列中仅有一条read比对上的每对reads,与参考基因组序列再次进行比对。在经过前述第1级的双向BWT比对算法,在一对reads(A,A’)中,其中一条(A或A’)比对到参考基因组序列上,另一条(A’或A)却没有比对到参考基因组序列上,将采用第2级比对算法继续进行比对。
可选的,按照单端动态规划比对算法比对基因组序列的方法,具体可包括以下步骤:
确定一对reads(A,A’)中的一条read(A或A’)比对到所述参考基因组序列上的特定位置(pos位置);双端测序得到的数据reads是成对的,假设一对reads(A,A’)的其中一条read(A或A’)比对到参考基因组序列上的pos位置,则另一条read(A’或A)的理论比对位置在pos位置周围的一定区域即候选区域(candidate region)内;
因此,根据预设位置范围阈值,选取所述特定位置(pos位置)周围的特定范围;所述预设位置范围阈值可以根据实际需要进行选择,例如参考误差容忍范围进行设置;具体地,在双端测序中,一对reads都比对到基因组上,那么两条read之间的距离与两条read长度之和等于测序片段(fragment)的长度,根据这个原理确定候选区域的位置。例如,测序片段是500bp,每个read是150bp,则比对到基因组上后,两个read之间的理论距离是200bp。因为测序片段长度不等,所以理论距离大约在100bp~200bp;
在所述特定范围内使用动态规划算法对一对reads中的没有被比对上的另一条(A’或A)进行比对;步骤206:所述部分基因组序列中是否至少存在一对reads中两条read均未比对上(即,在所述部分基因组序列中,至少有一对reads的每条read都没被比对上);若是,进入步骤108;若否,进入步骤207。
步骤207:按照双端动态规划比对算法(第3级),将所述部分基因组序列中两条read均未比对上的每对reads,与参考基因组序列再次进行比对。在一对reads(A,A’)中,经过前述第1级的双向BWT比对算法和第2级的单端动态规划比对算法,某一对reads(A,A’)中的A和A’均没有比对上参考基因组序列,将采用第3级比对算法继续进行比对。
可选的,按照双端动态规划比对算法比对基因组序列的方法,具体可包括以下步骤:
对一对reads中的每条(A和A’)分别构建种子(seeds,substrings of a read);
具体地,对一对reads(A,A’)的每条read分别分成许多小段,构建种子(seeds,substrings of a read);一对reads比对到基因组上时,两个read之间的距离在一定的范围内,因此两个read的seed之间的距离也应该在一定的范围内;
将每一个种子比对到参考基因组序列上;
具体地,检索出成对(即两个seeds之间的距离符合要求)的seeds比对的区域,确定这对reads的候选比对区域。然后用动态规划算法将reads比对到候选区域。
若在所述参考基因组序列的某一区域,所述reads的两条(A和A’)分别有相应的种子比对上,则该区域为最终比对位置的候选区域;
在所述候选区域内使用动态规划算法分别对所述reads的两条(A和A’)进行比对;比对完成后进入步骤208;步骤208:是否全部比对完成所述待比对的基因组序列文件;若否,返回步骤102;若是,进入步骤109。
步骤209:输出比对结果。可选的,BAM文件是基因组序列比对的输出文件,BAM为基因组序列比对结果保存格式,记录了基因组序列在参考基因组序列的位置和详细的序列比对情况。
从上述实施例可以看出,本发明提供的基因组序列比对方法,通过设置多级比对算法,在前一级算法比对完成后利用下一级比对算法对比对不上的部分进行继续对比,从而让算法的复杂度匹配上数据的复杂度,并且对每一级算法进行优化,进而达到整体算法速度上的优化。采用本发明提供的基因组序列比对方法,在相同资源和保证比对的精确度的前提下,可将一个人全基因组序列的比对时间缩短到4小时左右,较现有技术的比对时间有显著的缩短,提高了数据分析效率。
基于上述目的,本发明实施例的第二个方面,提出了一种基因组数据存储装置的一个实施例,能够解决基因组变异检测过程中需要频繁地输入输出大量二进制文件而造成的低效率问题。如图4所示,为本发明提供的基因组数据存储装置的一个实施例的结构示意图。
所述基因组数据存储装置,包括:
创建模块301,用于在基因组比对过程中,得到基因序列比对信息,并创建基因序列统计信息;
比对信息存储模块302,用于将所述基因序列比对信息存储于磁盘,并按基因序列比对信息在基因组的比对位置,在内存中存储相应的索引;所述索引为所述基因序列比对信息在磁盘中的存储位置;
统计信息分类模块303,用于对所述基因组统计信息进行分类,得到第一统计信息和第二统计信息;
统计信息存储模块304,用于将第一统计信息存储于内存,所述第一统计信息为变异检测过程中访问频率高于预设频率的统计信息;以及,将第二统计信息存储于磁盘,所述第二统计信息为无法存储于内存的统计信息和/或变异检测过程中访问频率低于预设频率的统计信息。
在一些可选实施方式中,所述第一统计信息包括碱基加权质量值统计信息、正负链统计信息、***缺失统计信息和软剪切统计信息。
在一些可选实施方式中,对于没有出现***缺失和软剪切,且碱基类型最多出现过2种的位点,该位点的第一统计信息采用第一数据结构存储;
所述第一数据结构,包括:
用于表示碱基类型的第一头部;
用于表示碱基加权质量值的第一质量值存储部;
用于表示正链数量的第一正链数存储部;
用于表示负链数量的第一负链数存储部。
在一些可选实施方式中,对于有***缺失出现,且碱基类型出现过3-4种的位点,该位点的第一统计信息采用第一数据结构和第二数据结构存储;
所述第二数据结构,包括:
4种碱基类型各自的碱基加权质量值统计信息和正负链统计信息;每种碱基类型的碱基加权质量值统计信息和正负链统计信息的存储结构具体包括:用于表示碱基加权质量值的第二质量值存储部,用于表示正链数量的第二正链数存储部,以及,用于表示负链数量的第二负链数存储部;
第一***统计信息,具体包括:用于表示***序列的第一***序列存储部,用于表示低质量***数量的第一低质量***数存储部;
第一缺失统计信息,具体包括:用于表示缺失长度的第一缺失长度存储部,用于表示高质量缺失数量的第一高质量缺失数存储部,用于表示低质量缺失数量的第一低质量缺失数存储部;
所述第一数据结构,包括:
用11填充的第二头部;
用于表示是否存在***的第一***信息存储部,具体包括:用于表示是否存在***的第一***信息子存储部,用于表示***长度的***长度子存储部,用于表示低质量***数量的低质量***数子存储部;
用于表示是否存在缺失的第一缺失信息存储部;
用于指向相应的第二数据结构存储位置的指针。
在一些可选实施方式中,对于出现多余1个的***缺失、***长度大于12个碱基的位点,该位点的第一统计信息采用第一数据结构和第三数据结构存储,且对于这样的位点的第一统计信息,在内存中创建内存池来进行存储;
所述第三数据结构,包括:
4种碱基类型各自的碱基加权质量值统计信息和正负链统计信息;每种碱基类型的碱基加权质量值统计信息和正负链统计信息的存储结构具体包括:用于表示碱基加权质量值的第三质量值存储部,用于表示正链数量的第三正链数存储部,以及,用于表示负链数量的第三负链数存储部;
第二***统计信息,具体包括:用于表示***长度的***长度存储部,用于表示***序列的第二***序列存储部,用于表示低质量***数量的第二低质量***数存储部,以及,用于表示高质量***数量的高质量***数存储部;
第二缺失统计信息,具体包括:用于表示缺失长度的第二缺失长度存储部,用于表示高质量缺失数量的第二高质量缺失数存储部,用于表示低质量缺失数量的第二低质量缺失数存储部;
所述第一数据结构,包括:
用11填充的第三头部;
用于表示是否存在***的第二***信息存储部,具体包括:用于表示是否存在***的第二***信息子存储部,用于表示是否使用了内存池的第一内存池信息子存储部,用于表示在内存池中的占用长度的第一占用长度子存储部;
用于表示是否存在缺失的第二缺失信息存储部,具体包括:用于表示是否存在缺失的第二缺失信息子存储部,用于表示是否使用了内存池的第二内存池信息子存储部,用于表示在内存池中的占用长度的第二占用长度子存储部。
在一些可选实施方式中,对于所述软剪切统计信息,采用一个动态数组来记录,每条记录包括:
用于表示软剪切在基因组上所处位置的软剪切位置存储部;
用于表示软剪切发生在相应位点左边的次数的软剪切左侧数存储部;
用于表示软剪切发生在相应位点右边的次数的软剪切右侧数存储部。
在一些可选实施方式中,所述索引包括双端比对信息索引和单端比对信息索引;
对于双端比对信息索引,采用双端比对数组结构进行存储,所述双端比对数组结构包括:
用于表示基因序列的ID的第一ID存储部;
用于表示基因序列比对到基因组上的位置的第一比对位置存储部;
用于表示基因序列的***片段长度的***片段长度存储部;
用于表示基因序列的比对质量值的第一比对质量值存储部;
用于表示基因序列的平均质量值的第一平均质量值存储部;
对于单端比对信息索引,采用单端比对数组结构进行存储,所述单端比对数组结构包括:
用于表示基因序列的ID的第二ID存储部;
用于表示基因序列比对到基因组上的位置的第二比对位置存储部;
用于表示基因序列的比对质量值的第二比对质量值存储部;
用于表示基因序列的平均质量值的第二平均质量值存储部;
其中,对于每条用于比对的基因序列,根据该基因序列在基因组上的比对位置,其相应的索引依次排列。
在一些可选实施方式中,将所述基因序列比对信息存储于磁盘,具体包括:
所以将基因序列比对信息分成512个文件并存储于磁盘,每个文件存储一定基因组区间的基因序列比对信息,每条基因序列比对信息的存储数据结构包括:
用于表示基因序列的序列长度的序列长度存储部;
用于表示基因序列本身的序列存储部;
用于表示基因序列的质量值的质量值存储部;
用于表示基因序列在比对时的比对算法开始位置的开始位置存储部;
用于表示基因序列在比对时的正负链信息的正负链存储部;
用于表示基因序列在比对时选取的基因组区域长度的区域长度存储部;
用于表示基因序列在比对时左边铆定的位置的左侧位置存储部;
用于表示基因序列在比对时右边铆定的位置的右侧位置存储部。
基于上述目的,本发明实施例的第三个方面,提出了一种执行所述基因组数据存储方法的装置的一个实施例。如图5所示,为本发明提供的执行所述基因组数据存储方法的装置的一个实施例的硬件结构示意图。
如图5所示,所述装置包括:
一个或多个处理器401以及存储器402,图5中以一个处理器401为例。
执行所述基因组数据存储方法的装置还可以包括:输入装置403和输出装置404。
处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图5中以通过总线连接为例。
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的所述基因组数据存储方法对应的程序指令/模块(例如,附图4所示的创建模块301、比对信息存储模块302、统计信息分类模块303和统计信息存储模块304)。处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的基因组数据存储方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据基因组数据存储装置的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至会员用户行为监控装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置403可接收输入的数字或字符信息,以及产生与基因组数据存储装置的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器402中,当被所述一个或者多个处理器401执行时,执行上述任意方法实施例中的基因组数据存储方法。所述执行所述基因组数据存储方法的装置的实施例,其技术效果与前述任意方法实施例相同或者类似。
本申请实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的列表项操作的处理方法。所述非暂态计算机存储介质的实施例,其技术效果与前述任意方法实施例相同或者类似。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(RandomAccess Memory,RAM)等。所述计算机程序的实施例,其技术效果与前述任意方法实施例相同或者类似。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基因组数据存储方法,其特征在于,包括:
在比对过程中,得到基因序列比对信息,并创建基因序列统计信息;
将所述基因序列比对信息存储于磁盘,并按基因序列比对信息在基因组的比对位置,在内存中存储相应的索引;所述索引为所述基因序列比对信息在磁盘中的存储位置;
对所述基因组统计信息进行分类,得到第一统计信息和第二统计信息;
将第一统计信息存储于内存,所述第一统计信息为变异检测过程中访问频率高于预设频率的统计信息;
将第二统计信息存储于磁盘,所述第二统计信息为无法存储于内存的统计信息和/或变异检测过程中访问频率低于预设频率的统计信息;
所述第一统计信息包括碱基加权质量值统计信息、正负链统计信息、***缺失统计信息和软剪切统计信息;
对于没有出现***缺失和软剪切且碱基类型最多出现过2种的位点,该位点的第一统计信息采用第一数据结构存储;
所述第一数据结构,包括:
用于表示碱基类型的第一头部;
用于表示碱基加权质量值的第一质量值存储部;
用于表示正链数量的第一正链数存储部;
用于表示负链数量的第一负链数存储部。
2.根据权利要求1所述的方法,其特征在于,对于有***缺失出现,且碱基类型出现过3-4种的位点,该位点的第一统计信息采用第一数据结构和第二数据结构存储;
所述第二数据结构,包括:
4种碱基类型各自的碱基加权质量值统计信息和正负链统计信息;每种碱基类型的碱基加权质量值统计信息和正负链统计信息的存储结构具体包括:用于表示碱基加权质量值的第二质量值存储部,用于表示正链数量的第二正链数存储部,以及,用于表示负链数量的第二负链数存储部;
第一***统计信息,具体包括:用于表示***序列的第一***序列存储部,用于表示低质量***数量的第一低质量***数存储部;
第一缺失统计信息,具体包括:用于表示缺失长度的第一缺失长度存储部,用于表示高质量缺失数量的第一高质量缺失数存储部,用于表示低质量缺失数量的第一低质量缺失数存储部;
所述第一数据结构,包括:
用11填充的第二头部;
用于表示是否存在***的第一***信息存储部,具体包括:用于表示是否存在***的第一***信息子存储部,用于表示***长度的***长度子存储部,用于表示低质量***数量的低质量***数子存储部;
用于表示是否存在缺失的第一缺失信息存储部,具体包括:用于表示是否存在缺失的第一缺失信息子存储部;
用于指向相应的第二数据结构存储位置的指针。
3.根据权利要求1所述的方法,其特征在于,对于出现多余1个的***缺失、***长度大于12个碱基的位点,该位点的第一统计信息采用第一数据结构和第三数据结构存储,且对于这样的位点的第一统计信息,在内存中创建内存池来进行存储;
所述第三数据结构,包括:
4种碱基类型各自的碱基加权质量值统计信息和正负链统计信息;每种碱基类型的碱基加权质量值统计信息和正负链统计信息的存储结构具体包括:用于表示碱基加权质量值的第三质量值存储部,用于表示正链数量的第三正链数存储部,以及,用于表示负链数量的第三负链数存储部;
第二***统计信息,具体包括:用于表示***长度的***长度存储部,用于表示***序列的第二***序列存储部,用于表示低质量***数量的第二低质量***数存储部,以及,用于表示高质量***数量的高质量***数存储部;
第二缺失统计信息,具体包括:用于表示缺失长度的第二缺失长度存储部,用于表示高质量缺失数量的第二高质量缺失数存储部,用于表示低质量缺失数量的第二低质量缺失数存储部;
所述第一数据结构,包括:
用11填充的第三头部;
用于表示是否存在***的第二***信息存储部,具体包括:用于表示是否存在***的第二***信息子存储部,用于表示是否使用了内存池的第一内存池信息子存储部,用于表示在内存池中的占用长度的第一占用长度子存储部;
用于表示是否存在缺失的第二缺失信息存储部,具体包括:用于表示是否存在缺失的第二缺失信息子存储部,用于表示是否使用了内存池的第二内存池信息子存储部,用于表示在内存池中的占用长度的第二占用长度子存储部。
4.根据权利要求1所述的方法,其特征在于,对于所述软剪切统计信息,采用一个动态数组来记录,每条记录包括:
用于表示软剪切在基因组上所处位置的软剪切位置存储部;
用于表示软剪切发生在相应位点左边的次数的软剪切左侧数存储部;
用于表示软剪切发生在相应位点右边的次数的软剪切右侧数存储部。
5.根据权利要求1所述的方法,其特征在于,所述索引包括双端比对信息索引和单端比对信息索引;
对于双端比对信息索引,采用双端比对数组结构进行存储,所述双端比对数组结构包括:
用于表示基因序列的ID的第一ID存储部;
用于表示基因序列比对到基因组上的位置的第一比对位置存储部;
用于表示基因序列的***片段长度的***片段长度存储部;
用于表示基因序列的比对质量值的第一比对质量值存储部;
用于表示基因序列的平均质量值的第一平均质量值存储部;
对于单端比对信息索引,采用单端比对数组结构进行存储,所述单端比对数组结构包括:
用于表示基因序列的ID的第二ID存储部;
用于表示基因序列比对到基因组上的位置的第二比对位置存储部;
用于表示基因序列的比对质量值的第二比对质量值存储部;
用于表示基因序列的平均质量值的第二平均质量值存储部;
其中,对于每条用于比对的基因序列,根据该基因序列在基因组上的比对位置,其相应的索引依次排列。
6.根据权利要求1所述的方法,其特征在于,将所述基因序列比对信息存储于磁盘,具体包括:
所以将基因序列比对信息分成512个文件并存储于磁盘,每个文件存储一定基因组区间的基因序列比对信息,每条基因序列比对信息的存储数据结构包括:
用于表示基因序列的序列长度的序列长度存储部;
用于表示基因序列本身的序列存储部;
用于表示基因序列的质量值的质量值存储部;
用于表示基因序列在比对时的比对算法开始位置的开始位置存储部;
用于表示基因序列在比对时的正负链信息的正负链存储部;
用于表示基因序列在比对时选取的基因组区域长度的区域长度存储部;
用于表示基因序列在比对时左边铆定的位置的左侧位置存储部;
用于表示基因序列在比对时右边铆定的位置的右侧位置存储部。
7.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
在去重复过程中,减去所述基因组统计信息中重复序列造成的干扰;
和/或,
在重比对过程中,提取基因组的重比对区域的基因序列,重新比对重比对区域的基因序列后,调整重比对区域的基因序列的所述基因组统计信息。
8.一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710546293.7A CN107480466B (zh) | 2017-07-06 | 2017-07-06 | 基因组数据存储方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710546293.7A CN107480466B (zh) | 2017-07-06 | 2017-07-06 | 基因组数据存储方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107480466A CN107480466A (zh) | 2017-12-15 |
CN107480466B true CN107480466B (zh) | 2020-08-11 |
Family
ID=60595629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710546293.7A Active CN107480466B (zh) | 2017-07-06 | 2017-07-06 | 基因组数据存储方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107480466B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108197433A (zh) * | 2017-12-29 | 2018-06-22 | 厦门极元科技有限公司 | 快速dna测序数据分析平台的数据内存和硬盘分流存储方法 |
CN108920902A (zh) * | 2018-06-29 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种基因序列处理方法及其相关设备 |
CN110879782B (zh) * | 2019-11-08 | 2022-06-17 | 浪潮电子信息产业股份有限公司 | 一种基因比对软件的测试方法、装置、设备及介质 |
CN111081314A (zh) * | 2019-12-13 | 2020-04-28 | 北京市商汤科技开发有限公司 | 基因变异的识别方法及装置、电子设备和存储介质 |
CN112270959A (zh) * | 2020-10-22 | 2021-01-26 | 深圳华大基因科技服务有限公司 | 基于共享内存的基因分析方法、装置和计算机设备 |
CN115602246B (zh) * | 2022-10-31 | 2023-06-20 | 哈尔滨工业大学 | 一种基于群体基因组的序列比对方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103201744A (zh) * | 2010-10-13 | 2013-07-10 | 考利达基因组股份有限公司 | 用于估算全基因组拷贝数变异的方法 |
CN104361264A (zh) * | 2014-12-11 | 2015-02-18 | 天津工业大学 | 基因组核酸片段数量的快速计数算法 |
CN106202991A (zh) * | 2016-06-30 | 2016-12-07 | 厦门艾德生物医药科技股份有限公司 | 一种基因组多重扩增测序产物中突变信息的检测方法 |
-
2017
- 2017-07-06 CN CN201710546293.7A patent/CN107480466B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103201744A (zh) * | 2010-10-13 | 2013-07-10 | 考利达基因组股份有限公司 | 用于估算全基因组拷贝数变异的方法 |
CN104361264A (zh) * | 2014-12-11 | 2015-02-18 | 天津工业大学 | 基因组核酸片段数量的快速计数算法 |
CN106202991A (zh) * | 2016-06-30 | 2016-12-07 | 厦门艾德生物医药科技股份有限公司 | 一种基因组多重扩增测序产物中突变信息的检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107480466A (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107480466B (zh) | 基因组数据存储方法及电子设备 | |
WO2020199336A1 (zh) | 一种基因变异识别方法、装置和存储介质 | |
US20130204851A1 (en) | Method and apparatus for compressing and decompressing genetic information obtained by using next generation sequencing (ngs) | |
US20140188893A1 (en) | Data retrieval apparatus, data storage method and data retrieval method | |
CN108881947A (zh) | 一种直播流的侵权检测方法及装置 | |
CN106201774B (zh) | 一种nand flash存储芯片数据存储结构分析方法 | |
US10089411B2 (en) | Method and apparatus and computer readable medium for computing string similarity metric | |
US10810239B2 (en) | Sequence data analyzer, DNA analysis system and sequence data analysis method | |
CN106778079A (zh) | 一种基于MapReduce的DNA序列k‑mer频次统计方法 | |
US10394763B2 (en) | Method and device for generating pileup file from compressed genomic data | |
JP2022533492A (ja) | ハッシュテーブルゲノムマッピングのための柔軟性のあるシード伸長 | |
US8903696B2 (en) | System and method for controlling granularity of transaction recording in discrete event simulation | |
US9213759B2 (en) | System, apparatus, and method for executing a query including boolean and conditional expressions | |
CN114817645A (zh) | 时序数据的存储及读取方法、装置、设备及存储介质 | |
CN107967411B (zh) | 一种脱靶位点的检测方法、装置及终端设备 | |
CN110782946A (zh) | 识别重复序列的方法及装置、存储介质、电子设备 | |
US11567944B2 (en) | Processing of sequencing data streams | |
US9858170B2 (en) | Function-calling-information collection method and computer-readable recording medium | |
WO2011073680A1 (en) | Improvements relating to hash tables | |
KR20160111327A (ko) | 정보 처리 장치 및 데이터 관리 방법 | |
EP3663890B1 (en) | Alignment method, device and system | |
CN113535962B (zh) | 数据入库方法、装置、电子装置、程序产品及存储介质 | |
KR102497634B1 (ko) | 문자 빈도 기반 서열 재정렬을 통한 fastq 데이터 압축 방법 및 장치 | |
US20170060998A1 (en) | Method and apparatus for mining maximal repeated sequence | |
CN113468866A (zh) | 非标准json串的解析方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 1002-1, 10th floor, No.56, Beisihuan West Road, Haidian District, Beijing 100080 Patentee after: Ronglian Technology Group Co., Ltd Address before: 100080, Beijing, Haidian District, No. 56 West Fourth Ring Road, glorious Times Building, 10, 1002-1 Patentee before: UNITED ELECTRONICS Co.,Ltd. |
|
CP03 | Change of name, title or address |