mirror of
https://github.com/johrpan/geposan.git
synced 2025-10-26 02:37:25 +01:00
ranking: Add plot method
This commit is contained in:
parent
f98800f1e0
commit
d075380559
4 changed files with 78 additions and 0 deletions
|
|
@ -26,6 +26,7 @@ Imports:
|
|||
rlang
|
||||
Suggests:
|
||||
biomaRt,
|
||||
plotly,
|
||||
rlog,
|
||||
stringr,
|
||||
usethis
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
# Generated by roxygen2: do not edit by hand
|
||||
|
||||
S3method(plot,geposan_ranking)
|
||||
S3method(print,geposan_comparison)
|
||||
S3method(print,geposan_preset)
|
||||
export(analyze)
|
||||
|
|
|
|||
56
R/ranking.R
56
R/ranking.R
|
|
@ -37,6 +37,62 @@ ranking <- function(analysis, weights) {
|
|||
)
|
||||
}
|
||||
|
||||
#' S3 method for plotting a ranking.
|
||||
#'
|
||||
#' @param gene_sets A list of gene sets (containing vectors of gene IDs) that
|
||||
#' will be highlighted in the plot.
|
||||
#' @param labels Labels for the gene sets.
|
||||
#'
|
||||
#' @seealso ranking()
|
||||
#'
|
||||
#' @export
|
||||
plot.geposan_ranking <- function(ranking, gene_sets = NULL, labels = NULL) {
|
||||
if (!requireNamespace("plotly", quietly = TRUE)) {
|
||||
stop("Please install \"plotly\" to use this function.")
|
||||
}
|
||||
|
||||
plot <- plotly::plot_ly() |>
|
||||
plotly::add_trace(
|
||||
data = ranking,
|
||||
x = ~rank,
|
||||
y = ~score,
|
||||
color = "All genes",
|
||||
type = "scatter",
|
||||
mode = "markers",
|
||||
hoverinfo = "skip"
|
||||
) |>
|
||||
plotly::layout(
|
||||
xaxis = list(title = "Rank"),
|
||||
yaxis = list(title = "Score")
|
||||
)
|
||||
|
||||
if (length(gene_sets) > 0) {
|
||||
# Take out the genes to be highlighted.
|
||||
gene_set_data <- ranking[gene %chin% unlist(gene_sets)]
|
||||
|
||||
# Add labels for each gene set.
|
||||
for (i in seq_along(gene_sets)) {
|
||||
gene_set_data[gene %chin% gene_sets[[i]], label := labels[i]]
|
||||
}
|
||||
|
||||
# Include gene information which will be used for laebling
|
||||
gene_set_data <- merge(gene_set_data, genes, by.x = "gene", by.y = "id")
|
||||
|
||||
plot <- plot |> plotly::add_trace(
|
||||
data = gene_set_data,
|
||||
x = ~rank,
|
||||
y = ~score,
|
||||
color = ~label,
|
||||
text = ~name,
|
||||
type = "scatter",
|
||||
mode = "markers",
|
||||
marker = list(size = 20)
|
||||
)
|
||||
}
|
||||
|
||||
plot
|
||||
}
|
||||
|
||||
#' Find the best weights to rank the results.
|
||||
#'
|
||||
#' This function finds the optimal parameters to [ranking()] that result in the
|
||||
|
|
|
|||
20
man/plot.geposan_ranking.Rd
Normal file
20
man/plot.geposan_ranking.Rd
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/ranking.R
|
||||
\name{plot.geposan_ranking}
|
||||
\alias{plot.geposan_ranking}
|
||||
\title{S3 method for plotting a ranking.}
|
||||
\usage{
|
||||
\method{plot}{geposan_ranking}(ranking, gene_sets = NULL, labels = NULL)
|
||||
}
|
||||
\arguments{
|
||||
\item{gene_sets}{A list of gene sets (containing vectors of gene IDs) that
|
||||
will be highlighted in the plot.}
|
||||
|
||||
\item{labels}{Labels for the gene sets.}
|
||||
}
|
||||
\description{
|
||||
S3 method for plotting a ranking.
|
||||
}
|
||||
\seealso{
|
||||
ranking()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue