Reproduzierbare Berechnungsforschung zielt darauf ab, den Code, der zur Generierung der Ergebnisse in einem Computerpapier erforderlich ist, anderen Forschern zur Verfügung zu stellen, damit sie diesen Code ausführen können, um die Ergebnisse in diesem Papier zu reproduzieren. Ich möchte alle meine Recherchen reproduzierbar machen, stoße aber auf einen Haken: Ein paar Papiere, an denen ich arbeite, verwenden ein internes Paket zur automatischen Differenzierung ( DAEPACK ) in einer proprietären Bibliothek ( CHEMKIN- II ; Lizenzbedingungen unklar).
Es wäre zu zeitaufwändig, diese Softwarekomponenten durch Open-Source-Versionen zu ersetzen. Es gibt einen Open-Source-Ersatz für CHEMKIN-II namens Cantera , aber Cantera ist in C ++, während CHEMKIN-II in Fortran 77 enthalten ist. Es wäre sehr aufwändig, den Cantera-Code so zu ändern, dass er automatisch verarbeitet werden kann Differenzierungswerkzeuge für C ++.
Was ist angesichts der Tatsache, dass ich diese proprietären Pakete benötige, der beste Weg, um meine Forschung so reproduzierbar wie möglich zu gestalten, vorausgesetzt, die Forscher haben möglicherweise keinen Zugang zu CHEMKIN-II? Da DAEPACK ein Source-to-Source-Übersetzer ist, muss ich DAEPACK nicht unbedingt vertreiben. Möglicherweise kann ich die Ausgabe einbeziehen, dh Fortran-Quelldateien, die Ableitungen berechnen.
Wenn Sie in Ihrer Arbeit proprietäre Software benötigen und diese proprietäre Software nicht allgemein verfügbar ist (z. B. nicht MATLAB, Mathematica usw.), wie können Sie Ihre Arbeit reproduzierbar machen?
quelle
Antworten:
Ich glaube nicht, dass die Definition von "reproduzierbarer Forschung" erfordert, dass der Autor alle Werkzeuge, die zur Reproduktion der erhaltenen Ergebnisse benötigt werden, kostenlos zur Verfügung stellt. Wenn ein Teil davon proprietär ist, obliegt es dem zukünftigen Benutzer, nicht dem Autor, die Vorkehrungen zum Erwerb der benötigten Software zu treffen. (Sie würden nicht erwarten müssen, dass jemand anderes die Software erstellt, um Ihre Ergebnisse zu reproduzieren, oder?) Sie wären natürlich dafür verantwortlich, genau anzugeben, welches Release der proprietären Software Sie verwendet haben, aber es ist nicht zumutbar, dies zu erwarten Sie möchten einen Forschungscode mit Open-Source-Software kompatibel machen, nur weil es Open-Source ist.
[Abgesehen davon, dass wir nicht nur über die Reproduzierbarkeit von Software sprechen, wenn einige davon proprietär sind, denke ich, dass zunächst eine grundlegendere Frage behandelt werden muss: Gibt die Software reproduzierbare Ergebnisse für verschiedene Installationen (z. B. für verschiedene Architekturen und Compilerversionen? Beispielsweise führen Rundungsfehler und Zuordnungsunterschiede aufgrund der unterschiedlichen Anzahl von Prozessoren dazu, dass viele molekulare Simulationsberechnungen unterschiedliche Ergebnisse liefern, wenn nur die Anzahl der in der Zuordnung enthaltenen Prozessoren geändert wird. (Die statistischen Durchschnittswerte sollten gleich sein Ort, aber die Trajektorien können und werden wahrscheinlich sehr unterschiedlich enden.)]
quelle
Ich war nie der Meinung, dass "reproduzierbare Forschung" bedeutet, dass Ihre Mitleser und Wissenschaftler nur auf "Ausführen" klicken (oder kompilieren oder was Sie haben) müssen, um Ihre Ergebnisse vollständig zu reproduzieren. Wenn nichts anderes, würde dies die Forschung eines jeden töten, der ein proprietäres statistisches Analysepaket verwendet, oder die Dinge "nicht reproduzierbar" machen, wenn sie für eine Plattform oder Sprache gemacht wären, die aus der Mode gekommen wären. Oder in diesem Fall möchte jemand Ihren Code reproduzieren, versteht / verwendet jedoch nicht die Sprache, die Sie verwenden.
CrossValidated hatte eine ähnliche Diskussion zum Thema - bedeutet "reproduzierbar", dass Sie meine Analyse auf meine Daten replizieren können oder dass das Experiment selbst von Grund auf neu ausgeführt werden kann und bestätigende Ergebnisse liefert. Der Link ist hier: /stats/14999/how-are-we-defining-reproducible-research
Ich denke, das wichtigste Element ist, zu beschreiben, was Sie auf der Ebene getan haben, auf der es von jemandem, der ausreichend interessiert war, neu codiert werden konnte , und wenn kommerzielle Tools verwendet wurden, werden diese Tools erwähnt. Denn das dient sowohl der Replikation des Experiments als auch der Überprüfung auf Codefehler.
quelle
In Ihrem Fall, in dem Sie möglicherweise nicht einmal das Recht haben, den von Ihnen verwendeten Code zu verbreiten, ist eine ausführliche Beschreibung des Algorithmus möglicherweise das Beste, was Sie tun können. Je nachdem, wie komplex Ihr Code ist, kann möglicherweise jemand mit den verfügbaren Tools das reproduzieren, was für ihn von Interesse ist.
Fragen Sie andernfalls nach, wie viel von Ihrer Arbeit Sie freigeben dürfen, und geben Sie diese dann frei.
quelle
Der beste Weg, reproduzierbare Forschung zu betreiben, besteht darin, sich nicht auf kurzlebige Dinge wie bestimmte Codes auf bestimmten Plattformen zu verlassen. Gestern haben wir Lochkarten berechnet, heute Elektronen in Silizium, morgen vielleicht Laser mit Proteinen oder sogar lebenden Zellen, übermorgen Quantenpunkte und wer weiß, was nächste Woche sein wird.
Reproduzierbare Forschung sollte ihre Konzepte und Ideen klarstellen und die derzeit verfügbaren Tools wie Hardware oder Software nicht zu einer Voraussetzung für die Reproduktion der Forschungsergebnisse machen. Die verwendeten Algorithmen sollten in einer klaren universellen Form detailliert sein. Die aktuelle Version einer bestimmten Hardware, eines Compilers oder eines Softwarepakets kann nur als Hilfsmittel zur Veranschaulichung der Forschungsergebnisse verwendet werden.
quelle
Das Veröffentlichen des generierten Fortran-Codes scheint in Ihrem Fall eine sehr gute Lösung zu sein.
Generell denke ich, dass die Verwendung unveröffentlichter Software nicht mit den Zielen reproduzierbarer Forschung vereinbar ist. Das ist einer der Gründe, warum ich reproduzierbare Forschung eher als langfristiges Ziel betrachte als als etwas, das man zur sofortigen Anwendung benötigen könnte.
quelle
Ich arbeite für Elsevier. Mein Unternehmen hat damit begonnen, das Collage-Framework (das als Reaktion auf die "Executable Paper Grand Challenge" entwickelt wurde) in Zeitschriftenausgaben zu verwenden, damit Autoren mit ihrem Artikel ausführbaren Code veröffentlichen können. Diese Funktion erleichtert es den Lesern, die im Artikel gemeldeten Ergebnisse zu reproduzieren und veröffentlichtes Material für ihre eigene Forschung wiederzuverwenden. Collage unterstützt neben Open-Source-Software eine Vielzahl von proprietärer Software. Weitere Informationen finden Sie im Informationsvideo hier und auf der Collage Authoring Environment-Website .
quelle