ui.R 27.7 KB
Newer Older
Stevenn Volant's avatar
Stevenn Volant committed
1

Stevenn Volant's avatar
Stevenn Volant committed
2
3
4
5
6
if(!require(shinydashboard)){
  install.packages('shinydashboard')
  library(shinydashboard)
}

stevenn's avatar
stevenn committed
7
8
if (!require(psych)) {
  install.packages('psych')
Stevenn Volant's avatar
Stevenn Volant committed
9
  
stevenn's avatar
stevenn committed
10
  library(psych)
Stevenn Volant's avatar
Stevenn Volant committed
11
  
stevenn's avatar
stevenn committed
12
}
Stevenn Volant's avatar
Stevenn Volant committed
13

stevenn's avatar
stevenn committed
14
if (!require(ggplot2)) {
Stevenn Volant's avatar
Stevenn Volant committed
15
  
stevenn's avatar
stevenn committed
16
  install.packages('ggplot2')
Stevenn Volant's avatar
Stevenn Volant committed
17
  
stevenn's avatar
stevenn committed
18
  library(ggplot2)
Stevenn Volant's avatar
Stevenn Volant committed
19
  
stevenn's avatar
stevenn committed
20
}
Stevenn Volant's avatar
Stevenn Volant committed
21

stevenn's avatar
stevenn committed
22
if (!require(vegan)) {
Stevenn Volant's avatar
Stevenn Volant committed
23
  
stevenn's avatar
stevenn committed
24
  install.packages('vegan')
Stevenn Volant's avatar
Stevenn Volant committed
25
  
stevenn's avatar
stevenn committed
26
  library(vegan)
Stevenn Volant's avatar
Stevenn Volant committed
27
  
stevenn's avatar
stevenn committed
28
}
Stevenn Volant's avatar
Stevenn Volant committed
29

stevenn's avatar
stevenn committed
30
if (!require(dendextend)) {
Stevenn Volant's avatar
Stevenn Volant committed
31
  
stevenn's avatar
stevenn committed
32
  install.packages('dendextend')
Stevenn Volant's avatar
Stevenn Volant committed
33
  
stevenn's avatar
stevenn committed
34
  library(dendextend)
Stevenn Volant's avatar
Stevenn Volant committed
35
  
stevenn's avatar
stevenn committed
36
}
Stevenn Volant's avatar
Stevenn Volant committed
37

stevenn's avatar
stevenn committed
38
if (!require(circlize)) {
Stevenn Volant's avatar
Stevenn Volant committed
39
  
stevenn's avatar
stevenn committed
40
  install.packages('circlize')
Stevenn Volant's avatar
Stevenn Volant committed
41
  
stevenn's avatar
stevenn committed
42
  library(circlize)
Stevenn Volant's avatar
Stevenn Volant committed
43
  
stevenn's avatar
stevenn committed
44
}
Stevenn Volant's avatar
Stevenn Volant committed
45

stevenn's avatar
stevenn committed
46
if (!require(biom)) {
Stevenn Volant's avatar
Stevenn Volant committed
47
  
stevenn's avatar
stevenn committed
48
  install.packages('biom')
Stevenn Volant's avatar
Stevenn Volant committed
49
  
stevenn's avatar
stevenn committed
50
  library(biom)
Stevenn Volant's avatar
Stevenn Volant committed
51
  
stevenn's avatar
stevenn committed
52
}
Stevenn Volant's avatar
Stevenn Volant committed
53

stevenn's avatar
stevenn committed
54
if (!require(DT)) {
Stevenn Volant's avatar
Stevenn Volant committed
55
  
stevenn's avatar
stevenn committed
56
  install.packages('DT')
Stevenn Volant's avatar
Stevenn Volant committed
57
  
stevenn's avatar
stevenn committed
58
  library(DT)
Stevenn Volant's avatar
Stevenn Volant committed
59
  
stevenn's avatar
stevenn committed
60
}
Stevenn Volant's avatar
Stevenn Volant committed
61

stevenn's avatar
stevenn committed
62
if (!require(RColorBrewer)) {
Stevenn Volant's avatar
Stevenn Volant committed
63
  
stevenn's avatar
stevenn committed
64
  install.packages('RColorBrewer')
Stevenn Volant's avatar
Stevenn Volant committed
65
  
stevenn's avatar
stevenn committed
66
  library(RColorBrewer)
Stevenn Volant's avatar
Stevenn Volant committed
67
  
stevenn's avatar
stevenn committed
68
}
Stevenn Volant's avatar
Stevenn Volant committed
69

