Episode

Automatische Archivierung reproduzierbarer Studien mit Docker

durch Daniel Nüst

useR!2017: Automatische Archivierung reproduzierbarer Stu...

Schlüsselwörter: Docker, reproduzierbare Forschung, Open Science
Webseite: https://github.com/o2r-project/containerit/
Die Reproduzierbarkeit von Berechnungen ist in einem Zeitalter von entscheidender Bedeutung, in dem Daten digital geboren und algorithmisch analysiert werden. Die meisten Studien veröffentlichen jedoch nur die Ergebnisse, oft mit Zahlen als wichtige interpretierte Ausgaben. Aber woher stammen diese Zahlen? Wissenschaftliche Artikel müssen nicht nur eine Beschreibung der Arbeit liefern, sondern von Daten und Software begleitet werden. R bietet hervorragende Werkzeuge zum Erstellen reproduzierbarer Arbeiten, d. h. Sweave und RMarkdown. Es wurden mehrere Ansätze für die Erfassung der Arbeitsbereichsumgebung in R vorgenommen, wobei die absichtliche Wahl von CRAN umgeht, keine explizite Versionsverwaltung von Paketen und deren Abhängigkeiten bereitzustellen. Sie bewahren eine Sammlung von Paketen lokal (packrat, pkgsnap, switchr/GRANBase) oder remote (MRAN Timemachine/Checkpoint) oder installieren bestimmte Versionen von CRAN oder Quelle (requireGitHub, devtools). Installationsprogramme für alte Versionen von R werden auf CRAN archiviert. Ein Benutzer kann eine bestimmte Umgebung manuell neu erstellen, dies ist jedoch eine umständliche Aufgabe.
Wir stellen eine neue Möglichkeit vor, eine Laufzeitumgebung einschließlich sowohl Pakete als auch R zu erhalten, indem wir eine Abstraktionsebene in Form eines Containers hinzufügen, die ein Skript ausführen oder eine interaktive Sitzung ausführen kann. Das Paket containeRit erstellt automatisch solche Container basierend auf Docker. Docker ist eine Lösung zum Packen einer Anwendung und ihrer Abhängigkeiten, zeigt sich jedoch im Kontext der reproduzierbaren Forschung (Boettiger 2015). Das Paket erstellt ein Containermanifest, die Dockerfile-Datei, die in der Regel von Hand geschrieben wird, aus sessionInfo(), R-Skripts oder RMarkdown-Dokumenten. Die Dockerfiles verwenden die Rocker-Communityimages als Basisimages. Docker kann ein ausführbares Image aus einer Dockerfile erstellen. Das Image ist an einer beliebigen Stelle ausführbar, an der eine Docker-Laufzeit vorhanden ist. containeRit verwendet Hafen zum Erstellen von Images und ausgeführten Containern sowie Sysreqs zum Installieren von Systemabhängigkeiten von R-Paketen. Vor der geplanten CRAN-Veröffentlichung möchten wir unsere Arbeit teilen, offene Herausforderungen wie das Behandeln verknüpfter Bibliotheken diskutieren (siehe Diskussion über Geospatialbibliotheken in Rocker) und willkommenes Communityfeedback.
containeRit wird im DFG-geförderten Projekt Opening Reproducible Research entwickelt, um die Erstellung der Ausführbaren Forschungskompendia (ERC) (Nüst et al. 2017) zu unterstützen.
References Boettiger, Carl. 2015. "Eine Einführung in Docker für reproduzierbare Forschung mit Beispielen aus der R-Umgebung." ACM SIGOPS Operating Systems Review 49 (Januar): 71–79. doi:10.1145/2723872.2723882.

Nüst, Daniel, Markus Konkol, Edzer Pebesma, Christian Kray, Marc Schutzeichel, Tobias Przibytzin und Jörg Lorenz. 2017. "Öffnen des Publikationsprozesses mit ausführbaren Forschungskompendia." D-Lib Magazin 23 (Januar). doi:10.1045/january2017-nuest.