A shiny module for plotting microplate layout
This is a highcharter package based shiny module that can display the layout of a microplate as bubble plot and return infomation of user selected wells.
This shiny module requires following packages. Please make sure they are installed.
install.package('dplyr')
install.package('tidyr')
install.package('highcharter')
- Source the module file
source('layoutPlateMod.R')
- In server function, create a shiny reactive object that contains the microplate layout data to be displayed in dataframe format:
server <- function(input, output) {
# The microplate dataframe should contain at least four columns:
# Well(chr): the well id of microplate (eg, A1, A2, B5, D12)
# Value(num): the value of that well to be displayed as bubble size
# Color_by(chr): the categorical variable that defines the color of bubble
# Label(chr): the label displayed on the bubble
# The dataframe may contain other columns and will be ignored.
microplate <- reactive({
expand.grid(Row = LETTERS[1:8], Col = 1:12, stringsAsFactors = F) %>%
unite(Well, Row, Col, sep = '') %>%
mutate(Value = runif(n()),
Color_by = sample(c('Group A', 'Group B', 'Group C', NA_character_), n(), T),
Label = sample(c(1:5, NA), n(), T)) %>%
sample_frac(0.9) %>%
arrange(Color_by)
})
# other codes
}
- Invoke module in server function and send the microplate data object to the
data
parameter. Setnrow
andncol
to define the type of microplate:
selected <- callModule(loplate, id = 'YOU_MODULE_ID', data = microplate, nrow = 8, ncol = 12)
- Add layout output ui
ui <- fluidPage(
loplateUI('YOU_MODULE_ID')
)
- Run app. Select wells by Click + Dragging or Shift + Click. The module returns a subsetted dataframe according to the selection.