FENNEC – das Projekt zur Bachelorarbeit

Im Rahmen meiner Doktorarbeit am Lehrstuhl für Bioinformatik an der Universität Würzburg habe ich den FENNEC – Functional Exploration of Natural Networks and Ecological Communities – entwickelt, eine Webapplikation die es Biologen ermöglicht große Datenmengen automatisiert auszuwerten.

Durch neue molekulare Methoden (DNA Meta-Barcoding) können Wissenschaftler heutzutage schnell ganze Art-Gemeinschaften oder -Netzwerke erfassen, die mehrere hundert bis tausende Arten umfassen können.

Für viele Fragestellungen werden jedoch weitere Informationen benötigt die über viele öffentliche Datenbanken verstreut sind, wie z. B. morphologische Traits oder funktionale Eigenschaften der Arten.

FENNEC

Im FENNEC werden diese Informationen zusammengetragen und aufbereitet. Zudem können die Daten im FENNEC interaktiv analysiert und visualisiert werden, und ermöglichen dadurch Anwendern in der Biologie neuartige Meta-Analysen, die bisher nur über massiven manuellen Einsatz möglich waren.

Eine derzeitige Einschränkung ist, dass jeder Forscher nur mit seinen eigenen Daten oder solchen aus öffentlichen Quellen arbeiten kann.

Wir planen daher als nächstes großes Feature eine eigene Benutzerverwaltung einzurichten, die es ermöglicht, dass mehrere Personen gemeinschaftlich am gleichen Projekt arbeiten können. Außerdem soll es die Möglichkeit geben, Daten für andere freizugeben und gezielt Rechte zu vergeben.

Interesse geweckt?

Eine öffentliche Beta-Test Instanz von FENNEC ist derzeit schon unter: fennec.molecular.eco erreichbar, der Code ist auf GitHub zu finden.

Die verwendeten Technologien sind unter anderem:

  • PHP (Symfony 3, HWIOAuthBundle)
  • JavaScript (JSX, React, lodash, plotly)
  • Bootstrap
  • PostgreSQL (Doctrine)
  • Tests (PHPUnit, Mocha)
  • Continuous Integration (Travis CI)
  • Docker

Weiter Informationen findet ihr in dieser kleinen Präsentation:

FENNEC – Präsentation

Bachelorarbeit bei Mayflower

Diese (und möglicherweise weitere) Features sollten im Rahmen der Informatik-Bachelorarbeit von Sonja realisiert werden und erfordern eine Kombination aus biologischem Wissen und Programmierfähigkeiten.

Die Betreuung aus biologischer Sicht können wir sehr gut leisten.

Wir sind uns sicher, dass wir im informatischen Teil bei der Betreuung sehr von der Zusammenarbeit mit Mayflower profitiert haben. Nach unserem Kenntnisstand hat Mayflower das technische Know-how, um mit geringem Aufwand die Entwicklung so zu steuern, dass sie dem State of the Art entspricht.


Das Interview

Sonja Hohlfeld

Sonja Hohlfeld

Sonja Hohlfeld studiert im vierten Semester Informatik und hat gerade ihre Bachelorarbeit bei uns geschrieben. Das alleine wäre schon spannend genug, wäre da nicht ihr Background …

Denn vor Informatik hat sie Biologie studiert und ist dabei in der Bioinformatik gelandet, wo sie erste Programmiererfahrungen sammeln konnte – indem sie ein interaktives Analyseprogramm für das Web geschrieben hat. Dabei hat sie festgestellt, dass ihr Informatik gut gefällt – weswegen sie eben mit Informatik angefangen hat. Wie man ihrer Informatik-Bachelorarbeit entnehmen kann, findet sie Gefallen an der Kombination der beiden Fächer.

Bachelorarbeit bei Mayflower

Natürlich wollten wir wissen, wie es dazu kam, was Sonja bei uns gelernt hat und wie es mit ihr in Zukunft weiter geht. Die Antwort auf alle diese Fragen findet ihr in diesem Interview.

