November 19, 2021 at 11:00 UTC - Elements of Style in Reproducible Workflow Creation and Maintenance: A Hands-on Tutorial by Anne Deslattes Mays and Christina Chatzipantsiou - Hosted by ISCB
In this short 3 hour course, we will introduce the learner to certain elements of style in the construction and containerization of small single-function processes that facilitate reproducible workflow creation and execution. We will show how these processes may be kept up-to-date and alert the creator to the functional state of these processes (working or failing) by using a feature found within GitHub called GitHub Actions. This hands-on-course will use a small example to provide the structure, philosophy and approach to achieving this desirable outcome. This course seeks to demystify and make accessible powerful methods one can use to achieve platform independence and platform interoperability. Using a simple RNASeq pre-baked analysis example to demonstrate these techniques, we will break down and walk the learner through each of the construction steps. The learners will be introduced to Conda, Docker, GitHub and the standard workflow language, Nextflow. If time permits, we will also show how these containerized processes can also be represented in a second standard workflow language implementation (e.g. Common Workflow Language or WDL). By the end of the course, the learner will understand these Elements of Style and will know how Conda, Docker, GitHub, Zenodo, and Nextflow enable reproducible research. Moreover, these steps will be on GitHub for the Learner to return to and reproduce themselves after the end of the course. In taking this course, the Learner will also be shown the power of JupyterLab notebooks to facilitate literate programming. Through their participation in the class, learners will learn and understand FAIR (findability, accessibility, interoperability and reusability) best practices. We ask all participants to get a GitHub, Zenodo and ORCID accounts prior to the course. We ask for minimal background knowledge of the command line, simple commands in the shell environment, we enable a bit of self-learning from the repository to facilitate the acquisition of this knowledge.