moonbit-fastq-qc

Streaming FASTQ quality control for MoonBit Native

moonbit
fastq
bioinformatics
quality-control
moon add zkc-long/moonbit-fastq-qc@0.1.1
Download zip
Author
Version
0.1.1
License
Apache-2.0
Last updated
5 hours ago
Downloads
5
README

#moonbit-fastq-qc

moonbit-fastq-qc is a MoonBit Native toolkit for validating FASTQ data, measuring read quality, and preparing reads for local analysis pipelines. It accepts plain FASTQ and FASTQ.GZ input and writes deterministic JSON and standalone HTML reports.

#Capabilities

  • FASTQ structure, DNA alphabet, sequence/quality length, and truncation checks
  • Phred+33 and Phred+64 quality handling
  • Read length, GC, N content, per-position quality, duplication, and adapter metrics
  • Optional length, quality, N-count, and N-ratio filtering
  • Adapter, fixed-length, and low-quality-tail trimming
  • Paired-end name, duplicate, and length consistency checks
  • Native gzip input through the bundled zlib adapter
  • Versioned JSON output and offline HTML output

The repository contains synthetic fixtures only. It does not contain clinical, patient, or production sequencing data.

#Quick start

moon run --target native cmd/fastq_qc -- fixtures/basic.fastq \ --phred-offset 33 \ --adapter-file fixtures/adapters.txt \ --json _build/report.json \ --html _build/report.html

Gzip input uses the same command with fixtures/basic.fastq.gz. The JSON report is the machine-readable contract; HTML embeds the same report and does not request network resources.

#Library layout

fastq/ validated record model and parser metrics/ quality, length, GC, and N statistics contamination/ adapter and duplicate analysis pipeline/ deterministic filtering and trimming paired/ paired-end consistency checks report/ versioned JSON and standalone HTML renderers native/gzip/ Native gzip bridge and its third-party notices cmd/fastq_qc/ command-line wiring and file I/O fixtures/ synthetic, checksummed examples scripts/ reproducible source-scale and benchmark commands docs/ validation notes and fixture documentation

#Development

Install the current stable MoonBit toolchain using the official installer, then run:

moon fmt --check moon check --deny-warn moon info git diff --exit-code moon test --deny-warn moon test --target native --deny-warn

For a transparent source-size breakdown on Windows:

powershell -ExecutionPolicy Bypass -File scripts/source_scale.ps1

The script reports project MoonBit production/test lines, project-owned Native lines, and bundled third-party zlib lines separately. Generated _build files, interface files, documentation, and third-party code are not silently mixed into the MoonBit total.

#Reproducibility and limitations

Fixtures and their hashes are documented in fixtures/README.md. The validation matrix and observed local measurements are recorded in docs/validation.md. Benchmark numbers are machine- and toolchain-dependent observations, not performance guarantees.

This project is intentionally smaller than a full FastQC replacement. It does not provide remote input, clinical interpretation, complete FastQC module compatibility, or automatic repair of inconsistent paired-end data.

#License

The project is licensed under Apache-2.0. The bundled zlib source and notices are documented in THIRD_PARTY_NOTICES.md.

#
schema_version

fn schema_version() -> Int

Returns the current JSON report schema version.

Source Files

Powered by MoonBit

Site sourceReport issuePackagesBuild queueSkillsStatistics

© 2026 mooncakes.io