ui.R 32.9 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
9
10
if (!require(psych)) {
  install.packages('psych')
  library(psych)
}
Stevenn Volant's avatar
Stevenn Volant committed
11

stevenn's avatar
stevenn committed
12
13
14
15
if (!require(ggplot2)) {
  install.packages('ggplot2')
  library(ggplot2)
}
Stevenn Volant's avatar
Stevenn Volant committed
16

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

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

stevenn's avatar
stevenn committed
27
28
29
30
if (!require(circlize)) {
  install.packages('circlize')
  library(circlize)
}
Stevenn Volant's avatar
Stevenn Volant committed
31

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

stevenn's avatar
stevenn committed
37
38
39
40
if (!require(DT)) {
  install.packages('DT')
  library(DT)
}
Stevenn Volant's avatar
Stevenn Volant committed
41

stevenn's avatar
stevenn committed
42
43
44
45
if (!require(RColorBrewer)) {
  install.packages('RColorBrewer')
  library(RColorBrewer)
}
Stevenn Volant's avatar
Stevenn Volant committed
46

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

stevenn's avatar
stevenn committed
52
53
54
55
56
if (!require(DESeq2)) {
  source("https://bioconductor.org/biocLite.R")
  biocLite("DESeq2")
  library(DESeq2)
}
Stevenn Volant's avatar
Stevenn Volant committed
57

stevenn's avatar
stevenn committed
58
59
60
if (!require(ade4)) {
  install.packages('ade4')
  library(ade4)
Stevenn Volant's avatar
Stevenn Volant committed
61
}
stevenn's avatar
stevenn committed
62
63
64
65

sidebar <- dashboardSidebar(
  sidebarMenu(
    menuItem("Home", tabName = "Home", icon = icon("home")),
66
    menuItem("Tutorial", tabName = "Tutorial", icon = icon("book")),
stevenn's avatar
stevenn committed
67
    menuItem("Upload your data", tabName = "Upload", icon = icon("upload")),
Stevenn Volant's avatar
logo    
Stevenn Volant committed
68
    menuItemOutput("dymMenu"),
Stevenn Volant's avatar
Stevenn Volant committed
69
    img(src = "logo.jpg", height = 49, width = 220,style="position:absolute;bottom:0;margin:0 0 15px 10px;")
stevenn's avatar
stevenn committed
70
71
72
73
74
75
  )
)

