1 points par GN⁺ 2024-09-15 | 1 commentaires | Partager sur WhatsApp
  • 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-SEP et 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-SEP et 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

 
GN⁺ 2024-09-15
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é ».

    • Exactement, la dernière raison est la clé. C’est à cause de la rétrocompatibilité, bugs compris.
      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.
    • Y a-t-il une raison de ne pas préciser le type de données à l’import ? Si c’est un format de fichier de données souvent utilisé, on peut aussi automatiser l’import avec VBA en indiquant les bons types de données.
    • Le problème de conversion automatique en nombres des chaînes qui ressemblent à de la notation scientifique m’arrive une ou deux fois par semaine. C’est à devenir fou.
    • Je ne comprends pas pourquoi on utilise encore MS Office alors que LibreOffice est gratuit.
  • 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.

    • Quand on travaille dans ce domaine, on voit qu’une grande partie du problème vient du fait que les éditeurs exigent de petits jeux de données au format xls lors de la soumission des articles.
      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.
    • Exactement, les outils ne sont pas faits pour les utilisateurs, mais pour les fabricants d’outils. Tous les autres doivent s’adapter.
  • 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^2 dans une cellule et qu’on appuie sur Entrée, le tableur répond 9. 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 de y = -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.

    • Ce problème ressemble à un effet secondaire de l’opérateur binaire inventé ^. 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é.
    • En C, -a*b est analysé comme (-a)*b, mais c-a*b est analysé comme c-(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/2 est analysé comme 0 - (INT_MIN / 2), ce qui va bien, mais -INT_MIN/2 est 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_MIN peut ne pas avoir d’inverse additif.
    • Cela ressemble franchement à une critique de détail pour justifier de ne pas utiliser un programme.
      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^2 devait 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)^2 est naturel ; il faut lire « l’opposé du carré de trois » pour que -9 soit 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.
    • Il y a eu une discussion similaire sur le forum Nim. Dans Nim, -2^2=4, mais 0-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.
    • Dans Excel, l’opérateur d’exponentiation n’est qu’un raccourci pour la fonction 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

    • Le coût de développement d’une solution « un peu meilleure » qu’une feuille de calcul Excel complexe est généralement astronomique.
      Beaucoup de startups tech consistent à « remplacer ce que les gens faisaient dans Excel par un outil dédié ».
    • Mon problème avec Excel, c’est que je l’aime trop. Je sais que je ne devrais pas, mais c’est le cas.
      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.
    • Comme Excel peut aussi envoyer des e-mails avec des scripts VBA, il satisfait à la loi de Zawinski.
      http://www.catb.org/jargon/html/Z/Zawinskis-Law.html
    • Cela dit, comme c’est un logiciel propriétaire, sa maintenance finira un jour par s’arrêter et il cessera de fonctionner. Mais les tableurs en général relèvent de l’effet Lindy, et les logiciels open source les feront perdurer pendant des siècles.
  • 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

    • En même temps, en conception de l’expérience utilisateur, on dit aussi : ne blâmez pas l’utilisateur
      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 deadline
      Il 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
    • Un ouvrier maladroit accuse ses outils, mais personne ne peut écrire la Bible sur un timbre avec une carotte
    • Il y a une nuance souvent oubliée dans ce proverbe. Il veut dire qu’il ne faut pas accuser « ses propres outils »
      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
    • Ce dont il faut être reconnaissant ici, ce n’est pas Excel, mais l’existence des applications de tableur
      https://simple.wikipedia.org/wiki/Spreadsheet
    • En polonais, il existe un dicton : « une mauvaise ballerine est gênée par l’ourlet de sa jupe »
  • 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é ?

    • Mettre une case à cocher au fin fond des paramètres ajoute encore des chemins possibles vers un problème
      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
    • En plus de la méthode qui consiste à définir toutes les cellules comme texte, il existe désormais une case à cocher pour ce problème
      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 awk qui convertissait des timestamps HH:MM:SS.uuuuuu en nanosecondes depuis l’epoch, afin qu’un autre outil puisse les ingérer
    Mais je ne savais pas que awk utilisait 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 à comprendre
    Pour 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

    • Ma frustration avec Excel au travail vient moins d’Excel lui-même que du fait que des gens cassent des formules, les suppriment, ne les comprennent pas ou les « améliorent », puis que le résultat final devienne n’importe quoi
      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 SEPT2 et MARCH1 sont convertis par défaut respectivement en 2-Sep et 1-Mar