Skip to content

🧬 ι«˜ζ€§θƒ½ FASTQ ζ–‡δ»Άε€„η†δΈŽεˆ†ζžε·₯具集

License

Notifications You must be signed in to change notification settings

LessUp/FastQToys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

46 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

FastQTools

A modern C++ toolkit for processing FASTQ files used in bioinformatics.

🧬 Overview

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.

πŸ“ Directory Structure

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)

πŸš€ Getting Started

Prerequisites

  • 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

Building

# 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

Running

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

πŸ“– Documentation

πŸ§ͺ Testing

Run the test suite:

./scripts/test.sh
# Or directly with ctest
ctest --preset release

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

🧬 ι«˜ζ€§θƒ½ FASTQ ζ–‡δ»Άε€„η†δΈŽεˆ†ζžε·₯具集

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published