A modern C++ toolkit for processing FASTQ files used in bioinformatics.
FastQTools is a high-performance toolkit designed for processing FASTQ files, which are commonly used in bioinformatics to store nucleotide sequences and their quality scores. The tool provides various functionalities for analyzing, filtering, and transforming FASTQ data efficiently.
fastqtools/
βββ cmake/ # CMake modules and *.in templates
βββ config/
β βββ dependencies/ # Dependency managers (Conan/vcpkg) metadata
β βββ deployment/ # Docker, packaging configs
βββ docs/
β βββ user/ # User docs
β βββ design/ # High-level architecture & design
β βββ development/ # Build, standards, contributing, guidelines
β βββ _archive/ # Historical/internal materials
βββ examples/ # Usage examples
βββ scripts/ # Build, test, lint, coverage, generators/validators
βββ src/
β βββ CMakeLists.txt
β βββ cli/ # CLI entry and commands
β βββ modules/ # C++20 modules (common/error/config/core/io/fastq/...)
β βββ core_legacy/ # Transitional legacy code
β βββ interfaces/ # Interfaces
β βββ processing/ # Pipelines & operators
β βββ statistics/ # Stats components
β βββ memory/ # Memory helpers
βββ tests/ # Unit tests
βββ third_party/ # Vendored third-party headers (with license notes)
β βββ gzstream/include/gzstream.h
βββ tools/
β βββ benchmark/ # Performance benchmarks
βββ dist/ # Packaging recipes (conda, homebrew)
βββ docker/ # Dockerfiles
βββ .github/workflows/ci.yml # CI pipeline (build/lint/test/coverage)
- CMake 3.20 or higher
- A C++20 compatible compiler (GCC 11+, Clang 12+, or MSVC 2019+)
- Ninja build system
- Optional: Conan or vcpkg for dependency management
# Using the unified build script (recommended)
# Usage: ./scripts/build.sh [COMPILER] [BUILD_TYPE] [OPTIONS]
# Examples:
# ./scripts/build.sh clang Release
# ./scripts/build.sh gcc Debug --asan
./scripts/build.sh clang Release
# Or manually with CMake + Conan toolchain
conan install config/dependencies/ --output-folder=build/conan-release --build=missing -s build_type=Release
cmake -S . -B build-clang-release \
-G "Ninja" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=build/conan-release/conan_toolchain.cmake
cmake --build build-clang-release./build-clang-release/FastQTools --help- User Guide - Getting started and usage instructions
- Developer Guide - Architecture and development information
- API Documentation - Detailed API reference
Run the test suite:
./scripts/test.sh
# Or directly with ctest
ctest --preset releaseThis project is licensed under the MIT License - see the LICENSE file for details.