Nothing
###############
# UI panel for inputting templates
##################
tabPanel("Templates",
id = "input_data_tabset",
value = "input_data_panel",
icon = icon("book", lib = "glyphicon"),
br(),
h2(class="inline", "Templates"),
br(),
br(),
# display template introductory text
div(class = "one",
p("Please load a set of template sequences. You can either simply load one of the supplied template data sets or provide your own template data.",
openPrimeRui:::create.help.button("input_templates")
)
),
### template scenario selector (template source)
radioButtons("template_scenario",
tagList(icon("floppy-disk", lib = "glyphicon"),
"Template source"),
choices = c("Available" = "supplied",
"Personal" = "personal"),
selected = "supplied", inline=TRUE
),
shinyBS::bsTooltip("template_scenario",
paste("Load templates provided by openPrimeR or load your own templates?"),
"right", options = list(container = "body")
),
# selection of type of supplied templates
conditionalPanel("input.template_scenario == 'supplied'",
selectizeInput("selected_supplied_templates",
"Template type",
c("Immunology" = "immunological",
"Virology" = "virological"),
selected = "immunological"
)
),
shinyBS::bsTooltip("selected_supplied_templates",
paste("Select one of the available data sets."),
"right", options = list(container = "body"),
trigger = "focus"
),
##############
# COMPARISON TAB
################
conditionalPanel("input.primer_analysis_type == 'compare'",
############
# template selection for primer comparison
###########
conditionalPanel("input.template_scenario == 'personal'",
# personal comparison templates
fileInput("comparison_templates",
tagList(icon("file", lib = "glyphicon"),
"Template CSV"
),
multiple = TRUE, accept = "text/csv"
),
shinyBS::bsTooltip("comparison_templates",
"Upload analyzed, downloaded (raw) template files \\
in csv format corresponding to the \\
input primer sets for comparison.",
"right"
)
),
#######
# SUPPLIED TEMPLATES
#########
conditionalPanel("input.template_scenario == 'supplied'",
# SUPPLIED IMGT TEMPLATES
conditionalPanel("input.selected_supplied_templates == 'immunological'",
div(class = "one",
p("We supply functional template data for IGH,
IGK, and IGL of homo sapiens.")
),
selectizeInput("template_comparison_locus",
tagList(icon("book", lib = "glyphicon"),
"Locus"),
c("IGH", "IGK", "IGL"),
selected = NULL,
options = list(
placeholder = 'Please select one of the available template data sets',
onInitialize = I('function() { this.setValue(""); }')
)
)
),
# SUPPLIED VIRUS TEMPLATES
conditionalPanel("input.selected_supplied_templates == 'virological'",
#div(class = "one",
#p("We supply functional template data for IGH,
#IGK, and IGL of homo sapiens.")
#),
selectInput("virus_type_comparison",
"Virus",
openPrimeRui:::get.available.viruses(),
selected = "HIV-1"),
# locus to retrieve data for
selectizeInput("virus_region_comparison",
"Region",
choices = NULL,
selected = NULL,
options = list(
placeholder = 'Please select one of the available template data sets',
onInitialize = I('function() { this.setValue(""); }')
)
)
),
#######
# RESET BUTTON FOR COMPARISON TEMPLATES
#######
actionButton("reset_rv_comparison.data", "Reset",
icon = icon("refresh", lib = "glyphicon"),
class = "actionStyleSmall"),
shinyBS::bsTooltip("reset_rv_comparison.data",
"Reset uploaded primer and template sets for comparison.",
"right", options = list(container = "body")
)
)),
###########
# Analysis of primers
############
conditionalPanel("input.primer_analysis_type != 'compare'",
shinyBS::bsCollapse(id = "template_collapse_analysis",
open = "template_input_panel",
shinyBS::bsCollapsePanel(tagList(icon("book", lib = "glyphicon"),
"Template input"),
value = "template_input_panel",
style = "primary",
############
# SUPPLIED TEMPLATES: IMMUNOLOGICAL
###############
conditionalPanel("input.template_scenario == 'supplied' && input.selected_supplied_templates == 'immunological'",
# Template upload: other analysis than comparison and IMGT data are used
div(class = "one",
p("Specify the template sequences to be retrieved from ",
HTML("<a href='http://imgt.org/genedb/' target='_blank'>
IMGT Gene-DB</a>"), ".
The allowed primer binding region is automatically set
to the leader region."
)
),
# species to retrieve data for
selectInput("IMGT_DB_species",
"Species",
openPrimeRui:::get.IMGT.settings()[["model.gene.id.species.txt"]],
selected = "Homo sapiens"),
# locus to retrieve data for
selectInput("IMGT_DB_locus",
"Locus",
openPrimeRui:::get.IMGT.settings()[["model.locusLike.txt"]],
selected = "IGH"
),
# IMGT function to retrieve data for
selectInput("IMGT_DB_function",
"Function",
openPrimeRui:::get.IMGT.settings()[["model.allele.fcode.txt"]],
selected = "functional"
),
# remove partial seqs?
checkboxInput("remove_partial_seqs",
"Remove partial sequences",
TRUE
),
shinyBS::bsTooltip("remove_partial_seqs",
"Exclude sequences that are incomplete and augment IMGT data with new sequencing results (if available).",
"right", options = list(container = "body")
),
# re-load IMGT data stored on disk?
checkboxInput("update_IMGT_DB_data",
"Update existing data",
FALSE
),
shinyBS::bsTooltip("update_IMGT_DB_data",
"Reload data from IMGT?",
"right", options = list(container = "body")
),
# template retrieve button
actionButton("IMGT_template_button",
"Retrieve templates",
icon = icon("database"),
class="actionStyle btn-primary"
),
shinyBS::bsTooltip("IMGT_template_button",
"Retrieve selected templates from IMGT.",
"right", options = list(container = "body")
),
# confirm templates button
div(class="rightAligned",
shinyBS::bsButton("IMGT_template_confirm_button",
"Confirm templates",
icon = icon("check"),
class="actionStyleSmall",
disabled = TRUE)
)
), # conditional panel for IMGT template ends
########## CONDITIONAL PANEL FOR VIROLOGICAL TEMPLATES
conditionalPanel("input.template_scenario == 'supplied' && input.selected_supplied_templates == 'virological'",
# Template upload: other analysis than comparison and IMGT data are used
div(class = "one",
p("Specify the virological template sequences to be analyzed.")
),
# species to retrieve data for
selectInput("virus_type",
"Virus",
openPrimeRui:::get.available.viruses(),
selected = "HIV-1"),
# locus to retrieve data for
selectInput("virus_region",
"Region",
NULL,
),
# template retrieve button for virusees
actionButton("Virus_template_button",
"Retrieve templates",
icon = icon("database"),
class="actionStyle btn-primary"
),
shinyBS::bsTooltip("Virus_template_button",
"Retrieve selected viral templates.",
"right", options = list(container = "body")
)
),
################
###############
# PERSONAL TEMPLATES
#############
conditionalPanel("input.template_scenario == 'personal'",
########
# TEMPLATE INPUT OPTIONS
#########
#value = "config_template_header_structure",
#style = "primary",
div(p("Please customize the following settings according to the data contained in your FASTA file headers and then upload the FASTA file you want to analyze."),
class = "two"
),
shinyBS::bsCollapse(id = "personal_template_options",
open = NULL,
#####
# start of basic template options
######
shinyBS::bsCollapsePanel(
tagList(
icon("menu-hamburger", lib = "glyphicon"),
"Basic options"),
value = "basic_personal_template_options",
# header structure choice
uiOutput("header_structure", width = "50%"),
# header delimiter symbol
textInput(inputId = "template_header_delim",
label = tagList(icon("list-alt", lib = "glyphicon"),
"Header field delimiter"),
value = "|"
),
shinyBS::bsTooltip("header_structure",
"The metadata fields appearing in the headers of the template FASTA file.",
"right",
options = list(container = "body"),
trigger = "focus"
),
shinyBS::bsTooltip("template_header_delim",
"The character separating individual fields in the template headers.",
"right", options = list(container = "body")
)
),
######
# END OF basic options
###########
shinyBS::bsCollapsePanel(
tagList(
icon("menu-hamburger", lib = "glyphicon"),
"Expert options"),
value = "template_expert_panel",
# column to be used as template identifier
selectInput("template_header_ID_column",
tagList(icon("key"), "Header ID field"),
choices = c("ACCESSION", "GROUP", "SPECIES", "FUNCTION"),
selected = "ACCESSION"
),
shinyBS::bsTooltip("template_header_ID_column", "The field in the template header to be used as the identifier of the templates.",
"right", options = list(container = "body",
trigger = "focus")
),
# the character indicating gaps in the templates
textInput("gap_char",
tagList(icon("scissors"), "Alignment gap character"),
value = "-"
),
shinyBS::bsTooltip("gap_char", "The character used to indicate gaps in case of aligned input.",
"right", options = list(container = "body")
),
# remove duplicate seqs?
checkboxInput("remove_duplicated_seqs",
"Remove duplicate sequences",
FALSE
),
shinyBS::bsTooltip("remove_duplicated_seqs",
"Exclude sequences that are duplicated.",
"right", options = list(container = "body")
)
) # end of expert options
), # close options bscollapse/panel
br(),
shinyBS::bsTooltip("help_input_templates_header",
"View help on defining the template input settings.",
"right", options = list(container = "body")
),
# PESRSONAL OPTIONS END
##########
# START PERSONAL TEMPLATE INPUT
##########
# template input panel
fileInput(inputId = "sequence_file",
label = tagList(icon("file"),
"Template FASTA/CSV file"
)
),
shinyBS::bsTooltip("sequence_file", "The PCR template sequences in FASTA or CSV format.",
"right", options = list(container = "body")
),
# confirm templates button
div(class = "rightAligned",
shinyBS::bsButton("confirm_uploaded_templates",
"Confirm templates", icon = icon("check"),
class = "actionStyleSmall", disabled = TRUE,
style = "primary"
)
)
) # close conditional panel for personal input
), # close panel for template input
############ INSERT START
shinyBS::bsCollapsePanel(tagList(icon("bookmark"), "Allowed regions"),
########
# allowed regions panel
#######
value = "allowed_template_panel",
radioButtons("selected_allowed_region_definition",
label = tagList("Definition of allowed binding region"),
choices = c("Template-specific" = "Template-specific" ,
"Uniform" = "Uniform"
),
inline = TRUE
),
shinyBS::bsTooltip("selected_allowed_region_definition",
paste("Define the binding region either individually",
"for each template or provide uniform binding intervals"),
"right", options = list(container = "body")
),
conditionalPanel("input.selected_allowed_region_definition == 'Template-specific'",
# Template-specific binding regions
div(p("To restrict the allowed sites for primer binding for each template individually,
please input a FASTA file specifying the allowed binding regions for each template.",
openPrimeRui:::create.help.button("input_templates_allowed")),
class = "two"
),
fileInput(inputId = "leader_file", # input of fw allowed regions file
label = tagList(icon("arrow-right", lib = "glyphicon"),
"Allowed regions for forward primers (FASTA)")
),
# tooltips for fileinputs don't seem to work
shinyBS::bsTooltip("leader_file",
paste("A FASTA file with the template binding regions",
"(5\\' to 3\\' for forward primers."),
"right", options = list(container = "body")
),
fileInput(inputId = "leader_file_rev", # input of rev allowed regions file
label = tagList(icon("arrow-left", lib = "glyphicon"),
"Allowed regions for reverse primers (FASTA)")
),
shinyBS::bsTooltip("leader_file_rev",
paste("A FASTA file with the template binding regions",
"(5\\' to 3\\' for reverse primers."),
"right", options = list(container = "body")
),
##########
### CONFIRM REGIONS BUTTON:
###########
shinyBS::bsTooltip("help_input_templates_allowed",
"Help on setting the allowed regions for primer binding.",
"right", options = list(container = "body")
)
########
),
conditionalPanel("input.selected_allowed_region_definition == 'Uniform'",
# Uniform binding regions
div(p("To restrict the allowed sites for primer binding, please enter the positional range in the templates where the primers should bind. ",
openPrimeRui:::create.help.button("input_templates_uniform")),
class = "two"
),
# allowed regions fw
sliderInput("uniform_allowed_regions_fw",
label = tagList(icon("arrow-right", lib = "glyphicon"),
"5' Binding region: forward primers"),
min = 0,
max = 1000,
value = c(1,30)
),
shinyBS::bsTooltip("uniform_allowed_regions_fw",
paste("The positional range from the 5\\'",
"end of the templates where the forward",
"primers should bind."),
"right", options = list(container = "body")
),
sliderInput("uniform_allowed_regions_rev",
label = tagList(icon("arrow-left", lib = "glyphicon"),
"3' Binding region: reverse primers"),
min = 0, # if set to 0 -> primer starts with 1
max = 1000,
value = c(1,30)
),
shinyBS::bsTooltip("uniform_allowed_regions_rev",
paste("The positional range from the 5\\'",
"end of the templates where the reverse",
"primers should bind."),
"right", options = list(container = "body")
),
div(class="leftAligned",
actionButton("uniform_region_confirm_button",
"Update binding regions", icon = icon("check"),
class="actionStyle btn-primary",
)
)
), # uniform panel ends
############
# CUSTOMIZATION OF REGIONS
# -> only for template-specific / supplied templates
########
conditionalPanel("input.selected_allowed_region_definition == 'Template-specific'",
# individualization of regions
div(p("Define the binding range of forward/reverse
primers in relation to the target region."),
class = "two"
),
conditionalPanel("input.individual_allowed_regions_fw[0] != -0.99", # if leaders were loaded correctly
# modify fw binding region relative to defined binding region
sliderInput("individual_allowed_regions_fw",
label = tagList(icon("arrow-right", lib = "glyphicon"),
"Modify the allowed region for forward primers"),
min = -1,
max = 40,
value = c(-0.99, -0.99), step = 1
)
),
shinyBS::bsTooltip("individual_allowed_regions_fw",
paste("The upstream (5\\') binding region for forward primers.",
"<br>Negative positions correspond to positions",
"upstream of the target amplification site."),
"right", options = list(container = "body")
),
conditionalPanel("input.individual_allowed_regions_rev[0] != -0.99",
# modify rev binding region relative to defined binding region
sliderInput("individual_allowed_regions_rev",
label = tagList(icon("arrow-left", lib = "glyphicon"), "Modify the allowed region for reverse primers"),
min = -1, # if set to 0 -> primer starts with 1
max = 40, value = c(-0.99,-0.99),
step = 1
)
),
shinyBS::bsTooltip("individual_allowed_regions_rev",
paste("The downstream (3\\') binding region for reverse primers.",
"<br>Negative positions correspond to positions",
"downstream of the target amplification site."),
"right", options = list(container = "body")
),
# confirm button to delay updates from slides until button is pressed
div(class="leftAligned",
actionButton("individual_region_confirm_button",
"Update binding regions", icon = icon("check"),
class="actionStyle btn-primary"
)
)
) # customize conditional ends
) # allowed regions panel ends
) # template collapse ends
) # analysis conditional ends
) # template tab ends
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.