跳到内容

lh3/最小值2

文件夹和文件

姓名姓名
上次提交消息
上次提交日期

最新提交

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

GitHub下载 BioConda安装 PyPI公司 生成状态

入门

git克隆https://github.com/lh3/minimap2网站光盘最小值2&&制作#参照基因组的长序列./minimap2-a测试/MT-human.fa测试/MT-orang.fa>测试sam#首先创建索引,然后映射./minimap2-x map-ont-d MT-human-ont.mmi测试/MT-human.fa./minimap2-MT-human-ont.mmi测试/MT-orang.fa>测试sam#使用预设(无测试数据)./minimap2-ax地图-pb参考号fa pacbio.fq.gz>aln.sam公司#PacBio CLR基因组读取./minimap2-ax映射参考号fa ont.fq.gz>aln.sam公司#牛津纳米孔基因组读数./minimap2-ax-map-hifi参考号fa pacbio-ccs.fq.gz>aln.sam公司#PacBio HiFi/CCS基因组读取(v2.19或更高版本)./minimap2-ax lr:hq参考号fa ont-Q20.fq.gz>aln.sam公司#纳米孔Q20基因组读取(v2.27或更高版本)./minimap2-ax sr ref.fa read1.fa read2.fa>aln.sam公司#短基因组配对末端读数./minimap2-ax拼接参考fa rna-reads.fa>aln.sam公司#拼接长读取(链未知)./minimap2-ax拼接-uf-k14参考fa读数.fa>aln.sam公司#噪声纳米孔直接RNA-seq./minimap2-ax拼接:hq-uf参考fa查询.fa>aln.sam公司#最终PacBio Iso-seq或传统cDNA./minimap2-ax拼接--连接床anno.bed12参考fa查询.fa>aln.sam公司#按注释连接的优先级排列./最小值2-cx asm5 asm1.fa asm2.fa>aln.paf公司#谱内asm-to-asm比对./minimap2-x ava-pb读数.fa读数.fa>重叠.paf#PacBio读取重叠./minimap2-x ava-ont reads.fa reads.fa>重叠.paf#纳米孔读取重叠
#详细命令行选项的手册页男人/最低2.1

目录

用户指南

Minimap2是一个通用的序列比对程序,用于比对DNA或mRNA针对大型参考数据库的序列。典型用例包括:(1)将PacBio或Oxford Nanopore基因组读数映射到人类基因组;(2)发现长时间读取之间的重叠,错误率高达~15%;(3)PacBio Iso-Seq或纳米孔cDNA或直接RNA读取的拼接软件比对对照参考基因组;(4) 对齐Illumina单端或双端读取;(5) 装配对装配对准;(6) 两者之间的全基因组比对亲缘关系密切的物种,差异低于~15%。

对于约10kb的噪声读取序列,minimap2比主流的长读映射器,如BLASR、BWA-MEM、NGMLR和GMAP。更重要的是在模拟长时间读取时准确,并产生有生物学意义的对齐准备进行下游分析。对于>100bp的Illumina短读,minimap2为速度是BWA-MEM和Bowtie2的三倍,模拟数据也同样准确。详细评估可从minimap2纸预印本.

安装

Minimap2针对x86-64 CPU进行了优化。您可以从以下位置获取预编译的二进制文件这个发布页面具有:

卷曲-Lhttps://github.com/lh3/minimap2/releases/download/v2.28/minimap2-2.28_x64-linux.tar.bz2|焦油-jxvf-./最小值2-2.28_x64-linux/minimap2

如果你想从源代码编译,你需要一个C编译器,GNU make和安装的zlib开发文件。然后键入制作在源代码中要编译的目录。如果看到编译错误,请尝试使se2only=1禁用SSE4代码,这将使minimap2稍微变慢。

Minimap2还与支持NEON指令集的ARM CPU一起工作。收件人编译32位ARM架构(如ARMv7),使用使arm_neon=1.至为64位ARM体系结构(如ARMv8)编译,使用使arm_neon=1 aarch64=1.

Minimap2可以使用SIMD无处不在(SIMDe)移植库实现不同的SIMD指令集。要使用SIMDe进行编译,使用make-f生成文件.simde。要为ARM CPU编译,请使用生成文件.simde使用上面给出的与ARM相关的命令行。

