Puh, ich weiß, über Excel in der Bioinformatik gab es hier schon einen Beitrag in dieser Serie. Und zuvor auch schon mal in anderem Kontext. Und jetzt, nach einer kleinen Blogpause, noch ein Artikel?

Ja, denn im Laborjournal, einer Zeitschrift, die im deutschsprachigen Raum in ziemlich vielen biochemisch arbeitenden Laboren gelesen wird, stand im letzten Jahr ein Kommentar zu Excel in der Bioinformatik. Und weil ein Laborjournalartikel bestimmt Beachtung finden wird, kann ich mir nicht verkneifen einen Teil zu unterstreichen und einen Teil zu kritisieren – in der Hoffnung, dass wenigstens ein paar in meiner Leserschaft bei ihrer nächsten Publikation von EXCEL oder anderen Klick-und-Paste-Programmen fernzuhalten und einen kleinen Beitrag zur wissenschaftlichen Reproduzierbarkiet / Nachvollziehbarkeit zu leisten. Und auch zur Rechtfertigung, wurde ich doch unlängst von Nutzern unserer Rechner darauf hingewiesen, dass es schade ist, keinen Service zu bieten, sodass die Ergebnisse in EXCEL geladen werden könnten.

Sehen wir davon ab, dass Tabellenkalkulationsprogramme wirklich super Werkzeuge sind und guten CSV-Import anbieten (und man eigentlich erwarten darf, dass Bioinformatiker in der Lage sein sollten im Netz zu suchen und eine Bibliothek zu verwenden, die das Ausschreiben in ihr favorisiertes Format direkt ermöglicht), klingt ja schon durch: Das ist nicht sinnvoll! Und warum es nicht sinnvoll ist, wird deutlich, wozu es – außer Gliederung und Präsentation von Daten – genutzt wird. Nämlich, um einfache Bezüge, Vergleiche und Rechnungen durchzuführen. Aber das ist doch genau das, wofür Tabellenkalkulationsprogramme da sind, oder?

Wer je eine komplexe Tabelle von Dritten erhalten hat, weiß, dass die Deutung mitunter schwierig sein kann und Weiterarbeit fehleranfällig. Das Laborjournal zitiert denn auch einen Fall, in dem eine Veröffentlichung zurückgezogen werden musste, weil Dinge durcheinander gerieten. Betroffen ist also nicht nur die längst nicht bewältigte automatische Re-Formattierung von Gen-Bezeichnungen, die Monat-für-Monat weiter für viele fehlerhafte Veröffentlichungen “sorgt” (wie auf dieser schönen Seite regelmäßig evaluiert wird). Denn das wäre traurig genug, immer mit dasselbe untaugliche Werkzeug zu nutzen.

Der Rat aus dem Laborjournal …

… ist auch meiner:

Die vielleicht beste Alternative, um große Datenmengen zu analysieren, bieten Skript-basierte Programmiersprachen für statistische Berechnungen und Grafiken wie Python (python.org) und R (r-project.org). Auch ohne lokale Installation lassen sie sich in Cloud-Oberflächen wie der Open-Source-App Jupyter Notebook nutzen (jupyter.org). Anfänglich sicher gewöhnungsbedürftig und aufwendig liegen ihre Vorzüge auf der Hand: Alle Nutzer wissen genau, was wie an welcher Stelle durch wen geschieht. Autokorrektur-Funktionen existieren nicht. Jeder Arbeitsablauf lässt sich auditieren. Selbst vorgefertigte Funktionen können begutachtet werden. Alle Software-Versionen sind dokumentiert und Modifikationen in einem Quellcode-Archiv hinterlegt.

Wobei regelmäßigen Besuchern des Blogs sicher aufgefallen ist, dass ich Jupyter-Notebooks nicht uneingeschränkt empfehle

Wie auch immer, an einem Punkt muss ich deutlich widersprechen:

Diejenigen, die unmöglich auf Tabellenkalkulationen verzichten können, finden in den Open-Source-Programmen LibreOffice und Gnumeric vielleicht attraktive Alternativen. Im Gegensatz zu Microsoft Excel sind sie weniger anfällig für Autokorrektur-Fehler (PLoS Comput Biol., doi: 10.1371/journal.pcbi.1008984), ihre Automatikfunktionen können leicht abgeschaltet werden und sie sind kostenlos verfügbar.

