Git und Github sind Code-Repositorys, die in den Biowissenschaften, einschließlich der Pflanzenwissenschaften, immer wichtiger werden. Sie sind sich nicht sicher, was Git und Github sind und warum es ein fantastisches Tier (Octocat) als Titelbild dieses Beitrags in einem botanischen Blog gibt? Lesen Sie weiter mit diesem Gespräch mit Tjelvar Olsson, Manager für wissenschaftliche Datenverarbeitung am John Innes Centre.

Ian-Straße: GitHub wird unter Wissenschaftlern immer häufiger erwähnt. Für diejenigen, die es nicht wissen (wie ich), was ist das?

Tjelvar Olsson: GitHub ist ein Cloud-basierter Dienst zum Hosten von Quellcode von Open-Source-Software. Es ist eine der beliebtesten Websites für diesen Zweck.

IST: OK Cool! Inwiefern ist Quellcode-Hosting für Biologen relevant?

An: Zwei Hauptgründe: Erstens wird die Biologie zunehmend datengetrieben. Sequenzierung, Bioimaging und andere Techniken erzeugen riesige Datenmengen. Das Extrahieren biologischer Erkenntnisse aus diesen Daten erfordert häufig eine geskriptete Datenanalyse und Computerprogramme. Der Quellcode dieser Datenanalyse-Tools ist daher für Biologen direkt relevant. Zweitens dreht sich in der Wissenschaft alles um Reproduzierbarkeit. Durch den Zugang zum Quellcode wird die Forschung (leichter) reproduzierbar.

IST: Ja, Reproduzierbarkeit in der Wissenschaft ist ein großes Problem, und ein ziemlich heikles Thema.

An: Ja ist es. Ein großes Problem beim Scripting und Programmieren ist, dass man sehr leicht Fehler macht. Manchmal macht dies das Skript einfach kaputt, so dass es nicht mehr funktioniert, aber manchmal gibt es grundlegende Fehler, die zu irreführenden Ergebnissen führen. Im letzteren Fall muss man den genauen Code kennen, der verwendet wird, um die Ergebnisse zu erzeugen.

IST: Wie können wir auf den Code anderer zugreifen?

An: Nun, das ist das erste Problem, das Github löst – es ermöglicht Menschen, ihren Code mit der Welt zu teilen.

IST: Löst das das Problem zu wissen, wie die Ergebnisse zustande gekommen sind?

An: Nicht unbedingt. Angenommen, ich habe eines meiner Skripts verwendet, um einige Daten zu analysieren. Diese Daten werden dann in einem Manuskript verwendet. Das Schreiben ist jedoch oft mühsam und braucht Zeit. Inzwischen habe ich eine clevere Idee, die ich ausprobieren möchte. Also bearbeite ich mein Skript und experimentiere ein bisschen. An diesem Punkt sind die für das Manuskript generierten Daten nicht mehr synchron mit dem Quellcode in meinem Skript, und wenn ich die Versionskontrolle nicht verwende, habe ich große Probleme.

IST: Bei der Versionskontrolle geht es also darum, Änderungen im Quellcode zu verfolgen?

An: Das ist richtig. Da sich die Softwarebranche schon lange mit diesen Problemen der Reproduzierbarkeit konfrontiert sieht, wenn auch in einem etwas anderen Kontext, wurden Tools entwickelt, um das Problem zu lösen. Die Versionskontrolle ist eines dieser Werkzeuge. Sie können es sich als unendliche „Rückgängig“-Schaltfläche vorstellen, mit der Sie zu früheren Versionen Ihres Codes zurückkehren können.

IST: Wie Google Docs, das den gesamten Verlauf eines Dokuments führt. GitHub ist also ein Versionskontrolltool?

An: So'ne Art. Das betreffende Versionskontrolltool heißt eigentlich Git. Git wurde von Linux Torvalds entwickelt, der Person, die Linux entwickelt hat, das Betriebssystem, auf dem die meisten Bioinformatik-Programme laufen. Git ist eines der beliebtesten Versionskontrollprogramme, was bedeutet, dass es von vielen Open-Source-Projekten und Softwareunternehmen verwendet wird. Wenn Sie also ein Wissenschaftler sind, der sich eine wertvolle übertragbare Fähigkeit aneignen möchte, lohnt es sich zu lernen, wie man sie anwendet.

IST: Wie passen Git und GitHub zusammen?

An: Git ist ein Mittel, um Ihren Quellcode unter Versionskontrolle in einem sogenannten „Repository“ zu halten, im Grunde ein Verzeichnis mit Dateien. Mit GitHub können Sie Ihr Repository online hosten und erhalten Zugriff auf den Quellcode und alle in seinem Verlauf gespeicherten Snapshots, dh alle Versionen des Codes.

