Skip to content

Merge method variants into parameterised components - #142

Open
rcannood wants to merge 7 commits into
mainfrom
paramsets
Open

Merge method variants into parameterised components#142
rcannood wants to merge 7 commits into
mainfrom
paramsets

Conversation

@rcannood

@rcannood rcannood commented Sep 2, 2026

Copy link
Copy Markdown
Member

Describe your changes

Merges the 16 method variant components into 4 parameterised components, and makes run_benchmark paramset-aware as per the results_v4 schema.

  • methods/cycombine, methods/cytonorm (--controls, --target), methods/batchadjust (--controls) and methods/rpca (--target) replace the *_all_controls*/*_no_controls*/*_one_control*/*_to_goal/*_to_mid variants. The scripts are call-for-call identical to the old variants (verified bit-identical outputs).
  • Each component declares its parameter sets as info.variants. run_benchmark runs each parameterised method once per paramset and tags every score with paramset_name/paramset (null for non-parameterised methods), matching common/schemas/results_v4/results.json.
  • The paramsets can be overridden with a new optional --paramsets yaml file argument; a method without info.variants is run once with its default parameter set.
  • --methods_include/--methods_exclude can now also target a single paramset as <method_id>.<paramset_name>.
  • Paramset helper functions live in src/workflows/run_benchmark/paramset_helper.nf.

Verified via viash test on all four components, standalone runs of every non-default branch, and full local run_benchmark runs on the test resources -- both with the default info.variants and with a custom --paramsets file.

Note: cycombine.no_controls_to_goal and cycombine.one_control_to_goal misbehave on the test dataset (ComBat crash / NaNs). This is pre-existing behaviour of the old variant components, unrelated to this PR.

Checklist before requesting a review

  • I have performed a self-review of my code

  • Check the correct box. Does this PR contain:

    • Breaking changes
    • New functionality
    • Major changes
    • Minor changes
    • Bug fixes
  • Proposed changes are described in the CHANGELOG.md

  • CI Tests succeed and look good!

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.

1 participant