Comprende el esquema de variantes de BigQuery

En esta página, se explica la estructura del esquema generado en BigQuery cuando usas la herramienta Variant Transforms. Lee esta página si usas la herramienta Variant Transforms para transformar y cargar archivos VCF directamente en BigQuery y deseas comprender cómo se estructura la tabla de exportación.

Nomenclatura

Para comprender los formatos y esquemas de exportación, familiarízate con los siguientes términos.

Nomenclatura genómica

Muestra
ADN recopilado y procesado con un identificador único. Normalmente, una muestra involucra a un solo organismo individual, pero también puede ser una muestra heterogénea, como una muestra bucal.
Reference name
Es el nombre de un segmento de referencia de ADN. Por lo general, el nombre de referencia es un cromosoma, pero puede tratarse de otras regiones con nombre de un genoma de referencia.
Variante

Una región del genoma que se ha identificado como diferente del genoma de referencia. Una variante debe tener las siguientes propiedades:

  • Reference name
  • Start position
  • End position
  • Una o más bases de referencia
Segmento coincidente

Una región del genoma que coincide con el genoma de referencia. Este segmento coincidente también se denomina "segmento de referencia". Por lo general, los datos genómicos no incluyen segmentos coincidentes con variantes.

Para obtener más información sobre los segmentos coincidentes, consulta Acerca del gVCF.

Llamar

Un caso identificado de una variante o segmento coincidente para una muestra individual. Una llamada representa la determinación del genotipo con respecto a una variante en particular. La llamada puede incluir información asociada, como la calidad y las fases.

Campos INFO

Campos opcionales que se agregan a la información de variantes y llamadas. Por ejemplo, todas las llamadas tienen un campo genotype, pero no todos los conjuntos de datos tienen un campo "Calidad de genotipo" (GQ). El campo genotype es una parte fija del esquema VariantCall, pero no tiene un campo GQ. Puedes importar el campo GQ y el valor como pares clave-valor en el campo VariantCall info.

Para obtener más información sobre la nomenclatura genómica, consulta lo siguiente:

Condiciones de BigQuery

Familiarícese con los siguientes términos de BigQuery:

Campos simples
Elementos de datos simples en una tabla de BigQuery, como números y strings
Campos anidados
Elementos de datos complejos en una tabla de BigQuery. Un campo anidado puede contener varios campos, tanto simples como anidados.
Campos repetidos
Campos en una tabla de BigQuery que puede tener múltiples valores, como una lista. Los campos repetidos pueden ser simples y anidados.

Para obtener más información sobre los tipos de datos complejos de BigQuery, consulta los siguientes vínculos:

Estructura de tabla de variantes

Cuando ejecutas la herramienta Variant Transforms, especificas el nombre de la tabla de BigQuery. Por lo general, el nombre de la tabla es variants.

Estructura de registro de la tabla de variantes

Los registros de nivel superior de la tabla variants pueden ser tanto variantes como segmentos coincidentes. Cada registro de la tabla variants contiene una o más llamadas.

En la siguiente tabla, se ilustra la estructura de registros de la tabla de variantes. En la tabla, se muestran los siguientes registros de variantes:

  • Variant1
  • Variant2

El conjunto de datos de BigQuery contiene las siguientes muestras:

  • Sample1
  • Sample2
  • Sample3

En la siguiente tabla, puede observar estos resultados:

  • Se llamó a Variant1 para Sample1 y Sample2.
  • Se llamó a Variant2 para Sample1 y Sample3.
   
Variant1 Sample1

Sample2
Variant2 Sample1

Sample3

Estructura de campos de la tabla de variantes

Cada tabla de variants incluye un conjunto de campos fijo y otro variable. La estructura de la tabla se verá de la siguiente manera:

     
Campos de variantes fijas Llamada Campos INFO de variantes
Campos de llamadas fijas         Campos INFO de llamadas ...

Campos fijos de la tabla de variantes

Los campos de nivel de registro fijos (variantes) son los siguientes:

  • reference_name
  • start_position
  • end_position
  • reference_bases
  • alternate_bases
  • names
  • quality
  • filter

Los campos fijos a nivel de llamada (VariantCall) son los siguientes:

  • name
  • genotype
  • phaseset

Esquema de ejemplo

