8.1 Structurer un projet

Un projet dans RStudio est un dossier particulier contenant un fichier .Rproj de paramétrage du projet, ainsi qu’un ou plusieurs sous-dossiers et fichiers. Il coïncide également avec un dépôt git pour la gestion de version si vous avez activé cette option, et peut aussi correspondre à un dépôt GitHub pour sa sauvegarde dans le cloud et pour collaborer à plusieurs dans le projet.

Un projet scientifique est essentiellement centré autour d’une question qu’on se pose. Nous avons planifié des mesures ou des expériences pour avancer dans les connaissances scientifiques après avoir consulté la littérature scientifique sur le sujet pour en cerner les limites de nos connaissances actuelles. À l’issue de notre travail, nous avons généré des données et nous allons ensuite les analyser et enfin discuter les résultats et tirer des conclusions. La dernière étape consiste à communiquer ces résultats à l’équipe, aux collègues et plus généralement, à la communauté scientifique tout entière par l’intermédiaire d’un ou plusieurs rapports, de publications, de posters ou de présentations à des colloques scientifiques, voire en utilisant des outils plus récents comme un tableau de bord interactif (“dashboard”) pour permettre à d’autres d’explorer de manière interactive tout ce que l’on aura construit dans notre projet.

Si ces deux projets (RStudio versus scientifique) n’ont rien à voir l’un avec l’autre en apparence, ils sont étroitement liés en science des données, du moins si vous avez choisi RStudio, R, git et GitHub pour travailler (il existe bien sûr d’autres outils similaires, comme Jupyter, Python, Julia, Matlab, GitLab, Bitbucket …). En effet, un projet RStudio sera le contenant informatique idéal pour votre projet scientifique quel qu’en soit la taille et la complexité. Par la suite, lorsque nous parlerons de projet, il s’agira donc d’un projet RStudio qui lui-même contient le matériel relatif à votre projet scientifique, le tout ne formant donc plus qu’une seule entité.

8.1.1 Qualités d’un bon projet

Pour que votre projet soit compréhensible, maintenable, reproductible et cohérent, vous allez devoir le structurer et le construire en respectant certaines règles. Nous en avons déjà abordé plusieurs dans les modules et cours précédents :

  • Structurer clairement son projet en sous-dossiers (data, R, docs, reports …)
  • Utiliser des noms de sous-dossiers et de fichiers courts, mais représentatifs du contenu
  • Séparer les données des analyses
  • Utiliser des chemins relatifs pour les liens entre fichiers, et ne jamais sortir au-delà du dossier de base du projet afin que celui-ci reste cohérent dans un autre contexte (sur GitHub, ou cloné sur un autre ordinateur)
  • Inclure les analyses directement dans les carnets de notes et les rapports via l’utilisation de R Markdown ou de Quarto
  • Gérer les versions du projet avec git
  • Partager le projet avec GitHub ou tout autre système équivalent (GitLab, Bitbucket), qu’il soit privé ou public
  • Indiquer clairement comment le matériel contenu dans le projet peut être (ré)utilisé an lui associant une licence, y compris pour les données

Il n’est pas si facile que cela d’élaborer un projet qui présente les trois qualités d’être :

  • compréhensible (nous retrouvons facilement les différents éléments du projet),
  • maintenable (pas de scripts à rallonge ou répétitifs, documents bien structurés et pas trop longs non plus, avec un système de gestion des versions correctement employé) et
  • reproductible (toutes les analyses peuvent être réexécutées et les documents régénérés sans erreurs et en obtenant à chaque fois les mêmes résultats et rendus de documents finaux).

Mais en respectant quelques règles, nous pouvons y arriver. Du point de vue du contenu, un projet est également centré sur une question scientifique, et toutes les analyses sont réalisées dans l’intention d’y répondre. Et effectivement, la discussion et les conclusions reviennent sur cette question. Cela ajoute une quatrième qualité au projet : sa cohérence.

Cela peut sembler évident, mais une erreur fréquente du débutant est de se perdre dans les données, les analyses ou la bibliographie … pour au final discuter de tout autre chose et ne pas répondre à la question de départ. C’est pour cela que la section but est très importante : elle exprime de manière concise et claire cette fameuse question qui est, et doit rester centrale pour que le projet soit cohérent.

Rédigez méticuleusement la section “but” de votre travail et gardez cela à l’esprit à chaque instant pour éviter de vous perdres dans les méandres des possibilités que l’étude d’un sujet biologique permet. C’est la meilleure façon de rester centré sur ses objectifs… et au final d’y répondre. La cohérence du projet est cruciale.

8.1.2 Structure conseillée

Pour les gros projets, une structure bien pensée dès le départ est indispensable. Nous vous en proposons une ici, sachant que des variations sur ce thème (sous-dossiers différents) seront possibles plus tard en fonction de vos goûts personnels. Mais pour l’instant, imprégnez-vous de cette structure et attachez-vous à comprendre en quoi elle permet d’atteindre les trois qualités de clarté, maintenabilité et reproductibilité du projet. Notre projet sera composé des éléments suivants :

  • des données avec des métadonnées complètes (pensez au dictionnaire des données), ainsi qu’un protocole d’acquisition de ces données détaillé (description des expériences et autres actions entreprises pour obtenir ces données),
  • des carnets de notes (“notebooks”) détaillant les analyses de manière reproductible,
  • des documents de synthèse pour transmettre les résultats du projet dans le format le plus approprié (rapport, présentation, poster, manuscrit plus conséquent, tableau de bord …).

Si vous avez suivi l’ensemble des cours de sciences de données, vous êtes déjà familier avec la plupart de ces éléments. Dans les cours précédents, nous n’avons pas insisté sur les protocoles, car nous partions la plupart du temps sur des données préexistantes. De même, les projets étant plus restreints, nous n’avons pas encore abordé un outil comme Quarto ou Bookdown pour rédiger de gros manuscrits, mais nous avons abondamment utilisé diverses formes de documents R Markdown, ainsi que les notebooks. En fait, les cours précédents ont été structurés pour vous amener progressivement à utiliser correctement les projets et pour vous préparer à utiliser des projets reproductibles sous RStudio.

Ce module ne s’attarde pas sur le contenu en dehors de sa cohérence. La pertinence de la question de recherche n’est pas abordée ici, par exemple. Néanmoins, nous vous proposons quand même quelques astuces pour gérer au mieux le contenu, et en particulier votre bibliographie en fin de module.

La suite reprend et détaille les trois éléments principaux de votre projet : ses données, ses carnets de notes et ses documents de synthèse. Enfin, ce module se clôturera sur quelques astuces et vous aurez un projet GitHub Classroom qui vous permettra de mettre en pratique toute cette théorie.