CUDA-Demux

GPU-accelerated BCL to FASTQ demultiplexing

CUDA-Demux is an open-source tool for demultiplexing Illumina BCL files into FASTQ format, optimized with CUDA for GPU acceleration. Process your sequencing data faster with parallel barcode matching and multi-threaded parsing.

Features

GPU Acceleration

Leverage CUDA for parallel barcode matching and processing

High Performance

Multi-threaded BCL parsing with optimized I/O operations

NovaSeqX Support

Full support for NovaSeqX CBCL format with interleaved data

Flexible Output

Generate standard FASTQ files compatible with downstream tools

Performance

CUDA-Demux processes BCL files significantly faster than CPU-only solutions:

  • Up to 10x faster barcode matching with GPU acceleration
  • Parallel processing of multiple tiles
  • Optimized memory management for large datasets
  • Support for both BCL and CBCL file formats

Downloads

Latest stable release: v1.0.1

Installation

Package Installation

Debian/Ubuntu

# Download the .deb package from above, then install:
wget https://github.com/mmorri/cuda-demux/releases/download/v1.0.1/cuda-demux_1.0.1_amd64.deb
sudo apt install ./cuda-demux_1.0.1_amd64.deb

# Or using dpkg:
sudo dpkg -i cuda-demux_1.0.1_amd64.deb
sudo apt-get install -f  # Install dependencies if needed

Fedora/RHEL/CentOS

# Download the .rpm package from above, then install:
wget https://github.com/mmorri/cuda-demux/releases/download/v1.0.1/cuda-demux-1.0.1-1.x86_64.rpm
sudo dnf install ./cuda-demux-1.0.1-1.x86_64.rpm

# Or using yum (older systems):
sudo yum install ./cuda-demux-1.0.1-1.x86_64.rpm

Prerequisites

Build from Source

# Clone the repository
git clone https://github.com/mmorri/cuda-demux.git
cd cuda-demux

# Create build directory
mkdir build && cd build

# Configure and build
cmake ..
make -j$(nproc)

# Optional: Install system-wide
sudo make install

Usage

Basic Command

cuda-demux --input /path/to/bcl --output /path/to/fastq --sample-sheet sample.csv

Command Line Options

Option Description
--input Path to BCL input directory
--output Path to FASTQ output directory
--sample-sheet Path to sample sheet CSV file
--threads Number of CPU threads (default: auto)
--gpu-device CUDA device ID (default: 0)
--mismatches Maximum barcode mismatches (default: 1)

Example with Options

cuda-demux \
  --input /data/sequencing/run_001 \
  --output /results/fastq \
  --sample-sheet samples.csv \
  --threads 16 \
  --gpu-device 0 \
  --mismatches 2

Contributing

Contributions are welcome! Please feel free to submit issues, feature requests, and pull requests on our GitHub repository.