Allow setting a custom default dataset

This commit is contained in:
Elias Projahn 2022-12-02 15:16:37 +01:00
parent c14208c2b2
commit 995b31646e
4 changed files with 203 additions and 177 deletions

15
R/app.R
View file

@ -2,8 +2,19 @@
#'
#' @param host The hostname to serve the application on.
#' @param port The port to serve the application on.
#' @param custom_dataset This allows to set a custom dataset (return value of
#' [analyze()]) as the default dataset of the UI.
#'
#' @export
run_app <- function(host = "127.0.0.1", port = 3464) {
runApp(shinyApp(ui, server), host = host, port = port)
run_app <- function(host = "127.0.0.1",
port = 3464,
custom_dataset = NULL) {
runApp(
shinyApp(
ui(custom_dataset = custom_dataset),
server(custom_dataset = custom_dataset)
),
host = host,
port = port
)
}

View file

@ -1,13 +1,16 @@
#' Server implementing the main user interface.
#' @noRd
server <- function(input, output, session) {
server <- function(custom_dataset = NULL) {
function(input, output, session) {
dataset <- reactive({
analysis <- if (input$dataset == "gtex_tissues") {
ubigen::gtex_tissues
} else if (input$dataset == "hpa_tissues") {
ubigen::hpa_tissues
} else {
} else if (input$dataset == "gtex_all") {
ubigen::gtex_all
} else {
custom_dataset
}
merge(analysis, ubigen::genes, by = "gene")
@ -181,4 +184,5 @@ server <- function(input, output, session) {
})
output$gsea_plot_ranking <- plotly::renderPlotly(gsea_plot_ranking)
}
}

12
R/ui.R
View file

@ -1,6 +1,6 @@
#' Function for creating the main user interface.
#' @noRd
ui <- function() {
ui <- function(custom_dataset = NULL) {
div(
custom_css(),
rclipboard::rclipboardSetup(),
@ -22,11 +22,19 @@ ui <- function() {
selectInput(
"dataset",
label = strong("Expression dataset"),
list(
{
choices <- list(
"GTEx (across tissues and conditions)" = "gtex_all",
"GTEx (across tissues)" = "gtex_tissues",
"Human Protein Atlas (across tissues)" = "hpa_tissues"
)
if (!is.null(custom_dataset)) {
c(list("Custom dataset" = "custom"), choices)
} else {
choices
}
}
),
selectInput(
"cross_sample_metric",

View file

@ -4,12 +4,15 @@
\alias{run_app}
\title{Run the application server.}
\usage{
run_app(host = "127.0.0.1", port = 3464)
run_app(host = "127.0.0.1", port = 3464, custom_dataset = NULL)
}
\arguments{
\item{host}{The hostname to serve the application on.}
\item{port}{The port to serve the application on.}
\item{custom_dataset}{This allows to set a custom dataset (return value of
\code{\link[=analyze]{analyze()}}) as the default dataset of the UI.}
}
\description{
Run the application server.