Como utilizar VEP -ensembl 105.0 em um VCF somático no Colab
Ensembl Variant Effect Predictor ou VEP te ajuda a determinar os efeitos das variantes encontradas nos dados a serem analisados; sendo eles genes, transcritos ou sequências proteicas. Precisando apenas das coordenadas das variantes e a mudança nucleica que foi observada.
O processo para utilização do VEP segue por:
- Montar o drive no Colab
- Instalar o VEP
- Fazer a anotação das variantes
Começar criando um novo notebook no seu Google Colab, uma vez no colab:
- Montar o drive no ambiente de trabalho, que permite criar e gerenciar os dados:
from google.colab import drive
drive.mount('/content/drive')
- Agora montamos um diretório específico para os documentos gerados. Utilizamos o
%%bash
para indicar ao Colab que este código está em bash e utilizamos o%cd
para fixar esse diretório como o diretório principal:
%%bash
mkdir vepsomatico
%cd somatico
- Para confirmar que o diretório que será utilizado é o que queremos, podemos usar:
%%bash
pwd
- Vamos instalar algumas módulos que serão utilizados mais adiante:
import pandas as pd
import csv
Com isso o ambiente de trabalho está preparado para receber o VEP.
Agora que temos nosso ambiente de trabalho preparado, podemos utilizar o próximo comando para instalar o VEP. Em ordem, cada linha do comando pode ser interpretada da seguinte forma:
- Instalação dos pacotes necessários para utilizar o VEP
- Fazer download do VEP na versão esembl-vep 105.0
- Descompactar o documento baixado
- As duas últimas linhas indicam ao colab para entrar no diretório do VEP onde foi descompactado e fazer a instalação
%%bash
sudo apt install unzip curl git libmodule-build-perl libdbi-perl libdbd-mysql-perl build-essential zlib1g-dev
wget -c https://github.com/Ensembl/ensembl-vep/archive/refs/tags/105.0.tar.gz
tar -zxvf 105.0.tar.gz
cd ensembl-vep-105.0
./INSTALL.pl --NO_UPDATE
Pronto, instalação comcluida. Podemos utilizar o código abaixo para testar se tudo ocorreu como o planejado:
%%bash
cd ensembl-vep-105.0
./vep
Por fim, com o ambiente de trabalho preparado e o VEP instalado, podemos fazer a anotação das variantes com o seguinte comando:
%%bash
/ensembl-vep-105.0/vep \
--fork 4 \
-i /caminho_documento_vcf/nome_documento_vcf.vcf.gz \
-o nome_desejado.filtered.vcf.tsv \
--dir_cache /caminho_dir_cashe/ \
--fasta /caminho_documento_fasta/nome_documento_fasta.fasta \
--cache --offline --assembly GRCh37 --refseq \
--pick --pick_allele --force_overwrite --tab --symbol --check_existing --variant_class --everything --filter_common \
--fields "Uploaded_variation,Location,Allele,Existing_variation,HGVSc,HGVSp,SYMBOL,Consequence,IND,ZYG,Amino_acids,CLIN_SIG,PolyPhen,SIFT,VARIANT_CLASS,FREQS" \
--individual all
Vamos interpretar os caminhos e nomes necessários para preencher corretamente o comando acima:
- em
-i
ocaminho_documento_vcf
se refere ao caminho do diretório onde o arquivo vcf a ser analisado está localoizado enome_documento_vcf
se refere ao nome do documento VCF que será analisado - em
-o
onome_desejado
se refere ao nome que você deseja utilizar no output do arquivo filtrado gerado pelo VEP - em
--dir_cache
o 'caminho_dir_cashe' se refere ao caminho do diretório cashe - em
--fasta
ocaminho_documento_fasta
é o caminho para o diretório onde está localizado o documento fasta As opções--cache
,--fields
e--individual
você deve preencher de acordo com o que você deseja gerar no seu output e a documentação para fazer a melhor escolha possível para cada caso pode ser encontrada neste link
Agora podemos visualizar o arquivo gerado pelo VEP, que faremos através de uma tabela gerada pelo pandas onde:
- em
caminho_para_vcf_tsv
indica o caminho do diretório para o arquivovcf.tsv
- em
nome_arquivo_vcf_tsv
se refere ao nome do arquivovcf.tsv
que foi gerado
tabela = pd.read_csv('/caminho_para_vcf_tsv/nome_arquivo_vcf_tsv.filtered.vcf.tsv', sep='\t', skiprows=38)
df = pd.DataFrame(tabela)
df
Exemplo de uma tabela gerada no final do processo:
index | #Uploaded_variation | Location | Allele | Existing_variation | HGVSc | HGVSp | SYMBOL | Consequence | IND | ZYG | Amino_acids | CLIN_SIG | PolyPhen | SIFT | VARIANT_CLASS | FREQS |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1_874643_C/A | 1:874643 | A | - | NM_001385640.1:c.1058-9C>A | - | SAMD11 | splice_polypyrimidine_tract_variant,intron_variant | WP312 | HET | - | - | - | - | SNV | - |
1 | 1_874647_C/A | 1:874647 | A | rs1336064632 | NM_001385640.1:c.1058-5C>A | - | SAMD11 | splice_polypyrimidine_tract_variant,splice_region_variant,intron_variant | WP312 | HET | - | - | - | - | SNV | - |
2 | 1_880620_A/C | 1:880620 | C | rs1569931554 | NM_015658.4:c.2054-94T>G | - | NOC2L | intron_variant | WP312 | HET | - | - | - | - | SNV | - |
3 | 1_894491_C/A | 1:894491 | A | - | NM_015658.4:c.27-30G>T | - | NOC2L | intron_variant | WP312 | HET | - | - | - | - | SNV | - |
4 | 1_907758_A/G | 1:907758 | G | rs757863610,COSV58020841 | NM_001367552.1:c.992A>G | NP_001354481.1:p.Glu331Gly | PLEKHN1 | missense_variant | WP312 | HET | E/G | - | - | - | SNV | 1KG_ALL:G:NA |
Chega!
```bash
< Se eu ganhar minha cerveja vai para o professor! 😜>
-----------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||