minimap2安装与使用(v 2.28)生物信息学工具26

01 背景

Minimap2 是一个多功能的序列比对程序,可以将 DNA 或 mRNA 序列与大型参考数据库进行比对。典型的使用案例包括:(1)将 PacBio 或 Oxford Nanopore 基因组读长映射到人类基因组;(2)在误差率高达约 15% 的长读长之间找到重叠;(3)将 PacBio Iso-Seq 或 Nanopore cDNA 或直接 RNA 读长与参考基因组进行剪接感知比对;(4)对 Illumina 的单端或双端读长进行比对;(5)基因组装配与组装配的比对;(6)两个相似物种(差异小于约 15%)之间的全基因组比对。

对于约 10kb 的噪声读长序列,minimap2 比主流长读长比对程序(如 BLASR、BWA-MEM、NGMLR 和 GMAP)快几十倍。在模拟长读长上,它更准确,并生成生物学上有意义的比对,适合后续分析。对于大于 100bp 的 Illumina 短读长,minimap2 的速度是 BWA-MEM 和 Bowtie2 的三倍,并在模拟数据上同样准确。

bwa安装及使用(生物信息学工具-018)

Bowtie2安装与使用-bowtie2-2.5.2(bioinfomatics tools-011)

Blast安装及使用-Blast+2.14.0(bioinfomatics tools-001)

02 参考
https://github.com/lh3/minimap2   #官网
03 安装
git clone https://github.com/lh3/minimap2
cd minimap2 && make

安装64位
curl -L https://github.com/lh3/minimap2/releases/download/v2.28/minimap2-2.28_x64-linux.tar.bz2 | tar -jxvf -
./minimap2-2.28_x64-linux/minimap2
04 使用
# 比对长序列到参考基因组
./minimap2 -a test/MT-human.fa test/MT-orang.fa > test.sam

# 先创建索引再进行比对
./minimap2 -x map-ont -d MT-human-ont.mmi test/MT-human.fa
./minimap2 -a MT-human-ont.mmi test/MT-orang.fa > test.sam

# 使用预设参数(没有测试数据)
./minimap2 -ax map-pb ref.fa pacbio.fq.gz > aln.sam       # PacBio CLR 基因组读长
./minimap2 -ax map-ont ref.fa ont.fq.gz > aln.sam         # Oxford Nanopore 基因组读长
./minimap2 -ax map-hifi ref.fa pacbio-ccs.fq.gz > aln.sam # PacBio HiFi/CCS 基因组读长(v2.19或更高版本)
./minimap2 -ax lr:hq ref.fa ont-Q20.fq.gz > aln.sam       # Nanopore Q20 基因组读长(v2.27或更高版本)
./minimap2 -ax sr ref.fa read1.fa read2.fa > aln.sam      # 短片段基因组成对读长
./minimap2 -ax splice ref.fa rna-reads.fa > aln.sam       # 拼接的长读长(链未知)
./minimap2 -ax splice -uf -k14 ref.fa reads.fa > aln.sam  # 噪声较大的 Nanopore 直接 RNA-seq
./minimap2 -ax splice:hq -uf ref.fa query.fa > aln.sam    # 最终的 PacBio Iso-seq 或传统 cDNA
./minimap2 -ax splice --junc-bed anno.bed12 ref.fa query.fa > aln.sam  # 优先使用注释的连接点
./minimap2 -cx asm5 asm1.fa asm2.fa > aln.paf             # 物种内部的基因组比对
./minimap2 -x ava-pb reads.fa reads.fa > overlaps.paf     # PacBio 读长重叠
./minimap2 -x ava-ont reads.fa reads.fa > overlaps.paf    # Nanopore 读长重叠

# 获取详细的命令行选项
man ./minimap2.1
4.1 常规使用

在没有任何选项的情况下,minimap2 以参考数据库和查询序列文件为输入,生成近似比对(即坐标只是近似值,输出中没有 CIGAR),输出为 PAF 格式:

minimap2 ref.fa query.fq > approx-mapping.paf

你可以要求 minimap2 在 PAF 的 cg 标签中生成 CIGAR:

minimap2 -c ref.fa query.fq > alignment.paf

或输出为 SAM 格式的比对结果:

minimap2 -a ref.fa query.fq > alignment.sam

Minimap2 可以无缝处理 gzip 压缩的 FASTA 和 FASTQ 格式作为输入。你无需在 FASTA 和 FASTQ 之间转换或先解压 gzip 文件。

对于人类参考基因组,minimap2 在比对前需要几分钟生成参考基因组的最小化索引。为了减少索引时间,可以使用 -d 选项保存索引,并在 minimap2 命令行中用索引文件替换参考序列文件:

minimap2 -d ref.mmi ref.fa # 索引 minimap2 -a ref.mmi reads.fq > alignment.sam # 比对

重要的是,需注意一旦生成索引,在比对过程中不能更改索引参数(如 -k, -w, -H-I)。如果你为不同的数据类型运行 minimap2,可能需要保留使用不同参数生成的多个索引。这使得 minimap2 与 BWA 不同,后者总是使用相同的索引而不论查询数据类型。

4.2 长读序列

Minimap2 使用相同的基本算法来处理所有应用。然而,由于它支持不同的数据类型(例如,短读长与长读长;DNA 读长与 mRNA 读长),需要针对不同情况进行调优以实现最佳性能和准确性。通常建议使用 `-x` 选项选择一个预设参数,这会同时设置多个参数。默认设置与 `map-ont` 相同。映射长的噪声基因组读长

minimap2 -ax map-pb  ref.fa pacbio-reads.fq > aln.sam   # 用于 PacBio CLR 读长
minimap2 -ax map-ont ref.fa ont-reads.fq > aln.sam      # 用于 Oxford Nanopore 读长
minimap2 -ax map-iclr ref.fa iclr-reads.fq > aln.sam    # 用于 Illumina Complete Long Reads

`map-pb` 和 `map-ont` 之间的区别在于,`map-pb` 使用同聚物压缩(HPC)最小化子作为种子,而 `map-ont` 使用普通最小化子作为种子。经验评估表明,HPC 最小化子在比对 PacBio CLR 读长时提高了性能和敏感性,但在比对 Nanopore 读长时效果不佳。`map-iclr` 使用调整后的比对评分矩阵,考虑到读长中整体误差率较低,且颠换错误(transversion errors)比转换错误(transition errors)更少。
4.3 限制

Minimap2 在处理长低复杂度区域时可能会生成次优比对结果,因为在这些区域中的种子位置可能不理想。不过,这不应该是一个大问题,因为即使是最优比对在这些区域也可能是错误的。

Minimap2 需要在 x86 CPU 上使用 SSE2 指令或在 ARM CPU 上使用 NEON 指令。虽然可以添加非 SIMD 支持,但这会使 minimap2 的速度降低好几倍。

Minimap2 无法处理单个查询或数据库序列长度约为 20 亿碱基或更长(确切来说是 2,147,483,647 碱基)。但是,所有序列的总长度可以远远超过这个阈值。

Minimap2 经常会遗漏小外显子。

05 参考文献

Li, H. (2018). Minimap2: pairwise alignment for nucleotide sequences. Bioinformatics34:3094-3100. doi:10.1093/bioinformatics/bty191

and/or:

Li, H. (2021). New strategies to improve minimap2 alignment accuracy. Bioinformatics37:4572-4574. doi:10.1093/bioinformatics/btab705

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值