From 1c434336005098bc8c738713549acc34235013bc Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Thu, 26 Aug 2021 11:20:50 +0200 Subject: [PATCH] Add basic filters to the UI --- server.R | 17 +++++++++++------ ui.R | 15 +++++++++++++++ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/server.R b/server.R index 64e90af..8b8fddd 100644 --- a/server.R +++ b/server.R @@ -9,16 +9,21 @@ source("util.R") data <- run_cached("input", load_input, "input") results <- run_cached("results", process_input, data) +merged <- merge(results, data$genes, by.x = "gene", by.y = "id") +setorder(merged, -cluster_length) server <- function(input, output) { - filtered <- results[cluster_length >= 10] - merged <- merge.data.table(filtered, data$genes, by.x = "gene", by.y = "id") - setorder(merged, -cluster_length) + filtered <- reactive({ + merged[ + cluster_length >= input$length & + cluster_mean >= input$range[1] * 1000000 & + cluster_mean <= input$range[2] * 1000000 + ] + }) output$genes <- renderDT({ datatable( - merged[, .(.I, name, chromosome, cluster_length, cluster_mean)], - rownames = FALSE, + filtered()[, .(.I, name, chromosome, cluster_length, cluster_mean)], colnames = c( "Rank", "Gene", @@ -31,7 +36,7 @@ server <- function(input, output) { }) output$scatter <- renderPlot({ - gene_ids <- merged[input$genes_rows_selected, gene] + gene_ids <- filtered()[input$genes_rows_selected, gene] scatter_plot(gene_ids, data) }) } \ No newline at end of file diff --git a/ui.R b/ui.R index 472d91c..6a2e108 100644 --- a/ui.R +++ b/ui.R @@ -7,6 +7,21 @@ ui <- fluidPage( position = "right", sidebarPanel( h3("Candidate selection"), + sliderInput( + "range", + "Gene position (Mbp)", + min = 0, + max = 50, + value = c(0, 15), + step = 0.1 + ), + sliderInput( + "length", + "Minimum cluster size", + min = 0, + max = 30, + value = 10 + ), DTOutput("genes"), width = 3 ),