2015-08-21MAO

BWA-MEM 不同方法的 Mapping 结果比较

(本文由GeneDock公司 Bioinformatics Engineer MAO 撰写,转载请保留作者信息和原文链接)

基本信息

  • 测试集群 CPU 型号: Intel(R) Xeon(R) CPU E5-4610 v2 @ 2.30GHz
  • bwa 版本:0.7.12-r1039
  • 参考序列:hg19
  • 原始数据:SRX265482

一、小样本测试

$ wc -l read*_1000.fq
  1000 read1_1000.fq
  1000 read2_1000.fq
  2000 total

提取了 1000 行 fastq 数据,一共 250 条 reads 做测试。

$ samtools view reads_1000.sam | wc -l
  501

Mapping 出来的结果是 501 行。

图一:由chimeric alignments,SRR796872.221多一条

图二:chimeric alignments

总结:BWA-MEM 并不是每条 read 输出一个 Mapping 结果,因为存在 chimeric alignments,所以有的会有多条。

二、不同线程数 Mapping 对结果的影响

$ wc -l read1.fq read2.fq
  25600000 read1.fq
  25600000 read2.fq
  51200000 total

提取 6400000 条 reads 作测试。

bwa 比对和监控内存占用量所使用的命令是:

$ bwa mem -M -t #cpu hg19 read1.fq read2.fq > bwa#cpu.sam &
$ while kill -0 #pid 2> /dev/null; do grep VmPeak /proc/#pid/status; sleep 60; done
表一:线程数增加,内存占用量增加(单位:kB)
threads 1 2 4 8 16 32
memory 5,631,896 5,916,524 6,228,940 6,853,772 8,040,104 10,539,368

图三:线程数增加,内存占用量增加(单位:kB)



表二:线程数增加,运行时间减少(单位:seconds)
threads 1 2 4 8 16 32
time 2,071.550 908.405 464.048 242.545 129.128 87.006

图四:线程数增加,运行时间减少(单位:seconds)



表三:不同线程数 Mapping 结果比较
mapping 1 2 4 8 16 32
Unique 11,762,105 (91.68%) 11,762,155 (91.68%) 11,762,146 (91.68%) 11,762,133 (91.68%) 11,762,158 (91.68%) 11,762,143 (91.68%)
Multi 1,027,343 (8.01%) 1,027,298 (8.01%) 1,027,304 (8.01%) 1,027,317 (8.01%) 1,027,291 (8.01%) 1,027,308 (8.01%)
Unmapped 40,447 (0.32%) 40,443 (0.32%) 40,446 (0.32%) 40,446 (0.32%) 40,447 (0.32%) 40,446 (0.32%)

图五:不同线程数 Mapping 结果比较

图六:示例同一条 read,两次比对到了不同的位置

总结:内存占用量随着进程数逐渐升高,运行时间基本跟进程数成反比。而同一条 read 两次比对到不同的位置,可能的原因是 bwa 中类似 drand48() 函数在挑选同等打分的 reads 时随机选择的结果。

三、分块 Mapping 对结果的影响

$ wc -l SRR796872_*
  142410888 SRR796872_1.fastq
  142410888 SRR796872_2.fastq
  284821776

选取完整的测序数据。

图七:普通 Mapping 与分块 Mapping 示意图



表四:总 reads 数比较
总数 原始 fastq 普通 分块
reads 71,205,444 71,371,431 71,371,421
表五:Mapping 后 reads 的 alignments 数的分布
alignments 数 普通 分块
2 35,440,618(99.54%) 35,440,637(99.54%)
3 158,232 158,205
4 3,862 3,869
5 9 10
6 1 1
总计 35,602,722 35,602,722
表六:Mapping 的结果统计
普通 分块
Unique 65,413,394(91.65%) 65,413,390(91.65%)
Multi 5,719,776(8.02%) 5,719,770(8.02%)
Unmapped 238,261(0.33%) 238,261(0.33%)

总结:普通 Mapping 与分块 Mapping 的结果几乎没有区别。

[1]Bioinformatics. 2011 Aug 15; 27(16): 2194–2200.