-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathui.R
More file actions
127 lines (123 loc) · 4.52 KB
/
ui.R
File metadata and controls
127 lines (123 loc) · 4.52 KB
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
source("init.R")
library(shiny)
library(shinyMolBio)
library(shinyWidgets)
library(plotly)
# Define UI for application that draws a histogram
ui <- fluidPage(
tags$head(
tags$style(
HTML(".shiny-notification {
height: 50px;
width: 400px;
position:fixed;
top: calc(50% - 25px);;
left: calc(50% - 200px);;
}
"
)
)
),
# Application title
titlePanel("AScall"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
fileInput("inputFile",
"Upload .rdml, .csv, .lc96p, .xls or .xlsx file(s):",
accept = c(".rdml", ".csv", ".lc96p", ".xls", ".xlsx"),
multiple = TRUE),
actionButton("loadExmpl", "Use Sample File"),
tags$p(),
wellPanel(
tags$div(title = "Background subtraction and Cq calculation (second derivative maximum) will be applied to the curves if checked",
checkboxInput("preprocessCheck", "Preprocess Curves", FALSE)
),
conditionalPanel(
"input.preprocessCheck == true",
tags$div(title = "Cycle range for background subtraction (linear part of the curves before exponentional growth)",
sliderInput("bgRange", "Background Range",
1, 40, c(5, 15), 1)
),
tags$div(title = "Model type for PCR curve fitting",
selectInput("modelType", "Model Type",
c("l4", "l5", "l6", "l7", "b4", "b5", "b6", "b7"),
"l5")
),
tags$div(title = "Cq calculation method",
selectInput("cqMethod", "Cq Method",
c("cpD2", "cpD1", "maxE", "expR", "CQ", "Cy0",
"Threshold"),
"cpD2")
),
conditionalPanel(
"input.cqMethod == 'Threshold'",
tags$div(title = "Threshold value for Cq calculation",
numericInput("thrCq", "Threshold", 100)
)
)
)
),
wellPanel(
tags$div(title = "Gene to be used as a positive control",
selectInput("ctrlMarker", "Control Marker", choices = "")
),
# numericInput("ctrlDelta", "Control ∆", 1.5),
tags$div(title = "Maximum cycle difference for homozygosity",
numericInput("cqDelta", "Cq ∆", 2)
),
tags$div(title = "Mark curves as negative with Cq outside region",
sliderInput("cqThr", "Cq Range", 1, 50,
c(15, 30), step = 1)
),
tags$div(title = "Mark curves as negative with RFU lower threshold",
numericInput("rfuThr", "RFU Threshold", 300)
)
),
conditionalPanel(
condition = "output.enableRecalculateBtn",
tags$div(title = "Press button to calculate results",
actionButton("recalculate", "Calculate Results")
)
),
conditionalPanel(
condition = "output.resultsReady",
tags$div(title = "Press button to generate report",
downloadButton("genReport", "Report")
)
),
width = 2
),
# Show a plot of the generated distribution
mainPanel(
wellPanel(
fluidRow(
column(6, pickerInput("showKits", "Show Kits", choices = "",
multiple = TRUE,
options = list("actions-box" = TRUE))),
column(6, pickerInput("showMarkers", "Show Markers", choices = "",
multiple = TRUE,
options = list("actions-box" = TRUE)))
),
pickerInput("showSamples", "Show Samples", choices = "",
multiple = TRUE,
options = list("actions-box" = TRUE))
),
tabsetPanel(
id = "tabSet",
tabPanel("User Manual",
includeMarkdown("README.md")),
tabPanel("Summary",
# plotlyOutput("allelicDescrPlot"),
plotOutput("genotypesFreqPlot"),
DT::dataTableOutput("summaryTbl")),
tabPanel("Details",
selectInput("showFile", "File Details", choices = ""),
fluidRow(
column(6, uiOutput("ampCurvesUI")),
column(6, uiOutput("pcrPlateUI"))),
DT::dataTableOutput("detailsTbl"))
)
)
)
)