k-mer matching算法以及它存储受限的原因

最近看了一篇ISCA2021的论文:

Sieve: Scalable In-situ DRAM-based AcceleratorDesigns for Massively Parallel k-mer Matching

对其中的应用程序基因序列对比不是很了解,不是很明白为什么会造成内存瓶颈以及cache缺失率较低。看了一下文中提到的相关文献的原理,记录一下。主要包括这两篇:

Kraken: ultrafast metagenomic sequenceclassification using exact alignments
Reducing storage requirements for biologicalsequence comparison

主要任务是将判断当前序列是属于哪种组织或者物种,判断方法就是通过将目标基因序列与现有的数据库中的基因序列进行对比。基因序列对比数据量可以达到TB级别甚至更高。传统的基因序列对比方法是通过将两个序列对齐,然后进行对比,对于这种数据量很大的场景,这种传统方法由于cache容量有限以及内存也不够大导致不断的访存以及从磁盘中获取数据,带来很大的性能开销。所以大家一般都选用k-mer matching的算法。

k-mer matching算法

通过将一个大的序列分割成大小为k的子序列,每个子序列称为k-mer。数据库也会进行处理,会生成一棵Taxonomy tree,用于记录各种k-mer属于哪个标签。孩子节点的序列信息包含了父节点的信息,也就是序列更长,对应图1中左边的树就是蓝色的比紫色的长。在图1中k取6,按照6个数据为一个k-mer,一个长为 l 的序列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值