Das Tool, auf dem deine Bachelorarbeit aufsetzt, ist etwas „speziell“. Erkläre uns doch mal kurz, worum es dabei geht.

Sonja: Das Tool heißt FENNEC und ist für Ökologen gedacht, die Communities – also Artgemeinschaften – untersuchen wollen. Die haben bestimmte Tabellen, die sie in das Projekt laden können.

Es ist nun so, dass die Aussage „Was für Arten sind jetzt in dieser Gemeinschaft” nicht viel über Wechselwirkungen – wie ist die Beziehungen zur Umwelt usw. – aussagt, deswegen wäre es sinnvoll, wenn man weitere Informationen zu diesen Daten – sogenannte Traits – hinzufügen kann. Man könnte beispielsweise Pflanzenhöhe, Blütenfarben etc. ergänzen. Diese Traits gibt es in allen möglichen Datenbanken, die zum Teil öffentlich sind. Die kann man sich ziehen und zu seinen Daten hinzufügen.

Leider ist es sehr aufwendig, wenn man händisch einzeln diese Sachen heraussucht und zu seinen Daten hinzufügt. Deswegen haben wir diese Plattform geschrieben, in der das eben automatisch gemappt wird. Daneben gibt’s noch ein interaktives Visualisierungsprogramm, in dem man sich das ansehen kann.

Meine Aufgabe war es, das Ganze mit einer Userverwaltung zu erweitern. Im Geiste des Sharing-Permissions-Gedanken, also dass ein Nutzer, der ein Projekt hochlädt, das mit anderen teilen kann – ganz im Sinne von kollaborativem Arbeiten. Und was ich noch vorbereitet habe – das habe ich nicht implementiert, aber mir Gedanken drüber gemacht – ist, wie Nutzer eigene Traits hochladen können. Also wenn jemand ganz abgefahrene Sachen misst und die gern zu seinen Daten hinzufügen möchte, die es aber nicht in öffentlichen Datenbanken gibt, dann soll der auch die Möglichkeit haben, das selbst hochladen zu können.

Zu Beginn deiner Bachelorarbeit kam dir aber erst einmal etwas dazwischen …

Sonja: Genau, ich musste ein großes Refactoring machen: Das Projekt begann Anfang 2016, dann haben wir es ein halbes Jahr entwickelt, bis alles schon so gut wie fertig war – also die Hauptfunktionalitäten waren alle da. Dann hat Markus, der andere Entwickler des Projekts, Symfony kennengelernt und gesagt “Hui, jetzt könnten wir das mal ausprobieren” … also haben wir alles auf Symfony umgestellt. Aber das Projekt war nicht in allen Teilen vollständig und an die Prinzipien von Symfony angepasst.

Das heißt, ein Entwickler, der jetzt sich an das Projekt setzt, hätte erstmal Schwierigkeiten, sich reinzufinden, weil wir eben nicht direkt den Prinzipien von Symfony folgen, sondern noch so ein bisschen unser eigenes Ding mit reingebracht haben. Deswegen war es sinnvoll, das alles aufzuräumen. Und auch das Datenbank-Schema habe ich großflächig geändert; ich habe jetzt die Nutzerdaten komplett von anderen Daten getrennt. Man kann jetzt theoretisch die Daten auch in unterschiedliche Datenbanken packen, damit sie auch räumlich voneinander getrennt sind.

Was war die größte Herausforderung?

Sonja: Am Anfang tatsächlich das Einarbeiten. Ich habe vorher ein bisschen Symfony gekannt und grundsätzliche Dinge mitbekommen, aber richtig selbst daran gearbeitet habe noch nicht. Und das alles kennenzulernen und die Denkweise zu verinnerlichen, das war die größte Herausforderung. Das hat mich auch viel Zeit gekostet – am Anfang fast jeden Tag der Woche; von Montag bis Freitag mehr oder weniger den ganzen Tag.