一般用法

如果没有任何选项,minimap2将获取引用数据库和查询序列文件作为输入并生成近似映射,无需基本级别对齐(即坐标仅为近似值,输出中无香烟)PAF格式:

最小p2参考.fa查询.fq>近似映射.paf

您可以要求minimap2在cg公司PAF标签:

minimap2-c参考fa查询.fq>对齐.paf

或在中输出对齐SAM格式:

minimap2-参考fa查询.fq>对齐.sam

Minimap2可以无缝地与gzip格式的FASTA和FASTQ格式一起作为输入。不需要在FASTA和FASTQ之间进行转换,也不需要先解压缩gzip文件。

对于人类参考基因组,minimap2需要几分钟时间生成一个映射前参考的最小索引。为了减少索引时间,您可以可以选择使用选项保存索引-d日并替换引用minimap2命令行上带有索引文件的序列文件:

minimap2-d参考号.mmi参考号fa#索引minimap2-参考号.mmi读取.fq>对齐.sam#对齐

重要的是,应该注意,一旦建立索引参数,如-k个,-w个,-H(H)-我期间无法更改映射。如果您对不同的数据类型运行minimap2,您将可能需要保留使用不同参数生成的多个索引。这使得minimap2不同于BWA,后者总是使用相同的索引无论查询数据类型如何。

用例

Minimap2对所有应用程序使用相同的基本算法。然而,由于它支持不同的数据类型(例如,短读与长读;DNA与mRNA读),minimap2需要调整以获得最佳性能和准确性。通常情况下建议选择带有选项的预设-x个,它设置多个参数。默认设置与地图上的.

绘制长时间噪音基因组读取

minimap2-ax map-pb参考fa pacbio-reads.fq>aln.sam公司#用于PacBio CLR读取minimap2-ax映射参考fa ont-reads.fq>aln.sam公司#牛津纳米孔读数minimup2-ax映射iclr参考.fa iclr-reads.fq>aln.sam公司#Illumina完整的长阅读

两者之间的差异地图-pb地图上的是那个吗地图-pb使用均聚物压缩(HPC)作为种子最小化,而地图上的使用普通作为种子的最小化器。实证评估表明,HPC最小化改善校准PacBio CLR读数时的性能和灵敏度,但校准时会受到影响纳米孔读数。map-iclr地图使用调整后的对齐评分矩阵导致读取中的总体错误率较低,并且存在横向错误比过渡少。

绘制长信使核糖核酸/cDNA读数

minimap2-ax拼接:hq-uf参考fa iso-seq.fq>aln.sam公司#PacBio Iso-seq/传统cDNAminimap2-ax拼接参考fa纳米孔-cdna.fa>aln.sam公司#纳米孔2D cDNA-seqminimap2-ax拼接-uf-k14参考fa直接-rna.fq>aln.sam公司#纳米孔直接RNA-seqminimap2-ax拼接--拼接flank=无SIRV.fa SIRV-seq.fa#针对SIRV控制的映射

有不同的长读RNA-seq技术,包括传统的全长cDNA、EST、PacBio Iso-seq、纳米孔2D cDNA-seq和直接RNA-seq。它们产生不同质量和属性的数据。默认情况下,-x拼接假设相对于转录链的读取方向未知。尝试两轮对齐以推断方向并将链写入这个ts秒SAM/PAF标签(如果可能)。对于Iso-seq、直接RNA-seq和传统全长cDNA,希望应用-u f(单位)强制minimap2只考虑正向转录链。这加快了与精确度略有提高。对于噪音较大的纳米孔直接RNA-seq读取建议使用较小的k-mer大小,以提高对第一个或最后的外显子。

Minimap2根据最大取芯子段的得分对对齐进行评级,不包括插入子,并将最佳对齐标记为SAM中的主对齐。当拼接基因也有未拼接的假基因,minimap2不是有意的更喜欢拼接对齐,尽管在实践中它更经常标记拼接对齐为主要对齐。默认情况下,minimap2最多输出五个二级比对(即RNA-seq图谱中可能的假基因)。这个可以通过选项进行调整-N个.

对于长RNA-seq读数,minimup2可能产生潜在的嵌合比对由基因融合/结构变异或由长度超过最大内含子长度-G公司(默认为200k)。目前,不建议使用过大的-G公司因为这会减慢minimap2,有时导致错误对齐。

