En esta página, se explica la estructura del esquema que se genera en BigQuery cuando usas la herramienta Variant Transforms. Lee esta página si utilizas la herramienta Variant Transforms transformar y cargar archivos VCF directamente en BigQuery y quieres para comprender cómo está estructurada la tabla de exportación.
Nomenclatura
Para comprender los formatos y esquemas de exportación, familiarízate con el que se indican a continuación.
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. El nombre de referencia es un cromosoma, pero pueden ser otras regiones con nombre de un genoma de referencia.
- Variante
Una región del genoma que se identificó 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. El segmento coincidente también se conoce como "segmento de referencia". Normalmente, los datos genómicos no incluyen segmentos coincidentes con variantes.
Para obtener más información sobre los segmentos coincidentes, consulta Acerca de gVCF.
- Llamar
Un caso identificado de una variante o segmento coincidente para una muestra individual. Una llamada representa la determinación del genotipo en relación con una variante en particular. La llamada puede incluir información asociada, como la calidad y la creación de 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 "Calidad del genotipo" (GQ
). El campogenotype
es una parte fija de el esquemaVariantCall
, pero no tiene un campoGQ
. Puedes importar el campo y el valorGQ
como pares clave-valor en el campoVariantCall
info
.
Para obtener más información sobre la nomenclatura genómica, consulta lo siguiente:
Términos de BigQuery
Familiarízate 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
- Los campos de 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 lo siguiente:
- Campos anidados y repetidos de BigQuery en SQL estándar
- Explicación de BigQuery: Trabajar con uniones, anidadas y datos repetidos
- Documentación de Looker sobre el anidamiento
Estructura de tabla de variantes
Cuando ejecutas la herramienta Variant Transforms, especificas el nombre del
en 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 tabla variants
contiene uno o más
llamadas.
En la siguiente tabla, se ilustra la estructura de registros de la tabla de variantes. La tabla muestra los siguientes registros de variantes:
Variant1
Variant2
El conjunto de datos de BigQuery contiene las siguientes muestras:
Sample1
Sample2
Sample3
En la siguiente tabla, puedes observar estos resultados:
- Se llamó a
Variant1
paraSample1
ySample2
. - Se llamó a
Variant2
paraSample1
ySample3
.
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 tiene el siguiente aspecto:
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 fijos a nivel de registro (variante) son los siguientes:
reference_name
start_position
end_position
reference_bases
alternate_bases
names
quality
filter
Los campos fijos de 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 encabezados 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
, comoAC
yAF
, se agregaron como camposINFO
a los recursos de variante. - Los campos marcados como
FORMAT
, como los camposGP
yGQ
, se agregaron como camposINFO
a los recursosVariantCall
. - El campo de FORMAT
GT
no se agregó como un campo de INFO. El valor se convirtió en el campogenotype
.
La vista del esquema en BigQuery muestra 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 observa 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 hay alguno). Se utiliza "*" 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 de BigQuery
versión de esquema, en la que los campos Number=A
son independientes de las bases alternativas
completa los siguientes pasos:
- Ejecuta la herramienta Variant Transforms y pasa la marca
--split_alternate_allele_info_fields
. - Establece el valor de la marca
--split_alternate_allele_info_fields
enFalse
.
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 pueden crear la cuenta de BigQuery . BigQuery no permite valores nulos en campos repetidos. El registro completo puede ser nulo, pero los valores dentro del registro no deben ser nulos.
Por ejemplo:
- Supongamos que el campo
INFO
de un archivo VCF tiene los valores1,.,2
. La herramienta Variant Transforms no puede cargar1,null,2
en BigQuery. - 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
.