R/metaEnrichResultSection.R

Defines functions metaEnrichResultSection

Documented in metaEnrichResultSection

#' metaEnrichResultSection
#'
#' Conditionally render template of main result section. Actual work is carried out in front end
#'
#' @importFrom whisker whisker.render
#' @importFrom dplyr select distinct filter
#' @importFrom jsonlite toJSON
#' @keywords internal
#'
metaEnrichResultSection <- function(enrichMethod, enrichedSig, geneSet, geneSetDes, geneSetDag, geneSetNet, clusters) {
  if ("database" %in% colnames(geneSet)) {
    # multiple databases
    netDatabases <- names(geneSetNet[!sapply(geneSetNet, is.null)])
    setSource <- geneSet %>%
      select(.data$geneSet, .data$database) %>%
      distinct() %>%
      filter(.data$geneSet %in% enrichedSig$geneSet)
    setsWithNetJson <- toJSON((filter(setSource, .data$database %in% netDatabases))$geneSet)
    hasGeneSetDag <- length(geneSetDag[!sapply(geneSetDag, is.null)]) > 0
    hasMultipleDatabases <- TRUE
  } else {
    setsWithNetJson <- toJSON(!is.null(geneSetNet), auto_unbox = TRUE)
    hasGeneSetDag <- !is.null(geneSetDag)
    hasMultipleDatabases <- FALSE
  }

  data <- list(
    methodIsOra = enrichMethod == "ORA",
    hasGeneSetDag = hasGeneSetDag,
    hasMultipleDatabases = hasMultipleDatabases,
    setsWithNetJson = setsWithNetJson,
    hasAp = !is.null(clusters$ap),
    hasWsc = !is.null(clusters$wsc),
    hasKmed = !is.null(clusters$km)
  )
  template <- readLines(system.file("templates/metaEnrichResultSection.mustache", package = "WebGestaltR"))
  return(whisker.render(template, data))
}
bzhanglab/WebGestaltR documentation built on May 3, 2024, 12:19 a.m.