paper/Docker-Makefile
Michael Hanke bdac0e1c1d Add docker container recipe and makefile for reproducing the analysis
Recently the original virtualenv-baseed approach started to fall apart,
because mutual incompatibilities between the dependencies (some pinned
at old versions) increased.

This changeset provides a container recipe to generate a modern (or
most modern, given todays possibilities) environment to still
reproduce the analysis.

The container image can be built with

```
docker build -t remodnav:latest container
```

And the manuscript can be generated with

```
docker run -v $PWD:/tmp -w /tmp --rm --interactive --tty \
  -u $(id -u):$(id -g) -e HOME=/tmp \
  remodnav:latest \
   make -f Docker-Makefile main.pdf
```

This does not reproduce everything exactly. There is a small (I'd say
insignificant) change in one panel of a Fig 4. The full backstory
and analysis of the cause is in
https://github.com/psychoinformatics-de/paper-remodnav/issues/20.
However, besides that **all** reported statistical scores and
performance measures reported in the paper remain identical.

Not that execution inside the container requires all inputs to be
provisioned before. Here is the specification

- remodnav/remodnav/tests/data/anderson_etal
- remodnav/remodnav/tests/data/studyforrest
- data/studyforrest-data-eyemovementlabels/*/*.tsv
- data/raw_eyegaze/sub-*/ses-movie/func/*_recording-eyegaze_physio.tsv.gz
- data/raw_eyegaze/sub-*/beh/*_recording-eyegaze_physio.tsv.gz

This will again be automated in a future changeset, based on a
container-run provenance record.
2023-10-11 17:16:01 +02:00

23 lines
567 B
Text

# use `chronic` to make output look neater, if available
CHRONIC=$(shell which chronic || echo '' )
PYTHON=python3
all: main.pdf
main.pdf: main.tex results_def.tex references.bib
$(MAKE) main.pdf
# the stats-script outputs all scores and figures
results_def.tex: code/mk_figuresnstats.py
@echo "# Ensure REMODNAV installation"
@$(CHRONIC) $(PYTHON) -m pip install --break-system-packages -e remodnav
@rm -f $@
@REMODNAV_RESULTS=$@ $(PYTHON) code/mk_figuresnstats.py -s -f -r -m
clean:
$(MAKE) clean
rm -rf .cache .config .local .texlive*
.PHONY: clean