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

Como analisar e anotar arquivos VCF

Esta página descreve os seguintes processos:

  • Analisar campos de anotação em arquivos VCF de entrada.
  • Anote arquivos VCF enquanto eles estão sendo importados, usando ferramentas de anotação de código aberto e bancos de dados como o Variant Effect Predictor (VEP) (em inglês).

Como analisar campos de anotação

A ferramenta Variant Transforms oferece suporte a um formato de campo de anotação especificado em Anotações variantes no formato VCF. O VEP usa esse mesmo formato. O exemplo a seguir mostra um cabeçalho VCF de um arquivo que foi anotado pelo VEP:

##INFO=<ID=CSQ,Number=.,Type=String,Description="Consequence annotations from Ensembl VEP. Format: Allele|Consequence|IMPACT|SYMBOL|Gene|Feature_type|Feature|BIOTYPE|EXON|INTRON|ALLELE_NUM|...>

As anotações correspondentes para um registro de variante de amostra em que REF=AAC e ALT=TAC,A têm esta aparência:

CSQ=-|downstream_gene_variant|MODIFIER|WASH7P|ENSG00000227232|Transcript|ENST00000423562|unprocessed_pseudogene|||2,...,T|upstream_gene_variant|MODIFIER|DDX11L1|ENSG00000223972|Transcript|ENST00000518655|transcribed_unprocessed_pseudogene|||1

Cada registro de variante recebe várias listas de anotação separadas por vírgulas. O primeiro campo em cada conjunto corresponde a um alelo alternativo (ALT). O exemplo acima usa apenas um subconjunto para cada ALT. O arquivo real tem mais campos e cada alelo alternativo pode ser repetido várias vezes com anotações diferentes.

É possível passar --annotation_fields ao executar a ferramenta Variant Transforms, que divide listas de anotação e move-as para seus respectivos registros alternate_bases correspondentes. Por exemplo, conforme se vê abaixo, há um campo de registro repetido, CSQ, em cada alternate_bases:

Nome Tipo Modo Descrição
alternate_bases.CSQ RECORD REPEATED Lista de anotações CSQ para essa alternativa.
alternate_bases.CSQ.allele STRING NULLABLE A parte ALT do campo de anotação.
alternate_bases.CSQ.Consequence STRING Nullable None
alternate_bases.CSQ.IMPACT STRING Nullable None
alternate_bases.CSQ.SYMBOL STRING Nullable None
alternate_bases.CSQ.Gene STRING Nullable None
alternate_bases.CSQ.Feature_type STRING Nullable None
alternate_bases.CSQ.Feature STRING Nullable None
alternate_bases.CSQ.BIOTYPE STRING Nullable None
alternate_bases.CSQ.EXON STRING Nullable None
alternate_bases.CSQ.INTRON STRING Nullable None

Correspondência de alelo alternativo

No exemplo acima, os alelos alternativos listados na coluna CSQ são diferentes das strings ALT do registro de variante. Por exemplo, a variante AAC->C é representada por -, o que significa uma exclusão. Isso ocorre porque o VEP é executado no conjunto de dados com a sinalização --minimal. A ferramenta Variant Transforms oferece suporte a campos ALT correspondentes neste modo minimal.

Há suporte para os seguintes modos de correspondência ALT:

  • Por padrão, se nenhuma sinalização ALT correspondente for configurada, será usada a especificação das Anotações da Variant no formato VCF.

  • Como mostrado no exemplo acima, ao usar a sinalização --use_allele_num (em inglês), a ferramenta Variant Transforms procura o valor do campo de anotações ALLELE_NUM. Este é um recurso do VEP.

  • É possível simular --minimal com a ferramenta Variant Transforms usando a sinalização --minimal_vep_alt_matching (em inglês). No entanto, isso pode resultar em uma correspondência ambígua. Essas correspondências são contadas e informadas no Console do Dataflow. Elas também são adicionadas em um novo campo na tabela criada.

    Para melhores resultados, use --minimal em vez de --minimal_vep_alt_matching.

Como fazer anotações automaticamente de arquivos VCF usando o VEP

Normalmente, se você quer analisar os campos de anotação e dividi-los em vários campos, primeiro é preciso fazer uma pré-anotação nos arquivos VCF. No entanto, não é preciso pré-anotar os arquivos VCF ao usar a ferramenta Variant Transforms.

