WORKFLOW BIOINFORMÁTICO PARA META ANALISE DE EXPRESSÃO DIFERENCIAL EM DADOS DE RNASEQ
Faça o download do binario do pacote R a partir do github metaDEG e o instale conforme o código a seguir
install.packages("D:/METADEG/metadeg_0.0.0.1000.tar.gz", repos = NULL, type = "source")
## Installing package into 'C:/Users/bruno/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
Preparação dos Dados:
Criamos dados fictícios de contagem e metadados para três estudos diferentes.
Cada estudo tem amostras com dados de expressão gênica
(Gene1, Gene2, Gene3), com
amostras classificadas como “Case” ou “Control”.
# Carregar pacotes necessários
library(limma)
library(edgeR)
library(meta)
## Warning: package 'meta' was built under R version 4.3.3
## Carregando pacotes exigidos: metadat
## Warning: package 'metadat' was built under R version 4.3.3
## Loading 'meta' package (version 7.0-0).
## Type 'help(meta)' for a brief overview.
## Readers of 'Meta-Analysis with R (Use R!)' should install
## older version of 'meta' package: https://tinyurl.com/dt4y5drs
# Criar dados de contagem normalizados para três estudos
set.seed(123)
counts_study1 <- data.frame(
SampleID = paste0("Sample", 1:8),
Gene1 = rpois(8, lambda=10),
Gene2 = rpois(8, lambda=15),
Gene3 = rpois(8, lambda=20)
)
counts_study2 <- data.frame(
SampleID = paste0("Sample", 9:16),
Gene1 = rpois(8, lambda=11),
Gene2 = rpois(8, lambda=16),
Gene3 = rpois(8, lambda=21)
)
counts_study3 <- data.frame(
SampleID = paste0("Sample", 17:24),
Gene1 = rpois(8, lambda=9),
Gene2 = rpois(8, lambda=14),
Gene3 = rpois(8, lambda=19)
)
counts_study1
## SampleID Gene1 Gene2 Gene3
## 1 Sample1 8 8 19
## 2 Sample2 9 19 16
## 3 Sample3 14 16 15
## 4 Sample4 10 16 18
## 5 Sample5 10 15 15
## 6 Sample6 15 12 17
## 7 Sample7 11 20 19
## 8 Sample8 5 18 14
# Criar metadados para cada estudo
metadata_study1 <- data.frame(
SampleID = paste0("Sample", 1:8),
Diagnosis = rep(c("Case", "Control"), each=4),
Donor = rep(paste0("Donor", 1:4), times=2),
Study = rep("Study1", 8)
)
metadata_study2 <- data.frame(
SampleID = paste0("Sample", 9:16),
Diagnosis = rep(c("Case", "Control"), each=4),
Donor = rep(paste0("Donor", 5:8), times=2),
Study = rep("Study2", 8)
)
metadata_study3 <- data.frame(
SampleID = paste0("Sample", 17:24),
Diagnosis = rep(c("Case", "Control"), each=4),
Donor = rep(paste0("Donor", 9:12), times=2),
Study = rep("Study3", 8)
)
metadata_study1
## SampleID Diagnosis Donor Study
## 1 Sample1 Case Donor1 Study1
## 2 Sample2 Case Donor2 Study1
## 3 Sample3 Case Donor3 Study1
## 4 Sample4 Case Donor4 Study1
## 5 Sample5 Control Donor1 Study1
## 6 Sample6 Control Donor2 Study1
## 7 Sample7 Control Donor3 Study1
## 8 Sample8 Control Donor4 Study1
limma-voom# Pacotes necessários
library(limma)
library(edgeR)
library(MASS) # Para o pseudo count
# Realizar a análise de expressão diferencial para cada estudo
DE_results_study1 <- metadeg::diff_expression(counts_study1, metadata_study1)
DE_results_study2 <- metadeg::diff_expression(counts_study2, metadata_study2)
DE_results_study3 <- metadeg::diff_expression(counts_study3, metadata_study3)
DE_results_study1
## logFC AveExpr t P.Value adj.P.Val B
## Gene1 -0.07327334 17.86515 -0.2497132 0.8056367 0.8997907 -4.646540
## Gene2 0.04977992 18.45409 0.2121359 0.8343847 0.8997907 -4.680835
## Gene3 0.01905374 18.59079 0.1277148 0.8997907 0.8997907 -4.765059
# Combinar resultados de DE para a meta-análise
DE_results_list <- list(DE_results_study1, DE_results_study2, DE_results_study3)
meta_results <- metadeg::metaDEG(DE_results_list)
# Visualizar os resultados da meta-análise
meta_results
## Gene EffectSize StdErr p.value p.adj
## 1 Gene1 0.006095957 0.1715450 0.9716526 0.9716526
## 2 Gene2 0.027284262 0.1158034 0.8137366 0.9716526
## 3 Gene3 0.016970869 0.1266248 0.8933830 0.9716526
Interpretar os resultados da meta-análise de expressão diferencial envolve entender como os tamanhos de efeito combinados e os valores de p se traduzem em conclusões sobre a expressão gênica diferencial entre casos e controles através de múltiplos estudos. Aqui está um guia detalhado sobre como interpretar esses resultados:
Para cada estudo individual (usando limma-voom), os
resultados típicos incluem:
logFC (log fold-change): Representa a mudança
logarítmica na expressão gênica entre os casos e controles. Valores
positivos indicam aumento na expressão nos casos em comparação aos
controles, e valores negativos indicam diminuição.
AveExpr (expressão média): Expressão média do gene
em todas as amostras.
t (estatística t): Medida da relação entre o
coeficiente estimado (logFC) e seu erro padrão.
P.Value (valor p): Significância estatística do
coeficiente estimado. Valores menores indicam maior evidência contra a
hipótese nula.
adj.P.Val (valor p ajustado): Valor p ajustado para
múltiplos testes usando o método FDR (False Discovery Rate).
Após combinar os resultados dos estudos individuais, a tabela
meta_results inclui:
Gene: Nome do gene.
EffectSize: Tamanho do efeito combinado (geralmente
uma média ponderada dos logFCs dos estudos individuais).
StdErr: Erro padrão do tamanho do efeito
combinado.
p.value: Valor p da meta-análise, indicando a
significância estatística do tamanho do efeito combinado.
p.adj: Valor p ajustado para múltiplos testes na
meta-análise.
meta_results
## Gene EffectSize StdErr p.value p.adj
## 1 Gene1 0.006095957 0.1715450 0.9716526 0.9716526
## 2 Gene2 0.027284262 0.1158034 0.8137366 0.9716526
## 3 Gene3 0.016970869 0.1266248 0.8933830 0.9716526Tamanho do Efeito Combinado
(EffectSize):
Um tamanho de efeito positivo indica que o gene é, em média, mais expresso nos casos do que nos controles através dos estudos.
Um tamanho de efeito negativo indica que o gene é, em média, menos expresso nos casos do que nos controles.
Quanto maior o valor absoluto do tamanho do efeito, mais forte é a diferença na expressão gênica entre os casos e controles.
Erro Padrão (StdErr):
Valor p (p.value):
Indica a significância estatística do tamanho do efeito combinado.
Valores p baixos (geralmente < 0.05) sugerem que a diferença na expressão gênica é estatisticamente significativa.
Valor p Ajustado (p.adj):
Corrige os valores p para múltiplos testes, reduzindo a chance de falsos positivos.
Genes com valores p.adj abaixo de um limiar
(geralmente 0.05) são considerados diferencialmente expressos de forma
significativa em múltiplos estudos.
Suponha que o resultado da meta-análise para um gene específico seja:
Gene EffectSize StdErr p.value p.adj
Gene1 1.2 0.3 0.001 0.01
Gene: Gene1
EffectSize: 1.2
StdErr: 0.3
p.value: 0.001
p.adj: 0.01
Interpretar os resultados da meta-análise ajuda a identificar genes que são consistentemente diferencialmente expressos entre casos e controles através de múltiplos estudos. Esses genes podem ser candidatos para estudos adicionais, validação experimental ou como biomarcadores potenciais para a condição estudada.