Oft reicht es auch schon, Gen-Listen als simple Text-Dateien in csv-, tsv- oder txt-Formaten zu speichern. Formatierungsfehler macht das unmöglich. Darüber hinaus lassen sich Excel-Dateien mit Web-Tools wie Truke (maplab.imppc.org/truke) und Escape Excel (apostl.moffitt.org) auf Konvertierungsfehler überprüfen. Noch mehr Tipps zu Tabellenkalkulationen bietet der Biostatistiker Karl Broman von der University of Wisconsin-Madison auf seiner Homepage: kbroman.org/dataorg.

Ist doch klar, oder? Wenn ein Teil des Problems mit Tabellenkalkulationsprogramm Nr. 1 ist, dass man Bezüge und Rechnungen nicht immer mit dem Auge kontrollieren kann und automatisierte Kontrolle meist extrem schwer ist bzw. die Fähigkeiten der Anwenderbasis überfordernd ist, ist dann zu erwarten, mit Tabellenkalkulationsprogramm Nr. 2 eine nachhaltige Lösung des Problems zu erreichen? Oder läuft man nicht Gefahr, dieselben Fehler wieder zu machen und zu übersehen?

Aber halt! Da steht doch, es gibt Tools, die einem Sicherheit geben? Stehen ja im Artikel! Doch hier wird versucht, den Teufel mit dem Beelzebub auszutreiben. Die Stunde automatisch dokumentierender Workflows – inklusive des Erstellens publikationsreifer Abbildungen! – hat geschlagen, manuelles Herumfrickeln ist und bleibt fehleranfällig. Sich als ArbeitsgruppenleiterIn darauf zu verlassen, dass Menschen keine Fehler beim manuellen Pflegen von Daten machen ist fahrlässig.

Aber das ist doch so laaaangwierig und kompliziert!

Ok, ok. Die an dieser Stelle fällige Aufforderung ein wenig Skriptingfähigkeit draufzuschaffen bewirkt bei der “reinen” Experimentatorenfraktion häufig Abwehrreaktionen. Verständlich, sind diese komisch-kryptischen Codeschnipsel der Bioinformatiker doch abschreckend. Andererseits sind ein paar Tage mit einem einführenden Buch (freies Beispiel für pandas (einer Bibliothek für die Programmiersprache Python), freies Beispiel für R) sehr gut investierte Zeit für den Anfang einer wissenschaftlichen Karriere (falls es an eurer Uni keine entsprechenden Kurse geben sollte). Also, keine Angst vorm Skripten, lernt coden! Es ist immer wieder nützlich im wissenschaftlichen Alltag und wer es kann, hat nicht nur Vorteile im Publikationswettbewerb, sondern kann auch helfen verlässlichere Publiktionen “rauszuhauen”.

Behaupten kann man viel, aber wenn seit Jahr und Tag überall dasselbe geschrieben steht (nicht zu vergessen viele Videos, die auch ins selbe Horn pusten (Beipspiel)), kann man sich die Sache ja mal überlegen, oder?

flattr this!

