VarWiz / app /main.R
vojtam's picture
Update app/main.R
0f4ff44 verified
raw
history blame
3.68 kB
box::use(
shiny[...],
bs4Dash[box, dashboardPage, tabItems, tabItem, sidebarMenu, menuItem, dashboardHeader, column, dashboardBrand, dashboardSidebar, dashboardBody],
thematic[thematic_shiny],
shinyjs[useShinyjs, runjs],
gargoyle[init],
utils[globalVariables]
)
globalVariables(c("mutation.table.df", "hgnc2pfam.df"))
library(g3viz)
box::use(
app/logic/data_preprocessor[preprocess_data],
app/logic/data_preprocessor[preprocess_maf_data]
)
box::use(
app/view/table,
app/view/sankey,
app/view/lollipop,
app/view/browser,
app/view/plot_options
)
thematic_shiny()
#' @export
ui <- function(id) {
ns <- NS(id)
dashboardPage(
header = dashboardHeader(
title = "VarWiz",
skin = "dark",
status = "white"
),
dark = NULL,
help = NULL,
sidebar = dashboardSidebar(
collapsed = TRUE,
status = "navy",
skin = "dark",
sidebarMenu(
id = "side_menu",
div(class = "menu-tab", menuItem("Visualization", tabName = "visualization_tab", icon = icon("chart-line"))),
div(class = "menu-tab", menuItem("Browse data", tabName = "browse_tab", icon = icon("table")))
# div(class = "menu-tab", menuItem("About", tabName = "about_tab", icon = icon("book-open"))),
# div(class = "menu-tab", menuItem("Start Tutorial", tabName = "tutorial", icon = icon("play")))
)
),
body = dashboardBody(
tags$head(
tags$script(
"$(function() {
$('[data-card-widget=\"maximize\"]').on('click', function() {
setTimeout(function() {
var isMaximized = $('html').hasClass('maximized-card');
if (isMaximized) {
$('#app-sankey-sankey').css('height', '1000px');
} else {
$('#app-sankey-sankey').css('height', '400px');
}
}, 300);
$('#app-sankey-sankey').trigger('resize');
});
});
"
)
),
useShinyjs(),
tabItems(
tabItem(
tabName = "visualization_tab",
fluidRow(
column(
width = 9,
plot_options$ui(ns("plot_options")),
sankey$ui(ns("sankey")),
lollipop$ui(ns("lollipop"))
),
column(
width = 3,
table$ui(ns("table")),
),
)
),
tabItem(
tabName = "browse_tab",
browser$ui(ns("browser"))
),
tabItem(
tabName = "about_tab"
)
)
)
)
}
whole_dataset <- preprocess_maf_data()
#' @export
server <- function(id) {
moduleServer(id, function(input, output, session) {
init("reset_sankey")
ns <- NS(id)
data <- reactiveVal(whole_dataset)
options <- plot_options$server("plot_options", unique(data()$Variant_Type), unique(data()$Consequence))
observeEvent(options(), {
req((length(options()[[1]]) > 0 || length(options()[[2]] > 0)))
selected_var_types <- options()[[1]]
selected_consequences <- options()[[2]]
tab <- whole_dataset[Variant_Type %in% selected_var_types]
data(tab[Consequence %in% selected_consequences])
})
# data <- preprocess_data()
browser$server("browser", data())
selected_features <- table$server("table", data())
selected_gene_rval <- sankey$server("sankey", data, selected_features()[[1]], selected_features()[[2]], selected_features()[[3]])
lollipop$server("lollipop", data, selected_gene_rval)
})
}