On computational reproducibility -- surely requirements.txt is enough? Right?
Image credit: Paul .T (@hooverpaul55) I got an interesting question by email today. How is using Docker containers any better than strict descriptiuons of all packages with requirements.txt (Python) or Renv (R)? There are some benefits to using containers: Your workflow has a combination of multiple languages. Maybe you have bash scripts for running genome alignments, followed by stats in R and ML in Python. A container will keep track of all of it. External binaries like Samtools and BWA can be included in the container. Requirements.txt doesn't enforce a Python version. Some packages only work with certain versions of Python or R and so you'll have a bad time if you're trying to reproduce an old study and you don't know what version of Python or R was used. Installing an older Python version may not work. Code from 10 years ago is very difficult to get working properly unless it was designed with longevity in mind [1]. Packages are in a non-official location that do...