SISBID 2026 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

Monday US Pacific US Central US Eastern Accra London Korea Melbourne
Meet & Greet 7:45 - 8:00 am 9:45 - 10:00 am 10:45 - 11:00 am 2:45 - 3:00 pm 3:45 - 4:00 pm 11:45 am - 12:00 pm 12:45 - 1:00 am
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
Tuesday US Pacific US Central US Eastern Accra London Korea Melbourne
Lecture 7 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 8 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 9 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 10 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 11 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 12 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
Wednesday US Pacific US Central US Eastern Accra London Korea Melbourne
Lecture 13 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 14 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 15 / Show and Tell 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

Course outline

Slack

Find us on slack: SISBID.slack.com. The channel data-visualization-2026 will contain zoom and (later) video links for the sessions.

Monday

Day 1 zip file

Title Slides 1pg Slides Code Instructor
0. Setting things up Slides 1pg Code All
1. The grammar of graphics and ggplot2 Slides 1pg Code Heike
2. Visual perception and effective plot construction Slides 1pg Code Susan
3. Tidy data and tidying messy data with tidyr Slides 1pg Code Heike
Break
4. Reshaping Data for Plotting and Display Slides 1pg Code Susan
5. Wrangling data and models Slides 1pg Code Heike
6. Advancing the grammar to maps, time and interactivity Slides 1pg Code Di

Tuesday

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

Title Slides 1pg Slides Code Instructor
7. Interactive and animated graphics using plotly and gganimate Slides 1pg Code Heike
8. How to build a shiny app Slides 1pg Code Heike
9. Reactive elements in shiny Slides 1pg Code Susan
Break
10. Multivariate plots using ggplot2, GGally Slides 1pg Code Di
11. Touring on multivariate data Slides 1pg Code Di
12. Advanced graphics and statistical inference Slides 1pg Code Di

Wednesday

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

Title Slides 1pg Slides Code Instructor
13. Theme a shiny app Slides 1pg Code Susan
14. Build your own Shiny app Slides 1pg Code Heike
Show us What You’ve Made All
15. Interactive Documents Slides 1pg Code Susan

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",
  "ggdist", "bsicons", "ragg", "showtext", "thematic", "remotes", "quarto",
  "bslib")

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

# Install some packages from GitHub
# If you can't install these,
# it won't affect your ability to participate
remotes::install_github("wmurphyrd/fiftystater")
remotes::install_github("heike/vinference")
remotes::install_github("rstudio/bslib")
remotes::install_github("rlbarter/superheat")

# For sharing web apps,
# but you need administrator 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("gadenbuie/countdown", subdir = "r")
install.packages("xaringanExtra")