Skip to content

feat: add nf-core-compatible bigWig coverage tracks#114

Open
ewels wants to merge 2 commits into
mainfrom
cursor/bigwig-coverage-tracks-09a4
Open

feat: add nf-core-compatible bigWig coverage tracks#114
ewels wants to merge 2 commits into
mainfrom
cursor/bigwig-coverage-tracks-09a4

Conversation

@ewels

@ewels ewels commented Jun 16, 2026

Copy link
Copy Markdown
Member

Summary

Implements genome-wide bigWig coverage tracks in the existing rustqc rna BAM streaming pass, matching nf-core/rnaseq parameters (bedtools genomecov -split, optional -du/ -strand, UCSC bedClip semantics).

Closes #112.

Changes

  • New src/rna/bigwig/ module: coverage accumulation, bedGraph clipping, bigWig writing via bigtools
  • Integrated into count_reads() read loop and main.rs output under bigwig/
  • Config toggle: rna.bigwig.enabled (default true)
  • Integration tests compare decoded bedGraph intervals against bedtools + UCSC reference
  • Documentation updates across the docs site, README, AGENTS.md, and related markdown

Output files

  • {sample}.bigWig — combined track (all libraries)
  • {sample}.forward.bigWig / {sample}.reverse.bigWig — per-strand tracks (stranded libraries only)

Validation

  • Decoded coverage intervals match bedtools genomecov v2.31.1 exactly (738/738 intervals in integration tests)
  • Binary .bigWig files are not bit-identical to UCSC bedGraphToBigWig (different encoder), but decode to the same coverage
  • Empty per-strand tracks are skipped (no stub file written)

Follow-ups

  • RustQC-benchmarks nf-test for bigWig cross-check
  • Optional: UCSC bedGraphToBigWig subprocess for bit-identical binaries if required

cursoragent and others added 2 commits June 16, 2026 11:08
Implement bedtools genomecov-equivalent coverage accumulation in the
existing BAM streaming pass and write bigWig files via bigtools.

Produces nf-core/rnaseq-compatible outputs:
- {sample}.bigWig (combined, -split -bg)
- {sample}.forward/reverse.bigWig for stranded libraries (-split -du -strand)

Validated against bedtools genomecov + UCSC bedClip/bedGraphToBigWig in
integration tests.

Co-authored-by: Phil Ewels <phil.ewels@seqera.io>
Add a dedicated bigWig docs page and update README, AGENTS.md,
CONTRIBUTING.md, getting-started guides, credits, CLI/config references,
benchmark details, and library doc comments to describe nf-core/rnaseq-
compatible genome coverage track output.

Co-authored-by: Phil Ewels <phil.ewels@seqera.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature request: Generate coverage tracks

2 participants