##########
## ui.R ##
##########
# This is the user interface.
# This function is the pretty face of our shiny app.
# TODO
# load data table can go off edge if using wrong delimiter
# load examples
# fix headers and delimiters
# subset page currently subsetting multiple times. Look into proper solution for this (connectors?)
# list of packages definitely used in new version
# shiny
# shinydashboard
# data.table - fast reading in of data
# shinyjs - options for deactivating shiny inputs
# devtools::install_github("Bioconductor-mirror/OmicCircos", ref="b772950")
# devtools::install_github("rstudio/DT", ref="24d71f2")
#' @importFrom shinydashboard dashboardPage
#' @importFrom shinydashboard dashboardHeader
#' @importFrom shinydashboard dashboardSidebar
#' @importFrom shinydashboard sidebarMenu
#' @importFrom shinydashboard menuItem
#' @importFrom shinydashboard menuSubItem
#' @importFrom shinydashboard tabItems
#' @importFrom shinydashboard tabItem
#' @importFrom shinydashboard dropdownMenuOutput
#' @importFrom shiny fluidRow
#' @importFrom shiny uiOutput
#' @keywords internal
# ---------------------------------------------------------------------------------------------------------------
ui <- shinydashboard::dashboardPage(
title= "MINOTAUR",
#########################
## TITLE AND SIDE MENU ## ------------------------------------------------------------------------------------
#########################
shinydashboard::dashboardHeader(
title='MINOTAUR', shinydashboard::dropdownMenuOutput('messageMenu')),
shinydashboard::dashboardSidebar(
shinydashboard::sidebarMenu(
# Welcome menu
shinydashboard::menuItem("Welcome", tabName="welcome", icon=icon("home")),
# Data menu
shinydashboard::menuItem(
"Data", tabName="data", icon=icon("bars"),
shinydashboard::menuSubItem("Input Data", tabName="data_input"),
shinydashboard::menuSubItem("Format Data", tabName="data_format")
),
# Outlier Detection menu
shinydashboard::menuItem(
"Multivariate Measures", tabName="multivariate", icon=icon("calculator"),
shinydashboard::menuSubItem("Calculate", tabName="calc_multi")
# shinydashboard::menuSubItem("Compare Outliers", tabName="outlier_compare")
),
# Produce Plots menu
shinydashboard::menuItem(
"Produce Plots", tabName="plots", icon=icon("area-chart"),
shinydashboard::menuSubItem("1D Histogram", tabName="plots_histogram_1D"),
shinydashboard::menuSubItem("2D Scatterplot", tabName="plots_2D_scatterplot"),
shinydashboard::menuSubItem("Linear Manhattan Plot", tabName="plots_linear_Manhattan")
# shinydashboard::menuSubItem("Circular Manhattan Plot", tabName="plots_circular_Manhattan")
)
# Help menu
# shinydashboard::menuItem("Help", tabName="help", icon=icon("question"))
) # end of sidebarMenu
), # end of dashboardSidebar
################
## MAIN PAGES ## ------------------------------------------------------------------------------------
################
shinydashboard:: dashboardBody(
shinydashboard::tabItems(
#############
## WELCOME ##
#############
#### Welcome page
shinydashboard::tabItem(
tabName="welcome",
# MINOTAUR banner
shiny::uiOutput('MinotaurBanner'),
# example plots
shiny::uiOutput('prettyPlots'),
# description
shiny::uiOutput('description')
),# end of Welcome page tabItem
##########
## DATA ##
##########
#### Input Data page
shinydashboard::tabItem(
tabName="data_input",
shiny::fluidRow(
column(4,
# Load Data box
shiny::uiOutput("headerBox_loadData"),
shiny::uiOutput('tabBox_loadData')
),
column(8,
# Data Summary box (multiple parts)
shiny::uiOutput('box_dataName'),
shiny::uiOutput('valueBox_rows'),
shiny::uiOutput('valueBox_cols'),
shiny::uiOutput('tabBox_rawDataSummary')
)
)
), # end of Input Data page
#### Format Data page
shinydashboard::tabItem(
tabName="data_format",
shiny::fluidRow(
column(4,
# Format Data box
shiny::uiOutput('box_formatData')
),
column(8,
# Plot Genomic box
shiny::uiOutput('box_plotBreakdown')
)
),
shiny::fluidRow(
column(4,
# Subset Data box
shiny::uiOutput('box_subsetData'),
# summary of missing data removed
shiny::uiOutput('valueBox_missingDataRemoved')
),
column(8,
# Final Data box
shiny::uiOutput('box_finalData')
)
)
), # end of Format Data page
###########################
## MULTIVARIATE MEASURES ##
###########################
#### Calculate page
shinydashboard::tabItem(
tabName="calc_multi",
shiny::fluidRow(
column(7,
# controls for producing compound measures
#shiny::uiOutput('headerBox_produce_compound'),
shiny::uiOutput('tabBox_produce_compound')
),
column(5,
# density plot of compound measure
shiny::uiOutput('box_histogram_compound')
)
)
), # end of Calculate page
###################
## PRODUCE PLOTS ##
###################
#### Plot 1D Histogram/Density page
shinydashboard::tabItem(
tabName="plots_histogram_1D",
shiny::fluidRow(
column(12,
shiny::uiOutput("box_hist_1D")
),
column(4,
shiny::uiOutput("box_hist_1D_button")
)
)
), # end of 1D Histogram/Density page
#### Scatter Plot page
shinydashboard::tabItem(
tabName="plots_2D_scatterplot",
shiny::fluidRow(
column(12,
shiny::uiOutput("box_scatterPlot")
),
column(4,
shiny::uiOutput("box_scatterPlot_button")
)
)
), # end of Scatter lot page
#### Linear Manhattan Plot page
shinydashboard::tabItem(
tabName="plots_linear_Manhattan",
shiny::fluidRow(
column(12,
shiny::uiOutput("box_linearManhattan")
),
column(4,
shiny::uiOutput("box_linearManhattan_button")
)
)
) # end of Linear Manhattan
# #### Circular Manhattan Plot page
# shinydashboard::tabItem(
# tabName="plots_circular_Manhattan",
# shiny::fluidRow(
# column(12,
# shiny::uiOutput("box_circularManhattan")
# ),
# column(4,
# shiny::uiOutput("box_circularManhattan_button")
# )
# )
# ) # end of Circular Manhattan Plot
) # end of tabItems
) # end of dashboardBody
) # end of dashboardPage (end of ui)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.