Skip to content

Conversation

sminot
Copy link

@sminot sminot commented Aug 1, 2025

While using this pipeline to analyze some SmartSeq data, I ran into a couple of issues that needed to be addressed. This PR contains fixes for a small number of minor issues:

  • When running the STARsolo tool, account for the case where no whitelist file is provided
  • If the SmartSeq protocol is used, set soloUMIdedup to NoDedup
  • If only 1 cell is detected, skip the Seurat conversion (since that is a documented limitation of Seurat)
  • When running the STARsolo tool, account for case where no reads pass filtering

PR checklist

  • This comment contains a description of changes (with reason).
  • Make sure your code lints (nf-core pipelines lint).
  • Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
  • Check for unexpected warnings in debug mode (nextflow run . -profile debug,test,docker --outdir <OUTDIR>).
  • CHANGELOG.md is updated.

@nf-core-bot
Copy link
Member

Warning

Newer version of the nf-core template is available.

Your pipeline is using an old version of the nf-core template: 3.2.0.
Please update your pipeline to the latest version.

For more documentation on how to update your pipeline, please see the nf-core documentation and Synchronisation documentation.

@grst
Copy link
Member

grst commented Aug 4, 2025

Hi @sminot,

thanks for the PR! SmartSeq support has been frequently requested and until now we suggested to use nf-core/rnaseq instead, but I can see how the AnnData/Seurat conversion etc. is useful.

is this for SmartSeq2 specifically? Because I think SmartSeq3 also requires UMI deduplication.

@sminot
Copy link
Author

sminot commented Aug 4, 2025

Hi @grst,

Yes, the debugging I did here was on a SmartSeq2 dataset. But hopefully the modifications are still useful even if users provide the appropriate parameters for SmartSeq3 data as well?

@sminot sminot enabled auto-merge August 4, 2025 18:33
Comment on lines +79 to +81
if [[ "$protocol" == "SmartSeq" ]]; then
echo "SmartSeq protocol detected, setting --soloUMIdedup to NoDedup." >&2
soloUMIdedupArg="--soloUMIdedup NoDedup"
Copy link
Member

Choose a reason for hiding this comment

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

But hopefully the modifications are still useful even if users provide the appropriate parameters for SmartSeq3 data as well?

I was specifically refering to this statement. For SmartSeq3 UMI deduplication should be enabled.

Copy link
Author

Choose a reason for hiding this comment

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

My apologies, I should have realized that. I agree that the UMI deduplication should be able to enabled by the user. I will leave it to you whether that should be done by setting the protocol param (differentiating SmartSeq2 and SmartSeq3), or simply letting the UMI deduplication be a separate parameter. I can implement if you advise on your preferred approach.

@grst
Copy link
Member

grst commented Aug 5, 2025

PR #488 has additionally just appeared, which tries to achieve something similar. I have to think how to harmonize them.

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.

4 participants