CN115409174B - 一种基于dram存内计算的碱基序列过滤方法与装置 - Google Patents
一种基于dram存内计算的碱基序列过滤方法与装置 Download PDFInfo
- Publication number
- CN115409174B CN115409174B CN202211354686.5A CN202211354686A CN115409174B CN 115409174 B CN115409174 B CN 115409174B CN 202211354686 A CN202211354686 A CN 202211354686A CN 115409174 B CN115409174 B CN 115409174B
- Authority
- CN
- China
- Prior art keywords
- data
- row
- base sequence
- calculation
- result
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/123—DNA computing
-
- 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
- G16B30/00—ICT specially adapted for sequence analysis involving nucleotides or amino acids
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Biology (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Genetics & Genomics (AREA)
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Proteomics, Peptides & Aminoacids (AREA)
- Biotechnology (AREA)
- Medical Informatics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明公开一种基于DRAM存内计算的碱基序列过滤方法与装置,该方法为:步骤一,根据DRAM的存储阵列的列宽和所要筛选目标碱基序列的起点地址,筛选出目标碱基序列后进行重新整理组合;步骤二,对重新整理组合后的目标碱基序列分别进行碱基为A腺嘌呤、G鸟嘌呤、C胞嘧啶、T胸腺嘧啶的标记并获取到对应碱基的标记行;步骤三,对标记行数据进行移位后统计标记行中位置值为1的个数,获得对应碱基的统计结果;步骤四,利用参考碱基序列的统计结果与所述目标碱基序列的统计结果进行对比,过滤所筛选的目标碱基序列。本发明将位置匹配筛选放置在内存子阵列中进行,减少了大量数据在cpu与内存之间的搬移,成倍提升了计算效率,降低了功耗。
Description
技术领域
本发明涉及计算机存内计算领域,具体涉及一种基于DRAM存内计算的碱基序列过滤方法与装置。
背景技术
基因是DNA(脱氧核糖核酸)分子上携带有遗传信息的功能片段,基因支持着生命的基本构造和性能。现有技术对于DNA样本已经有了一套成熟的处理流程,该流程通常由DNA测序、DNA序列定序、基因定位和变异检测三个步骤组成。DNA测序是指利用DNA测序仪将生物样本的DNA提取并转换成计算机能识别的数据序列Read,一般通过化学方法将DNA序列中的由A、C、T和G四种碱基链接而成的碱基序列识别出来,继而转换成由A、C、T、G(A-腺嘌呤G-鸟嘌呤 C-胞嘧啶 T-胸腺嘧啶)四个字符组成的计算机可识别的字符串序列,一个数据序列Read即为一个长度固定的DNA片段,是后续DNA序列处理的基本单位。例如,参考图1所示,一个数据序列Read的长度为10BP(BasePair,碱基对),则读出的数据s序列TCCTAATCTG即为一个Read。DNA测序的结果是生成一大堆的DNA Read,但是这些Read之间顺序未知。DNA序列的定序的作用就是将这些无序的DNA Read同公认的DNA参考序列进行比对计算,以得到各Read在参考序列中的最佳匹配位置。
由于脱氧核糖核酸的数据量非常巨大,通常在测序之前会对序列片段进行筛查和过滤,这种筛查过滤适合采用并行化计算的方式实现,存内计算为计算提供了一个良好的计算平台,可以减少大量数据的反复搬移,可以有效提高***性能。
现代计算机***中,数据在计算单元与内存中的搬移在***功耗和程序运行时间上都占据了很大的比例。随着多核处理器的出现,越来越多的核被集成进同一芯片中,内存总带宽却并没有成比例的增长,造成了算力与数据传输间的不匹配,因而导致了所谓的“内存墙”问题。与此同时,计算资源虽然在增加,计算资源与动态随机存取存储器(以下简称“DRAM”)之间的通信延迟并没有改善,使得数据的搬移成为***瓶颈之一。
为了解决这些挑战 业界陆续提出了多种新型计算方式,其中包括近内存计算、存内处理器、存内计算等。存内计算成为目前解决存储墙问题的关键技术之一。存内计算,顾名思义就是在存储器内进行运算,它可以显著降低数据交换带来的严重计算时延和功耗。目前出现了各种基于不同存储介质材料包括RRAM、PCM、STT-MRAM、DRAM等等的存内计算技术。目前通用的DRAM存储微架构如图2所示。
然而由于碱基序列数据量大,匹配的位置有非常多的可能,使用传统方法仍然存在计算量巨大的问题。
发明内容
为了解决现有技术中存在的上述技术问题,本发明提出了一种基于DRAM存内计算的碱基序列过滤方法与装置,将位置匹配筛选放置在内存子阵列中进行,即在DRAM内进行计算,基于DRAM电容充放电可以完成基本逻辑操作的原理,通过统计某一段基因序列内即参考序列的AGCT碱基的数量,与目标序列的碱基数量进行对比,如果超过某一阈值,则认为这段序列与目标序列不匹配,从而达到筛查定位的目的,实现对碱基序列的定序计算,其具体技术方案如下:
一种基于DRAM存内计算的碱基序列过滤方法,包括以下步骤:
步骤一,根据DRAM的存储阵列的列宽和所要筛选目标碱基序列的起点地址,筛选出目标碱基序列后进行重新整理组合;
步骤二,对重新整理组合后的目标碱基序列分别进行碱基为A腺嘌呤、G鸟嘌呤、C胞嘧啶、T胸腺嘧啶的标记并获取到对应碱基的标记行;
步骤三,对标记行数据进行移位操作后统计标记行中位置值为1的个数,获得A腺嘌呤、G鸟嘌呤、C胞嘧啶、T胸腺嘧啶的统计结果;
步骤四,利用参考碱基序列的统计结果与所述目标碱基序列的统计结果进行对比,过滤所筛选的目标碱基序列。
进一步的,所述步骤一具体为:
根据目标碱基序列长度和存储阵列的列宽度记录无效信息数据数量和无效信息数据位置;
根据筛选起点地址,设置起始段掩码数据和末尾段掩码数据并写入存储阵列;
选择目标碱基序列的前一行所在的目标行数据序列与起始段掩码数据做按位与计算,获得有效起始段目标行数据;选择目标碱基序列的后一行目标行数据序列与末尾掩码数据做按位与计算,获得有效的末尾段目标行数据;
将有效的起始段目标行数据和末尾段目标行数据进行按位或计算,将两行数据的有效部分合并成一行,得到完整的有效目标碱基序列数据,且有效目标碱基序列数据的开头和结尾部分在同一行内,且没有重合位置;
对行存储格式的有效目标碱基序列数据进行列转换操作,获得在存储阵列中按列排放的第一高比特位数据和第一低比特位数据;
根据无效信息数据数量和无效信息数据位置生成列式GCT掩码和A掩码,GCT掩码分别与第一高比特位数据和第一低比特位数据做与运算,将无关数据都置0,生成列式GCT数据并存储为第二高比特位数据和第二低比特位数据,再进行按位取反并存储为第三高比特位数据和第三低比特位数据;A掩码分别与第一高比特位数据和第一低比特位数据做或运算,将无关数据都置1,生成列式A数据并存储为第四高比特位数据和第四低比特位数据。
进一步的,所述起始段掩码数据和末尾段掩码数据由0和M构成,M由两位二进制1组成,当0和目标行序列数据与时,可将无关数据置0,当1和目标行序列数据与时,可将有效数据保留。
进一步的,所述步骤二中的对目标碱基序列中的碱基A腺嘌呤进行标记的具体方法步骤如下:
将由列式A数据存储的第四高比特位数据和第四低比特位数据分别复制至存储阵列的计算区的第一行和第二行;
所述第一行和第二行之间的数据按位进行或运算,取得结果R1;
将结果R1进行取反操作;
将取反操作后的结果复制至存储阵列中A腺嘌呤的标记行,其中含有A腺嘌呤的位置值为1,其余位置值为0。
进一步的,所述步骤二中的对目标碱基序列中的碱基C胞嘧啶进行标记的具体方法步骤如下:
将目标碱基序列的第二高比特位数据和第二低比特位数据分别复制至存储阵列的计算区的第一行和第二行;
将计算区的第一行和第二行的数据进行按位与运算,取得结果R2;
将结果R2复制至存储阵列中C胞嘧啶的标记行,其中含有C胞嘧啶的位置值为1,其余位置值为0。
进一步的,所述步骤二中的对目标碱基序列中的碱基G鸟嘌呤进行标记的具体方法步骤如下:
将第三低比特位数据复制到存储阵列的计算区中的第一行;
将第二高比特位数据复制至计算区中的第二行;
在计算区中对第一行和第二行的数据进行按位与运算,取得结果R3;
将结果R3复制至存储阵列中G鸟嘌呤的标记行,其中含有G鸟嘌呤的位置值为1,其余位置值为0。
进一步的,所述步骤二中的对目标碱基序列中的碱基T胸腺嘧啶进行标记的具体方法步骤如下:
将第三高比特位数据复制至存储阵列的计算区的第一行;
将第二低比特数据复制至计算区的第二行;
对第一行和第二行的数据进行按位与运算,取得结果R4;
将结果R4复制至存储阵列中T胸腺嘧啶的标记行,其中含有T胸腺嘧啶的位置值为1,其余位置值为0。
进一步的,所述步骤三中的统计的具体方法包括以下三步:
第1步,采用列计数器和移位计数器,首先判断当前列计数器的值n是否为1,如果不为1则将该标记行读出,并将读出结果进行左移操作,移动的位数为2的i次方,i为移位计数器的值,完成移位操作后,移位计数器的值i加1,并将结果写回标记行所在的DRAM子阵列;设原标记行为a行,移位后的结果为a_s行,如果n为1,则结束计算,进入第3步;
第2步,将a行和a_s行数据复制至存储阵列计算区的第一行和第二行,对同一列的数据进行求和计算,即第一行和第二行进行异或操作求得两者之和s,第一和第二行进行与操作求得两者之和的进位项c,并将求和的结果写回存储阵列的暂存区;对当前列计数器的值n除以2,并判断结果是否为1,若结果为1则结束计算;若结果不为1,则以暂存区的求和结果为基础,进行新一轮的移位求和操作,每完成一次求和操作,计算结果都将增加一行,即执行第1步的操作,将计算结果进行移位,对移位结果进行列式累加;
第3步,最终判断列计数器的值n为1时,可在计算结果的第一列得到最终结果并保存。
进一步的,所述步骤四具体为:将获得的目标碱基序列的A腺嘌呤、G鸟嘌呤、C胞嘧啶、T胸腺嘧啶的统计结果的补码值以列的形式放于相同行,再利用参考碱基序列的统计结果的补码值放置于对应的列,进行求差值计算,最后将四个差值求和后与阈值比较;如果差值之和大于阈值,则排除目标碱基序列;如果小于阈值,则标记该筛选位置所在的序列为目标碱基序列。
一种基于DRAM存内计算的碱基序列过滤装置,包括:
存储阵列,由DRAM子阵列组成,用于存储目标碱基序列,设定碱基信息用二进制表达,具体为:A-腺嘌呤对应的二进制表达为00,G-鸟嘌呤对应的二进制表达为10,C-胞嘧啶对应的二进制表达为11, T-胸腺嘧啶对应的二进制表达为01,每个碱基信息有2bit数据构成;
所述DRAM子阵列宽度为N即每行有N列存储单元,存储一行长度为N的碱基序列信息需要两行存储单元,分别记作存储高位的H行和存储低位的L行,即同一碱基信息的高低比特位存放在同一列;
在所述存储阵列设有用于数据计算的计算区,用于存储原始的碱基序列数据的原始数据存储区,用于存储转为列格式的数据的列式数据区,以及用于临时存放计算过程中产生的中间结果的暂存区;
控制模块,接收外部地址、数据和命令后进行译码控制发送给字线控制器、位线控制器、移位及取反模块、缓存器,将碱基序列数据格式由同行模式转为同列模式并写入DRAM子阵列中,并控制计算过程;其中,所述字线控制器402控制存储阵列的行信号,位线控制器控制存储阵列的列信号;缓存器用于缓存数据;移位及取反模块,包括移位模块和取反模块,可根据计算需要对一行数据进行移位操作和取反操作。
计数模块,内设一组计数器,包括有移位计数器和列计数器,在写入参考序列时,对不同类型的碱基序列分别进行数量统计,并将最终结果记录,将参考序列的AGCT统计值写入目标阵列的固定地址。
有益效果:
本发明将位置匹配筛选放置在内存子阵列中进行,减少了大量数据在cpu与内存之间的搬移,成倍地提升了计算效率,降低了功耗。
附图说明
图1是在DNA序列片段读取的碱基序列示意图;
图2是通用的DRAM存储微架构示意图;
图3是本发明的一种基于DRAM存内计算的碱基序列过滤装置的模块结构示意图;
图4是本发明的一种基于DRAM存内计算的碱基序列过滤方法的流程示意图;
图5是本发明方法的步骤一的具体流程示意图;
图6是在本发明装置的存储阵列中对目标碱基序列进行重新整理组合时的数据的存储方式示意图;
图7至图10分别是本发明对目标碱基序列中的碱基A腺嘌呤、碱基C胞嘧啶、碱基G鸟嘌呤、碱基T胸腺嘧啶进行标记时的数据的存储方式示意图;
图11是本发明实施例的存储阵列内存放的一段碱基序列信息示意图;
图12是本发明实施例的存储阵列中对目标碱基序列进行重新整理组合时的数据的存储方式示意图;
图13是本发明实施例的二进制表达的部分数据移位后示意图;
图14是本发明实施例的存储阵列中对碱基GCT掩码做与运算时的数据的存储方式示意图;
图15是本发明实施例的存储阵列中对碱基A掩码做或运算时的数据的存储方式示意图;
图16至图19是本发明实施例的对目标碱基序列中的碱基A腺嘌呤、碱基C胞嘧啶、碱基G鸟嘌呤、碱基T胸腺嘧啶进行标记时的数据的存储方式示意图;
图20至图26是本发明实施例的对每类碱基的标记行进行值1统计时的移位及列式求和的数据示意图。
具体实施方式
为了使本发明的目的、技术方案和技术效果更加清楚明白,以下结合说明书附图和实施例,对本发明作进一步详细说明。
如图3所示,本发明的一种基于DRAM存内计算的碱基序列过滤装置,包括:
存储阵列404,由DRAM子阵列组成,用于存储目标碱基序列,设定碱基信息用二进制表达,具体为:A-腺嘌呤对应的二进制表达为00,G-鸟嘌呤对应的二进制表达为10,C-胞嘧啶对应的二进制表达为11, T-胸腺嘧啶对应的二进制表达为01,每个碱基信息有2bit数据构成;
所述DRAM子阵列宽度为N即每行有N列存储单元,存储一行长度为N的碱基序列信息需要两行存储单元,分别记作存储高位的H行和存储低位的L行,即同一碱基信息的高低比特位存放在同一列;
在所述存储阵列404设有用于数据计算的计算区501,用于存储原始的碱基序列数据的原始数据存储区,用于存储转为列格式的数据的列式数据区,以及用于临时存放计算过程中产生的中间结果的暂存区4010。
控制模块403,接收外部地址、数据和命令后进行译码控制发送给字线控制器402、位线控制器401、移位及取反模块406、缓存器405,将碱基序列数据格式由同行模式转为同列模式并写入DRAM子阵列中,并控制计算过程;其中,所述字线控制器402控制存储阵列404的行信号,位线控制器401控制存储阵列404的列信号;缓存器405用于缓存数据;移位及取反模块406,包括移位模块和取反模块,可根据计算需要对一行数据进行移位操作和取反操作。
计数模块407,内设一组计数器,在写入参考序列时,对不同类型的碱基序列分别进行数量统计,并将最终结果记录,将参考序列的AGCT统计值写入目标阵列target_array的固定地址,记作target_A,target_G,target_C,target_T。
基于所述的碱基测序过滤装置,本发明采用的一种基于DRAM存内计算的碱基序列过滤方法,如图4所示,具体包括以下步骤内容:
步骤一,在统计数据准备阶段,根据***设定在存储阵列404中筛选起点地址,筛选出长度小于N的目标碱基序列,对所述目标碱基序列进行重新整理组合。
如图5和图6所示,控制模块403根据目标碱基序列长度和存储阵列404的列宽度记录无效信息数据数量和无效信息数据位置4006。根据筛选起点地址,设置起始段掩码数据4003,设置末尾段掩码数据4004,将掩码数据写入存储阵列404,掩码数据由0和M构成,M由两位二进制1组成,当0和序列数据与时,可将无关数据置0,当1和序列数据与时,可将有效数据保留;选择目标碱基序列的前一行所在的目标行数据序列4001与起始段掩码数据4003做按位与计算,获得有效起始段目标行数据4001_1;选择后一行目标行数据序列4002与末尾掩码数据4004做按位与计算,获得有效的末尾段目标行数据4002_1;将有效的起始段和末尾段目标行数据4001_1和4002_1进行按位或计算,可将两行数据的有效部分合并成一行,得到完整的有效目标碱基序列数据,确保一段序列的开头和结尾部分在同一行内,且没有重合位置。
筛选后对行存储格式的数据进行列转换操作,获得按列排放的分别存放于存储阵列中的两行存储单元的第一高比特位数据4005_h和第一低比特位数据4005_l, 并将数据4005_h和4005_l写回存储阵列404进行下一步计算。
控制模块403根据无效信息数据数量和无效信息数据位置生成列式GCT掩码(10交替比特串)和A掩码(01交替比特串和全1比特串的组合),GCT掩码分别与数据4005_l和4005_h做与运算,将无关数据都置0,生成列式GCT数据,分别存放在4007_l和4007_h行,同时通过取反模块进行按位取反,取反数据存放在4009_l和4009_h行;A掩码分别与数据4005_l和4005_h做或运算,将无关数据都置1,生成列式A数据分别存放在4008_l和4008_h行。
步骤二,通过控制模块403对重新整理组合后的存储于DRAM子阵列中的目标碱基序列分别进行碱基为A腺嘌呤、G鸟嘌呤、C胞嘧啶、T胸腺嘧啶的标记并获取到对应碱基的标记行。
其中,如图7所示,对目标碱基序列中的碱基A腺嘌呤进行标记的具体方法步骤如下:
将目标碱基序列的4008_h行和4008_l行数据分别复制至计算区501的第一行和第二行;
所述第一行和第二行之间的数据按位进行或运算,取得结果R1,
将结果R1送至取反模块进行取反操作;
将上述取反操作后的结果复制至A腺嘌呤的标记行502,其中含有A腺嘌呤的位置值为1,其余位置值为0。
如图8所示,对目标碱基序列中的碱基C胞嘧啶进行标记的具体方法步骤如下:
将目标碱基序列的4007_h行和4007_l行数据分别复制至计算区501的第一行和第二行;
将计算区501的第一行和第二行的数据进行按位与运算,取得结果R2;
将结果R2复制至C胞嘧啶的标记行503,其中含有C胞嘧啶的位置值为1,其余位置值为0。
如图9所示,对目标碱基序列中的碱基G鸟嘌呤进行标记的具体方法步骤如下:
取目标碱基序列的4007_l行数据的按位取反值4009_l复制到计算区501中的第一行;
将4007_h行数据复制至计算区501中的第二行;
在计算区501中对第一行和第二行的数据进行按位与运算,取得结果R3;
将结果R3复制至G鸟嘌呤的标记行504,其中含有G鸟嘌呤的位置值为1,其余位置值为0。
如图10所示,对目标碱基序列中的碱基T胸腺嘧啶进行标记的具体方法步骤如下:
将目标碱基序列4007_h行的数据的取反值4009_h复制至计算区501的第一行;
将目标碱基序列4007_l行的数据复制至计算区501第二行;
对第一行和第二行的数据进行按位与运算,取得结果R4;
将结果R4复制至T胸腺嘧啶的标记行505,其中含有T胸腺嘧啶的位置值为1,其余位置值为0。
步骤三,对标记行数据进行移位操作后统计标记行中位置值为1的个数,获得A腺嘌呤、G鸟嘌呤、C胞嘧啶、T胸腺嘧啶的统计结果。
具体的,设DRAM子阵列的列宽为N即每一行有N列个存储单元,N为2的整数次幂,每一标记行占据一行的存储空间,取其中某一标记行进行位置值为1的个数统计。
在计数模块407内设置有移位计数器和列计数器,移位计数器用于统计当前移位次数,初始值为0,计算完成后清零;列计数器初始值为N,计算完成后恢复为初始值N。
所述统计的具体方法包括以下三步:
第1步,位线控制器401判断当前列计数器的值n是否为1,如果不为1则将该标记行读出,并将读出结果送入移位模块进行左移操作,移动的位数为2的i次方,i为移位计数器的值,完成移位操作后,移位计数器的值i加1,并将结果写回标记行所在的子阵列;设原标记行为a行,移位后的结果为a_s行,如果n为1,则结束计算,进入第3步;
第2步,将a行和a_s行数据复制至计算区501的第一行和第二行,对同一列的数据进行求和计算,即第一行和第二行进行异或操作求得两者之和s,第一和第二行进行与操作求得两者之和的进位项c,并将求和的结果写回存储阵列404的暂存区4010;位线控制器401对当前列计数器的值n除以2,并判断结果是否为1,若结果为1则结束计算;若结果不为1,则以暂存区4010的求和结果为基础,进行新一轮的移位求和操作(每完成一次求和操作,计算结果都将增加一行),即执行第1步的操作,将计算结果分别复制至移位模块进行移位,对移位结果进行列式累加;
第3步,最终判断列计数器的值n为1时,可在计算结果的第一列得到最终结果,将该列结果存至指定位置。
步骤四,利用参考碱基序列的统计结果与所述目标碱基序列的统计结果进行对比,过滤所筛选的目标碱基序列。
具体的,将获得的目标碱基序列的A腺嘌呤、G鸟嘌呤、C胞嘧啶、T胸腺嘧啶的统计结果的补码值以列的形式放于相同行,再利用参考碱基序列的统计结果的补码值放置于对应的列,进行求差值计算,最后将四个差值求和后与阈值比较;如果差值之和大于阈值,则排除目标碱基序列;如果小于阈值,则标记该筛选位置所在的序列为目标碱基序列,可进行后续的动作。
实施例:
假设当前存储区内存放有一段碱基序列信息,筛选序列长度为10,序列为AGTTTCTCCG,如图11所示。
根据图11中箭头处开始为筛选的起始点地址,设置起始段掩码为二进制的0000000000000000111111111111,设置末尾段掩码为二进制的111111110000000000000000,将两个掩码数据写入存储阵列;选择前一行所在的序列TCTTTGAAAGTTTC与起始段掩码做按位与计算,获得有效的起始段数据00000000AGTTTC(其中每一个0代表2比特0);选择后一行序列TCCGAGGATGTGGT与末尾掩码做按位与计算,获得有效的末尾段数据TCCG0000000000(其中每一个0代表2比特0);将有效目标行数据00000000AGTTTC和TCCG0000000000进行按位或计算,可将两行数据的有效部分合并成一行,得到完整的目标序列TCCG0000AGTTTC,如图12所示。
筛选后对行存储格式的数据进行转列存储操作获得按列排放的是数据4005_h和4005_l, 并将结果写回存储阵列进行下一步计算。掩码数据4003由0和M构成,其中图中M代表2比特11,M由多位二进制1组成,当0和序列数据与时,可将无关数据置0;当1和序列数据与时,可将有效数据保留。
以上面例子中部分数据TCCG0000为例,其中0为无效数据;其二进制表达为,低8位0实际为无效数据:0111111000000000;
经过移位模块左移一位处理后,如图13所示,虚线内为列式排列的有效数据;
控制模块根据无效信息数量和无效信息位置生成列式GCT掩码和A掩码,其中GCT掩码为10交替的比特串:101010101010;
GCT掩码分别与4005_l和4005_h做与运算,将无关数据都置0,生成列式GCT数据,分别存放在4007_l和4007_h,如图14所示;
A掩码为01交替的比特串和全1比特串的组合:0101010111111111,分别与4005_l和4005_h做或运算,将无关数据都置1,生成列式A数据分别存放在4008_l和4008_h,如图15所示。
然后对A腺嘌呤、G鸟嘌呤、C胞嘧啶、T胸腺嘧啶分别进行碱基标记。
其中,如图16所示,对腺嘌呤A进行标记具体为:
将目标序列的一行H(0111111111111111)和一行L(1111110111111111)分别复制至计算区501的第一行和第二行;
第一行和第二行之间按位进行或运算,取得结果R1(1111111111111111);
对R1进行取反操作得(0000000000000000);
将结果复制至A腺嘌呤的标记行,其中含有A腺嘌呤的位置值为1,其余位置值为0,当前结果中腺嘌呤的标记为全0。
如图17所示,对胞嘧啶C进行标记具体为:
将目标序列的一行4007_h(0010101000000000)和一行4007_l(1010100000000000)分别复制至计算区501的第一行和第二行;
将第一行和第二行进行按位与运算,取得结果R2;
将结果复制至C胞嘧啶的标记行503(0010100000000000),其中含有C胞嘧啶的位置值为1,其余位置值为0。
如图18所示,对鸟嘌呤G进行标记具体为:
将目标序列的4007_l的按位取反值4009_l(0101011111111111)复制至计算区501的其中一行;
将4007_h(0010101000000000)复制至计算区501其中一行;
计算区对这两行进行按位与运算,取得结果R3(0000001000000000);
将结果R3复制至G鸟嘌呤的标记行504,其中含有G鸟嘌呤的位置为1,其余位置值为0。
如图19所示,对胸腺嘧啶T进行标记具体为:
将目标序列一行4007_h的取反值4009_h复制至计算区的一行;
将目标序列一行4007_l复制至计算区另一行,分别为第一行和第二行;
对第一行和第二行进行按位与运算,取得结果R4;
将结果R4复制至T胸腺嘧啶的标记行505,其中含有T胸腺嘧啶的位置为1,其余位置值为0。
接着对每类碱基的标记行,进行值1的统计,具体内容如下:假设当前子阵列的列宽为16(通常N为2的整数次幂)即每一行有16列个存储单元,每一标记行占据一行的存储空间。取其中某一标记行进行1的个数统计,例如当前取C的标记行(0010100000000000)。在计数模块内设置一移位计数器,用于统计当前移位次数,初始值为0,计算完成后清零。
其中统计具体方法为:
控制器判断当前n是否为1,当前n=16则将该标记行读出,并将读出结果送入移位模块进行左移操作,移位的位数为2的0次方,完成移位操作后,移位计数器的值i加1为1,并将结果写回标记行所在的子阵列模块,设原标记行为a行,移位后的结果为a_s行。
将a行和a_s行数据复制至计算区的第一行和第二行,对同一列的数据进行求和计算,得a1和a0,如图20所示。
控制器对当前n除以2得新的n为8;并判断结果不为1,则将计算结果分别复制至移位行移位,移位的位数为2的1次方,移位后结果写回子阵列,继续参与运算。
对a1和a0进行移位,完成移位操作后,移位计数器的值i加1为2,如图21所示;
在移位后进行列式求和,如图22所示;
控制器对当前n除以2得新的n为4;并判断结果不为1,对a2 a1 a0进行移位,完成移位后,移位计数器的值i加1为3,如图23所示;
在移位后进行列式求和,如图24所示;
控制器对当前n除以2得新的n为2;并判断结果不为1,对a3 a2 a1 a0进行移位,完成移位后,移位计数器的值i加1为4,如图25所示;
在移位后进行列式求和,如图26所示;
最终判断列计数器的值为1时,可在计算结果的第一列得到最终结果,然后将获得的目标碱基序列的A腺嘌呤、G鸟嘌呤、C胞嘧啶、T胸腺嘧啶的统计结果的补码值以列的形式放于相同行,再利用参考碱基序列的统计结果的补码值放置于对应的列,进行求差值计算,最后将四个差值求和后与阈值比较;如果差值之和大于阈值,则排除目标碱基序列;如果小于阈值,则标记该筛选位置所在的序列为目标碱基序列。
以上所述,仅为本发明的优选实施案例,并非对本发明做任何形式上的限制。虽然前文对本发明的实施过程进行了详细说明,对于熟悉本领域的人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行同等替换。凡在本发明精神和原则之内所做修改、同等替换等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于DRAM存内计算的碱基序列过滤方法,其特征在于,包括以下步骤:
步骤一,根据DRAM的存储阵列的列宽和所要筛选目标碱基序列的起点地址,筛选出目标碱基序列后进行重新整理组合;
步骤二,对重新整理组合后的目标碱基序列分别进行碱基为A腺嘌呤、G鸟嘌呤、C胞嘧啶、T胸腺嘧啶的标记并获取到对应碱基的标记行;
步骤三,对标记行数据进行移位操作后统计标记行中位置值为1的个数,获得A腺嘌呤、G鸟嘌呤、C胞嘧啶、T胸腺嘧啶的统计结果;
步骤四,利用参考碱基序列的统计结果与所述目标碱基序列的统计结果进行对比,过滤所筛选的目标碱基序列。
2.如权利要求1所述的一种基于DRAM存内计算的碱基序列过滤方法,其特征在于,所述步骤一具体为:
根据目标碱基序列长度和存储阵列的列宽度记录无效信息数据数量和无效信息数据位置;
根据筛选起点地址,设置起始段掩码数据和末尾段掩码数据并写入存储阵列;
选择目标碱基序列的前一行所在的目标行数据序列与起始段掩码数据做按位与计算,获得有效起始段目标行数据;选择目标碱基序列的后一行目标行数据序列与末尾掩码数据做按位与计算,获得有效的末尾段目标行数据;
将有效的起始段目标行数据和末尾段目标行数据进行按位或计算,将两行数据的有效部分合并成一行,得到完整的有效目标碱基序列数据,且有效目标碱基序列数据的开头和结尾部分在同一行内,且没有重合位置;
对行存储格式的有效目标碱基序列数据进行列转换操作,获得在存储阵列中按列排放的第一高比特位数据和第一低比特位数据;
根据无效信息数据数量和无效信息数据位置生成列式GCT掩码和A掩码,GCT掩码分别与第一高比特位数据和第一低比特位数据做与运算,将无关数据都置0,生成列式GCT数据并存储为第二高比特位数据和第二低比特位数据,再进行按位取反并存储为第三高比特位数据和第三低比特位数据;A掩码分别与第一高比特位数据和第一低比特位数据做或运算,将无关数据都置1,生成列式A数据并存储为第四高比特位数据和第四低比特位数据。
3.如权利要求2所述的一种基于DRAM存内计算的碱基序列过滤方法,其特征在于,所述起始段掩码数据和末尾段掩码数据由0和M构成,M由两位二进制1组成,当0和目标行序列数据与时,可将无关数据置0,当1和目标行序列数据与时,可将有效数据保留。
4.如权利要求2所述的一种基于DRAM存内计算的碱基序列过滤方法,其特征在于,所述步骤二中的对目标碱基序列中的碱基A腺嘌呤进行标记的具体方法步骤如下:
将由列式A数据存储的第四高比特位数据和第四低比特位数据分别复制至存储阵列的计算区的第一行和第二行;
所述第一行和第二行之间的数据按位进行或运算,取得结果R1;
将结果R1进行取反操作;
将取反操作后的结果复制至存储阵列中A腺嘌呤的标记行,其中含有A腺嘌呤的位置值为1,其余位置值为0。
5.如权利要求2所述的一种基于DRAM存内计算的碱基序列过滤方法,其特征在于,所述步骤二中的对目标碱基序列中的碱基C胞嘧啶进行标记的具体方法步骤如下:
将目标碱基序列的第二高比特位数据和第二低比特位数据分别复制至存储阵列的计算区的第一行和第二行;
将计算区的第一行和第二行的数据进行按位与运算,取得结果R2;
将结果R2复制至存储阵列中C胞嘧啶的标记行,其中含有C胞嘧啶的位置值为1,其余位置值为0。
6.如权利要求2所述的一种基于DRAM存内计算的碱基序列过滤方法,其特征在于,所述步骤二中的对目标碱基序列中的碱基G鸟嘌呤进行标记的具体方法步骤如下:
将第三低比特位数据复制到存储阵列的计算区中的第一行;
将第二高比特位数据复制至计算区中的第二行;
在计算区中对第一行和第二行的数据进行按位与运算,取得结果R3;
将结果R3复制至存储阵列中G鸟嘌呤的标记行,其中含有G鸟嘌呤的位置值为1,其余位置值为0。
7.如权利要求2所述的一种基于DRAM存内计算的碱基序列过滤方法,其特征在于,所述步骤二中的对目标碱基序列中的碱基T胸腺嘧啶进行标记的具体方法步骤如下:
将第三高比特位数据复制至存储阵列的计算区的第一行;
将第二低比特数据复制至计算区的第二行;
对第一行和第二行的数据进行按位与运算,取得结果R4;
将结果R4复制至存储阵列中T胸腺嘧啶的标记行,其中含有T胸腺嘧啶的位置值为1,其余位置值为0。
8.如权利要求1所述的一种基于DRAM存内计算的碱基序列过滤方法,其特征在于,所述步骤三中的统计的具体方法包括以下三步:
第1步,采用列计数器和移位计数器,首先判断当前列计数器的值n是否为1,如果不为1则将该标记行读出,并将读出结果进行左移操作,移动的位数为2的i次方,i为移位计数器的值,完成移位操作后,移位计数器的值i加1,并将结果写回标记行所在的DRAM子阵列;设原标记行为a行,移位后的结果为a_s行,如果n为1,则结束计算,进入第3步;
第2步,将a行和a_s行数据复制至存储阵列计算区的第一行和第二行,对同一列的数据进行求和计算,即第一行和第二行进行异或操作求得两者之和s,第一和第二行进行与操作求得两者之和的进位项c,并将求和的结果写回存储阵列的暂存区;对当前列计数器的值n除以2,并判断结果是否为1,若结果为1则结束计算;若结果不为1,则以暂存区的求和结果为基础,进行新一轮的移位求和操作,每完成一次求和操作,计算结果都将增加一行,即执行第1步的操作,将计算结果进行移位,对移位结果进行列式累加;
第3步,最终判断列计数器的值n为1时,可在计算结果的第一列得到最终结果并保存。
9.如权利要求1所述的一种基于DRAM存内计算的碱基序列过滤方法,其特征在于,所述步骤四具体为:将获得的目标碱基序列的A腺嘌呤、G鸟嘌呤、C胞嘧啶、T胸腺嘧啶的统计结果的补码值以列的形式放于相同行,再利用参考碱基序列的统计结果的补码值放置于对应的列,进行求差值计算,最后将四个差值求和后与阈值比较;如果差值之和大于阈值,则排除目标碱基序列;如果小于阈值,则标记筛选的序列为目标碱基序列。
10.一种基于DRAM存内计算的碱基序列过滤装置,其特征在于,包括:
存储阵列,由DRAM子阵列组成,用于存储目标碱基序列,设定碱基信息用二进制表达,具体为:A-腺嘌呤对应的二进制表达为00,G-鸟嘌呤对应的二进制表达为10,C-胞嘧啶对应的二进制表达为11, T-胸腺嘧啶对应的二进制表达为01,每个碱基信息有2bit数据构成;
所述DRAM子阵列宽度为N即每行有N列存储单元,存储一行长度为N的碱基序列信息需要两行存储单元,分别记作存储高位的H行和存储低位的L行,即同一碱基信息的高低比特位存放在同一列;
在所述存储阵列设有用于数据计算的计算区,用于存储原始的碱基序列数据的原始数据存储区,用于存储转为列格式的数据的列式数据区,以及用于临时存放计算过程中产生的中间结果的暂存区;
控制模块,接收外部地址、数据和命令后进行译码控制发送给字线控制器、位线控制器、移位及取反模块、缓存器,将碱基序列数据格式由同行模式转为同列模式并写入DRAM子阵列中,并控制计算过程;其中,所述字线控制器402控制存储阵列的行信号,位线控制器控制存储阵列的列信号;缓存器用于缓存数据;移位及取反模块,包括移位模块和取反模块,可根据计算需要对一行数据进行移位操作和取反操作;
计数模块,内设一组计数器,包括有移位计数器和列计数器,在写入参考序列时,对不同类型的碱基序列分别进行数量统计,并将最终结果记录,将参考序列的AGCT统计值写入目标阵列的固定地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211354686.5A CN115409174B (zh) | 2022-11-01 | 2022-11-01 | 一种基于dram存内计算的碱基序列过滤方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211354686.5A CN115409174B (zh) | 2022-11-01 | 2022-11-01 | 一种基于dram存内计算的碱基序列过滤方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115409174A CN115409174A (zh) | 2022-11-29 |
CN115409174B true CN115409174B (zh) | 2023-03-31 |
Family
ID=84169305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211354686.5A Active CN115409174B (zh) | 2022-11-01 | 2022-11-01 | 一种基于dram存内计算的碱基序列过滤方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115409174B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116665772B (zh) * | 2023-05-30 | 2024-02-13 | 之江实验室 | 一种基于内存计算的基因组图分析方法、装置和介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001184381A (ja) * | 1999-12-24 | 2001-07-06 | Kanegafuchi Chem Ind Co Ltd | 多重変異蛋白質アミノ酸配列の最適化解を算出する方法、装置、およびこの方法の処理を実行するプログラムを記憶する記憶媒体 |
JP2003167883A (ja) * | 2001-11-30 | 2003-06-13 | Celestar Lexico-Sciences Inc | 配列情報処理装置、配列情報処理方法、プログラム、および、記録媒体 |
CN1829805A (zh) * | 2003-05-23 | 2006-09-06 | 冷泉港实验室 | 核苷酸序列的虚拟代表 |
CN101466847A (zh) * | 2005-06-15 | 2009-06-24 | 考利达基因组股份有限公司 | 用于遗传和化学分析的单分子阵列 |
CN106796628A (zh) * | 2014-09-03 | 2017-05-31 | 陈颂雄 | 基于合成基因组变体的安全交易设备、***和方法 |
CN111132999A (zh) * | 2017-07-07 | 2020-05-08 | 阿瓦克塔生命科学有限公司 | 支架蛋白 |
CN112789680A (zh) * | 2019-03-21 | 2021-05-11 | 因美纳有限公司 | 基于人工智能的质量评分 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6414746B1 (en) * | 1999-11-24 | 2002-07-02 | Advanced Scientific Concepts, Inc. | 3-D imaging multiple target laser radar |
US6754135B2 (en) * | 2002-09-13 | 2004-06-22 | International Business Machines Corporation | Reduced latency wide-I/O burst architecture |
US7114023B2 (en) * | 2003-08-29 | 2006-09-26 | Intel Corporation | Non-sequential access pattern based address generator |
CA2643700A1 (en) * | 2006-02-24 | 2007-11-22 | Callida Genomics, Inc. | High throughput genome sequencing on dna arrays |
EP2107125A1 (en) * | 2008-03-31 | 2009-10-07 | Eppendorf Array Technologies SA (EAT) | Real-time PCR of targets on a micro-array |
EP2982437B1 (en) * | 2008-06-25 | 2017-12-06 | Life Technologies Corporation | Methods and apparatus for measuring analytes using large scale fet arrays |
EP2521796B1 (en) * | 2010-01-04 | 2015-07-29 | Life Technologies Corporation | Dna sequencing methods and detectors and systems for carrying out the same |
CN103540589A (zh) * | 2013-10-28 | 2014-01-29 | 深圳市第二人民医院 | Tert启动子的单核苷酸多态性序列 |
CN104850761B (zh) * | 2014-02-17 | 2017-11-07 | 深圳华大基因科技有限公司 | 核酸序列拼接方法及装置 |
CN104200133B (zh) * | 2014-09-19 | 2017-03-29 | 中南大学 | 一种基于读数和距离分布的基因组De novo序列拼接方法 |
EP3481950A4 (en) * | 2016-07-07 | 2019-07-10 | Cemvita Technologies LLC. | COGNITIVE CELL HAVING CHEMICALS ENCODED TO GENERATE OUTPUTS FROM ENVIRONMENTAL ENTRANCES AND METHOD FOR USE THEREOF |
CA3052062A1 (en) * | 2017-01-10 | 2018-07-19 | Roswell Biotechnologies, Inc. | Methods and systems for dna data storage |
WO2020213736A1 (ja) * | 2019-04-17 | 2020-10-22 | 株式会社PEZY Computing | 情報処理装置、情報処理方法、プログラム、及び記憶媒体 |
CN112802556B (zh) * | 2021-01-20 | 2023-05-09 | 天津大学合肥创新发展研究院 | 一种针对测序数据的多标记序列并行识别的加速器装置 |
-
2022
- 2022-11-01 CN CN202211354686.5A patent/CN115409174B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001184381A (ja) * | 1999-12-24 | 2001-07-06 | Kanegafuchi Chem Ind Co Ltd | 多重変異蛋白質アミノ酸配列の最適化解を算出する方法、装置、およびこの方法の処理を実行するプログラムを記憶する記憶媒体 |
JP2003167883A (ja) * | 2001-11-30 | 2003-06-13 | Celestar Lexico-Sciences Inc | 配列情報処理装置、配列情報処理方法、プログラム、および、記録媒体 |
CN1829805A (zh) * | 2003-05-23 | 2006-09-06 | 冷泉港实验室 | 核苷酸序列的虚拟代表 |
CN101466847A (zh) * | 2005-06-15 | 2009-06-24 | 考利达基因组股份有限公司 | 用于遗传和化学分析的单分子阵列 |
CN106796628A (zh) * | 2014-09-03 | 2017-05-31 | 陈颂雄 | 基于合成基因组变体的安全交易设备、***和方法 |
CN111132999A (zh) * | 2017-07-07 | 2020-05-08 | 阿瓦克塔生命科学有限公司 | 支架蛋白 |
CN112789680A (zh) * | 2019-03-21 | 2021-05-11 | 因美纳有限公司 | 基于人工智能的质量评分 |
Also Published As
Publication number | Publication date |
---|---|
CN115409174A (zh) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Eddy | A memory-efficient dynamic programming algorithm for optimal alignment of a sequence to an RNA secondary structure | |
US6826663B2 (en) | Coded write masking | |
US7604941B2 (en) | Nucleotide sequencing via repetitive single molecule hybridization | |
CN115409174B (zh) | 一种基于dram存内计算的碱基序列过滤方法与装置 | |
US8397131B1 (en) | Efficient readout schemes for analog memory cell devices | |
KR101371516B1 (ko) | 플래시 메모리 장치의 동작 방법 및 그것을 포함하는 메모리 시스템 | |
US11126374B2 (en) | Technologies for efficient stochastic associative search operations | |
US9921763B1 (en) | Multi-bank non-volatile memory apparatus with high-speed bus | |
US20190227808A1 (en) | Technologies for efficient exit from hyper-dimensional space in the presence of errors | |
US11327881B2 (en) | Technologies for column-based data layouts for clustered data systems | |
JP2001006375A5 (zh) | ||
US20220382480A1 (en) | Method, system, apparatus for data storage, decoding method, and storage medium | |
CN101930407B (zh) | 闪速存储器控制电路及其存储***与数据传输方法 | |
US20210407564A1 (en) | Method and apparatus to perform a read of a column in a memory accessible by row and/or by column | |
CN113742070A (zh) | 一种低深度测序群体基因型填充计算内存优化方法 | |
KR100948468B1 (ko) | 불휘발성 메모리 장치의 플래그 상태 결정 방법. | |
CN113129943A (zh) | 基于闪存数据页存储结构的数据操作方法及固态硬盘 | |
US11837330B2 (en) | Reference-guided genome sequencing | |
JP2019028572A (ja) | 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム | |
US20180181301A1 (en) | Method and apparatus for low-latency read of flash storage devices using fractional bits per cell | |
JP7439258B2 (ja) | 参照誘導ゲノム配列決定 | |
CN106547702B (zh) | 一种双模8访存地址计算方法 | |
JP7422228B2 (ja) | リファレンスゲノム内のサンプルリードを位置特定するためのデバイス及び方法 | |
US20220284948A1 (en) | Optimized column read enabled memory | |
Garzon et al. | Sensitivity and capacity of microarray encodings |
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 |