Einführung in die Nutzung von Workspaces und GP2-Daten

September 2, 2022

Von GP2-Arbeitsgruppe Complex Disease - Data Analysis (Komplexe Krankheit - Datenanalyse)

Graphic with a blue-to-green gradient background featuring the text: "How to Analyze GP2 Data on Terra" in bold white letters. Below the text, part of a computer screen is visible, displaying the "Welcome to Terra Community Workbench."

Die Daten, die im Rahmen des Global Parkinson’s Genetics Program (GP2) sowie der Accelerating Medicines Partnership in Parkinson’s Disease (AMP® PD) generiert werden, werden auf Terra gehostet, einer Cloud-Plattform für Bioinformatik, die das Broad Institute gemeinsam mit Microsoft und Verily entwickelt hat. Mit Terra lassen sich Analysen direkt in der Cloud durchführen, so dass man keine Daten mehr auf den eigenen Computer herunterladen muss. So können wir die hohen Anforderungen an Datenschutz und Vertraulichkeit erfüllen und mittels strukturiertem, gemeinsam nutzbarem Code und Ergebnisbestand eine offene Wissenschaft und Reproduzierbarkeit ermöglichen.

Terra unterstützt zwei Arten von Analysen: Jupyter Notebooks und WDL Workflows. Notebooks sind in Zellen unterteilte Dokumente, die Codeschnipsel enthalten, mit denen man sequenzielle Analysen durchführen kann. Notebooks unterstützen verschiedene Sprachen, darunter Python. Sie eignen sich für eine Reihe von Analysen und bieten hervorragende Möglichkeiten zur Visualisierung und Dokumentation. Eventuell stellen Sie jedoch irgendwann fest, dass Sie mehr Rechenleistung oder eine längere Laufzeit für Ihre Analysen benötigen, als ein Notebook ermöglicht. In diesem Fall können Sie alternativ einen Terra-Workflow nutzen. Diese Workflows werden in der Sprache WDL (ausgesprochen „widdle“) erstellt und genau wie Batch-Aufträge an einen beliebigen Cloud-Server übermittelt. Sie sind nützlich für rechenintensive Analysen wie Alignments oder GWAS mit umfangreichen Stichproben.

Beispiel einer Notebook-Struktur

Ein Screenshot eines Jupyter-Notebook-Beispiels mit dem Titel „Notebook-Beispiel“. Die erste Zelle importiert nützliche Python-Pakete, insbesondere Pandas als pd und Numpy als np. Die zweite Zelle definiert eine einfache Rechenoperation x = 4 + 7 und druckt das Ergebnis, das 11 ist. Die dritte Zelle druckt die Meldung „Notebooks sind großartig für die Visualisierung und Reproduzierbarkeit von Analysen.“

Beispiel einer WDL-Struktur

Ein Screenshot einer Codierungsschnittstelle für einen Workflow mit dem Titel „print-my-name“. Das angezeigte Skript ist ein einfaches Beispiel, das einen Workflow namens PrintName und eine Aufgabe namens Hallo definiert, die einen Vor- und Nachnamen als Eingabe verwendet und „Hallo [Vorname] [Nachname]!“ ausgibt.

Wenn Sie Zugriff auf GP2-Daten erhalten, erhalten Sie auch Zugriff auf die offiziellen GP2 Terra-Arbeitsbereiche. In beiden Workspaces – Tier 1 und Tier 2 – findet sich die README-Datei zur jeweils aktuellsten GP2-Datenversion (Release). Es empfiehlt sich sehr, diese zu lesen, da sie Erläuterungen zu allen Dateien aus der jeweiligen Version enthält. Schauen Sie regelmäßig in diese Workspaces, denn dort werden nach und nach neue entwickelte Code-Ressourcen, Notebooks und Workflows zu GP2-Daten eingestellt.

Ein Screenshot mit dem Titel „Willkommen bei GP2 Tier 1!“ enthält Anweisungen zum Einrichten eines Arbeitsbereichs zum Zugreifen auf und Analysieren von GP2-Daten. Er beschreibt die Schritte zum Erstellen eines Arbeitsbereichs, einschließlich des Klonens des Arbeitsbereichs über das „Schneemann“-Menü (drei Punkte in einem Kreis) oben rechts, der Auswahl eines Abrechnungsprojekts und des Ausführens eines Notebooks mit dem Titel „Erste Schritte mit GP2 Tier 1-Daten“. Der Screenshot erwähnt auch einen GP2 Tier 1 GCP-Speicher-Bucket und bietet den Speicherpfad sowie Informationen zu einem Notebook, das zum Ziehen von Daten aus dem GCP-Bucket in den Arbeitsbereich verfügbar ist.

