ubigen/R/ui.R

84 lines
2.2 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",
header = custom_css(),
tabPanel(
"Explore",
sidebarLayout(
sidebarPanel(
width = 3,
h3("My genes"),
gene_selector_ui("custom_genes"),
h3("Scoring"),
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 = 0.5
),
sliderInput(
"sd_expression",
verticalLayout(
strong("Standard deviation"),
"Standard deviation of the gene's expression across all samples."
),
min = -1.0,
max = 1.0,
step = 0.01,
value = -0.5
)
),
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"
)
)
}