/SISBID

Materials from this repo are best viewed using the web site listed below

Primary LanguageHTMLMIT LicenseMIT

SISBID 2023 Module 2: Visualization of Biomedical Big Data

Instructors: Di Cook, Heike Hofmann and Susan Vanderplas

Website: https://dicook.github.io/SISBID/

Module description: In this module, we will present general-purpose techniques for visualizing any sort of large data sets, as well as specific techniques for visualizing common types of biological data sets. Often the challenge of visualizing Big Data is to aggregate it down to a suitable level. Understanding Big Data involves an iterative cycle of visualization and modeling. We will illustrate this with several case studies during the workshop. The first segment of this module will focus on structured development of graphics using static graphics. This will use the ggplot2 package in R. It enables building plots using grammatically defined elements, and producing templates for use with multiple data sets. We will show how to extend these principles for genomic data using the ggplot2-based ggbio package. The second segment will focus on interactive graphics for rapid exploration of Big Data. We will also demonstrate interactive techniques using plotly, animint and ggvis. In addition we will explain how to create simple web GUIs for managing complex summaries of biological data using the shiny package. We will use a hands-on teaching methodology that combines short lectures with longer practice sessions. As students learn about new techniques, they will also be able to put them into practice and receive feedback from experts. We will teach using R and Rstudio. We will assume some familiarity with R.

Recommended Reading: Cookbook for R, by Winston Chang, available at http://www.cookbook-r.com, and R for Data Science, by Garrett Grolemund and Hadley Wickham, available at http://r4ds.had.co.nz.

Course Logistics

We use zoom for lectures. All sessions will be recorded and made available.

Communication with the instructors should be in Zoom or on the slack channel.

Zoom etiquette:

  • mute yourself when not talking,
  • don't share the link.

Course Schedule

Wednesday US Pacific US Central US Eastern Denmark Singapore Korea Melbourne
Meet & Greet 11:30 - 11:45 am 1:30 - 1:45 pm 2:30 - 2:45 pm 8:30 - 8:45 pm 2:30 - 2:45 am 3:30 - 3:45 am 4:30 - 4:45 am
Lecture 1 11:45 - 12:30 1:45 - 2:30 pm 2:45 - 3:30 pm 8:45 - 9:30 pm 2:45 - 3:30 am 3:45 - 4:30 am 4:45 - 5:30 am
Lecture 2 12:45 - 1:30 pm 2:45 - 3:30 pm 3:45 - 4:30 pm 9:45 - 10:30 pm 3:45 - 4:30 am 4:45 - 5:30 am 5:45 - 6:30 am
Lecture 3 1:45 - 2:30 pm 3:45 - 4:30 pm 4:45 - 5:30 pm 10:45 - 11:30 pm 4:45 - 5:30 am 5:45 - 6:30 am 6:45 - 7:30 am
Thursday US Pacific US Central US Eastern Denmark Singapore Korea Melbourne
Lecture 1 8:00 - 9:00 am 10:00 - 11:00 am 11:00 - 12:00 pm 6:00 - 7:00 pm 11:00 - 12:00 am 12:00 - 1:00 am 1:00 - 2:00 am
Lecture 2 9:15 - 10:00 am 11:15 - 12:00 pm 12:15 - 1:00 pm 7:15 - 8:00 pm 12:15 - 1:00 am 1:15 - 2:00 am 2:15 - 3:00 am
Lecture 3 10:15 - 11:15 am 12:15 - 1:15 pm 1:15 - 2:15 pm 8:15 - 9:15 pm 1:15 - 2:15 am 2:15 - 3:15 am 3:15 - 4:15 am
Break
Lecture 4 12:15 - 1:30 pm 1:15 - 2:30 pm 2:15 - 3:30 pm 8:15 - 9:30 pm 2:15 - 3:30 am 3:15 - 4:30 am 4:15 - 5:30 pm
Lecture 5 1:45 - 2:30 pm 3:45 - 4:30 pm 4:45 - 5:30 pm 10:45 - 11:30 pm 4:45 - 5:30 am 5:45 - 6:30 am 6:45 - 7:30 am
Friday US Pacific US Central US Eastern Denmark Singapore Korea Melbourne
Lecture 1 8:00 - 8:45 am 10:00 - 10:45 am 11:00 - 11:45 am 6:00 - 6:45 pm 11:00 - 11:45 pm 12:00 - 12:45 am 1:00 - 1:45 am
Lecture 2 9:00 - 9:45 am 11:00 - 11:45 am 12:00 - 12:45 pm 7:00 - 7:45 pm 12:00 - 12:45 am 1:00 - 1:45 am 2:00 - 2:45 am
Lecture 3 10:00 - 10:45 am 12:00 - 12:45 pm 1:00 - 1:45 pm 8:00 - 8:45 pm 1:00 - 1:45 am 2:00 - 2:45 am 3:00 - 3:45 am
Break
Lecture 4 11:45 - 12:30 1:45 - 2:30 pm 2:45 - 3:30 pm 8:45 - 9:30 pm 2:45 - 3:30 am 3:45 - 4:30 am 4:45 - 5:30 pm
Lecture 5 12:45 - 1:30 pm 2:45 - 3:30 pm 3:45 - 4:30 pm 9:45 - 10:30 pm 3:45 - 4:30 am 4:45 - 5:30 am 5:45 - 6:30 am
Lecture 6 and Lecture 7 1:45 - 2:30 pm 3:45 - 4:30 pm 4:45 - 5:30 pm 10:45 - 11:30 pm 4:45 - 5:30 am 5:45 - 6:30 am 6:45 - 7:30 am

