Reproducible research
a.k.a Literate programming.
- bookdown.
- CWEB.
- Jupyter.
- knitr.
- noweb and its Tufts site.
- Pweave and ptangle.
- Sweave and Stangle.
An attempt to model reproducibility is Conceptualizing Reproducibility Using Simulations and Theory (CRUST).
bookmarks for PDF
To install for Ubuntu,
sudo snap install pdftk # version 2.02-4, or
sudo apt install pdftk-java # version 3.2.2-1
and for Fedora, sudo dnf install pdftk-java
.
pdftk src.pdf dump_data output bookmarks.txt
pdftk target.pdf update_info bookmarks.txt output target-bm.pdf
quarto
This is extensively documented under Linux, https://cambridge-ceu.github.io/csd3/applications/quarto.html.
Under Windows, however it is simpler which involves these steps
-
Install R, e.g., R-4.3.1
Optionally, one installs RStudio or Visual Studio Code (Extension Quarto available, ctrl-+/- to enlarge/shrink fonts).
-
Install python from https://www.python.org/downloads/
rem Program files\quarto\bin\tools deno upgrade py -m pip install tinytex py -m pip install jupyter py -m pip install numpy py -m pip install matplotlib
-
Install quarto, e.g., quato-1.3.450, from https://quarto.org
Now we intend to render matplotlib.qmd
adapted from https://quarto.org, rendered by quarto render matplotlib.qmd
.
---
title: "matplotlib demo"
format:
html:
code-fold: true
jupyter: python3
---
For a demonstration of a line plot on a polar axis, see @fig-polar.
```{python}
#| label: fig-polar
#| fig-cap: "A line plot on a polar axis"
import numpy as np
import matplotlib.pyplot as plt
r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r
fig, ax = plt.subplots(
subplot_kw = {'projection': 'polar'}
)
ax.plot(theta, r)
ax.set_rticks([0.5, 1, 1.5, 2])
ax.grid(True)
plt.show()
```
Reference
Devezer B, Nardin LG, Baumgaertner B, Buzbas EO. Scientific discovery in a model-centric framework: Reproducibility, innovation, and epistemic diversity. PLoS One. 2019 May 15;14(5):e0216125. doi: 10.1371/journal.pone.0216125. eCollection 2019.