Useful resources¶
Education and commentary articles¶
-
A Beginner's Guide to Conducting Reproducible Research describes key requirements for producing reproducible research outputs.
-
Why code rusts collects together some of reasons the behaviour of code changes over time.
-
Point of View: How open science helps researchers succeed presents evidence that open research practices bring significant benefits to researchers.
-
The Journal of Statistics and Data Science Education published a special issue: Teaching Reproducibility in November 2022. Also see the presentations from an invited paper session:
-
Collaborative writing workflows: building blocks towards reproducibility
-
Opinionated practices for teaching reproducibility: motivation, guided instruction, and practice
-
From teaching to practice: Insights from the Toronto Reproducibility Conferences
-
Teaching reproducibility and responsible workflow: an editor's perspective
-
How to structure your project?¶
-
A Quick Guide to Organizing Computational Biology Projects suggests an approach for structuring a computational research repository.
-
The TIER Protocol 4.0 provides a template for organising the contents and reproduction documentation for projects that involve working with statistical data:
Documentation that meets the specifications of the TIER Protocol contains all the data, scripts, and supporting information necessary to enable you, your instructor, or an interested third party to reproduce all the computations necessary to generate the results you present in the report you write about your project.
-
A simple kit to use computational notebooks for more openness, reproducibility, and productivity in research provides some good recommendations for organising a project repository and setting up a reproducible workflow using computational notebooks.
Using Git and other software tools¶
-
NDP Software have created an interactive Git cheat-sheet that shows how git commands interact with the local and upstream repositories, and provides brief documentation for many common examples.
-
The Pro Git book is available online. It starts with an overview of Git basics and then covers every aspect of Git in great detail.
-
The Software Carpentry Foundation publishes many lessons, including Version Control with Git.
-
A Quick Introduction to Version Control with Git and GitHub provides a short guide to using Git and GitHub. It presents an example of analysing publicly available ChIP-seq data with Python. The repository for the article is also publicly available.
Examples of making models publicly available¶
-
CoMo Consortium App: the COVID-19 International Modelling Consortium (CoMo) has developed a Shiny web application for an age-structured, compartmental SEIRS model.
-
Mastering Shiny: an online book that teaches how to create web applications with R and Shiny.
Performing peer code review¶
Continuous Integration (CI) examples¶
-
GitHub Actions for Python: the GitHub Actions documentation includes examples of building and testing Python projects.
-
Building reproducible analytical pipelines with R: this article shows how to use GitHub Actions to run R code when you push new commits to a GitHub repository.
-
GitHub Actions for the R language: this repository provides a variety of GitHub actions for R projects, such as installing specific versions of R and R packages.
-
See the GitHub actions for Git is my lab book. The build action does the following:
-
Check out the repository with
actions/checkout
; -
Install Python with
actions/setup-python
; -
Install Material for MkDocs and other required tools, as listed in
requirements.txt
; and -
Build the HTML version of this book with
mkdocs
.
-
High-performance computing platforms¶
How to acknowledge and cite research software¶
-
The ARDC Guide to making software citable explains how to cite your code and assign it a DOI.
-
Recognizing the value of software: a software citation guide provides further examples and guidance for ensuring your work receives proper attribution and credit.
Software licensing¶
-
Choose an open source license provides advice for selecting an appropriate license that meets your needs.
-
A Quick Guide to Software Licensing for the Scientist-Programmer explains the various types of available licenses and provides advice for selecting a suitable license.