Jede fünfte Genetik-Publikation enthält Fehler durch die automatische Formatierung von Microsoft Excel
(science.org)- 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-SEPgeä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-SEPum 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
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.“
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.
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.
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.
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^2ein und drückt Enter, sagt die Tabellenkalkulation9. In der Mathematik hat Potenzierung aber Vorrang vor dem unären Minus, also müsste es-9sein. Wenn man etwa Schülern sagt, sie sollen den Graphen vony = -x^2zeichnen, 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
9zurü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.^. 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.-a*bals(-a)*bgeparst, aberc-a*balsc-(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/2wird als0 - (INT_MIN / 2)geparst und ist in Ordnung, aber-INT_MIN/2wird als(-INT_MIN) / 2geparst und ist nicht in Ordnung. Aufgrund der Eigenschaften der Zweierkomplement-Darstellung kannINT_MINmöglicherweise kein additives Inverses haben.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^2müsse-9ergeben; 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)^2naheliegend; 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.
-2^2=4, aber0-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.
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
Viele Tech-Startups bestehen darin, „Dinge, die Menschen früher mit Excel gemacht haben, durch ein spezialisiertes Tool zu ersetzen“.
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.
http://www.catb.org/jargon/html/Z/Zawinskis-Law.html
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.
Zumindest zum Zeitpunkt des Artikels gab es keine Möglichkeit, die automatische Umwandlung bestimmter Zeichenfolgen wie
SEPT2in 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.
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.
https://simple.wikipedia.org/wiki/Spreadsheet
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?
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.
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 FormatHH:MM:SS.uuuuuuin Nanosekunden seit der Epoch umwandelt, damit ein anderes Tool sie verarbeiten kann.Ich wusste aber nicht, dass
awkintern 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.
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
SEPT2undMARCH1standardmäßig in2-Sepbzw.1-Marumgewandelt.