Skip to content

Add Tensor-cell2cell and improve DE volcano plots - #307

Merged
nictru merged 8 commits into
devfrom
cell2cell
Jul 29, 2026
Merged

Add Tensor-cell2cell and improve DE volcano plots#307
nictru merged 8 commits into
devfrom
cell2cell

Conversation

@nictru

@nictru nictru commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add opt-in Tensor-cell2cell: by-sample LIANA (liana/bysample) then tensor factorisation and sender-receiver loadings-product heatmaps (cell2cell/tensor), wired through PER_GROUP when --cell2cell true.
  • Improve DE volcano plots: tighten gene labels (significant interesting genes when provided, otherwise top significant), add adjustText, and collapse two-group Scanpy one-vs-rest panels into a single {A} vs {B} volcano.
  • Fix CyteType and ADATA_EXTEND h5ad writes failing on pandas nullable string dtypes with AnnData 0.12.
  • Fix interesting_genes path staging and Cell2cell MultiQC factor titles.

Test plan

  • nf-test for modules/local/liana/bysample, modules/local/cell2cell/tensor, and subworkflows/local/per_group (cell2cell path)
  • Manual/resume run with --cell2cell true and --interesting_genes
  • Confirm two-condition Scanpy volcanoes show a single A vs B panel
  • Confirm CyteType / ADATA_EXTEND write h5ad successfully after annotation merge

Generated by Cursor Grok 4.5

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 pipeline conventions in the contribution docs
  • If necessary, also make a PR on the nf-core/scdownstream branch on the nf-core/test-datasets repository.
  • 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>).
  • Usage Documentation in docs/usage.md is updated.
  • Output Documentation in docs/output.md is updated.
  • CHANGELOG.md is updated.
  • README.md is updated (including new tool citations and authors/contributors).

nictru added 4 commits July 29, 2026 17:43
Enable opt-in tensor factorisation of donor-level LIANA scores with
loadings plots, MultiQC embedding, and PROGENy enrichment.

Generated by Cursor Grok 4.5
Resolve --interesting_genes with file() so DE modules receive a path,
and interpolate factor names into Cell2cell MultiQC section headings.

Generated by Cursor Grok 4.5
AnnData 0.12 rejects pandas StringDtype indexes/columns unless
allow_write_nullable_strings is enabled; cast obs and opt in before write.

Generated by Cursor Grok 4.5
Label at most the top 10 significant interesting genes when a list is
provided, otherwise the top 10 significant genes, and use adjustText.
For Scanpy comparisons with exactly two groups, show a single A vs B
volcano instead of mirrored vs-rest panels.

Generated by Cursor Grok 4.5
@github-actions

Copy link
Copy Markdown

Warning

Newer version of the nf-core template is available.

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

For more documentation on how to update your pipeline, please see the Synchronisation documentation.

@github-actions

github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown

nf-core pipelines lint overall result: Passed ✅ ⚠️

Posted for pipeline commit 93c2432

+| ✅ 318 tests passed       |+
#| ❔   3 tests were ignored |#
!| ❗  15 tests had warnings |!
Details

❗ Test warnings:

  • files_exist - File not found: conf/igenomes.config
  • files_exist - File not found: conf/igenomes_ignored.config
  • readme - README contains the placeholder zenodo.XXXXXXX. This should be replaced with the zenodo doi (after the first release).
  • pipeline_todos - TODO string in nextflow.config: Optionally, you can add a pipeline-specific nf-core config at https://github.com/nf-core/configs
  • pipeline_todos - TODO string in README.md: Add citation for pipeline after first release. Uncomment lines below and update Zenodo doi and badge at the top of this file.
  • pipeline_todos - TODO string in README.md: Add bibliography of tools and data used in your pipeline
  • pipeline_todos - TODO string in awsfulltest.yml: You can customise AWS full pipeline tests as required
  • pipeline_todos - TODO string in nextflow.config: Specify any additional parameters here
  • pipeline_todos - TODO string in main.nf: Optionally add in-text citation tools to this list.
  • pipeline_todos - TODO string in main.nf: Optionally add bibliographic entries to this list.
  • pipeline_todos - TODO string in main.nf: Only uncomment below if logic in toolCitationText/toolBibliographyText has been filled!
  • pipeline_todos - TODO string in CONTRIBUTING.md: Add any pipeline specific contribution guidelines here, such as coding styles, procedures, checklists etc.
  • pipeline_todos - TODO string in base.config: Check the defaults for all processes
  • pipeline_todos - TODO string in base.config: Customise requirements for specific processes.
  • pipeline_todos - TODO string in methods_description_template.yml: #Update the HTML below to your preferred methods description, e.g. add publication citation for this pipeline

❔ Tests ignored:

  • files_exist - File is ignored: .github/workflows/linting_comment.yml
  • files_unchanged - File ignored due to lint config: .github/workflows/branch.yml
  • files_unchanged - File ignored due to lint config: .github/workflows/linting.yml

✅ Tests passed:

Run details

  • nf-core/tools version 4.0.3
  • Run at 2026-07-29 20:34:30

nictru added 4 commits July 29, 2026 20:03
Use container= in containers_conda_lock_files configs so
nf-core pipelines lint container_configs passes.

Generated by Cursor Grok 4.5
Merged AnnData can carry pandas StringDtype indexes from scanpy
rank_genes_groups pts tables; opt in before writing cellxgene h5ad.

Generated by Cursor Grok 4.5
Rewrite string indexes as CategoricalIndex in rankgenesgroups and
cytetype so newer anndata encodings remain readable by nft-anndata,
and keep allow_write_nullable_strings as a write safety net in
extend/prepcellxgene.

Generated by Cursor Grok 4.5
Regenerate module, subworkflow, and pipeline snapshots via nftu to
match CategoricalIndex sanitisation and package versions.

Generated by Cursor Grok 4.5
@nictru
nictru merged commit 68a94e3 into dev Jul 29, 2026
4 checks passed
@nictru
nictru deleted the cell2cell branch July 29, 2026 20:35
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