Skip to content

Latest commit

 

History

History
112 lines (87 loc) · 4.95 KB

File metadata and controls

112 lines (87 loc) · 4.95 KB

FastQTools

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.

CI Status Docs Status GitHub Release License: MIT C++23 GitHub Discussions

English简体中文DocumentationReleases


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.

What it is good at

  • 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.

Quick start

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 both

For environment setup, installation notes, and deployment options, start with the Getting Started guide.

Representative performance

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.

Documentation map

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

Build requirements

  • 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.

Contributing

FastQTools welcomes focused improvements: bug reports, docs fixes, tests, benchmark work, and narrow feature changes.

License

FastQTools is released under the MIT License.