值得注意的是,默认情况下-x拼接首选GT[A/G]。。[C/T]股份公司超过GT[C/T]。。[A/G]AG,然后在其他拼接信号上。考虑到一个额外的底座提高了噪声读取的接合精度,但根据广泛使用的SIRV控制数据进行校准时,会降低精确度。这是因为SIRV不支持进化保守拼接信号。如果你正在学习SIRV,你可以申请--拼接板=否minimap2仅适用于GT..AG型,忽略了额外的基础。

自v2.17以来,minimap2可以选择将带注释的基因作为输入优先处理带注释的拼接接头。要使用此功能,您可以

paftools.js gff2bed anno.gff>已发布minimap2-ax拼接--junc-bed anno.bed ref.fa query.fa>aln.sam公司

在这里,注释.gff是GTF或GFF3格式的基因注释(gff2底座自动测试格式)。的输出gff2底座在12列中BED格式或BED12格式。使用--军床选项,minimap2添加奖金分数(由调整--六月奖金)如果对齐的连接与连接匹配在注释中。选项--军床也需要5列BED,包括链场。在这种情况下,每条线表示一个定向连接。

查找长读取之间的重叠

minimap2-x ava-pb读数.fq读数.fq>ovlp.paf文件#PacBio CLR读取重叠minimap2-x avaont读取.fq读取.fq>ovlp.paf文件#牛津纳米孔读取重叠

同样,ava-pb型使用HPC最小化工具阿瓦诺使用普通最小化。通常不建议在重叠模式,因为它很慢,可能会产生假阳性重叠。然而,如果性能不是问题,您可以尝试添加-一个-c(c)无论如何。

绘制简短准确的基因组读数

最小p2-最大sr参考.fa读数-se.fq>aln.sam公司#单端对齐minimap2-ax sr ref.fa read1.fq read2.fq>aln.sam公司#成对排列minimap2-ax sr-ref.fa读取-交错.fq>aln.sam公司#成对排列

