Skip to content

Conversation

@pinin4fjords
Copy link
Member

Summary

  • Add ribowaltz_to_mqc.py script to transform riboWaltz TSV outputs to MultiQC custom content format
  • Create local RIBOWALTZ_MQC module and RIBOWALTZ_QC subworkflow to encapsulate riboWaltz logic
  • Update riboWaltz nf-core module to export underlying data as TSV for all QC plots
  • Configure publishDir for riboWaltz outputs (QC to riboseq_qc/, coverage to other/)

The MultiQC integration includes:

  • P-site region distribution bar chart with RNA-seq reference
  • Reading frame distribution grouped by transcript region
  • Metaprofile line graphs for start and stop codons

Test plan

  • Run pipeline with riboWaltz enabled and verify MultiQC report contains riboWaltz section
  • Verify all 4 plots render correctly (psite_regions, frames, metaprofile_start, metaprofile_stop)
  • Check publishDir outputs are organised correctly

🤖 Generated with Claude Code

- Add ribowaltz_to_mqc.py script to transform riboWaltz TSV outputs to
  MultiQC custom content format (psite regions, frames, metaprofiles)
- Create local RIBOWALTZ_MQC module to run the transform script
- Create RIBOWALTZ_QC local subworkflow to encapsulate riboWaltz logic
- Update riboWaltz module to export underlying data as TSV for all QC plots
- Add riboWaltz to MultiQC top_modules for proper section ordering
- Configure publishDir for riboWaltz outputs (QC to riboseq_qc/, coverage to other/)

The MultiQC integration includes:
- P-site region distribution bar chart with RNA-seq reference
- Reading frame distribution grouped by transcript region
- Metaprofile line graphs for start and stop codons

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@github-actions
Copy link

github-actions bot commented Dec 19, 2025

nf-core pipelines lint overall result: Passed ✅ ⚠️

Posted for pipeline commit f1b4db5

+| ✅ 257 tests passed       |+
#| ❔   6 tests were ignored |#
!| ❗   5 tests had warnings |!
Details

❗ Test warnings:

  • pipeline_todos - TODO string in main.nf: Optionally add in-text citation tools to this list.
  • pipeline_todos - TODO string in main.nf: Optionally add bibliographic entries to this list.
  • pipeline_todos - TODO string in main.nf: Only uncomment below if logic in toolCitationText/toolBibliographyText has been filled!
  • pipeline_if_empty_null - ifEmpty(null) found in /home/runner/work/riboseq/riboseq/subworkflows/local/prepare_genome/main.nf: _ versions = ch_versions.ifEmpty(null) // channel: [ versions.yml ]
    _
  • schema_lint - Input mimetype is missing or empty

❔ Tests ignored:

  • nextflow_config - Config default ignored: params.ribo_database_manifest
  • nf_test_content - nf_test_content
  • files_unchanged - File ignored due to lint config: assets/nf-core-riboseq_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-riboseq_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-riboseq_logo_dark.png
  • files_unchanged - File ignored due to lint config: .gitignore or .prettierignore

✅ Tests passed:

Run details

  • nf-core/tools version 3.5.1
  • Run at 2026-01-05 14:20:12

Replace top_modules with numeric report_section_order to properly
control the position of riboWaltz and other custom content sections
in the MultiQC report.
Add report_section_order entries for preprocessing, alignment, and
post-alignment QC sections so riboWaltz appears in the correct
position (after alignment stats, before downstream analysis).
Add anchor properties to FastQC entries so they can be referenced
by fastqc_raw and fastqc_trimmed in report_section_order.
@pinin4fjords
Copy link
Member Author

Example: multiqc_report.html

@iraiosub iraiosub self-requested a review January 4, 2026 21:03
Copy link
Contributor

@iraiosub iraiosub left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - the multiQC report looks very neat! Feel free to merge after tests pass.

pinin4fjords and others added 6 commits January 5, 2026 11:56
Simplify channel operations by using a single branch operator instead
of three separate map/flatten/filter chains.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Extract common constants (PARENT_ID, PARENT_NAME, PARENT_DESC, REGIONS)
- Add read_tsv_files() generator for DRY file reading
- Add print_bargraph_header() helper for repeated YAML output
- Simplify transform_metaprofile() using string formatting
- Use dispatch dict instead of if/elif chain

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
The ribowaltz PDFs are published to riboseq_qc/ribowaltz/, not ribowaltz/.
This covers both offset_plot/ and ribowaltz_qc/ subdirectories.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
PDF files are non-deterministic and should not be checksummed.
The .nftignore already excludes them from future snapshots.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@pinin4fjords
Copy link
Member Author

I'm closing this for now, we're going to make it a MultiQC plugin and avoid the complexity caused by the custom content

@iraiosub
Copy link
Contributor

iraiosub commented Jan 9, 2026

that sounds great!

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.

3 participants