library(shiny)
shinyUI(fluidPage(
# Application title
title = "MSN poppr",
titlePanel("Minimum spanning networks in poppr"),
sidebarLayout(
sidebarPanel(
tags$h5("Status"),
conditionalPanel(condition="!$('html').hasClass('shiny-busy')",
tagAppendChild(tags$div(class="progress"),
tagAppendChild(tags$div(class="progress-bar progress-bar-success",
role="progressbar", `aria-valuenow`="100",
`aria-valuemin`="0", `aria-valuemax`="100",
style="width: 100%"), tags$strong("ready")))
),
conditionalPanel(condition="$('html').hasClass('shiny-busy')",
tagAppendChild(tags$div(class="progress"),
tagAppendChild(tags$div(class="progress-bar progress-bar-striped active",
role="progressbar", `aria-valuenow`="100",
`aria-valuemin`="0", `aria-valuemax`="100",
style="width: 100%"), tags$strong("loading")))
),
tagAppendChildren(
tags$div(style="display:inline-block"),
list(
actionButton("submit", "Go!", icon("check-circle")),
actionButton("update-data", "reData", icon("refresh")),
actionButton("update-graph", "reGraph", icon("refresh"))
)
),
# http://stackoverflow.com/a/21715813/2752888
HTML("
<h3>
Data
<button type = 'button' class = 'btn btn-secondary btn-xs' data-toggle='collapse' data-target='#dparams' aria-expanded='true' aria-controls='dparams'>
show/hide
</button>
</h3>
"),
div(id = "dparams", class = "collapse in",
# h3("Data Parameters"),
uiOutput("selectUI"),
uiOutput("selectPops"),
checkboxInput("genclone", "Convert to genclone?", TRUE),
selectInput("distance",
"Choose a distance calculation",
choices = c("Dissimilarity",
"Bruvo",
"Nei",
"Rogers",
"Edwards",
"Provesti",
"Reynolds",
"Custom")
),
conditionalPanel("input.distance == 'Custom'",
uiOutput("customDist")
),
conditionalPanel("input.distance == 'Bruvo'",
selectInput("bruvo_model",
"Select a model for missing data",
choices = c("Genome Addition",
"Genome Loss",
"Infinite",
"Average Addition/Loss"),
selected = "Average Addition/Loss"),
textInput("replen", "SSR repeat lengths\n(comma separated or a valid R expression)", "1, 2, 3")
),
conditionalPanel("input.distance != 'Bruvo'",
uiOutput("distargsUI")
),
checkboxInput("reticulate", "Include reticulations?", TRUE)
),
HTML("
<h3>
Display
<button type = 'button' class = 'btn btn-secondary btn-xs' data-toggle='collapse' data-target='#gparams' aria-expanded='true' aria-controls='gparams'>
show/hide
</a>
</h3>
"),
div(id = "gparams", class = "collapse in",
selectInput("layout",
"Choose a layout",
choices = c(
"layout_nicely",
"layout_randomly",
"layout_with_dh",
"layout_on_grid",
"layout_in_circle",
"layout_on_sphere",
"layout_as_tree",
"layout_as_star",
"layout_with_drl",
"layout_with_fr",
"layout_with_gem",
"layout_with_graphopt",
"layout_with_kk",
"layout_with_lgl",
"layout_with_mds",
"Custom")
),
conditionalPanel("input.layout == 'Custom'",
uiOutput("customLayout")
),
checkboxInput("pop.leg", "Population legend", TRUE),
checkboxInput("size.leg", "Node size legend", TRUE),
checkboxInput("scale.leg", "Scale bar", TRUE),
sliderInput("greyslide",
"Grey scale",
min = 0,
max = 25,
value = 3,
step = 1
),
sliderInput("nodescale",
"Node scale",
value = 10,
min = 1,
max = 100,
step = 1),
numericInput("seed",
"Random Seed",
"69"
),
radioButtons("ind_or_mlg", "Labels",
choices = c("sample names", "MLGs"),
selected = "sample names", inline = TRUE
),
textInput("inds", NULL, "ALL"),
checkboxInput("mlgs", "Show MLG", FALSE),
radioButtons("pal", "Indicate a color palette to be used",
choices=c("rainbow",
"cm.colors",
"topo.colors",
"terrain.colors",
"gray.colors",
"funky",
"spectral",
"seasun",
"azur",
"wasp",
"custom"), inline = TRUE
),
conditionalPanel("input.pal == 'custom'",
textInput("custom_pal", "Custom palette/function", "'purple'")
),
numericInput("cutoff",
"Distance cutoff",
NULL,
step = 0.001
),
checkboxInput("beforecut", "Keep graph position", TRUE)
)
),
mainPanel(
tabsetPanel(
tabPanel("Plot", plotOutput("plot", height = '600px')),
tabPanel("Data", verbatimTextOutput("summary")),
tabPanel("Command", verbatimTextOutput("cmd")),
tabPanel("Save Plot",
radioButtons("pdf_png", label = "Choose output filetype",
choices = c("pdf", "png"),
selected = "pdf",
inline = TRUE),
conditionalPanel("input.pdf_png == 'pdf'",
numericInput("pdf_plot_width", "Width (in)",
value = 7,
step = 0.1,
min = 1,
max = 20),
numericInput("pdf_plot_height", "Height (in)",
value = 7,
step = 0.1,
min = 1,
max = 20),
downloadButton("save_pdf", "Save PDF", class = "btn-info")
),
conditionalPanel("input.pdf_png == 'png'",
numericInput("png_plot_width", "Width (px)",
value = 400,
min = 1,
max = 5000),
numericInput("png_plot_height", "Height (px)",
value = 400,
min = 1,
max = 5000),
numericInput("png_res", "Resolution (dpi)",
value = 300,
min = 72,
max = 2000,
step = 1),
downloadButton("save_png", "Save PNG", class = "btn-info")
)
),
tabPanel("Session Information",
verbatimTextOutput("infoRmation")
)
)
)
)
))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.