Course outline

Wednesday afternoon zip file

  1. Setting things up
  2. The grammar of graphics and ggplot2 (Heike)
  3. Advancing the grammar to maps, time and interactivity (Di)
  4. Visual perception and effective plot construction (Susan)

Thursday zip file

Morning:

  1. Tidy data and tidying your messy data with tidyr (Heike)
  2. Making Data Messy again (Heike)
  3. Wrangling data and models (Heike)

Afternoon:

  1. Multivariate plots using ggplot2, GGally (Di)
  2. Touring on multivariate data (Di)

Friday zip file

Morning:

  1. Advanced graphics, and statistical inference (Susan)
  2. Interactive and animated graphics using plotly and gganimate (Heike).
  3. How to build a shiny app (Susan).

Afternoon:

  1. Reactive elements in shiny (Susan).
  2. Theme a shiny app (Susan).
  3. Build your own Shiny app (Susan).
  4. Show us what you've made and additional interactivity options with Rmarkdown (Di)

Software list

Download RStudio, and latest R version.

Open RStudio, and run the code below to install these packages and their dependencies:

# CRAN packages
packages <- c("tidyr", "dplyr", "readr", "ggplot2", "stringr", "ggmap", "here", "leaflet", "lubridate", "plotly", "RColorBrewer", "gridExtra", "dichromat", "conflicted", "scales", "broom", "broom.mixed", "lme4", "GGally", "palmerpenguins", "corrgram", "tourr", "htmltools", "ggthemes", "maps", "viridis", "nullabor", "splitstackshape", "forecast", "readxl", "MASS", "datasauRus", "cranlogs", "gapminder", "shiny", "shinydashboard", "learnr", "ggmosaic", "gganimate", "remotes", "mapproj", "rsconnect")

# Install packages and their dependencies
install.packages(packages, dep=TRUE, repos = "https://cloud.r-project.org/")

# Install some packages from GitHub 
remotes::install_github("wmurphyrd/fiftystater")
remotes::install_github("heike/vinference")
remotes::install_github("hollylkirk/ochRe")

# Bioconductor packages
if (!require("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("bigPint")

# For sharing web apps, 
# but you need adminstrator rights to your computer:

install.packages("rsconnect")

Note: You can install all of the tidyverse of packages - tidyr, dplyr, readr, ggplot2, tibble, purrr, forcats, stringr - with install.packages("tidyverse"). But some operating systems seem to run into difficulties doing this, so installing just a subset is easier.

If you want to compile the slides - you really don't want to do this, but if you do - you will need these additional packages:

# Packages used to compile slides
install.packages("xaringan")
remotes::install_github("hadley/emo")
remotes::install_github("mitchelloharawild/icons")
remotes::install_github("emitanaka/anicon")
remotes::install_github("dicook/gretchenalbrecht")
remotes::install_github("gadenbuie/countdown")