Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
da8897d
Remove unused config reference
fasterius Jan 20, 2026
a1fac55
Add versions topic to local template-based modules
fasterius Jan 29, 2026
59c8a7e
Migrate HUGOUNIFIER modules to topics
fasterius Jan 30, 2026
4624d59
Merge branch 'dev' into topics
fasterius Mar 3, 2026
9bbd692
Update changelog
fasterius Mar 17, 2026
d5f976f
Remove sample name from singleR column names
fasterius Feb 12, 2026
a04e60a
Update snapshots
fasterius Mar 2, 2026
73c5bcd
Update snapshots
fasterius Mar 3, 2026
5adfdc1
Revert "Update snapshots"
fasterius Mar 4, 2026
4f7d3d5
Revert "Update snapshots"
fasterius Mar 4, 2026
ec7d219
Update snapshots
nictru Mar 10, 2026
4a726c6
Update remaining subworkflow tests
nictru Mar 10, 2026
10256df
Set codeowners
nictru Mar 11, 2026
e3b73b2
main changes to implement cell cycle scoring; also added --species pa…
tlebchan Mar 12, 2026
19fcf2a
corrected modules config
tlebchan Mar 12, 2026
2d781e2
incorporated ch_obs_per_sample into QUALITY_CONTROL subworkflow, as N…
tlebchan Mar 13, 2026
805451d
Corrected tests and updated snapshots
tlebchan Mar 13, 2026
1bfeae7
added emmition of h5ad from SCANPY_CELLCYCLE
tlebchan Mar 13, 2026
cb6c1c2
Filled in the documentation
tlebchan Mar 13, 2026
8ba370d
Increase maximum size for future globals in integration script
EZUY Mar 12, 2026
81c64ff
Abandon snapshot-based tests for hugo-unifier
nictru Mar 12, 2026
b572724
fix(singler): pass task cpus to SingleR num.threads
Mar 12, 2026
f353a15
refactor(ambient_correction): remove cellbender support and update sc…
EZUY Mar 12, 2026
a6d0319
Revert "refactor(ambient_correction): remove cellbender support and u…
EZUY Mar 12, 2026
d4a44ee
fixed python version for conda tests
tlebchan Mar 13, 2026
a7312b0
snaps for all regarding tests
tlebchan Mar 13, 2026
4b0f0c4
Migrate to anndataR for adata_tords
nictru Mar 14, 2026
083c4c3
Update counts_layer usage
nictru Mar 14, 2026
afc562c
Update finalize test snapshot
nictru Mar 14, 2026
1467c76
Remove unused import
nictru Mar 14, 2026
dee3324
Update pipeline-level test snapshots
nictru Mar 14, 2026
d9beea3
Fix environment.yml
nictru Mar 14, 2026
79dbc9d
Don't export versions in stub
fasterius Mar 17, 2026
01a52eb
Add missing module `versions` topic
fasterius Mar 17, 2026
1451ab2
Update nf-core modules/subworkflow for topics
fasterius Mar 17, 2026
99ef400
Merge branch 'dev' into topics
fasterius Mar 17, 2026
de71b44
Fix local copy of anndata/getsize module
fasterius Mar 17, 2026
1f1d849
Merge branch 'dev' into topics
fasterius Apr 1, 2026
1c74dc6
Update snapshots
fasterius Apr 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Initial release of nf-core/scdownstream, created with the [nf-core](https://nf-c

### `Added`

- Use topics for software versioning [[#252](https://github.com/nf-core/scdownstream/pull/252)]
- Added `singleR` module for automated cell type annotation.

### `Fixed`
Expand Down
3 changes: 2 additions & 1 deletion modules.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
"cellbender/merge": {
"branch": "master",
"git_sha": "380cb90926b8c28558cb11479da5ff45bc4f1c5d",
"installed_by": ["modules"]
"installed_by": ["modules"],
"patch": "modules/nf-core/cellbender/merge/cellbender-merge.diff"
},
"cellbender/removebackground": {
"branch": "master",
Expand Down
2 changes: 1 addition & 1 deletion modules/local/adata/entropy/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ process ADATA_ENTROPY {
path "${prefix}.pkl" , emit: obs
path "${prefix}.png" , emit: plots, optional: true
path "${prefix}_mqc.json" , emit: multiqc_files, optional: true
path "versions.yml" , emit: versions
path "versions.yml" , emit: versions, topic: versions

script:
prefix = task.ext.prefix ?: "${meta.id}_entropy"
Expand Down
4 changes: 2 additions & 2 deletions modules/local/adata/extend/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ process ADATA_EXTEND {

output:
tuple val(meta), path("*.h5ad"), emit: h5ad
tuple val(meta), path("*.csv"), emit: metadata
path "versions.yml", emit: versions
tuple val(meta), path("*.csv") , emit: metadata
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/adata/merge/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ process ADATA_MERGE {
tuple val(meta), path("*_inner.h5ad") , emit: inner
tuple val(meta), path("*_integrate.h5ad"), emit: integrate
path "gene_intersection.pkl" , emit: intersect_genes
path "versions.yml" , emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
6 changes: 3 additions & 3 deletions modules/local/adata/mergeembeddings/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ process ADATA_MERGEEMBEDDINGS {

output:
tuple val(meta), path("${prefix}.h5ad"), emit: h5ad
path ("${prefix}.pkl"), emit: obs, optional: true
path ("X_${prefix}.pkl"), emit: obsm
path "versions.yml", emit: versions
path ("${prefix}.pkl") , emit: obs, optional: true
path ("X_${prefix}.pkl") , emit: obsm
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/adata/mygene/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ process ADATA_MYGENE {

output:
tuple val(meta), path("*.h5ad"), emit: h5ad
path "versions.yml" , emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/adata/prepcellxgene/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ process ADATA_PREPCELLXGENE {

output:
tuple val(meta), path("*.h5ad"), emit: h5ad
path "versions.yml", emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/adata/readcsv/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ process ADATA_READCSV {

output:
tuple val(meta), path("*.h5ad"), emit: h5ad
path "versions.yml", emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/adata/readrds/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ process ADATA_READRDS {

output:
tuple val(meta), path("*.h5ad"), emit: h5ad
path "versions.yml" , emit: versions
path "versions.yml" , emit: versions, topic: versions

script:
prefix = task.ext.prefix ?: "${meta.id}"
Expand Down
2 changes: 1 addition & 1 deletion modules/local/adata/setindex/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ process ADATA_SETINDEX {

output:
tuple val(meta), path("${prefix}.h5ad"), emit: h5ad
path "versions.yml", emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/adata/splitcol/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ process ADATA_SPLITCOL {

output:
tuple val(meta), path("*.h5ad"), emit: h5ad
path "versions.yml", emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/adata/splitembeddings/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ process ADATA_SPLITEMBEDDINGS {

output:
tuple val(meta), path("*.h5ad"), emit: h5ad
path "versions.yml", emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/adata/tords/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ process ADATA_TORDS {

output:
tuple val(meta), path("*.rds"), emit: rds
path "versions.yml" , emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/adata/unify/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ process ADATA_UNIFY {

output:
tuple val(meta), path("*.h5ad"), emit: h5ad
path "versions.yml", emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
4 changes: 2 additions & 2 deletions modules/local/adata/upsetgenes/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ process ADATA_UPSETGENES {

output:
tuple val(meta), path("*.png"), emit: plot, optional: true
path ("*_mqc.json"), emit: multiqc_files, optional: true
path "versions.yml", emit: versions
path ("*_mqc.json") , emit: multiqc_files, optional: true
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/celda/decontx/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ process CELDA_DECONTX {

output:
tuple val(meta), path("${prefix}.h5ad"), emit: h5ad
path "versions.yml" , emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/celldex/fetchreference/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ process CELLDEX_FETCHREFERENCE {

output:
tuple val(meta), path("${prefix}.tar"), emit: tar
path "versions.yml", emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
4 changes: 2 additions & 2 deletions modules/local/celltypes/celltypist/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ process CELLTYPES_CELLTYPIST {

output:
tuple val(meta), path("*.h5ad"), emit: h5ad
tuple val(meta), path("*.pkl"), emit: obs
path "versions.yml", emit: versions
tuple val(meta), path("*.pkl") , emit: obs
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/celltypes/singler/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ process CELLTYPES_SINGLER {
tuple val(meta), path("*.csv") , emit: obs
tuple val(meta), path("*_distribution.pdf"), emit: distribution
tuple val(meta), path("*_heatmap.pdf") , emit: heatmap
path "versions.yml" , emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
2 changes: 1 addition & 1 deletion modules/local/custom/collectsizes/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ process CUSTOM_COLLECTSIZES {
output:
tuple val(meta), path("*.tsv"), emit: tsv
path("*_mqc.json") , emit: multiqc_files
path "versions.yml" , emit: versions
path "versions.yml" , emit: versions, topic: versions

script:
prefix = task.ext.prefix ?: "${meta.id}"
Expand Down
2 changes: 1 addition & 1 deletion modules/local/doublet_detection/doublet_removal/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ process DOUBLET_REMOVAL {
output:
tuple val(meta), path("*.h5ad"), emit: h5ad
path("*_mqc.json") , emit: multiqc_files, optional: true
path "versions.yml" , emit: versions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
4 changes: 2 additions & 2 deletions modules/local/doublet_detection/scds/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ process SCDS {

output:
tuple val(meta), path("${prefix}.h5ad"), emit: h5ad
tuple val(meta), path("${prefix}.csv"), emit: predictions
path "versions.yml", emit: versions
tuple val(meta), path("${prefix}.csv") , emit: predictions
path "versions.yml" , emit: versions, topic: versions

when:
task.ext.when == null || task.ext.when
Expand Down
8 changes: 1 addition & 7 deletions modules/local/hugounifier/apply/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,17 @@ process HUGOUNIFIER_APPLY {

output:
tuple val(meta), path("${prefix}.h5ad"), emit: h5ad
path ("versions.yml") , emit: versions
tuple val("${task.process}"), val('hugo-unifier'), eval('hugo-unifier --version | grep -oP "(?<=version )[\\d.]+"'), emit: versions_hugo_unifier, topic: versions

script:
prefix = task.ext.prefix ?: meta.id
"""
hugo-unifier apply -i ${h5ad} -c ${changes} -o ${prefix}.h5ad

cat <<-END_VERSIONS > versions.yml
"${task.process}":
hugo-unifier: \$(hugo-unifier --version | grep -oP '(?<=version )[\\d.]+')
END_VERSIONS
"""

stub:
prefix = task.ext.prefix ?: meta.id
"""
touch ${prefix}.h5ad
touch versions.yml
"""
}
2 changes: 1 addition & 1 deletion modules/local/hugounifier/apply/tests/main.nf.test
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ nextflow_process {
assert obs.rownames.size() > 0
}
assert snapshot(
path(process.out.versions[0]).yaml,
process.out.versions,
adata.yaml
).match()
}
Expand Down
32 changes: 18 additions & 14 deletions modules/local/hugounifier/apply/tests/main.nf.test.snap
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,11 @@
]
],
"1": [
"versions.yml:md5,d41d8cd98f00b204e9800998ecf8427e"
[
"HUGOUNIFIER_APPLY",
"hugo-unifier",
"0.3.1"
]
],
"h5ad": [
[
Expand All @@ -21,24 +25,24 @@
"test_hugounifier.h5ad:md5,d41d8cd98f00b204e9800998ecf8427e"
]
],
"versions": [
"versions.yml:md5,d41d8cd98f00b204e9800998ecf8427e"
"versions_hugo_unifier": [
[
"HUGOUNIFIER_APPLY",
"hugo-unifier",
"0.3.1"
]
]
}
],
"timestamp": "2026-01-10T23:17:20.422385507",
"timestamp": "2026-04-01T21:30:55.233019",
"meta": {
"nf-test": "0.9.2",
"nextflow": "25.04.6"
"nf-test": "0.9.5",
"nextflow": "25.10.4"
}
},
"Should run without failures": {
"content": [
{
"HUGOUNIFIER_APPLY": {
"hugo-unifier": "0.3.1"
}
},
null,
{
"n_obs": 12940,
"n_vars": 9887,
Expand Down Expand Up @@ -74,10 +78,10 @@
]
}
],
"timestamp": "2026-03-29T14:29:56.746430632",
"timestamp": "2026-04-01T21:30:42.63053",
"meta": {
"nf-test": "0.9.4",
"nextflow": "25.10.2"
"nf-test": "0.9.5",
"nextflow": "25.10.4"
}
}
}
9 changes: 1 addition & 8 deletions modules/local/hugounifier/get/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,13 @@ process HUGOUNIFIER_GET {

output:
tuple val(meta), path("${meta.id}/*.csv"), emit: changes
path ("versions.yml") , emit: versions
tuple val("${task.process}"), val('hugo-unifier'), eval('hugo-unifier --version | grep -oP "(?<=version )[\\d.]+"'), emit: versions_hugo_unifier, topic: versions

script:
def namedFiles = [[names].flatten(), [h5ads].flatten()].transpose()
def input = namedFiles.collect { name, h5ad -> "-i ${name}:${h5ad}" }.join(' ')
"""
hugo-unifier get -o ${meta.id} ${input}

cat <<-END_VERSIONS > versions.yml
"${task.process}":
hugo-unifier: \$(hugo-unifier --version | grep -oP '(?<=version )[\\d.]+')
END_VERSIONS
"""

stub:
Expand All @@ -33,7 +28,5 @@ process HUGOUNIFIER_GET {
for name in ${names.join(' ')}; do
touch ${meta.id}/\${name}.csv
done

touch versions.yml
"""
}
2 changes: 1 addition & 1 deletion modules/local/hugounifier/get/tests/main.nf.test
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ nextflow_process {
assert columnNames == ["action", "symbol", "new", "reason"]
}
assert snapshot(
path(process.out.versions[0]).yaml
process.out.versions
).match()
}

Expand Down
Loading
Loading