Spoa

Spoa implements the partial order alignment (POA) algorithm in C++ to perform SIMD-accelerated alignment of DNA sequences for bioinformatics analyses.


Key Features:

  • C++ Implementation: Implemented in C++ for performance-critical sequence alignment computations.
  • SIMD Optimization: Utilizes Single Instruction, Multiple Data (SIMD) instructions to process multiple alignment cells in parallel.
  • Partial Order Alignment (POA): Uses the partial order alignment algorithm to represent and align sequences that contain insertions and deletions.
  • Modular Arithmetic: Employs modular arithmetic to handle large patterns and mitigate precision limitations.
  • Multithreading and Parallelism: Optimized for multithreading and parallel execution to utilize multi-core processors.
  • Assembly Language Optimization: Incorporates assembly-level optimizations to reduce time and memory overhead.

Scientific Applications:

  • DNA Sequence Alignment: Aligning DNA sequences to identify similarities and variations, including insertions and deletions.
  • Pattern Matching: Efficient pattern matching within large genomic datasets to detect motifs or mutations.

Methodology:

C++ implementation of the partial order alignment (POA) algorithm with SIMD acceleration, modular arithmetic for large patterns, multithreading/parallel execution, and assembly-level optimizations.

Topics

Details

License:
MIT
Cost:
Free of charge
Tool Type:
command-line tool
Operating Systems:
Mac, Linux, Windows
Programming Languages:
C++
Added:
3/18/2022
Last Updated:
3/18/2022

Operations

Publications

Soldo JP, Krzic AS, Sersic and D. Fast low-level pattern matching algorithm [Internet]. arXiv; 2016. Available from: https://arxiv.org/abs/1611.06115