RECHERCHE REPRODUCTIBLE

en écologie numérique



CESAB, le 20-11-2023



Qui je suis ?

  • chercheur (IRD)

  • écologue (marin)

  • récifs coralliens

  • écologie fonctionnelle

  • écologie numérique



francois.guilhaumon@ird.fr / fguilhaumon.github.io

Recherche reproductible ?

Un exemple







Goodman et al. (2014) PLoS Comput Biol 10(4): e1003542. doi:10.1371/journal.pcbi.1003542






Galillée relate une expérience scientifique au bout de laquelle on abouti tous à la conclusion que Io, Europe, Ganymède et Callisto sont en orbite autour de Jupiter.




Les notes de Galillée intègrent:

  • Données (dessins)

  • Méta-données, matériel (date, météo, carac. lunette)

  • ConTexte (description des méthodes, analyses et conclusions)

Recherche reproductible



données

code

documentation (e.g. un article)

Recherche reproductible



Recherche Reproductible

Un nouveau paradigme


  • les financeurs (ANR, Europe) et les revues le demandent (accéssibilité des données et du code, science ouverte)

  • si je garde mes données et mon code, j’ai un avantage compétitif

  • si je partage mes données et mon code, mon travail aura plus de visibilité (et de citations)

Avantages

  • Oblige à vérifier le travail (partage données + code)
  • Votre vous futur vous remerciera (vous serez bcp plus productif)
  • Vos collaborateurs aussi
  • En étant reproductible vous renforcez votre crédibilité et votre réputation
  • La reproductibilité favorise la confiance dans la démarche scientifique
  • Un progrès scientifique plus rapide

il faut accepter de coder un minimum …

il faut accepter de coder un minimum …

Comment ?

depuis Galillée le concept a un peu évolué …

L’article










Un article publié n’est que le sommet de l’iceberg que représente le processus de recherche …




“An article about computational results is advertising, not scholarship. The actual scholarship* is the full software environment, code and data, that produced the result.”

Claerbout and Karrenbach 1992.



*érudition

Les concepts

Wilson et al. 2016. Plos Comp Biol. https://arxiv.org/pdf/1609.00037.pdf

  • Project Organization : Organisation des fichiers

  • Data management : Gestion des données

  • Software : Structure du code & Cohérence du flux d’analyses

  • Tracking Changes : Gestion des versions de fichiers

  • Collaboration

  • Manuscripts

Project Organization


“Organizing the digital artifacts of a project to ease discovery and understanding.”




Organiser tous les fichiers relatifs à un projet selon une structure cohérente (et standardisée …).

Project Organization


Project Organization



Research compendium

Data management


“Saving both raw and intermediate forms; documenting all steps; creating tidy data amenable to analysis.”

Data management

  • Sauvegarder les données initiales en l’état.
  • Coder l’acquisition des données au maximum (API, fonction ‘download.file’ de R).
  • Toute transformation des données sera codée, cela devient un résultat.
  • Générer des données “bien rangées”, telles que vous voudriez les recevoir (tidy)

Tidy data

Software


Writing, organizing, and sharing scripts and programs used in an analysis.

Software

Le code, les scripts

  • Peut importe la convention adoptée, rester constant !
  • Chemins relatifs ! Toujours !
  • Pas d’espaces, d’accents ni de MAJUSCULES !
  • Commenter/documenter (les fonctions, les scripts)

Software

L’environnement logiciel

  • Les packages (versions !), la version de R (e.g. stringAsFactors = FALSE depuis 4.0, ‘|>’ depuis 4.1): utiliser le package renv
  • et les bibliothèques système, la version de l’OS ?
  • Docker (Rocker pour R), permet de créer une image de l’environnement de travail (OS, bibliothèques système, R, packages) (… il faut être un geek)

Software

Le “workflow” (enchaînement des scripts, des logiciels).

Software

Le “workflow” (enchaînement des scripts, des logiciels).


  • il existe des outils pour ça (script R, package targets)

Tracking Changes


Archiver l’évolution de divers composants de notre projet.

Tracking Changes

Utiliser un logiciel de gestion de versions (Git).

Collaboration


Faciliter la compréhension des projets de recherche : permettre la contribution, la vérification, la synthèse et la progression.

Collaboration


  • conventions de code
  • documentation de l’archive de recherche (README, license, code de contribution)
  • plateforme de collaboration en ligne (intègre Git !) : github, gitlab

Manuscripts


Writing manuscripts in a way that leaves an audit trail and minimizes manual merging of conflict.

Manuscripts


Utiliser la programmation lettrée (literate programming)


Au lieu de considérer que notre tâche principale est de dire à un ordinateur ce qu’il doit faire, appliquons-nous plutôt à expliquer à des êtres humains ce que nous voulons que l’ordinateur fasse.

Donald Knuth, années 70

Manuscripts

Quarto (https://quarto.org)

Manuscripts

En markdown le texte est formaté en utilisant des balises très simples comme les _ ou les *

Manuscripts


Comment ça marche Quarto ?

Manuscripts

Formats d’export de Quarto (pandoc)

Programme

Monday
  • Research compendium & Good practices
  • Version control with Git & GitHub
Tuesday
  • Literate programming: R Markdown & Quarto
  • Pipeline toolkit with targets
Wednesday
  • Dealing with R package versions with renv
  • Containerization with Docker
  • Building an R package
Thursday
  • Subgroups projects
Friday
  • Subgroups projects