ui.R 4.85 KB
Newer Older
dmattek's avatar
dmattek committed
1
#
dmattek's avatar
dmattek committed
2 3
# Time Course Inspector: Shiny app for plotting time series data
# Author: Maciej Dobrzynski
dmattek's avatar
dmattek committed
4
#
dmattek's avatar
dmattek committed
5 6 7
# This is the user-interface definition for a Shiny web application.
#

dmattek's avatar
dmattek committed
8 9

library(shiny)
dmattek's avatar
dmattek committed
10 11
library(shinyjs) # http://deanattali.com/shinyjs/
library(shinyBS) # for tooltips
dmattek's avatar
dmattek committed
12 13

shinyUI(fluidPage(
dmattek's avatar
dmattek committed
14 15
  useShinyjs(),
  # Include shinyjs
dmattek's avatar
dmattek committed
16 17 18 19
  
  # Application title
  title = "Timecourse Inspector",
  
dmattek's avatar
dmattek committed
20
  sidebarLayout(
Maciej Dobrzynski's avatar
Maciej Dobrzynski committed
21
    sidebarPanel(width = 3,
dmattek's avatar
dmattek committed
22 23 24
      #Selector for file upload
      fileInput(
        'inFileLoadNuc',
25
        'Select main data file and press "Load Data"',
dmattek's avatar
dmattek committed
26 27
        accept = c('text/csv', 'text/comma-separated-values,text/plain')
      ),
dmattek's avatar
dmattek committed
28 29
      radioButtons("inRbutLongWide", "Data format:", c("Long" = 0, "Wide" = 1), width = "40%"),
      bsTooltip('inRbutLongWide', help.text.short[10], placement = "right", trigger = "hover", options = NULL),
dmattek's avatar
dmattek committed
30 31
      actionButton("inButLoadNuc", "Load Data"),
      actionButton("butReset", "Reset file input"),
32
      actionButton('inDataGen1', 'Synthetic data'),
dmattek's avatar
dmattek committed
33 34 35
      
      tags$hr(),
      checkboxInput('chBtrajRem', 'Upload IDs to remove'),
36
      bsTooltip('chBtrajRem', help.text.short[1], placement = "right", trigger = "hover", options = NULL),
dmattek's avatar
dmattek committed
37 38 39 40
      
      uiOutput('uiFileLoadTrajRem'),
      uiOutput('uiButLoadTrajRem'),
      
41
      #tags$hr(),
42
      checkboxInput('chBstim', 'Upload stimulation pattern'),
43
      bsTooltip('chBstim', help.text.short[4], placement = "right", trigger = "hover", options = NULL),
44 45 46 47
      
      uiOutput('uiFileLoadStim'),
      uiOutput('uiButLoadStim'),
      
48 49 50
      #tags$hr(),
      checkboxInput('chBtrajInter', 'Interpolate NAs and missing data', value = F),
      bsTooltip('chBtrajInter', help.text.short[3], placement = "right", trigger = "hover", options = NULL),
51 52
      
      uiOutput('varSelTimeFreq'),
53

dmattek's avatar
dmattek committed
54
      checkboxInput('chBtrackUni', 'Create unique ID', F),
55 56 57 58
      bsTooltip('chBtrackUni', help.text.short[2], placement = "right", trigger = "hover", options = NULL),
      
      tags$hr(),

dmattek's avatar
dmattek committed
59 60
      uiOutput('varSelSite'),
      uiOutput('varSelTrackLabel'),
61
      
62 63 64
      checkboxInput('chBgroup', 'Select grouping column', F),                
      bsTooltip('chBgroup', help.text.short[5], placement = "right", trigger = "hover", options = NULL),

dmattek's avatar
dmattek committed
65 66 67 68
      uiOutput('varSelGroup'),
      uiOutput('varSelTime'),
      uiOutput('varSelMeas1'),
      radioButtons(
Maciej Dobrzynski's avatar
Maciej Dobrzynski committed
69
        'inSelMath', width = '50%',
70
        'Math on 1st and 2nd meas.:',
dmattek's avatar
dmattek committed
71 72 73 74 75 76 77 78 79
        c(
          'None' = '',
          'Divide' = " / ",
          'Sum' = " + ",
          'Multiply' = " * ",
          'Subtract' = ' - ',
          '1 / X' = '1 / '
        )
      ),
80 81
      bsTooltip('inSelMath', help.text.short[6], placement = "right", trigger = "hover", options = NULL),
      
dmattek's avatar
dmattek committed
82 83
      uiOutput('varSelMeas2'),
      
dmattek's avatar
dmattek committed
84 85
      tags$hr(),
      checkboxInput('chBtimeTrim', 'Trim x-axis', FALSE),
86
      bsTooltip('chBtimeTrim', help.text.short[7], placement = "right", trigger = "hover", options = NULL),
dmattek's avatar
dmattek committed
87
      uiOutput('uiSlTimeTrim'),
88

dmattek's avatar
dmattek committed
89
      checkboxInput('chBnorm', 'Normalization', FALSE),
90
      bsTooltip('chBnorm', help.text.short[8], placement = "right", trigger = "hover", options = NULL),
dmattek's avatar
dmattek committed
91 92 93
      uiOutput('uiChBnorm'),
      uiOutput('uiSlNorm'),
      uiOutput('uiChBnormRobust'),
dmattek's avatar
dmattek committed
94
      uiOutput('uiChBnormGroup'),
95

dmattek's avatar
dmattek committed
96
      tags$hr(),
97 98
      downloadButton('downloadDataClean', 'Download mod\'d data'),
      bsTooltip('downloadDataClean', help.text.short[9], placement = "right", trigger = "hover", options = NULL)
99
    ),
dmattek's avatar
dmattek committed
100
    
101 102 103 104 105 106 107 108
    mainPanel(
      tabsetPanel(
        tabPanel(
          "Time series",
          h4(
            "Plot time series: means per group or individual"
          ),
          br(),
dmattek's avatar
dmattek committed
109
          modSelOutliersUI('returnOutlierIDs'),
110 111 112 113 114 115 116 117 118
          tabsetPanel(
            tabPanel("Means",
                     br(),
                     modTrajRibbonPlotUI('modTrajRibbon')
            ),
            
            tabPanel(
              "Individual",
              br(),
119
              checkboxInput('chBhighlightTraj', 'Highlight trajectories', FALSE),
120 121 122
              uiOutput('varSelHighlight'),
              br(),
              modTrajPlotUI('modTrajPlot')
123 124 125 126 127 128
            ),
            
            tabPanel(
              "Power Spectral Density",
              br(),
              modPSDPlotUI('modPSDPlot')
129 130
            )
          )
dmattek's avatar
dmattek committed
131
        ),
dmattek's avatar
dmattek committed
132
        
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
        tabPanel(
          "AUC",
          modAUCplotUI('tabAUC')
        ),
        
        tabPanel(
          "Box-plots",
          tabBoxPlotUI('tabBoxPlot')
        ),
        
        
        # scatter plot
        tabPanel(
          'Scatter',
          tabScatterPlotUI('tabScatter')
        ),
        
        tabPanel(
          'Hierarchical',
          clustHierUI('tabClHier')
dmattek's avatar
dmattek committed
153
        ),
154 155
        
        # sparse hierarchical clustering package sparcl temporarily unavailable from CRAN
dmattek's avatar
dmattek committed
156 157 158 159
         tabPanel(
           'Hierarchical Sparse',
           clustHierSparUI('tabClHierSpar')
        )
160
      ))
dmattek's avatar
dmattek committed
161 162
  )
))