Focused FASTQ quality-control toolkit
Fast statistics, filtering, and trimming for sequencing data — with a CLI for day-to-day work and a C++ API for integration.
English • 简体中文 • Documentation • Releases
FastQTools is a modern C++23 toolkit for routine FASTQ quality-control work. It is built for researchers and pipeline engineers who want a focused tool for inspecting, filtering, and trimming reads — not a heavyweight workflow platform.
- FASTQ statistics (
stat) — inspect read counts, length distribution, base composition, GC content, and Q20/Q30-style quality metrics. - Filtering and trimming (
filter) — apply length, quality, and N-ratio thresholds, then trim low-quality bases in the same pass. - Pipeline integration — use the CLI directly or embed the public C++ API in larger bioinformatics tools.
- Performance-conscious implementation — zero-copy record views, Intel oneTBB pipelines, and compressed-file workflows where supported.
- Production hygiene — CI, sanitizers, fuzzing, and a maintained docs site.
git clone https://github.com/LessUp/fastq-tools.git
cd fastq-tools
./scripts/core/build
./build/clang-release/FastQTools --help
# Generate a QC report
./build/clang-release/FastQTools stat \
-i sample.fastq.gz \
-o sample.stats.txt
# Filter and trim reads
./build/clang-release/FastQTools filter \
-i sample.fastq.gz \
-o sample.filtered.fastq.gz \
--min-quality 20 \
--min-length 50 \
--trim-quality 20 \
--trim-mode bothFor environment setup, installation notes, and deployment options, start with the Getting Started guide.
Benchmarks below are a maintained point-in-time snapshot for 100K reads (150 bp) on an AMD Ryzen 9 5900X. They are useful for sizing expectations, not as blanket guarantees for every dataset or storage setup.
| Workload | Representative result |
|---|---|
| FASTQ read path | 1696 MB/s |
| FASTQ write path | 1.76M reads/s |
| Combined filtering pass | 1.67M reads/s |
| Full statistics pass | 302 MB/s |
See the benchmark overview for methodology and context.
| If you want to… | Start here |
|---|---|
| Build FastQTools and run your first command | Getting Started |
| Check command syntax and options | CLI Reference |
| Integrate the library into C++ code | API Overview |
| Understand benchmark numbers | Benchmark Overview |
| Contribute docs or code | Contributing |
| Follow project-level changes | Changelog |
- C++23-compatible compiler (GCC 11+ or Clang 12+ minimum)
- CMake 3.28+
- Conan 2.x
- Linux is the primary target; macOS is supported for local development, and Windows users should prefer Docker or WSL.
FastQTools welcomes focused improvements: bug reports, docs fixes, tests, benchmark work, and narrow feature changes.
- Read the contributing guide
- Open issues via GitHub Issues
- Discuss ideas in GitHub Discussions
FastQTools is released under the MIT License.