Skip to content

Commit 558f9e6

Browse files
Merge branch 'dev' into decoupler_2
2 parents ff2655f + ecfdc89 commit 558f9e6

14 files changed

+129
-84
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2525

2626
### Fixed
2727

28+
- [[#476](https://github.com/nf-core/differentialabundance/pull/476)] - Fixed null.csv and warning at top of report ([@SusiJo](https://github.com/SusiJo), reviewed by [@pinin4fjords](https://github.com/pinin4fjords), [@atrigila](https://github.com/atrigila), [@maxulysse](https://github.com/maxulysse))
2829
- [[#358](https://github.com/nf-core/differentialabundance/pull/358)] - Fixed nf-tests not running due to `--changed-since HEAD^`([@atrigila](https://github.com/atrigila), review by [@pinin4fjords](https://github.com/pinin4fjords))
2930
- [[#344](https://github.com/nf-core/differentialabundance/pull/344)] - Fixed replacement of NA sub-strings
3031
([@atrigila](https://github.com/atrigila), suggested by [@BEFH](https://github.com/BEFH), review by [@apeltzer](https://github.com/apeltzer) and [@nschcolnicov](https://github.com/nschcolnicov))
@@ -40,6 +41,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4041

4142
### Changed
4243

44+
- [[#476](https://github.com/nf-core/differentialabundance/pull/476)] - Update documentation & report fixes ([@SusiJo](https://github.com/SusiJo), reviewed by [@pinin4fjords](https://github.com/pinin4fjords), [@atrigila](https://github.com/atrigila), [@maxulysse](https://github.com/maxulysse))
4345
- [[#468](https://github.com/nf-core/differentialabundance/pull/468)] - Template update for nf-core/tools v3.3.1 ([@SusiJo](https://github.com/SusiJo), reviewed by [@famosab](https://github.com/famosab), [@mashehu](https://github.com/mashehu))
4446
- [[#448](https://github.com/nf-core/differentialabundance/pull/448)] - Simplify toolsheet handling and restructure workflow to use paramset in meta. ([@pinin4fjords](https://github.com/pinin4fjords), review by [@suzannejin](https://github.com/suzannejin) and [@grst](https://github.com/grst))
4547
- [[#431](https://github.com/nf-core/differentialabundance/pull/431)] - Replace the calls to differential and functional analysis modules by subworkflows. ([@suzannejin](https://github.com/suzannejin), review by [@pinin4fjords](https://github.com/pinin4fjords))

assets/differentialabundance_report.Rmd

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ report_subtitle <- paste0(ifelse(is.null(params$report_author), '', paste0('By '
220220
```
221221

222222
---
223-
title: "<img src=\"`r file.path(params$input_dir, params$logo)`\" style=\"float: left;\"/>`r report_title`"
223+
title: "<img id=\"logo\" src=\"`r file.path(params$input_dir, params$logo)`\" style=\"float: left;\"/>`r report_title`"
224224
subtitle: `r report_subtitle`
225225
---
226226
\
@@ -987,8 +987,8 @@ if (!is.null(params$functional_method)){
987987
gmt_name <- basename(tools::file_path_sans_ext(gmt_file))
988988
cat("\n##### ", gmt_name ," {.tabset}\n")
989989
990-
reference_gsea_tables <- paste0(differential_names, ".", gmt_name, '.gsea_report_for_', gsea_contrasts$reference, '.tsv')
991-
target_gsea_tables <- paste0(differential_names, ".", gmt_name, '.gsea_report_for_', gsea_contrasts$target, '.tsv')
990+
reference_gsea_tables <- paste0(gsea_contrasts$id, ".", gmt_name, '.gsea_report_for_', gsea_contrasts$reference, '.tsv')
991+
target_gsea_tables <- paste0(gsea_contrasts$id, ".", gmt_name, '.gsea_report_for_', gsea_contrasts$target, '.tsv')
992992
993993
for (i in seq_len(nrow(gsea_contrasts))) {
994994
cat("\n###### ", contrast_descriptions[i], "\n")
@@ -1025,10 +1025,11 @@ if (!is.null(params$functional_method)){
10251025
ifelse(params$gprofiler2_significant, paste0(" Enrichment was only considered if significant, i.e. adjusted p-value <= ", params$gprofiler2_max_qval, "."), "Enrichment was also considered if not significant."), "\n"))
10261026
10271027
# Make sure to grab only non-empty files
1028-
for (name in differential_names) {
1028+
for (i in seq_along(differential_names)) {
1029+
name <- differential_names[i]
10291030
cat(paste0("\n##### ", name, "\n"))
10301031
1031-
table <- paste0(name, ".gprofiler2.all_enriched_pathways.tsv")
1032+
table <- paste0(contrasts$id[i], ".gprofiler2.all_enriched_pathways.tsv")
10321033
table_path <- file.path(params$input_dir, table)
10331034
if (!file.exists(table_path) || file.size(table_path) == 0){
10341035
cat(paste0("No ", ifelse(params$gprofiler2_significant, "significantly", ""), " enriched pathways were found for this contrast."))

nextflow_schema.json

Lines changed: 44 additions & 41 deletions
Large diffs are not rendered by default.

subworkflows/local/utils_nfcore_differentialabundance_pipeline/main.nf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -373,8 +373,8 @@ def getParamsheetConfigurations() {
373373

374374
// Get default configurations from pipeline parameters
375375
def getDefaultConfigurations() {
376-
// replace null by string 'null' for paramset_name to avoid certain problems with null object
377-
return [params + [paramset_name: 'null']]
376+
// replace null by string 'contrasts' for paramset_name to avoid certain problems with null object
377+
return [params + [paramset_name: 'contrasts']]
378378
}
379379

380380
// Create a temporary schema file for paramsheet validation

tests/.nftignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
pipeline_info/*.{html,json,txt,yml}
2-
report/gsea/**/*.symbols.Gsea.rpt
2+
report/gsea/**/*.{rpt,html,png}
3+
**/**/*.{gprofiler2.*.rds,gprofiler2.*.html}
34
report/*.html
45
report/*.zip
56
report/*.png

tests/default.nf.test

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ nextflow_pipeline {
104104
outdir = "$outputDir"
105105
differential_method = 'deseq2'
106106
functional_method = 'gprofiler2'
107+
gprofiler2_organism = 'mmusculus'
107108
input = 'https://github.com/nf-core/test-datasets/raw/differentialabundance/modules_testdata/variancepartition_dream/metadata.tsv'
108109
matrix = 'https://github.com/nf-core/test-datasets/raw/differentialabundance/modules_testdata/variancepartition_dream/counts.tsv'
109110
contrasts_yml = 'https://github.com/nf-core/test-datasets/raw/differentialabundance/testdata/formula_contrasts/rnaseq_complex_contrast.yaml'

tests/default.nf.test.snap

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,9 @@
188188
],
189189
"meta": {
190190
"nf-test": "0.9.2",
191-
"nextflow": "25.04.3"
191+
"nextflow": "25.04.6"
192192
},
193-
"timestamp": "2025-06-23T09:03:01.551039804"
193+
"timestamp": "2025-09-19T08:59:25.110233661"
194194
},
195195
"Test profile - with toolsheet": {
196196
"content": [
@@ -381,9 +381,9 @@
381381
],
382382
"meta": {
383383
"nf-test": "0.9.2",
384-
"nextflow": "25.04.3"
384+
"nextflow": "25.04.6"
385385
},
386-
"timestamp": "2025-06-23T09:01:41.694097903"
386+
"timestamp": "2025-09-19T08:58:04.654957304"
387387
},
388388
"Test profile - with toolsheet and formula": {
389389
"content": [
@@ -441,7 +441,11 @@
441441
"other/gprofiler2/full_model_with_interactions_SRP254919",
442442
"other/gprofiler2/interaction_genotype_treatment_SRP254919",
443443
"other/gprofiler2/treatment_effect_classic_comparison_SRP254919",
444+
"other/gprofiler2/treatment_effect_classic_comparison_SRP254919.gprofiler2.gost_results.rds",
445+
"other/gprofiler2/treatment_effect_classic_comparison_SRP254919/treatment_effect_classic_comparison_SRP254919.gprofiler2.gost_results.rds",
444446
"other/gprofiler2/treatment_plus_genotype_SRP254919",
447+
"other/gprofiler2/treatment_plus_genotype_SRP254919.gprofiler2.gost_results.rds",
448+
"other/gprofiler2/treatment_plus_genotype_SRP254919/treatment_plus_genotype_SRP254919.gprofiler2.gost_results.rds",
445449
"pipeline_info",
446450
"pipeline_info/collated_versions.yml",
447451
"pipeline_info/nf_core_differentialabundance_software_versions.yml",
@@ -474,7 +478,17 @@
474478
"plots/gprofiler2/full_model_with_interactions_SRP254919",
475479
"plots/gprofiler2/interaction_genotype_treatment_SRP254919",
476480
"plots/gprofiler2/treatment_effect_classic_comparison_SRP254919",
481+
"plots/gprofiler2/treatment_effect_classic_comparison_SRP254919/treatment_effect_classic_comparison_SRP254919.gprofiler2.CORUM.sub_enriched_pathways.png",
482+
"plots/gprofiler2/treatment_effect_classic_comparison_SRP254919/treatment_effect_classic_comparison_SRP254919.gprofiler2.HP.sub_enriched_pathways.png",
483+
"plots/gprofiler2/treatment_effect_classic_comparison_SRP254919/treatment_effect_classic_comparison_SRP254919.gprofiler2.KEGG.sub_enriched_pathways.png",
484+
"plots/gprofiler2/treatment_effect_classic_comparison_SRP254919/treatment_effect_classic_comparison_SRP254919.gprofiler2.REAC.sub_enriched_pathways.png",
485+
"plots/gprofiler2/treatment_effect_classic_comparison_SRP254919/treatment_effect_classic_comparison_SRP254919.gprofiler2.gostplot.html",
486+
"plots/gprofiler2/treatment_effect_classic_comparison_SRP254919/treatment_effect_classic_comparison_SRP254919.gprofiler2.gostplot.png",
477487
"plots/gprofiler2/treatment_plus_genotype_SRP254919",
488+
"plots/gprofiler2/treatment_plus_genotype_SRP254919/treatment_plus_genotype_SRP254919.gprofiler2.HP.sub_enriched_pathways.png",
489+
"plots/gprofiler2/treatment_plus_genotype_SRP254919/treatment_plus_genotype_SRP254919.gprofiler2.TF.sub_enriched_pathways.png",
490+
"plots/gprofiler2/treatment_plus_genotype_SRP254919/treatment_plus_genotype_SRP254919.gprofiler2.gostplot.html",
491+
"plots/gprofiler2/treatment_plus_genotype_SRP254919/treatment_plus_genotype_SRP254919.gprofiler2.gostplot.png",
478492
"plots/qc",
479493
"plots/qc/full_model_with_interactions_SRP254919.deseq2.dispersion.png",
480494
"plots/qc/interaction_genotype_treatment_SRP254919.deseq2.dispersion.png",
@@ -503,8 +517,14 @@
503517
"tables/gprofiler2/interaction_genotype_treatment_SRP254919",
504518
"tables/gprofiler2/interaction_genotype_treatment_SRP254919/interaction_genotype_treatment_SRP254919.gprofiler2.all_enriched_pathways.tsv",
505519
"tables/gprofiler2/treatment_effect_classic_comparison_SRP254919",
520+
"tables/gprofiler2/treatment_effect_classic_comparison_SRP254919/treatment_effect_classic_comparison_SRP254919.gprofiler2.CORUM.sub_enriched_pathways.tsv",
521+
"tables/gprofiler2/treatment_effect_classic_comparison_SRP254919/treatment_effect_classic_comparison_SRP254919.gprofiler2.HP.sub_enriched_pathways.tsv",
522+
"tables/gprofiler2/treatment_effect_classic_comparison_SRP254919/treatment_effect_classic_comparison_SRP254919.gprofiler2.KEGG.sub_enriched_pathways.tsv",
523+
"tables/gprofiler2/treatment_effect_classic_comparison_SRP254919/treatment_effect_classic_comparison_SRP254919.gprofiler2.REAC.sub_enriched_pathways.tsv",
506524
"tables/gprofiler2/treatment_effect_classic_comparison_SRP254919/treatment_effect_classic_comparison_SRP254919.gprofiler2.all_enriched_pathways.tsv",
507525
"tables/gprofiler2/treatment_plus_genotype_SRP254919",
526+
"tables/gprofiler2/treatment_plus_genotype_SRP254919/treatment_plus_genotype_SRP254919.gprofiler2.HP.sub_enriched_pathways.tsv",
527+
"tables/gprofiler2/treatment_plus_genotype_SRP254919/treatment_plus_genotype_SRP254919.gprofiler2.TF.sub_enriched_pathways.tsv",
508528
"tables/gprofiler2/treatment_plus_genotype_SRP254919/treatment_plus_genotype_SRP254919.gprofiler2.all_enriched_pathways.tsv",
509529
"tables/processed_abundance",
510530
"tables/processed_abundance/all.normalised_counts.tsv",
@@ -528,8 +548,14 @@
528548
"treatment_effect_classic_comparison_SRP254919.deseq2.results_filtered.tsv:md5,65e7a9d354eb71db7f13576cc2d5d7e7",
529549
"full_model_with_interactions_SRP254919.gprofiler2.all_enriched_pathways.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
530550
"interaction_genotype_treatment_SRP254919.gprofiler2.all_enriched_pathways.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
531-
"treatment_effect_classic_comparison_SRP254919.gprofiler2.all_enriched_pathways.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
532-
"treatment_plus_genotype_SRP254919.gprofiler2.all_enriched_pathways.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
551+
"treatment_effect_classic_comparison_SRP254919.gprofiler2.CORUM.sub_enriched_pathways.tsv:md5,d7dca3803318350b7d3328dc14e8846b",
552+
"treatment_effect_classic_comparison_SRP254919.gprofiler2.HP.sub_enriched_pathways.tsv:md5,6c2249f6a9b4eb5ee0168fa44a670dea",
553+
"treatment_effect_classic_comparison_SRP254919.gprofiler2.KEGG.sub_enriched_pathways.tsv:md5,58c77b638e8b4e02cd486cf6b03d5ab6",
554+
"treatment_effect_classic_comparison_SRP254919.gprofiler2.REAC.sub_enriched_pathways.tsv:md5,0790f8beea2055f927741b27eb675e7b",
555+
"treatment_effect_classic_comparison_SRP254919.gprofiler2.all_enriched_pathways.tsv:md5,7988d05d69d9f17b654d4a8a514fa5c7",
556+
"treatment_plus_genotype_SRP254919.gprofiler2.HP.sub_enriched_pathways.tsv:md5,1e67df6e7e51f8d733714e25d61db06d",
557+
"treatment_plus_genotype_SRP254919.gprofiler2.TF.sub_enriched_pathways.tsv:md5,704e772ab4c6b8e6768d7dd8abb370bd",
558+
"treatment_plus_genotype_SRP254919.gprofiler2.all_enriched_pathways.tsv:md5,9cf6caebcf0b59460cefc5d3532207ee",
533559
"all.normalised_counts.tsv:md5,c2d7cc11637ad01ea49fff4a744965c9",
534560
"all.rlog.tsv:md5,bce2521996537372c72f4083f66c5d3b"
535561
]
@@ -538,7 +564,7 @@
538564
"nf-test": "0.9.2",
539565
"nextflow": "25.04.6"
540566
},
541-
"timestamp": "2025-07-24T16:46:01.377784674"
567+
"timestamp": "2025-09-04T13:41:25.55678279"
542568
},
543569
"Test profile - yml no formula": {
544570
"content": [
@@ -729,8 +755,8 @@
729755
],
730756
"meta": {
731757
"nf-test": "0.9.2",
732-
"nextflow": "25.04.3"
758+
"nextflow": "25.04.6"
733759
},
734-
"timestamp": "2025-06-23T09:04:21.203865649"
760+
"timestamp": "2025-09-19T09:00:45.008596168"
735761
}
736762
}

tests/test_affy.nf.test.snap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -239,9 +239,9 @@
239239
],
240240
"meta": {
241241
"nf-test": "0.9.2",
242-
"nextflow": "25.04.3"
242+
"nextflow": "25.04.6"
243243
},
244-
"timestamp": "2025-06-17T15:17:08.723393528"
244+
"timestamp": "2025-09-19T09:05:43.521907455"
245245
},
246246
"Test affy profile - with toolsheet": {
247247
"content": [
@@ -483,8 +483,8 @@
483483
],
484484
"meta": {
485485
"nf-test": "0.9.2",
486-
"nextflow": "25.04.3"
486+
"nextflow": "25.04.6"
487487
},
488-
"timestamp": "2025-06-17T15:20:21.3699015"
488+
"timestamp": "2025-09-19T09:08:57.977766595"
489489
}
490490
}

tests/test_custom_paramsheet.nf.test

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ nextflow_pipeline {
9090
outdir = "$outputDir"
9191
paramsheet = "https://raw.githubusercontent.com/nf-core/test-datasets/refs/heads/differentialabundance/testdata/test_custom_paramsheet.csv"
9292
paramset_name = "gprofiler2"
93+
gprofiler2_organism = 'mmusculus'
9394

9495
// input data
9596
input = 'https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/mus_musculus/rnaseq_expression/SRP254919.samplesheet.csv'

tests/test_custom_paramsheet.nf.test.snap

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353
"other/gprofiler2",
5454
"other/gprofiler2/treatment_mCherry_hND6__SRP254919",
5555
"other/gprofiler2/treatment_mCherry_hND6_sample_number_SRP254919",
56+
"other/gprofiler2/treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.gost_results.rds",
57+
"other/gprofiler2/treatment_mCherry_hND6_sample_number_SRP254919/treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.gost_results.rds",
5658
"pipeline_info",
5759
"pipeline_info/collated_versions.yml",
5860
"pipeline_info/nf_core_differentialabundance_software_versions.yml",
@@ -78,6 +80,10 @@
7880
"plots/gprofiler2",
7981
"plots/gprofiler2/treatment_mCherry_hND6__SRP254919",
8082
"plots/gprofiler2/treatment_mCherry_hND6_sample_number_SRP254919",
83+
"plots/gprofiler2/treatment_mCherry_hND6_sample_number_SRP254919/treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.GO:CC.sub_enriched_pathways.png",
84+
"plots/gprofiler2/treatment_mCherry_hND6_sample_number_SRP254919/treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.GO:MF.sub_enriched_pathways.png",
85+
"plots/gprofiler2/treatment_mCherry_hND6_sample_number_SRP254919/treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.gostplot.html",
86+
"plots/gprofiler2/treatment_mCherry_hND6_sample_number_SRP254919/treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.gostplot.png",
8187
"plots/immunedeconv",
8288
"plots/immunedeconv/SRP254919.plot1_stacked_bar_chart.png",
8389
"plots/immunedeconv/SRP254919.plot2_points_with_facets.png",
@@ -104,6 +110,8 @@
104110
"tables/gprofiler2/treatment_mCherry_hND6__SRP254919",
105111
"tables/gprofiler2/treatment_mCherry_hND6__SRP254919/treatment_mCherry_hND6__SRP254919.gprofiler2.all_enriched_pathways.tsv",
106112
"tables/gprofiler2/treatment_mCherry_hND6_sample_number_SRP254919",
113+
"tables/gprofiler2/treatment_mCherry_hND6_sample_number_SRP254919/treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.GO:CC.sub_enriched_pathways.tsv",
114+
"tables/gprofiler2/treatment_mCherry_hND6_sample_number_SRP254919/treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.GO:MF.sub_enriched_pathways.tsv",
107115
"tables/gprofiler2/treatment_mCherry_hND6_sample_number_SRP254919/treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.all_enriched_pathways.tsv",
108116
"tables/immunedeconv",
109117
"tables/immunedeconv/SRP254919.deconvolution_results.tsv",
@@ -124,17 +132,19 @@
124132
"treatment_mCherry_hND6_sample_number_SRP254919.deseq2.results.tsv:md5,3c827ffb53fe7dab8f13f0ef89a3da06",
125133
"treatment_mCherry_hND6_sample_number_SRP254919.deseq2.results_filtered.tsv:md5,c88d36f46f7d8a4dd8c169c249f50540",
126134
"treatment_mCherry_hND6__SRP254919.gprofiler2.all_enriched_pathways.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
127-
"treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.all_enriched_pathways.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
135+
"treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.GO:CC.sub_enriched_pathways.tsv:md5,a7127a9491097019d3d6bb53cb00ec8e",
136+
"treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.GO:MF.sub_enriched_pathways.tsv:md5,fc811363bc5cd3196d88906a06e20419",
137+
"treatment_mCherry_hND6_sample_number_SRP254919.gprofiler2.all_enriched_pathways.tsv:md5,3b069b57f1043fa5b700abeec0b28e73",
128138
"SRP254919.deconvolution_results.tsv:md5,3d7ed4550a0da2f63fcfd2e74605e7a3",
129139
"all.normalised_counts.tsv:md5,f3ef0fb48f97afde2b5122b72dc4dcc4",
130140
"all.vst.tsv:md5,ae82509f76ed01ad0d041d1a62aef703"
131141
]
132142
],
133143
"meta": {
134144
"nf-test": "0.9.2",
135-
"nextflow": "25.04.3"
145+
"nextflow": "25.04.6"
136146
},
137-
"timestamp": "2025-06-17T09:59:11.644008654"
147+
"timestamp": "2025-09-04T13:35:37.380261016"
138148
},
139149
"Test profile - deseq2": {
140150
"content": [
@@ -325,9 +335,9 @@
325335
],
326336
"meta": {
327337
"nf-test": "0.9.2",
328-
"nextflow": "25.04.3"
338+
"nextflow": "25.04.6"
329339
},
330-
"timestamp": "2025-06-17T09:55:48.476497111"
340+
"timestamp": "2025-09-19T08:54:02.57428995"
331341
},
332342
"Test profile - gsea": {
333343
"content": [
@@ -518,7 +528,7 @@
518528
],
519529
"meta": {
520530
"nf-test": "0.9.2",
521-
"nextflow": "25.04.3"
531+
"nextflow": "25.04.6"
522532
},
523533
"timestamp": "2025-06-17T09:57:08.6693888"
524534
},

0 commit comments

Comments
 (0)