Minimap2:三代比对工具

在使用Purge_dups去冗余时,用到了Minimaps2,把学习的东西整理一下。先声明本文软件介绍的很多内容来自 “生信算法”公众号文章,用来作为自己的学习记录,原文作者若不同意的话就删稿。

一.软件介绍

Minimaps2是李恒大神在2018年发表在bioinformatics上的一款针对三代数据开发的比对工具。网友说这款工具最大的优势是比对速度快,我昨天下午跑上了我的数据,没有设置线程数,默认应该是3,结果今天来了看就生成了一点的结果,重新设置到20线程数,看一下。第一次对三代数据进行比对,所谓的快没有体验到。

二.minimap2主要思想

minimap2的主要思想是:首先将基因组序列的minimizer存储在哈希表中(minimizer指一段序列内最小哈希值的种子);然后对于每一条待比对序列,找到待比对序列所有的minimizer,通过哈希表找出其在基因组中的位置,并利用chaining算法寻找待比对区域;最后将非种子区域用动态规划算法进行比对,得到比对结果。minimap2方法只对最小哈希值的种子进行存储,可有效降低时间复杂度。其比对实现主要经过以下几个步骤:

  1. 搜索minimizer

minimizer指的是一段序列内最小哈希值的种子,也就是哈希值最小的k-mer。k-mer是长度为k的序列子片段。DNA序列由A、C、G、T四个字符组成,按照计算机编码可以看成一个四进制数。那一个k-mer就可以看做k位的四进制数。比如GCT的哈希值就是2×4的2次方+1×4的1次方+3×4的0次方=39,所以GCT的哈希值就是39。那么可以算出每一个k-mer的哈希值,取w窗口内最小哈希值的k-mer,就是作者定义的minimizer。

minimap2首先计算基因组序列的minimizer,存储到哈希表中。然后计算待比对序列的minimizer,通过哈希表就可以查找与基因组中一样的minimizer在基因组中的位置。这样每一个minimizer包含三个信息:(1)在基因组中的位置;(2)在待比对序列中的位置;(3)minimizer长度。

  1. chaining算法

通过chaining就找到一组minimizer后,一个minimizer就是一个种子,也是待比对序列和基因组匹配的区域。下一步只需将序列的非种子区域进行比对,与种子区域连接起来,就是最后的序列比对结果。类似于BLAST思想。非种子区域一般比较短,当然是相对整条待比对序列来说的。这样就可以运用传统的NW算法或者SW算法进行比对。

3.minimap2结果比较

对于三代PacBio序列(模拟序列),minimap2与其他5个比对方法进行比较:blasr,bwa,graphmap、minialign和ngmlr。Minima2p在比对的序列条数上优势较大,明显高于其他5个三代序列比对方法。且minimap2也可以用来比对二代数据。

三.下载安装minimape2

Github地址:

https://github.com/lh3/minimap2/

下载最新的试试

tar -zxvf minimap2-2.24.tar.gz

make

写进环境变量

运行成功

四.用于Purge_dups过程的比对工作

我安装这个软件是为了配合Purge_dups的使用进行比对过程,

Purge_dups运行第一步:根据覆盖度计算分界点(cutoff)

# gzip可以替换成pigz, 进行多线程压缩

minimap2-2.24/minimap2 -x map-hifi prefix.p_ctg.fa hifi_cell_reads.fastq.gz | gzip > pb_aln.paf.gz


生成的结果文件为paf格式,第一次接触到,PAF文件描述了比对序列的位置、长度信息,PAF: a Pairwise mApping Format,参考官方链接ref2上介绍:

五.其它常用功能、结果的解读FLAG含义

参考 https://www.jianshu.com/p/d1868194b65e

六.参考:

ref1:Li H. Minimap2: pairwise alignment for nucleotide sequences[J]. Bioinformatics, 2018, 34(18): 3094-3100.

ref2:https://github.com/lh3/miniasm/blob/master/PAF.md

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值