Gerbil:支持 GPU 的快速且节省内存的 k-mer 计数器
1. 相关工作与 Gerbil 介绍
在早期成功对大型基因组数据集的 k-mer 进行计数的软件工具中,Jellyfish 使用了无锁哈希表,允许并行插入。随后几年,陆续有工具发布,不断减少运行时间和所需内存。例如,BFCounter 使用布隆过滤器过滤由测序错误产生的罕见 k-mer;DSK 和 KMC 采用双磁盘架构以减少昂贵的 IO 操作;Turtle 用缓存高效的布隆过滤器替代标准布隆过滤器;MSPKmer - Counter 将最小化器概念引入 k-mer 计数,KMC2 则将最小化器方法改进为签名。
目前,最有效的两个开源软件工具是 KMC2 和 DSK。KMC2 采用基于排序的计数方法,针对 k < 32 进行了优化,但 k 值增大时性能下降;DSK 使用单个大哈希表,对大 k 值有效(但不支持 k > 127),不过对于小 k 值,它比 KMC2 慢。据了解,唯一使用 GPU 进行 k-mer 计数的是 Suzuki 等人的工作。
而 Gerbil 是一个开源的 k-mer 计数工具,它是算法工程的成果,融合了文献中的最佳思想。该工具既高效又节省内存,还可选择使用 GPU 加速计数步骤,在效率和资源消耗方面显著优于其最强竞争对手,对于大 k 值,可将运行时间最多缩短至四分之一。它用 C++ 和 CUDA 编写,可在 https://github.com/uni - halle/gerbil 免费获取。
2. 方法
2.1 工作阶段
Gerbil 分为两个阶段:分布和计数。
分布阶段
超级会员免费看
订阅专栏 解锁全文
1747

被折叠的 条评论
为什么被折叠?



