Nothing
shinyUI(fluidPage(tabsetPanel(
tags$head(
tags$link(
rel = "icon",
href = "images/icon.png",
type = "image/png",
width = "1em",
height = "1em"
),
tags$title("FastqCleaner"),
tags$link(rel = "stylesheet",
type = "text/css",
href = "styles/masterCss.css")
),
navbarPage(
id = "navbar",
title = list(tags$div(
tags$img(src = "images/icon.png",
alt = "icon"),
tags$p(" FastqCleaner")
)),
tabPanel( "Clean the Data", sidebarLayout(
sidebarPanel(
width = 3,
class = "sideBar",
h3("FastqCleaner"),
p("A program to clean FASTQ files"),
br(),
hr(),
br(),
div()
),
mainPanel(
fluidRow(
br(),
column(6, class = "left",
singleton(tags$head(
tags$script(
'Shiny.addCustomMessageHandler("testmessage",
function(message) { alert(message);
});' )
)),
h3(class = "blackTag", "Select the operations")
),
column(3, class = "right"),
br(),
br(),
br(),
br()
),
bsPopover("help", "",
"Help - documentation",
options = list(container = "body")
),
fluidRow(
column(6, class = "accordion-container",
tags$button(id = "button1", class = "accordion",
"1. Remove by N(s) #",
tags$span()
),
div(class = "panelCustom",
wellPanel(class = "inAccordion",
checkboxGroupInput("rm.N",
label = "",
choices = list("Use filter?" = 1),
selected = 0
),
numericInput("maxN",
label = p(class = "controlcheck-p1",
"Maximum number of N(s)"),
value = 3,
min = 0
),
uiOutput("error_maxN")
)
),
bsPopover("maxN", "",
"The maximum number of Ns in a read",
options = list(container = "body")
),
tags$button(
id = "button2",
class = "accordion",
"2. Remove low complexity sequences",
tags$span()
),
div(class = "panelCustom",
wellPanel(class = "inAccordion",
checkboxGroupInput("rm.lowcomplex",
label = "",
choices = list("Use filter?" = 1),
selected = 0
),
numericInput("complexThres",
label = p(class = "controlcheck-p1",
"Complexity threshold"),
value = 0.5,
min = 0
),
uiOutput("error_complexThres")
)
),
bsPopover("complexThres","",
"Shanon entropy/reference entropy",
options = list(container = "body")
),
tags$button(id = "button3", class = "accordion",
"3. Remove adapters",
tags$span()
),
div(class = "panelCustom",
wellPanel(class = "inAccordion",
checkboxGroupInput("rm.adapt",
label = "",
choices = list("Use filter?" = 1),
selected = 0
),
textInput("LpatternF",
label = p(class = "controlcheck-p1",
"Left forward adapter"),
value = ""
),
checkboxInput("reverseLF",
label = p(class = "controlcheck-p1-radio",
"use reverse complement?"),
value = FALSE
),
textInput("RpatternF",
label = p(class = "controlcheck-p1",
"Right forward adapter"),
value = ""
),
checkboxInput("reverseRF",
label = p(class = "controlcheck-p1-radio",
"use reverse complement?"),
value = FALSE
),
textInput("LpatternR",
label = p(class = "controlcheck-p1",
"Left reverse adapter"),
value = ""
),
checkboxInput("reverseLR",
label = p(class = "controlcheck-p1-radio",
"use reverse complement?"),
value = FALSE
),
textInput("RpatternR",
label = p(class = "controlcheck-p1",
"Right reverse adapter"),
value = ""
),
checkboxInput("reverseRR",
label = p(class = "controlcheck-p1-radio",
"use reverse complement?"),
value = FALSE
),
tags$button(id = "advancedAdapterButton",
class = "adButton",
"Advanced",
style="margin-left:2em"
),
br(), br(),
fluidRow(id = "advancedAdapterMenu",
column(12,style = "float:left;",
checkboxInput("indels",
label = p(class = "controlcheck-p1-radio",
"with Indels?"),
value = FALSE
),
checkboxInput("anchored",
label = p(class = "controlcheck-p1-radio",
"anchored adapters?"),
value = TRUE
),
numericInput("min_match_flank",
label = p(class = "controlcheck-p1",
"Minimum match in flanks"),
value = 1,
min = 0,
step = 1
),
numericInput("errate",
label = p(class = "controlcheck-p1",
"Error rate"),
value = 0.2,
min = 0,
max = 1,
step = 0.1
),
uiOutput("error_errate"),
radioButtons("first_forward",
label = p(class = "controlcheck-p1",
"Remove first in PE forward"),
choices = list("5'" = "L", "3'" = "R"),
selected = "R"
),
radioButtons("first_reverse",
label = p(class = "controlcheck-p1",
"Remove first in PE reverse"),
choices = list("5'" = "L", "3'" = "R"),
selected = "R"
)
)
)
)
),
bsPopover("LpatternF", "",
"The left pattern for forward sequences",
options = list(container = "body")
),
bsPopover("RpatternF", "",
"The right pattern for forward sequences",
options = list(container = "body")
),
bsPopover("LpatternR", "",
"The left pattern for reverse sequences",
options = list(container = "body")
),
bsPopover("RpatternR", "",
"The right pattern for reverse sequences",
options = list(container = "body")
),
bsPopover("indels", "",
"allow indels?",
options = list(container = "body")
),
bsPopover("anchored", "",
"anchored adapters?",
options = list(container = "body")
),
bsPopover("min_match_flank", "",
"minimum overlap between adapter and reads
to trim for a match in flanking region of reads",
options = list(container = "body")
),
bsPopover("errate", "",
"error rate value for error rate method",
options = list(container = "body")
),
tags$button(id = "button4", class = "accordion",
"4. Filter by average quality?",
tags$span()
),
div(class = "panelCustom",
wellPanel(class = "inAccordion",
checkboxGroupInput("meanQ",
label = "",
choices = list("Use filter?" = 1),
selected = 0
),
numericInput("thresmeanQ",
label = p(class = "controlcheck-p1",
"Average Quality threshold"),
value = 20,
min = 0
),
uiOutput("error_thresmeanQ")
)
),
bsPopover("thresmeanQ", "",
"Mean quality threshold",
options = list(container = "body")
)
),
column(6, class = "accordion-container",
tags$button(id = "button5", class = "accordion",
"5. Trim low quality 3' tails?",
tags$span()
),
div(class = "panelCustom",
wellPanel(class = "inAccordion",
checkboxGroupInput("rm.qual", label = "",
choices = list("Use filter?" = 1),
selected = 0
),
numericInput("thresQual",
label = p(class = "controlcheck-p1",
"Quality threshold"),
value = 20,
min = 0
),
uiOutput("error_thresQual")
)
),
bsPopover("thresQual", "",
"Threshold quality in tail",
options = list(container = "body")
),
tags$button(id = "button6", class = "accordion",
"6. Trim 3' or 5' by a fixed number?",
tags$span()
),
div(class = "panelCustom",
wellPanel(class = "inAccordion",
checkboxGroupInput("rmFixed",
label = "",
choices = list("Use filter?" = 1),
selected = 0
),
numericInput("rm3",
label = p(class = "controlcheck-p1",
"Trim 3'"),
value = NULL,
min = 0
),
numericInput("rm5",
label = p(class = "controlcheck-p1",
"Trim 5'"),
value = NULL,
min = 0
),
uiOutput("error_rm35")
)
),
bsPopover("rm3", "",
"Number of bases to trim from 3 end",
options = list(container = "body")
),
bsPopover("rm5", "",
"Number of bases to trim from 5 end",
options = list(container = "body")
),
tags$button(id = "button7", class = "accordion",
"7. Filter sequences by length?",
tags$span()
),
div(class = "panelCustom",
wellPanel(class = "inAccordion",
checkboxGroupInput("rmSize",
label = "",
choices = list("Use filter?" = 1),
selected = 0
),
numericInput("rmMin",
label = p(class = "controlcheck-p1",
"Min length"),
value = NULL,
min = 0
),
numericInput("rmMax",
label = p(class = "controlcheck-p1",
"Max length"),
value = NULL,
min = 0
),
uiOutput("error_rmMinMax")
)
),
bsPopover("rmMin", "",
"Minimum number of bases in a read",
options = list(container = "body")
),
bsPopover("rmMax", "",
"Maximum number of bases in a read",
options = list(container = "body")
),
tags$button(id = "button8", class = "accordion",
"8. Remove duplicated sequences?",
tags$span()
),
div(class = "panelCustom",
style = "margin-bottom:20em",
wellPanel(class = "inAccordion",
checkboxGroupInput("rm.duplic",
label = "",
choices = list("Use filter?" = 1),
selected = 0
)
)
)
),
br(), br()
),
br(), br(), br(),
fluidRow(
column(6, class = "left",
h3(class = "blackTag", "Select a file")),
column(3, class = "right"),
br(),br(),br(),br()
),
fluidRow(id = "filecontainer",
column(6,
fluidRow(
column(12, style = "float:left; margin-left:2em;margin-top:1em;",
radioButtons("fileTypeIn",
p(class="controlcheck-p3", "Library type"),
choices = c("single-end reads" = "SR",
"paired-end reads" = "PE"))
),
column(12, style = "float:left; margin-left:2em;",
htmlOutput("selection"),
actionButton(class = "setButton", "goButton", "Run!")
),
column(12, style = "float:left; margin-left:2em; margin-top: 2em",
p(class="controlcheck-p3", "File selected:"),
verbatimTextOutput("myPath")
),
column(12, style = "float:left; margin-left:2em;margin-top:1em;",
p(class="controlcheck-p3", "Encoding:"),
verbatimTextOutput("encoding")
)
)
),
column(6,
fluidRow(
column(12, style = "float:left; margin-left:2em;",
style = "float:left; margin-right:2em;;margin-top:1em;",
radioButtons("fileTypeOut",
p(class="controlcheck-p3", "Output format"),
choices = c("FASTQ" = "fastq", "gz (compressed)" = "gz"),
selected = "fastq")
),
column(12, style = "float:left; margin-left:2em;",
actionButton(class = "setButton", "resetSelections", "Clear"),
actionButton(class = "setButton", "resetAll", "Reset")
)
)
),
fluidRow(
column(12,
tags$button(id = "advancedButton",
class = "adButton",
"Advanced"
)
),
column(12,
fluidRow(id = "advancedMenu",
column(6, style = "float:left; margin-left:2em;",
radioButtons("customEncod",
p(class ="controlcheck-p1 encoding",
"The program will auto detect encoding.
You can also select a custom format of the following:"),
choices = c(
"None selected" = 0,
"Sanger | Q range: [33-73]" = 1,
"Illumina 1.8+ | Q range: [33-74]" = 2,
"Illumina 1.3+ | Q range: [64-104]" = 3,
"Illumina 1.5+ | Q range: [66-104]" = 4,
"Solexa | range: [59-104]" = 5
)
)
),
column(6, style = "float:left; margin-left:2em;",
numericInput("nfile",
label = p(class ="controlcheck-p1 nfile",
"Reads sampled for encoding detection and file processing"),
value = 100000
)
)
)
)
)
),
tags$script(src = 'scripts/javascript.js'),
singleton(tags$head(
tags$script(src = 'shared/jqueryui/jquery-ui.min.js')
)),
tags$script(src = "scripts/highcharts.js"),
tags$script(src = "scripts/highcharts-more.js"),
tags$script(src = "scripts/exporting.js"),
tags$script(src = "scripts/offline-exporting.js"),
tags$script(src = "scripts/FqC_highcharts_style.js"),
tags$script(src = "scripts/heatmap.js"),
htmlOutput('archivo'),
htmlOutput('check1'),
htmlOutput('check2'),
htmlOutput('check3'),
htmlOutput('check4'),
htmlOutput('check5'),
htmlOutput('check6'),
htmlOutput('check7'),
htmlOutput('check8'),
htmlOutput('runDone'),
htmlOutput('set_encoding_radio')
)
)
),
panel1Input("panel1"),
tabPanel("Live Results", sidebarLayout(
sidebarPanel(width = 3, id = "menuPlot", class = "sideBarPlot",
numericInput("sample", label = p(class = "controlcheck-p3",
"Sample size"), value = 10000),
radioButtons("filePlot",
p(class = "controlcheck-p3", "File to plot:"),
choices = c("Input" = "my_input", "Output" = "my_output")
),
br(),
selectInput("plotType",
label = p(class = "controlcheck-p3", "Diagnostic plots"),
choices = c(
"Select a plot..." = "",
"Per cycle quality" = "a",
"Per cycle mean base quality" = "b",
"Mean quality distribution" = "c",
"% reads with Phred scores > threshold" = "d",
"Per cycle base proportion (barplot)" = "e",
"Per cycle base proportion (lineplot)" = "f",
"CG content over all reads" = "g",
"Read length" = "h",
"Read occurrence" = "i",
"Relative k-mer diversity" = "j"
),
selected = "none"
),
br(),
numericInput(
"klength",
label = p(class = "controlcheck-p3", "Select kmer size"),
value = 6
),
br(),
numericInput(
"maxFreq",
label = p(class = "controlcheck-p3",
"Top sequences in duplication level analysis"),
value = 20
),
br(),br(),br(),br(),br(),br(),br(),br(),
br(),br(),br(),br(),br(),br(),br(),br()
),
mainPanel(
htmlOutput("plot1"),
htmlOutput("plot2"),
uiOutput("plotPanel"),
bsModal("modalTable",
title = "Most represented sequences",
trigger = "tabBut",
size = "large",
DT::dataTableOutput('freqTable1'),
DT::dataTableOutput('freqTable2')
),
uiOutput("tabBut")
)
)
),
panel2Input("panel2"),
panel3Input("panel3")
)
)
))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.