Informazioni sullo schema delle varianti BigQuery

Questa pagina spiega la struttura dello schema generato in BigQuery quando utilizzi lo strumento delle trasformazioni delle varianti. Leggi questa pagina se utilizzi lo strumento di trasformazione delle varianti per trasformare e caricare i file VCF direttamente in BigQuery e vuoi comprendere 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 in base a un singolo identificatore. Un campione in genere coinvolge un singolo organismo, ma può anche essere un campione eterogeneo come un guscio.
Nome riferimento
Il nome di un segmento di riferimento del DNA. Il nome di riferimento in genere è un cromosoma, ma potrebbero essere altre regioni denominate da un genoma di riferimento.
Variante

Regione del genoma identificato come diverso dal genoma di riferimento. Una variante deve avere le seguenti proprietà:

  • Nome riferimento
  • Posizione di partenza
  • Posizione di fine
  • Una o più basi di riferimento
Segmento senza varianti

Una regione del genoma corrispondente al genoma di riferimento. Il segmento senza variazioni è anche chiamato "segmento di riferimento". In genere, i dati genomici non includono segmenti non varianti con varianti.

Per saperne di più sui segmenti non varianti, consulta l'articolo Informazioni su gVCF.

Chiamata

Un'occorrenza identificata di una variante o di un segmento senza variazioni per un singolo campione. Una chiamata rappresenta la determinazione del genotipo per una particolare variante. La chiamata potrebbe includere informazioni associate, come qualità e 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à genotipo" (GQ). Il campo genotype è una parte fissa dello schema VariantCall, ma non ha un campo GQ. Puoi importare il campo GQ e il valore come coppia chiave-valore nel campo VariantCall info.

Per una nomenclatura più genomica, consulta quanto segue:

Termini di BigQuery

Acquisisci familiarità con i seguenti termini di BigQuery:

Campi semplici
Semplici elementi di dati 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 in una tabella BigQuery che possono avere più valori, ad esempio un elenco. I campi ripetuti possono essere semplici e nidificati.

Per ulteriori informazioni sui tipi di dati complessi di BigQuery, consulta:

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 del record della tabella delle varianti

I record di primo livello della tabella variants possono essere sia varianti che segmenti non varianti. Ogni record della tabella variants contiene una o più chiamate.

La seguente tabella illustra la struttura del record della tabella delle varianti. La tabella mostra i seguenti record di 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 per Sample1 e Sample2.
  • Variant2 è stato chiamato per Sample1 e Sample3.
   
Variante1 Esempio1

Esempio2
Variante2 Esempio1

Esempio3

Struttura del campo della tabella delle varianti

Ogni tabella variants include un insieme fisso di campi e una variabile. La struttura della tabella ha il seguente aspetto:

     
Campi delle varianti fissi Chiamata Campi delle informazioni sulle varianti
Campi delle chiamate fissi Campi delle informazioni sulle chiamate

Campi fissi della tabella delle varianti

I campi fissi a livello di record sono le 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 relativi ai 1000 genomi sono stati caricati in BigQuery, includeva 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 istruzioni 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, come AC e AF, sono stati aggiunti come campi INFO alle risorse delle varianti.
  • I campi contrassegnati come FORMAT, come GP e GQ, sono stati aggiunti come risorse INFO alle risorse VariantCall.
  • Il campo FORMAT GT non è stato aggiunto come campo INFO. Il valore è stato convertito nel campo genotype.

La visualizzazione dello schema in BigQuery mostra i seguenti campi fissi:

Nome campo Tipo Modalità Descrizione
nome_riferimento STRINGA AMMETTE VALORI NULL Nome del riferimento.
posizione_inizio INTERO AMMETTE VALORI NULL Posizione di partenza (in base a 0). Corrisponde alla prima base della stringa di basi di riferimento.
posizione_finale INTERO AMMETTE VALORI NULL Posizione di fine (in base a 0). Corrisponde alla prima base dopo l'ultima base nell'allele di riferimento.
basi_riferimento STRINGA AMMETTE VALORI NULL Basi di riferimento.
basi_alternative RECORD RIPETUTO Un record per ogni base alternativa (se disponibile). Vedi Informazioni aggiuntive sui record di alternate_bases.
alternativa_base.alt STRINGA AMMETTE VALORI NULL Base alternativa.
Nomi STRINGA RIPETUTO Nomi delle varianti (ad esempio, ID RefSNP).
qualità delle chiamate affidabile GALLEGGIANTE AMMETTE VALORI NULL Punteggio di qualità in scala di Ph (-10log10 prob(la chiamata è sbagliata)). Valori più elevati implicano una qualità migliore.
filtro STRINGA RIPETUTO Elenco di filtri con errori (se presenti) o "PASS" che indicano che la variante ha superato tutti i filtri.
chiamare RECORD RIPETUTO Un record per ogni chiamata.

La visualizzazione dello schema mostra i seguenti campi delle variabili (i campi INFO):

Nome campo Tipo Modalità Descrizione
call.name STRINGA AMMETTE VALORI NULL Il nome della chiamata.
call.genotype INTERO RIPETUTO Genotipo della chiamata. "-1" viene utilizzato nei casi in cui il genotipo non viene chiamato.
call.phaseset STRINGA AMMETTE VALORI NULL Fase della chiamata (se disponibile). "*" viene utilizzato nei casi in cui il genotipo è inserito in fasi, ma non è stata specificata alcuna fase ("PS" in FORMAT).

Informazioni aggiuntive sul record alternate_bases

Il record alternate_bases contiene qualsiasi campo INFO con Number=A. Il record semplifica l'esecuzione di query eliminando la necessità di mappare ogni campo con il record alternativo corrispondente.

Per utilizzare la versione precedente dello schema BigQuery, in cui i campi Number=A sono indipendenti da basi alternative, procedi come segue:

  1. Esegui lo strumento delle trasformazioni delle varianti e trasmetti il flag --split_alternate_allele_info_fields.
  2. Imposta il valore del flag --split_alternate_allele_info_fields su False.

Dividi automaticamente i record

Nei seguenti casi, lo strumento delle trasformazioni delle varianti suddivide automaticamente un record in più righe, ciascuna delle quali è inferiore a 100 MB:

  • Un record ha un numero elevato di chiamate.
  • Il numero elevato di chiamate genera una riga BigQuery superiore a 100 MB.

La suddivisione automatica dei record è necessaria a causa del limite di BigQuery per 100 MB per riga.

Valori nulli

Se un campo mobile o un numero intero ripetuto contiene un valore null, lo strumento di trasformazione delle varianti non può creare lo schema BigQuery. BigQuery non consente valori null nei campi ripetuti. L'intero record può essere nullo, ma i valori all'interno del record devono essere diversi da null.

Ecco alcuni esempi:

  1. Supponiamo che il campo INFO di un file VCF abbia i valori 1,.,2. Lo strumento di trasformazione delle varianti non può caricare 1,null,2 in BigQuery.
  2. È necessario utilizzare una sostituzione numerica per il valore null. Per impostazione predefinita, il valore di sostituzione è -2^31 oppure -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. In questo caso, l'intestazione deve essere specificata come String.