Kommentare (17)

  1. #1 Lercherl
    12. Februar 2022

    Ich finde ja, Gene umzubenennen, um sie Excel-kompatibel zu machen, ist der falsche Weg. Sie hätten umgekehrt jede Menge Gene 1NOV, 2DEC, APR1 usw. nennen sollen, damit allen sofort klar wird, dass Excel dafür das falsche Werkzeug ist.

    Im deutschen oder überhaupt nicht-angelsächsischen Raum sind Tools wie Excel wegen der unterschiedlichen Datums- und Zahlenformate noch einmal fehleranfälliger. In vielen Firmen ist Englisch die offizielle Firmensprache, in der Praxis wird ständig zwischen Englisch und der jeweiligen Landessprache gewechselt. Ob man Zahlen mit Punkt oder Komma als Dezimalzeichen bekommt, ist oft Glückssache.

    • #2 Christian Meesters
      13. Februar 2022

      Sie hätten umgekehrt jede Menge Gene …

      Bin ja auch bei allem derselben Meinung, aber die Forderung noch mehr Chaos in den Datenbanken zu erzeugen teile ich nicht ;-).

  2. #3 Omnivor
    Am 'Nordpol' von NRW
    12. Februar 2022

    Ich weiß nicht ob die Sache mit dem in der Mikrowelle getrocknetem Pudel wahr oder nur Urban Legend ist. Es wundert mich aber, dass in den USA noch keiner MS verklagt hat.

    • #4 Christian Meesters
      13. Februar 2022

      Ich weiß nicht, was dieser Beitrag mit dem Thema zu tun hat.

  3. #5 Echt?
    13. Februar 2022

    Wer zz dumm ist Excel zu benutzen programmiert es dann in Python?

    Und wie lange werden die Pythonprogramme laufen? So lange wie Fortran , Torbopascal, C++##?

    • #6 Christian Meesters
      13. Februar 2022

      Reproduzierbarkeit im Sinn dauerhaft möglicher Anwendung ist ein wichtiges Thema, keine Frage.

      Der Reihe nach:

      • Nein, das hat nichts mit Dummheit zu tun. Sondern mit verbesserter Nachvollziehbarkeit und Transparenz.
      • Lange
      • Ja

      Wobei die Fragen, warum Skriptsprachen stabile APIs bieten, wo die Einschränkungen liegen, wo die Einschränkungen bei C++&Co liegen und wie man die Ausführbarkeitsdauer steigern kann einen ganzen Blogbeitrag rechtfertigen. Insofern ist das “Ja” etwas unterkomplex. 😉

  4. #7 Christian Berger
    14. Februar 2022

    Im Prinzip muss jedem klar sein, dass wenn man große Mengen Daten verarbeiten will programmieren können muss. Effektiv ist ein Excelsheet auch eine Programmiersprache… nur halt eine in der es sehr mühsam ist korrekte Programme zu erstellen. Deshalb sehe ich Excel primär als eine Art Computerspiel. Man kann da Dinge machen, aber alles ist bewusst umständlich gemacht. So wie man bei einem Computerspiel einen Zähler durch absurde Eingaben erhöhen muss, so erfordert ein Tabellenkalkulationsprogramm von einem, dass man für simple Dinge absurde Aktionen durchführt.

  5. #8 schlappohr
    14. Februar 2022

    Ist ein wenig off-topic. Ich stehe mit Speadsheets auch ziemlich auf Kriegsfuß aus genau den Gründen, die im Artikel und in #7 angesprochen wurden.
    Vor einiger Zeit bin ich auf das gestoßen: https://pyspread.gitlab.io/

    Zitat:

    pyspread expects Python expressions in its grid cells, which makes a spreadsheet specific language obsolete. Each cell returns a Python object that can be accessed from other cells. These objects can represent anything including lists or matrices.

    Ich hatte noch nicht die Zeit, mir das mal näher anzuschauen, aber der Ansatz klingt für meine Informatikerohren erstmal recht interessant.

    • #9 Christian Meesters
      14. Februar 2022

      Hm, mein Problem mit Spreadsheets ist nicht so sehr die fehlende oder umständliche Programmierbarkeit, sondern das Erfordernis bei jeder Anwendung

      absurde Eingaben

      tätigen muss, um im Zweifel eine immer gleiche Manipulation auszuführen. Klar kann und wird ein Skript auch mal fehlerhaft sein, aber durch die gleichartige Ausführung wird es systematisch gleiche Fehler machen und das ist leichter festzustellen. Häufig wird so was während der Entwicklung bereits bemerkt. Die Veröffentlichung vieler fehlerhafter Spreadsheets zeigt, dass die Fehlerkorrektur da offenbar nicht so gut klappt. Oder anders: Menschen machen halt Fehler. Und wer sich stets auf Hand und Auge verlässt, nimmt in Kauf, dass Fehler häufiger übersehen werden, als bei dem Versuch zu automatisieren (was natürlich auch spektakulär in die Hose gehen kann).

      PS die “absurden Eingaben” fand ich zu schön, um sie nicht zu zitieren.

  6. #10 Echt?
    15. Februar 2022

    Bestehen die Bedenken nur in Bezug auf Excel oder auch gegen eine Programmierung in vba?

    • #11 Christian Meesters
      15. Februar 2022

      na ja, VBA wird so gut wie von niemandem mit Versionierung benutzt. Ist auch ziemlich umständlich, das zu tun. Warum den Teufel mit dem Beelzebub austreiben wollen?

      PS Und wie will man eigentlich eine Spreadsheetapplikation – irgendeine – sinnvoll in einen Workflow einbinden?

  7. #12 echt?
    15. Februar 2022

    Zur Visualisierung von Ergebnissen.

    Außerdem erweitert Excel kontinuierlich den Befehlsumfang bei statistischen Methoden. Außerdem hat fast jeder Rechner der Welt Excel installiert.

    Außerdem ist der Solver ein ziemlich gutes Hilfsmittel.

    • #13 Christian Meesters
      15. Februar 2022

      Durchaus, ja.

      Die Anforderung bei wissenschaftlicher Anwendung – in genomorientierter Bioformatik – ist verschiedene Daten vielfach gleichförmig zu analysieren. Klar ist es möglich am Ende eines Workflows eine Datei mit Genloci / Genen und Parametern wie Häufigkeit in einem best. Kontext in EXCEL einzulesen und dann weiterzuverarbeiten. Doch wie gesagt: Das würde jedes Mal manuelle Schritte erfordern. Fehlerquelle Nr. 1. Außerdem muss sichergestellt sein, dass Bezeichnungen nicht der Autokorrektur unterworfen werden. Fehlerquelle Nr. 2. Dann sollte man – wir reden hier schließlich über wissenschaftliche Anwendungen – die eigene Lösung anderen zur Verfügung stellen können. Dritte müssen also genau dieselben Schritte, mit “ihrer” EXCEL-Version durchführen. Fehlerquelle Nr. 3.

      Und schließlich muss das Ganze visualiert werden. Viel Spaß mit der Erstellung von Plots mit wissenschaftlichen Ansprüchen in EXCEL: So ein Histogramm mag noch angehen. Schon dabei muss man per Hand die Achsen beschriften und vielfach Klicken, bis der “Look” stimmt. Es gibt Leute, denen macht das Spaß. Spätestens bei einer Heatmap wird der Spreadsheetfanatiker die Segel streichen müssen. (Und ja, auch das geht natürlich prinzipiell auch alles in EXCEL.)

      Das alles ist nicht nur eine Frage der Meinung: Schließlich ist die Beobachtung ja, dass die Anwendung dieses Werkzeugs, das man teils schon zu Schulzeiten kennenlernen durfte, eben zu einem echten Problem in der genomorientierten Bioformatik (und nicht nur dort) geworden ist.

  8. #14 echt?
    16. Februar 2022

    Alle “manuellen” Schritte kann vba erledigen, auch das formatieren von Plots. Ich habe auch nichts gegen andere Programmiersprachen, aber, 99 % der Anwender sind Gelegenheitsprogrammierer – auch in der Forschung. Die sollten ihre Zeit nicht mit immer neuen Programmiersprachen verschwenden. Das ist genauso sinnlos, wie die Verwendung von Latex für die Dissertation, wenn man davor und danach alles mit Word schreibt.

    • #15 Christian Meesters
      16. Februar 2022

      Alle “manuellen” Schritte kann vba erledigen, auch das formatieren von Plots.

      Ja, kann ist das entscheidende Wort. Es geschieht de facto nicht, wie belegt gibt es keine (nennenswerten) Projekte, die das ermöglichen.

  9. #16 echt?
    16. Februar 2022

    Gibt es eigentlich Untersuchungen dazu, wie lang Software in “veralteten” Sprachen noch lief? Und was waren die Probleme, die zum Ende führten? Hatten neue Programmiersprachen wirklich große Vorteile? Welche Kosten wurden durch die Einführung ausgelöst und hat es denn gelohnt? Gibt es einen Wissenschaftszweig “Programmiersprachenarchäologie”? Was wäre passiert, wenn man gleich bei Basis geblieben wäre?

    Darauf könnte man ja versuchen, zu entscheiden, was man verwendet.

    – Selbst geschriebene Programme für die Promotion, die nie wieder einer braucht
    – kommerzielle Programme
    – irgend was dazwischen

    Ich habe diverse Software, die ins Gras biss, weil der Bildschirm oder der Drucker nicht mehr ansprechbar war. Wie immer könnte man aus der Auswertung der Vergangenheit vielleicht etwas lernen.

    • #17 Christian Meesters
      16. Februar 2022

      In puncto Sprachen ist mir nichts bekannt. R und Python sind sehr beliebte, bereits länger bestehende Sprachen, deren Untergang nicht zu erwarten ist, wohingegen mancher Servicepack in der Vergangenheit MS-Officekunden in den Wahnsinn trieb, weil Dokumente oder Tabellen zerhauen waren. Ältere Sprachen wie COBOL tendieren dazu lange über ihr “Fälligkeitsdatum” hinaus verwendet zu werden und fristen ein ewiges Nischendasein.

      Insgesamt aber war die mangelnde Einsatzfähigkeit wissenschaftlicher Software über die Zeit hier bereits Thema. Vielleicht helfen die Beiträge ein wenig Klarheit zu schaffen, was den Aspekt der Fragen angeht.

      Wir sollten uns in der Diskussion davon frei machen die eigenen Erfahrungen mit nicht wissenschaftlicher Software auf wissenschaftliche Anwendungsfälle zur Datenanalytik zu übertragen. Sonst ist eine Synthese wohl eher nicht möglich.