Noções básicas sobre o esquema de variantes do BigQuery

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 campo genotype é uma parte fixa do esquema VariantCall, mas não tem um campo GQ. É possível importar o campo GQ e o valor como pares de chave-valor para o campo VariantCall 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:

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 para Sample1 e Sample2.
  • Variant2 foi chamado para Sample1 e Sample3.
   
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 e AF, foram adicionados como campos INFO aos recursos de variantes.
  • Os campos marcados como FORMAT, por exemplo, os campos GP e GQ, foram adicionados como campos INFO aos recursos VariantCall.
  • O campo FORMAT GT não foi adicionado como um campo INFO. O valor foi convertido no campo genotype.

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 INTEIRO 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:

  1. Execute a ferramenta Variant Transforms e especifique a sinalização --split_alternate_allele_info_fields.
  2. Defina o valor da sinalização --split_alternate_allele_info_fields como False.

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:

  1. Suponha que o campo INFO de um arquivo VCF tenha os valores 1,.,2. A ferramenta Variant Transforms não pode carregar 1,null,2 no BigQuery.
  2. 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.