22–25 Sept 2025
GW1 Uni Bremen
Europe/Berlin timezone

Meta-Writer

23 Sept 2025, 14:10
20m
H0070 (GW1-HS)

H0070

GW1-HS

Vortrag (15 min + 5 min) Tech Gemeinsamer Teil

Speaker

Stefan Vollmar (MPI-SF)

Description

Keywords: Research Data Management, Eigenentwicklung, Django, Python, ZeroMQ, Ceph, mkdocs, RFC3161 Time-Stamping, Labbook, XWiki, Samba, Proxmox, pylightxl, Excel [welcher Begriff passt hier nicht so recht?]

Es gibt einen aktuell 0.4 PB großen Bereich auf unserem zentralen Ceph-System, in welchem sich Primärdaten von Großgeräten wie Mikroskopen, Animal-PET-Scannern, aber auch Western-Blots und FACS-Daten befinden. Bei vielen dieser Daten handelt es sich um Bilddaten, die als Einzelbilder im TIF-Format oder als Stacks aus Bildern im LIF-Format (Leica Image File) gespeichert werden. Eine typische Mikroskop-Konsole kommt direkt vom Hersteller und darf von uns nicht verändert werden (Gewährleistung). Sie läuft unter Windows, ist nicht in unser User-Management integriert und befindet sich bei uns jeweils in einem eigenen Netzwerksegment, in welchem sie nur ein dediziertes Share auf dem Fileserver sehen kann. Samba ist so konfiguriert, dass die Daten auf einen Funktionsuser gemapped werden und nach kurzer Zeit read-only werden. Die Organisation der Daten im zentralen Dateisystem liegt bei den Usern und ist nicht unbedingt einheitlich. Üblicherweise legen User ihre Daten in einem Verzeichnis ab, welches einer Variante des Nutzernamens des entspricht (Marie Curie, Marie C, Marie, mcurie), Projekte werden als Verzeichnis oder Verzeichnis-Bäume darunter abgelegt.

Im Rahmen unserer Bemühungen ein »elektronisches Laborbuch« einzuführen und die Qualität wissenschaftlicher Dokumentation insgesamt zu verbessern, haben wir uns beim Meta-Writer-Projekt konkret darauf konzentriert, diese Dateien effizient und sicher mit Meta-Daten anreichern zu können, ohne die Primärdaten in irgendeiner Weise zu ändern. Die Meta-Daten werden dabei »nah« an den Primärdaten gespeichert um eine eindeutige Zuordnung zu garantieren.

Meta-Writer ist ein in Python mit Django geschriebenes Web-Interface und läuft auf einer VM (Proxmox). Der Kern des Tools ist ein Excel-esques User-Interface, welches für ein Projekt (Verzeichnis) pro Bild-Datei Metadaten anzeigt und speichert. Welche Metadaten gespeichert werden, entscheiden Templates, die in Zusammenarbeit mit den Experten der jeweiligen Facilities erstellt wurden. Ein Template definiert, welche Meta-Daten pro Bild-Datei erfasst werden und welche Typen diese haben. Unterstützte Typen sind beispielsweise Dateiname, Datum, Zahlenangaben mit Ranges oder auch Enums. Enums umfasst dabei auch speziell an die Bedürfnisse unserer User angepasste Listen wie Mauslinien und Antikörper, die automatisch mit existierenden Systemen (PyRat, Labbook) synchronisiert werden, mehrere tausend Einträge enthalten und über ein komfortables User-Interface gefiltert werden können. Eine Dokumentation dieser Attribute ohne eine Vorschlagliste wäre kaum sinnvoll umsetzbar und würde zu sehr uneinheitlichen Metadaten führen.
Meta-Daten, die bereits in den TIF- und LIF-Dateien (Leica Image File Format) gespeichert werden, werden auf Wunsch automatisch extrahiert.

