Nothing
shiny::shinyUI(
shiny::navbarPage("powdR",
#################################
# TAB 1: REFERENCE LIBRARY BUILDER
#################################
shiny::tabPanel("Reference Library Builder",
shiny::fluidRow(
shiny::column(4, shiny::wellPanel(
shiny::h3("1. File upload"),
shiny::h4("XRPD data"),
shiny::helpText(shiny::withMathJax("Choose a .csv file containing the 2\\(\\theta\\) scale
and the count intensities of all reference patterns.")),
shiny::div(style="display: inline-block;vertical-align:top; width: 300px;",
shiny::fileInput(inputId = "uploadXRD",
label = NULL,
multiple = FALSE,
accept = ".csv")),
shiny::div(style="display: inline-block;vertical-align:center; width: 0px;",
shinyWidgets::dropdownButton(
shiny::downloadLink(outputId = "download_xrd_eg",
label = "Download an example .csv file"),
circle = FALSE, status = "danger", icon = shiny::icon("question"),
width = "300px", size = "sm"
)),
shiny::h4("Phase information"),
shiny::helpText("Upload a .csv file containing the id's, names and reference
intensity ratios of all reference patterns."),
shiny::div(style="display: inline-block;vertical-align:top; width: 300px;",
shiny::fileInput(inputId = "uploadPHASE",
label = NULL,
multiple = FALSE,
accept = ".csv")),
shiny::div(style="display: inline-block;vertical-align:center; width: 0px;",
shinyWidgets::dropdownButton(
shiny::downloadLink(outputId = "download_phases_eg",
label = "Download an example .csv file"),
circle = FALSE, status = "danger", icon = shiny::icon("question"),
width = "300px", size = "sm"
)),
shiny::tags$hr(),
shiny::div(style="display: inline-block;vertical-align:bottom; width: 100px;",
h3("2. Build")),
shiny::div(style="display: inline-block;vertical-align:bottom; width: 100px;",
shiny::actionButton("BuildLibButton", "Click to build library")),
shiny::tags$hr(),
shiny::h3("3. Download library"),
shiny::helpText("Provide a name for the new powdRlib object.
This is what the library will be called if it is
subsequently loaded into R (can be kept as the default
'RefLib'):"),
shiny::textInput("name", label = NULL, "RefLib"),
shiny::downloadButton(outputId = "download_lib",
label = "Download library as .Rdata binary file")
)),
shiny::column(8, shiny::wellPanel(
shiny::h3("Phases in your reference library"),
shiny::tags$hr(),
DT::dataTableOutput("minerals_table")
))
) # end fluidRow
),
#################################
## TAB 2: REFERENCE LIBRARY PLOTTER
#################################
shiny::tabPanel("Reference Library Viewer",
shiny::fluidRow(
shiny::column(4, shiny::wellPanel(
shiny::helpText("Choose a .Rdata reference library to load. Must be
a powdRlib object created using either the powdRlib function,
or via the Reference Library Builder in this application."),
shiny::fileInput(inputId = "loadLIB_plotter",
label = NULL,
multiple = FALSE,
accept = ".Rdata")
)),
shiny::column(4, shiny::wellPanel(
shiny::helpText("Select a wavelength to use when calculating d-spacings."),
shiny::selectInput(inputId = "selectWAVELENGTH",
label = NULL,
multiple = FALSE,
choices = list("Cu (1.54056 Angstroms)" = "Cu",
"Co (1.78897 Angstroms)" = "Co"))
)),
shiny::column(4, shiny::wellPanel(
shiny::helpText("Choose phases from the library to plot."),
shiny::selectInput(inputId = "selectPHASES_plotter",
label = NULL,
choices = c("Please upload a reference library"),
selected = "Please upload a reference library",
multiple = TRUE,
selectize = TRUE)
))
), # end fluidRow
shiny::fluidRow(
shiny::column(12, shiny::wellPanel(
plotly::plotlyOutput("lib_plot", width = "auto", height = 600),
shiny::tags$hr(),
DT::dataTableOutput("lib_table")
))
)
),
#################################
## TAB 3: REFERENCE LIBRARY EDITOR
#################################
shiny::tabPanel("Reference Library Editor",
shiny::fluidRow(
shiny::column(4, shiny::wellPanel(
shiny::h3("1. Load a library"),
shiny::helpText("Choose a .Rdata reference library to load. Must be
a powdRlib object created using either the powdRlib function,
or via the Reference Library Builder in this application."),
shiny::div(style="display: inline-block;vertical-align:top; width: 300px;",
shiny::fileInput(inputId = "loadLIB_editor",
label = NULL,
multiple = FALSE,
accept = ".Rdata")),
shiny::tags$hr(),
shiny::h3("2. Select the subset mode"),
shiny::selectInput(inputId = "selectMODE_editor",
label = NULL,
choices = c("keep", "remove"),
multiple = FALSE),
shiny::tags$hr(),
shiny::h3("3. Select reference patterns to subset"),
shiny::selectInput(inputId = "selectPHASES_editor",
label = NULL,
choices = c("Please upload a reference library"),
selected = "Please upload a reference library",
multiple = TRUE,
selectize = TRUE),
shiny::tags$hr(),
shiny::div(style="display: inline-block;vertical-align:bottom; width: 120px;",
h3("4. Subset")),
shiny::div(style="display: inline-block;vertical-align:bottom; width: 100px;",
actionButton("SubsetLibButton", "Click to subset library")),
shiny::tags$hr(),
shiny::h3("5. Download library"),
shiny::helpText("Provide a name for the new powdRlib object.
This is what the library will be called if it is
subsequently loaded into R (can be kept as the default
'RefLib'):"),
shiny::textInput("name_editor", label = NULL, "RefLib"),
shiny::downloadButton(outputId = "download_subset_lib",
label = "Download library as .Rdata binary file")
)),
shiny::column(8, shiny::wellPanel(
shiny::h3("Phases in your subset reference library"),
shiny::tags$hr(),
DT::dataTableOutput("minerals_subset_table")
))
) #End fluid row
), #End tabpanel
######################################
# TAB 4: Full pattern summation
#####################################
shiny::tabPanel("Full Pattern Summation",
shiny::fluidRow(
shiny::column(3, shiny::wellPanel(
shiny::h3("1. Load samples for quantification"),
shiny::helpText("Must be .xy format (space separated)"),
shiny::div(style="display: inline-block;vertical-align:top; width: 225px;",
shiny::fileInput(inputId = "loadXY",
label = NULL,
multiple = FALSE,
accept = c(".xy", ".XY"))),
shiny::div(style="display: inline-block;vertical-align:center; width: 0px;",
shinyWidgets::dropdownButton(
shiny::downloadLink(outputId = "download_sandstone",
label = "sandstone_soil.xy "),
shiny::downloadLink(outputId = "download_limestone",
label = "limestone_soil.xy "),
shiny::downloadLink(outputId = "download_granite",
label = "granite_soil.xy "),
circle = FALSE, status = "danger", icon = shiny::icon("question"),
width = "300px", size = "sm")),
shiny::h3("2. Load a reference library"),
shiny::helpText("Must be a .Rdata powdRlib object"),
shiny::div(style="display: inline-block;vertical-align:top; width: 225px;",
shiny::fileInput(inputId = "loadLIB",
label = NULL,
multiple = FALSE,
accept = ".Rdata")),
shiny::div(style="display: inline-block;vertical-align:center; width: 0px;",
shinyWidgets::dropdownButton(
shiny::downloadLink(outputId = "download_rockjock",
label = "rockjock_powdRlib.Rdata"),
shiny::downloadLink(outputId = "download_mineral_library",
label = "example_powdRlib.Rdata"),
circle = FALSE, status = "danger", icon = shiny::icon("question"),
width = "300px", size = "sm")),
shiny::h3("3. Select mode"),
shiny::selectInput(inputId = "selectMode_fps",
label = NULL,
choices = c("Manual", "Automated"),
selected = "Manual"),
shiny::h3("4. Select a solver"),
shiny::helpText("Select the optimisation routine"),
shiny::selectInput(inputId = "selectSolver_fps",
label = NULL,
choices = c("BFGS", "Nelder-Mead", "CG", "NNLS"),
selected = "BFGS"),
shiny::helpText("Select the objective function to minimise"),
shiny::selectInput(inputId = "selectOBJ_fps",
label = NULL,
choices = c("Rwp", "R", "Delta"),
selected = "Rwp"),
shiny::tags$hr(),
shiny::h3("5. Select phases"),
shiny::helpText("Select the phases to use in the fitting."),
shiny::selectInput(inputId = "selectPHASES_fps",
choices = c("Upload a powdRlib object in section 2"),
label = NULL,
multiple = TRUE,
selectize = TRUE,
selected = "Upload a powdRlib object in section 2"),
shiny::helpText("Choose an internal standard that may be used for peak
alignment or estimation of limits of detection."),
shiny::selectInput(inputId = "selectINT_fps",
label = NULL,
choices = c("")),
shiny::checkboxInput("std_conc_check_fps",
label = "Is the internal standard concentration known?",
value = FALSE),
shiny::uiOutput("std_conc_help_ui"),
shiny::uiOutput("std_conc_box_fps_ui"),
shiny::uiOutput("amorph_help_ui"),
shiny::uiOutput("selectAMORPH_ui"),
shiny::uiOutput("force_help_ui"),
shiny::uiOutput("selectFORCE_ui"),
shiny::tags$hr(),
shiny::h3("6. Adjust fit parameters"),
shiny::helpText("Adjust the alignment parameter"),
shiny::checkboxInput("align_man_fps", label = "Manual alignment?",
value = FALSE),
shiny::sliderInput("align_fps", label = NULL, min = 0,
max = 0.5, value = c(0.1)),
shiny::helpText("Adjust the shifting parameter"),
shiny::sliderInput("shift_fps", label = NULL, min = 0,
max = 0.5, value = c(0)),
shiny::helpText(withMathJax("Adjust the 2\\(\\theta\\) range
for full pattern summation")),
shiny::sliderInput("tth_fps_slide", label = NULL,
min = 2, max = 75,
value = c(2, 75), step = 0.1),
uiOutput("slide_help_ui"),
shiny::sliderInput("lod_slide", label = NULL,
min = 0, max = 3,
value = 0, step = 0.01),
shiny::helpText("Select a wavelength to use when calculating d-spacings."),
shiny::selectInput(inputId = "selectWAVELENGTHfps",
label = NULL,
multiple = FALSE,
choices = list("Cu (1.54056 Angstroms)" = "Cu",
"Co (1.78897 Angstroms)" = "Co"))
)),
shiny::column(9, shiny::wellPanel(
shiny::div(style="display: inline-block;vertical-align:bottom; width: 300px;",
h3("7. Full pattern summation")),
shiny::div(style="display: inline-block;vertical-align:bottom; width: 300px;",
shiny::actionButton("goButton_fps", "Click to start computation")),
shiny::tags$hr(),
shiny::h5("Once computation has finished, the results will be tabulated and
plotted below. Results can then be exported using download buttons at the
bottom of this page."),
shiny::tags$hr(),
DT::dataTableOutput("contents_fps"),
shiny::tags$hr(),
plotly::plotlyOutput("line_fps", width = "auto", height = 550),
shiny::tags$hr(),
shiny::h3("8. Download computed fit"),
shiny::downloadButton(outputId = "download_meas",
label = "Download measured pattern (.xy)"),
shiny::downloadButton(outputId = "download_calc",
label = "Download fitted pattern (.xy)"),
shiny::downloadButton(outputId = "download_concs",
label = "Download concentrations (.csv)"),
shiny::downloadButton(outputId = "download_fps",
label = "Download powdRfps object (.Rdata)")
))
) # end fluidRow
),
#################################
## TAB 5: RESULTS VIEWER EDITOR
#################################
shiny::tabPanel("Results Viewer/Editor",
shiny::fluidRow(
shiny::column(3, shiny::wellPanel(
shiny::h3("1. Load results to edit"),
shiny::helpText("Must be .Rdata powdRfps or powdRafps object"),
shiny::div(style="display: inline-block;vertical-align:top; width: 225px;",
shiny::fileInput(inputId = "loadResults_editor",
label = NULL,
multiple = FALSE,
accept = c(".Rdata"))),
shiny::h3("2. Load the reference library"),
shiny::helpText("Must be a .Rdata powdRlib object of the library used to
produce the original results"),
shiny::div(style="display: inline-block;vertical-align:top; width: 225px;",
shiny::fileInput(inputId = "loadLIB_fps_editor",
label = NULL,
multiple = FALSE,
accept = ".Rdata")),
shiny::h3("3. Select a solver"),
shiny::helpText("Choose the optimisation routine"),
shiny::selectInput(inputId = "selectSolver_editor",
label = NULL,
choices = c("BFGS", "Nelder-Mead", "CG", "NNLS"),
selected = "BFGS"),
shiny::helpText("Choose the objective function to minimise"),
shiny::selectInput(inputId = "selectOBJ_editor",
label = NULL,
choices = c("Rwp", "R", "Delta")),
shiny::tags$hr(),
shiny::h3("4. Select phases"),
shiny::helpText("Select phases to remove from the original analysis"),
shiny:: selectInput(inputId = "selectREMOVE_editor",
label = NULL,
multiple = TRUE,
selectize = TRUE,
choices = c("")),
shiny::helpText("Select phases from the library to add to the analysis"),
shiny::selectInput(inputId = "selectADD_editor",
label = NULL,
multiple = TRUE,
selectize = TRUE,
choices = c("")),
shiny::helpText("Select an internal standard"),
shiny::selectInput(inputId = "selectSTD_editor",
label = NULL,
multiple = FALSE,
selectize = TRUE,
choices = c("")),
shiny::checkboxInput("std_conc_check_editor",
label = "Is the internal standard concentration known?",
value = FALSE),
shiny::uiOutput("std_conc_box_editor_ui"),
shiny::tags$hr(),
shiny::h3("5. Adjust fit parameters"),
shiny::helpText("Adjust the alignment parameter"),
shiny::checkboxInput("align_man_editor", label = "Manual alignment?",
value = FALSE),
shiny::uiOutput("align_editor_ui"),
shiny::helpText("Adjust the shifting parameter"),
shiny::sliderInput("shift_editor", label = NULL, min = 0,
max = 0.5,
value = c(0)),
shiny::helpText(shiny::withMathJax("Adjust the 2\\(\\theta\\) range for
full pattern summation")),
shiny::sliderInput("tth_editor", label = NULL,
min = 2, max = 75,
value = c(2, 75), step = 0.1),
shiny::helpText("Select a wavelength to use when calculating d-spacings."),
shiny::selectInput(inputId = "selectWAVELENGTHeditor",
label = NULL,
multiple = FALSE,
choices = list("Cu (1.54056 Angstroms)" = "Cu",
"Co (1.78897 Angstroms)" = "Co"))
)),
shiny::column(9, shiny::wellPanel(
shiny::h3("6. Full pattern summation"),
shiny::selectInput(inputId = "selectPLOTeditor",
label = "Select whether the original results or new
results are plotted",
multiple = FALSE,
choices = list("Original results", "New results")),
shiny::div(style="display: inline-block;vertical-align:bottom; width: 225px;",
shiny::actionButton("goButton_editor", "Click to Recompute results")),
shiny::div(style="display: inline-block;vertical-align:bottom; width: 325px;",
shiny::helpText("Note: Computation may take several minutes.")),
shiny::tags$hr(),
DT::dataTableOutput("contents_editor"),
plotly::plotlyOutput("line_editor", width = "auto", height = 550),
shiny::tags$hr(),
shiny::h3("7. Download computed fit"),
shiny::downloadButton(outputId = "download_meas_editor",
label = "Download edited measured pattern (.xy)"),
shiny::downloadButton(outputId = "download_calc_editor",
label = "Download edited fitted pattern (.xy)"),
shiny::downloadButton(outputId = "download_mins_editor",
label = "Download edited phase concentrations (.csv)"),
shiny::downloadButton(outputId = "download_editor",
label = "Download edited powdRfps object (.Rdata)")
))
) # end fluidRow
),
#################################
## TAB 6: HELP
#################################
shiny::tabPanel("Help",
shiny::fluidRow(
shiny::column(12, align = "center",
shiny::h1("Video tutorial"),
shiny::uiOutput("video")
)
) # end fluidRow
)
) # end navbarPage
)# end shinyUI
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.