stevenn's avatar
stevenn committed
70
if (!require(gplots)) {
Stevenn Volant's avatar
Stevenn Volant committed
71
  
stevenn's avatar
stevenn committed
72
  install.packages('gplots')
Stevenn Volant's avatar
Stevenn Volant committed
73
  
stevenn's avatar
stevenn committed
74
  library(gplots)
Stevenn Volant's avatar
Stevenn Volant committed
75
  
stevenn's avatar
stevenn committed
76
}
Stevenn Volant's avatar
Stevenn Volant committed
77

stevenn's avatar
stevenn committed
78
if (!require(DESeq2)) {
Stevenn Volant's avatar
Stevenn Volant committed
79
  
stevenn's avatar
stevenn committed
80
  source("https://bioconductor.org/biocLite.R")
Stevenn Volant's avatar
Stevenn Volant committed
81
  
stevenn's avatar
stevenn committed
82
  biocLite("DESeq2")
Stevenn Volant's avatar
Stevenn Volant committed
83
  
stevenn's avatar
stevenn committed
84
  library(DESeq2)
Stevenn Volant's avatar
Stevenn Volant committed
85
  
stevenn's avatar
stevenn committed
86
}
Stevenn Volant's avatar
Stevenn Volant committed
87

stevenn's avatar
stevenn committed
88
if (!require(ade4)) {
Stevenn Volant's avatar
Stevenn Volant committed
89
  
stevenn's avatar
stevenn committed
90
  install.packages('ade4')
Stevenn Volant's avatar
Stevenn Volant committed
91
  
stevenn's avatar
stevenn committed
92
  library(ade4)
Stevenn Volant's avatar
Stevenn Volant committed
93
94
  
}
stevenn's avatar
stevenn committed
95
96

sidebar <- dashboardSidebar(
Stevenn Volant's avatar
Stevenn Volant committed
97
  
stevenn's avatar
stevenn committed
98
  sidebarMenu(
Stevenn Volant's avatar
Stevenn Volant committed
99
    
stevenn's avatar
stevenn committed
100
    menuItem("Home", tabName = "Home", icon = icon("home")),
Stevenn Volant's avatar
Stevenn Volant committed
101
    
102
    menuItem("Tutorial", tabName = "Tutorial", icon = icon("book")),
Stevenn Volant's avatar
Stevenn Volant committed
103
    
stevenn's avatar
stevenn committed
104
    menuItem("Upload your data", tabName = "Upload", icon = icon("upload")),
Stevenn Volant's avatar
Stevenn Volant committed
105
    
Stevenn Volant's avatar
logo    
Stevenn Volant committed
106
107
    menuItemOutput("dymMenu"),
    
Stevenn Volant's avatar
Stevenn Volant committed
108
    img(src = "logo.jpg", height = 75.4, width = 200,style="position:absolute;bottom:0;margin:0 0 15px 10px;")
Stevenn Volant's avatar
Stevenn Volant committed
109
    
stevenn's avatar
stevenn committed
110
  )
Stevenn Volant's avatar
Stevenn Volant committed
111
  
stevenn's avatar
stevenn committed
112
113
114
)

