1 Punkte von GN⁺ 2024-09-15 | 1 Kommentare | Auf WhatsApp teilen
  • Während Genetik-Forschungsdaten in Tabellenkalkulationen verarbeitet werden, verändert die automatische Excel-Formatierung Gennamen und führt so zu Fehlern in wissenschaftlichen Publikationen
  • In jeder fünften Genetik-Publikation in führenden Wissenschaftsjournalen wurde ein solcher Fehlertyp gefunden, was Schwächen im Prozess der Datenvalidierung offenlegt
  • Die Hauptursache ist, dass Gennamen in Excel automatisch in Datums- oder Zahlenwerte umgewandelt werden, sodass Eingabewert und gespeicherter Wert voneinander abweichen
  • Abkürzungen wie SEPT2, die als Datum interpretiert werden können, werden in 2-SEP geändert und können als Datumswert wie 2. September 2016 gespeichert werden
  • Wer Excel weiterverwenden will, sollte die betreffenden Spalten als Textformat festlegen und die Ergebnisse manuell prüfen; Google Sheets kann eine Alternative sein, um dieselben automatischen Umwandlungsfehler zu vermeiden

Fehler bei Gennamen durch die automatische Excel-Formatierung

  • Die automatische Formatierung von Microsoft Excel hat Fehler in Daten aus Genetik-Publikationen verursacht, und eine neue Analyse bestätigt, dass solche Fehler in jeder fünften Genetik-Publikation in führenden Wissenschaftsjournalen vorkommen
  • Das Problem entsteht, wenn Tabellenkalkulationen bestimmte Gennamen als Kalenderdaten oder Zahlenwerte interpretieren
  • Nutzer glauben, einen Gennamen eingegeben zu haben, doch die gespeicherten Daten können in einen anderen Wert umgewandelt worden sein

Typisches Beispiel

  • Das Gen Septin-2 wird häufig als SEPT2 abgekürzt
  • Excel wandelt SEPT2 in 2-SEP um und kann dies als Datum 2. September 2016 speichern
  • Solche Umwandlungen können die Zuverlässigkeit von Genlisten oder Analysedaten in Publikationen beeinträchtigen

Gegenmaßnahmen und Alternativen

  • Wer Excel weiter nutzen möchte, sollte die entsprechende Spalte als Textformat festlegen und sorgfältig prüfen, ob keine automatische Umwandlung stattgefunden hat
  • Google Sheets speichert Gennamen unverändert wie eingegeben und kann daher eine Alternative sein, um denselben Typ automatischer Umwandlungsfehler zu vermeiden
  • Die zugehörige Analyse wurde in Genome Biology veröffentlicht