Wenn du jetzt über die Bachelorarbeit nachdenkst, wie viel Anteil hatte das Coden daran?

Sonja: Schon recht viel, würde ich sagen … so 70 Prozent.

Wie viel der Code-Basis hast du in der Zeit angefasst?

Sonja: Viel. Vom Backend – PHP – würde ich sagen 95 Prozent; durch das Refactoring bin ich eigentlich durch jede Funktion durch. Dadurch habe ich auch die ganze Architektur kennengelernt.

Im Frontend aber habe ich fast gar nichts angefasst. Also ein paar Templates … da habe ich mal reingeguckt, Variablennamen geändert. Das ist eigentlich auch das Coole bei unserem Projekt: Durch diesen modularen Aufbau kannst du an der einen Sache rumschrauben und an der anderen Stelle geht nichts kaputt.

FENNEC ist Open Source und liegt auf GitHub … wirst du jetzt, wo du mit der Bachelorarbeit durch bist, dabei bleiben und weiter committen, oder ist das Thema für dich erst mal abgeschlossen?

Sonja: Nö, also ich denke mal, dass ich, so lange ich noch an der Uni bin, bestimmt noch daran weiterarbeiten werde. Ich bin ja jetzt tief in das Projekt eingearbeitet, kann ganz leicht mit den neuen Features weitermachen, also lerne ich auch noch sehr viel.

Welche Features schweben dir vor?

Sonja: Ich wünsche mir noch so eine schöne Profilseite für die User – die gibt es im Moment noch nicht. User können also nicht ihr Passwort ändern, sie können nicht ihren Namen ändern, sie können nicht einmal ein Bild hochladen. Da würde ich mich gern noch so ein bisschen verkünsteln. Außerdem würde ich gerne noch den Upload der User-Traits verbessern.

Wir haben auch so eine Admin-Area, in der Administratoren User und verwalten können. Das würde ich vielleicht noch ein bisschen ausbauen.

Wie bist du eigentlich zu uns gekommen?

Sonja: Zu euch bin ich tatsächlich über das Developer Camp gekommen. Markus kennt Lenz persönlich. Er ist mit zum Barcamp gekommen und hat mich mitgenommen … und dann hab ich euch eben da kennengelernt.

War es schwierig, an der Uni durchzusetzen, deine Arbeit bei uns zu schreiben?

Sonja: Nö, das war eigentlich total einfach. Die Leute an meinem Lehrstuhl sind sehr offen für neue Sachen und wollen das auch unbedingt, dass man ein bisschen mit Unternehmen zusammenarbeitet. Also nicht nur Uni-intern sein eigenes Ding macht, sondern auch ein bisschen über den Tellerrand schaut.

Wie lief die Projektbetreuung; wie seid ihr vorgegangen? Hast du dir selbst Sprints gemacht oder habt ihr im Team gearbeitet?

Sonja: Am Anfang hat mir Lenz geraten, ich solle mir erstmal User Stories überlegen und Story Points vergeben. Das hab ich für die ersten paar Sachen auch noch gemacht, so die ersten sechs Wochen, aber dann hat es das irgendwie … keine Ahnung, habe ich es vernachlässigt. Ich hatte dann immer die paar Aufgaben, an denen ich gerade gearbeitet hatte, im Kopf. Wenn ein Thema abgeschlossen war, dann habe ich mich erstmal mit einem neuen Thema vertraut gemacht und dann sind so die Aufgaben nach und nach alle gekommen.

Am Anfang hat Lenz mir wirklich alles so ein bisschen vorgegeben. So “Guck mal hier” und “Das könnte man jetzt so und so machen” … Er hat mir recht viel gezeigt, auch als ich mehr mit der Umgebung vertraut war und wusste, wo ich nachgucken kann, wenn ich irgendwo eine Funktion ändern muss und das nicht auf Anhieb geklappt hat. Wenn ich dann aber immer noch Fragen hatte, dann hab ich halt einfach Lenz gefragt “Kannst du mal gucken? Tut nicht.”

