SISBID 2025 Module 2: Data Visualization

Instructors: Di Cook, Heike Hofmann and Susan Vanderplas

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

Module description

We will present general-purpose techniques for visualizing a variety of data, as well as specific techniques for visualizing common types of biological data sets. Some strategies for working with large data will be provided. Understanding data involves an iterative cycle of visualization and modeling. We will illustrate this with several examples 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 include some these principles for working with biological and genomic data.

The second segment will focus on interactive graphics for rapid exploration. We will also demonstrate interactive techniques for high-performance local display, and for easily creating interactive web graphics. In addition, we will explain how to create simple web GUIs for managing interactive analysis tools for data using shiny.

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.

Module assumes some familiarity with R. We will teach using R and Rstudio.

Recommended Reading:

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 Accra London Korea Melbourne
Meet & Greet 11:30 - 11:45 am 1:30 - 1:45 pm 2:30 - 2:45 pm 6:30 - 6:45 pm 7:30 - 7:45 pm 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 6:45 - 7:30 pm 7:45 - 8:30 pm 3:45 - 4:30 am 4:45 - 5:30 pm
Lecture 2 12:45 - 1:30 pm 2:45 - 3:30 pm 3:45 - 4:30 pm 7:45 - 8:30 pm 8:45 - 9:30 pm 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 8:45 - 9:30 pm 9:45 - 10:30 pm 5:45 - 6:30 am 6:45 - 7:30 am
Thursday US Pacific US Central US Eastern Accra London Korea Melbourne
Lecture 1 8:00 - 8:45 am 10:00 - 10:45 am 11:00 - 11:45 am 3:00 - 3:45 pm 4:00 - 4: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 4:00 - 4:45 pm 5:00 - 5:45 pm 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 5:00 - 5:45 pm 6:00 - 6:45 pm 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 6:45 - 7:30 pm 7:45 - 8:30 pm 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 7:45 - 8:30 pm 8:45 - 9:30 pm 4:45 - 5:30 am 5:45 - 6:30 am
Lecture 6 1:45 - 2:30 pm 3:45 - 4:30 pm 4:45 - 5:30 pm 8:45 - 9:30 pm 9:45 - 10:30 pm 5:45 - 6:30 am 6:45 - 7:30 am
Friday US Pacific US Central US Eastern Accra London Korea Melbourne
Lecture 1 8:00 - 8:45 am 10:00 - 10:45 am 11:00 - 11:45 am 3:00 - 3:45 pm 4:00 - 4: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 4:00 - 4:45 pm 5:00 - 5:45 pm 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 5:00 - 5:45 pm 6:00 - 6:45 pm 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 6:45 - 7:30 pm 7:45 - 8:30 pm 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 7:45 - 8:30 pm 8:45 - 9:30 pm 4:45 - 5:30 am 5:45 - 6:30 am
Lecture 6 & Lecture 7 1:45 - 2:30 pm 3:45 - 4:30 pm 4:45 - 5:30 pm 8:45 - 9:30 pm 9:45 - 10:30 pm 5:45 - 6:30 am 6:45 - 7:30 am

Course outline

Slack

Find us on slack: SISBID.slack.com. The channel is data-visualization-2025 which contains zoom and video links.

Wednesday afternoon

zip file download

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

Thursday

zip file download
Note: this zip file assumes you will extract to the same folder as yesterday – data files have not been included twice.

Morning

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

Afternoon

  1. Multivariate plots using ggplot2, GGally · Slides · Single page (Di)
  2. Touring on multivariate data · Slides · Single page (Di)
  3. Advanced graphics, and statistical inference · Slides · Single page (Susan)

Friday

zip file · download
Note: this zip file assumes you will extract to the same folder as Wednesday – data files have not been included twice.

Morning

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

Afternoon

  1. Reactive elements in shiny · Slides · Single page (Heike).
  2. Theme a shiny app · Slides · Single page (Susan).
  3. Build your own Shiny app · Slides · Single page (Heike).
  4. Show us what you’ve made and interactive quarto documents · Slides · Single page (Di, Susan & Heike)

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(
  "here", "readr", "readxl", "splitstackshape", "tidyr", "dplyr", "lubridate",
  "stringr", "purrr", "ggplot2", "ggthemes", "RColorBrewer", "scales",
  "dichromat", "colorspace", "viridis", "ggbeeswarm", "ggmap", "gridExtra",
  "GGally", "ggpcp", "corrgram", "tourr", "gganimate", "maps","datasauRus",
  "gapminder", "cranlogs", "shiny", "bslib", "DT", "leaflet", "plotly",
  "htmltools", "broom", "broom.mixed", "lme4", "MASS", "forecast", "nullabor")

# 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")

# 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:

install.packages("remotes")
remotes::install_github("hadley/emo")
remotes::install_github("mitchelloharawild/icons")
remotes::install_github("emitanaka/anicon")
remotes::install_github("dicook/gretchenalbrecht")
remotes::install_github("r-for-educators/flair")
remotes::install_github("gadenbuie/countdown", subdir = "r")