Add basic filters to the UI

This commit is contained in:
Elias Projahn 2021-08-26 11:20:50 +02:00
parent d3151957a3
commit 1c43433600
2 changed files with 26 additions and 6 deletions

View file

@ -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)
})
}

15
ui.R
View file

@ -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
),