All Projects

PROTOCOL Dashboard — Bayesian Optimization for Cloud Labs

Machine LearningBayesian OptimizationWeb ApplicationPublicationShiny
PROTOCOL Dashboard — Bayesian Optimization for Cloud Labs

Overview

This interactive dashboard accompanies our paper:

Asynchronous parallel Bayesian optimization for AI-driven cloud laboratories Trevor S Frisby, Zhiyun Gong, Christopher James Langmead Bioinformatics, Volume 37, Issue Supplement_1, July 2021, Pages i451–i459 https://doi.org/10.1093/bioinformatics/btab291

The dashboard lets you:

  • Run PROTOCOL — PaRallel OptimizaTiOn for CLoud Laboratories
  • Compare with other Bayesian optimization algorithms
  • Visualize optimization progress and results
  • Experiment with different simulated lab settings

Design & Planning

Problem framing

Bayesian optimization algorithms are typically published as code libraries, making them inaccessible to scientists without programming expertise. The PROTOCOL paper introduced a novel asynchronous parallel algorithm for AI-driven cloud laboratories, but without an interactive tool, readers could not explore or reproduce its behavior without running R code themselves.

Key design decisions

  • R Shiny for interactive visualization — the underlying PROTOCOL package is R-based; building the dashboard in Shiny avoids a language boundary and keeps the simulation and visualization in the same runtime.
  • Publication-linked deployment — embedding the live app in the paper’s supplementary materials ensures figures and results remain reproducible and explorable by reviewers and readers.

Architecture overview

The dashboard is an R Shiny application that wraps the PROTOCOL R package directly. Optimization simulations run in-process using the package’s core functions, and results are visualized using ggplot2. Users configure simulation parameters through Shiny input widgets; the reactive framework re-runs the simulation and re-renders plots on parameter changes.

Challenges & what I’d do differently

  • Shiny performance degrades with long-running optimization loops — added async-style progress indicators as a workaround, but the UI still blocks during heavy computation.
  • Would move long simulations to a background process (using future or promises in R Shiny) to keep the UI responsive.
  • Persistent hosting of Shiny apps requires paid infrastructure; would evaluate whether a static export or WebAssembly-based approach could reduce ongoing hosting costs.

Live App