Tuesday 25 April 2017

General differences between BWA and Bowtie Aligners (NGS data alignment tools)

BWA
Bowtie
Does not make compromise to memory and speed usage and guarantees the highest quality reads

Make compromise to memory and speed usage because it does not guarantee the highest quality read mapping if no exact match exists.
It fails to align some reads with valid mapping when it opts for maximum speed.

uses mapping quality accepts or rejects an alignment based on counting the number of mismatches between reads and corresponding genomic position.
Uses a quality threshold (alignment score) to perform same function
BWA uses large memory due to mapping step and 40% slower
Uses less memory and is 40% fast in doing alignment
Supports alignment when there are some gaps and mismatches in single end sequence/ alignment
No gapped alignment. If the subject genome has a gap with respect to reference genome it is unlikely to report the correct alignment for a read
Memory efficient aligner with low speed as compared to Bowtie
Ultrafast and memory efficient aligner
Uses FM indexing and Burrows Wheeler Transform algorithm
Bowtie index is a refinement of FM Index (Ferragina and Manzini 2000) which in turn uses the Burrows-Wheeler Transform
No built-in indexes are available with BWA package
Built-in indexes are also available with Bowtie package
Common method for FM Indexing is the exact matching algorithm and it does not use double indexing strategy. It also uses inexact matching (backtracking algorithm but it is not optimal
Uses double indexing', a strategy to avoid excessive backtracking. The Bowtie aligner follows a policy similar to Maq's, in that it allows a small number of mismatches within the high-quality end of each read, and it places an upper limit on the sum of the quality values at mismatched alignment positions.
It does not reduce the search space by bounding the search with D(i), where D(i) is the lower bound of differences in given reads W (0, i)
It does not reduce the search space by bounding the search with D(i), but cleverly doing the alignment for both original and reversed read sequences to bypass unnecessary searches towards the root of prefix trie
BWA implements breadth-first search (BFS) so its slower than bowtie
By default, Bowtie performs a depth first search (DFS) on prefix trie and stops when qualified hit is found
No possibility to make BWA perform DFS
It is possible to make bowtie perform a BFS by applying -best option at the command line but this makes bowtie slower
Generates mapping qualities
Generates quality scores
More accurate in terms of confident mapping and error rate of confident mapping
Less accurate in terms of confident mapping
It checks suboptimal hits that’s why it is slow
Do not check suboptimal hits that’s why it is fast

4 comments: