Code Monkey home page Code Monkey logo

2023-glbio's Introduction

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

  • Demo and motivation: A quick preview of our MolEvolvR web-app (and a use-case demo with PSP operon). How did these special cases translate to a more generalizable user-friendly version?
  • When are you ready to set up a dashboard? When would you build a simple web-application instead?
  • How do you pick your feature list for your web-app? Some lessons and reflections. When is a feature function, package, or web-app ready?
  • Project management 101: how to set up version-controlled projects and repositories for collaborative computational biology projects (with other dry/wet-lab colleagues)?
  • R-package 101: When, why, and how would you create your first R-package?
  • Dashboard 101: How to develop a dashboard for your data/visualizations using Rmarkdown/Quarto?
  • Web-app 101: How to develop and host an interactive R Shiny web application?
  • Quick tour on how to set up the backend that supports a workflow, data tables and visualizations, for a multi-functional web-app such as MolEvolvR.

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

  • Test run MolEvolvR with example codes provided | Read preprint for context
  • Check out companion PSP web-app with fully populated data
  • Bring questions to the workshop!

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

2023-glbio's People

Contributors

falquaddoomi avatar jakekrol avatar jananiravi avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

howardbaek

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.