body <- dashboardBody(
  tabItems(
    tabItem(tabName = "Home",
76
77
            div(style="width:100% ; max-width: 1200px",
              tabBox(title="Welcome to SHAMAN", id="tabset1", width=NULL,
78
79
                   tabPanel("About", tags$script(type="text/javascript", language="javascript", src="google-analytics.js"),
                            p("SHAMAN is a SHiny application for Metagenomic ANalysis including the normalization,
Stevenn Volant's avatar
Stevenn Volant committed
80
                                       the differential analysis and mutiple visualization.",style = "font-family: 'times'; font-si16pt"),
Stevenn Volant's avatar
Stevenn Volant committed
81
82
                            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/"),
                              ". 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
83
                              Resulting p-values are adjusted according to the Benjamini and Hochberg procedure [Benjamini and Hochberg 1995].
84
85
                              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/"), ".
                              A presentation about SHAMAN is available", a("here",target="_blank",href="shaman_presentation.pdf"),style = "font-family: 'times'; font-si16pt"),
Stevenn Volant's avatar
Stevenn Volant committed
86
                            p("Hereafter is the global workflow of the SHAMAN application:"),
87
                            img(src = "Workflow.png",width = "100%",style="max-width: 1000px")
Stevenn Volant's avatar
Stevenn Volant committed
88
                            ),
Stevenn Volant's avatar
Stevenn Volant committed
89
                   tabPanel("Authors", h3("The main contributors to SHAMAN:"),
Stevenn Volant's avatar
Stevenn Volant committed
90
91
92
93
94
95
96
97
                            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
98
                            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
99
                          ),
Stevenn Volant's avatar
Stevenn Volant committed
100
                   tabPanel("Citing SHAMAN",p("No papers about SHAMAN have been published yet, but a manuscript is in preparation.",style = "font-family: 'times'; font-si16pt"),
101
102
103
                            p("For now, if you have any comments, questions or suggestions, or want to use SHAMAN please contact authors", a("here", href="mailto:shaman@pasteur.fr"),".", style = "font-family: 'times'; font-si16pt; color:red")
            )))
    ),
Stevenn Volant's avatar
Stevenn Volant committed
104

105
    tabItem(tabName = "Tutorial",
106
107
            div(style="width:100% ; max-width: 1200px",
            tabBox(title="How to use SHAMAN", id="tabset1", width =NULL,
108
109
110
111
112
113
114
115
            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."),
116
117
            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",width = "100%",style="max-width: 900px"),
118
119
120
            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",
121
            p("The first step consists to load the count matrix and the annotation table as follow :"),
122
            p("- Select 'Upload your data'", br(),
123
124
              "- Load the count table :",br(), img(src = "tutorial/tutorial_upload1.png",width = "100%",style="max-width: 900px"),hr(),
              "- Load the annotation table :", br(), img(src = "tutorial/tutorial_upload2.png",width = "100%",style="max-width: 900px"),hr(),
125
              "- When successfully loaded, the tables are accessible as bellow :",br(),
126
              img(src = "tutorial/tutorial_upload3.png",width = "100%",style="max-width: 600px"),img(src = "tutorial/tutorial_upload4.png",width = "100%",style="max-width: 600px"))),
127
            tabPanel("2-Differential analysis",
128
            p("The second step consists to load the experimental design and the contrast table as follow :"),
129
            p("- Select 'Run differential analysis'",br(),
130
131
132
133
134
135
136
              "- Load the target file :",br(),img(src = "tutorial/tutorial_target.png",width = "100%",style="max-width: 800px"),hr(),
              "- Identify the taxonomy level where the analysis will be performed :",br(),img(src = "tutorial/tutorial_target1.png",width = "100%",style="max-width: 800px"),hr(),
              "- Identify the interactions :",br(),img(src = "tutorial/tutorial_target2.png",width = "100%",style="max-width: 800px"),hr(),
              "- Run the analysis :",br(),img(src = "tutorial/tutorial_target3.png",width = "100%",style="max-width: 800px"),hr(),
              "- When successfully loaded, the tables are accessible as bellow :",br(),img(src = "tutorial/tutorial_target4.png",width = "100%",style="max-width: 800px")),hr(),
            p("- Finally, load the contrast file :",br(),img(src = "tutorial/tutorial_contraste.png",width = "100%",style="max-width: 800px"),hr(),
              "- Contrasts can be visualized as follow :",br(),img(src = "tutorial/tutorial_contraste1.png",width = "100%",style="max-width: 400px"))),
137
            tabPanel("3-Diagnostic plots",
138
139
140
141
142
143
144
145
146
            p("'Diagnostic plots' section provides several visualizations to control the analysis",br(),
              "- Total mapped read count",br(),img(src="tutorial/tutorial_total_barplot.png",width = "100%",style="max-width: 900px"),hr(),
              "- Nul barplot count",br(),img(src="tutorial/tutorial_nul_barplot.png",width = "100%",style="max-width: 900px"),hr(),
              "- Maj taxonomy count",br(),img(src="tutorial/tutorial_maj_taxonomy.png",width = "100%",style="max-width: 900px"),hr(),
              "- Density of counts",br(),img(src="tutorial/tutorial_density.png",width = "100%",style="max-width: 900px"),hr(),
              "- Size factors vs total number of reads",br(),img(src="tutorial/tutorial_size_factor.png",width = "100%",style="max-width: 900px"),hr(),
              "- PCA",br(),img(src="tutorial/tutorial_pca.png",width = "100%",style="max-width: 900px"),hr(),
              "- PCOA",br(),img(src="tutorial/tutorial_pcoa.png",width = "100%",style="max-width: 900px"),hr(),
              "- Clustering",br(),img(src="tutorial/tutorial_clustering.png",width = "100%",style="max-width: 900px"))),
147
            tabPanel("4-Differential analysis results",
148
            img(src = "tutorial/tutorial_table.png",width = "100%",style="max-width: 900px")),
149
150
            tabPanel("5-Visualization",
                     p("'Diagnostic plots' section provides several visualization to control the analysis",br(),
151
152
153
154
155
                     "- Barplot",br(),img(src="tutorial/tutorial_barplot.png",width = "100%",style="max-width: 900px"),hr(),
                     "- Heatmap",br(),img(src="tutorial/tutorial_heatmap.png",width = "100%",style="max-width: 900px"),hr(),
                     "- Boxplot",br(),img(src="tutorial/tutorial_boxplot.png",width = "100%",style="max-width: 900px"),hr(),
                     "- Diversity",br(),img(src="tutorial/tutorial_diversity.png",width = "100%",style="max-width: 900px"),hr(),
                     "- Rarefaction",br(),img(src="tutorial/tutorial_rarefaction.png",width = "100%",style="max-width: 900px")))))
156
    ),
Stevenn Volant's avatar
Stevenn Volant committed
157
    
stevenn's avatar
stevenn committed
158
159
160
    tabItem(tabName = "Upload",
            tags$style(type='text/css', ".well { max-width: 20em; }"),
            fluidRow(
Stevenn Volant's avatar
Stevenn Volant committed
161
162
163
164
165
166
167
              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,
168
                  selectInput("FileFormat","",c("Count table & taxonomy"="fileCounts","BIOM file"="fileBiom"),selected="fileCounts")
Stevenn Volant's avatar
Stevenn Volant committed
169
                ),
stevenn's avatar
stevenn committed
170
                conditionalPanel(condition="input.FileFormat=='fileCounts'",
171
                  box(title="Load the count table",width = 3,height = "250px", status = "primary", solidHeader = TRUE,collapsible = FALSE,
stevenn's avatar
stevenn committed
172
                    fileInput('fileCounts', h6(strong('Select your file')),width="100%")
stevenn's avatar
stevenn committed
173
                  ),
stevenn's avatar
stevenn committed
174
                  
Stevenn Volant's avatar
Stevenn Volant committed
175
176
177
178
179
180
181
                  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
182
                      fileInput('fileTaxo', h6(strong('Select your file')),width="100%")
stevenn's avatar
stevenn committed
183
184
185
186
187
                  )
                  
                ),
                
                conditionalPanel(condition="input.FileFormat=='fileBiom'",
Stevenn Volant's avatar
Stevenn Volant committed
188
                                 box(title="Load the BIOM file",width = 3,height = "250px", status = "primary", solidHeader = TRUE,collapsible = FALSE,
stevenn's avatar
stevenn committed
189
190
191
                                     fileInput('fileBiom', h5(strong('Select your file')),width="100%")
                                 )           
                )
Stevenn Volant's avatar
Stevenn Volant committed
192
             ),
stevenn's avatar
stevenn committed
193
194
195
              column(12,uiOutput("TabBoxData"))

              
Stevenn Volant's avatar
Stevenn Volant committed
196
          
stevenn's avatar
stevenn committed
197
198
    ),
    
