#' @include singscore.R plot.R
NULL
#' Plot the densities of ranks for one sample
#' @description This function takes a single-column data frame, which is a
#' single-column subset of the ranked matrix data generated using
#' [rankGenes()] function, and the gene sets of interest as inputs. It plots
#' the density of ranks for genes in the gene set and overlays a barcode plot
#' of these ranks. Ranks are normalized by dividing them by the maximum rank.
#' Densities are estimated using KDE.
#'
#' @param rankData one column of the ranked gene expression matrix obtained from
#' the [rankGenes()] function, use `drop = FALSE` when subsetting the ranked
#' gene expression matrix, see examples.
#' @param isInteractive Boolean, determine whether the returned plot is
#' interactive
#' @param textSize numberic, set the size of text on the plot
#' @param upSet GeneSet object or a vector of gene Ids, up-regulated gene set
#' @param downSet GeneSet object or a vector of gene Ids, down-regulated gene
#' set
#'
#' @return A ggplot object (or a plotly object) with a rank density plot
#' overlayed with a barcode plot
#' @examples
#' ranked <- rankGenes(toy_expr_se)
#' plotRankDensity(ranked[,2,drop = FALSE], upSet = toy_gs_up)
#'
#'@export
setGeneric("plotRankDensity",
function (rankData,
upSet,
downSet = NULL,
isInteractive = FALSE,
textSize = 1.5)
standardGeneric("plotRankDensity"))
#' @rdname plotRankDensity
setMethod("plotRankDensity", signature(
rankData = 'ANY',
upSet = 'vector',
downSet = 'missing'
),
function(rankData,
upSet,
downSet = NULL,
isInteractive = FALSE,
textSize = 1.5) {
upSet <- GSEABase::GeneSet(as.character(upSet))
plt <- plotRankDensity_intl(rankData,
upSet = upSet,
downSet = downSet,
isInteractive = isInteractive,
textSize = textSize)
return(plt)
})
#' @rdname plotRankDensity
setMethod("plotRankDensity", signature(
rankData = 'ANY',
upSet = 'GeneSet',
downSet = 'missing'
),
function(rankData,
upSet,
downSet = NULL,
isInteractive = FALSE,
textSize = 1.5) {
plt <- plotRankDensity_intl(rankData,
upSet = upSet,
downSet = downSet,
isInteractive = isInteractive,
textSize = textSize)
return(plt)
})
#' @rdname plotRankDensity
setMethod("plotRankDensity", signature(
rankData = 'ANY',
upSet = 'vector',
downSet = 'vector'
),
function(rankData,
upSet,
downSet = NULL,
isInteractive = FALSE,
textSize = 1.5) {
upSet <- GSEABase::GeneSet(as.character(upSet))
downSet <- GSEABase::GeneSet(as.character(downSet))
plt <- plotRankDensity_intl(rankData,
upSet = upSet,
downSet = downSet,
isInteractive = isInteractive,
textSize = textSize)
return(plt)
})
#' @rdname plotRankDensity
setMethod("plotRankDensity", signature(
rankData = 'ANY',
upSet = 'GeneSet',
downSet = 'GeneSet'
),
function(rankData,
upSet,
downSet = NULL,
isInteractive = FALSE,
textSize = 1.5) {
plt <- plotRankDensity_intl(rankData,
upSet = upSet,
downSet = downSet,
isInteractive = isInteractive,
textSize = textSize)
return(plt)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.