#' 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" ) ) }