Skip to content

FastQTools

[![CI](https://img.shields.io/github/actions/workflow/status/LessUp/fastq-tools/ci.yml?label=CI&logo=github)](https://github.com/LessUp/fastq-tools/actions/workflows/ci.yml) [![Docs](https://img.shields.io/github/actions/workflow/status/LessUp/fastq-tools/pages.yml?label=Docs&logo=github)](https://lessup.github.io/fastq-tools/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) ![C++23](https://img.shields.io/badge/C++-23-blue.svg) **Modern FASTQ File Processing Toolkit — High-Performance Bioinformatics QC Tool**

Key Features

  • Statistical Analysis (stat)


    FASTQ file statistics: base composition, quality distribution, GC content, and more

    FastQTools stat -i input.fastq.gz -o output.stat.txt
    
  • Filtering (filter)


    Read filtering and trimming with quality, length, N-ratio, and other criteria

    FastQTools filter -i input.fq.gz -o filtered.fq.gz \
        --min-quality 20 --min-length 50
    

Technical Highlights

Feature Description
High Performance Parallel pipeline processing based on Intel TBB parallel_pipeline
Modern C++ C++23 standard + modern CMake build system
Modular Design Clean interface-implementation separation, library-level integration ready
Zero-Copy I/O FastqRecord uses string_view for efficient memory access
Comprehensive QC Sanitizers, Valgrind, fuzz testing, and coverage — fully covered

Quick Start

# One-command build
./scripts/core/build

# Show help
./build/clang-release/FastQTools --help

# Statistical analysis
FastQTools stat -i input.fastq.gz -o output.stat.txt

# Filtering
FastQTools filter -i input.fq.gz -o filtered.fq.gz --min-quality 20 --min-length 50

Getting Started Guide API Reference

Dependencies

Dependency Version Purpose
Intel oneTBB 2022.3.0 Parallel pipeline core
zlib-ng 2.3.2 gzip compression/decompression
libdeflate 1.25 High-performance deflate
cxxopts 3.1.1 Command-line argument parsing
spdlog 1.17.0 Logging framework
fmt 12.1.0 Formatting library
nlohmann_json 3.11.3 JSON processing

Performance

Benchmark results with 100K reads (150bp):

Operation Throughput Time
FastQReader 1696 MB/s 18.8 ms
FastQWriter 1.76 M reads/s 57.0 ms
Filter Combined 1.67 M reads/s 60.5 ms
Stat Full 302 MB/s 104.6 ms

Full Benchmark Report

Project Structure

FastQTools/
├── include/fqtools/   # Public API headers
├── src/               # Source implementation
├── tests/             # Tests (unit / integration / e2e)
├── config/            # Build config (Conan profiles, sanitizers, valgrind, etc.)
├── scripts/           # Build & utility scripts (core / lib / tools)
├── docker/            # Docker config (dev / prod / deploy)
├── tools/             # Dev tools (benchmark / fuzz / data)
├── cmake/modules/     # Custom CMake modules
├── docs/              # Documentation
├── changelog/         # Change records
└── examples/          # Usage examples

MIT License · Copyright © 2025-2026 LessUp