-
Notifications
You must be signed in to change notification settings - Fork 0
/
ui.R
158 lines (138 loc) · 6.92 KB
/
ui.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
library(shiny)
library(shinydashboard)
# header
header <- dashboardHeader(title = "LuminexApp",
tags$li(class = "dropdown", actionButton("browser", "browser"),
tags$script("$('#browser').hide();")),
dropdownMenuOutput("messageMenu"))
# sidebar ----
sidebar <- dashboardSidebar(
sidebarMenu(
menuItem( "Upload Files", tabName = 'upload_files', icon = icon('import', lib = 'glyphicon')),
menuItem( "Visulization", tabName = 'data_vis', icon = icon('th-list', lib = 'glyphicon'))
)
)
# p1.file upload box
input_file_upload_box <- box(
title = "Upload Data",
status = "info",
solidHeader = TRUE,
width = 12,
fluidRow(
column(12, h4(icon("circle"), "Accept one or multiple Luminex xls files of the Same Panel."))),
fluidRow(
column(12, h4(p("Open the raw Luminex xls file, view a individual", span("Analyte Tab", style = "color:blue"),"to identified the",
span("Analyte Start Row", style = "color:blue"), "which is the header row number below the standard curve section.
'Analyte Start Row' is common across analytes in the same xls file.")))),
input_file_upload_UI(id = "id_1"),
br(),
fluidRow(reset_dataset_UI(id = "id_1"))
)
# p1.plate summary box
file_meta_summary_box <- box(
title = "Uploaded plate summary stat",
collapsible = TRUE,
# collapsed = TRUE,
status = "primary", solidHeader = TRUE, width = 12,
fluidRow(
column(12, h4(icon("database"), "Uploaded plate summary stat")),
column(12, show_file_level_meta_UI(id = "id_1"))
)
)
# p1.reference & normalization box
reference_normalization_box <- box(
title = "Identify QC/Reference Sample (optional Ref-sample-based-normalization)",
collapsible = TRUE,
#collapsed = TRUE,
status = "warning", solidHeader = TRUE, width = 12,
identify_reference_UI(id = "id_1"),
fluidRow(
column(12, h4(icon("star"), "Optional Ref-sample-based-normalization")),
column(12, h4(icon("circle"), "Method: Reference-sample-based normalization The plate-to-plate variation was adjusted based on
adjust-factor(plate specific) which makes equal NPX value among reference samples (common reference run on each plate)."))),
ref_normalization_UI(id = "id_1")
)
# p1.object fuctional box----
obj_fun_box <- box(
title = "Creat Data Object",
collapsible = TRUE,
# collapsed = TRUE,
status = "info", solidHeader = TRUE, width = 12,
fluidRow(
column(12, h4(icon("circle"), "Creat Data Object for Visulization and Download.")),
column(12, h4(div("4 dataset will be generated:", style = "color:blue"))),
column(12, offset = 1, h4("data_default: the Concentration data, out of range value read as NA")),
column(12, offset = 1, h4("data_imputed: the Concentration data, out of range value read as Lower or Higher detection limit")),
column(12, offset = 1, h4("mfi_default: the MFI data")),
column(12, offset = 1, h4("cv: cv of the assay replicate")),
column(12, h4(icon("circle"), "If normalization is done, addational data_default_normed and mfi_normed datasets will be generated."))),
fluidRow(
column(4, creat_data_obj_UI(id = "id_1"))),
br(),
fluidRow(
column(12, h4(div("Download ONLY AVALIABLE after 'Creat Data Object'!!!", style = "color:red"))),
column(4, download_qa_report_UI(id = "id_1")),
column(4, download_combined_data_UI(id = "id_1")))
)
# p1.meta data view or replace box
meta_view_replace_box <- box(title = "Metadata Setup",
collapsible = TRUE,
collapsed = TRUE,
status = "primary", solidHeader = TRUE, width = 12,
fluidRow(
column(12, h4(icon("circle"), "Download metadata for optional user input column, Tiempoint or Sample_Type for example.")),
column(12, h4(icon("circle"), "Upload modified metadata to replace the current data in display")),
column(12, h4(icon("star"), "***DO NOT change Row Orders!!!, after update, run 'Creat Data Object' to apply the change for visulization.")),
),
meta_view_replace_UI(id = "id_1")
)
# p2.scatter plot box
scatter_plot_box <- box(title = "Scatter Plot",
collapsible = T,
collapsed = T,
status = "warning", solidHeader = T, width = 12,
fluidRow(column(12, h4(icon("circle"), "Select datasets to setup plots, use 'Download Scatter Plots' to batch download plot for all analytes.")),
column(12, download_scatter_report_UI(id = "id_1"))),
scatter_plot_UI(id = "id_1")
)
# p2. pca plot box
pca_plot_box <- box(title = "PCA Plot",
collapsible = T,
collapsed = T,
status = "info", solidHeader = T, width = 12,
fluidRow(
column(12, h4(icon("circle"), "Select dataset and click 'Run PCA' to generate the PCA plot.")),
column(12, offset = 1, h4("data_default/normed: the out of range NA value were imputated with simple analyte-wise 'median'. Interprated with caution.")),
column(12, offset = 1, h4("data_imputed: the out of range value read as Lower or Higher detection limit. Interprated with caution.")),
column(12, offset = 1, h4("mfi_default/normed: MFI data, none-manapulated data from assay result."))),
pca_plot_UI(id = "id_1")
)
# p3. corr plot box
corr_plot_box <- box(title = "Correlation Plot--Based on NoneNormalized Data",
collapsible = T,
collapsed = T,
status = "primary", solidHeader = T, width = 12,
fluidRow(column(12, h4(icon("circle"), "Plot is based on the imputated_data (which the Out of Range value is replaced with LLOD or HLOD limit),
samples with common names are automatically selected.")),
column(12, download_cor_report_UI(id = "id_1"))),
corr_plot_UI(id = "id_1")
)
# body ----
body <- dashboardBody(
add_busy_bar(color = "blue", height = "8px"),
tabItems(tabItem(tabName = "upload_files",
input_file_upload_box,
file_meta_summary_box,
reference_normalization_box,
obj_fun_box,
meta_view_replace_box
),
tabItem(tabName = "data_vis",
fluidRow(scatter_plot_box),
fluidRow(pca_plot_box),
fluidRow(corr_plot_box)
)
)
)
# assemble UI
ui <- dashboardPage(header, sidebar, body, skin = "green")