2023-glbio

MolEvolvR BTS: When and how to build a web-app and software package?

Companion repository for the half-day workshop at GLBIO 2023

📌 Slidedeck Feedback form Demos: R-pkg, Quarto, Shiny Web-app & Docker

What’s this workshop about?

We recently developed a web application, MolEvolvR (DOI), to characterize proteins using molecular evolution and phylogeny. This session will serve as a behind-the-scenes (BTS) sneak peek into what MolEvolvR does, how it does it, and its origin story. The hands-on training component will provide the basic principles of why and how to build a dashboard/web-app for your biological problem of interest with R/Shiny, and when and how you would set up your back-end as an R package.

Workshop outline Rationale with hands-on component

The workshop includes three main sections.

  1. Develop an R-package API for programmatic access to the app services
  2. Utilizing Rmarkdown/Quarto notebooks (and dashboards) for quick, one-off analyses
  3. Streamlining an analysis pipeline with R Shiny and docker, and deploying your app to the public

The design of the workshop is inspired by the development of our web-app, MolEvolvR, which is a generalized user-friendly version of a specific use-case we developed to study the Phage Shock Protein (PSP) stress response system (Psp web-app). We found that the underlying method could be applied to a wide variety of biological questions and thus created a web-app that performs analysis of proteins by their sequence, structure, function, and evolution across the tree of life.

psp-network

However, the transition from a quick one-off analysis or specific use cases to a scalable, flexible web-app comes with several challenges. We will provide hands-on examples that show how to transform a smaller project into a fully-featured web-app and/or R-package.

We’ll guide participants through a similar scenario where we build an analysis pipeline from the ground up using the best practices we’ve found over years of development.

Along the way, we’ll briefly cover some soft technical skills such as version control with git, environment management with docker, and overall programming best practices that make large, collaborative projects more manageable. ***

Requirements and Set-up (before the workshop)

Overall

For R-package 101

  1. Install the latest version of RStudio and R from here
  2. Install devtools (incl. usethis) install.packages("devtools", dependencies=T)
  3. Access and install R-package from here: github.com/jravilab/iprscanr

For Quarto/dashboard

  1. Install quarto from RStudio/Terminal
  2. Quarto material and output

For Docker and web-app 101

  1. Install docker desktop
  2. Access docker + web-app material here

When and where?

Organizers