Minimap2:三代比对工具
在使用Purge_dups去冗余时,用到了Minimaps2,把学习的东西整理一下。先声明本文软件介绍的很多内容来自 “生信算法”公众号文章,用来作为自己的学习记录,原文作者若不同意的话就删稿。
一.软件介绍
Minimaps2是李恒大神在2018年发表在bioinformatics上的一款针对三代数据开发的比对工具。网友说这款工具最大的优势是比对速度快,我昨天下午跑上了我的数据,没有设置线程数,默认应该是3,结果今天来了看就生成了一点的结果,重新设置到20线程数,看一下。第一次对三代数据进行比对,所谓的快没有体验到。
二.minimap2主要思想
minimap2的主要思想是:首先将基因组序列的minimizer存储在哈希表中(minimizer指一段序列内最小哈希值的种子);然后对于每一条待比对序列,找到待比对序列所有的minimizer,通过哈希表找出其在基因组中的位置,并利用chaining算法寻找待比对区域;最后将非种子区域用动态规划算法进行比对,得到比对结果。minimap2方法只对最小哈希值的种子进行存储,可有效降低时间复杂度。其比对实现主要经过以下几个步骤:
- 搜索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长度。
- 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
Minimap2:三代比对工具相关推荐
- 精选推文 | 基于三代转录组的基因注释踩坑经历以及GSAman使用
邀请并收到一位「GSAman」用户的稿件,非常详尽且实在.相信这份推文可以为一些做功能基因组方面工作的朋友,提供实用参考. – CJ-陈程杰 前言 随着测序技术的进步和普及,现如今已经步入到" ...
- Benchmarking of long-read correction methods长期校正方法的基准测试
长期校正方法的基准测试 朱莉安·C·多姆(Juliane C Dohm), 菲利普·彼得斯, 南希·斯特拉斯(Nancy Stralis-Pavese ) 亨兹·希梅尔鲍尔(Heinz Himmel ...
- 一个纯插件式的网络地址簿
一个纯插件式的网络地址簿 古往今来,人们在社会交流过程中,逐步积累着自己的社交圈子.由于时间和精力的限制,每个人能经常记得并保持长期沟通的交流者(以下称之为"常社交圈子")其实很少 ...
- minimap2 长reads比对工具
minimap2 长reads比对工具 minimap2 github 官网 https://github.com/lh3/minimap2 安装 git clone https://github.c ...
- OPERA-MS:宏基因组二、三代测序混合组装
之前详细介绍了宏基因组二.三代混合组装软件OPERA-MS的Nature Biotechnology文章.详见下文: NBT:宏基因组二.三代混合组装软件OPERA-MS 今天带来软件的使用经验,主要 ...
- nextpolish安装_NECAT: Nanopore数据的高效组装工具
对MECAT2感兴趣的话,或者在MECAT2使用时遇到了什么问题,可以加'MECAT和NECAT问题解决群', 群号是:316859622 NECAT是肖传乐老师团队开发的一个针对Nanopore数据 ...
- nextpolish安装_NECAT | Nanopore数据的高效组装工具
NECAT是肖传乐老师团队开发的一个针对Nanopore数据组装的软件,目前该工具尚未发表,除了https://github.com/xiaochuanle/NECAT有软件的介绍外,暂时没有中文资料 ...
- 三代组装软件miniasm笔记
我们用来练手的文章发表在 Nature Communication ,"High contiguity Arabidopsis thaliana genome assembly with a ...
- minimap2论文算法详解(主要针对RNA-seq)
Heng Li, Minimap2: pairwise alignment for nucleotide sequences,Bioinformatics, Volume 34, Issue 18, ...
最新文章
- Qt Creator下载和安装(详细教程)以及如何发布可执行程序
- [深度学习] 分布式Tensorflow 2.0 介绍(二)
- Android studio导入support-v4.jar
- arduinowifi.send怎么获取响应_Vue3.0 响应式原理 (一)
- qt自定义按钮类,每个按钮自带一个右键弹出框,如何使同一时刻只显示一个弹出框
- Linux netfilter源码分析(6)
- 导出excel用ajax不行,提交form表单可以
- java中的配置文件
- ISO27001信息安全管理体系证书,系统集成行业企业还有没办的吗?
- hdoj 1570 A C
- “钓鱼”事件频发,您的企业邮件安全吗?
- 漫谈 | 据说搞区块链的人都觉得自己是“上帝
- 数据分析案例-往届世界杯数据可视化
- HDUOJ 2048 - 神、上帝以及老天爷(错排公式)
- 金立手机官网已无法访问 正式进入破产程序
- 详解FFplay音视频同步
- 数据学习-统计学(1)
- IntelliJ打开浏览器的快捷键
- java时针_Java 设计一个clock类 要求实现时针,分针,秒针
- 养老院、福利院等人员密集场合用智慧用电云