Skip to content
jtarraga edited this page Sep 3, 2014 · 8 revisions

Welcome to the HPG Aligner wiki!

HPG Aligner is an open-source high-performance and highly sensitive Next-Generation Sequencing (NGS) read mapping. Many of current solutions for read mapping in NGS work well in a few scenarios, some of them work well for short reads but fail to map longer reads, or viceversa, while others can map ungapped reads but no gapped reads, and others run very slow. HPG Aligner has been designed with sensitivity and performance in mind.

HPG Aligner has been designed to align short and long reads with high sensitivity, therefore any number of mismatches or indels are allowed. HPG Aligner implements a seed strategy combined two well known algorithms: Burrows-Wheeler Transform (BWT) to speed-up mapping high-quality reads, and Smith-Waterman (SW) to increase sensitivity when reads cannot be mapped using BWT. From version 2.0, HPG Aligner replaces BWT by a data structure based on suffix arrays (SA) and a prefix table saved in the compressed row storage (CRS) format.

Both algorithms have been implemented taking advantage of new computing hardware such as multi-core CPUs, SIMD vectorized registers and GPUs, therefore a very high performance solution has been developed outperforming all other existing solutions. Also, the memory footprint is below other solutions.

HPG Aligner has been designed to be extended easily and currently two applications are available through commands:

  • dna: for DNA reads mapping
  • rna: RNA-seq mapping

A third command build-index is available to build the indexes for BWT.

Goals

High sensitivity

a highly sensitive NGS read mapper, many of current solutions fail to map reads containing many mismatches, indels or introns

High performance

a High-Performance Computing (HPC) solution that performs very fast with a low memory footprint, to achieve this, we make use of multi-core CPUs, SIMD registers and GPUs

Open-source development

provide to the community with a open source solution where more people can contribute to the software development through a GitHub server