Skip to content

Fix ordered BatchtoolsParam iteration without reduction - #288

Draft
LeonidasZhak wants to merge 1 commit into
Bioconductor:develfrom
LeonidasZhak:codex/biocparallel-286-reduce-order
Draft

Fix ordered BatchtoolsParam iteration without reduction#288
LeonidasZhak wants to merge 1 commit into
Bioconductor:develfrom
LeonidasZhak:codex/biocparallel-286-reduce-order

Conversation

@LeonidasZhak

Copy link
Copy Markdown

Summary

Allow bpiterate(..., reduce.in.order = TRUE) to return ordered results with BatchtoolsParam when no REDUCE function is supplied.

Thanks to maintainers

Thanks to the BiocParallel maintainers for maintaining the parallel backends and for the guidance in #286.

Issue or motivation

Fixes #286. SerialParam, MulticoreParam, and SnowParam accept this combination, but BatchtoolsParam rejected it before the shared reducer could collect the results.

Root cause

The BatchtoolsParam-specific bpiterate() method unconditionally stopped when REDUCE was missing and reduce.in.order was TRUE. The shared IterateReducer already supports ordered collection without reduction.

Change

Remove that extra rejection and add regression coverage for the multicore and socket Batchtools backends. The existing error for supplying init without REDUCE remains unchanged.

Tests

  • Focused issue regression passed for multicore and socket backends.
  • Full BiocParallel RUnit suite: 110 test functions, 0 errors, 0 failures; 3 environment-specific tests deactivated.
  • R CMD INSTALL: passed.
  • R CMD build --no-build-vignettes: passed.
  • R CMD check --no-examples --no-manual --ignore-vignettes --no-build-vignettes: no errors, with 1 existing WARNING and 3 existing NOTEs.
  • Full examples/vignettes check is not available locally because optional Bioconductor packages including Rsamtools cannot be installed on this R 4.6.1 environment.

Scope

This changes only the BatchtoolsParam bpiterate() guard and its unit tests. It does not change reduction behavior for supplied REDUCE functions, init validation, other backends, or batchtools scheduling.

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.

BatchtoolsParam handles reduce.in.order differently from others

1 participant