The course includes hands-on exercises for how to use, modify, share, and troubleshoot containers for scientific software development purposes.
Goal of this course: Equip learners with basics skills and confidence to utilize containers within the context of scientific software analyses. Expectations: This course is not meant to teach learners how to create complex containers, but instead introduce learners to basic fundamentals of continuous integration and continuous deployment (CI/CD). This course focuses on containers (Docker or Podman) and will not cover any other (perfectly fine) tools for CI/CD. Equipping researchers with the skills to create reproducible data analyses increases the efficiency of everyone involved. By recognizing that biological data analysis code is a form of software development, we can try to adapt good development practices in scientific analyses and software contexts. Scientific software projects may include (but aren’t limited to): - Software built as tools to be utilized by others to analyze biologically derived data - Code that is built primarily for analyzing one project’s data - Code that is built as a workflow for a series of steps and analyses that might be reused among collaborators or within a lab - Any scripts and code that are built to handle data in a research setting - Any scripts and code a researcher might interact with Containers are one tool among many for creating reproducible analyses. A container is a lightweight, portable, and isolated environment that encapsulates an application and its dependencies, enabling it to run consistently across different computing environments. Many individuals performing analyses on cancer data may not have formal training in software development and may be unfamiliar with the idea of containers. Unique Features of This Course - Hands-on exercises exploring real uses of containers for scientific research and software - Activities to demonstrate the common pitfalls using containers - Information about how to use two of the most common tools for containers: Docker and Podman Key Words Reproducibility, Containers, Podman, Docker, Scientific Software Development, Biomedical Research Intended Audience/Required Knowledge - The course is intended for researchers and research staff who might be interested in learning about using containers to make their research or scientific software more reproducible. - Some familiarity with biomedical or health-related research, as well as some familiarity with programming (including bash and command line) is required. Learning Objectives - Understand that computing environments are moving targets - Use containers to share a controlled computing environment - Pull and use a Docker image from online - Modify a Docker image - Build a Docker image from scratch - Troubleshoot the most common Docker related errors Accessibility We are committed to making our content accessible and available to all. We welcome any feedback you might have at https://forms.gle/SzuZjct4ZQyt3Cos7. Questions related to accessibility accommodations should be directed to https://studentserviceportal.force.com/s/.