Com essa ferramenta, é possível anotar automaticamente arquivos VCF conforme eles são carregados no BigQuery. Para fazer isso, execute o VEP com a ferramenta Variant Transforms, que requer a criação e execução de instâncias de máquina virtual do Compute Engine com imagens pré-configuradas do Docker.

Como executar o VEP com a ferramenta Variant Transforms

Para executar a ferramenta Variant Transforms com o VEP e anotar automaticamente os arquivos VCF conforme eles são carregados no BigQuery, execute a ferramenta com no mínimo as seguintes sinalizações:

  • --run_annotation_pipeline
  • --max_num_workers MAX_NUM_WORKERS ou --num_workers NUM_WORKERS
  • --annotation_output_dir gs://CLOUD_STORAGE_BUCKET

    O bucket escolhido para a variável CLOUD_STORAGE_BUCKET precisa ser de propriedade do projeto.

Veja a seguir uma lista completa das sinalizações que podem ser transmitidas para a ferramenta Variant Transforms ao executar o VEP:

Descrição padrão Descrição
--run_annotation_pipeline Falso Ativa a anotação automática.
--max_num_workers ou --num_workers Determinado automaticamente O número máximo de workers no job que o Cloud Dataflow escalonará automaticamente ou o número de workers inicialmente atribuídos ao job, respectivamente.
--annotation_output_dir Nenhum Um caminho do Cloud Storage para os arquivos de saída do VEP. A hierarquia dos arquivos de entrada é replicada nesse local, mas os novos arquivos são anexados com _vep_output.vcf. Se o diretório já existir, a ferramenta Variant Transforms falhará.
--vep_image_uri gcr.io/gcp-variant-annotation/vep_91 A imagem do VEP do Docker do Cloud Genomics. O Google mantém a imagem padrão (VEP versão 91).
--vep_cache_path gs://gcp-variant-annotation-vep-cache/vep_cache_homo_sapiens_GRCh38_91.tar.gz (Recomendado para um genoma humano alinhado com uma sequência de referência GRCh38) Um caminho do Cloud Storage para a versão compactada do cache do VEP. É possível criar esse arquivo usando o script --build_vep_cache.sh.
--vep_info_field CSQ_VT O nome de um novo campo INFO que contém as anotações novas.
--vep_num_fork 2 O número de processos locais usados ao executar o VEP em um único arquivo. Para mais informações, consulte a sinalização --fork [num_forks] na documentação do VEP.
--shard_variants True Determina se os arquivos de entrada são fragmentados em arquivos VCF menores e temporários antes de anotá-los usando o VEP. Se os arquivos de entrada forem pequenos (por exemplo, se cada arquivo VCF tiver menos de 50.000 variantes), configurar essa sinalização como True pode desperdiçar recursos de computação.
--number_of_variants_per_shard 2.000 Se shard_variants for True, o número máximo de variantes gravadas em cada fragmento. Se você tiver um conjunto de dados com muitas amostras, convém usar um valor menor. O pipeline pode levar mais tempo para ser concluído quando é fornecido um valor menor. Na maioria dos casos, recomenda-se o valor padrão.

Solução de problemas

Se você executar o VEP com a ferramenta Variant Transforms e ela falhar, será criado um diretório logs que fornece registros das máquinas virtuais em que o processo foi executado. O diretório logs é especificado no caminho usado para a sinalização --annotation_output_dir. Para determinar a causa do problema, é possível inspecionar esses arquivos de registro, além dos registros padrão da ferramenta Variant Transforms.

A sinalização --check_ref (link em inglês) do VEP é ativada automaticamente quando você executa o VEP com a ferramenta Variant Transforms. Como resultado, os arquivos no diretório logs conterão uma lista de variantes que não correspondem à referência. Se você está usando o cache correto do VEP, nenhuma incompatibilidade é exibida, uma vez que elas são descartadas automaticamente e não aparecem na tabela de saída do BigQuery.

Consultas de amostra

Como extrair variantes de alto impacto

A amostra a seguir mostra como extrair variantes de alto impacto no gene HBB, que codifica a cadeia beta da hemoglobina:

#standardSQL
SELECT reference_name, start_position, reference_bases, ALT.alt, CSQ.*
FROM vcf_imports_external.gnomad_genomes_chr_hg19 AS T, T.alternate_bases AS ALT, ALT.CSQ AS CSQ
WHERE CSQ.SYMBOL = "HBB" AND CSQ.IMPACT = "HIGH"
ORDER BY start_position

