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