Auf dieser Seite wird die Struktur des in BigQuery generierten Schemas erläutert, wenn Sie das Tool Variant Transforms verwenden. Lesen Sie diese Seite, wenn Sie das Tool Variant Transforms verwenden, um VCF-Dateien direkt in BigQuery zu transformieren und zu laden, und wenn Sie verstehen möchten, wie die Exporttabelle aufgebaut ist.
Nomenklatur
Machen Sie sich mit den folgenden Begriffen vertraut, um die Exportformate und -schemas zu verstehen.
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. Der Referenzname ist in der Regel 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 die folgenden Attribute haben:
- Referenzname
- Startposition
- Endposition
- Eine oder mehrere Referenzbasen
- Nicht-Varianten-Segment
Eine Region des Genoms, die mit dem Referenzgenom übereinstimmt. Das Nicht-Varianten-Segment wird auch als "Referenzsegment" bezeichnet. In der Regel enthalten genomische Daten keine Nicht-Varianten-Segmente mit Varianten.
Weitere Informationen zu Nicht-Varianten-Segmenten finden Sie unter Informationen zu gVCF.
- Anruf
Ein in einer einzelnen Probe identifiziertes Vorkommen einer Variante oder eines Nicht-Varianten-Segments. Ein Aufruf stellt die Bestimmung des Genotyps in Bezug auf eine bestimmte Variante dar. Der Aufruf 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 das Feld
genotype
, aber nicht alle Datasets haben das Feld "Genotypqualität" (GQ
). Das Feldgenotype
ist ein fester Bestandteil des SchemasVariantCall
, enthält jedoch nicht das FeldGQ
. Sie können das FeldGQ
und den entsprechenden Wert als Schlüssel/Wert-Paare in dasinfo
-FeldVariantCall
importieren.
Weitere Informationen zur genomischen Nomenklatur finden Sie hier:
BigQuery-Begriffe
Machen Sie sich mit den folgenden BigQuery-Begriffen vertraut:
- 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 hier:
- Verschachtelte und wiederkehrende Felder in Standard-SQL
- Erläuterung von BigQuery: Mit Joins, verschachtelten und wiederholten Daten arbeiten
- Looker-Dokumentation zum Thema "Verschachteln"
Struktur der Variantentabelle
Wenn Sie das Tool Variant Transforms ausführen, geben Sie den Namen der BigQuery-Tabelle an. In der Regel lautet der Name der 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 Tabelle variants
enthält einen oder mehrere Aufrufe.
Die folgende Tabelle zeigt die Eintragsstruktur der Variantentabelle. Die Tabelle enthält die folgenden Varianteneinträge:
Variant1
Variant2
Das BigQuery-Dataset enthält die folgenden Beispiele:
Sample1
Sample2
Sample3
In der folgenden Tabelle können Sie diese Ergebnisse beobachten:
Variant1
wurde fürSample1
undSample2
aufgerufen.Variant2
wurde fürSample1
undSample3
aufgerufen.
Variant1 | Sample1 Sample2 |
Variant2 | Sample1 Sample3 |
… | … |
Feldstruktur der Variantentabelle
Jede variants
-Tabelle enthält einen festen und einen variablen Satz an Feldern. Die 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 | … |
Feste Felder der Variantentabelle
Feste Felder auf Eintragsebene (Variante) sind die Folgenden:
reference_name
start_position
end_position
reference_bases
alternate_bases
names
quality
filter
Feste Felder auf Aufrufebene (VariantCall
) sind die Folgenden:
name
genotype
phaseset
Beispielschema
Beim Laden der Daten von 1000 Genomes in BigQuery wurde auch die VCF-Datei ALL.chrY.phase3_integrated_v1a.20130502.genotypes.vcf importiert.
Die VCF-Datei enthält verschiedene INFO
-Felder auf Varianten- und Aufrufebene, wie in den folgenden 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 der Datei in BigQuery ist Folgendes aufgetreten:
- Felder, die als
INFO
markiert sind, z. B.AC
undAF
, wurden den Variantenressourcen alsINFO
-Felder hinzugefügt. - Felder, die als
FORMAT
markiert sind, z. B. die FelderGP
undGQ
, wurden alsINFO
-Felder zu denVariantCall
-Ressourcen hinzugefügt. - Das FORMAT-Feld
GT
wurde nicht als INFO-Feld hinzugefügt. Der Wert wurde in das Feldgenotype
konvertiert.
In BigQuery werden die folgenden festen Felder mit dem Schema angezeigt:
Feldname | Typ | Mode | Beschreibung |
---|---|---|---|
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. |
Im Schema werden die folgenden Variablenfelder (die INFO
-Felder) angezeigt:
Feldname | Typ | Mode | Beschreibung |
---|---|---|---|
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
. Der Datensatz 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 Felder Number=A
von alternativen Basen unabhängig sind. Gehen Sie dazu folgendermaßen vor:
- Führen Sie das Tool Variant Transforms aus und übergeben Sie das Flag
--split_alternate_allele_info_fields
. - Legen Sie den Wert des Flags
--split_alternate_allele_info_fields
aufFalse
fest.
Einträge automatisch teilen
In den folgenden Fällen teilt das Tool Variant Transforms automatisch einen Datensatz in mehrere Zeilen auf, wobei jede Zeile kleiner als 100 MB ist:
- Ein Eintrag enthält eine große Anzahl von Aufrufen.
- Die große Anzahl von Aufrufen führt zu einer BigQuery-Zeile, die größer als 100 MB ist.
Aufgrund des BigQuery-Limits von 100 MB pro Zeile ist eine automatische Eintragaufteilung erforderlich.
Nullwerte
Enthalten wiederkehrende Felder vom Typ "float" oder "integer" einen Nullwert, kann das Tool Variant Transforms das BigQuery-Schema nicht erstellen. BigQuery lässt keine Nullwerte in wiederkehrenden Feldern zu. 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 Werte1,.,2
. Das Tool Variant Transforms kann1,null,2
nicht in BigQuery laden. - Der Nullwert muss 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.