Wissenschaft

#Reproduzierbarkeit – Wissenschaftliche Arbeit als Software-Projekt – Alles was lebt

Reproduzierbarkeit – Wissenschaftliche Arbeit als Software-Projekt – Alles was lebt

Reproduzierbarkeit ist wohl eines der wichtigsten Prinzipien der Wissenschaft. Wir müssen uns darauf verlassen können, dass ein Experiment -die richtigen experimentellen Bedingung und die Abwesenheit von störenden Einflüssen vorausgesetzt- von verschiedenen Personen wiederholbar ist.
Jedem der schonmal in einem Labor ein Experiment durchgeführt hat dürfte klar sein, dass dies in den meisten Fällen nicht so einfach ist. Störende Einflüsse können sehr schwer zu finden und zu beseitigen sein, ganz zu schweigen von der Schwierigkeit aus dem sehr kurzen Methoden-Teil einer Publikationen ein Protokoll abzuleiten. 

Wer darüber etwas nachdenkt kommt schnell zu dem Schluss, dass das Problem nicht vollständig lösbar ist: Selbst im längsten Methoden-Teil wären nicht alle Faktoren auflistbar, die zum Zeitpunkt der Durchführung eines Experiments dessen Ausgang beeinflusst haben könnten. Das Streben nach Reproduzierbarkeit muss also in vielen Bereichen der Wissenschaft eine Bemühung bleiben. Eine die bei guter Wissenschaft möglichtst ernst genommen wird!


Was ist aber nach der Produktion und Digitalisierung von Daten? Sind Computer nicht deterministische Maschinen, in denen Vorgänge -wie die Analyse eben dieser Daten- beliebig reproduzierbar sein müssten? Egal wie die Antwort dieser Frage1 ausfällt, dass theoretisch mehr Reproduzierbarkeit am Rechner erreichbar ist als im Bakterium, der Hefe oder dem Teilchenbeschleuniger dürfte einleuchten.

Außerdem nennen wohl selbst militante Tierversuchsgegner und sonstige Spinner zumindest einen Rechner ihr eigen (besonders wenn sie dies hier lesen). Oder positiver: Da Laien im Allgemeinen keinen Zugang zu komplizierten Laboren haben kann man sie zumindest in die Lage versetzen den Datenanalyse-Teil der Wissenschaft nachzuvollziehen. 

Ein erster Ansatz zur Reproduzierbarkeit von statistischen Analysen bildet beispielsweise die Verwendung eines Kommandozeilen-basierten Systems. Analysen können dann in einem Skript automatisiert werden. Das ist sicher ein großer Fortschritt auf dem Weg zur Reproduzierbarkeit, denn das Skript produziert aus den Rohdaten Tabellen und Grafiken auf eine wiederholbare Weise. Doch selbst dies gewährleistet keine vollständige Reproduzierbarkeit: Nicht das Skript wird veröffentlicht, sondern eine -im Besten Fall sehr direkt- daraus abgeleitete “literarische” Arbeit, Ausgaben müssen kopiert, Grafiken eingefügt werden.
Selbst wenn eine oder mehrere Skripte der Veröffentlichung beigefügt sind, bleiben Probleme: In welcher Reihenfolge sind sie auszuführen, aus welchen Analysen wurden welche Werte extrahiert und wie bekomme ich das Ganze auf meinem System zum laufen? 

Im wissenschaftlichen Alltag sieht es zudem häufig so aus, dass per Kopieren und Einfügen Zahlen in ein Paper wandern, Grafiken werden häufig über den Umweg eins Grafik-Manipulations-Programm (das hört sich schonmal schön unwissenschaftlich an) in das Paper gebracht und Einzelergebnisse häufig auch von verschiedenen Personen und verschiedenen Betriebs-Systemen beigesteuert.
An allen Schnittstellen zwischen Mensch und Maschine entstehen so Möglichkeiten für Fehler: Der falsche Wert wurde kopiert, die Achse nicht korrekt beschriftet oder gar die falsche Datei eingelesen. Ein Problem, selbst für den einzelnen, der sich nur selbst kontrollieren also wiederholen -nur replizieren nicht reproduzieren- möchte.

Einen Ansatz zur Lösung dieses Problems kommt durch Softwareentwickler, die vor einem verwandten Problem stehen. Um ihren Code weiterzuentwickeln und nutzbar zu machen müssen ihn nicht nur Assembler und Compiler (das sind die “magischen” Dinge, die Programmiersprachen in etwas übersetzen, was der Computer versteht) sondern auch Menschen lesen können. Daher Donald Knuths Idee, des “literate Programming”: Kurz gesagt sollen Kommentare, die dem Menschen erklären, was der Programmcode macht in einer Layout-Sprache wie LaTeX in das Programm integriert werden. Das Ergebnis sind so genannte Noweb-“Mischdokumente” von Layout und Programm-Code.
Integration in R

Friedrich Leisch hat dieses System nun in in einem R-Paket namens Sweave umgesetzt. Es ermöglicht die einfache Integration von R und LaTeX-Code.
Bilder, Tabellen (mit Hilfe des genialen R-Pakets xtable) und sogar einzelne Zahlen direkt im Text, können so in jedem Kompilierzyklus neu aus den Rohdaten berechnet werden.
Die Mischdokumente von R und LaTeX-Code -R Noweb oder kurz .Rnw- werden von der Kommandozeile

R CMD Sweave deineDatei.Rnw

in ein .tex Dokument verwandelt.

Dieses System findet in der Dokumentation von R breite Anwendung. Sie so genannten “Vignetten”, die beispielsweise im Bioconductor-Projekt für jedes Paket verfügbar sind, sind mit dem System geschrieben. Doch nicht nur über R lässt sich damit schreiben, auch Dokumente, die den Code nur ausführen, nicht zeigen sind möglich.

Reproduzierbarkeit ist wohl eines der wichtigsten Prinzipien der Wissenschaft. Wir müssen uns darauf verlassen können, dass ein Experiment -die richtigen experimentellen Bedingung und die Abwesenheit von störenden Einflüssen vorausgesetzt- von…

Wenn Sie an Foren interessiert sind, können Sie Forum.BuradaBiliyorum.Com besuchen.

Wenn Sie weitere Nachrichten lesen möchten, können Sie unsere Wissenschaft kategorie besuchen.

Quelle

Ähnliche Artikel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Schaltfläche "Zurück zum Anfang"
Schließen

Please allow ads on our site

Please consider supporting us by disabling your ad blocker!