Add rank plot

This commit is contained in:
Elias Projahn 2021-10-15 13:16:51 +02:00
parent 114193506b
commit 527ba01cc9
3 changed files with 48 additions and 0 deletions

36
rank_plot.R Normal file
View file

@ -0,0 +1,36 @@
library(data.table)
library(plotly)
#' Draw a plot displaying the rank of reference genes.
#'
#' The input table should contain the following columns:
#'
#' - `gene` Gene IDs of genes to display.
#' - `name` Name of genes to display.
#' - `score` Score of the genes.
#' - `rank` Rank of the genes based on the score.
#'
#' @param results Results to display.
#' @param reference_gene_ids IDs of reference genes.
rank_plot <- function(results, reference_gene_ids) {
plot <- plot_ly() |> add_trace(
data = results,
x = ~rank,
y = ~score,
name = "All genes",
type = "scatter",
mode = "line",
hoverinfo = "skip"
) |> add_trace(
data = results[gene %chin% reference_gene_ids],
x = ~rank,
y = ~score,
color = ~gene,
name = ~name,
width = 10,
type = "bar"
) |> layout(
xaxis = list(title = "Ranks"),
yaxis = list(title = "Score")
)
}

View file

@ -6,6 +6,7 @@ library(rclipboard)
library(shiny)
source("init.R")
source("rank_plot.R")
source("scatter_plot.R")
#' Java script function to replace gene IDs with Ensembl gene links.
@ -83,6 +84,11 @@ server <- function(input, output) {
results[, rank := .I]
})
output$rank_plot <- renderPlotly({
results <- results()
rank_plot(results, genes[suggested | verified == TRUE, id])
})
output$genes <- renderDT({
method_ids <- sapply(methods, function(method) method$id)
method_names <- sapply(methods, function(method) method$name)

6
ui.R
View file

@ -48,6 +48,12 @@ ui <- fluidPage(
),
),
mainPanel(
h3("Gene ranks"),
plotlyOutput(
"rank_plot",
width = "100%",
height = "600px"
),
h3("Results"),
textOutput("synposis"),
div(