IST: Das klingt etwas kompliziert. Ist es schwierig, Git/GitHub zu verstehen und zu verwenden?

An: Nein, es ist eigentlich ganz einfach. Sie benötigen nur eine Handvoll Befehle, um loszulegen. Okay, Sie müssen also in der Lage sein, die Befehlszeile zu verwenden, aber wenn Sie Datenanalyseskripte ausführen und/oder erstellen, ist das wahrscheinlich nicht neu für Sie.

IST: Wie viel kostet die Nutzung von Git und GitHub?

An: Git ist Open-Source-Software, also kostenlos. Wenn Sie einen Mac verwenden, ist dieser wahrscheinlich bereits auf Ihrem Computer installiert. GitHub ist auch kostenlos, wenn Sie Ihren Code mit der Welt teilen. Darum geht es hier! Das Hosten Ihrer Skripte auf GitHub ist auch eine ideale Möglichkeit, Ihren Code zu sichern.

IST: Kann ich meine Daten auch auf GitHub sichern?

An: Nein, das solltest du nicht tun. Bei GitHub geht es darum, Ihren Code zu teilen und zusammenzuarbeiten. Es ist kein Datenspeicher. Tatsächlich können Sie keine Dateien hochladen, die größer als 100 MB sind.

IST: Okay, bei GitHub geht es also um Quellcode und nicht um Daten. Sie haben jedoch gerade erwähnt, dass es bei GitHub um Zusammenarbeit geht. Könntest du das weiter erläutern?

An: Natürlich. Bisher haben wir über Reproduzierbarkeit gesprochen, weil sie Wissenschaftlern große Sorgen bereitet und eines der Probleme ist, die Git löst. Leute, die Software entwickeln, haben jedoch auch ein Problem mit der Zusammenarbeit am Code. Wenn zwei Personen dieselbe Datei bearbeiten, wie können diese Änderungen zusammengeführt werden? Es ist analog zu dem Problem, mit dem der Hauptautor konfrontiert ist, der versucht, die unterschiedlichen Änderungen zu integrieren, die von seinen Mitarbeitern bereitgestellt wurden. Git bietet Tools zur Lösung dieser Art von Problemen und GitHub bietet eine einfache Möglichkeit für Personen, an demselben Projekt zusammenzuarbeiten, indem ihnen überall dort, wo sie eine Internetverbindung haben, Zugriff auf das Git-Repository gewährt wird.

IST: Das klingt alles großartig. Was sind einige gute Ressourcen, um etwas über Git zu lernen?

An: Es gibt einen guten Artikel von John D. Blischak, Emily R. Davenport und Greg Wilson in PLOS Computational Biology mit dem Titel „A Quick Introduction to Version Control with Git and GitHub“ (10.1371/journal.pcbi.1004668). Es gibt auch einen kostenlosen Online-Git-Kurs auf Codecademy (Lerne Git). Mein Buch, Leitfaden für Biologen zum Rechnen hat Kapitel sowohl auf Git (Den Überblick über Ihre Arbeit behalten) und GitHub (Mitarbeit an Projekten). Viel Spaß beim Codieren!

Tjelvar Olsson ist ein Biologe, der sich der Informatik verschrieben hat.

Er absolvierte sein Bachelor- und Doktorstudium in Biochemie. Während seiner Promotion verlagerte er seinen Schwerpunkt von der Laborarbeit hin zur computergestützten Datenanalyse. Dieser Prozess war größtenteils von Versuch und Irrtum geprägt und mitunter recht mühsam. Damals gab es nur wenige Ressourcen, die Biologen den Umgang mit Computern erleichterten.

Nach seiner Promotion wollte er mehr über professionelle Softwareentwicklung (und Chemie) lernen und nahm eine Stelle als Anwendungswissenschaftler am Cambridge Crystallographic Data Centre an. Dort arbeitete er an Projekten zur Entwicklung von Software und Datenbanken für die pharmazeutische Industrie. In dieser Zeit hatte er das Glück, mit großartigen Menschen zusammenzuarbeiten und lernte viel über Programmierung, Best Practices und Softwareentwicklungsprozesse.

Nach sechs Jahren wurde die Faszination der Biologie und der akademischen Welt zu groß, und er nahm eine Stelle als Leiter eines wissenschaftlichen Rechenlabors am John Innes Centre an. Dort verbringt er einen Großteil seiner Zeit mit der Entwicklung wissenschaftlicher Software und der Automatisierung wissenschaftlicher Dienstleistungen.