  Aligning millions of short DNA or RNA reads, of 75 to 250 base pairs each, to
a reference genome is a significant computation problem in bioinformatics. We
present a flexible and fast FPGA-based short read alignment tool. Our aligner
makes use of the processing power of FPGAs in conjunction with the greater host
memory bandwidth and flexibility of software to improve performance and achieve
a high level of configurability. This flexible design supports a variety of
reference genome sizes without the performance degradation suffered by other
software and FPGA-based aligners. It is also better able to support the
features of new alignment algorithms, which frequently crop up in the rapidly
evolving field of bioinformatics. We demonstrate these advantages in a case
study where we align RNA-Seq data from a hypothesized mouse / human xenograft.
In this case study, our aligner provides a speedup of 5.6x over BWA-SW with
energy savings of 21%, while also reducing incorrect short read classification
by 29%. To demonstrate the flexibility of our system we show that the speedup
can be substantially improved while retaining most of the accuracy gains over
BWA-SW. The speedup can be increased to 71.3x, while still enjoying a 28%
incorrect classification improvement and 52% improvement in unaligned reads.