stevenn's avatar
stevenn committed
199
200
201
  #### Statistical analysis

    tabItem(tabName = "RunDiff",
stevenn's avatar
stevenn committed
202
203
204
            fluidRow(
              column(width=3,infoBoxOutput("RowTarget",width=NULL)),
              column(width=3,infoBoxOutput("InfoTaxo",width=NULL)),
205
206
              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
207
            ),            
stevenn's avatar
stevenn committed
208
            fluidRow(
stevenn's avatar
stevenn committed
209
210
211
              column(width=5,
                box(title="Experimental design",width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed = FALSE,
                  fluidRow(
stevenn's avatar
stevenn committed
212
213
                    column(width=6,fileInput('fileTarget', h6(strong('Select your target file')),width="100%")),
                    column(width=6,uiOutput("SelectTaxo"))
stevenn's avatar
stevenn committed
214
215
216
217
                  ),
                  fluidRow( 
                    column(width=6,uiOutput("SelectInterestVar")),
                    column(width=6,uiOutput("SelectInteraction2")),
218
                    column(width=6,uiOutput("RunButton"))
stevenn's avatar
stevenn committed
219
                  )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
220
221
222
                ),
                uiOutput("BoxTarget"),
                uiOutput("BoxCountsMerge")
stevenn's avatar
stevenn committed
223
              ),
stevenn's avatar
stevenn committed
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
       
              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
243
                           radioButtons("CooksCutOff",h6(strong("Cooks cut-off")),choices = c("Auto"='Auto',"No cut-off"=Inf,"Value"="val")),
stevenn's avatar
stevenn committed
244
245
246
247
248
249
250
251
252
                           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
253
254
255
256
257
                    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
258
259
                    column(width=3,uiOutput("RefSelect"))
                  )
stevenn's avatar
stevenn committed
260
                ),
261
262
                fluidRow(
                column(width=8,
Stevenn Volant's avatar
Stevenn Volant committed
263
#                        uiOutput("contrastBox"),
264
265
266
267
                       uiOutput("contrastBoxAdvanced")
                       ),
                column(width=4,
                       uiOutput("contrastDefined")
268
269
                )
                )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
270
              )
stevenn's avatar
stevenn committed
271
            )
stevenn's avatar
stevenn committed
272
    ),
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
273
    tabItem(tabName = "DiagPlotTab",
stevenn's avatar
stevenn committed
274
            fluidRow(
stevenn's avatar
stevenn committed
275
              column(width=9,
Stevenn Volant's avatar
Stevenn Volant committed
276
277
278
                     
                plotOutput("PlotDiag",height="100%"),
                br(),
279
                conditionalPanel(condition="input.DiagPlot=='SfactorsVStot'",
stevenn's avatar
stevenn committed
280
281
282
                  box(title = "Size factors",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= TRUE,
                    dataTableOutput("SizeFactTable")
                  )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
283
284
285
286
                ),
                  
                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
287
                                    plotOutput("PlotEigen",height="100%")
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
288
289
290
291
                                 )
                ),
                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
292
                                     plotOutput("PlotpcoaEigen",height="100%")
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
293
                                 )