Cuando los datos de 1,000 Genomes se cargaron en BigQuery, se incluyó la importación de ALL.chrY.phase3_integrated_v1a.20130502.genotypes.vcf.

El archivo VCF incluye varios campos INFO a nivel de variante y de llamada, como se describe en las siguientes directivas de encabezado INFO y 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]]

Cuando se cargó el archivo en BigQuery, ocurrió lo siguiente:

  • Los campos marcados como INFO, como AC y AF, se agregaron como campos INFO a los recursos de las variantes.
  • Los campos marcados como FORMAT, como GP y GQ, se agregaron como campos INFO a los recursos VariantCall.
  • No se agregó el campo FORMAT GT como campo INFO. El valor se convirtió en el campo genotype.

En Ver el esquema en BigQuery, se muestran los siguientes campos fijos:

Nombre del campo Tipo Modo Descripción
reference_name STRING Acepta valor NULL Nombre de referencia
start_position INTEGER Acepta valor NULL Posición de inicio (basada en 0). Corresponde a la primera base de la string de bases de referencia.
end_position INTEGER Acepta valor NULL Posición final (basada en 0). Corresponde a la primera base después de la última base del alelo de referencia.
reference_bases STRING Acepta valor NULL Bases de referencia
alternate_bases RECORD REPETIDO Un registro para cada base alternativa (si existe). Consulta Información adicional del registro alternate_bases.
alternate_bases.alt STRING Acepta valor NULL Base alternativa
names STRING REPETIDO Nombres de variantes (por ejemplo, ID de RefSNP)
quality FLOAT Acepta valor NULL Nivel de calidad Phred (-10log10 prob[llamada incorrecta]). Los valores más altos implican una mejor calidad.
filter STRING REPETIDO Lista de filtros con error (si los hay) o "PASS", que indica que la variante pasó todos los filtros.
call RECORD REPETIDO Un registro para cada llamada

Cuando se muestra el esquema, se muestran los siguientes campos de variables (los campos INFO):

Nombre del campo Tipo Modo Descripción
call.name STRING Acepta valor NULL Nombre de la llamada
call.genotype INTEGER REPETIDO El genotipo de la llamada. "-1" se usa en casos en los que no se llama al genotipo.
call.phaseset STRING ACEPTA VALOR NULL Conjunto de fases de la llamada (si existe) Se usa "*" cuando el genotipo está dividido en fases, pero no se especificó ningún conjunto de fases ("PS" en FORMAT).

Información adicional sobre el registro alternate_bases

El registro alternate_bases contiene cualquier campo INFO con Number=A. El registro simplifica la consulta, ya que quita la necesidad de asignar cada campo al registro alternativo correspondiente.

Para usar la versión anterior del esquema de BigQuery, en la que los campos Number=A son independientes de las bases alternativas, completa los siguientes pasos:

  1. Ejecuta la herramienta Variant Transforms y pasa la marca --split_alternate_allele_info_fields.
  2. Establece el valor de la marca --split_alternate_allele_info_fields en False.

Divide los registros automáticamente

En los siguientes casos, la herramienta Variant Transforms divide automáticamente un registro en varias filas en las que cada fila tiene menos de 100 MB:

  • Un registro tiene una gran cantidad de llamadas.
  • La gran cantidad de llamadas da como resultado una fila de BigQuery superior a 100 MB.

La división automática de registros es necesaria debido al límite de 100 MB por fila de BigQuery.

Valores nulos

Si un campo repetido flotante o entero contiene un valor nulo, la herramienta Variant Transforms no puede crear el esquema de BigQuery. BigQuery no permite valores nulos en los campos repetidos. El registro completo puede ser nulo, pero los valores dentro del registro no deben ser nulos.

Por ejemplo:

  1. Supongamos que el campo INFO de un archivo VCF tiene los valores 1,.,2. La herramienta Variant Transforms no puede cargar 1,null,2 en BigQuery.
  2. Se debe usar un reemplazo numérico para el valor nulo. Según la configuración predeterminada, el valor de reemplazo es -2^31 o -2147483648.

Para establecer un valor numérico personalizado, pasa la marca --null_numeric_value_replacement con un valor cuando ejecutes la herramienta Variant Transforms.

Como alternativa, puedes convertir los valores nulos en una string y usar . como valor. Si haces esto, el encabezado debe especificarse como String.