A execução da consulta retorna:

Row reference_name start_position reference_bases alt allele Consequence IMPACT SYMBOL Gene Feature_type Feature BIOTYPE EXON INTRON
1 11 5246947 G GC C frameshift_variant HIGH HBB ENSG00000244734 Transcript ENST00000335295 protein_coding 3/3
2 11 5246957 T C C splice_acceptor_variant HIGH HBB ENSG00000244734 Transcript ENST00000335295 protein_coding 2/2
3 11 5246957 T C C splice_acceptor_variant&non_coding_transcript_variant HIGH HBB ENSG00000244734 Transcript ENST00000475226 retained_intron 1/1
4 11 5247805 C T T splice_donor_variant HIGH HBB ENSG00000244734 Transcript ENST00000335295 protein_coding 2/2
5 11 5247805 C T T splice_donor_variant&non_coding_transcript_variant HIGH HBB ENSG00000244734 Transcript ENST00000475226 retained_intron 1/1
6 11 5247991 CAAAG C - frameshift_variant HIGH HBB ENSG00000244734 Transcript ENST00000335295 protein_coding 2/3
7 11 5247991 CAAAG C - frameshift_variant HIGH HBB ENSG00000244734 Transcript ENST00000380315 protein_coding 4/4
8 11 5248003 G A A stop_gained HIGH HBB ENSG00000244734 Transcript ENST00000335295 protein_coding 2/3
9 11 5248003 G A A stop_gained HIGH HBB ENSG00000244734 Transcript ENST00000380315 protein_coding 4/4
10 11 5248199 T A A stop_gained HIGH HBB ENSG00000244734 Transcript ENST00000335295 protein_coding 1/3
11 11 5248199 T A A stop_gained HIGH HBB ENSG00000244734 Transcript ENST00000380315 protein_coding 3/4

O conjunto de dados gnomAD não tem chamadas nem amostras, mas é possível estender essa consulta para selecionar amostras com variantes de alto impacto.

Como mesclar dados com bancos de dados públicos do BigQuery

O exemplo a seguir mostra como mesclar dados com outros bancos de dados, como os de caminho, que estão disponíveis no BigQuery. Alguns dos bancos de dados disponíveis por meio do ISB-CGC (em inglês) são:

O exemplo a seguir mostra como extrair variantes de alto impacto na via de reparo de quebra de fita dupla, conforme definido pelo processo biológico GO (Gene Ontology) (GO:0006302) (em inglês):

#standardSQL
SELECT
  reference_name, start_position, reference_bases, ALT.alt,
  CSQ.Consequence, CSQ.Impact, CSQ.SYMBOL
FROM
  `vcf_imports_external.gnomad_genomes_chr_hg19` AS T,
  T.alternate_bases AS ALT, ALT.CSQ AS CSQ
WHERE
  # Note: Matching based on symbol is "best effort" as the names may not be
  # standardized across sources.
  CSQ.SYMBOL IN (SELECT DB_Object_Symbol
                 FROM `isb-cgc.genome_reference.GO_Annotations`
                 WHERE GO_ID = 'GO:0006302')
  AND CSQ.IMPACT = "HIGH"
ORDER BY
  start_position

A execução da consulta retorna o seguinte:

Row reference_name start_position reference_bases alt Consequence IMPACT SYMBOL
1 5 917449 G T splice_acceptor_variant&non_coding_transcript_variant HIGH TRIP13
2 12 1022568 A C stop_gained HIGH RAD52
3 12 1022568 A C stop_gained HIGH RAD52
4 12 1022568 A C stop_gained HIGH RAD52
5 12 1023125 G A stop_gained HIGH RAD52
6 12 1023125 G A stop_gained HIGH RAD52
7 12 1023125 G A stop_gained HIGH RAD52
8 12 1023167 G A stop_gained HIGH RAD52
9 12 1023167 G A stop_gained HIGH RAD52
10 12 1023167 G A stop_gained HIGH RAD52
11 12 1023217 G T stop_gained HIGH RAD52
12 12 1023217 G T stop_gained HIGH RAD52
13 12 1023217 G T stop_gained HIGH RAD52
14 12 1025654 TGA T frameshift_variant HIGH RAD52
15 12 1025699 T G splice_acceptor_variant&non_coding_transcript_variant HIGH RAD52
16 12 1036004 GC G frameshift_variant HIGH RAD52
17 12 1038977 C CT frameshift_variant HIGH RAD52