ubigen/R/ui.R

98 lines
2.6 KiB
R

#' Function for creating the main user interface.
#' @noRd
ui <- function() {
navbarPage(
theme = bslib::bs_theme(
version = 5,
bootswatch = "united",
primary = "#7d19bf"
),
title = "Ubigen",
tabPanel(
"Explore",
sidebarLayout(
sidebarPanel(
width = 3,
h3("Features"),
selectInput(
"cross_sample_metric",
verticalLayout(
strong("Expression across samples"),
paste0(
"Proportion samples in which the gene is expressed above the ",
"selected threshold. Select a method and a weight for the ",
"final score."
)
),
list(
"Above 95th percentile" = "above_95",
"Above median" = "above_median",
"Above zero" = "above_zero"
)
),
sliderInput(
"cross_sample_weight",
label = NULL,
min = -1.0,
max = 1.0,
step = 0.01,
value = 1.0
),
sliderInput(
"mean_expression",
verticalLayout(
strong("Mean expression"),
div(paste0(
"Average of the gene's expression across all ",
"samples."
))
),
min = -1.0,
max = 1.0,
step = 0.01,
value = 1.0
),
sliderInput(
"sd_expression",
verticalLayout(
strong("Standard deviation"),
paste0(
"Standard deviation of the gene's expression ",
"across all samples."
)
),
min = -1.0,
max = 1.0,
step = 0.01,
value = -1.0
)
),
mainPanel(
width = 9,
h3("Distribution of scores"),
h4("Overview"),
plotly::plotlyOutput("overview_plot", height = "200px"),
h4("Focus on top genes"),
div(paste0(
"Click or drag within the figure to select genes of ",
"interest."
)),
plotly::plotlyOutput("scores_plot"),
h3("Detailed ranking"),
div(paste0(
"Click on gene names to view them using the Ensembl ",
"genome browser."
)),
div(class = "p-1"),
DT::dataTableOutput("selected_genes")
)
)
),
tabPanel(
title = "Help"
),
tabPanel(
title = "Publication"
)
)
}