Bowtie2 — 经典短读段比对工具¶
一句话说明¶
Bowtie2 是基于 FM 索引的短读段比对工具,内存占用低(约 3.5GB 比对人类基因组),常用于 ChIP-seq、ATAC-seq、宏基因组等不需要剪接比对的场景。
安装与配置¶
# 方法1:conda 安装(推荐)
conda install -c bioconda bowtie2 # 从 bioconda 安装
# 方法2:直接下载
wget https://github.com/BenLangmead/bowtie2/releases/download/v2.5.4/bowtie2-2.5.4-linux-x86_64.zip
unzip bowtie2-2.5.4-linux-x86_64.zip # 解压即用
# 验证安装
bowtie2 --version # 当前最新 2.5.4(2024年)
核心用法¶
构建索引¶
# 构建 Bowtie2 索引
bowtie2-build \
--threads 16 \ # 使用 16 线程加速
ref.fa \ # 参考基因组 FASTA
bt2_index # 索引前缀名
# 生成 .1.bt2 .2.bt2 .3.bt2 .4.bt2 .rev.1.bt2 .rev.2.bt2 六个文件
基本比对¶
# 双端比对(ChIP-seq / ATAC-seq 常用)
bowtie2 \
-p 16 \ # 16 线程
--very-sensitive \ # 高灵敏度预设(推荐)
-x bt2_index \ # 索引前缀
-1 R1.fq.gz \ # Read 1
-2 R2.fq.gz \ # Read 2
| samtools sort -@ 4 -o aligned.bam # 排序输出 BAM
samtools index aligned.bam # 建 BAM 索引
# 单端比对
bowtie2 -p 16 --very-sensitive -x bt2_index -U reads.fq.gz \
| samtools sort -o se_aligned.bam
进阶用法¶
# 宏基因组 — 去除宿主 DNA(保留未比对的读段)
bowtie2 -p 16 \
-x human_index \ # 人类基因组索引
-1 R1.fq.gz -2 R2.fq.gz \
--un-conc-gz unmapped_%.fq.gz \ # 未比对读段输出(即非宿主读段)
-S /dev/null # 不保存比对结果(只需要未比对读段)
# ChIP-seq — 只保留唯一比对
bowtie2 -p 16 \
-x bt2_index \
-1 R1.fq.gz -2 R2.fq.gz \
--no-mixed \ # 不尝试单独比对一端
--no-discordant \ # 不报告不一致的配对
| samtools view -bS -q 30 - \ # 过滤 MAPQ < 30 的低质量比对
| samtools sort -o chip_filtered.bam
# 本地比对模式(允许读段两端 soft-clip)
bowtie2 -p 16 --very-sensitive-local \
-x bt2_index \
-1 R1.fq.gz -2 R2.fq.gz \
| samtools sort -o local_aligned.bam
# 设置插入片段范围(根据文库实际情况)
bowtie2 -p 16 \
-x bt2_index \
-1 R1.fq.gz -2 R2.fq.gz \
-I 100 \ # 最小插入片段长度
-X 700 \ # 最大插入片段长度
| samtools sort -o sized.bam
常见问题与踩坑¶
问题1:比对率很低¶
原因:默认 end-to-end 模式要求整条读段比对,接头残留或低质量尾部会导致失败
解决:先做质控(fastp/Trim Galore),或使用 --very-sensitive-local 允许 soft-clip
问题2:end-to-end 和 local 模式的区别¶
说明:end-to-end(默认)要求整条读段比对;local 允许两端被裁剪
选择:质控充分用 end-to-end,有接头残留或融合序列用 local
问题3:插入片段大小估计不准¶
原因:默认 -X 500 可能不适合你的文库
解决:先用 FastQC 或 Picard 检查实际插入片段分布,然后设置 -I 和 -X
问题4:Bowtie2 vs BWA-MEM 怎么选¶
建议:全基因组变异检测用 BWA-MEM/BWA-MEM2;ChIP-seq/ATAC-seq/去宿主用 Bowtie2
速查卡片¶
| 命令/参数 | 用途 |
|---|---|
bowtie2-build ref.fa prefix | 构建索引 |
bowtie2 -x idx -1 R1 -2 R2 | 双端比对 |
bowtie2 -x idx -U reads | 单端比对 |
--very-sensitive | 高灵敏度(end-to-end) |
--very-sensitive-local | 高灵敏度(local) |
--un-conc-gz | 输出未比对读段(去宿主) |
-I 100 -X 700 | 设置插入片段范围 |
--no-mixed --no-discordant | 严格配对模式 |
-k 10 | 每条读段最多报告 10 个比对 |
--met-file metrics.txt | 输出比对统计 |