body <- dashboardBody(
Stevenn Volant's avatar
Stevenn Volant committed
115
  
stevenn's avatar
stevenn committed
116
  tabItems(
Stevenn Volant's avatar
Stevenn Volant committed
117
    
stevenn's avatar
stevenn committed
118
    tabItem(tabName = "Home",
Stevenn Volant's avatar
Stevenn Volant committed
119
            
Stevenn Volant's avatar
Stevenn Volant committed
120
            tabBox(title="Welcome to SHAMAN", id="tabset1", height = "700", width = 12,
Stevenn Volant's avatar
Stevenn Volant committed
121
                   
Stevenn Volant's avatar
Stevenn Volant committed
122
                   tabPanel("About", p("SHAMAN is a web interface for the analysis of metagenomic data including the normalization,
Stevenn Volant's avatar
Stevenn Volant committed
123
124
125
                                       
                                       the differential analysis and mutiple visualization.",style = "font-family: 'times'; font-si16pt"),
                            
Stevenn Volant's avatar
Stevenn Volant committed
126
                            p("SHAMAN is based on DESeq2 R package", a("[Anders and Huber 2010]", href="http://www.ncbi.nlm.nih.gov/pubmed/20979621"), "for the analysis of metagenomic data, as suggested in", a("[McMurdie and Holmes 2014]",href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3974642/"),
Stevenn Volant's avatar
Stevenn Volant committed
127
                              
Stevenn Volant's avatar
Stevenn Volant committed
128
                              ". SHAMAN robustly identifies the differential abundant genera with the Generalized Linear Model implemented in DESeq2", a("[Love 2014]", href="http://www.ncbi.nlm.nih.gov/pubmed/25516281"),".
Stevenn Volant's avatar
Stevenn Volant committed
129
130
131
132
133
                              
                              Resulting p-values are adjusted according to the Benjamini and Hochberg procedure [Benjamini and Hochberg 1995].
                              
                              The PCOA is performed with the", a("ade4 R package",href="http://pbil.univ-lyon1.fr/ade4/"), "and plots are generated with", a("ggplot2",href="http://ggplot2.org/"), "or", a("D3.js packages",href="http://d3js.org/"), ".", style = "font-family: 'times'; font-si16pt")),
                   
Stevenn Volant's avatar
Stevenn Volant committed
134
                   tabPanel("Authors", h3("The main contributors to SHAMAN:"),
Stevenn Volant's avatar
Stevenn Volant committed
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
                            
                            p(a("Stevenn Volant", href="mailto:stevenn.volant@pasteur.fr"), "(Initiator, coding, testing, documentation, evaluation)"),
                            
                            p(a("Amine Ghozlane",href="mailto:amine.ghozlane@pasteur.fr"), "(Coding, testing, documentation, evaluation)"),
                            
                            p(a("Hugo Varet",href="mailto:hugo.varet@pasteur.fr"), "(Coding, testing, feature suggestions)"),
                            
                            p(a("Pierre Lechat",href="mailto:pierre.lechat@pasteur.fr"), "(Coding, testing, feature suggestions)"),
                            
                            p(a("Marie-Agnès Dillies",href="mailto:marie-agnes.dillies@pasteur.fr"), "(Evaluation)"),
                            
                            p(a("Sean Kennedy",href="mailto:sean.kennedy@pasteur.fr"), "(Evaluation)"),
                            
                            h3("Acknowledgements"),
                            
                            p("Thanks to the following people for patches and other suggestions for improvements:"),
                            
Stevenn Volant's avatar
logo    
Stevenn Volant committed
152
153
                            p(a("Christophe Malabat",href="mailto:christophe.malabat@pasteur.fr"),a(", Anna Zhukova",href="mailto:anna.zhukova@pasteur.fr"))
                          ),
Stevenn Volant's avatar
Stevenn Volant committed
154
                   
Stevenn Volant's avatar
Stevenn Volant committed
155
                   tabPanel("Citing SHAMAN",p("No papers about SHAMAN have been published yet, but a manuscript is in preparation.",style = "font-family: 'times'; font-si16pt"),
Stevenn Volant's avatar
Stevenn Volant committed
156
                            
Stevenn Volant's avatar
Stevenn Volant committed
157
                            p("For now, if you have any comments, questions or suggestions, or want to use SHAMAN please contact", a("Dr. Marie-Agnès Dillies", href="mailto:marie-agnes.dillies@pasteur.fr"),".", style = "font-family: 'times'; font-si16pt; color:red"))
Stevenn Volant's avatar
logo    
Stevenn Volant committed
158
159
            )
                   
Stevenn Volant's avatar
Stevenn Volant committed
160
161
162
    ),      

    
163
    tabItem(tabName = "Tutorial",
Stevenn Volant's avatar
Stevenn Volant committed
164
            
165
            h2("How to !")
Stevenn Volant's avatar
Stevenn Volant committed
166
            
167
    ),
Stevenn Volant's avatar
Stevenn Volant committed
168
    
stevenn's avatar
stevenn committed
169
170
171
    tabItem(tabName = "Upload",
            tags$style(type='text/css', ".well { max-width: 20em; }"),
            fluidRow(
Stevenn Volant's avatar
Stevenn Volant committed
172
173
174
175
176
177
178
              column(width=3,valueBoxOutput("valueErrorPercent",width=NULL)),
              column(width=3,infoBoxOutput("InfoErrorCounts",width=NULL)),
              column(width=3,infoBoxOutput("InfoErrorTaxo",width=NULL))
            ),
            br(),
             fluidRow(
                box(title="Select your file format",width = 3,status = "success", solidHeader = TRUE,collapsible = FALSE,
stevenn's avatar
stevenn committed
179
                  selectInput("FileFormat","",c("Counts table & taxonomy"="fileCounts","BIOM file"="fileBiom"),selected="fileCounts")
Stevenn Volant's avatar
Stevenn Volant committed
180
                ),
stevenn's avatar
stevenn committed
181
                conditionalPanel(condition="input.FileFormat=='fileCounts'",
Stevenn Volant's avatar
Stevenn Volant committed
182
                  box(title="Load the counts table",width = 3,height = "250px", status = "primary", solidHeader = TRUE,collapsible = FALSE,
stevenn's avatar
stevenn committed
183
                    fileInput('fileCounts', h6(strong('Select your file')),width="100%")
stevenn's avatar
stevenn committed
184
                  ),
stevenn's avatar
stevenn committed
185
                  
Stevenn Volant's avatar
Stevenn Volant committed
186
187
188
189
190
191
192
                  box(title="Load the taxonomy file",width = 3,height = "250px", status = "primary", solidHeader = TRUE,collapsible = FALSE,
                      fluidRow(
                        column(width=6,radioButtons("TypeTaxo",h6(strong("Format:")),c("Table"="Table","RDP"="RDP"))),
                        column(width=6,
                             conditionalPanel(condition="input.TypeTaxo=='RDP'",numericInput("RDP_th",h6(strong("Threshold:")),0.5,step=0.01,min=0.01,max=1))
                        )
                      ),
stevenn's avatar
stevenn committed
193
                      fileInput('fileTaxo', h6(strong('Select your file')),width="100%")
stevenn's avatar
stevenn committed
194
195
196
197
198
                  )
                  
                ),
                
                conditionalPanel(condition="input.FileFormat=='fileBiom'",
Stevenn Volant's avatar
Stevenn Volant committed
199
                                 box(title="Load the BIOM file",width = 3,height = "250px", status = "primary", solidHeader = TRUE,collapsible = FALSE,
stevenn's avatar
stevenn committed
200
201
202
                                     fileInput('fileBiom', h5(strong('Select your file')),width="100%")
                                 )           
                )
Stevenn Volant's avatar
Stevenn Volant committed
203
             ),
stevenn's avatar
stevenn committed
204
205
206
              column(12,uiOutput("TabBoxData"))

              
Stevenn Volant's avatar
Stevenn Volant committed
207
          
stevenn's avatar
stevenn committed
208
209
    ),
    
stevenn's avatar
stevenn committed
210
211
212
  #### Statistical analysis

    tabItem(tabName = "RunDiff",
stevenn's avatar
stevenn committed
213
214
215
            fluidRow(
              column(width=3,infoBoxOutput("RowTarget",width=NULL)),
              column(width=3,infoBoxOutput("InfoTaxo",width=NULL)),
216
217
              column(width=3,infoBoxOutput("InfoDESeq",width=NULL)),
              column(width=3,conditionalPanel(condition="input.RunDESeq>=1",infoBoxOutput("InfoContrast",width=NULL)))
Stevenn Volant's avatar
Stevenn Volant committed
218
            ),            
stevenn's avatar
stevenn committed
219
            fluidRow(
stevenn's avatar
stevenn committed
220
221
222
              column(width=5,
                box(title="Experimental design",width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed = FALSE,
                  fluidRow(
stevenn's avatar
stevenn committed
223
224
                    column(width=6,fileInput('fileTarget', h6(strong('Select your target file')),width="100%")),
                    column(width=6,uiOutput("SelectTaxo"))
stevenn's avatar
stevenn committed
225
226
227
228
                  ),
                  fluidRow( 
                    column(width=6,uiOutput("SelectInterestVar")),
                    column(width=6,uiOutput("SelectInteraction2")),
229
                    column(width=6,uiOutput("RunButton"))
stevenn's avatar
stevenn committed
230
                  )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
231
232
233
                ),
                uiOutput("BoxTarget"),
                uiOutput("BoxCountsMerge")
stevenn's avatar
stevenn committed
234
              ),
stevenn's avatar
stevenn committed
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
       
              column(width=7,
                box(title="Options",width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed = TRUE,
                  fluidRow(
                    column(width=3,
                      radioButtons("TransType",h6(strong("Type of transformation")),choices = c("VST"="VST","rlog"="rlog"))
                    ), 
                    column(width=3,
                      radioButtons("IndFiltering",h6(strong("Independent filtering")),choices = c("True"=TRUE,"False"=FALSE))
                    ),
                    column(width=3,
                      radioButtons("AdjMeth",h6(strong("p-value adjustement")),choices = c("BH"="BH","BY"="BY"))
                    ),
                    column(width=3,
                      textInput("AlphaVal",h6(strong("Level of significance")),value=0.05)
                    )
                  ),
                  fluidRow(
                    column(width=3,
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
254
                           radioButtons("CooksCutOff",h6(strong("Cooks cut-off")),choices = c("Auto"='Auto',"No cut-off"=Inf,"Value"="val")),
stevenn's avatar
stevenn committed
255
256
257
258
259
260
261
262
263
                           conditionalPanel(condition="input.CooksCutOff=='val'",textInput("CutOffVal",h6("Cut-off:"),value=0))
                    ),
                    
                    column(width=3,
                      radioButtons("locfunc",h6(strong("Local function")),choices = c("Median"="median","Shorth"="shorth"))
                    ),  
                    column(width=3,
                      radioButtons("fitType",h6(strong("Relationship")),choices = c("Parametric"="parametric","Local"="local"))
                    ),
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
264
265
266
267
268
                    column(width=3,
                      conditionalPanel(condition="input.FileFormat=='fileCounts' && input.TypeTaxo=='RDP'",
                        sliderInput("ThreshProba",h6(strong("Probability threshold (rdp annotation)")),min=0.01, max=1,value=0.5,step = 0.01)
                      )
                    ),
stevenn's avatar
stevenn committed
269
270
                    column(width=3,uiOutput("RefSelect"))
                  )
stevenn's avatar
stevenn committed
271
                ),
272
273
                fluidRow(
                column(width=8,
Stevenn Volant's avatar
Stevenn Volant committed
274
#                        uiOutput("contrastBox"),
275
276
277
278
279
280
                       uiOutput("contrastBoxAdvanced")
                       ),
                column(width=4,
                       uiOutput("contrastDefined")
                )  
                ) 
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
281
              )
stevenn's avatar
stevenn committed
282
283
            )
            
stevenn's avatar
stevenn committed
284
    ),
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
285
    tabItem(tabName = "DiagPlotTab",
stevenn's avatar
stevenn committed
286
            fluidRow(
stevenn's avatar
stevenn committed
287
              column(width=9,
Stevenn Volant's avatar
Stevenn Volant committed
288
289
290
                     
                plotOutput("PlotDiag",height="100%"),
                br(),
291
                conditionalPanel(condition="input.DiagPlot=='SfactorsVStot'",
stevenn's avatar
stevenn committed
292
293
294
                  box(title = "Size factors",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= TRUE,
                    dataTableOutput("SizeFactTable")
                  )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
295
296
297
298
                ),
                  
                conditionalPanel(condition="input.DiagPlot=='pcaPlot'",
                                 box(title = "Eigen values",  width = 6, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= FALSE,
Stevenn Volant's avatar
Stevenn Volant committed
299
                                    plotOutput("PlotEigen",height="100%")
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
300
301
302
303
                                 )
                ),
                conditionalPanel(condition="input.DiagPlot=='pcoaPlot'",
                                 box(title = "Eigen values",  width = 6, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= FALSE,
Stevenn Volant's avatar
Stevenn Volant committed
304
                                     plotOutput("PlotpcoaEigen",height="100%")
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
305
                                 )
stevenn's avatar
stevenn committed
306
                )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
307
                
stevenn's avatar
stevenn committed
308
309
              ),
              column(width=3,
310
311
312
                box(title = "Select your plot",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = FALSE,collapsed= FALSE,
                  selectInput("DiagPlot","",c("Total barplot"="barplotTot","Nul barplot"="barplotNul",
                                              "Maj. taxonomy"="MajTax", "Density"="densityPlot", 
313
                                              "Size factors VS total"="SfactorsVStot", "PCA"="pcaPlot", "PCoA"="pcoaPlot","Clustering" = "clustPlot"))
314
                    ),
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
315
                box(title = "Options",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= FALSE,
316
                    
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
317
318
319
                    conditionalPanel(condition="input.DiagPlot!='Sfactors' && input.DiagPlot!='SfactorsVStot' ",uiOutput("VarIntDiag")),
                    conditionalPanel(condition="input.DiagPlot=='pcoaPlot'",
                                     h5(strong("Select the modalities")),
Stevenn Volant's avatar
Stevenn Volant committed
320
321
322
323
324
325
                                     uiOutput("ModMat")
                    ),
                    conditionalPanel(condition="input.DiagPlot=='pcoaPlot' || input.DiagPlot=='SERE' || input.DiagPlot=='clustPlot' ",
                      selectInput("DistClust","Distance",c("euclidean", "SERE"="sere", "canberra", "bray", "kulczynski", "jaccard", 
                                                         "gower", "altGower", "morisita", "horn","mountford","raup","binomial",
                                                         "chao","cao","mahalanobis"),selected="jaccard")
326
                    )
Stevenn Volant's avatar
Stevenn Volant committed
327
                    
stevenn's avatar
stevenn committed
328
329
330
331
332
333
334
#                 conditionalPanel(condition="input.RadioPlotBi=='Nuage'",selectInput("ColorBiplot", "Couleur",choices=c("Bleue" = 'blue',"Rouge"='red',"Vert"='green', "Noir"='black'),width="50%")),
#                 sliderInput("TransAlphaBi", "Transparence",min=1, max=100, value=50, step=1),
#                 conditionalPanel(condition="input.RadioPlotBi!='Nuage'", radioButtons("SensGraphBi","Sens du graph",choices=c("Vertical"="Vert","Horizontal"="Hori"))),
#                 conditionalPanel(condition="input.RadioPlotBi=='box'", checkboxInput("CheckAddPointsBoxBi","Ajouter les données",value=FALSE)) 
               ),
                box(
                  title = "Appearance",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= TRUE,
335
336
337
338
#                     conditionalPanel(condition="input.DiagPlot=='Sfactors'",
#                                      h6(strong("Layout")),
#                                      numericInput("NbcolSfactors", h6("Columns"),min=1,value = NA)
#                     ),
Stevenn Volant's avatar
Stevenn Volant committed
339
340
                  sliderInput("heightDiag", "Height",min=100,max=1500,value = 500,step =10),

Amine  GHOZLANE's avatar
Amine GHOZLANE committed
341
342
343
344
345
346
347
348
349
350
351
352
                  conditionalPanel(condition="input.DiagPlot=='clustPlot'",
                                   h6(strong("Layout")),
                                   selectInput("typeHculst", h6("Type"),c("Horizontal"="hori","Fan"="fan")),
                                   checkboxInput("colorHC","Add color",value=TRUE)
                  ),
                  conditionalPanel(condition="input.DiagPlot=='pcoaPlot'",  selectInput("labelPCOA","Label type",c("Group", "Sample"),selected="Group"),
                                   #checkboxInput("colorgroup","Same color for the group",value=FALSE),
                                   sliderInput("cexcircle", "Circle size",min=0,max=2,value = 0.9,step =0.1),
                                   sliderInput("cexpoint", "Point size",min=0,max=3,value = 1,step =0.1),
                                   sliderInput("cexstar", "Star height",min=0,max=1,value = 0.95,step =0.1)
                                   
                  ),
Stevenn Volant's avatar
Stevenn Volant committed
353
354
355
356
357
358
359
360
361
362
363
                  conditionalPanel(condition="input.DiagPlot=='SfactorsVStot'",
                    checkboxInput("addLabelSFact","Add label",FALSE)
                  ),

                  fluidRow(
                    column(width=12, p(strong("Size"))),
                    column(width=6,sliderInput("cexTitleDiag", h6("Axis"),min=0,max=5,value = 1,step =0.1)),
                    conditionalPanel(condition="input.DiagPlot=='SfactorsVStot' || input.DiagPlot=='pcaPlot'",column(width=6,sliderInput("cexLabelDiag", h6("Points"),min=0,max=5,value = 1,step =0.1)))
                    
                  )

Amine  GHOZLANE's avatar
Amine GHOZLANE committed
364
365
#                   sliderInput("widthDiag", "width",min=100,max=1500,value = 1000,step =10)
                 
stevenn's avatar
stevenn committed
366

stevenn's avatar
stevenn committed
367
368
369
370
371
372
373
374
375
376
377
378
379
380
              ),
              box(title = "Export",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= TRUE,
                  selectInput("Exp_format",h5(strong("Export format")),c("png"="png","pdf"="pdf","eps"="eps","svg"="svg"), multiple = FALSE),
                  fluidRow(
                  column(width=6,numericInput("heightDiagExport", "Height (in px)",min=100,max=NA,value = 500,step =1)),
                  column(width=6,numericInput("widthDiagExport", "Width (in px)",min=100,max=NA,value = 500,step =1))
                  ),
                  downloadButton("exportdiag", "Export")
                  
#                   downloadButton("exportPDFdiag", "Download pdf"),
#                   downloadButton("exportPNGdiag", "Download png"),
#                   downloadButton("exportEPSdiag", "Download eps"),
#                   downloadButton("exportSVGdiag", "Download svg"),
                  
stevenn's avatar
stevenn committed
381
382
383
              )
            )
        )
stevenn's avatar
stevenn committed
384
385
386
    ),
    tabItem(tabName = "TableDiff",
            fluidRow(
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
387
388
389
390
391
              column(width=9,uiOutput("TabBoxDataDiff")),
              column(width=3,
                     box(title = "Select your contrast",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= FALSE,
                         selectInput("ContrastList_table",h6(strong("Contrast list")),"", multiple = FALSE),
                         htmlOutput("ContrastOverviewTable")
392
393
394
395
396
                     ),
                     box(title = "Export",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= TRUE,
                         fluidRow(column(width=12,selectInput("WhichExportTable", "Select the table to export",c("Complete"="Complete","Up"="Up","Down"="Down")))),
                         uiOutput("ExportTableButton")   
                     )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
397
398
            )
            )
stevenn's avatar
stevenn committed
399
400
401
402
    ),
  
  #### Data Viz
  
403
  tabItem(tabName = "Visu",
stevenn's avatar
stevenn committed
404
          fluidRow(
405
            column(width=9,
Stevenn Volant's avatar
Stevenn Volant committed
406
                   uiOutput("plotVisu")
407
            ),
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
408
409

            column(width=3,
410
411
412
413
414
415
416
417
418
419
420
421
422
              box(title = "Select your plot",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = FALSE,collapsed= FALSE,
                  selectizeInput("PlotVisuSelect","",c("Barplot"="Barplot","Heatmap"="Heatmap","Boxplot"="Boxplot","Diversity"="Diversity","Rarefaction"="Rarefaction"),selected = "Barplot")
              ),
              
              
              
              ########################################################################
              ###
              ###               Options Visualization
              ###
              ########################################################################
              
              
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
423
              box(title = "Options",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= FALSE,
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
                  
                  conditionalPanel(condition="input.PlotVisuSelect!='Rarefaction'",
                                    uiOutput("VarIntVisu")
                  ),
                  conditionalPanel(condition="input.PlotVisuSelect!='Rarefaction' && input.PlotVisuSelect!='Diversity'",
                                   radioButtons("SelectSpecifTaxo","Select the features",c("Most abundant"="Most","All"="All", "Differential features" = "Diff"))
                  ),
                  conditionalPanel(condition="input.PlotVisuSelect!='Rarefaction' && input.PlotVisuSelect!='Diversity' && input.SelectSpecifTaxo=='Diff'",
                                   selectizeInput("ContrastList_table_Visu","",choices = "", multiple = FALSE)
                  ),
                  conditionalPanel(condition="input.PlotVisuSelect!='Rarefaction' && input.PlotVisuSelect!='Diversity'",
                                   uiOutput("TaxoToPlotVisu")
                  ),

                  
                  
                ##################
                ## BARPLOT
                ##################
                conditionalPanel(condition="input.PlotVisuSelect=='Barplot'",
                                 selectizeInput(inputId = "CountsOrProp",label = h6(strong("Type of data")),choices = c("Proportions" = "prop", "Counts" = "counts"),selected = "prop")
                ),
                
                
                ##################
                ## HEATMAP
                ##################
                conditionalPanel(condition="input.PlotVisuSelect=='Heatmap'",
                                 selectizeInput(inputId = "HeatMapType",label = h6(strong("Type of data")),choices = c("Counts" = "Counts", "Log2FC" = "Log2FC"),selected = "Counts")                                 
                ),
                conditionalPanel(condition="input.PlotVisuSelect=='Heatmap' && input.HeatMapType=='Log2FC'",
                                 selectizeInput("ContrastList_table_FC",h6(strong("Contrasts (Min = 2)")),choices = "", multiple = TRUE)
                ),
                conditionalPanel(condition="input.PlotVisuSelect=='Heatmap'",
                                 selectizeInput(inputId = "scaleHeatmap",label = h6(strong("Scale:")),choices = c("None" = "none", "Rows" = "row", "Column" = "col"),selected = "none")
                                 
                ),
                
                ##################
                ## BOXPLOT
                ##################
                conditionalPanel(condition="input.PlotVisuSelect=='Boxplot'",
                                 selectizeInput("typeDataBox",h6(strong("Type of data")),c("Log2"="Log2","Relative"="Relative"))
                ),
                
                ##################
                ## DIVERSITY
                ##################
                conditionalPanel(condition="input.PlotVisuSelect=='Diversity'",
                                 selectizeInput("WhichDiv",h6(strong("Diversity")),c('Alpha','Beta','Gamma'),selected  = c('Alpha','Beta','Gamma'),multiple=TRUE),
                                 checkboxInput("AddBoxplotDiv","AddBoxplot",value=FALSE)
                ),
                conditionalPanel(condition="input.PlotVisuSelect=='Diversity' && input.AddBoxplotDiv",
                                 uiOutput("SelectVarBoxDiv")
                )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
479
              ),
480
481
482
483
484
485
486
487
488
              
              
              ########################################################################
              ###
              ###               Appearance Visualization
              ###
              ########################################################################
              
              
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
489
              box(title = "Appearance",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= TRUE,
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
490
                sliderInput("heightVisu", h6(strong("Height")),min=100,max=4000,value = 800),
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
491

Stevenn Volant's avatar
Stevenn Volant committed
492
493

                
494
495
496
497
                ##################
                ## BOXPLOT
                ##################
                conditionalPanel(condition="input.PlotVisuSelect=='Boxplot'",
Stevenn Volant's avatar
Stevenn Volant committed
498
                                 radioButtons("ScaleBoxplot","Scales",c("Fixed"="fixed","Free"="free"),inline=TRUE),
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
                                 checkboxInput("CheckAddPointsBox","Add points",value=TRUE)
                ),
                
                ##################
                ## DIVERSITY
                ##################
                conditionalPanel(condition="input.PlotVisuSelect=='Diversity'",
                                 sliderInput("sizePointGlobal", h6(strong("Points size")),min=0.5,max=10,value =3,step=0.5),
                                 checkboxInput("SplitVisuGlobal","Split diversity",value=FALSE)
                ),
                
                ##################
                ## HEATMAP
                ##################
                conditionalPanel(condition="input.PlotVisuSelect=='Heatmap' && input.HeatMapType!='Log2FC'",
Stevenn Volant's avatar
Stevenn Volant committed
514
                                 selectInput("colors", label=h6(strong("Gradient of colors")),choices = c("green-blue", "blue-white-red", "purple-white-orange", "red-yellow-green"),selected = "blue-white-red")
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
                ),
                conditionalPanel(condition="input.PlotVisuSelect=='Heatmap'",
                                 fluidRow(
                                   column(width=12,h6(strong("Labels options"))),
                                   column(width=6,sliderInput("LabelSizeHeatmap", h6("Size"),min=0.1,max=2,value = 0.7,step = 0.1)),
                                   column(width=6,sliderInput("LabelOrientHeatmap", h6("Orientation"),min=0,max=90,value = 0,step = 5)),
                                   column(width=6,sliderInput("LabelColOffsetHeatmap", h6("Column offset"),min=0,max=4,value = 0,step = 0.5)),
                                   column(width=6,sliderInput("LabelRowOffsetHeatmap", h6("Row offset"),min=0,max=4,value = 0,step = 0.5)),
                                   
                                   column(width=12,h6(strong("Margins options"))),
                                   column(width=6,sliderInput("rightMargin", h6("Right"),min=0,max=20,value = 6,step = 1)),
                                   column(width=6,sliderInput("lowerMargin", h6("Lower"),min=0,max=20,value = 6,step = 1))
                                 )
                ),              
                
                ##################
                ## ALL
                ##################
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
533

534
535
536
537
                conditionalPanel(condition="input.PlotVisuSelect!='Rarefaction'",
                                 radioButtons(inputId = "SensPlotVisu",label = h6(strong("Orientation")),choices = c("Vertical" = "Vertical", "Horizontal" = "Horizontal"),selected = "Vertical",inline = TRUE)
                )
                
Stevenn Volant's avatar
Stevenn Volant committed
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
              ),
              box(title = "Export",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= TRUE,
                  ##################
                  ## BARPLOT
                  ##################
                  conditionalPanel(condition="input.PlotVisuSelect=='Barplot'",
                                   radioButtons("positionBarPlot","Position",c("Grouped"="fill","Stacked"="dodge"),inline=TRUE)
                  ),
                  
                  selectInput("Exp_format_Visu",h5(strong("Export format")),c("png"="png","pdf"="pdf","eps"="eps","svg"="svg"), multiple = FALSE),
                  fluidRow(
                    column(width=6,numericInput("heightVisuExport", "Height (in px)",min=100,max=NA,value = 500,step =1)),
                    column(width=6,numericInput("widthVisuExport", "Width (in px)",min=100,max=NA,value = 500,step =1))
                  ),
                  downloadButton("exportVisu", "Export")
                  
554
              )
Stevenn Volant's avatar
Stevenn Volant committed
555
              
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
556
557
558
            )
          )
  ),
559
  
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
560
561
562



stevenn's avatar
stevenn committed
563
564
  #### Krona plot
  tabItem(tabName = "Krona",
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
565
566
567
 
         fluidRow(
            column(width=3,tableOutput("krona") )
Stevenn Volant's avatar
Stevenn Volant committed
568
 #includeHTML("file:///home/aghozlan/workspace/SHAMAN_App/www/text.krona.html")
stevenn's avatar
stevenn committed
569
570
          )  
  )       
stevenn's avatar
stevenn committed
571
              
stevenn's avatar
stevenn committed
572
573
             )
     
stevenn's avatar
stevenn committed
574
575
576
    
    
  )
stevenn's avatar
stevenn committed
577

Stevenn Volant's avatar
logo    
Stevenn Volant committed
578
579
580
581
  ## Logo SHAMAN
  dbHeader <- dashboardHeader(title = "SHAMAN")
  dbHeader$children[[2]]$children <-  tags$a(tags$img(src='akuaku.png',height='40',width='50',style="margin:5px 0 5px 0;",align='left'), tags$h3("SHAMAN",style="font-family:Purisa; margin:15px 25px 5px 0;color:white;"))
  
stevenn's avatar
stevenn committed
582
# Put them together into a dashboardPage
Stevenn Volant's avatar
logo    
Stevenn Volant committed
583
584
585
586
587
  dashboardPage(skin="blue",
    dbHeader,
    sidebar,
    body
  )
stevenn's avatar
stevenn committed
588
589