BWA(Burrows-Wheeler Aligner)安装与使用指南
1. 项目目录结构及介绍
BWA 是一个用于将低差异序列映射到如人类基因组这样的大型参考基因组的软件包。从GitHub仓库 lh3/bwa 克隆得到的源代码通常具有以下基本结构:
- README: 包含快速入门指导和重要说明。
- bwa.c: 主要的C语言实现文件。
- bwaindex.c, bwalib.c 等: 实现索引创建和比对的核心算法文件。
- Makefile: 编译脚本,用于构建BWA可执行文件。
- example: 可能包含示例数据或测试用例。
- LICENSE: 开源许可协议文件。
2. 项目的启动文件介绍
BWA的启动实际上是指运行编译后的可执行文件 bwa
。在成功编译源码之后,这个程序就是主要的工作horse。通过命令行调用该可执行文件,结合不同的子命令(如 index
, mem
, aln
等),可以进行相应的操作,比如构建索引或进行序列比对。
核心命令简述:
- bwa index: 用于构建参考基因组的FM索引。
- bwa mem: 主流命令,用于长序列的高效比对,支持Illumina、PacBio和Nanopore等测序数据。
- bwa aln: 老版命令,适合较短的序列比对,已被推荐使用BWA-MEM替代。
3. 项目的配置文件介绍
BWA本身不直接依赖于外部配置文件来控制其核心功能。它的行为主要是通过命令行参数进行调整的。这意味着,用户不需要编辑特定的配置文件来设置BWA的工作方式。所有必要的参数,如线程数、内存使用等,都是在调用BWA时直接指定的。
例如,在使用bwa index
命令时,你只需要提供参考基因组的FASTA文件路径;而执行比对(如bwa mem
)时,则需指定参考基因组索引、输入的FASTQ文件以及可能的其他参数选项,这些都直接作为命令行参数。
示例命令:
# 构建索引
git clone https://github.com/lh3/bwa.git
cd bwa
make
./bwa index ref.fa
# 进行序列比对(单端)
./bwa mem ref.fa read-se.fq.gz | gzip -3 > aln-se.sam.gz
# 进行序列比对(双端)
./bwa mem ref.fa read1.fq read2.fq | gzip -3 > aln-pe.sam.gz
请注意,虽然BWA没有传统的配置文件,但通过命令行参数,用户能够灵活地控制其工作流程,以适应不同场景的比对需求。