Question 1 of 6 Fundamentals Practical
How would you make a scientific Python analysis reproducible?
Short answer
Preserve the data version, code commit, dependency environment, parameters and stochastic state. Then rerun the full analysis from a clean environment and compare defined outputs.
Why
Start with a versioned repository and a documented entry point rather than an interactive history. Record exact input dataset identifiers or hashes, package and interpreter versions, command-line parameters, seed policy and reference resources. Wrap preprocessing and analysis in a workflow that has explicit dependencies and separates generated outputs from immutable raw data.
For stochastic methods, record the random generator and seed, while noting that hardware or parallel execution may still affect bit-for-bit results. Use a clean environment or container to rerun the pipeline and compare scientific invariants as well as file checksums when exact equality is appropriate. Document known nondeterminism and data-access restrictions.
A successful rerun from cached plots alone does not demonstrate that upstream processing is reproducible.
Common mistakes
- Calling a notebook reproducible because it has a fixed random seed but relies on unseen local files
The interviewer might ask next
What would you need to reproduce the results one year after the dataset changes?