Skip to content

Add meta maps to cellranger ref modules and downstream consumers#12257

Open
nictru wants to merge 5 commits into
nf-core:masterfrom
nictru:cellranger/meta-ref-modules
Open

Add meta maps to cellranger ref modules and downstream consumers#12257
nictru wants to merge 5 commits into
nf-core:masterfrom
nictru:cellranger/meta-ref-modules

Conversation

@nictru

@nictru nictru commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

It's always annoying in pipelines if some modules expect reference files with meta maps, and other ones without. Leads to a lot of map operators to ensure the right channel shape. This PR adds meta map inputs to cellranger modules, that were previously lacking them

nictru added 3 commits July 7, 2026 10:38
Propagate meta through cellranger/mkgtf and cellranger/mkref, update
cellranger/count and cellranger/multi to accept meta-tagged references,
and add an input/output filename collision check to cellranger/mkgtf.

Generated by Composer
Align module test assertions with the newer nf-core pattern for clearer
failures when a process does not complete successfully.

Generated by Composer
@nictru nictru enabled auto-merge July 7, 2026 09:37

@LouisLeNezet LouisLeNezet left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for cleaning it up.
I just have a few comments.
On a broader scale, do you know if the input tuple should be rearranged in bigger tuple ? (see my comment for multi)

Comment thread modules/nf-core/cellranger/count/tests/main.nf.test Outdated
{ assert process.success },
{
assert snapshot(
process.out.versions_cellranger,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

If outs doesn't have too many file, could you use sanitizeOutput(process.out, unstableKeys:["outs"]) instead of this whole assertion ?

assert process.success
assertAll(
{ assert process.success },
{ assert snapshot(process.out).match() }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

You could add sanitizeOutput here also

assert process.success
assertAll(
{ assert process.success },
{ assert snapshot(process.out).match() }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same

assert process.success
assertAll(
{ assert process.success },
{ assert snapshot(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same

test("homo_sapiens - identical input output names - stub") {

options "-stub"
config "./nextflow-collision.config"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please use a common nextflow.config and use params.module_prefix instead.

assertAll(
{ assert process.success },
{ assert snapshot(
path( "${outputDir}/homo_sapiens_reference/fasta" ),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same

assertAll(
{ assert process.success },
{ assert snapshot(
process.out,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same comments

Comment thread modules/nf-core/cellranger/multi/main.nf
nictru added 2 commits July 7, 2026 17:15
Simplify assertions with sanitizeOutput for simple outputs, use versions
topic snapshots with selective file checks for complex modules, and
configure mkgtf collision testing via params.module_prefix.

Generated by Composer
Declare a default module_prefix param so ext.prefix is valid in CI,
where Nextflow 25.10.2 rejects undefined params in process config.

Generated by Composer
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.

2 participants