This function handles much of the book keeping code required to setup a shiny gadget around a facile object x. There are two

frunGadget(
  analysisModule,
  analysisUI,
  x,
  user = Sys.getenv("USER"),
  title = "Facile Analysis Gadget",
  height = 800,
  width = 1000,
  viewer = "dialog",
  ...,
  with_sample_filter = is(x, "FacileDataStore"),
  retval = "x",
  debug = FALSE
)

Arguments

analysisModule

the server function for the gadget

analysisUI

the UI function for the gadget

x

the FacileDataStore or a facile sample descriptor from one.

user

the username/id for the analysis

title

the title of the gadget

height, width

height and width of gadget, defaults to 600 and 1000, respectively.

viewer

"dialog" (default), "browser", or "pane". See description from shiny::runGadget

Value

a subclass of FacileAnalysisGadgetResult which holds the result from the analysisModule, as well as am annotation tibble, that can hold information from brushing of smaples (or features) -- depending on what the gadget is working over.

Details

This allows us to (shiny)-interact over objects (x) that have been created programmaticaly during an analysis, and return relevant interactive events over x, or derivative analysis results back to the workspace.

Flavors of x

We want to support building interactive components over different types of facile objects (x). When x is a:

  • FacileDataStore the analysis module will include a FacileShine::filteredReactiveFacileDataStoreUI(), which allows the user to interactrively subset down to the samples that the analysis module will have access to and analyze. The user can then configure and run and analysis, and subsequently interact with the results.

  • facile_sample_frame the analysis module will be initialized to work over the samples defined in the facile_frame. The user will then configure the anlaysis to run from there and be able to interact with the results.

  • FacileAnalysisResult will launch the view over the analysis result, allowing the user to interact with and explore the result.