Skip to content

Fix: Update Cellranger/multi to reinclude functionality from previous PR update#12152

Open
mahesh-panchal wants to merge 4 commits into
masterfrom
fix/cellranger-multi
Open

Fix: Update Cellranger/multi to reinclude functionality from previous PR update#12152
mahesh-panchal wants to merge 4 commits into
masterfrom
fix/cellranger-multi

Conversation

@mahesh-panchal

Copy link
Copy Markdown
Member

Description

Related to #11066 . Adds back in functionality from the python template that was accidentally dropped.

  • Adds options for all input types
  • Explicitly tests for certain keys.

PR checklist

  • This comment contains a description of changes (with reason).
  • If you've fixed a bug or added code that should be tested, add tests!
  • If you've added a new tool - have you followed the module conventions in the contribution docs
  • If necessary, include test data in your PR.
  • Remove all TODO statements.
  • Broadcast software version numbers to topic: versions - See version_topics
  • Follow the naming conventions.
  • Follow the parameters requirements.
  • Follow the input/output options guidelines.
  • Add a resource label
  • Use BioConda and BioContainers if possible to fulfil software requirements.
  • Ensure that the test works with either Docker / Singularity. Conda CI tests can be quite flaky:
    • For modules:
      • nf-core modules test <MODULE> --profile docker
      • nf-core modules test <MODULE> --profile singularity
      • nf-core modules test <MODULE> --profile conda
    • For subworkflows:
      • nf-core subworkflows test <SUBWORKFLOW> --profile docker
      • nf-core subworkflows test <SUBWORKFLOW> --profile singularity
      • nf-core subworkflows test <SUBWORKFLOW> --profile conda

@mahesh-panchal mahesh-panchal marked this pull request as ready for review June 23, 2026 15:30
@mahesh-panchal

Copy link
Copy Markdown
Member Author

@leandrotiburske @fmalmeida The PR is ready and I think I have the flags in, but please check. From today I won't be near a computer to make updates so I made this branch on nf-core modules where you can both push/pull your own changes onto this branch.

The tests on this module look like they really need updating as well, but that's perhaps outside the scope. I leave this up to you both now.

@mahesh-panchal mahesh-panchal requested a review from fmalmeida June 23, 2026 15:36
@mahesh-panchal

Copy link
Copy Markdown
Member Author

This PR should remove the old python template too since it's redundant.

@fmalmeida

fmalmeida commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Hi @leandrotiburske,

Do you think you can take over from here to do the final amendments?

As @mahesh-panchal mentioned, the try is to move all the logic into the module itself.

So, could you double check if all the functionality from before is now there so to remove the template script?

As Mahesh, I am also not fluent in this tool, I had only helped out on the code but someone else was assessing the results ... so I believe it would be really good if someone that knows how the results should be could take a closer look.

I am on holidays until next Wednesday and I only have a phone, so I cannot help with the code until there but I can help with comments and review.

@fmalmeida

fmalmeida commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

@nictru ;

You think you can help with this one? Not sure how much understanding of the data itself and how it should you have, but if you can, it would be lovely to have cellrangermulti fixed to bring it back to scrnaseq updated :)

It relates to #11066

@nictru nictru 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.

Some minor comments
Also: The python script is not being removed by this PR so far

def create_bam = gex_has_opts.containsKey("create-bam") ? gex_has_opts["create-bam"] : "true"
gex_section << "create-bam,${create_bam}"
// create-bam defaults to true if not specified
gex_section << "create-bam,${gex_options?.get('create-bam') ?: 'true'}"

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 gex_options?.get('create-bam') returns boolean false, then string true will be used here. Is this something that could become a real problem? Or can one be sure that gex_options?.get('create-bam') will always return a string 'false'?

if [ "${skip_renaming}" = "true" ]; then
r1=\$(find "\${r1_dir}" -maxdepth 1 -name "*.fastq.gz" | head -1)
r2=\$(find "\${r2_dir}" -maxdepth 1 -name "*.fastq.gz" | head -1)
[ -z "\${r1}" ] || [ -z "\${r2}" ] && continue

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.

From what I can see the old version raised an AssertionError on mismatch, here we skip silently

@fmalmeida

Copy link
Copy Markdown
Contributor

Some minor comments
Also: The python script is not being removed by this PR so far

@nictru

Yeah. I don't think it is ready yet. It still has things to be done, as with the script you mentioned.

Tagged you because it would be really good to have a review of someone that understands the underlying data better than me.

Once I am back from holidays I can give it a check to try to finish it if not progressed until then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants