ui.R 32.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 = 49, width = 220,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
            
120
            tabBox(title="Welcome to SHAMAN", id="tabset1", width = 12,
Stevenn Volant's avatar
Stevenn Volant committed
121
                   
122
                   tabPanel("About", p("SHAMAN is a SHiny application for Metagenomic ANalysis 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
                              
                              Resulting p-values are adjusted according to the Benjamini and Hochberg procedure [Benjamini and Hochberg 1995].
                              
Stevenn Volant's avatar
Stevenn Volant committed
132
133
134
135
136
                              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"),
                            p("Hereafter is the global workflow of the SHAMAN application:"),
                            img(src = "Workflow.png",height = 526, width = 700)
                            
                            ),
Stevenn Volant's avatar
Stevenn Volant committed
137
                   
Stevenn Volant's avatar
Stevenn Volant committed
138
                   tabPanel("Authors", h3("The main contributors to SHAMAN:"),
Stevenn Volant's avatar
Stevenn Volant committed
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
                            
                            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
Stevenn Volant committed
156
                            p(a("Christophe Malabat",href="mailto:christophe.malabat@pasteur.fr"),a(", Julien Tap",href="mailto:julien.tap@danone.com"),a(", Anna Zhukova",href="mailto:anna.zhukova@pasteur.fr"), a(", Rachel Torchet",href="mailto:rachel.torchet@pasteur.fr"))
Stevenn Volant's avatar
logo    
Stevenn Volant committed
157
                          ),
Stevenn Volant's avatar
Stevenn Volant committed
158
                   
Stevenn Volant's avatar
Stevenn Volant committed
159
                   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
160
                            
Stevenn Volant's avatar
Stevenn Volant committed
161
                            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
162
163
            )
                   
Stevenn Volant's avatar
Stevenn Volant committed
164
165
166
    ),      

    
167
    tabItem(tabName = "Tutorial",
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
            tabBox(title="How to use SHAMAN", id="tabset1", width = 12,
                   
            tabPanel("Introduction",
            p(" You can test SHAMAN with the dataset from", a("[Tap et al. 2015]",href="http://www.ncbi.nlm.nih.gov/pubmed/26235304"),
              ", which is available", a("here",target="_blank",href="Alimintest.zip"),"."),
            p("The zip archive contains 4 different files :", br(),
              "- the otu count matrix : Alimintest_otu_table.csv,", br(),
              "- the otu annotation table : Alimintest_otu_table.csv,", br(),
              "- the experimental design : Alimintest_target.csv,", br(),
              "- the contrast table : Alimintest_contrasts.csv."),
            p("Two groups of person follow two  strict diet periods that involve the intake of 40g following 10g of fiber per day, or 10g of fiber after a 40g fiber intake period :"),
            img(src = "tutorial/FigS1.png",height = 400, width = 700),
            p("The 16S rRNA (V3 - V4 regions) from fece samples was sequenced at time stamp : 2, 3, 4 and 5.", br(),
              "The analysis will consider the different impact of the different fiber intake and the comparison to patient metabolic data.")),
            tabPanel("1-Load 16S data",
            p("The first step consist to load the count matrix and the annotation table as follow :"),
            p("- Select 'Upload your data'", br(),
              "- Load the counts table :",br(), img(src = "tutorial/tutorial_upload1.png"),br(),
              "- Load the annotation table :", br(), img(src = "tutorial/tutorial_upload2.png"),br(),
              "- When successfully loaded, the tables are accessible as bellow :",br(),
              img(src = "tutorial/tutorial_upload3.png"),img(src = "tutorial/tutorial_upload4.png"))),
            tabPanel("2-Differential analysis",
            p("The second step consist to load the experimental design and the contrast table as follow :"),
            p("- Select 'Run differential analysis'",br(),
              "- Load the target file :",br(),img(src = "tutorial/tutorial_target.png"),br(),
              "- Identify the taxonomy level where the analysis will be performed :",br(),img(src = "tutorial/tutorial_target1.png"),br(),
              "- Identify the interactions :",br(),img(src = "tutorial/tutorial_target2.png"),br(),
              "- Run the analysis :",br(),img(src = "tutorial/tutorial_target3.png"),br(),
              "- When successfully loaded, the tables are accessible as bellow :",br(),img(src = "tutorial/tutorial_target4.png")),
            p("- Finaly, load the contrast file :",br(),img(src = "tutorial/tutorial_contraste.png"),br(),
              "- Contrasts can be visualized as follow :",br(),img(src = "tutorial/tutorial_contraste1.png"))),
            tabPanel("3-Diagnostic plots",
            p("'Diagnostic plots' section provides several visualization to control the analysis",br(),
              "- Total mapped read count",br(),img(src="tutorial/tutorial_total_barplot.png"),br(),
              "- Nul barplot count",br(),img(src="tutorial/tutorial_nul_barplot.png"),br(),
              "- Maj taxonomy count",br(),img(src="tutorial/tutorial_maj_taxonomy.png"),br(),
              "- Density of counts",br(),img(src="tutorial/tutorial_density.png"),br(),
              "- Size factors vs total number of reads",br(),img(src="tutorial/tutorial_size_factor.png"),br(),
              "- PCA",br(),img(src="tutorial/tutorial_pca.png"),br(),
              "- PCOA",br(),img(src="tutorial/tutorial_pcoa.png"),br(),
              "- Clustering",br(),img(src="tutorial/tutorial_clustering.png"))),
            tabPanel("4-Differential analysis results",
            img(src = "tutorial/tutorial_table.png")),
            tabPanel("5-Visualization",
                     p("'Diagnostic plots' section provides several visualization to control the analysis",br(),
                     "- Barplot",br(),img(src="tutorial/tutorial_barplot.png"),br(),
                     "- Heatmap",br(),img(src="tutorial/tutorial_heatmap.png"),br(),
                     "- Boxplot",br(),img(src="tutorial/tutorial_boxplot.png"),br(),
                     "- Diversity",br(),img(src="tutorial/tutorial_diversity.png"),br(),
Stevenn Volant's avatar
Stevenn Volant committed
217
                     "- Rarefaction",br(),img(src="tutorial/tutorial_rarefaction.png"))))
218
    ),
Stevenn Volant's avatar
Stevenn Volant committed
219
    
stevenn's avatar
stevenn committed
220
221
222
    tabItem(tabName = "Upload",
            tags$style(type='text/css', ".well { max-width: 20em; }"),
            fluidRow(
Stevenn Volant's avatar
Stevenn Volant committed
223
224
225
226
227
228
229
              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
230
                  selectInput("FileFormat","",c("Counts table & taxonomy"="fileCounts","BIOM file"="fileBiom"),selected="fileCounts")
Stevenn Volant's avatar
Stevenn Volant committed
231
                ),
stevenn's avatar
stevenn committed
232
                conditionalPanel(condition="input.FileFormat=='fileCounts'",
Stevenn Volant's avatar
Stevenn Volant committed
233
                  box(title="Load the counts table",width = 3,height = "250px", status = "primary", solidHeader = TRUE,collapsible = FALSE,
stevenn's avatar
stevenn committed
234
                    fileInput('fileCounts', h6(strong('Select your file')),width="100%")
stevenn's avatar
stevenn committed
235
                  ),
stevenn's avatar
stevenn committed
236
                  
Stevenn Volant's avatar
Stevenn Volant committed
237
238
239
240
241
242
243
                  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
244
                      fileInput('fileTaxo', h6(strong('Select your file')),width="100%")
stevenn's avatar
stevenn committed
245
246
247
248
249
                  )
                  
                ),
                
                conditionalPanel(condition="input.FileFormat=='fileBiom'",
Stevenn Volant's avatar
Stevenn Volant committed
250
                                 box(title="Load the BIOM file",width = 3,height = "250px", status = "primary", solidHeader = TRUE,collapsible = FALSE,
stevenn's avatar
stevenn committed
251
252
253
                                     fileInput('fileBiom', h5(strong('Select your file')),width="100%")
                                 )           
                )
Stevenn Volant's avatar
Stevenn Volant committed
254
             ),
stevenn's avatar
stevenn committed
255
256
257
              column(12,uiOutput("TabBoxData"))

              
Stevenn Volant's avatar
Stevenn Volant committed
258
          
stevenn's avatar
stevenn committed
259
260
    ),
    
stevenn's avatar
stevenn committed
261
262
263
  #### Statistical analysis

    tabItem(tabName = "RunDiff",
stevenn's avatar
stevenn committed
264
265
266
            fluidRow(
              column(width=3,infoBoxOutput("RowTarget",width=NULL)),
              column(width=3,infoBoxOutput("InfoTaxo",width=NULL)),
267
268
              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
269
            ),            
stevenn's avatar
stevenn committed
270
            fluidRow(
stevenn's avatar
stevenn committed
271
272
273
              column(width=5,
                box(title="Experimental design",width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed = FALSE,
                  fluidRow(
stevenn's avatar
stevenn committed
274
275
                    column(width=6,fileInput('fileTarget', h6(strong('Select your target file')),width="100%")),
                    column(width=6,uiOutput("SelectTaxo"))
stevenn's avatar
stevenn committed
276
277
278
279
                  ),
                  fluidRow( 
                    column(width=6,uiOutput("SelectInterestVar")),
                    column(width=6,uiOutput("SelectInteraction2")),
280
                    column(width=6,uiOutput("RunButton"))
stevenn's avatar
stevenn committed
281
                  )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
282
283
284
                ),
                uiOutput("BoxTarget"),
                uiOutput("BoxCountsMerge")
stevenn's avatar
stevenn committed
285
              ),
stevenn's avatar
stevenn committed
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
       
              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
305
                           radioButtons("CooksCutOff",h6(strong("Cooks cut-off")),choices = c("Auto"='Auto',"No cut-off"=Inf,"Value"="val")),
stevenn's avatar
stevenn committed
306
307
308
309
310
311
312
313
314
                           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
315
316
317
318
319
                    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
320
321
                    column(width=3,uiOutput("RefSelect"))
                  )
stevenn's avatar
stevenn committed
322
                ),
323
324
                fluidRow(
                column(width=8,
Stevenn Volant's avatar
Stevenn Volant committed
325
#                        uiOutput("contrastBox"),
326
327
328
329
330
331
                       uiOutput("contrastBoxAdvanced")
                       ),
                column(width=4,
                       uiOutput("contrastDefined")
                )  
                ) 
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
332
              )
stevenn's avatar
stevenn committed
333
334
            )
            
stevenn's avatar
stevenn committed
335
    ),
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
336
    tabItem(tabName = "DiagPlotTab",
stevenn's avatar
stevenn committed
337
            fluidRow(
stevenn's avatar
stevenn committed
338
              column(width=9,
Stevenn Volant's avatar
Stevenn Volant committed
339
340
341
                     
                plotOutput("PlotDiag",height="100%"),
                br(),
342
                conditionalPanel(condition="input.DiagPlot=='SfactorsVStot'",
stevenn's avatar
stevenn committed
343
344
345
                  box(title = "Size factors",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= TRUE,
                    dataTableOutput("SizeFactTable")
                  )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
346
347
348
349
                ),
                  
                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
350
                                    plotOutput("PlotEigen",height="100%")
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
351
352
353
354
                                 )
                ),
                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
355
                                     plotOutput("PlotpcoaEigen",height="100%")
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
356
                                 )
stevenn's avatar
stevenn committed
357
                )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
358
                
stevenn's avatar
stevenn committed
359
360
              ),
              column(width=3,
361
362
363
                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", 
364
                                              "Size factors VS total"="SfactorsVStot", "PCA"="pcaPlot", "PCoA"="pcoaPlot","Clustering" = "clustPlot"))
365
                    ),
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
366
                box(title = "Options",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= FALSE,
367
                    
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
368
369
370
                    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
371
372
373
374
375
376
                                     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")
377
                    )
Stevenn Volant's avatar
Stevenn Volant committed
378
                    
stevenn's avatar
stevenn committed
379
380
381
382
383
384
385
#                 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,
386
387
388
389
#                     conditionalPanel(condition="input.DiagPlot=='Sfactors'",
#                                      h6(strong("Layout")),
#                                      numericInput("NbcolSfactors", h6("Columns"),min=1,value = NA)
#                     ),
Stevenn Volant's avatar
Stevenn Volant committed
390
391
                  sliderInput("heightDiag", "Height",min=100,max=1500,value = 500,step =10),

