La recherche reproductible en calcul vise à mettre le code nécessaire pour générer les résultats dans un document de calcul à la disposition d'autres chercheurs afin qu'ils puissent exécuter ce code pour reproduire les résultats dans ce document. Je voudrais que toutes mes recherches soient reproductibles, mais je me heurte à un problème : quelques documents sur lesquels je travaille utilisent un package de différenciation automatique interne (appelé DAEPACK ) sur une bibliothèque propriétaire ( CHEMKIN- II ; conditions de licence peu claires).
Il serait trop long de remplacer ces composants logiciels par des versions open source. Il existe un remplacement open-source pour CHEMKIN-II appelé Cantera , mais Cantera est en C ++, tandis que CHEMKIN-II est en Fortran 77. Il faudrait beaucoup d'efforts pour modifier suffisamment le code Cantera afin qu'il puisse être traité par automatique outils de différenciation pour C ++.
Étant donné que j'ai besoin de ces packages propriétaires, quelle est la meilleure façon de rendre mes recherches aussi reproductibles que possible, en supposant que les chercheurs n'aient pas accès à CHEMKIN-II? Étant donné que DAEPACK est un traducteur de source à source, je n'ai pas nécessairement besoin de distribuer DAEPACK; Je pourrais peut-être inclure sa sortie, qui serait des fichiers source Fortran qui calculent les dérivés.
Plus généralement, si vous avez besoin d'un logiciel propriétaire dans votre travail et que ce logiciel propriétaire n'est pas largement disponible (c.-à-d. MATLAB, Mathematica, etc.), comment rendre votre travail reproductible?
la source
Réponses:
Je ne pense pas que la définition de «recherche reproductible» exige que l'auteur fournisse gratuitement tous les outils nécessaires pour reproduire les résultats obtenus. Si une partie est propriétaire, il appartient au futur utilisateur, et non à l'auteur, de prendre les dispositions nécessaires pour acquérir le logiciel nécessaire. (Vous ne vous attendriez pas à devoir créer le logiciel pour que quelqu'un d'autre reproduise vos résultats, n'est-ce pas?) Il vous incomberait, bien sûr, de spécifier exactement quelle version du logiciel propriétaire vous avez utilisé, mais il n'est pas raisonnable de s'attendre à ce que vous faire un code de recherche compatible avec les logiciels open source simplement parce qu'il est open source.
[Soit dit en passant, en plus de parler de la reproductibilité des logiciels quand certains sont propriétaires, je pense qu'une question plus fondamentale doit être abordée en premier: le logiciel donne-t-il des résultats reproductibles sur différentes installations (par exemple, pour différentes architectures et Par exemple, les erreurs d'arrondi et les différences d'allocations résultant du nombre différent de processeurs signifient que de nombreux calculs de simulation moléculaire donneront des résultats différents simplement en changeant le nombre de processeurs inclus dans l'allocation (les moyennes statistiques devraient atteindre les mêmes place, mais les trajectoires peuvent et vont probablement finir très différentes.)]
la source
Je n'ai jamais été d'avis que la «recherche reproductible» signifie que vos collègues lecteurs et scientifiques ne devraient avoir qu'à cliquer sur «Exécuter» (ou compiler ou ce que vous avez) pour reproduire entièrement vos résultats. Si rien d'autre, cela tuerait la recherche de quiconque utilise un progiciel d'analyse statistique propriétaire, ou rendrait les choses "non reproductibles" si elles étaient conçues pour une plate-forme ou un langage tombé en désuétude. Ou d'ailleurs, est-ce que quelqu'un veut reproduire votre code, mais ne comprend pas / n'utilise pas la langue que vous utilisez.
CrossValidated a eu une discussion similaire sur le sujet - «reproductible» signifie-t-il que vous pouvez reproduire mon analyse sur mes données, ou que l'expérience elle-même peut être relancée à partir de zéro et fournir des résultats de confirmation. Le lien est ici: /stats/14999/how-are-we-defining-reproducible-research
Je pense que l'élément le plus important est de décrire ce que vous avez fait au niveau où cela pourrait être recodé par quelqu'un qui était suffisamment intéressé, et si des outils commerciaux étaient utilisés, ces outils sont mentionnés. Parce que cela sert à la fois la réplication de l'expérience et la double vérification des erreurs de code.
la source
Dans votre cas, où vous n'avez même pas le droit de distribuer le code que vous avez utilisé, une description très approfondie de l'algorithme pourrait être la meilleure que vous puissiez faire. Selon la complexité de votre code, quelqu'un peut être en mesure de reproduire tout ce qui l'intéresse à partir des outils dont il dispose.
Sinon, demandez autour de vous et voyez combien de votre travail vous êtes autorisé à publier, puis libérez-le.
la source
La meilleure façon de faire une recherche reproductible est de ne pas s'appuyer sur quoi que ce soit de courte durée comme des codes spécifiques sur une plateforme spécifique. Hier, nous calculions sur des cartes perforées, aujourd'hui sur des électrons dans le silicium, demain ce sera peut-être sur des lasers à protéines ou même des cellules vivantes, après-demain sur des points quantiques, et qui sait ce qui se passera la semaine prochaine.
La recherche reproductible doit clarifier ses concepts et ses idées et ne pas promouvoir les outils actuellement disponibles comme le matériel ou les logiciels comme condition préalable à la reproduction des résultats de la recherche. Les algorithmes utilisés doivent être détaillés sous une forme universelle claire; la version actuelle d'un matériel, d'un compilateur ou d'un progiciel spécifique ne peut être utilisée que comme un outil pour démontrer les résultats de la recherche.
la source
La publication du code Fortran généré semble être une très bonne solution dans votre cas.
En règle générale, je pense que l'utilisation de logiciels non publiés est incompatible avec les objectifs de la recherche reproductible. C'est l'une des raisons pour lesquelles je considère la recherche reproductible comme un objectif à long terme plutôt que comme quelque chose dont on pourrait exiger l'application immédiate.
la source
Je travaille pour Elsevier. Mon entreprise a commencé à utiliser le cadre Collage (développé en réponse à l'Executable Paper Grand Challenge) dans des numéros de revues pour permettre aux auteurs de publier des morceaux de code exécutable avec leur article. Cette fonctionnalité permet aux lecteurs de reproduire plus facilement les résultats rapportés dans l'article et de réutiliser le matériel publié pour leurs propres recherches. Collage prend en charge une grande variété de logiciels propriétaires, en plus des logiciels open source; plus d'informations peuvent être trouvées dans la vidéo d'information ici et sur le site Web Collage Authoring Environment .
la source