Questa pagina spiega la struttura dello schema generato in BigQuery quando utilizzi lo strumento Trasformazioni delle varianti. Leggi questa pagina se utilizzi lo strumento Variant Transforms per trasformare e caricare i file VCF direttamente in BigQuery e vuoi capire come è strutturata la tabella di esportazione.
Nomenclatura
Per comprendere i formati e gli schemi di esportazione, acquisisci familiarità con i seguenti termini.
Nomenclatura Genomics
- Esempio
- DNA raccolto ed elaborato sotto un unico identificatore. Un campione solitamente coinvolge un singolo organismo, ma può anche essere un campione eterogeneo come un tampone buccale.
- Nome di riferimento
- Il nome di un segmento di riferimento del DNA. Il nome di riferimento è in genere un cromosoma, ma potrebbe essere anche un'altra regione denominata di un genome di riferimento.
- Variante
Una regione del genoma che è stata identificata come diversa dal genoma di riferimento. Una variante deve avere le seguenti proprietà:
- Nome di riferimento
- Posizione iniziale
- Posizione finale
- Una o più basi di riferimento
- Segmento senza variazioni
Una regione del genoma che corrisponde al genoma di riferimento. Il segmento senza variazioni è chiamato anche "segmento di riferimento". In genere, i dati genomici non includono segmenti non varianti con varianti.
Per ulteriori informazioni sui segmenti non varianti, consulta Informazioni su gVCF.
- Chiamata
Un'occorrenza identificata di un segmento con o senza variazioni per un singolo campione. Una chiamata rappresenta la determinazione del genotipo per una determinata variante. La chiamata potrebbe includere informazioni associate, come la qualità e la fase.
- Campi INFO
Campi facoltativi aggiunti alle informazioni sulle varianti e sulle chiamate. Ad esempio, tutte le chiamate hanno un campo
genotype
, ma non tutti i set di dati hanno un campo "Qualità del genotipo" (GQ
). Il campogenotype
è una parte fissa dello schemaVariantCall
, ma non ha un campoGQ
. Puoi importare il campo e il valoreGQ
come coppie chiave-valore nel campoVariantCall
info
.
Per ulteriori informazioni sulla nomenclatura genomica, consulta quanto segue:
Termini di BigQuery
Acquisisci familiarità con i seguenti termini di BigQuery:
- Campi semplici
- Elementi di dati semplici in una tabella BigQuery, come numeri e stringhe.
- Campi nidificati
- Elementi di dati complessi in una tabella BigQuery. Un campo nidificato può contenere più campi, sia semplici che nidificati.
- Campi ripetuti
- Campi di una tabella BigQuery che possono avere più valori, come un elenco. I campi ripetuti possono essere semplici e nidificati.
Per saperne di più sui tipi di dati complessi di BigQuery, consulta quanto segue:
- Campi nidificati e ripetuti di BigQuery in SQL standard
- BigQuery spiegato: utilizzo di join, dati nidificati e ripetuti
- Documentazione di Looker sull'organizzazione in nidificazioni
Struttura della tabella delle varianti
Quando esegui lo strumento di trasformazione delle varianti, specifichi il nome della tabella BigQuery. In genere, il nome della tabella è variants
.
Struttura dei record della tabella delle varianti
I record di primo livello della tabella variants
possono essere sia varianti sia segmenti non varianti. Ogni record della tabella variants
contiene una o più chiamate.
La tabella seguente illustra la struttura dei record della tabella delle varianti. La tabella mostra i seguenti record delle varianti:
Variant1
Variant2
Il set di dati BigQuery contiene i seguenti esempi:
Sample1
Sample2
Sample3
Nella tabella seguente puoi osservare i seguenti risultati:
Variant1
è stato chiamato perSample1
eSample2
.Variant2
è stato chiamato perSample1
eSample3
.
Variant1 | Sample1 Sample2 |
Variant2 | Sample1 Sample3 |
… | … |
Struttura del campo della tabella delle varianti
Ogni tabella variants
include sia un insieme fisso di campi sia un insieme variabile di
campi. La struttura della tabella è la seguente:
Campi delle varianti fisse | Chiamata | Campi INFO delle varianti |
… | Campi chiamate corretti Campi INFO chiamate | … |
Campi fissi della tabella delle varianti
I campi fissi a livello di record (variante) sono i seguenti:
reference_name
start_position
end_position
reference_bases
alternate_bases
names
quality
filter
I campi a livello di chiamata (VariantCall
) fissi sono i seguenti:
name
genotype
phaseset
Schema di esempio
Quando i dati di 1000 Genomes sono stati caricati in BigQuery, è stata inclusa l'importazione ALL.chrY.phase3_integrated_v1a.20130502.genotypes.vcf.
Il file VCF include vari campi INFO
a livello di variante e di chiamata, come descritto nelle seguenti direttive di intestazione INFO
e FORMAT
:
##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]]
Quando il file è stato caricato in BigQuery si è verificato quanto segue:
- I campi contrassegnati come
INFO
, ad esempioAC
eAF
, sono stati aggiunti come campiINFO
alle risorse delle varianti. - I campi contrassegnati come
FORMAT
, ad esempio i campiGP
eGQ
, sono stati aggiunti come campiINFO
alle risorseVariantCall
. - Il campo FORMAT
GT
non è stato aggiunto come campo INFO. Il valore è stato convertito nel campogenotype
.
La visualizzazione dello schema in BigQuery mostra i seguenti campi fissi:
Nome campo | Tipo | Modalità | Descrizione |
---|---|---|---|
reference_name | STRING | NULLABLE | Nome di riferimento. |
start_position | INTEGER | NULLABLE | Posizione iniziale (basata su 0). Corrisponde alla prima base della stringa di basi di riferimento. |
end_position | INTEGER | NULLABLE | Posizione finale (basata su 0). Corrisponde alla prima base dopo l'ultima base dell'allele di riferimento. |
reference_bases | STRING | NULLABLE | Basi di riferimento. |
alternate_bases | RECORD | REPEATED | Un record per ogni base alternativa (se presente). Consulta la sezione Informazioni aggiuntive sul record alternate_bases . |
alternate_bases.alt | STRING | NULLABLE | Base alternativa. |
nomi | STRING | REPEATED | Nomi delle varianti (ad es. ID RefSNP). |
qualità delle chiamate affidabile | FLOAT | NULLABLE | Punteggio di qualità con scala Phred (-10log10 prob(chiamata è sbagliata)). Valori più elevati implicano una qualità migliore. |
filtro | STRING | REPEATED | Elenco dei filtri non riusciti (se presenti) o "PASS" che indica che la variante ha superato tutti i filtri. |
chiamare | RECORD | REPEATED | Un record per ogni chiamata. |
La visualizzazione dello schema mostra i seguenti campi delle variabili (campi INFO
):
Nome campo | Tipo | Modalità | Descrizione |
---|---|---|---|
call.name | STRING | NULLABLE | Nome della chiamata. |
call.genotype | INTEGER | REPEATED | Genotipo della chiamata. "-1" viene utilizzato nei casi in cui il genotipo non viene chiamato. |
call.phaseset | STRING | NULLABLE | Fase della chiamata (se presente). "*" viene utilizzato nei casi in cui il genotipo è a fasi, ma non è stato specificato un insieme di fasi ("PS" in FORMAT). |
Informazioni aggiuntive sul record alternate_bases
Il record alternate_bases
contiene qualsiasi campo INFO
con Number=A
. Il record
semplifica le query rimuovendo la necessità di mappare ogni campo con il corrispondente
record alternativo.
Per utilizzare la versione precedente dello schema BigQuery, in cui i campi Number=A
sono indipendenti dalle basi alternative, completa i seguenti passaggi:
- Esegui lo strumento di trasformazione delle varianti e passa il flag
--split_alternate_allele_info_fields
. - Imposta il valore del flag
--split_alternate_allele_info_fields
suFalse
.
Suddividere automaticamente i record
Nei seguenti casi, lo strumento Trasformazioni delle varianti suddivide automaticamente un record in più righe se ogni riga è inferiore a 100 MB:
- Un record contiene un numero elevato di chiamate.
- Il numero elevato di chiamate genera una riga BigQuery più grande di 100 MB.
La suddivisione automatica dei record è necessaria a causa del limite di 100 MB per riga di BigQuery.
Valori null
Se un campo ripetuto con valore float o intero contiene un valore null, lo strumento Variant Transforms non può creare lo schema BigQuery. BigQuery non consente valori null nei campi ripetuti. L'intero record può essere nullo, ma i valori al suo interno devono essere non nulli.
Ad esempio:
- Supponiamo che il campo
INFO
di un file VCF abbia i valori1,.,2
. Lo strumento Variant Transforms non può caricare1,null,2
in BigQuery. - Per il valore null deve essere utilizzata una sostituzione numerica. Per impostazione predefinita, il valore sostitutivo è
-2^31
o-2147483648
.
Per impostare un valore numerico personalizzato, passa il flag --null_numeric_value_replacement
con un valore quando esegui lo strumento di trasformazione delle varianti.
In alternativa, puoi convertire i valori null in una stringa e utilizzare .
come valore. In questo caso, l'intestazione deve essere specificata come String
.