Make custom genes default in comparison editor

This commit is contained in:
Elias Projahn 2022-06-22 13:55:47 +02:00
parent e7cbb4ea33
commit 4378e87b2a
4 changed files with 23 additions and 11 deletions

View file

@ -9,15 +9,14 @@ comparison_editor_ui <- function(id, options) {
NS(id, "comparison_genes"), NS(id, "comparison_genes"),
"Comparison genes", "Comparison genes",
choices = c( choices = c(
"None", "Your genes",
"Random genes", "Random genes",
names(options$gene_sets), names(options$gene_sets)
"Customize"
) )
), ),
conditionalPanel( conditionalPanel(
condition = sprintf( condition = sprintf(
"input['%s'] == 'Customize'", "input['%s'] == 'Your genes'",
NS(id, "comparison_genes") NS(id, "comparison_genes")
), ),
gene_selector_ui(NS(id, "custom_genes")) gene_selector_ui(NS(id, "custom_genes"))
@ -39,15 +38,13 @@ comparison_editor_server <- function(id, preset, options) {
custom_gene_ids <- gene_selector_server("custom_genes") custom_gene_ids <- gene_selector_server("custom_genes")
reactive({ reactive({
if (input$comparison_genes == "None") { if (input$comparison_genes == "Random genes") {
NULL
} else if (input$comparison_genes == "Random genes") {
preset <- preset() preset <- preset()
gene_pool <- preset$gene_ids gene_pool <- preset$gene_ids
reference_gene_ids <- preset$reference_gene_ids reference_gene_ids <- preset$reference_gene_ids
gene_pool <- gene_pool[!gene_pool %chin% reference_gene_ids] gene_pool <- gene_pool[!gene_pool %chin% reference_gene_ids]
gene_pool[sample(length(gene_pool), length(reference_gene_ids))] gene_pool[sample(length(gene_pool), length(reference_gene_ids))]
} else if (input$comparison_genes == "Customize") { } else if (input$comparison_genes == "Your genes") {
custom_gene_ids() custom_gene_ids()
} else { } else {
options$gene_sets[[input$comparison_genes]] options$gene_sets[[input$comparison_genes]]

View file

@ -29,7 +29,7 @@ gene_selector_ui <- function(id, default_gene_ids = NULL) {
"list", "list",
shinyWidgets::virtualSelectInput( shinyWidgets::virtualSelectInput(
NS(id, "selected_genes"), NS(id, "selected_genes"),
label = "Select genes", label = NULL,
choices = gene_choices, choices = gene_choices,
multiple = TRUE, multiple = TRUE,
search = TRUE, search = TRUE,
@ -40,7 +40,7 @@ gene_selector_ui <- function(id, default_gene_ids = NULL) {
"hgnc", "hgnc",
textAreaInput( textAreaInput(
NS(id, "hgnc_names_raw"), NS(id, "hgnc_names_raw"),
"Enter HGNC symbols", label = NULL,
value = paste( value = paste(
geposan::genes[ geposan::genes[
id %chin% default_gene_ids & name != "", id %chin% default_gene_ids & name != "",
@ -55,7 +55,7 @@ gene_selector_ui <- function(id, default_gene_ids = NULL) {
"ensembl", "ensembl",
textAreaInput( textAreaInput(
NS(id, "gene_ids_raw"), NS(id, "gene_ids_raw"),
"Enter Ensembl gene IDs", label = NULL,
value = paste(default_gene_ids, collapse = "\n"), value = paste(default_gene_ids, collapse = "\n"),
height = "250px" height = "250px"
) )

14
R/style.R Normal file
View file

@ -0,0 +1,14 @@
#' Custom CSS to tweak the rendering.
#' @noRd
custom_css <- function() {
tags$head(
tags$style(HTML(
".nav-hidden { height: 0 }",
".flow-layout > div {",
"display: inline-block;",
"vertical-align: top;",
"margin-right: 12px;",
"}"
))
)
}

1
R/ui.R
View file

@ -5,6 +5,7 @@
#' @noRd #' @noRd
ui <- function(options) { ui <- function(options) {
div( div(
custom_css(),
shinyjs::useShinyjs(), shinyjs::useShinyjs(),
rclipboard::rclipboardSetup(), rclipboard::rclipboardSetup(),
navbarPage( navbarPage(