Oder auch an das eine kann ich mich noch erinnern: Wir haben eine ziemlich komplizierte Architektur mit Docker-Containern und anderen wilden Sachen … irgendwann ging da echt gar nichts mehr: Die Tests haben nicht mehr funktioniert und dann haben mir andere noch geholfen, das wieder zu fixen, vor allen Dingen das Debuggen der Tests.

Wilde Sachen … wo lag das Problem?

Sonja: Es gibt noch ein anderes Projekt, TBro heißt das, von dem wurde der FENNEC am Anfang abgeleitet. Also haben wir uns sehr stark an dem Projekt orientiert, weil das so in etwa gleich aufgebaut ist.

Wir haben einen Docker-Container für die Web-spezifischen Dinge, einen Docker-Container für die normale Datenbank und einen Docker-Container für eine spezielle Test-Datenbank. Wenn ich jetzt debuggen möchte, dann muss ich dieser Test-Umgebung sagen, wo sie lauschen soll und wo die Connection ist und was weiß ich noch alles. Diese Parameter da rein zu bringen … und XDebug war auch nicht installiert. Also es war etwas wild.

Was würdest du jetzt anders machen? Also jetzt, nachdem du durch die komplette Code-Basis durch bist.

Sonja: Also ich würde mich sofort an den Symfony-Prinzipien orientieren und nicht versuchen, da eigene Sachen reinzufriemeln. Und sonst … nein, eigentlich nichts.

Wieviele Leute waren von unserer Seite involviert und haben dir weitergeholfen?

Sonja: Ich schätze mal so drei, vier.

Was hast du für dich mitgenommen?

Sonja: Vor allem die Arbeitsweise, die ich sehr angenehm und beeindruckend finde. Außerdem habe ich viel Handwerkszeug, also vor allem das Debuggen, gelernt – das haben wir vorher nämlich nicht gemacht. Das fand ich auch ganz lustig: Immer, wenn irgendwas nicht geklappt hat, war die erste Antwort: “Ja, geht dein Debugger bei dir?”

Wie geht es für dich weiter, nachdem du deine Bachelorarbeit abgegeben hast?

Sonja: Also erstmal muss ich das Programmier-Praktikum fertig machen, noch Hardware-Praktikum und Software-Praktikum – alles was ich vor mir hergeschoben hab – und dann werde ich voraussichtlich, wenn alles nach Plan läuft, nächstes Jahr im Februar oder so fertig.

Es gibt dann entweder die Möglichkeit, an der Uni zu bleiben oder halt wegzugehen. Wenn ich weggehe, wäre wahrscheinlich meine erste Anlaufstelle Mayflower; an der Uni zu bleiben, wäre nur eine Option, wenn es irgendwie eine Doktorandenstelle oder so gäbe. Was bei mir ein bisschen schwierig ist, weil ich ja nur die zwei Bachelor-Abschlüsse habe und auf einen Master hab ich jetzt nicht unbedingt Lust …

… wieso nicht?

Sonja: Ich will einfach nicht mehr studieren. Was ich gut kann und was mir liegt ist, Projektarbeit. Also ich hab irgendein Projekt und im Rahmen des Projektes eigne ich mir Wissen an. Ich möchte aber nicht in Vorlesungen sitzen und Wissen vorgesetzt bekommen, was ich jetzt lernen muss.

Wie nah ist das Studium an dem, was du dann wirklich in der Projektarbeit machst?

Sonja: Nicht sehr nah. Vor allem fehlt die Gelegenheit, einfach mal was auszuprobieren. In der Informatik gibt’s keine Möglichkeit, ein Praktikum zu machen, bei dem man sich selbst was sucht. Das finde ich sehr schade.