Um zu beginnen, müssen Sie eine Projektidee zur Prüfung an GP2 senden. Wird diese genehmigt, so erstellt Ihr Institut ein Abrechnungsprojekt und einen Workspace. Alternativ erledigt GP2 das in Ihrem Namen. Wenn der Workspace einmal eingerichtet ist, können Sie beginnen und ein neues Notebook für Ihre Analyse anlegen. Um ein Notebook auszuführen, müssen Sie eine Cloud-Umgebung einrichten. Diese Cloud-Umgebung können Sie nach Ihren Bedürfnissen anpassen. Wenn Sie jedoch planen, alle derzeit verfügbaren imputierten GP2-Daten zu komplexen Krankheiten zu verwenden, sollten Sie mindestens 100 GB persistente Speicherkapazität anfordern, damit Sie über genügend Platz verfügen, um mit den 82 GB Daten (ab Release 2.0) zu arbeiten. Man kann immer ein wenig mit den Optionen spielen, um zu sehen, was am besten funktioniert. Bedenken Sie aber bitte, dass mehr Ressourcen auch mit höheren Kosten verbunden sind.

Beispiel einer Cloud-Umgebung

Ein Screenshot einer Konfigurationsschnittstelle für eine Cloud-Umgebung. Sie zeigt Optionen zum Einrichten eines Cloud-Compute-Profils, einschließlich der Auswahl der Anzahl der CPUs, des Arbeitsspeichers (GB) und der Frage, ob GPUs aktiviert werden sollen. Sie enthält Felder für ein Startskript und die Auswahl des Compute-Typs (z. B. Standard-VM). Es gibt eine Option zum Aktivieren der automatischen Pause nach einer bestimmten Zeit der Inaktivität, und der Benutzer kann den Speicherort für die virtuelle Maschine auswählen. Die Schnittstelle enthält auch einen Abschnitt zum Konfigurieren einer persistenten Festplatte, in dem der Benutzer den Festplattentyp und die Festplattengröße in GB angeben kann. Die Kosten für das Ausführen oder Anhalten von Cloud-Computing und Festplattenspeicher werden oben angezeigt.

Sobald Ihre Cloud-Umgebung läuft und ein neues Notebook eingerichtet ist, können Sie mit der Analyse beginnen. Für die Einrichtung Ihres Notebooks finden Sie weiter unten bzw. in den offiziellen GP2-Workspaces einige praktische Pakete und Variablen, die Sie nutzen können.

Nützliche Pakete

Ein Screenshot eines Python-Skripts zum Importieren verschiedener Pakete und Bibliotheken. Der Code enthält Importe für die Systeminteraktion (os, sys), Datenmanipulation mit Pandas (pandas), Visualisierung mit Seaborn (seaborn), NumPy für numerische Operationen (numpy) und Matplotlib zum Plotten (matplotlib). Weitere Importe umfassen StringIO zum Verarbeiten von String-Eingaben, FireCloud API-Interaktion (firecloud.api) und Tools zum Arbeiten mit Google Cloud-Diensten, wie BigQuery zum Abfragen von Daten und urllib.parse zum Erstellen von URLs. Es gibt auch Importe zum Anzeigen von HTML mit IPython. Die Struktur des Skripts richtet die Umgebung für die Datenanalyse und -visualisierung ein.

Umgebungs-SetupEin Screenshot eines Python-Skripts zum Einrichten von Abrechnungsprojekt- und Arbeitsbereichsvariablen. Das Skript verwendet Umgebungsvariablen, um die Abrechnungsprojekt-ID, den Arbeitsbereichs-Namespace, den Arbeitsbereichsnamen und den Arbeitsbereichs-Bucket zu definieren. Es weist diese Variablen mithilfe von os.environ zu, um auf die entsprechenden Umgebungseinstellungen zuzugreifen: GOOGLE_PROJECT, WORKSPACE_NAMESPACE, WORKSPACE_NAME und WORKSPACE_BUCKET. Darüber hinaus ruft das Skript Arbeitsbereichsattribute mithilfe von fapi.get_workspace() ab und speichert das Ergebnis in der Variable WORKSPACE_ATTRIBUTES, wobei auf die Attribute in der JSON-Antwort zugegriffen wird. Dieses Setup ist nützlich für die Verwaltung cloudbasierter Ressourcen in einer Arbeitsbereichsumgebung.

Verfügbare Daten anzeigen und Daten aus der Cloud in Ihren Arbeitsbereich übertragen können Sie mit dem Toolset gsutil. Um beispielsweise die im Bucket gp2tier2 verfügbaren Daten aufzulisten, können Sie einen Befehl wie diesen verwenden

Speicher-Bucket. Der Befehl lautet: bash Code kopieren ! gsutil ls gs://gp2tier2/release2_06052022/ Dieser Befehl verwendet gsutil, ein Tool zur Interaktion mit Google Cloud Storage, um den Inhalt des Buckets „gp2tier2“ aufzulisten, insbesondere im Verzeichnis „release2_06052022“.

Hier werden alle verfügbaren Dateien im Release 2-Ordner aufgelistet.

Ein Screenshot einer Terminalbefehlsausgabe, die den Inhalt eines Google Cloud Storage-Bucket-Verzeichnisses auflistet: „gp2tier2/release2_06052022/“. Die aufgelisteten Verzeichnisse und Dateien umfassen: README_release2_06052022.txt clinical_data/ cnvs/ (copy number variants) imputed_genotypes/ meta_data/ raw_genotypes/ summary_statistics/ Jede Zeile beginnt mit „gs://gp2tier2/release2_06052022/“ und gibt den Google Cloud Storage-Pfad für jede Datei oder jedes Verzeichnis in dieser Datenfreigabe an.

