Orderly Tutorial

Rich FitzJohn

What is orderly?

  • A reproducible reporting framework
  • A way of keeping track of versions of data
  • A way of collaborating with other people
  • A way of thinking about analysis

Original aims:

“With orderly we have two main hopes:

  • analysts can write code that will straightforwardly run on someone else’s machine (or a remote machine)
  • when an analysis that is run several times starts behaving differently it will be easy to see when the outputs started changing, and what inputs started changing at the same time”

(~ 2018)

But what is it?

  • A package designed to make analysis more reproducible
  • A way of structuring your analysis so to make it easy to understand, run and reuse
  • A set of tools that make it easy to:
    • track all inputs into an analysis (packages, code, and data resources)
    • store multiple versions of an analysis where it is repeated
    • track outputs of an analysis
    • create analyses that depend on the outputs of previous analyses

Who uses it?

  • Developed since May 2017 for the Vaccine Impact Modelling Consortium
  • Used in the 2018-2020 DRC Ebola responses
  • Used in the COVID-19 response, especially within the “real time modelling” group
  • Used within research groups (HIV, Malaria, possibly others?)

Historical notes

  • orderly (version 1)
  • orderly2 (soon to be orderly 2.0.0)
    • A complete rewrite taking the best ideas from version 1 and dropping many less useful bits
    • Easier to program against
    • No more YAML
    • Focusses on distributed collaborative analysis
    • Also available as a python package!

Getting started

Install orderly2

From the mrc-ide r-universe (recommended)

install.packages(
  "orderly2",
  repos = c("https://mrc-ide.r-universe.dev",
            "https://cloud.r-project.org"))

From GitHub using remotes:

remotes::install_github("mrc-ide/orderly2")

From PyPi (for Python)

pip install pyorderly