plots: Add max_rank to score plot

This commit is contained in:
Elias Projahn 2021-11-15 09:21:37 +01:00
parent 1af138bf6f
commit 19bae34a96
2 changed files with 30 additions and 2 deletions

View file

@ -7,11 +7,16 @@
#' will be highlighted in the plot. #' will be highlighted in the plot.
#' @param labels Labels for the gene sets. This is required if gene sets are #' @param labels Labels for the gene sets. This is required if gene sets are
#' given and has to have the same length. #' given and has to have the same length.
#' @param max_rank The maximum rank of the highlighted genes. All genes that
#' are ranked lower will appear greyed out.
#' #'
#' @seealso ranking() #' @seealso ranking()
#' #'
#' @export #' @export
plot_scores <- function(ranking, gene_sets = NULL, labels = NULL) { plot_scores <- function(ranking,
gene_sets = NULL,
labels = NULL,
max_rank = NULL) {
if (!requireNamespace("plotly", quietly = TRUE)) { if (!requireNamespace("plotly", quietly = TRUE)) {
stop("Please install \"plotly\" to use this function.") stop("Please install \"plotly\" to use this function.")
} }
@ -60,6 +65,26 @@ plot_scores <- function(ranking, gene_sets = NULL, labels = NULL) {
) )
} }
if (!is.null(max_rank)) {
first_not_included_rank <- max_rank + 1
last_rank <- ranking[, .N]
if (first_not_included_rank <= last_rank) {
plot <- plot |> plotly::layout(
shapes = list(
type = "rect",
fillcolor = "black",
opacity = 0.1,
x0 = first_not_included_rank,
x1 = last_rank,
y0 = 0.0,
y1 = 1.0
)
)
}
}
plot plot
} }

View file

@ -4,7 +4,7 @@
\alias{plot_scores} \alias{plot_scores}
\title{Plot a ranking as a scatter plot of scores.} \title{Plot a ranking as a scatter plot of scores.}
\usage{ \usage{
plot_scores(ranking, gene_sets = NULL, labels = NULL) plot_scores(ranking, gene_sets = NULL, labels = NULL, max_rank = NULL)
} }
\arguments{ \arguments{
\item{ranking}{The ranking to visualize.} \item{ranking}{The ranking to visualize.}
@ -14,6 +14,9 @@ will be highlighted in the plot.}
\item{labels}{Labels for the gene sets. This is required if gene sets are \item{labels}{Labels for the gene sets. This is required if gene sets are
given and has to have the same length.} given and has to have the same length.}
\item{max_rank}{The maximum rank of the highlighted genes. All genes that
are ranked lower will appear greyed out.}
} }
\description{ \description{
This function requires the package \code{plotly}. This function requires the package \code{plotly}.