Prática III
Explorando e Interpretando Arquivos VCF
Nesta seção prática, vamos criar um script R para carregar o arquivo VCF, extrair informações de anotação (especialmente o impacto funcional e a classificação de patogenicidade) e gerar gráficos.
Objetivos:
- Conhecer a interface gráfica básica do RStudio e princípios da linguagem R.
- Aplicar pacotes de manipulação de dados pelo R para quantificar e analisar variantes genéticas.
- Gerar gráficos para apresentação de resultados.
Passo-a-passo
01: Criar script R
Abra o RStudio, copie e cole o conteúdo abaixo e salve como praticaiii (a extensão .R é automática).
library(dplyr)
library(stringr)
library(tidyr)
library(glue)
library(ggplot2)
library(scales)
### Ctrl+Shift+H
### Selecione a pasta com os arquivos da prática como seu diretório de trabalho
getwd()
### PARTE 1: ORGANIZAÇÃO DOS DADOS
# Arquivo ANNOVAR .txt ---------------------------------------------------------
vcf <- data.table::fread("mgp-hg38.txt", sep = "\t", quote = "")
# Contar os tipos de variantes quanto à região ---------------------------------
tipo_var_regiao <- as.data.frame(table(vcf$Func.refGene))
# Selecionar variantes quanto à região -----------------------------------------
filt1 <- filter(vcf, Func.refGene == "exonic")
filt2 <- filter(vcf, Func.refGene == "intronic")
filt3 <- filter(vcf, Func.refGene == "splicing")
# Contar os tipos de variantes quanto à patogenicidade -------------------------
tipo_var_patogenicidade <- as.data.frame(table(vcf$CLNSIG))
# Selecionar variantes quanto à patogenicidade ---------------------------------
filt4 <- filter(vcf, CLNSIG %in% c("Pathogenic", "Pathogenic/Likely_pathogenic", "Pathogenic/Likely_pathogenic/Pathogenic,_low_penetrance", "Pathogenic/Likely_pathogenic/Pathogenic,_low_penetrance|other", "Pathogenic/Pathogenic,_low_penetrance|other", "Likely_pathogenic"))
filt5 <- filter(vcf, CLNSIG %in% c("Benign", "Benign/Likely_benign", "Likely_benign"))
filt6 <- filter(vcf, CLNSIG %in% c("Uncertain_significance"))
### PLOTS ----------------------------------------------------------------------
### PARTE 2: VISUALIZAÇÃO DOS DADOS
### PLOT - REGIAO FUNCIONAL
# Garantir que os dados estão organizados
tipo_var_regiao <- tipo_var_regiao %>%
rename(Regiao = Var1, Contagem = Freq) %>%
arrange(desc(Contagem))
# Criar gráfico de barras
ggplot(tipo_var_regiao, aes(x = reorder(Regiao, -Contagem), y = Contagem)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = format(Contagem, big.mark = ".", decimal.mark = ",")),
vjust = -0.5, size = 4) +
theme_minimal(base_size = 14) +
labs(
title = "Distribuição de variantes por região funcional",
x = "Região",
y = "Número de variantes"
) +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_y_continuous(labels = label_number(big.mark = ".", decimal.mark = ","))
### DÊ ZOOM E SALVE O GRÁFICO COMO "fig1"
### PLOT - PATOGENICIDADE
# Garantir que os dados estão organizados
tipo_var_patogenicidade <- tipo_var_patogenicidade %>%
rename(Patogenicidade = Var1, Contagem = Freq) %>%
arrange(desc(Contagem))
# Criar gráfico de barras
ggplot(tipo_var_patogenicidade, aes(x = reorder(Patogenicidade, -Contagem), y = Contagem)) +
geom_bar(stat = "identity", fill = "tomato") +
geom_text(aes(label = format(Contagem, big.mark = ".", decimal.mark = ",")),
vjust = -0.5, size = 4) +
theme_minimal(base_size = 14) +
labs(
title = "Distribuição de variantes por patogenicidade (CLNSIG)",
x = "Classificação",
y = "Número de variantes"
) +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_y_continuous(labels = label_number(big.mark = ".", decimal.mark = ","))
### DÊ ZOOM E SALVE O GRÁFICO COMO "fig2"
### PLOT - PATOGENICIDADE (excluindo não classificadas)
# Garantir que os dados estão organizados
tipo_var_patogenicidade_filtrado <- tipo_var_patogenicidade %>%
filter(!is.na(Patogenicidade) & Patogenicidade != ".") %>%
arrange(desc(Contagem))
# Criar gráfico de barras
ggplot(tipo_var_patogenicidade_filtrado, aes(x = reorder(Patogenicidade, -Contagem), y = Contagem)) +
geom_bar(stat = "identity", fill = "tomato") +
geom_text(aes(label = format(Contagem, big.mark = ".", decimal.mark = ",")),
vjust = -0.5, size = 4) +
theme_minimal(base_size = 14) +
labs(
title = "Distribuição de variantes por patogenicidade (CLNSIG - somente classificadas)",
x = "Classificação",
y = "Número de variantes"
) +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_y_continuous(labels = scales::label_number(big.mark = ".", decimal.mark = ","))
### DÊ ZOOM E SALVE O GRÁFICO COMO "fig3"
### EXCEL ----------------------------------------------------------------------
### PARTE 3: EXPLORAÇÃO DOS BANCOS DE DADOS PÚBLICOS
# Salvar o objeto filt4 como tabela .xlsx
writexl::write_xlsx(filt4, "variantes_patogenicas.xlsx")
02: Executar o software RStudio na interface gráfica X2GO
Agora podemos trabalhar com o script em R.
Executar linha por linha
- Para executar uma linha ou uma seleção do script:
- Clique na linha desejada (ou selecione o trecho).
- Pressione Ctrl + Enter (ou Cmd + Enter no Mac).
- O comando será executado no Console, que fica no painel inferior esquerdo.
Atividade 03
Considerando a classificação de posição funcional das variantes genéticas no genoma, qual o tipo de variante genética mais abundante entre as amostras sequenciadas?
E quanto à classificação de patogenicidade, qual o tipo de variante genética mais abundante?
Escolha uma variante genética classificada como patogênica e explore suas características no Ensembl e no UCSC Genome Browser. Lembre-se, todas as variantes genéticas conhecidas possuem rsID no dbSNP.