BWA短序列比对:建索引、比对、SAM输出

674 字
3 分钟
BWA短序列比对:建索引、比对、SAM输出

BWA(Burrows-Wheeler Aligner)是短序列比对的老牌工具,2009年发布至今仍在生信流程中占据核心地位。虽然 STAR 在 RNA-seq 中更常用,但 DNA-seq、ChIP-seq、WGS 等仍旧依赖 BWA。

实测环境:Debian 13,BWA v0.7.19,Conda安装。

1. 安装#

Terminal window
conda install -c bioconda bwa -y
bwa
# Program: bwa (alignment via Burrows-Wheeler transformation)
# Version: 0.7.19-r1273

BWA 实际上包含三个算法:BWA-backtrack(古老)、BWA-SW(长序列)、BWA-MEM(推荐,70bp以上的reads)。现在 99% 的场景都用 BWA-MEM。

2. 建索引——比对前必须做的#

BWA 需要参考基因组的 FM-index(基于 BWT 变换),建一次就能反复用:

Terminal window
# 建索引(耗时最长的一步)
bwa index ref.fa
# 输出5个文件:
# ref.fa.amb ref.fa.ann ref.fa.bwt ref.fa.pac ref.fa.sa

人类基因组建索引耗时: ~1-2 小时(16线程),占用约 5GB 额外磁盘空间。索引文件放在参考基因组同目录下就可以,比对的指定路径就自动找到。

3. BWA-MEM 比对——一行命令#

Terminal window
# 单端
bwa mem -t 8 ref.fa sample.fastq.gz > output.sam
# 双端(最常用)
bwa mem -t 8 ref.fa sample_R1.fastq.gz sample_R2.fastq.gz > output.sam

关键参数:

参数含义默认值建议
-t线程数1设成 CPU 核心数,别超过
-M把split alignment标记为secondary不标记PICARD兼容必须加
-RRead Group 信息必须加,否则 GATK 报错
-k最小种子长度19灵敏度够用就行

Read Group 的重要性#

-R 参数不加的话,GATK 的后续流程会报错。标准写法:

Terminal window
bwa mem -t 8 -M \
-R "@RG\\tID:sample1\\tSM:sample1\\tPL:ILLUMINA\\tLB:lib1" \
ref.fa \
sample_R1.fastq.gz sample_R2.fastq.gz \
> output.sam

RG 字段说明:

  • ID:Read Group 唯一标识(随意起,但每个样本不同)
  • SM:样本名(GATK 按这个分组)
  • PL:测序平台(ILLUMINA/PACBIO/ONT)
  • LB:文库名

4. 比对后处理——SAM→sorted BAM#

比对输出是未排序的 SAM,需要转 BAM + 排序 + 建索引:

Terminal window
# SAM→BAM→sort→index 一条龙
bwa mem -t 8 -M \
-R "@RG\\tID:s1\\tSM:s1\\tPL:ILLUMINA" \
ref.fa R1.fastq.gz R2.fastq.gz | \
samtools sort -@ 8 -o sorted.bam && \
samtools index sorted.bam

5. BWA vs Bowtie2 怎么选#

特性BWA-MEMBowtie2HISAT2
最佳读长70bp-1Mbp50-1000bpRNA-seq专用
速度较快
灵敏度RNA-seq最高
间隙比对支持长间隙支持支持但特殊场景
适用WGS/ChIP/长读小基因组RNA-seq首选

简单决策: DNA-seq用BWA,RNA-seq用HISAT2或STAR,宏基因组用Bowtie2。

6. 踩坑#

坑1:-M忘了加导致Picard报错——BWA对嵌合比对会输出多条记录,不加-M的话Picard的MarkDuplicates处理会出错。

坑2:索引版本不兼容——bwa v0.6的索引在v0.7不兼容。升级bwa后必须重新 bwa index

坑3:内存不足——比对人类基因组需要约8-10GB RAM。加上-t参数不要超过物理内存限制。

7. 小结#

BWA-MEM + -M -R + samtools sort 三件套是常用操作。


本文于 2025-04-25 实测。BWA v0.7.19。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

BWA短序列比对:建索引、比对、SAM输出
https://fg.ink/posts/bwa-short-read-alignment/
作者
风观
发布于
2025-07-15
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
风观
风有来路,观有所思
分类
标签
站点统计
文章
50
分类
1
标签
29
总字数
61,837
运行时长
0
最后活动
0 天前

文章目录