Skip to content

I-Mihara/BioDemuX.jl

Repository files navigation

package_logo

Build Status Build and Release Docs DOI DOI

BioDemuX.jl

BioDemuX.jl is a high-performance Julia package for demultiplexing sequencing reads with robust barcode mutation handling. It is designed to be the definitive tool for accurate and efficient barcode assignment.

🚀 Key Features

  • ⚡ Ultra-Fast Semi-Global Alignment:

    • The core engine is built on highly optimized semi-global alignment. It delivers unrivaled speed while robustly handling insertions, deletions (indels), and mismatches—recovering reads that standard Hamming-based tools discard.
  • 🔧 Extensive Flexibility:

    • Precise Targeting: Define custom search ranges to focus on specific regions.
    • Supports Dual Barcoding and variable-length barcodes.
    • Adapter Trimming: Support for simultaneous adapter matching and trimming.
    • Multi-Mode Matching: Choose between :semiglobal for robustness, or :hamming/:exact for speed.
  • 🚀 High-Performance Architecture:

    • Multi-threaded & Channel-based streaming.
    • Efficient memory usage via streaming I/O.
  • 📊 Visualize Analysis:

    • Optional interactive HTML reports for distribution and score analysis.
  • 💻 Zero-Dependency CLI:

    • Available as a standalone binary for Linux, macOS, and Windows. No Julia installation required to run in production pipelines.

📚 Documentation

Full Documentation

Visit our documentation for comprehensive guides, API references, and detailed usage examples.

📦 Installation

using Pkg; Pkg.add("BioDemuX")

🏃 Quick Start

using BioDemuX
execute_demultiplexing("reads.fastq", "barcodes.csv", "output_dir")

[CLI Users] Download the binary from Releases and run:

./biodemux reads.fastq barcodes.csv output_dir

👥 Support

If you encounter any issues, please open an issue on GitHub.