Esta página foi traduzida pela API Cloud Translation.
Switch to English

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

O pipeline de transformações de variantes (em inglês) oferece a possibilidade de transformar e carregar arquivos VCF diretamente ao BigQuery.

Também é possível usar o BigQuery para executar consultas interativas ad-hoc sobre variantes genômicas usando centenas ou milhares de computadores em paralelo.

Também é possível procurar por conjuntos de dados publicados atuais já exportados do Cloud Life Sciences para o BigQuery.

Nomenclatura

Para entender os formatos e esquemas de exportação, convém se familiarizar com a terminologia que usamos.

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, que normalmente é um cromossomo, mas pode ser outras regiões nomeadas de um genoma de referência (em inglês).
Variante
Uma região do genoma identificada como diferente do genoma de referência (em inglês). Uma variante precisa ter um nome de referência, uma posição inicial, uma posição final e uma ou mais bases de referência.
Segmento não variante

Uma região do genoma que corresponde ao genoma de referência. Às vezes, é chamado de "segmento de referência". Tradicionalmente, os dados genômicos não incluem segmentos não variantes com variantes.

Para mais informações sobre segmentos não variantes, consulte a documentação do gVCF (em inglês).

Chamada

Uma ocorrência identificada de um segmento variante ou não variante para uma amostra individual. Representa a determinação do genótipo em relação a uma variante em particular e pode incluir informações associadas, como qualidade e faseamento.

Campos INFO

Campos opcionais adicionados às informações de Variante e Chamada. Por exemplo, enquanto todas as chamadas têm um campo genotype, nem todos os conjuntos de dados terão um campo "Qualidade do genótipo" (GQ). Portanto, o campo genotype é uma parte fixa do esquema VariantCall, mas não há campo GQ. O valor e o campo GQ podem ser importados como pares de chave-valor para o campo info do VariantCall.

Para mais informações sobre nomenclatura genômica, consulte os seguintes documentos em inglês:

Nomenclatura 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 a documentação sobre campos aninhados e repetidos no SQL padrão .

Estrutura da tabela de variantes

O nome da tabela do BigQuery é especificado ao executar o pipeline de transformações variantes. Por convenção, o nome desta 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 da tabela variants conterá uma ou mais chamadas.

A tabela abaixo ilustra essa estrutura, mostrando dois registros variantes, Variant1 e Variant2. Neste conjunto de dados, há três amostras, Sample1, Sample2 e Sample3. Variant1 foi chamada para Sample1 e Sample2, enquanto Variant2 foi chamada 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 em geral tem esta aparência:

     
Campos de variante fixos Chamada Campos INFO da variante
Campos de chamada fixos          Campos INFO da chamada

Os nomes dos campos variáveis são as chaves de campo de Variant Resource INFO e as chaves de campo VariantCall INFO, respectivamente.

Campos fixos da tabela variante

Os campos fixos de nível de registro (Variant) são:

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

Os campos fixos de nível de chamada (VariantCall) são:

  • name
  • genotype
  • phaseset

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).

Este arquivo VCF inclui vários campos INFO no nível da variante e da chamada, conforme descrito nas 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 esse arquivo foi carregado no BigQuery, os campos marcados como INFO, como AC e AF, foram adicionados como campos INFO aos recursos de Variant.

Quando esse arquivo foi carregado no BigQuery, os campos marcados como FORMAT, como os campos GP e GQ, foram adicionados como campos INFO aos recursos de VariantCall. O campo FORMAT GT não foi adicionado como um campo INFO, mas o valor foi convertido no campo genotype.

A visualização do esquema(em inglês) na IU do BigQuery mostra os seguintes campos fixos:

Schema      
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.

e os campos de variável (os campos INFO):

Schema      
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 nenhuma fase ("PS" em FORMAT) foi especificada.

Informações adicionais do registro alternate_bases

O registro alternate_bases contém qualquer campo INFO com Number=A. Isso simplifica a consulta removendo a necessidade de mapear cada campo com seu registro alternativo correspondente. Para usar a versão anterior do esquema do BigQuery, em que campos Number=A são independentes de bases alternativas, transmita a sinalização --split_alternate_allele_info_fields e a defina como False ao executar a ferramenta Variant Transforms.

Dividir registros automaticamente

Se um registro tiver um grande número de chamadas e resultar em uma linha do BigQuery maior que 100 MB, a ferramenta Variant Transforms dividirá automaticamente o registro em várias linhas para que cada uma tenha menos de 100 MB. Isso é necessário devido ao limite de 100 MB por linha do BigQuery.

Valores nulos

Se um campo flutuante ou inteiro repetido tiver um valor nulo, o esquema do BigQuery não poderá ser criado. Isso ocorre porque o BigQuery não aceita 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. Em vez disso, 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.