Metadaten können in den Dateinamen (mit Unterstrichen getrennt) abgelegt werden und werden dann beim initialen Erstellen der Metadaten-Datei automatisch in die Tabelle übertragen. Sollte die Reihenfolge der extrahierten Daten falsch sein, lassen sich Spalten im User-Interface interaktiv verschieben und Zellenwerte können durch »Ziehen« effizient auf viele Zeilen übertragen werden. Templates sind versioniert, so dass diese später weiterentwickelt werden können. Es gibt einen Mechanismus, um Meta-Daten aus älteren Template-Version in die neuste Version zu migrieren: das System kennt die Operationen, um von einer Template-Version zur nächsten zu kommen, diese werden falls nötig automatisiert angewendet um Daten auf den neusten Stand zu bringen.

Metadaten werden ausschließlich in dedizierten Unterverzeichnissen innerhalb eines Projekte abgelegt. Existierende Metadaten werden nie geändert, stattdessen werden neue Dateien mit Versions-Informationen im Dateinamen angelegt. Alle Schritte werden geloggt. Damit erreichen wir eine Serialisierung und sehr effektive Kontrolle sämtlicher Schreiboperationen. Die Meta-Daten werden im Excel-Format abgelegt. Das ist gewöhnlich nicht unsere erste Wahl für die Ablage strukturierter Daten, hier aber vorteilhaft für die Akzeptanz bei unseren Nutzern - da die Qualitätssicherung (Templates bestimmen, welche Daten wie in einer Tabellenspalte vorkommen) und Versionierung durch Meta-Writer erfolgt und nur das Dateiformat (über pylightxl, eine 2000 Zeilen große Standalone-Library für das Schreiben und Lesen von Excel-Datein) genutzt wird, entfallen viele der üblichen Excel-Nachteile. Wir können die Dateien eines Experiments zusätzlich hashen (SHA256) und die Informationen (sowie den letzten Stand der Meta-Daten) mit RFC 3161 »timestampen«.

Meta-Writer selbst hat nur Read-Only-Zugriff auf das zentrale Ceph-System um versehentliche Schreiboperationen effektiv zu verhindern. Sollen Meta-Daten für ein Verzeichnis erstellt/editiert werden, erfolgt dies über einen dedizierten ZeroMQ-Server, der auf einer anderen Maschine mit Schreibzugriff auf das Ceph läuft. Dieser Server ist nur 200 Zeilen lang und kann lediglich genutzt werden, um neue Dateien in speziellen Metadata Verzeichnissen anzulegen. Existierende Dateien können nicht modifiziert oder gelöscht werden.

In offensichtlichen Fällen weist das System Nutzern automatisch Rechte für Ihre Verzeichnisse zu, zudem können Rechte von Administratoren per Hand für einzelne Nutzer vergeben werden. Dadurch können bei Kooperationsprojekten mehrere Nutzer Rechte erhalten und Rechte können beim Verlassen des Instituts an andere Mitarbeiter »vererbt« werden.

Anbei noch eine Animation aus der Online-Dokumentation (mkdocs) von Meta-Writer, die das Web-Interface beim Editieren der Meta-Daten zeigt, die »Line«-Dropdowns umfassen ca. 2000 Einträge.

Die so erzeugten Excel-Dateien sind direkt zugreifbar (auch über die Web-Oberfläche). Geplant ist, im optionalen Upload in unser “elektronisches Laborbuch” (XWiki) auch noch eine JSON-Datei mit den Meta-Daten anzuhängen. Verschiedene Arten von »Data Mining« lassen sich einfach implementieren: welche meiner Experimente haben noch keine Meta-Daten, welche Art von Messungen liegen insgesamt vor, wer macht am Institut so ähnliche Experimente wie ich.

Zustimmung zu Streaming/Agree to streaming ja/yes
Zustimmung zur Bereitstellung von Aufzeichnung/Agree to internal publication of recording ja/yes

Authors

Co-authors

Presentation materials

There are no materials yet.