Full text
L10: FROGS: Facilitating Reproducible Open (Geo)Science Instructor Course chair: Deborah Khider, USC Information Sciences Institute ([email protected]) Course Instructor: Nick McKay, Northern Arizona University ([email protected]) Abstract Sharing research data, software, and workflow is fundamental to building a Findable, Accessible, Interoperable, and Reusable (FAIR) open science ecosystem. Indeed, over the past decade, funders and publishers have introduced open science policies emphasizing reproducibility, recognizing increased frameworks that support the sharing of reproducible science products. In this course, we will cover principles of open science in a manner that promotes reproducibility: 1. Basic principles in documenting, sharing, and citing all research products, including data, software, and computational provenance (i.e., describing the workflow used in a study, which links together data and software with their associated parameter values for reproducibility) in accordance to FAIR principles; 2. GitHub for code development (including continuous integration) and collaboration. We will also cover linking GitHub repository with Zenodo to obtain permanent identifiers for citation; 3. Containerization with tools including Docker containers and myBinder. The course will cover automation of these processes using GitHub actions; 4. Publishing software in a software registry. The course will use an online platform (LeapFROGS) with a kernel in Python and R. The platform contains links to relevant resources and self-paced exercises to test understanding of the concepts. All materials on the LeapFROGS platform are openly available. Audience: Researchers, Librarians and administrators, Publishers Level: Beginner
Requirements: ● Internet access to use the LeapFROGS platform. ○ Python: https://linked.earth/LeapFROGS ○ R: https://linked.earth/RLeapFROGS ○ Note: no knowledge of these programming languages is necessary. The platform provides teaching materials on the subject. ● A GitHub account (no knowledge of GitHub necessary beyond creating an account) ● GitHub Desktop installed and linked to the user’s GitHub account [Optional] Course Learning Objectives At the end of the course, participants will be able to: ● Understand the basics requirements to share artifacts of scientific research according to FAIR principles ● Use GitHub to share scientific workflows ● Use GitHub for transparent project management ● Build Docker containers to share software and workflows using GitHub actions ● Use myBinder to share scientific workflows ● Understand principles of scientific software packaging and distribution Course Topics This course will be presented over three days for 90min each day and will cover these topics: ● Sharing artifacts of research: Data, Software, and Workflow ● GitHub for scientific research and publishing ● Creating containers for reproducible research ● Basics of Software Packaging Course Schedule LIVE ZOOM SESSION SCHEDULE (All times Pacific UTC-7)) 4:00pm – 5:30pm 90 minutes
Day 1-3 Presentation details Day 1: The first day will cover fundamental principles in scientific publishing. Scientific publishing refers to making all artifacts of research publicly accessible (not only the paper but also the data, software and workflow) to ensure that all artifacts of science are Findable, Reproducible, Interoperable, and Reusable (FAIR). The following module will provide an author checklist on publishing guidelines and test your understanding of the concepts. 4:00 - 4:10pm : Introduction to FROGS and LeapFROGS 4:10 - 4:30pm: Reproducible Research: What is it, why is it important, and how do we do it? 4:30 - 4:50pm: Concepts in data and software publishing 4:50 - 5:00pm: Break 5:00 - 5:15pm: Publishing Reproducible Workflows 5:15 - 6:25pm: Citing data and software in publications 6:15 - 6:30pm: Wrap-up and links to additional resources Presentation details Day 2 The second day will concentrate on the basics GitHub for software and project management and the use of Docker, Binder, and myBinder for the sharing of reproducible workflows. 4:00 - 4:20pm : What is Git? What is GitHub? 4:20 - 4:50pm: Synchronous Exercise: creating a repository, branches, pull request, GitHub for project management, obtaining a DOI for your project 4:50 - 5:00pm: Break 5:00 - 5:15pm: What are containers? Introduction to Docker and myBinder 5:15 - 5:30pm: Synchronous Exercise: Creating a Docker container from your GitHub repository using GitHub actions and releasing notebooks on myBinder Note: No coding experience needed. All code will be provided to students to be able to work on GitHub. Presentation details Day 3 The third day will focus on principles of software packaging. 4:00 - 4:25 pm : Basics of Packaging
4:25 - 4:50pm: Writing a good documentation and testing 4:50 - 5:00pm: Break 5:00 - 5:25pm: Continuous integration and publishing 5:25 - 6:30pm: Wrap-up Course Materials and Supplies Required You will need a GitHub account and GitHub Desktop downloaded and installed locally. This last step is optional if students want to use the web interface instead. Other Resources ● LeapFROGS: ○ Python: https://linked.earth/LeapFROGS ○ R: https://linked.earth/RLeapFROGS