Die Variant Transforms-Pipeline bietet die Möglichkeit, VCF-Dateien zu transformieren und direkt in BigQuery zu laden.
BigQuery kann auch verwendet werden, um mit Hunderten oder Tausenden von Computern gleichzeitig interaktive Ad-hoc-Abfragen von genomischen Varianten durchzuführen.
Sie können mit BigQuery auch bereits vorhandene veröffentlichte Datasets durchsuchen, die von Cloud Life Sciences nach BigQuery exportiert wurden.
Nomenklatur
Für ein besseres Verständnis der Exportformate und -schemas wird empfohlen, sich mit der von uns verwendeten Terminologie vertraut zu machen.
Genomische Nomenklatur
- Probe
- DNA, die unter einer Kennzeichnung erfasst und verarbeitet wird. Eine Probe bezieht sich in der Regel auf einen einzelnen Organismus. Es gibt aber auch heterogene Proben wie beispielsweise bei einem Mundhöhlenabstrich.
- Referenzname
- Der Name eines Referenzsegments der DNA. Hierbei handelt es sich in der Regel um ein Chromosom. Es kann sich aber auch um andere benannte Regionen aus einem Referenzgenom handeln.
- Variante
- Eine Region des Genoms, die als vom Referenzgenom abweichend identifiziert wurde. Eine Variante muss einen Referenznamen, eine Startposition, eine Endposition und mindestens eine Referenzbase haben.
- Nicht-Varianten-Segment
Eine Region des Genoms, die mit dem Referenzgenom übereinstimmt. Sie wird mitunter als "Referenzsegment" bezeichnet. Bisher kamen in genomischen Daten keine Nicht-Varianten-Segmente mit Varianten vor.
Weitere Informationen zu Nicht-Varianten-Segmenten finden Sie in der gVCF-Dokumentation.
- Aufruf
Ein in einer einzelnen Probe identifiziertes Vorkommen einer Variante oder eines Nicht-Varianten-Segments. Ist gleichzusetzen mit der Bestimmung des Genotyps in Bezug auf eine bestimmte Variante und kann zugehörige Informationen wie Qualität und Phase enthalten.
- INFO-Felder
Optionale Felder, die den Varianten- und Aufrufinformationen hinzugefügt werden. So haben zwar beispielsweise alle Aufrufe ein Feld
genotype
, aber nicht alle Datasets haben ein Feld für "Genotypqualität" (GQ
). Daher ist das Feldgenotype
ein fester Bestandteil des VariantCall-Schemas, das FeldGQ
ist jedoch nicht vorhanden. Das FeldGQ
und der entsprechende Wert können als Schlüssel-Wert-Paare in dasinfo
-Feld von VariantCall importiert werden.
Weitere Informationen zur genomischen Nomenklatur finden Sie in den folgenden Dokumenten:
BigQuery-Nomenklatur
- Einfache Felder
- Einfache Datenelemente in einer BigQuery-Tabelle, z. B. Zahlen und Strings.
- Verschachtelte Felder
- Komplexe Datenelemente in einer BigQuery-Tabelle. Ein verschachteltes Feld kann mehrere Felder enthalten, die wiederum einfach oder verschachtelt sein können.
- Wiederkehrende Felder
- Felder in einer BigQuery-Tabelle, die mehrere Werte annehmen können, z. B. eine Liste. Wiederkehrende Felder können einfach und verschachtelt sein.
Weitere Informationen zu den komplexen Datentypen von BigQuery finden Sie in der Dokumentation zu verschachtelten und wiederkehrenden Feldern in Standard-SQL.
Struktur der Variantentabelle
Der Name der BigQuery-Tabelle wird angegeben, wenn Sie die Variant Transforms-Pipeline ausführen. Standardmäßig lautet der Name dieser Tabelle variants
.
Eintragsstruktur der Variantentabelle
Die Einträge der oberen Ebene der variants
-Tabelle können Varianten und Nicht-Varianten-Segmente sein. Jeder Eintrag in der variants
-Tabelle enthält einen oder mehrere Aufrufe.
In der folgenden Tabelle wird diese Struktur verdeutlicht. Sie enthält zwei Varianteneinträge, nämlich Variant1 und Variant2. In diesem Dataset gibt es drei Proben: Sample1, Sample2 und Sample3. Variant1 wurde für Sample1 und Sample2 aufgerufen, Variant2 für Sample1 und Sample3.
Variant1 | Sample1 Sample2 |
Variant2 | Sample1 Sample3 |
… | … |
Feldstruktur der Variantentabelle
Jede variants
-Tabelle enthält einen festen und einen variablen Satz an Feldern. Die allgemeine Struktur der Tabelle sieht so aus:
Feste Felder für Variante | Aufruf | INFO-Felder für Variante |
… | Feste Felder für Aufruf INFO-Felder für Aufruf | … |
Als Namen der variablen Felder dienen jeweils die Schlüssel der INFO-Felder von VariantResource und die Schlüssel der INFO-Felder von VariantCall.
Feste Felder der Variantentabelle
Feste Felder auf Eintragsebene (Variante):
- reference_name
- start_position
- end_position
- reference_bases
- alternate_bases
- names
- quality
- filter
Feste Felder auf Aufrufebene (VariantCall):
- name
- genotype
- phaseset
Beispiel
Beim Laden der Daten von 1000 Genomes in BigQuery wurde auch die VCF-Datei ALL.chrY.phase3_integrated_v1a.20130502.genotypes.vcf importiert.
Diese Datei enthält eine Reihe von INFO-Feldern auf Varianten- und Aufrufebene, wie in den Anweisungen zu INFO- und FORMAT-Header beschrieben:
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype"> ##FORMAT=<ID=GP,Number=G,Type=Float,Description="Genotype likelihoods"> ##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality"> ##FORMAT=<ID=FT,Number=1,Type=String,Description="Per-sample genotype filter"> ##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification"> [[trimmed]] ##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral allele"> ##INFO=<ID=AC,Number=A,Type=Integer,Description="Total number of alternate alleles in called genotypes"> ##INFO=<ID=AF,Number=A,Type=Float,Description="Estimated allele frequency in the range (0,1]"> ##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of samples with data"> [[trimmed]]
Beim Laden dieser Datei in BigQuery wurden die als INFO gekennzeichneten Felder wie AC
und AF
den Variantenressourcen als INFO-Felder hinzugefügt.
Beim Laden der Datei in BigQuery wurden die als FORMAT gekennzeichneten Felder, z. B. die Felder GP
und GQ
, den VariantCall-Ressourcen als INFO-Felder hinzugefügt. Das FORMAT-Feld GT
wurde nicht als INFO-Feld hinzugefügt. Stattdessen wurde der Wert in das Feld genotype
konvertiert.
In der BigQuery-UI werden die folgenden festen Felder mit dem Schema angezeigt:
Schema | |||
---|---|---|---|
reference_name | STRING | NULLABLE | Referenzname |
start_position | INTEGER | NULLABLE | Startposition (0-basiert). Entspricht der ersten Base des Referenzbasenstrings. |
end_position | INTEGER | NULLABLE | Endposition (0-basiert). Entspricht der ersten Base nach der letzten Base im Referenzallel. |
reference_bases | STRING | NULLABLE | Referenzbasen. |
alternate_bases | RECORD | REPEATED | Ein Eintrag für jede alternative Base (falls vorhanden). Siehe Zusätzliche alternate_bases -Eintragsinformationen. |
alternate_bases.alt | STRING | NULLABLE | Alternative Base |
names | STRING | REPEATED | Variantennamen (z. B. RefSNP-ID). |
quality | FLOAT | NULLABLE | Phred-skalierter Qualitätsfaktor (-10log10 prob(call is wrong)). Höhere Werte bedeuten bessere Qualität. |
filter | STRING | REPEATED | Liste fehlgeschlagener Filter (falls vorhanden) oder "PASS", wenn die Variante alle Filter erfolgreich durchlaufen hat |
call | RECORD | REPEATED | Ein Eintrag pro Aufruf. |
Schließlich die variablen Felder (INFO-Felder):
Schema | |||
---|---|---|---|
call.name | STRING | NULLABLE | Name des Aufrufs. |
call.genotype | INTEGER | REPEATED | Genotyp des Aufrufs. "-1" wird verwendet, wenn der Genotyp nicht aufgerufen wird. |
call.phaseset | STRING | NULLABLE | Phasenset des Aufrufs, falls vorhanden. "*" wird verwendet, wenn der Genotyp phasenverschoben ist, aber kein Phasenset ("PS" in FORMAT) angegeben wurde. |
Zusätzliche alternate_bases
-Eintragsinformationen
Der Eintrag alternate_bases
enthält ein beliebiges INFO
-Feld mit Number=A
. Dies vereinfacht die Abfrage, da die einzelnen Felder nicht dem entsprechenden alternativen Eintrag zugeordnet werden müssen. Sie können auch die vorherige BigQuery-Schemaversion verwenden, bei der die Number=A
-Felder von alternativen Basen unabhängig sind. Übergeben Sie dafür das Flag --split_alternate_allele_info_fields
und setzen Sie es auf False
, wenn Sie das Tool Variant Transforms ausführen.
Einträge automatisch teilen
Einträge mit einer großen Zahl von Aufrufen, die dazu führen, dass die Größe einer BigQuery-Zeile 100 MB übersteigt, werden vom Tool Variant Transforms automatisch in mehrere Zeilen geteilt. Die entstehenden Zeilen sind dann jeweils kleiner als 100 MB. Dieses Vorgehen ist aufgrund der für BigQuery gültigen Beschränkung auf 100 MB pro Zeile erforderlich.
Nullwerte
Enthalten wiederkehrende Felder vom Typ "float" oder "integer" einen Nullwert, kann das BigQuery-Schema nicht erstellt werden. In BigQuery sind keine Nullwerte in wiederkehrenden Feldern zulässig. Der gesamte Eintrag kann null sein, aber die Werte innerhalb des Eintrags dürfen nicht null sein.
Beispiel:
Das INFO-Feld einer VCF-Datei hat die Werte
1,.,2
. Das Tool Variant Transforms kann1,null,2
nicht in BigQuery laden.Stattdessen muss der Nullwert durch einen numerischen Wert ersetzt werden. Der Ersatzwert ist standardmäßig
-2^31
oder-2147483648
.
Um einen benutzerdefinierten numerischen Wert festzulegen, übergeben Sie das Flag --null_numeric_value_replacement
mit einem Wert, wenn Sie das Tool Variant Transforms ausführen.
Alternativ können Sie Nullwerte in einen String umwandeln und .
als Wert verwenden. In diesem Fall muss der Header als String
angegeben werden.