How we train: Going remote

August 18, 2020

When the CCDL (along with everyone else) realized that we would have to conduct our bioinformatics training workshops remotely, we had to make some quick decisions about how we were going to do it. Most of the instructional materials for our in person workshops were already online, so we knew we had a good base to work from. We just needed to figure how to adapt the live instruction.

The Tools

We were all familiar with Slack and use it every day to communicate both within our group and with collaborators and community, so that was an easy component to add. Zoom quickly emerged as having the right set of features for video and screen sharing.

Our next decision was whether to stick with the Docker-based setup that we had used for in-person training. While we like Docker for its ability to quickly get everyone set up with the same sets of tools through a single installation process, that installation still often requires a bit of a personal touch. Everyone has a slightly different setup for their computer, and sometimes things just don’t go quite to plan. We wanted something that we could customize, but that would require minimal setup work on the part of our participants. RStudio Server was just what we needed. We could set up a server with pre-installed tools and data, then create a space for each user to login using only their web browser and have access to the full power of R, RStudio, and the Linux system underneath.

The Setup

We don’t like surprises (well, some of us do, but not for this). We wanted things to “just work” as much as possible. So before anyone logged in, we did a fair bit of system setup:

  • We installed all the R packages we expected people to need in the system library.
  • We  installed command line tools we planned to use, like Salmon and fastqc.
  • We downloaded reference genomes and indexes to a shared (read-only) directory (shoutout to refgenie for making this easy).
  • We put the raw data files (and processed files) in a shared directory.
  • We created a prototype user directory with all of the workbook files the participants would need, with links to the larger data files they would need from the shared directory. Then, when creating a new user we employed the `useradd --skel` option to automatically populate the new user’s home directory with those files.

Setup sessions

I think I said we don’t like surprises. But we knew they would come. We just really didn’t want them all at once on the first day of training. So we wrote up some pretty detailed installation instructions for Slack and Zoom, and instructions for logging into our RStudio Server and changing passwords.

To be sure everyone could hit the ground running (and because our instructions are not foolproof), we had every participant sign up for a short setup meeting a few days before the start of our training session. At the setup meeting, we DMed them on Slack, then had a short Zoom call where we verified that they would be able to share their screen and that they could login to RStudio without trouble.

At least that was the reason we started with. It turned out that it was also quite comforting just to have a first face-to-face interaction that wasn’t part of a large group call.

The Workshop Proper

Once everyone was all set with their tools, we were ready to hit the ground running on Day 1 of the workshop. The facts were these:

  • Each day started at noon EDT and ran until 5ish. Our primary audience is in the US, so that timing made it possible for all time zones to participate, we hoped.
  • We split each day into instruction and consultation time.
  • Instruction was the sorta traditional lecture time, conducted over Zoom. More on that in a sec.
  • Consultation was for working on the exercises we provided to reinforce and extend lecture material. We were there for help on Slack, with the ability to parachute in with a Zoom screenshare as needed.
  • In our first trial, we split those into separate days, but that seemed to be way too much instruction time for everyone on the instruction-only days, so we shifted to the half and half schedule.

Teaching over Zoom

Knowing that it is easy to get stuck when you are just starting out with programming in R, we knew we wanted to maintain live instruction. Our setup consisted of one main instructor per session, with a co-pilot handling Zoom logistics. The co-pilot was critical for fielding and triaging questions, interrupting the instructor as needed, managing  breakout rooms, and otherwise keeping the lectures going smoothly. Other staff were on hand to help in breakout rooms with anybody who was temporarily stuck.

Consultation time

Critical to our approach was the idea of consultation time. As mentioned, we provided exercise notebooks to extend and reinforce the concepts from lectures. While the goal is for participants to work on these on their own, at their own pace, we also don’t want people to get stuck and frustrated. To accomplish this goal, we made ourselves available in a training-specific Slack channel for defined consultation periods, during which we strove to respond rapidly to any questions that were asked. (In practice, since we are all on Slack a lot, we would often respond even outside the defined hours.) Since the questions and answers were visible to everyone in the workshop, recurring issues could be addressed once and common solutions shared.

The Upshot

We have so far run three successful online training workshops, with more to come. Feedback has been great. Here are some completely representative examples:

  • “It's been the best class I've taken since this quarantine began and I could not speak highly enough of the instructors and the topics.”
  • “Before these workshops, I spent a lot of time trying to find good online resources to learn these techniques and the CCDL experience was by far the best.”
  • “The team was very hands-on throughout but also gave us enough room to explore on our own. I liked that balance a lot. Their promptness in responding prevented me from getting frustrated and giving up.”

We also have areas we are working to improve. We’re always tweaking the instruction materials and methods, so every new workshop can hopefully be better than the last!

There is, of course, much more we could describe about how we prepared and ran the workshops, but this margin is too small to contain it. We have extensive documentation and processes, much of it publicly available in our GitHub repositories. If you or someone you know is looking for some bioinformatics training, especially if they are involved in childhood cancer research, you can sign up to be notified about our upcoming training workshops. We’d love to see you there!