1 Kommentare

 
GN⁺ 2024-09-15
Meinungen auf Hacker News
  • Dass Excel Zeichenketten, die wie wissenschaftliche Notation aussehen, automatisch in Zahlen umwandelt, macht mich wirklich wütend. Man kann es nicht einmal abschalten.
    In großen Datenexporten kommen Werte wie eindeutige Positionscodes vor, und irgendwann sehen einige davon seltsam aus – und es ist nicht nur die Anzeige geändert, sondern der Zellinhalt selbst wurde von Excel ungefragt verändert.
    Es ist absurd, dass solche kleinen Probleme, über die Menschen immer wieder stolpern, auch nach Jahren nicht behoben werden. Microsoft sagt normalerweise, man arbeite nur an Dingen, „die viele Kunden betreffen“, aber wenn Bugreports ständig geschlossen werden, kann man jedes Mal sagen, es betreffe „nur eine Person“, und wieder schließen.
    Stattdessen sollte man, wenn etwas nicht reproduzierbar ist, Debugging für das nächste Mal hinzufügen oder nachvollziehbare Gründe hinterlassen, etwa: „Es gibt nur wenige Anfragende, aber eine Änderung könnte andere Bereiche oder die Abwärtskompatibilität brechen.“

    • Genau, der letzte Grund ist der Kern. Es geht um Abwärtskompatibilität inklusive Bugs.
      Unzählige Makros, VBA-Skripte und Workflows von nichttechnischen Nutzern hängen auf subtile Weise von diesem Verhalten ab. Ähnlich wie bei den seltsamen Macken von JavaScript: Wenn man es ändert, gehen irgendwo alte Dinge kaputt.
      Microsoft könnte das direkter sagen, aber natürlich will man so eine Debatte vermeiden.
    • Gibt es einen Grund, beim Importieren den Datentyp nicht festzulegen? Wenn es ein häufig verwendetes Datendateiformat ist, könnte man den Import mit VBA automatisieren und dabei die richtigen Datentypen angeben.
    • Das Problem, dass Zeichenketten, die wie wissenschaftliche Notation aussehen, automatisch in Zahlen umgewandelt werden, passiert mir ein- bis zweimal pro Woche. Es macht mich wahnsinnig.
    • Ich verstehe nicht, warum man noch MS Office benutzt, wenn es LibreOffice kostenlos gibt.
  • Ein früherer populärer Thread aus August 2020: https://news.ycombinator.com/item?id=24070385
    Darin ging es darum, dass „Wissenschaftler menschliche Gennamen ändern, damit MS Excel sie nicht fälschlich als Datumsangaben interpretiert“.
    Als zugehörige Details: 2023 veröffentlichte Microsoft ein Update, das Excels Datumsumwandlung von Gensymbolen verhindert, und es gibt auch den Gene Updater, der von Excel falsch erkannte Gennamen automatisch korrigiert und aktualisiert.
    https://www.pcmag.com/news/microsoft-finally-fixes-excel-gli...
    https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9325790/

  • Man muss seine Werkzeuge richtig kennen. Bei solchen Überschriften macht mich der Zustand der Welt und der Hindernisse, die Fortschritt ausbremsen, traurig; die Dummheit, alle Werkzeuge für die faulsten Nutzer zu entwerfen, macht mich wütend; und zugleich ist das Scheitern von proprietärer Software und ihren Nutzern auch irgendwie lächerlich.
    Das Werkzeug, das man verwendet, kann schlecht sein. Dann muss man sich entweder selbst mit diesem schlechten Werkzeug auseinandersetzen, ein besseres Werkzeug lernen oder einen kompetenten Computerexperten hinzuziehen, der sich im Werkzeug-Ökosystem auskennt und Ergebnisse liefern kann.
    Das Problem der Ergebnisvalidierung habe ich noch gar nicht angesprochen. In einer öffentlich finanzierten Forschungsumgebung Geld an Microsoft zu zahlen, proprietäre Werkzeuge zu verwenden und es dann zu vermasseln, ist ein bitterer Zustand.

    • Wenn man in diesem Bereich arbeitet, liegt ein großer Teil des Problems darin, dass Verlage bei der Einreichung von Artikeln kleine Datensätze im xls-Format verlangen.
      Daher öffnet und speichert irgendwo in der Kette – korrespondierender Autor, Herausgeber, Journal-Mitarbeiter usw. – jemand die Datei mit Excel erneut. Bioinformatiker machen ihre Analysen nicht in Excel.
    • Genau, Werkzeuge werden nicht für die Nutzer gemacht, sondern für die Werkzeugmacher. Alle anderen müssen sich anpassen.
  • Einer der Gründe, warum ich keine Tabellenkalkulationen mehr im Unterricht einsetze, ist, dass sie den Bug bei der Priorität arithmetischer Operationen weitergeschleppt haben. Mit „Bug“ ist hier gemeint, dass er im Widerspruch zu langjährigen mathematischen Konventionen steht.
    Gibt man in eine Zelle -3^2 ein und drückt Enter, sagt die Tabellenkalkulation 9. In der Mathematik hat Potenzierung aber Vorrang vor dem unären Minus, also müsste es -9 sein. Wenn man etwa Schülern sagt, sie sollen den Graphen von y = -x^2 zeichnen, sollten sie eine nach unten geöffnete Parabel zeichnen.
    Aktuelles Excel kann ich nicht überprüfen, aber in Excel 97 war es so, und auch LibreOffice Calc gibt derzeit 9 zurück. Vermutlich hat eine frühe Tabellenkalkulation die Priorität falsch implementiert, und danach haben alle aus Kompatibilitätsgründen nachgezogen.
    Maxima und Python liefern dagegen beide -9. Ich frage mich, ob auch Leute, die Formeln aus Mathematikbüchern in Tabellenkalkulationen kopieren, über dieses Problem stolpern.

    • Dieses Problem wirkt wie ein Nebenprodukt des erfundenen binären Operators ^. In der Mathematik ist der Exponent hochgestellt und daher kein binärer Operator, sondern Teil des Terms.
      In Computertexten hat man für etwas, das sich nicht direkt darstellen ließ, einen binären Operator erfunden; das Caret ist verbreitet und kam als erstes auf, aber ** ist ein weiteres Beispiel.
      Traditionell wird das unäre Minus als Teil des Terms gesehen und hat deshalb eine höhere Priorität als binäre Operatoren. Wenn man aber Exponenten in Operatoren verwandelt und diese Logik trotzdem beibehält, wird es vertrackt.
      Ein ähnliches Problem sieht man bei der Division. / ist ein binärer Operator, der in Umgebungen ohne echtes Divisionszeichen geschaffen wurde, und sollte ursprünglich den Bruchstrich darstellen. Der Bruchstrich klammert die gesamten Ausdrücke auf beiden Seiten; ersetzt man ihn aber schlicht durch /, kann es durch Prioritätsregeln zu falschen Ergebnissen kommen.
    • In C wird -a*b als (-a)*b geparst, aber c-a*b als c-(a*b). Das unäre Minus hat eine höhere Priorität als binäre Operatoren.
      Normalerweise merkt man das nicht, weil man das Vorzeichen verschieben kann, aber bei Grenzfällen im Zusammenhang mit undefiniertem Verhalten kann es Probleme geben.
      0 - INT_MIN/2 wird als 0 - (INT_MIN / 2) geparst und ist in Ordnung, aber -INT_MIN/2 wird als (-INT_MIN) / 2 geparst und ist nicht in Ordnung. Aufgrund der Eigenschaften der Zweierkomplement-Darstellung kann INT_MIN möglicherweise kein additives Inverses haben.
    • Das klingt als Grund, ein Programm nicht zu verwenden, nach übertriebener Haarspalterei.
      Mir ist bekannt, dass es bei diesem Thema zwei Konventionen gibt; um das gewünschte Verhalten zu bekommen, setzt man einfach Klammern.
      Ich war in der Schule gut in Mathe, wusste aber nicht, dass es Leute gibt, die meinen, -3^2 müsse -9 ergeben; ich hielt das nur für eine merkwürdige Eigenheit mancher Taschenrechner oder Programme. Ich frage mich auch, wie man diesen Ausdruck laut vorliest. Wenn man an „minus drei zum Quadrat“ denkt, ist (-3)^2 naheliegend; nur wenn man es als „das Negative von drei zum Quadrat“ liest, passt -9.
      In der Mittelstufe wurde uns beigebracht, solche Ausdrücke in den Taschenrechner einzugeben und zu sehen, dass das Ergebnis von der Erwartung abweicht; danach dachte ich nur: „Dann muss ich eben Klammern setzen.“ Nur weil ich eine etwas andere Prioritätskonvention bevorzuge, würde ich nicht gleich den Taschenrechner wegwerfen oder anderen sagen, sie sollten ihn nicht benutzen.
    • Im Nim-Forum gab es eine ähnliche Diskussion. In Nim gilt -2^2=4, aber 0-2^2=-4, weil der erste Fall als unäres - mit höherer Priorität als Potenzierung betrachtet wird.
      Man kann argumentieren, dass das technisch korrekt ist, aber für jemanden mit gewöhnlichem ingenieur- oder naturwissenschaftlichem Hintergrund, der alltägliche Aufgaben erledigen will, ist es extrem kontraintuitiv. Ich denke, dass das viele Leute davon abhalten könnte, Nim zu verwenden.
    • In Excel ist der Exponentialoperator nur eine Kurzform der Funktion POWER. Aus dieser Perspektive ist das Verhalten von Excel wohl korrekt, auch wenn es mathematisch falsch sein mag.
  • Das Problem von Excel ist, dass man versucht, fast alles mit einem einzigen Softwarewerkzeug zu erledigen: Frontend-Bearbeitung und -Darstellung, Analyse, semantische Modellierung, Datenspeicher und Datenbank.
    Die meisten vernünftigen Engineers sehen an diesem Ansatz etwas Grundfalsches. Die meisten normalen Computernutzer glauben jedoch, dass Computing genau so sein sollte.
    Manchmal frage ich mich selbst, warum ich für bestimmte Aufgaben freiwillig Excel öffne. Trotz aller Kritik hat Excel für mich aber die Schwelle des Lindy-Effekts überschritten und wird bleiben.
    https://en.wikipedia.org/wiki/Lindy_effect

    • Die Entwicklungskosten, um eine Lösung zu schaffen, die „ein bisschen besser“ ist als eine komplexe Excel-Tabelle, sind meist astronomisch.
      Viele Tech-Startups bestehen darin, „Dinge, die Menschen früher mit Excel gemacht haben, durch ein spezialisiertes Tool zu ersetzen“.
    • Mein Problem mit Excel ist, dass ich es zu sehr mag. Ich weiß, dass ich das nicht sollte, und tue es trotzdem.
      Weil es den perfekten Punkt zwischen strukturierten und unstrukturierten Daten trifft, ist es angenehm, einfach Zellen auszufüllen und zu sehen, was passiert.
      Der Grund, warum man sagt „das sollte man nicht tun“, ist, dass der Ausstieg aus einer funktionierenden Lösung hin zu einem sauber produktisierten, codebasierten Ansatz sehr schmerzhaft sein kann.
    • Excel erfüllt Zawinskis Gesetz, weil man mit VBA-Skripten auch E-Mails versenden kann.
      http://www.catb.org/jargon/html/Z/Zawinskis-Law.html
    • Allerdings ist es proprietäre Software, daher wird irgendwann die Wartung eingestellt werden und es wird nicht mehr funktionieren. Tabellenkalkulationen im Allgemeinen fallen aber unter den Lindy-Effekt, und Open-Source-Software wird sie über die kommenden Jahrhunderte weitertragen.
  • Im Deutschen gibt es das Sprichwort „Ein schlechter Arbeiter schiebt immer die Schuld auf sein Werkzeug.“
    Excel hat viele seltsame Eigenheiten, aber ich bin trotzdem dankbar, dass es existiert, weil man damit Zahlen schnell zusammentragen und zugleich die Eingabewerte für Formeln ändern kann.

    • Gleichzeitig gibt es im User-Experience-Design den Grundsatz: Gib nicht den Nutzern die Schuld.
      Zumindest zum Zeitpunkt des Artikels gab es keine Möglichkeit, die automatische Umwandlung bestimmter Zeichenfolgen wie SEPT2 in Datumswerte abzuschalten. Allein eine Einstellung dafür hätte viele Fehler verhindern können, die Forschende spät nachts oder unter Termindruck verursacht haben.
      Es gibt sicher Punkte, an denen die Nutzer eines Tools sich bemühen müssen, dessen beste Nutzung zu lernen. Aber auch Entwickler können mit etwas Aufwand häufige Fehler verhindern und den Nutzern viel Zeit sparen.
    • Ein ungeschickter Arbeiter schiebt die Schuld auf sein Werkzeug, aber niemand kann mit einer Karotte die Bibel auf eine Briefmarke schreiben.
    • Dieses Sprichwort hat eine Nuance, die oft übersehen wird. Es bedeutet, dass man nicht „seinem eigenen Werkzeug“ die Schuld geben soll.
      Nicht allen Werkzeugen. Nicht Werkzeugen, die einem durch veraltete Industriestandards oder Konventionen aufgezwungen werden, und auch nicht dummen Werkzeugen, die man sonst nie verwenden würde, wenn man eine Wahl hätte.
      Excel hat die Tabellenkalkulation nicht erfunden. Auch ohne Excel hätte man zu diesem Zeitpunkt irgendeinen Nachfolger von WhateverCalc verwendet, und Excel hat dem nur unnütze Dinge hinzugefügt.
    • Wofür man hier dankbar sein sollte, ist meiner Meinung nach nicht Excel, sondern die Existenz von Tabellenkalkulationsanwendungen.
      https://simple.wikipedia.org/wiki/Spreadsheet
    • Im Polnischen gibt es das Sprichwort: „Eine ungeschickte Ballerina wird vom Saum ihres Rocks behindert.“
  • Warum kann man ausgerechnet die automatische Datumserkennung nicht abschalten? Man müsste nur eine Checkbox in die Einstellungen setzen, damit ich als Nutzer Excel sagen kann, diesen Unsinn zu lassen.
    Kann irgendjemand unwiderlegbar begründen, warum das immer eingeschaltet bleiben muss?

    • Wenn man irgendwo tief in den Einstellungen eine Checkbox einbaut, gibt es nur noch mehr Wege, wie Dinge schiefgehen können.
      Was ist der Standardwert? Unterscheidet er sich je nach Version? Wie sorgt man für Konsistenz über verschiedene Computer und Installationsumgebungen hinweg? Was, wenn man die Funktion spontan tatsächlich braucht?
      Ich muss an den CSV-Export denken. Ich habe Windows seit zehn Jahren nicht mehr benutzt, aber ich erinnere mich, dass man die Locale ändern und den Computer neu starten musste, um die Exportweise von Dezimalzahlen zu ändern. Das nur wegen einer Excel-Einstellung zu tun, ist absurd. Überall Checkbox-Patches zu verteilen, ist davon nicht grundlegend verschieden.
    • Neben der Möglichkeit, alle Zellen als Text zu formatieren, gibt es inzwischen auch eine Checkbox für dieses Problem.
      https://insider.microsoft365.com/en-us/blog/control-data-con...
  • Vor zwei Wochen hatte ich auf der Arbeit ein ähnliches Erlebnis. Beim Auslesen von Logdateien schrieb ich ein awk-Skript, das Zeitstempel im Format HH:MM:SS.uuuuuu in Nanosekunden seit der Epoch umwandelt, damit ein anderes Tool sie verarbeiten kann.
    Ich wusste aber nicht, dass awk intern Gleitkommazahlen für Zahlen verwendet, und die Umwandlungsfunktion rundete das Ergebnis falsch, was die spätere Analyse auf schwer nachvollziehbare Weise ruinierte.
    Erschwerend kam hinzu, dass dasselbe Problem erneut auftrat, als ich die Daten in Visidata durchblätterte, auch wenn es dort eine einfache Umgehung gab, an die ich mich nicht mehr genau erinnere.

  • Auf der Arbeit hatte ich mehrfach das Problem, dass Excel wegen unterschiedlicher Locale-Formate numerische Eingabewerte veränderte, und ich habe oft Stunden verloren, bis ich herausgefunden hatte, dass Excel die Ursache war.
    Auch Werte wie Sozialversicherungsnummern oder Telefonnummern sind für Excel völlig unpraktische Typen. Das sind viel allgemeinere Anwendungsfälle als Gene und dürften den Standard-Use-Cases von Excel deutlich näher sein, trotzdem macht Excel sie kaputt.
    Selbst 2024 ist das Öffnen einer CSV-Datei in Excel keine einfache Aufgabe, die mit einem Doppelklick erledigt sein sollte, sondern unnötig kompliziert. Andere Tabellenkalkulationsprogramme kommen mit CSV-Dateien deutlich leichter zurecht.
    Das Schlimmste ist, dass Excel meist von nichttechnischen Nutzern verwendet wird, die dieses ungewöhnliche Verhalten missverstehen, wodurch immer wieder Zeit verschwendet wird.

    • Meine Frustration mit Excel bei der Arbeit liegt weniger an Excel selbst, sondern daran, dass Leute Formeln kaputtmachen, löschen, nicht verstehen oder daran herumbasteln, um sie zu „verbessern“, und das Endergebnis dann Müll ist.
      Allerdings liegt es meistens daran, dass ich die Schutz- und Sperrfunktionen nicht gut genug genutzt habe. Ich weiß auch, dass erklärende Notizen ignoriert werden.
      Deshalb habe ich das etwas abgemildert, indem ich bei gemeinsam genutzten Dateien fast immer eine leere Sicherung als Ausgangsversion bereithalte und die tatsächlich zu verwendende Datei separat führe.
  • Ebenfalls interessant ist der Artikel von 2016 zum gleichen Thema, „Gene name errors are widespread in the scientific literature“.
    https://genomebiology.biomedcentral.com/articles/10.1186/s13...
    Dem Artikel zufolge wurde das Problem, dass Excel Gensymbole versehentlich in Datumsangaben und Gleitkommazahlen umwandelt, erstmals 2004 beschrieben. Beispielsweise werden Gensymbole wie SEPT2 und MARCH1 standardmäßig in 2-Sep bzw. 1-Mar umgewandelt.