stevenn's avatar
stevenn committed
294
                )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
295
                
stevenn's avatar
stevenn committed
296
297
              ),
              column(width=3,
298
299
300
                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", 
301
                                              "Size factors VS total"="SfactorsVStot", "PCA"="pcaPlot", "PCoA"="pcoaPlot","Clustering" = "clustPlot"))
302
                    ),
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
303
                box(title = "Options",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= FALSE,
304
                    
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
305
306
307
                    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
308
309
310
311
312
313
                                     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")
314
                    )
Stevenn Volant's avatar
Stevenn Volant committed
315
                    
stevenn's avatar
stevenn committed
316
317
318
319
320
321
322
#                 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,
323
324
325
326
#                     conditionalPanel(condition="input.DiagPlot=='Sfactors'",
#                                      h6(strong("Layout")),
#                                      numericInput("NbcolSfactors", h6("Columns"),min=1,value = NA)
#                     ),
Stevenn Volant's avatar
Stevenn Volant committed
327
328
                  sliderInput("heightDiag", "Height",min=100,max=1500,value = 500,step =10),

Amine  GHOZLANE's avatar
Amine GHOZLANE committed
329
330
331
332
333
334
335
336
337
338
339
340
                  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
341
342
343
344
345
346
347
348
349
350
351
                  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
352
353
#                   sliderInput("widthDiag", "width",min=100,max=1500,value = 1000,step =10)
                 
stevenn's avatar
stevenn committed
354

stevenn's avatar
stevenn committed
355
356
357
358
359
360
361
362
363
364
365
366
367
368
              ),
              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
369
370
371
              )
            )
        )
stevenn's avatar
stevenn committed
372
373
374
    ),
    tabItem(tabName = "TableDiff",
            fluidRow(
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
375
376
377
378
379
              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")
380
381
382
383
384
                     ),
                     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
385
            )
Stevenn Volant's avatar
Stevenn Volant committed
386
            ) 
stevenn's avatar
stevenn committed
387
388
389
390
    ),
  
  #### Data Viz
  
391
  tabItem(tabName = "Visu",
stevenn's avatar
stevenn committed
392
          fluidRow(
393
            column(width=9,
Stevenn Volant's avatar
Stevenn Volant committed
394
                   uiOutput("plotVisu")
395
            ),
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
396
397

            column(width=3,
398
399
400
              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")
              ),
401
402


403
404
405
406
407
              ########################################################################
              ###
              ###               Options Visualization
              ###
              ########################################################################
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
408
              box(title = "Options",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= FALSE,
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
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
                  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
461
              ),
462
463


464
465
466
467
468
              ########################################################################
              ###
              ###               Appearance Visualization
              ###
              ########################################################################
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
469
              box(title = "Appearance",  width = NULL, status = "primary", solidHeader = TRUE,collapsible = TRUE,collapsed= TRUE,
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
470
                sliderInput("heightVisu", h6(strong("Height")),min=100,max=4000,value = 800),
471
472
473
474
                ##################
                ## BOXPLOT
                ##################
                conditionalPanel(condition="input.PlotVisuSelect=='Boxplot'",
Stevenn Volant's avatar
Stevenn Volant committed
475
                                 radioButtons("ScaleBoxplot","Scales",c("Fixed"="fixed","Free"="free"),inline=TRUE),
476
477
478
479
480
481
482
483
484
485
486
487
488
                                 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
489
                                 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")
490
491
492
493
494
495
496
497
498
499
500
501
                ),
                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))
                                 )
502
                ),
503
504
505
506
507
508
                ##################
                ## ALL
                ##################
                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
509
510
511
512
513
514
515
516
517
518
519
520
521
522
              ),
              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")
523
              )
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
524
525
526
527
            )
          )
  ),

stevenn's avatar
stevenn committed
528
529
  #### Krona plot
  tabItem(tabName = "Krona",
Amine  GHOZLANE's avatar
Amine GHOZLANE committed
530
         fluidRow(
Stevenn Volant's avatar
Stevenn Volant committed
531
532
533
534
535
536
537
538
539
540
541
542
            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!")
            )
543
        )
Stevenn Volant's avatar
Stevenn Volant committed
544
 #includeHTML("file:///home/aghozlan/workspace/SHAMAN_App/www/text.krona.html")
stevenn's avatar
stevenn committed
545
  )
546
547
548
 )
)
  ## GOOGLE ANALYTIC
549
 #tags$head(includeScript("google-analytics.js"))
Stevenn Volant's avatar
logo    
Stevenn Volant committed
550
551
552
553
  ## 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
554
# Put them together into a dashboardPage
Stevenn Volant's avatar
logo    
Stevenn Volant committed
555
556
557
558
559
  dashboardPage(skin="blue",
    dbHeader,
    sidebar,
    body
  )
stevenn's avatar
stevenn committed
560
561