Es gibt zwar die ganzen vorgesetzten Praktika, aber man hat keine Möglichkeit, selbst irgendetwas für sich auszuprobieren und dafür auch eine Leistung anerkannt oder irgendwas angerechnet zu bekommen.

Ich finde auch die Softwareentwicklung, wie sie dort gelehrt wird, sehr steif. Man arbeitet Wissensbücher durch und weiß, wie es theoretisch funktioniert, aber man hat keine Erfahrung damit, wie man was jetzt in einem Team umsetzen kann.

Habt ihr bei Mayflower oder im Studium gepaired?

Sonja: Nein, nicht direkt. Also mit Markus habe ich wirklich ein bisschen Pair-Programming gemacht, in der letzten Woche auch, weil wir nochmal refactored haben. Da haben wir das im 10-Minuten-Takt gemacht: Der eine tippt, der andere gibt vor, was gemacht werden soll und dann wird gewechselt.

— Studenten bei Mayflower —

Du möchtest Deine Bachelor- oder Masterarbeit bei uns schreiben? Dein Praktikum bei uns absolvieren? Oder als Werkstudent das Entwicklerleben kennenlernen? Kein Problem: Lerne uns kennen!

Gab es noch weitere Best Practices?

Sonja: Ja, getestet haben wir, aber das ist ja eher so Code-Best-Practice …

Darüber hinaus haben wir nicht direkt User-Stories entwickelt, aber wir haben uns überlegt, welche Aufgaben wir haben und versucht, die in eine möglichst sinnvoll gewichtete Reihenfolge zu bringen. Aber sonst eigentlich wenig … also nicht so schön wie hier. Also ich hab das bei ein paar Meetings mitbekommen: Da wird mit Post-Its alles so schön aufgeklebt – sowas haben wir nicht gemacht.

Fehlt das im Studium, dass ihr wirklich auch mal ein Projekt komplett agil durchzieht?

Sonja: Ja, das fehlt schon. An dem Lehrstuhl, an dem ich bin, haben wir es versucht; aber mit zwei Leute ist das irgendwie schwierig umsetzbar, weil es eben oft so ist, dass eine Person an einem Projekt arbeitet und es kaum Projekte gibt, an denen vier, fünf Leute arbeiten.

Wieso ist das so?

Sonja: Weil einfach das Geld fehlt. Teilweise, um Entwickler oder Doktoranten oder so einzustellen. Doktoranden haben dann ihr spezielles Doktorarbeitsprojekt, an dem sie rumwurschteln, und wenn sie irgendwann fertig sind, bleibt es meistens liegen, landet auf dem Projektfriedhof.

Fühlst du dich eigentlich eher in der Backend-Entwicklung daheim oder verortest du dich eher im Frontend?

Sonja: Also vor FENNEC dachte ich, ich wäre eher so der Frontend-Mensch. Jetzt kann ich auch sagen, dass ich Backend-Mensch bin. Im Frontend habe ich vielleicht zehn Prozent gemacht; ein kleines Dropdown-Menü, das war’s schon. Und ich muss sagen, dass ich auch ein bisschen Schiss vor PHP und dem ganzen Backend-Zeug hatte. Ich dachte, das klappt doch nie und wie soll man das testen und überhaupt und alles …

Ich muss sagen, dass ich echt erstaunt bin, dass das doch so einfach ist. Ich habe so ein bisschen die Scheu davor verloren, Backend-Geschichten zu machen. Das heißt, ich sehe mich eigentlich in beiden Bereichen.

Gibt es irgendwelche Technologien, wo du sagst “Hey, da würde ich in Zukunft gern mal hin”?

Sonja: Tatsächlich würde mich Machine Learning interessieren. Ich habe schon viel davon gehört, aber noch keine Zeit gehabt, mich damit selbst groß auseinanderzusetzen. Ansonsten lass ich mich davon überraschen, was so auf mich zukommt.

Für neue Blogupdates anmelden:


2 Gedanken zu “FENNEC – das Projekt zur Bachelorarbeit

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.