Supposons que tous vos résultats pour un projet donné sont conservés dans des fichiers Excel nommés exp1.xlsx, exp2_20170708.xlsx, exp_prolif_072017.xlsx, et ainsi de suite. Supposons aussi que le contenu du fichier exp1.xlsx ressemble à ceci :
Ce fichier est très convivial pour un humain, mais pas pour un ordinateur. Disons qu’un jour, vous décidez (ou votre patron décide) que vous avez besoin d’une base de données pour organiser vos résultats plutôt que de les conserver dans vingt-six fichiers Excel différents. Si tous vos fichiers ressemblent à exp1.xlsx tel que décrit plus haut, vous allez avoir besoin d’investir une quantité de temps non négligeable à nettoyer vos données avant même de commencer à penser au schéma de votre base de données. Ce travaille de nettoyage vaut aussi si vous voulez analyser vos données dans R, par exemple.
Dans l’exemple ci-haut, plusieurs éléments représentent un défi pour un script informatique :
- les valeurs numériques mélangées à du texte;
- la couleur des cellules qui représente quelque chose;
- les différents mots utilisés pour désigner les contrôles.
Concernant l’expérience même, avec si peu d’information dans le fichier ou dans le nom du fichier, il est difficile de savoir dans quel contexte les résultats ont été générés (type d’expérience, concentrations des composés, type d’échantillons, méthode pour calculer l’IC50, etc.). Vous avez bien sûr les résultats importants, les IC50, mais sans les métadonnées associées, ces résultats ne sont pas très informateurs. Vous connaissez sûrement toutes les conditions qui y sont associées, mais ce n’est pas nécessairement le cas de vos collaborateurs.
Alors pourquoi ne pas adopter de bonnes habitudes dès le départ? Par exemple :
- toujours garder un fichier structuré, lisible par un ordinateur contenant les métadonnées. Ce fichier devrait être placé avec les fichiers de résultats. Il devrait décrire l’expérience (types d’échantillons, concentrations, etc) ainsi que le contenu des fichiers de résultats. Les noms de colonnes devraient être expliqués s’ils ne sont pas suffisant par eux-mêmes pour décrire le contenu de la colonne. « IC50 4c », ça veut dire quoi 4c?;
- utiliser un vocabulaire contrôlé et uniforme pour permettre l’utilisation des valeurs de texte par la suite. « Quality Control » devrait être utilisé partout;
- ne pas utiliser de couleur ou du formatage de texte (gras, italique) pour représenter de l’information. Une nouvelle colonne appelée « Method » contenant le nom de la méthode utilisée ou une nouvelle colonne appelée « Used Model2 Graphpad » pourrait être créée pour indiquer quelles valeurs d’IC50 ont été calculées avec le modèle 2 de Graphpad. Ces cellules peuvent demeurer colorées en autant que l’information soit aussi présente sous forme de valeur (0 ou 1 par exemple);
- ne pas mélanger les valeurs numérique et les valeurs texte dans une même colonne. Essayer de calculer la moyenne de la colonne IC50 dans Excel… Vous comprendrez ce que je veux dire!
- penser comme un ordinateur! Les ordinateurs ne prennent pas de décisions (du moins, pas encore!) et ils ne peuvent pas tout deviner. Donc, soyez précis et ne laissez pas de place à l’interprétation.
Voici à quoi ressemblerait exp1.xlsx après quelques modifications pour le rendre plus convivial pour un ordinateur. Il devrait être renommé IC50_cellLineX_20170710_GBoucher_1.xlsx et être associé à son fichier de métadonnées.
Le fichier est encore utilisable et plaisant pour les humains. Donc, si vous pouvez, essayez d’adopter ces bonnes pratiques dès le départ!
En fait, les bonnes pratiques existent dans tous les domaines. Dans certains domaines, il est obligatoire de s’y conformer. Pensez notamment aux modes opératoires normalisés (« Standard Operating Procedures » ou SOPs) existant dans les laboratoires de recherche clinique ou pharmaceutique. Dans d’autres domaines, les bonnes pratiques sont fortement encouragées mais ne sont pas toujours appliquées. Néanmoins, elles facilitent les choses lors des collaborations ou lorsque l’on doit revisiter un vieux projet.
« Super article inspirant! Aymeric Inpong »