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.
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.
-
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.
- 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.
- Native HTSlib Post-Processing: Automatically encodes standard
.bamfile headers and records, seamlessly handling CIGAR strings, sequence data, and mapping qualities. Integratessamtoolscoordinate sorting and.baiindex generation natively upon completion. - No-Bloat Factory CLI: Developed strictly as a standalone, highly-optimized backend alignment engine with zero graphical dependencies.
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 pulsar2) Run Installer
bash install_requirements.sh3) Build PULSAR using CMake
mkdir build && cd build
cmake ..
make -j8PULSAR 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.