Minimap2 — 长读段万能比对工具¶
一句话说明¶
Minimap2 是一个快速、通用的序列比对工具,支持 ONT、PacBio 长读段以及短读段比对,还能做 assembly-to-assembly 比对,是三代测序分析的标配工具。
安装与配置¶
# 方法1:conda 安装(推荐)
conda install -c bioconda minimap2 # 从 bioconda 安装
# 方法2:源码编译(获取最新功能)
git clone https://github.com/lh3/minimap2 # 克隆源码
cd minimap2 && make # 编译
# 验证安装
minimap2 --version # 当前最新 2.28(2024年)
核心用法¶
基本命令¶
# ONT 长读段比对到参考基因组(最常用)
minimap2 -a \ # 输出 SAM 格式(默认输出 PAF)
-x map-ont \ # 预设参数:ONT 长读段比对模式
-t 16 \ # 使用 16 个线程
ref.fa \ # 参考基因组
ont_reads.fq.gz \ # ONT 读段
| samtools sort -o ont_aligned.bam # 排序并转为 BAM
# PacBio HiFi 读段比对
minimap2 -a -x map-hifi -t 16 ref.fa hifi_reads.fq.gz \
| samtools sort -o hifi_aligned.bam
# PacBio CLR 读段比对
minimap2 -a -x map-pb -t 16 ref.fa clr_reads.fq.gz \
| samtools sort -o clr_aligned.bam
# 短读段比对(替代 BWA-MEM)
minimap2 -a -x sr -t 16 ref.fa R1.fq.gz R2.fq.gz \
| samtools sort -o sr_aligned.bam
进阶用法¶
# 全长转录本比对(Iso-Seq / cDNA)
minimap2 -a \
-x splice \ # 剪接感知模式,识别内含子
--junc-bed known_junctions.bed \ # 提供已知剪接位点(可选)
-t 16 ref.fa \
isoseq_reads.fq.gz \
| samtools sort -o transcript_aligned.bam
# Assembly-to-assembly 比对(比较两个基因组)
minimap2 -x asm5 \ # 两个基因组序列相似度 >95%
ref_genome.fa \
query_genome.fa \
> asm_alignment.paf # 输出 PAF 格式
# 仅构建索引(大基因组重复使用时节省时间)
minimap2 -d ref.mmi ref.fa # 将索引保存到 .mmi 文件
minimap2 -a -x map-ont -t 16 ref.mmi reads.fq.gz | samtools sort -o out.bam
# 输出 CS 标签(详细的比对差异信息)
minimap2 -a -x map-ont --cs ref.fa reads.fq.gz > with_cs.sam
常见问题与踩坑¶
问题1:忘记加 -a 导致输出不是 SAM 格式¶
原因:Minimap2 默认输出 PAF 格式(制表符分隔的简化比对格式)
解决:需要 BAM/SAM 时必须加 -a 参数
问题2:选错预设模式(-x 参数)¶
原因:不同测序平台的错误特征不同,用错预设会严重影响比对质量
解决:ONT 用 map-ont,HiFi 用 map-hifi,CLR 用 map-pb,短读用 sr,cDNA 用 splice
问题3:比对 RNA 数据时没有检测到剪接位点¶
原因:用了 map-ont 而不是 splice 模式
解决:转录本数据必须用 -x splice,可选加 --junc-bed 提供已知剪接位点
问题4:大基因组比对速度慢¶
原因:每次运行都重新构建索引
解决:先用 minimap2 -d ref.mmi ref.fa 保存索引,后续直接用 .mmi 文件
速查卡片¶
| 命令/参数 | 用途 |
|---|---|
-x map-ont | ONT 长读段比对 |
-x map-hifi | PacBio HiFi 读段比对 |
-x map-pb | PacBio CLR 读段比对 |
-x sr | 短读段比对 |
-x splice | 转录本/cDNA 剪接比对 |
-x asm5 | 基因组-基因组比对(>95% 相似) |
-x asm20 | 基因组-基因组比对(>80% 相似) |
-a | 输出 SAM 格式 |
-d ref.mmi ref.fa | 预建索引保存到文件 |
--cs | 输出 CS 标签(详细差异) |
--MD | 输出 MD 标签(用于 SNP 调用) |
-t N | 设置线程数 |