SSW Library

A fast and memory efficient Smith-Waterman C/C++ library

License: MIT

Contact: Mengyao Zhao <zhangmp@bc.edu>



SSW is a fast implementation of the Smith-Waterman algorithm, which uses the Single-Instruction Multiple-Data (SIMD) instructions to parallelize the algorithm within one processor. SSW library provides an API that can be flexibly used by programs written in C, C++ and other languages, even in multithreaded way. We also provide a demo software that can do protein and genome alignment directly. Current version of our implementation is ~50 times faster than an ordinary Smith-Waterman. It can return the Smith-Waterman score, alignment location and trace back path (cigar) of the optimal alignment accurately; and return the sub-optimal alignment score and location heuristically. 



1. Efficient: ~50 times faster and ~100 times less memory usage than an ordinary Smith-Waterman

2. Accurate results and more: This library always gives the accurate optimal alignment results exactly the same as an ordinary Smith-Waterman. A suboptimal alignment is also returned.

3. Feather weight and easy usage: 1) Copy ssw.h and ssw.c from https://github.com/mengyao/Complete-Striped-Smith-Waterman-Library and past them into your source code folder. 2) #include “ssw.h” where you would like to use the API 3) Compile with your own codes.

4. example.c and example.cpp are two simple examples to show how to use the API in C and C++ style respectively.

5. Robust demo software is provided for you to play with whatever way you like.

6. Double layer parallelization: 1) SIMD parallelization realizes parallel pairwise alignment within each processor. 2) Multithreaded usage of SSW realizes running alignments on multiple processors simultaneously.  


See more at:


0 Notes

blog comments powered by Disqus