Question: Are there reproducibility tools that can help me run code on different machines?

Answer


Yes, there are four main types of reproducibility tools you can use:

  1. Containers: lightweight virtual operating system that can be shared
    1. Example: Docker, Singularity
    2. Advantages: Meant to be created/destroyed/recreated quickly, isolates dependencies so only the packages you use should be in the container
    3. Challenges: High learning curve, can only access whatever other programs, libraries, and data you have placed inside the container, manually created and subject to human error
  2. Web-based integrated development environment: development environment used in-browser
    1. Example: JupyterHub, WholeTale
    2. Advantages: work like normal in a development environment (RStudio, Jupyter, Spyder) and get the reproducibility features done in the background for you
    3. Challenges: All work is conducted within the browser environment, and you must be connected to the Internet to use
  3. Web-based replay system: provides a sandbox environment to run code hosted elsewhere (e.g. GitHub, Zenodo)
    1. Example: myBinder
    2. Advantages: only needs a link to someone’s code to be able to try to run it, low barrier to entry, publicly available
    3. Challenges: relies on a person to generate a file declaring dependencies, otherwise it does a best guess as to what the code needs
  4. Packagers: creates a self-contained package that has all the binaries, files, and dependencies required to reproduce research on the author’s computational environment. A reviewer can then unpack the research using the same packager in their own environment to reproduce the results, even if the environment has a different operating system from the original one
    1. Example: ReproZip, renv
    2. Advantages: high fidelity reproducibility, preservation-ready bundles, totally self-contained and shareable bundles
    3. Challenges: high learning curve

Answered By: Data Services
Last Updated: Mar 03, 2025Views:

Related Topics

Contact Us

JavaScript disabled or chat unavailable.

Visit a reference desk

Make an appointment       

Email Ask a Librarian        

Text (NY): +1 646-265-1342     

Call

New York: +1 212-998-2500

Abu Dhabi: +971 02-628-5544

Shanghai: +86 (21) 2059-5614