Skip to content

Conversation

@ewels
Copy link
Member

@ewels ewels commented Dec 18, 2025

Summary

  • Refactors the SAV module to follow MultiQC module development best practices
  • Adds missing required components (add_data_source, add_software_version, write_data_file, ModuleNoSamplesFound)
  • Adds general statistics columns for key metrics
  • Improves code quality with semantic color scales and defensive checks

Test plan

  • Verify multiqc --strict passes on MiSeq test data
  • Verify multiqc --strict passes on NovaSeq6000 test data
  • Verify ruff check passes
  • Verify pre-commit run --all-files passes
Detailed changes

Critical fixes

  • Add ModuleNoSamplesFound exception when no data found
  • Add add_data_source() and add_software_version() calls
  • Add write_data_file() call at end of module init
  • Export SAVModule class from __init__.py

High priority fixes

  • Change anchor from "SAV" to "sav" (lowercase per convention)
  • Add href to Illumina InterOp GitHub repository
  • Improve info string (remove leading -)

Medium priority improvements

  • Add comprehensive class docstring documenting supported sequencers
  • Add scale attributes to all HEADERS entries for semantic coloring
  • Add general stats columns (% >= Q30, Yield, % PF, Error Rate)

Low priority improvements

  • Support multiple sequencing runs (removed single-run limitation)
  • Add defensive checks with .get() defaults in _clusters_lane_plot()
  • Update function type hints to use SAVModule type

🤖 Generated with Claude Code

Apply improvements based on MultiQC module development guidelines:

Critical fixes:
- Add ModuleNoSamplesFound exception when no data found
- Add add_data_source() and add_software_version() calls
- Add write_data_file() call at end of module init
- Export SAVModule class from __init__.py

High priority fixes:
- Change anchor from "SAV" to "sav" (lowercase)
- Add href to Illumina InterOp GitHub repository
- Improve info string (remove leading " - ")

Medium priority improvements:
- Add comprehensive class docstring documenting supported sequencers
- Add scale attributes to all HEADERS entries for semantic coloring
- Add general stats columns (% >= Q30, Yield, % PF, Error Rate)

Low priority improvements:
- Support multiple sequencing runs (removed single-run limitation)
- Add defensive checks with .get() defaults in _clusters_lane_plot()
- Update function type hints to use SAVModule type

Also add multiqc_data* and multiqc_report* to .gitignore.

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

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

ewels commented Dec 18, 2025

See example reports from the actions CI run: https://github.com/MultiQC/MultiQC_SAV/actions/runs/20332832779/artifacts/4909854845

Looks pretty good I think! I haven't taken a detailed look at the code changes, but they look sane.

What do you think @matthdsm ?

@matthdsm
Copy link
Collaborator

Looking good! I see some missing features that were previously there, but we can fix that in another PR.

Copy link
Collaborator

@matthdsm matthdsm left a comment

Choose a reason for hiding this comment

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

Thanks for making quick work of this! ❤️

@ewels ewels merged commit db10349 into main Dec 18, 2025
3 checks passed
@ewels ewels deleted the update-module branch December 18, 2025 10:49
@ewels ewels mentioned this pull request Dec 18, 2025
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