Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PULSAR: Parallel Ultra-Learned Spliced Alignment Resource

PULSAR is a next-generation, high-performance sequence aligner engineered natively in C++20 to address the computational bottlenecks and "memory wall" of traditional RNA-Seq alignment tools. By synthesizing Learned Index Structures, Wavefront Alignment (WFA), and heterogeneous hardware acceleration, PULSAR delivers maximum biological precision and extreme speed without the massive RAM requirements of its predecessors.

Hardware & OS Requirements

PULSAR is designed for high-performance computing environments natively built around POSIX standards.

  • Supported Operating Systems:
    • Linux (Ubuntu, CentOS, Debian, WSL2, etc.) - Native & Fully optimized
    • macOS (Intel & Apple Silicon M-Series) - Fully supported
  • CPU Architecture: x86_64 (AVX-512 recommended for maximum throughput) or ARM64.
  • RAM: Minimum 8 GB.

Core Architecture & Features

  • Algorithmic Innovations: Learned Index Structures: Replaces standard binary search over massive Suffix Arrays with Piecewise Linear Models. This approach dramatically minimizes CPU cache misses by predicting $k$-mer memory addresses in $\mathcal{O}(1)$ time, reducing core query times while adding less than 1% to the suffix array's memory footprint.

  • Wavefront Alignment (WFA2-lib) Precision: Replaces traditional quadratic $\mathcal{O}(N^2)$ dynamic programming with the exact gap-affine Wavefront Alignment algorithm. It computes optimal alignments in $\mathcal{O}(N \cdot s)$ time, accurately tracking true CIGAR operations (Insertions/Deletions/Mismatches) without sacrificing mathematical optimality.

Hardware-Level Optimizations

  • CPU SIMD Acceleration (AVX-512): Utilizes the Google Highway library for platform-independent vectorization. All data structures and pointers are strictly aligned to 64-byte boundaries (alignas(64)) to maximize AVX-512 instruction throughput during matrix calculations.
  • Asynchronous GPU Execution (CUDA Streams): Implements a non-blocking API where sequence alignment is offloaded to NVIDIA GPUs. CPU and GPU workloads overlap perfectly, completely eliminating processing latency.
  • Producer-Consumer I/O Model: Bypasses disk I/O bottlenecks by employing dedicated threads. A producer synchronously reads paired-end FASTQ files into non-blocking memory queues, while workers process data, and a consumer writes the output to disk concurrently.

Industry-Standard Integrations

  • Native HTSlib Post-Processing: Automatically encodes standard .bam file headers and records, seamlessly handling CIGAR strings, sequence data, and mapping qualities. Integrates samtools coordinate sorting and .bai index generation natively upon completion.
  • No-Bloat Factory CLI: Developed strictly as a standalone, highly-optimized backend alignment engine with zero graphical dependencies.

Quick Setup & Installation

Prerequisites: Ensure that the NVIDIA CUDA Toolkit (nvcc) is installed on your system to enable GPU-accelerated asynchronous algorithms.

We provide a fully automated installation script for the remaining dependencies. This script fetches build tools, HTSlib API, Samtools, and WFA2-lib source natively.

1) Clone the repository

git clone https://github.com/clousgospel/pulsar.git
cd pulsar

2) Run Installer

bash install_requirements.sh

3) Build PULSAR using CMake

mkdir build && cd build
cmake ..
make -j8

Usage (CLI)

PULSAR strictly requires structured datasets. To execute an alignment, pass your forward reads, reverse reads, and the reference genome:

./pulsar <Read1.fastq> <Read2.fastq> <Reference.fasta> [Output.bam]

Example:

./pulsar patient_1.fastq patient_2.fastq hg38.fasta

Upon successful mapping, PULSAR will automatically clean up the logs, sort the genomic coordinates natively, and produce the ready-to-view output_sorted.bam and output_sorted.bam.bai files.


About

Next-Gen RNA-seq Aligner

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages