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 connaissance scientifiques après avoir consulté la littérature scientifique sur le sujet pour en cerner les limites de nos connaissances actuelles. A 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 toute 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 le “dashboard” pour permettre à d’autres d’explorer de manière interactive l’univers 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, Matlab, GitLab, Bitbucket, …). En effet, un projet RStudio sera le contenant informatique idéal pour votre projet scientifique quelle 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 sbn projet en sous-dossiers (
data
,R
,reports
, …) - Utiliser des noms de sous-dossiers et de fichiers cours 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 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
- Gérer les versions du projet avec Git
- Partager le projet avec GitHub, 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 regénérés sans erreurs et en obtenant à chaque fois les mêmes résultats et rendus de documents finaux). Un projet de qualité n’est pas obligatoirement un projet qui amène à des résultats incroyables, novateurs ou encore révolutionnaires.
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.
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é, maintainabilité 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 donnes !), 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, dashboard,…).
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 {bookdown} pour rédiger des 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 à ceci : la gestion d’un gros projet présentant les quatre qualités décrites plus haut autour de votre travail de mémoire de fin d’études qui est l’élément principal du cours SDD IV.
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 une assignation qui vous permettra de mettre en pratique toute cette théorie et d’initier votre gros projet personnel.