Une étude de génétique sur cinq contient des erreurs dues au formatage automatique de Microsoft Excel
(science.org)- Lorsque des données de recherche en génétique sont traitées dans un tableur, le formatage automatique d’Excel peut modifier des noms de gènes et provoquer des erreurs dans les publications
- Ce type d’erreur a été repéré dans une étude de génétique sur cinq publiée dans de grandes revues scientifiques, mettant en lumière les failles du processus de validation des données
- La cause principale est que des noms de gènes sont automatiquement convertis par Excel en dates ou en valeurs numériques, ce qui crée un écart entre la valeur saisie et la valeur enregistrée
- Des abréviations comme SEPT2, qui peuvent être interprétées comme des dates, sont transformées en
2-SEPet peuvent être enregistrées comme une date telle que le 2 septembre 2016 - Si l’on continue à utiliser Excel, il faut définir les colonnes au format texte et vérifier manuellement les résultats ; Google Sheets peut constituer une alternative pour éviter ce même type d’erreur de conversion automatique
Erreurs de noms de gènes causées par le formatage automatique d’Excel
- La fonction de formatage automatique de Microsoft Excel a introduit des erreurs dans des données d’articles de génétique, et une nouvelle analyse confirme que ce type d’erreur figure dans une étude de génétique sur cinq publiée dans des revues scientifiques de premier plan
- Le problème survient lorsque le tableur interprète certains noms de gènes comme des dates du calendrier ou des valeurs numériques
- Les utilisateurs pensent avoir saisi un nom de gène, mais la donnée enregistrée peut être remplacée par une autre valeur
Cas représentatif
- Le gène Septin-2 est souvent abrégé en SEPT2
- Excel transforme SEPT2 en
2-SEPet peut l’enregistrer comme la date du 2 septembre 2016 - Cette conversion peut compromettre la fiabilité des listes de gènes ou des données d’analyse incluses dans les publications
Comment réagir et quelles alternatives
- Si l’on continue à utiliser Excel, il faut définir la colonne concernée au format texte et vérifier attentivement qu’aucune conversion automatique n’a eu lieu
- Google Sheets enregistre les noms de gènes tels qu’ils sont saisis et peut donc constituer une alternative pour éviter ce même type d’erreur de conversion automatique
- L’analyse correspondante a été publiée dans Genome Biology
1 commentaires
Avis sur Hacker News
Le fait qu’Excel convertisse automatiquement en nombres les chaînes qui ressemblent à de la notation scientifique est vraiment exaspérant. Et on ne peut même pas le désactiver.
Dans de gros exports de données, on a des valeurs comme des codes d’emplacement uniques, et à un moment certaines ont l’air étranges ; ce n’est pas seulement l’affichage qui a changé, le contenu même des cellules a été modifié par Excel sans rien demander.
Après des années, ne pas corriger ce genre de petits problèmes qui continuent pourtant de faire trébucher les gens est incompréhensible. Microsoft dit généralement « nous ne travaillons que sur ce qui affecte beaucoup de clients », mais si les rapports de bug sont systématiquement fermés, on peut à chaque fois dire que « cela n’affecte qu’une seule personne » et les refermer encore.
À la place, si le problème n’est pas reproductible, il faudrait ajouter du débogage pour la prochaine fois, ou laisser une raison traçable du type « peu de demandeurs, mais le changement pourrait casser d’autres zones ou la rétrocompatibilité ».
D’innombrables macros, scripts VBA et flux de travail créés par des utilisateurs non techniques dépendent subtilement de ce comportement. C’est comparable aux bizarreries de JavaScript : si on les change, de vieilles choses cassent quelque part.
Microsoft pourrait le dire plus directement, mais évidemment l’entreprise préférera éviter ce débat.
Ancien fil populaire d’août 2020 : https://news.ycombinator.com/item?id=24070385
Il portait sur le fait que « des scientifiques ont changé les noms de gènes humains pour empêcher MS Excel de les interpréter à tort comme des dates ».
Parmi les détails liés, Microsoft a publié en 2023 une mise à jour empêchant Excel de convertir les symboles de gènes en dates, et il existe aussi Gene Updater, qui corrige et met à jour automatiquement les noms de gènes mal reconnus par Excel.
https://www.pcmag.com/news/microsoft-finally-fixes-excel-gli...
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9325790/
Il faut bien connaître ses outils. Quand je vois un titre comme celui-ci, je suis attristé par l’état du monde et par les obstacles qui freinent le progrès, agacé par l’absurdité de concevoir tous les outils pour les utilisateurs les plus paresseux, et en même temps amusé par l’échec des logiciels propriétaires et de leurs utilisateurs.
L’outil que vous utilisez peut être médiocre. Dans ce cas, il faut soit apprendre à manier cet outil médiocre, soit apprendre de meilleurs outils, soit faire venir un spécialiste informatique compétent capable d’explorer l’écosystème d’outils pour produire le résultat attendu.
Et je n’ai même pas encore abordé la question de la validation des résultats. Dans un environnement de recherche financé par des fonds publics, payer Microsoft pour utiliser des outils propriétaires et se planter ainsi, c’est une situation amère.
Du coup, quelque part dans la chaîne — auteur correspondant, éditeur, personnel de la revue — quelqu’un ouvre le fichier dans Excel puis le réenregistre. Ce ne sont pas les bioinformaticiens qui font leurs analyses dans Excel.
L’une des raisons pour lesquelles j’ai cessé d’utiliser les tableurs dans l’enseignement est qu’ils ont continué à traîner un bug de priorité des opérations arithmétiques. Par « bug », j’entends que cela contredit les conventions mathématiques établies de longue date.
Si l’on saisit
-3^2dans une cellule et qu’on appuie sur Entrée, le tableur répond9. Mais en mathématiques, l’exponentiation a priorité sur le moins unaire, donc le résultat devrait être-9. Par exemple, si l’on demande à un élève de tracer le graphe dey = -x^2, il doit dessiner une parabole ouverte vers le bas.Je ne peux pas vérifier les versions récentes d’Excel, mais c’était le cas dans Excel 97, et LibreOffice Calc renvoie encore aujourd’hui
9. Il est probable qu’un des premiers tableurs ait mal implémenté la priorité, puis que tous les autres l’aient imité par souci de compatibilité.À l’inverse, maxima et Python donnent tous deux
-9. Je me demande si les gens qui recopient des formules de manuels de mathématiques dans des tableurs tombent aussi sur ce problème.^. En mathématiques, un exposant est écrit en exposant : ce n’est pas un opérateur binaire, mais une partie du terme.Dans le texte informatique, on a inventé un opérateur binaire pour ce qu’on ne pouvait pas représenter directement ; le caret est courant et a été le premier à apparaître, mais
**en est un autre exemple.Traditionnellement, le moins unaire est vu comme faisant partie du terme, il a donc une priorité plus élevée qu’un opérateur binaire. Mais si l’on transforme l’exposant en opérateur tout en conservant cette logique, les choses se compliquent.
On voit un problème similaire avec la division.
/est un opérateur binaire créé dans des environnements où il n’y avait pas de véritable symbole de division ; à l’origine, il devrait représenter la barre horizontale d’une fraction. La barre de fraction a pour rôle de regrouper toute l’expression des deux côtés, mais si on la remplace simplement par/, les règles de priorité peuvent produire un résultat erroné.-a*best analysé comme(-a)*b, maisc-a*best analysé commec-(a*b). Le moins unaire a une priorité plus élevée que les opérateurs binaires.En général, on ne le remarque pas parce qu’on peut déplacer le signe, mais cela pose problème dans des cas limites liés au comportement indéfini.
0 - INT_MIN/2est analysé comme0 - (INT_MIN / 2), ce qui va bien, mais-INT_MIN/2est analysé comme(-INT_MIN) / 2, ce qui ne va pas. En raison des propriétés de la représentation en complément à deux,INT_MINpeut ne pas avoir d’inverse additif.Je sais qu’il existe deux conventions sur ce point, donc si je veux obtenir le comportement souhaité, j’utilise simplement des parenthèses.
J’étais bon en maths à l’école, mais j’ignorais que certaines personnes pensaient que
-3^2devait donner-9; je voyais seulement cela comme une bizarrerie de certaines calculatrices ou de certains programmes. Je me demande aussi comment on lit cette expression à voix haute. Si l’on pense « le carré de moins trois »,(-3)^2est naturel ; il faut lire « l’opposé du carré de trois » pour que-9soit correct.Au collège, on nous avait appris à entrer ce genre d’expression dans une calculatrice pour voir un résultat différent de celui attendu, et depuis je me suis simplement dit : « il faut utiliser des parenthèses ». Ce n’est pas au point de jeter une calculatrice, ni de dire aux autres de ne pas l’utiliser, simplement parce qu’on préfère une convention de priorité un peu différente.
-2^2=4, mais0-2^2=-4, parce que le premier cas est interprété comme un-unaire ayant priorité sur l’exponentiation.On peut soutenir que c’est techniquement correct, mais pour quelqu’un issu d’un contexte ordinaire d’ingénierie ou de sciences et qui veut faire un travail banal, c’est très contre-intuitif. Je pense que cela pourrait pousser beaucoup de gens à ne pas utiliser Nim.
POWER. De ce point de vue, même si c’est mathématiquement faux, le comportement d’Excel me paraît correct.Le problème d’Excel, c’est qu’on essaie d’en faire presque tout avec un seul outil logiciel : édition et présentation en frontal, analyse, modélisation sémantique, stockage de données et base de données.
La plupart des ingénieurs raisonnables estiment qu’il y a quelque chose qui cloche dans cette approche. Mais la plupart des utilisateurs ordinaires d’ordinateurs pensent que c’est ainsi que l’informatique doit fonctionner.
Parfois, je me demande moi aussi pourquoi j’ouvre volontairement Excel pour certaines tâches. Malgré toutes les critiques, Excel a toutefois franchi pour moi le seuil de l’effet Lindy, et il restera.
https://en.wikipedia.org/wiki/Lindy_effect
Beaucoup de startups tech consistent à « remplacer ce que les gens faisaient dans Excel par un outil dédié ».
Il atteint le point parfait entre données structurées et non structurées, si bien qu’il est agréable de simplement remplir des cellules et de voir ce qui se passe.
La raison pour laquelle on dit qu’il « ne faut pas faire ça », c’est que sortir d’une solution qui fonctionne pour passer à une approche correctement industrialisée, fondée sur du code, peut être extrêmement douloureux.
http://www.catb.org/jargon/html/Z/Zawinskis-Law.html
Il existe en allemand un dicton : « un mauvais ouvrier accuse toujours ses outils »
Excel a beaucoup de bizarreries, mais je suis toujours reconnaissant de son existence dans la mesure où il permet de rassembler rapidement des chiffres tout en laissant modifier les valeurs d’entrée des formules
Au moins à l’époque de l’article, il n’existait aucun moyen de désactiver la conversion automatique en dates de certaines chaînes comme
SEPT2. S’il y avait seulement eu un réglage pour la couper, cela aurait pu éviter beaucoup d’erreurs amplifiées par des chercheurs travaillant tard le soir ou sous la pression d’une deadlineIl y a clairement des moments où les utilisateurs d’un outil doivent faire l’effort d’apprendre à bien s’en servir. Mais côté développeurs aussi, un effort peut éviter des erreurs courantes et faire gagner énormément de temps aux utilisateurs
Pas tous les outils. Pas un outil imposé par de vieux standards industriels ou des habitudes, ni un outil stupide qu’on n’utiliserait jamais normalement mais pour lequel on n’a pas le choix
Excel n’a pas inventé le tableur. Même sans Excel, on aurait utilisé à ce moment-là un successeur quelconque de WhateverCalc, et Excel n’a fait qu’y ajouter des choses inutiles
https://simple.wikipedia.org/wiki/Spreadsheet
Pourquoi diable ne peut-on pas désactiver la détection automatique des dates ? Il suffirait de mettre une case à cocher dans les paramètres pour que moi, l’utilisateur, je puisse dire à Excel d’arrêter ce genre d’âneries
Quelqu’un peut-il défendre de façon irréfutable que cela doit toujours rester activé ?
Quelle est la valeur par défaut ? La valeur par défaut change-t-elle selon les versions ? Comment assurer la cohérence entre différents ordinateurs et environnements d’installation ? Que faire si l’on a réellement besoin de cette fonction sur le moment ?
Ça me fait penser à l’export CSV. Je n’ai pas utilisé Windows depuis dix ans, mais je me souviens qu’il fallait changer la locale et redémarrer l’ordinateur pour modifier la façon d’exporter les nombres décimaux. Faire ça juste pour changer un réglage Excel, c’est insensé. Disperser des correctifs sous forme de cases à cocher un peu partout n’est pas très différent
https://insider.microsoft365.com/en-us/blog/control-data-con...
J’ai vécu quelque chose de similaire au travail il y a deux semaines. En récupérant des fichiers de logs, j’ai écrit un script
awkqui convertissait des timestampsHH:MM:SS.uuuuuuen nanosecondes depuis l’epoch, afin qu’un autre outil puisse les ingérerMais je ne savais pas que
awkutilisait en interne des nombres à virgule flottante, et la fonction de conversion a mal arrondi le résultat, ce qui a saboté l’analyse ultérieure d’une manière difficile à comprendrePour aggraver les choses, le même problème est réapparu quand j’ai parcouru les données dans Visidata, même s’il existait une solution de contournement simple dont je ne me souviens plus exactement
Au travail, j’ai plusieurs fois vu Excel modifier des valeurs numériques saisies à cause de formats de locale différents, et j’ai souvent perdu des heures avant de comprendre qu’Excel en était la cause
Des valeurs comme les numéros d’identification ou les numéros de téléphone sont aussi des types totalement pénibles pour Excel. Ce sont des usages bien plus courants que les gènes, donc plus proches des cas d’utilisation standard d’Excel, et pourtant il les casse
Même en 2024, ouvrir un fichier CSV dans Excel n’est pas une opération simple qui devrait se résumer à un double-clic, mais quelque chose de beaucoup trop compliqué. D’autres tableurs gèrent les fichiers CSV bien plus facilement
Le pire, c’est qu’Excel est généralement utilisé par des non-techniciens, qui comprennent mal ces comportements particuliers, ce qui fait perdre du temps encore et encore
Mais, la plupart du temps, c’est aussi parce que je n’ai pas assez bien utilisé les fonctions de protection et de verrouillage. Je sais aussi que les notes explicatives sont ignorées
Donc, pour les fichiers partagés, j’ai un peu atténué le problème en gardant presque toujours une sauvegarde vierge de départ, et un fichier séparé réellement utilisé
L’article de 2016 sur le même sujet, « Gene name errors are widespread in the scientific literature », est également intéressant
https://genomebiology.biomedcentral.com/articles/10.1186/s13...
Selon l’article, le problème du logiciel Excel convertissant par erreur des symboles de gènes en dates et en nombres à virgule flottante a été décrit pour la première fois en 2004. Par exemple, des symboles de gènes comme
SEPT2etMARCH1sont convertis par défaut respectivement en2-Sepet1-Mar