Reproducible Analysis Package
Upon Completing This Topic
You will be able to link environment locks, seeds, input hashes, schemas, source accessions, and execution logs into a single manifest. You will distinguish between "having code" and "being able to re-verify the same analysis."
Analysis Is Not Just One Piece of Code
Reproducible analysis requires not only code but also input data, versions, transformation rules, execution environments, outputs, and provenance. Apply the environment and dependency management principles from Python packaging documentation to your project, but do not write as if a single lock file resolves data rights and research design.
Manifest Structure
analysis_id
topic_id
input_sha256
schema_version
requirements_lock
random_seed
source_accession
transformations
output_path
verification_statusA seed is information for recreating random number examples and is not sole evidence guaranteeing identity across raw inputs, libraries, hardware, and code. Raw inputs are not overwritten; transformation outputs and hashes are preserved separately.
Recommended Package Structure
analysis-package/
βββ README.md
βββ manifest.tsv
βββ requirements-lock.txt
βββ data/
β βββ provenance/
β βββ normalized/
βββ src/
βββ tests/
βββ outputs/The README should list execution order and input requirements, while the manifest records file-by-file hashes and statuses. src holds transformation and analysis code, and tests houses core APIs and result contracts. If outputs were manually edited, separate records are required to distinguish them from code execution results.
Difference Between Reproducibility and Verification
If the same code produces the same results, computational reproducibility can be confirmed. However, this does not verify the measurement validity of inputs, the appropriateness of research design, or the biological interpretation of results. A reproducible package provides an auditable path but does not replace scientific judgment.
When freezing a package, record the hash of the manifest itself. If files change later, create a new version and do not quietly overwrite the previous approved version.
Rights and Citation
Record accessions and official citations when using repositories like GEO or ENCODE. Separate open access from redistribution permissions; for originals with unclear rights, do not include files in the content but guide users to official access paths only.
Returning to Research Questions for Interpretation
A manifest is not magic that makes results more scientific; it is a handoff structure that makes it possible to review which inputs and assumptions the results depend on. Even if execution is reproducible, measurement validity and causality are not automatically proven.
Key Takeaways
- Record environment, inputs, transformations, outputs, and sources together.
- Reproducibility is not complete with a seed alone.
- Distinguish between accession, citation, license, and redistribution.
Next Topic
In the final installment, we convey results, limitations, ethics, and accessibility to the reader.
References
- Python Packaging User Guide: https://packaging.python.org/en/latest/
- NCBI GEO: https://www.ncbi.nlm.nih.gov/geo/info/
- ENCODE citing guidance: https://www.encodeproject.org/help/citing-encode/
The manifest and examples in this installment were written independently by BioStatPy.