Arbeiten in DatenwissenschaftEs kann schwierig sein, Erkenntnisse aus komplexen Datensätzen mit nur statischen Zahlen zu teilen. Alle Facetten, die die Kind und Bedeutung interessanter Daten beschreiben, werden nicht immer in einer Handvoll vorgenerierter Figuren erfasst. Während wir leistungsstarke Technologien zur Präsentation interaktiver Zahlen zur Verfügung haben – bei denen ein Betrachter komplexe Daten drehen, filtern, zoomen und im Allgemeinen untersuchen kann – haben sie immer Kompromisse.
Hier präsentiere ich meine Erfahrung mit einer kürzlich veröffentlichten Python -Bibliothek –Marimo– Dies eröffnet aufregende neue Möglichkeiten, um interaktive Visualisierungen im gesamten Bereich der Datenwissenschaft zu veröffentlichen.
Interaktive Datenvisualisierung
Die Kompromisse bei der Auswahl eines Ansatzes zur Präsentation von Datenvisualisierungen können in drei Kategorien unterteilt werden:
- Fähigkeiten – Welche Visualisierungen und Interaktivität kann ich dem Benutzer präsentieren?
- Veröffentlichungskosten – Welche Ressourcen benötigen für die Anzeige dieser Visualisierung für Benutzer (z. B. Server ausführend, Internet hosting -Web sites)?
- Benutzerfreundlichkeit– Wie viel von einer neuen Fähigkeiten / Codebasis muss ich im Voraus lernen?
JavaScriptist die Grundlage für tragbare Interaktivität. Jeder Benutzer hat einen Webbrowser auf seinem Laptop installiert, und es stehen viele verschiedene Frameworks zur Verfügung, um ein gewisses Maß an Interaktivität oder Visualisierung anzuzeigen, die Sie sich vorstellen können (z. B. diese Galerie der erstaunlichen Dinge, die Menschen mit drei.Js gemacht haben). Da die Anwendung auf dem Laptop des Benutzers ausgeführt wird, sind keine teuren Server erforderlich. Ein wesentlicher Nachteil für die Datenwissenschaftsgemeinschaft ist jedoch eine einfache Gebrauchsnutzung, da JS nicht viele der hochrangigen (dh benutzerfreundlichen) Bibliotheken hat, die Datenwissenschaftler für Datenmanipulationen, -diagramm und Interaktivität verwenden.
Python Bietet einen nützlichen Vergleichspunkt. Wegen seiner ständig wachsende Popularitäteinige haben das das genannt „Ära von Python“. Insbesondere für Datenwissenschaftler steht Python neben R als eine der grundlegenden Sprachen für schnell und effektiv komplexe Daten. Während Python möglicherweise einfacher zu verwenden ist als JavaScript, gibt es weniger Optionen für die Präsentation interaktiver Visualisierungen. Einige beliebte Projekte, die Interaktivität und Visualisierung liefern, waren FlascheAnwesend Bindestrich Und Straffung(auch erwähnenswert –BokehAnwesend HoloviewsAnwesend AltairUnd Handlung ). Der größte Kompromiss für die Verwendung von Python waren die Kosten für die Veröffentlichung – die Bereitstellung des Instruments an Benutzer. Genauso wie das Shinyapps Erfordern Sie einen laufenden Laptop, um die Visualisierung zu erstellen, und diese pythonbasierten Frameworks wurden ausschließlich serverbasiert. Dies ist keineswegs unerschwinglich für Autoren mit einem Price range, das jedoch die Anzahl der Benutzer einschränkt, die ein bestimmtes Projekt nutzen können.
Pyodid ist ein faszinierender Mittelweg – Python -Code, der direkt im Webbrowser ausgeführt wird WebAssembly (WASM). Es gibt Ressourcenbeschränkungen (nur 1 Thread und 2 GB Speicher), die dies für die starke Aufhebung der Datenwissenschaft unpraktisch machen. JedochDies kann mehr als ausreichend für den Aufbau von Visualisierungen und Aktualisierungen auf der Grundlage der Benutzereingaben sein. Da es im Browser ausgeführt wird, sind für das Internet hosting keine Server erforderlich. Instruments, die Pyodid als Stiftung verwenden, sind interessant zu erforschen, da sie Datenwissenschaftlern die Möglichkeit geben, Python -Code zu schreiben, der direkt auf den Computern der Benutzer ausführt, ohne dass sie außerhalb des Webbrowsers installieren oder ausgeführt werden müssen.
Beiseite, Ich habe mich bisher interessiert an interessiertEin Projekt, das diesen Ansatz ausprobiert hat: stlite Anwesend eine Implementierung von Stromflächen in Browser Auf diese Weise können Sie diese flexiblen und leistungsstarken Apps für eine breite Palette von Benutzern bereitstellen. Eine Kernbegrenzung besteht jedoch darin, dass sich die Stromverstärkung von Stlite (der Port des Stroms nach WASM) unterscheidet, was bedeutet, dass nicht alle Merkmale unterstützt werden und dass die Weiterentwicklung des Projekts von zwei separaten Gruppen abhängt, die entlang kompatibler Linien arbeiten.
Einführung: Marimo
Dies bringt uns zu uns Marimo.
Der Erste Öffentlichkeit Ankündigungen von Marimo waren im Januar 2024, so dass das Projekt sehr neu ist und eine einzigartige Kombination von Funktionen hat:
- Die Schnittstelle ähnelt einer Jupyter Notizbuch was den Benutzern bekannt sein wird.
- Ausführung von Zellen ist reaktivso dass die Aktualisierung einer Zelle alle Zellen erneut umgeben wird, die von ihrer Ausgabe abhängen.
- Benutzereingabe Kann mit einem flexiblen Satz UI -Komponenten erfasst werden.
- Notizbücher können schnell konvertiert werden in Appsden Code verstecken und nur die Eingangs-/Ausgabelemente anzeigen.
- Apps können lokal ausgeführt oder in umgewandelt werden in Statische Webseitenmit WASM/Pyodid.
Marimo gleicht die Kompromisse der Technologie auf eine Weise aus, die intestine für die Fähigkeiten der typischen Datenwissenschaftler geeignet ist:
- Fähigkeiten– Funktionen für Benutzereingaben und visuelle Anzeige sind ziemlich umfangreich. Unterstützung der Benutzereingabeüber Altair- und Handlungsdiagramme.
- Veröffentlichungskosten– Die Bereitstellung als statische Webseiten ist im Grunde kostenlos – keine Server erforderlich
- Benutzerfreundlichkeit– Für Benutzer, die mit Python -Notizbüchern vertraut sind, wird sich Marimo sehr vertraut fühlen und leicht abzuholen.
Veröffentlichung von Marimo -Apps im Internet
Der beste Ort, um mit Marimo zu beginnen, ist das Lesen ihre umfangreiche Dokumentation.
Als einfaches Beispiel für die Artwork der Anzeige, die in der Information Science nützlich sein kann, die aus erklärenden Textual content besteht, die mit interaktiven Shows durchsetzt sind, habe ich ein Barebones erstellt Github -Repository. Probieren Sie es selbst aus Hier .
![](https://github.com/FredHutch/marimo-publication/raw/main/public/screenshot.gif)
Benutzer können nur ein bisschen Code verwenden, sondern können:
- Quelldatensätze anhängen
- Generieren Sie Visualisierungen mit flexibler Interaktivität
- Schreiben Sie narrativen Textual content, der ihre Ergebnisse beschreibt
- KOSTENLOS im Internet veröffentlichen (dh mit Github -Seiten)
Weitere Informationen finden Sie in ihrer Dokumentation zum Internet PublishingUnd Template -Repository für die Bereitstellung auf GitHub -Seiten.
Öffentliche App / personal Daten
Diese neue Technologie bietet eine aufregende neue Probability für die Zusammenarbeit – veröffentlichen Sie die App öffentlich für die Welt, aber Benutzer können nur bestimmte Datensätze sehen, auf die sie zugreifen können.
Anstatt für jede App ein dediziertes Daten -Backend zu erstellen, können Benutzerdaten in einem generischen Backend gespeichert werden, auf das sicher authentifiziert und mit einer Python -Consumer -Bibliothek zugegriffen werden kann – alle im Webbrowser des Benutzers enthalten. Beispielsweise erhält der Benutzer einen OAuth -Anmeldeleg, der ihn mit dem Backend authentifiziert und der App ermöglicht, vorübergehend Eingabedaten zuzugreifen.
Als Proof of Idea habe ich eine einfache Visualisierungs -App erstellt, die eine Verbindung zu einer Verbindung herstellt die Cirro -Datenplattformdie an meiner Establishment verwendet wird, um wissenschaftliche Daten zu verwalten. Vollständige Offenlegung: Ich conflict Teil des Groups, das diese Plattform aufgebaut hat, bevor sie als unabhängiges Unternehmen ausging. Auf diese Weise können Benutzer:
- Laden Sie die öffentliche Visualisierungs -App – gehostet auf GitHub -Seiten
- Schließen Sie sich sicher mit ihrem privaten Datenspeicher an
- Laden Sie den entsprechenden Datensatz für die Anzeige
- Teilen Sie einen Hyperlink, der autorisierte Mitarbeiter auf die gleichen Daten leitet
Probieren Sie es selbst aus Hier.
![](https://github.com/FredHutch/differential-expression-viewer/raw/main/assets/screenshot2.gif)
Als Datenwissenschaftler ist dieser Ansatz zur Veröffentlichung kostenloser und Open-Supply-Visualisierungs-Apps, die zur Interaktion mit privaten Datensätzen verwendet werden können. Der Aufbau und Veröffentlichen einer neuen App kann Stunden und Tage statt Wochen und Jahre dauern. Die Forscher können ihre Erkenntnisse schnell mit Mitarbeitern teilen und sie dann in der weiteren Welt veröffentlichen.