When the CCDL (along with everyone else) realized that we would have to conduct our bioinformatics training workshops remotely, we had to make some quick decisions about how we were going to do it. Most of the instructional materials for our in person workshops were already online, so we knew we had a good base to work from. We just needed to figure how to adapt the live instruction.

The Tools

We were all familiar with Slack and use it every day to communicate both within our group and with collaborators and community, so that was an easy component to add. Zoom quickly emerged as having the right set of features for video and screen sharing.

Our next decision was whether to stick with the Docker-based setup that we had used for in-person training. While we like Docker for its ability to quickly get everyone set up with the same sets of tools through a single installation process, that installation still often requires a bit of a personal touch. Everyone has a slightly different setup for their computer, and sometimes things just don’t go quite to plan. We wanted something that we could customize, but that would require minimal setup work on the part of our participants. RStudio Server was just what we needed. We could set up a server with pre-installed tools and data, then create a space for each user to login using only their web browser and have access to the full power of R, RStudio, and the Linux system underneath.

The Setup

We don’t like surprises (well, some of us do, but not for this). We wanted things to “just work” as much as possible. So before anyone logged in, we did a fair bit of system setup:

  • We installed all the R packages we expected people to need in the system library.
  • We  installed command line tools we planned to use, like Salmon and fastqc.
  • We downloaded reference genomes and indexes to a shared (read-only) directory (shoutout to refgenie for making this easy).
  • We put the raw data files (and processed files) in a shared directory.
  • We created a prototype user directory with all of the workbook files the participants would need, with links to the larger data files they would need from the shared directory. Then, when creating a new user we employed the `useradd --skel` option to automatically populate the new user’s home directory with those files.

Setup sessions

I think I said we don’t like surprises. But we knew they would come. We just really didn’t want them all at once on the first day of training. So we wrote up some pretty detailed installation instructions for Slack and Zoom, and instructions for logging into our RStudio Server and changing passwords.

To be sure everyone could hit the ground running (and because our instructions are not foolproof), we had every participant sign up for a short setup meeting a few days before the start of our training session. At the setup meeting, we DMed them on Slack, then had a short Zoom call where we verified that they would be able to share their screen and that they could login to RStudio without trouble.

At least that was the reason we started with. It turned out that it was also quite comforting just to have a first face-to-face interaction that wasn’t part of a large group call.

The Workshop Proper

Once everyone was all set with their tools, we were ready to hit the ground running on Day 1 of the workshop. The facts were these:

  • Each day started at noon EDT and ran until 5ish. Our primary audience is in the US, so that timing made it possible for all time zones to participate, we hoped.
  • We split each day into instruction and consultation time.
  • Instruction was the sorta traditional lecture time, conducted over Zoom. More on that in a sec.
  • Consultation was for working on the exercises we provided to reinforce and extend lecture material. We were there for help on Slack, with the ability to parachute in with a Zoom screenshare as needed.
  • In our first trial, we split those into separate days, but that seemed to be way too much instruction time for everyone on the instruction-only days, so we shifted to the half and half schedule.

Teaching over Zoom

Knowing that it is easy to get stuck when you are just starting out with programming in R, we knew we wanted to maintain live instruction. Our setup consisted of one main instructor per session, with a co-pilot handling Zoom logistics. The co-pilot was critical for fielding and triaging questions, interrupting the instructor as needed, managing  breakout rooms, and otherwise keeping the lectures going smoothly. Other staff were on hand to help in breakout rooms with anybody who was temporarily stuck.

Consultation time

Critical to our approach was the idea of consultation time. As mentioned, we provided exercise notebooks to extend and reinforce the concepts from lectures. While the goal is for participants to work on these on their own, at their own pace, we also don’t want people to get stuck and frustrated. To accomplish this goal, we made ourselves available in a training-specific Slack channel for defined consultation periods, during which we strove to respond rapidly to any questions that were asked. (In practice, since we are all on Slack a lot, we would often respond even outside the defined hours.) Since the questions and answers were visible to everyone in the workshop, recurring issues could be addressed once and common solutions shared.

The Upshot

We have so far run three successful online training workshops, with more to come. Feedback has been great. Here are some completely representative examples:

  • “It's been the best class I've taken since this quarantine began and I could not speak highly enough of the instructors and the topics.”
  • “Before these workshops, I spent a lot of time trying to find good online resources to learn these techniques and the CCDL experience was by far the best.”
  • “The team was very hands-on throughout but also gave us enough room to explore on our own. I liked that balance a lot. Their promptness in responding prevented me from getting frustrated and giving up.”

We also have areas we are working to improve. We’re always tweaking the instruction materials and methods, so every new workshop can hopefully be better than the last!

There is, of course, much more we could describe about how we prepared and ran the workshops, but this margin is too small to contain it. We have extensive documentation and processes, much of it publicly available in our GitHub repositories. If you or someone you know is looking for some bioinformatics training, especially if they are involved in childhood cancer research, you can sign up to be notified about our upcoming training workshops. We’d love to see you there!

Back To Blog