Sie können die Pfade ändern, um in jedes Verzeichnis zu schauen. Wenn Sie beispielsweise den Pfad zu diesem ändern,

Ein Screenshot eines Terminalbefehls, mit dem die in einem bestimmten Verzeichnis in einem Google Cloud Storage-Bucket verfügbaren Daten aufgelistet werden. Der Befehl lautet: bash Code kopieren ! gsutil ls gs://gp2tier2/release2_06052022/imputed_genotypes/ Dieser Befehl verwendet gsutil, um den Inhalt des Verzeichnisses „imputed_genotypes“ im Bucket „gp2tier2/release2_06052022“ aufzulisten.

Es listet die Ordner für die imputierten Genotypdaten auf, getrennt nach der vorhergesagten Abstammung

Ein Screenshot einer Terminalbefehlsausgabe, die die Verzeichnisse im Ordner „imputed_genotypes“ des Google Cloud Storage-Buckets „gp2tier2/release2_06052022/“ auflistet. Die Verzeichnisse umfassen: AAC AFR AJ AMR CAS EAS EUR SAS Jede Zeile beginnt mit „gs://gp2tier2/release2_06052022/imputed_genotypes/“, gefolgt vom Verzeichnisnamen.

Wenn Sie sich für die benötigten Dateien entschieden haben, können Sie diese wie folgt in Ihren Arbeitsbereich kopieren:

Erstellen Sie zunächst ein Verzeichnis, in das Sie die Dateien kopieren möchten.

Ein Screenshot eines Terminalbefehls zum Erstellen eines neuen Verzeichnisses. Der Befehl lautet: ! mkdir gp2_data Dieser Befehl verwendet die Funktion mkdir, um ein neues Verzeichnis mit dem Namen „gp2_data“ zu erstellen. Der Hintergrund ist ein dunkles Terminalfenster, in dem der Befehlstext deutlich angezeigt wird.

Kopieren Sie sie dann in Ihr neues Verzeichnis. In diesem Beispiel kopieren wir PD-Zusammenfassungsstatistiken von Nalls et al. 2019 ohne 23andMe-Daten.

Ein Screenshot eines Terminalbefehls, mit dem eine Datei aus einem Google Cloud Storage-Bucket in ein lokales Verzeichnis kopiert wird. Der Befehl lautet: ! gsutil cp gs://gp2tier2/release2_06052022/summary_statistics/META5_no23_with_rsid2.txt gp2_data/ Dieser Befehl verwendet gsutil cp, um die Datei „META5_no23_with_rsid2.txt“ aus dem Verzeichnis „summary_statistics“ im Google Cloud Storage-Bucket in das lokale Verzeichnis „gp2_data“ zu kopieren. Die Datei enthält zusammenfassende Statistiken von Nalls et al., 2019, ohne Daten von 23andMe.

Überprüfen Sie anhand der Datei, ob alles richtig kopiert wurde:

Ein Screenshot eines Terminalbefehls, mit dem der Inhalt einer Datei überprüft wird. Der Befehl lautet: ! head gp2_data/META5_no23_with_rsid2.txt Dieser Befehl verwendet die Head-Funktion, um die ersten Zeilen der Datei „META5_no23_with_rsid2.txt“ im Verzeichnis „gp2_data“ anzuzeigen. Die Datei enthält wahrscheinlich zusammenfassende Statistiken aus einer genetischen Studie und der Befehl ermöglicht eine schnelle Vorschau ihres Inhalts.Ein Screenshot, der die Ausgabe eines Terminalbefehls zeigt, der die ersten Zeilen einer Datendatei anzeigt. Die Tabelle enthält die folgenden Spalten: MarkerName, Allele1, Allele2, Freq1, FreqSE, MinFreq, MaxFreq, Effect, StdErr, P-value, Direction, HetISq, HetChiSq, HetDf, HetPVal und ID. Die in der Tabelle angezeigten Daten liefern Informationen zu genetischen Markern, ihren Allelfrequenzen, statistischen Effekten und P-Werten. Beispielzeilen: chr10:100000625 mit Allel1 „a“ und Allel2 „g“, Frequenzdaten, Effektgröße, Standardfehler und P-Wert. chr10:100000645 mit Allel1 „a“ und Allel2 „c“, ähnliche Daten dargestellt. Diese Ausgabe stellt zusammenfassende Statistiken aus einer genetischen Studie dar.

Jetzt sind Ihre Daten zur Analyse bereit!


Dies war nur ein kurzes Beispiel für das Arbeiten in Workspaces und Notebooks mit GP2-Daten. Ein ausführlicheres Terra-Tutorial finden Sie im GP2 Learning Management System. Dort können Sie Kurs 1 absolvieren: Einsatz von Terra für Datenzugriff und Durchführung von Analysen

Treffen Sie die Autoren

GP2-Arbeitsgruppe Complex Disease - Data Analysis (Komplexe Krankheit - Datenanalyse)