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. 安装
conda install -c bioconda bwa -ybwa# Program: bwa (alignment via Burrows-Wheeler transformation)# Version: 0.7.19-r1273BWA 实际上包含三个算法:BWA-backtrack(古老)、BWA-SW(长序列)、BWA-MEM(推荐,70bp以上的reads)。现在 99% 的场景都用 BWA-MEM。
2. 建索引——比对前必须做的
BWA 需要参考基因组的 FM-index(基于 BWT 变换),建一次就能反复用:
# 建索引(耗时最长的一步)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 比对——一行命令
# 单端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兼容必须加 |
-R | Read Group 信息 | 空 | 必须加,否则 GATK 报错 |
-k | 最小种子长度 | 19 | 灵敏度够用就行 |
Read Group 的重要性
-R 参数不加的话,GATK 的后续流程会报错。标准写法:
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.samRG 字段说明:
- ID:Read Group 唯一标识(随意起,但每个样本不同)
- SM:样本名(GATK 按这个分组)
- PL:测序平台(ILLUMINA/PACBIO/ONT)
- LB:文库名
4. 比对后处理——SAM→sorted BAM
比对输出是未排序的 SAM,需要转 BAM + 排序 + 建索引:
# 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.bam5. BWA vs Bowtie2 怎么选
| 特性 | BWA-MEM | Bowtie2 | HISAT2 |
|---|---|---|---|
| 最佳读长 | 70bp-1Mbp | 50-1000bp | RNA-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/ 相关文章 智能推荐
1
HISAT2 RNA-seq比对:建索引、双端比对、参数调优
技术 HISAT2 RNA-seq比对全流程,从建索引、双端比对参数调优到比对率统计,附与STAR的选型对比。
2
参考基因组下载与索引准备:Ensembl/UCSC/NCBI
技术 从Ensembl、UCSC、NCBI三大来源获取参考基因组并准备bwa、bowtie2、hisat2全套索引的完整指南。
3
Biopython序列处理:文件读写与NCBI数据获取
技术 Biopython核心模块SeqIO、Seq和Entrez的实操指南,覆盖FASTA/FASTQ读写、序列操作与NCBI数据获取。
4
命令行小工具:seqtk/csvtk/datamash/bioawk
技术 seqtk、csvtk、datamash、bioawk等命令行小工具的生信实战指南,覆盖序列抽样、表格处理和快速统计场景。
5
生信自学路线图:从Linux基础到独立分析
技术 从Linux基础到独立分析的完整生信自学路线,覆盖环境配置、数据获取、质控比对、差异分析和可视化各个阶段。
随机文章 随机推荐