速度更快、适用于批量运行的bwa-mem

速度更快、适用于批量运行的bwa-mem

BWA概述

        BWA(Burrows-Wheeler-Alignment Tool),是一款常用的将测序序列比对到参考基因组上的软件,由李恒博士所写。由三种算法组成:BWA-backtrack,BWA-SW 和 BWA-MEM。BWA-backtrack 是为illumina测序下机读长最长为100bp 的数据设计的,而BWA-SW 和 BWA-MEM则支持更长序列的比对。BWA-MEM 比 BWA-SW 运行速度更快并且更准确,对于70-100bp的illumina序列BWA-MEM 也拥有比BWA-backtrack 更优越的性能。总而言之,BWA-MEM 在序列比对的分析上举足轻重,可以说是学习生物信息基因组学分析必须掌握的一款工具。

BWA-MEM算法

        BWA-MEM 算法支持双端比对和嵌合比对,自动选择局部或全局比对,具有测序错误的鲁棒性。在李恒博士的文章中,详细地描述了算法原理,包括:

单端序列比对:

  1. Seeding and re-seeding    seeding遵循seed-and-extend 规范,先构造超精确匹配(SMEMs) 的种子序列;re-seeding 允许错配存在的种子,避免正确比对因为SMEMs的缺失而丢失。Re-seeding 定义如下:假设SMEMs 种子足够长L(默认大于28bp),在参考序列中出现了K次,覆盖了半数SMEMs种子碱基且最少出现k+1次的最长序列,归纳添加为种子序列。
  2. Chaining and chain filtering    chain即一组共线且彼此相邻的种子,对多组序列近似的链chains过滤:如果较短链大部分包含在更长的链中,且比长链更差,则把较短链过滤(默认短链比长链短50%和短38bp)。链过滤意在减少后续步骤不成功的种子延申。由于形成的链并不一定和最终的匹配相关,因此链的构建过程不需要十分精确。
  3. Seed extension    根据链长度、种子长度对种子排序,从优到劣丢弃出现在已有比对中的种子,并根据仿射罚分空位罚分的动态算法延申。这里的种子延申与标准延申有两点不同:其一是终止延申规则,避免过度延申。假设在参考序列中的位置X以及query 序列位置Y获得最佳延申分数,如果最佳延申分数与(X,Y)位置得分差值大于则终止延申(是空位罚分,Z是设定阈值)。其二不同是,自动选择局部、全部比对。BWA-MEM 记录获得最佳延申得分的query 位置Y,如果最佳延申得分与最佳局部比对得分差值低于设定阈值,则拒绝局部比对选择全局比对。

双端序列比对:

  1. Rescuing missing hits    BWA-MEM 批量分析序列,对于每一批次序列,先计算可靠单端比对序列的插入片段分布。对于每一条序列默认的top100 hit,如果mate 序列在范围内未比对,则在范围内使用SSE2-based Smith-Waterman(SW) 比对。使用单端比对和SW比对,挽救了未比对mate序列可能的hits。
  2. Paring    根据公式计算最佳确定双端序列是否pair比对。分别是双端两条序列的SW得分,是匹配得分,是假设插入片段满足正态分布时,插入片段长度大于的概率。

BWA-MEM优化

        BWA-MEM是一款快速并且准确的序列比对软件,是少数既能在70bp序列也能在长至几兆序列获得较好比对结果的软件之一。对于短序列,速度瓶颈在构造种子;对于长序列,速度瓶颈在仿射罚分空位罚分的动态算法(DP)。尽管bwa-mem具有卓越的序列比对能力,但是bwa-mem 运行效率优势不明显。为了加速提高运行效率,bwa-mem2 应允而生。Bwa-mem2通过1)重新利用缓存2)简化算法3)改进数据的硬件预取4)改进数据的软件预取5)适用的情况下利用 SIMD 等方式提高运行效率,最终实现约1.3-3.1倍的提速。

        然而,尽管bwa-mem2 能与bwa-mem 产生相同的比对结果,也号称实现了bwa-mem在单CPU条件下的最高提速,但是bwa-mem2 运行所需常驻内存大大超出bwa-mem,批量样本不能同时进行比对操作。为了兼顾提速与批量运行的需要,我们在bwa-mem2的基础上,通过利用共享内存,实现了速度的略微提升和进程占用的物理内存的极其明显优化。在我们测试的SE100,10000000000个碱基的数据上,我们优化后的软件获得了在单CPU上比bwa-mem约3.47倍、比bwa-mem2约1.26倍的效率提升;在占用物理内存上,bwa-mem占用6G,bwa-mem2占用51G,而优化后的软件物理内存占用仅2G,共享内存占用49G。这意味着批量运行所需内存等于共享内存+样本数*极小的物理内存,批量运行时,内存不再是需要过多考量的因素。

        我们在bwa-mem2基础上利用共享内存,实现了略微的提速以及使批量运行成为可能。在以后的推文中,会着重介绍这优化技术的具体细节,欢迎大家测试使用优化后的比对算法,也欢迎大家指出的任何意见与建议。

关于我们

        深圳市合木千行科技有限公司成立于2020年11月,专注于利用IT + AT + BT技术对实验室自动化、数字化场景需求进行深入挖掘,赋能生命科学及医疗行业,致力于打造面向未来的实验室自动化和智能化解决方案及产品。公司业务覆盖生物医疗与高端制造交叉的科研、制造和诊断三大场景,已经发展出【生物工艺制造】和【诊断及实验智能】两条产品线,聚焦于诊断机构及Biotech企业两大主流客户群体。

        在生物信息分析领域,合木千行将数字云平台和边缘云技术相结合,利用ABC(AI+Bio Bigdata+Cloud)技术协助进行数据分析、报告解读等工作,为客户提供及时、准确的检测结果。我们拥有专业的IT和生物信息分析人员、报告解读遗传咨询师和人工智能专家,后续将定期围绕产品、技术、科普等主题进行讨论与分享,欢迎与我们进行沟通和交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值