Image credit: 'Emoh: sculpture / time capsule & temporary home' by Loren Naji

Lecture slides on iCloud

Overview

Reproducing an analysis requires more than just code. You need the original raw data, access to the appropriate programming languages, and application specific packages (and often specific versions of these packages). This poses a major impediment to reproducibility, even for researchers with a background in bioinformatics. To address this challenge, you’ll learn how to ‘containerize’ your data, scripts and software, making it easy to share and rerun an entire analysis with the push of a button.

Learning objectives

  • Learn how to make your research analyses reproducible
  • Create a reproducible package environment with renv
  • Share your project via GitHub and git
  • Understand how to streamline code using custom R functions.
  • Share your work as an R package
  • Discuss the basics of Docker and containerized software

What you need to do

Lecture videos

Part 1 - Reproducibility via the renv package

Part 2 - Connecting your project to GitHub

Part 3 - Keeping your code clean via custom functions

Part 4 - How to turn your analysis project into a stand alone R package


Reading

Happy Git and GitHub with RStudio - Jenny Bryan and team walk through every step of how to install git, connect to GitHub and access version control from within RStudio.

There’s a lot of reading material for how to get started making functions and packages. Beyond the extensive and very well written book on building R packages and excellent documentation for the usethis package, you may also want to check out some great lab posts on making R packages (here, here, here, and here).

Code Ocean whitepaper - describes the need for better tools for reproducible research and introduces their cloud-based computational platform for addressing this need.

Intro to Docker - Code Ocean is based on Docker, a free and open-source tool that allows you to ‘build, share and run applications anywhere’.

Code Ocean On-boarding document - Step-by-step details for how to set-up your own capsule.

Our recent paper, showing a code capsule embedded directly in the joural webpage (a first for any AAAS journal).

Google Collaboratory - Write, edit and share Python code directly in your browser