Amine  GHOZLANE's avatar
Amine GHOZLANE committed
392
393
394
395
396
397
398
399
400
401
402
403
                  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
404
405
406
407
408
409
410
411
412
413
414
                  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
415
416
#                   sliderInput("widthDiag", "width",min=100,max=1500,value = 1000,step =10)
                 
stevenn's avatar
stevenn committed
417

stevenn's avatar
stevenn committed
418
419
420
421
422
423
424
425
426
427
428
429
430
431
              ),
              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
432
433
434
              )
            )
        )
stevenn's avatar
stevenn committed
435
436
437
    ),
    tabItem(tabName = "TableDiff",
            fluidRow(
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
438
439
440
441
442
              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")
443
444
445
446
447
                     ),
                     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
448
            )
Stevenn Volant's avatar
Stevenn Volant committed
449
            ) 
stevenn's avatar
stevenn committed
450
451
452
453
    ),
  
  #### Data Viz
  
454
  tabItem(tabName = "Visu",
stevenn's avatar
stevenn committed
455
          fluidRow(
456
            column(width=9,
Stevenn Volant's avatar
Stevenn Volant committed
457
                   uiOutput("plotVisu")
458
            ),
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
459
460

            column(width=3,
461
462
463
464
465
466
467
468
469
470
471
472
473
              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
474
              box(title = "Options",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= FALSE,
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
                  
                  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
530
              ),
531
532
533
534
535
536
537
538
539
              
              
              ########################################################################
              ###
              ###               Appearance Visualization
              ###
              ########################################################################
              
              
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
540
              box(title = "Appearance",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= TRUE,
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
541
                sliderInput("heightVisu", h6(strong("Height")),min=100,max=4000,value = 800),
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
542

Stevenn Volant's avatar
Stevenn Volant committed
543
544

                
545
546
547
548
                ##################
                ## BOXPLOT
                ##################
                conditionalPanel(condition="input.PlotVisuSelect=='Boxplot'",
Stevenn Volant's avatar
Stevenn Volant committed
549
                                 radioButtons("ScaleBoxplot","Scales",c("Fixed"="fixed","Free"="free"),inline=TRUE),
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
                                 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
565
                                 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")
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
                ),
                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
584

585
586
587
588
                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
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
              ),
              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")
                  
605
              )
Stevenn Volant's avatar
Stevenn Volant committed
606
              
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
607
608
609
            )
          )
  ),
610
  
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
611
612
613



stevenn's avatar
stevenn committed
614
615
  #### Krona plot
  tabItem(tabName = "Krona",
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
616
617
 
         fluidRow(
Stevenn Volant's avatar
Stevenn Volant committed
618
619
620
621
622
623
624
625
626
627
628
629
630
            column(width=3,
                   p(strong("Krona plot")),
                   img(src="Krona.png",height = 200, width = 220),
                   a(href = "test_krona.html",target="_blank", "Click Here!")
#                    tableOutput("krona") 

),
            column(width=3,
            p(strong("Tree abundance")),
            img(src="Tree.png",height = 200, width = 220),
            a(href = "http://genopole.pasteur.fr/SynTView/flash/TreeAbundance",target="_blank", "Click Here!")
            )
            )
Stevenn Volant's avatar
Stevenn Volant committed
631
 #includeHTML("file:///home/aghozlan/workspace/SHAMAN_App/www/text.krona.html")
Stevenn Volant's avatar
Stevenn Volant committed
632
            
stevenn's avatar
stevenn committed
633
  )       
stevenn's avatar
stevenn committed
634
              
stevenn's avatar
stevenn committed
635
636
             )
     
stevenn's avatar
stevenn committed
637
638
639
    
    
  )
stevenn's avatar
stevenn committed
640

Stevenn Volant's avatar
logo    
Stevenn Volant committed
641
642
643
644
  ## 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
645
# Put them together into a dashboardPage
Stevenn Volant's avatar
logo    
Stevenn Volant committed
646
647
648
649
650
  dashboardPage(skin="blue",
    dbHeader,
    sidebar,
    body
  )
stevenn's avatar
stevenn committed
651
652