Questa pagina spiega la struttura dello schema generato in BigQuery quando utilizzi lo strumento Trasformazioni delle varianti. Leggi questa pagina se utilizzi lo strumento di trasformazione delle varianti di trasformare e caricare i file VCF direttamente in BigQuery e per capire come è strutturata la tabella di esportazione.
Nomenclatura
Per comprendere i formati e gli schemi di esportazione, familiarizza con le seguenti termini.
Nomenclatura di Genomics
- Esempio
- DNA raccolto ed elaborato in un unico identificatore. Un campione solitamente coinvolge un singolo organismo, ma può anche essere un campione eterogeneo come un tampone per le guance.
- Nome 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 varianti
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 saperne di più sui segmenti non varianti, consulta Informazioni sul 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 in fasi.
- 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 di lo 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
- I campi di una tabella BigQuery che possono avere più valori, come un elenco. I campi ripetuti possono essere sia semplici che 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 gerarchica
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 senza varianti. Ogni record di tabella variants
contiene uno o più
chiamate.
La seguente tabella 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
è stata chiamata perSample1
eSample3
.
Variante1 | Sample1 Sample2 |
Variant2 | Esempio1 Esempio3 |
… | … |
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 fissi a livello di chiamata (VariantCall
) 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 (in base 0). Corrisponde alla prima base della stringa delle basi di riferimento. |
end_position | INTEGER | NULLABLE | Posizione finale (basata su 0). Corrisponde alla prima base dopo l'ultima nell'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 esempio, ID RefSNP). |
qualità delle chiamate affidabile | FLOAT | NULLABLE | Punteggio di qualità in scala phred (-10log10 prob(chiamata errata)). 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 usato 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 del record è necessari a causa del limite di 100 MB per riga BigQuery.
Valori null
Se un campo ripetuto con numeri in virgola mobile o numero intero contiene un valore nullo, lo strumento di trasformazione delle varianti impossibile creare l'account BigQuery . BigQuery non consente valori nulli 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
. La Lo strumento di trasformazione delle varianti 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 durante l'esecuzione dello strumento di trasformazione delle varianti.
In alternativa, puoi convertire i valori null in una stringa e utilizzare .
come valore. Nel frattempo, l'intestazione deve essere specificata come String
.