Nesta página, explicamos a estrutura do esquema gerado no BigQuery quando você usa a ferramenta Variant Transforms. Leia esta página se você usa a ferramenta Variant Transforms para transformar e carregar arquivos VCF diretamente no BigQuery e quer entender como a tabela de exportação é estruturada.
Nomenclatura
Para entender os formatos e esquemas de exportação, familiarize-se com os termos a seguir.
Nomenclatura do Genomics
- Amostra
- DNA coletado e processado com um único identificador. Uma amostra geralmente envolve um único organismo individual, mas também pode ser uma amostra heterogênea, como um cotonete.
- Nome de referência
- O nome de um segmento de referência de DNA. Normalmente, o nome da referência é um cromossomo, mas pode ser outras regiões nomeadas de um genoma de referência.
- Variante
Uma região do genoma identificada como diferente do genoma de referência. Uma variante precisa ter as seguintes propriedades:
- Nome de referência
- Posição inicial
- Posição final
- Uma ou mais bases de referência
- Segmento não variante
Uma região do genoma que corresponde ao genoma de referência. O segmento não variante também é chamado de "segmento de referência". Normalmente, os dados genômicos não incluem segmentos não variantes com variantes.
Para mais informações sobre segmentos não variantes, consulte Sobre gVCF.
- Chamada
Uma ocorrência identificada de um segmento variante ou não variante para uma amostra individual. Uma chamada representa a determinação do genótipo em relação a uma variante específica. A chamada pode incluir informações associadas, como qualidade e faseamento.
- Campos INFO
Campos opcionais adicionados às informações de variante e chamada. Por exemplo, todas as chamadas têm um campo
genotype
, mas nem todos os conjuntos de dados têm um campo "Genotype Quality" (GQ
). O campogenotype
é uma parte fixa do esquemaVariantCall
, mas não tem um campoGQ
. É possível importar o campoGQ
e o valor como pares de chave-valor para o campoVariantCall
info
.
Para outras nomenclaturas genômicas, consulte:
Termos do BigQuery
Familiarize-se com os seguintes termos do BigQuery:
- Campos simples
- Elementos de dados simples em uma tabela do BigQuery, como números e strings.
- Campos aninhados
- Elementos de dados complexos em uma tabela do BigQuery. Um campo aninhado pode conter vários campos, simples e aninhados.
- Campos repetidos
- Campos em uma tabela do BigQuery que podem ter vários valores, como uma lista. Os campos repetidos podem ser simples e aninhados.
Para mais informações sobre os tipos de dados complexos do BigQuery, consulte:
- Campos aninhados e repetidos do BigQuery em SQL padrão
- Explicação do BigQuery: como trabalhar com mesclagens, dados aninhados e repetidos
- Documentação do Looker sobre aninhamento
Estrutura da tabela de variantes
Ao executar a ferramenta Variant Transforms, você especifica o nome da
tabela do BigQuery. Geralmente, o nome da tabela é variants
.
Estrutura de registros da tabela de variantes
Os registros de nível superior da tabela variants
podem ser segmentos variantes e não variantes. Cada registro de tabela variants
contém uma ou mais
chamadas.
Veja na tabela a seguir a estrutura de registro da tabela de variantes. A tabela mostra os seguintes registros de variantes:
Variant1
Variant2
O conjunto de dados do BigQuery contém as seguintes amostras:
Sample1
Sample2
Sample3
Na seguinte tabela, observe estes resultados:
Variant1
foi chamado paraSample1
eSample2
.Variant2
foi chamado paraSample1
eSample3
.
Variant1 | Sample1 Sample2 |
Variant2 | Sample1 Sample3 |
... | ... |
Estrutura do campo da tabela variante
Cada tabela variants
inclui um conjunto de campos fixo e outro variável. A estrutura da tabela é semelhante a esta:
Campos de variante fixos | Chamada | Campos INFO da variante |
… | Campos de chamada fixos Campos INFO da chamada | … |
Campos fixos da tabela variante
Os campos fixos de nível de registro (variante) são os seguintes:
reference_name
start_position
end_position
reference_bases
alternate_bases
names
quality
filter
Os campos fixos de nível de chamada (VariantCall
) são os seguintes:
name
genotype
phaseset
Esquema de exemplo
Quando os dados do 1000 Genomes foram carregados no BigQuery, foi incluída a importação de ALL.chrY.phase3_integrated_v1a.20130502.genotypes.vcf (em inglês).
O arquivo VCF inclui vários campos INFO
no nível da variante e da chamada, conforme
descrito nas seguintes diretivas de cabeçalho 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 o arquivo foi carregado no BigQuery, ocorreu o seguinte:
- Os campos marcados como
INFO
, por exemplo,AC
eAF
, foram adicionados como camposINFO
aos recursos de variantes. - Os campos marcados como
FORMAT
, por exemplo, os camposGP
eGQ
, foram adicionados como camposINFO
aos recursosVariantCall
. - O campo FORMAT
GT
não foi adicionado como um campo INFO. O valor foi convertido no campogenotype
.
A visualização do esquema no BigQuery mostra os seguintes campos fixos:
Nome do campo | Tipo | Modo | Descrição |
---|---|---|---|
reference_name | STRING | NULLABLE | Nome de referência. |
start_position | INTEGER | NULLABLE | Posição inicial (com base em 0). Corresponde à primeira base da string de bases de referência. |
end_position | INTEGER | NULLABLE | Posição final (com base em 0). Corresponde à primeira base após a última no alelo de referência. |
reference_bases | STRING | NULLABLE | Bases de referência. |
alternate_bases | RECORD | REPETIDA | Um registro para cada base alternativa (se houver). Consulte Informações adicionais do registro alternate_bases . |
alternate_bases.alt | STRING | NULLABLE | Base alternativa. |
names | STRING | REPEATED | Nomes da variante (por exemplo, RefSNP ID). |
quality | FLOAT | NULLABLE | Nível de qualidade na escala Phred (-10log10 prob(call is wrong)). Valores mais altos significam maior qualidade. |
filter | STRING | REPEATED | Lista de filtros com falha, se houver, ou "PASS", indicando que a variante foi aprovada em todos os filtros. |
call | RECORD | REPEATED | Um registro para cada chamada. |
A visualização do esquema mostra os seguintes campos variáveis (os campos INFO
):
Nome do campo | Tipo | Modo | Descrição |
---|---|---|---|
call.name | STRING | NULLABLE | Nome da chamada. |
call.genotype | INTEGER | REPEATED | Genótipo da chamada. "-1" é usado nos casos em que o genótipo não é chamado. |
call.phaseset | STRING | NULLABLE | Conjunto de fases da chamada (se houver). "*" é usado nos casos em que o genótipo é dividido em fases, mas nenhum conjunto de fases ("PS" em FORMAT) foi especificado. |
Informações adicionais do registro alternate_bases
O registro alternate_bases
contém qualquer campo INFO
com Number=A
. O registro
simplifica a consulta eliminando a necessidade de mapear cada campo
com o registro alternativo correspondente.
Para usar a versão anterior do esquema do BigQuery, em que os campos Number=A
são independentes de bases alternativas,
conclua as seguintes etapas:
- Execute a ferramenta Variant Transforms e especifique a sinalização
--split_alternate_allele_info_fields
. - Defina o valor da sinalização
--split_alternate_allele_info_fields
comoFalse
.
Dividir registros automaticamente
Nos casos a seguir, a ferramenta Variant Transforms divide automaticamente um registro em várias linhas, em que cada linha é menor que 100 MB:
- Um registro tem um grande número de chamadas.
- O grande número de chamadas resulta em uma linha do BigQuery com mais de 100 MB.
A divisão automática de registros é necessária devido ao limite de 100 MB por linha do BigQuery.
Valores nulos
Se um campo repetido flutuante ou inteiro tiver um valor nulo, a ferramenta Variant Transforms não poderá criar o esquema do BigQuery. O BigQuery não permite valores nulos em campos repetidos. O registro inteiro pode ser nulo, mas os valores dentro do registro não podem.
Exemplo:
- Suponha que o campo
INFO
de um arquivo VCF tenha os valores1,.,2
. A ferramenta Variant Transforms não pode carregar1,null,2
no BigQuery. - Uma substituição numérica precisa ser usada para o valor nulo. Por padrão, o valor de substituição é
-2^31
ou-2147483648
.
Para definir um valor numérico personalizado, transmita a sinalização --null_numeric_value_replacement
com um valor ao executar a ferramenta Variant Transforms.
Como alternativa, é possível converter valores nulos em uma string e usar .
como o valor. Ao fazer isso, o cabeçalho precisa ser especificado como String
.