当指定两个读取文件时,minimap2依次读取每个文件在内部将它们合并为交错流。两次读取被视为如果它们在输入流中相邻并且具有相同的名称(与这个/[0-9]后缀修剪(如果有)。单端和双端读取可以是混合的。

Minimap2不能很好地处理短拼接读取。有很多能手用于短读的RNA-seq映射器。

全基因组/组装比对

最小值2-最大值asm5参考fa asm.fa>aln.sam公司#装配到装配/参考对齐

对于跨物种全基因组比对,需要调整评分系统根据序列分歧。

高级功能

使用超过65535根卷烟

由于设计缺陷,BAM不适用于大于65535的香烟串操作(SAM和CRAM工作)。然而,对于超长纳米孔,读数最小2可能会将~1%的读取基数与超出BAM能力的长香烟对齐。如果如果将这种SAM/CRAM转换为BAM,Picard和最新的samtools将抛出一个错误并中止。旧的samtools和其他工具可能会创建损坏的BAM。

为了避免此问题,您可以添加选项-L(左)在minimap2命令行。此选项将长香烟移动到CG公司标记并留下一个完全剪裁的雪茄在SAM CIGAR栏。当前不读取CIGAR的工具(例如合并和排序)仍在处理此类BAM记录;读取香烟的工具将有效地忽略这些记录。已经决定未来的工具将无缝识别选项生成的长雪茄记录-L(左).

TL;博士:如果您使用超长读取并使用只处理BAM文件,请添加选项-L(左).

cs可选标记

这个加拿大SAM/PAF标签编码失配碱基和INDEL碱基。它符合常规表达/(:[0-9]+|\*[a-z][a-z]|[=\+\-][a-Za-z]+)+/像香烟一样,加拿大由一系列操作组成。每个前导字符指定操作;以下是操作中涉及的序列。

这个加拿大标记由命令行选项启用--cs公司.以下对齐,例如:

CGATCGATAAGTAG——加塔加|||||||||||||||||||||CGATCG---AATAGAGTAGGTCGAATtGCA

表示为:6-ata:10+gtc:4*时间:3,其中:[0-9]+表示同一块,-ata公司表示删除,+全球技术委员会插入和*在表示参考基准被查询基替换t吨。它是类似于医学博士SAM标记,但独立且易于解析。

如果--cs=长使用时加拿大字符串中还包含相同的序列路线。上述示例将变成=CGATCG-ata=AATAGAGTAG+gtc=GAAT*at=GCA.长形式加拿大对两者进行编码一个字符串中的引用和查询序列加拿大标签还对内含子进行编码位置和拼接信号(参见minimap2手册页对于详细信息)。

使用PAF格式

Minimap2还附带了一个(java)脚本paftools.js公司那个以PAF格式处理对齐。它从中调用变量组件到参考对齐,基于对齐提升BED文件,在格式之间进行转换,并为各种计算提供实用程序。对于详细信息,请参阅杂项/阅读.md.

算法概述

在下面,minimap2命令行选项前面有一个破折号以粗体突出显示。该描述可能有助于调整最小p2参数。

  1. 阅读-我[=4G网络]参考碱,提取物(-k个,-w个)-最小化器和在哈希表中对它们进行索引。

  2. 阅读-K(K)[=2亿]查询库。对于每个查询序列,执行步骤3至7:

  3. 对于每个(-k个,-w个)-最小化查询,对照参考检查索引。如果参考最小值不在顶部-(f)[=2e-4号机组]最多频繁,收集它在引用中的出现次数,称为种子.

  4. 按参考中的位置对种子进行排序。用动态链接编程。每条链代表一个潜在的映射。供阅读重叠,报告所有链条,然后转至步骤8。对于参考映射,执行步骤5到7:

  5. P(P)是主映射集,最初是一个空集。对于根据连锁得分从最好到最差的每条链:如果在查询中,链与中的链重叠P(P)通过--遮罩水平仪[=0.5]或较短链条的较高部分,将链条标记为第二的到中的链P(P); 否则,将链添加到P(P).

  6. 保留所有主映射。还保留高达-N个[=5]顶级次级映射,如果其链接分数高于-第页[=0.8]他们的相应的主映射。

  7. 如果请求对齐,则筛选出可能的内部种子导致长插入和长删除。最左边的种子。在内部种子之间执行全局对齐。拆分如果沿全球路线的累计分数下降-z(z)[=400]忽略了长时间的差距。从最右边的种子延伸。输出链及其对齐。

  8. 如果输入中有更多的查询序列,请转至步骤2,直到没有更多保留查询。

  9. 如果有更多的引用序列,请从头重新打开查询文件并转至步骤1;否则停止。

获取帮助

手册最低2.1提供minimap2的详细描述命令行选项和可选标记。这个常见问题解答页面回答了几个问题常见问题。如果您遇到错误或有其他问题或请求,您可以在问题页面。没有暂时的特定邮件列表。

引用最小值2

如果您在工作中使用minimap2,请引用:

Li,H.(2018)。Minimap2:核苷酸序列的成对比对。生物信息学,34:3094-3100.doi:10.1093/bioinformatics/bty191

和/或:

李浩(2021)。提高minimap2对齐精度的新策略。生物信息学,37:4572-4574.doi:10.1093/生物信息系统/btab705

开发人员指南

Minimap2不仅是一个命令行工具,也是一个编程库。它提供了C API来构建/加载索引,并根据索引。文件例子。c(c)演示了C API的典型用法。标题文件最小地图。小时提供了更详细的API文档。最小值2旨在保持此标头中的API稳定。文件mm驱动器h包含其他可能经常更改的专用API。

该存储库还提供了到C API子集的Python绑定。文件python/README.rst提供完整文件;python/minimap2.py版显示了一个示例。这个Python扩展mappy也是可从PyPI获得通过pip安装mappy来自BioConda通过conda安装-c bioconda mappy.

限制

  • Minimap2可能通过长时间的低复杂性产生次优排列种子位置可能不太理想的区域。这应该不会太大担心,因为在这些区域,即使是最佳对齐也可能是错误的。

  • Minimap2需要x86 CPU上的SSE2指令或ARM CPU上的NEON指令。确实如此可以添加非SIMD支持,但这会使minimap2的速度减慢多次。

  • Minimap2不适用于单个查询或数据库序列~2十亿个基数或更长(准确地说是2147483647)。所有的总长度序列可以很好地超过这个阈值。

  • Minimap2经常遗漏小外显子。