title: SSW library: an SIMD Smith-Waterman C/C++ library for use in genomic applications.
abstract: BACKGROUND
  The Smith-Waterman algorithm, which produces the optimal pairwise alignment between two sequences, is frequently used as a key component of fast heuristic read mapping and variation detection tools for next-generation sequencing data. Though various fast Smith-Waterman implementations are developed, they are either designed as monolithic protein database searching tools, which do not return detailed alignment, or are embedded into other tools. These issues make reusing these efficient Smith-Waterman implementations impractical.
  
  
  RESULTS
  To facilitate easy integration of the fast Single-Instruction-Multiple-Data Smith-Waterman algorithm into third-party software, we wrote a C/C++ library, which extends Farrar's Striped Smith-Waterman (SSW) to return alignment information in addition to the optimal Smith-Waterman score. In this library we developed a new method to generate the full optimal alignment results and a suboptimal score in linear space at little cost of efficiency. This improvement makes the fast Single-Instruction-Multiple-Data Smith-Waterman become really useful in genomic applications. SSW is available both as a C/C++ software library, as well as a stand-alone alignment tool at: https://github.com/mengyao/Complete-Striped-Smith-Waterman-Library.
  
  
  CONCLUSIONS
  The SSW library has been used in the primary read mapping tool MOSAIK, the split-read mapping program SCISSORS, the MEI detector TANGRAM, and the read-overlap graph generation program RZMBLR. The speeds of the mentioned software are improved significantly by replacing their ordinary Smith-Waterman or banded Smith-Waterman module with the SSW Library.
authors: Department of Biology, Boston College, Chestnut Hill, Massachusetts, United States of America.
authors: Mengyao
authors: M
authors: Zhao
authors: Wan-Ping
authors: WP
authors: Lee
authors: Erik P
authors: EP
authors: Garrison
authors: Gabor T
authors: GT
authors: Marth
mesh_terms: D000465:Algorithms; D003198:Computer Simulation; D030562:Databases, Protein; D023281:Genomics / Q000379:methods*; D011381:Programming Languages; D016415:Sequence Alignment; D013997:Time Factors