scieee AI-readable full text Open interactive document viewer

Long lasting, bit-reproducible research with GNU Guix

Thijs Paelman

Abstract

Even under the best of circumstances*, reproducing research from a few years ago is hard. To confirm the results of a scientific experiment, one could start from the same data and processing scripts, which should in theory lead to the same result, since most variables (e.g. measurement points) become fixed. Still, it remains almost impossible to reliably reproduce the results bit by bit due to uncontrolled variables (e.g. random numbers). Even without random numbers, there is one variable uncontrolled and overlooked most of the times: the computational environment. Unless meticulously recording every single library used in producing the result, chances for bit-reproducible research are dropping fast. While results don't always have to be bit-reproducible to review if the conclusion is still valid, the question remains: can a discussion about the differences in results even be fruitful if it's unclear if the variability is caused by the computational environment or another uncontrolled variable? There are a few approaches to reproduce the computational environment for experiments. The package manager GNU Guix is presented because of it's unique approach to recording the complete software stack, with an explicit focus on long term reproducibility. Additionally, it allows for effortless experimenting with differences in the computational environment. The effect on the final result of swapping out or patching libraries deep inside the stack is easily investigated. The authors dissertation written for his educational master's degree is used as an example of a bit-reproducible deliverable. *When the data, the processing scripts and the report are all available: Open Data, Open Source software and Open Access

Full text

Is your research reproducible?Intended audience: any researcher using a computer to obtain results.•How old are your tools? When is the last time you updated?•Afraid to update?•Are you confident to execute your research on a different computer?•What if you only got 30 minutes to save everything?•How much effort is needed to switch?•Can you reproduce your own research from 5 years ago?•Did you try to build on other scientists work? How did that go?•Did you ever try to reproduce someone elses research? How long did that take? How recentwas that research?•Is a description with software version labels enough? (Spoiler: no) [1]Reproducibility is the ability of independent investigators to draw the same conclusionsfrom an experiment by following the documentation shared by the original investigators.— O. E. Gundersen [2]Do you get a flash of recognition(and PTSD) from this image? XKCD 1987 licensed under CC BY-NC 2.5. Not executableNon reproducibleReproducibleOtherExecutionenvironment4457679257498181Most Jupyter Notebooks are not reproducible, manydue to differences in the execution environment. [3]More than 70% of researchers have tried and failed to reproduce anotherscientist’s experiments, and more than half have failed to reproduce their ownexperiments.— M. Baker [4]Replicability is a poor substitute for reproducibility […] reproducibility requireschanges; replicability avoids them.— C. Drummond [5]The goal for reproducibility is to dispel doubts by controlling the sources ofvariation. The computational environment is one such source.Long lasting, bit-reproducible researchwith GNU Guix$ guix time-machine -C channels.scm -- shell -m manifest.scm --container -- python run.py data/* guix-aad612c(controlled by channels.scm)•python•python-numpy•python-scipy•…manifest.scmpythoncontainerrun.pydataResults 40%GNU GuixBit-reproducibleGNU Guix With GNU Guix, the computationalenvironment becomes a controlledvariable.Poster based on my bit-reproducibledissertation [6, Annex B].Bibliography[1]N. Vallet, D. Michonneau, and S. Tournier, “Toward Practical TransparentVerifiable and Long-Term Reproducible Research Using Guix,” Sci Data,vol. 9, no. 1, p. 597, Oct. 2022, doi: 10.1038/s41597-022-01720-9.[2]O. E. Gundersen, “The Fundamental Principles of Reproducibility,” Phil.Trans. R. Soc. A., vol. 379, no. 2197, p. 20200210, May 2021, doi: 10.1098/rsta.2020.0210.[3]J. Wang, T.-y. Kuo, L. Li, and A. Zeller, “Assessing and RestoringReproducibility of Jupyter Notebooks,” in Proceedings of the 35thIEEE/ACM International Conference on Automated Software Engineering,Virtual Event Australia: ACM, Dec. 2020, pp. 138–149. doi:10.1145/3324884.3416585.[4]M. Baker, “1,500 Scientists Lift the Lid on Reproducibility,” Nature, vol.533, no. 7604, pp. 452–454, May 2016, doi: 10.1038/533452a.[5]C. Drummond, “Replicability Is Not Reproducibility: Nor Is It GoodScience,” presented at the Proceedings of the Evaluation Methods forMachine Learning Workshop at the 26th ICML, Montreal, Canada,2009,in Evaluation Methods for Machine Learning Workshop, the 26th ICML,June 14-18, 2009, Montreal, Canada. Collection / Collection : NRCPublications Archive / Archives des publications du CNRC, 2009.[6]T. Paelman, “Automatisch afleiden. Een nieuwe manier van afleiden metveel potentieel?,” 2025. [Online]. Available: https://codeberg.org/th1j5/masterpraktijkproef-eduma.gitContactThijs Paelman ([email protected]e)https://codeberg.org/th1j5/ugent-FEARS-2025 (CC BY-NC-SA 4.0)