@@ -972,24 +972,54 @@ if (!is.null(params$functional_method)){
972972 cat("\n#### ", toupper(params$functional_method) ," {.tabset}\n")
973973
974974 if (params$functional_method == 'gsea') {
975+
976+ # Only keep contrasts that have both reference and target
977+ gsea_contrasts <- contrasts[
978+ !is.na(contrasts$reference) & contrasts$reference != "" &
979+ !is.na(contrasts$target) & contrasts$target != "",
980+ ]
981+
982+ if (nrow(gsea_contrasts) == 0) {
983+ warning("No contrasts with reference and target defined. Skipping GSEA report section.")
984+ } else {
985+
975986 for (gmt_file in simpleSplit(params$gene_sets_files)) {
976- gmt_name <- basename(tools::file_path_sans_ext(gmt_file))
977- cat("\n##### ", gmt_name ," {.tabset}\n")
978-
979- reference_gsea_tables <- paste0(differential_names, ".", gmt_name, '.gsea_report_for_', contrasts$reference, '.tsv')
980- target_gsea_tables <- paste0(differential_names, ".", gmt_name, '.gsea_report_for_', contrasts$target, '.tsv')
981- for (i in 1:nrow(contrasts)){
982- cat("\n###### ", contrast_descriptions[i], "\n")
983- target_gsea_results <- read_metadata(target_gsea_tables[i])[,c(-2,-3)]
984- target_gsea_results <- round_dataframe_columns(target_gsea_results, digits=params$round_digits)
985- print( htmltools::tagList(datatable(target_gsea_results, caption = paste0("\nTarget (", contrasts$target[i], ")\n"), rownames = FALSE) ))
986- ref_gsea_results <- read_metadata(reference_gsea_tables[i])[,c(-2,-3)]
987- ref_gsea_results <- round_dataframe_columns(ref_gsea_results, digits=params$round_digits)
988- print( htmltools::tagList(datatable(ref_gsea_results, caption = paste0("\nReference (", contrasts$reference[i], ")\n"), rownames = FALSE) ))
987+ gmt_name <- basename(tools::file_path_sans_ext(gmt_file))
988+ cat("\n##### ", gmt_name ," {.tabset}\n")
989+
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')
992+
993+ for (i in seq_len(nrow(gsea_contrasts))) {
994+ cat("\n###### ", contrast_descriptions[i], "\n")
995+
996+ if (file.exists(target_gsea_tables[i])) {
997+ target_gsea_results <- read_metadata(target_gsea_tables[i])[,c(-2,-3)]
998+ target_gsea_results <- round_dataframe_columns(target_gsea_results, digits=params$round_digits)
999+ print( htmltools::tagList(
1000+ datatable(target_gsea_results,
1001+ caption = paste0("\nTarget (", gsea_contrasts$target[i], ")\n"),
1002+ rownames = FALSE)
1003+ ))
1004+ } else {
1005+ cat("\n*Target GSEA file missing: ", target_gsea_tables[i], "*\n")
1006+ }
1007+
1008+ if (file.exists(reference_gsea_tables[i])) {
1009+ ref_gsea_results <- read_metadata(reference_gsea_tables[i])[,c(-2,-3)]
1010+ ref_gsea_results <- round_dataframe_columns(ref_gsea_results, digits=params$round_digits)
1011+ print( htmltools::tagList(
1012+ datatable(ref_gsea_results,
1013+ caption = paste0("\nReference (", gsea_contrasts$reference[i], ")\n"),
1014+ rownames = FALSE)
1015+ ))
1016+ } else {
1017+ cat("\n*Reference GSEA file missing: ", reference_gsea_tables[i], "*\n")
1018+ }
1019+ }
9891020 }
9901021 }
991-
992- } else if (params$functional_method == 'gprofiler2') {
1022+ } else if (params$functional_method == 'gprofiler2') {
9931023
9941024 cat(paste0("\nThis section contains the results tables of the pathway analysis which was done with the R package gprofiler2. The differential fraction is the number of differential genes in a pathway divided by that pathway's size, i.e. the number of genes annotated for the pathway.",
9951025 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"))
0 commit comments