Enriquecimento de Vias: integração de CNVs e Expressão na LMA

Bruno Rodrigo Assunção 2024-02-14

Corpathway: Enriquecimento de vias de Genes correlacionados com CNVs e relacionados a LMA.

Este é um fluxo de análise para investigar o enriquecimento de vias moleculares para os genes envolvidos em vias biológicas da Leucêmia Mielóide Aguda. Genes os quais nesse conjunto experimental possuem alterações no número de cópias gênicas apresentam correlação estatísticas com a expressão gênicas.

Fundo

O conjunto de dados utilizados para esta análise parte da experimentação prévia realizada por ASSUNCAO B.R (2023) CNeExp. Deste modo, temos dois data frames para filtragem e anotação de vias.

Estes são:

  1. anotação de cnvs e os seus genes de um experimento tcga.

  2. correlação entre estes cnvs e expressão gênica.

00 - Input

1 - Seleção dos genes de interesse

1.1 Lista dos genes de interesse

Como esses genes possuem diferentes alelos e assim diferentes nomenclaturas, vamos utilizar um grep para buscar todos os genes na tabela de cnvs, utilizando a lista acima como referência. Deste modo, é possível obter todos os símbolos gênicos.

1.2 Grep da lista gênica de interesse.

Utilizamos um loop for() e a função grep() em R

Do modo acima, a nossa lista foi atualizada para todas as variações presentes a partir da nossa lista de entrada. Então, podemos finalmente selecionar os cnvs envolvendo os nossos genes de interesse presentes na tabela de cnvs.

1.3 Selecionar cnvs do data frame
1.4 Selecionar correlações
selectedGenesCorrelation <- chr_correlations[chr_correlations$gene %in% genesAML,]
1.5 Filtrar apenas regiões definidas como deleção ou duplicação.
1.6 Tabela com a contagem de cnvs por genes

2- Análise de enriquecimento de vias biológicas

2.1 Converter simbolos genicos para entrez ids

Primeiro devemos modificar os simbólos de genes para entrez id. Visto que esse é o input esperado pelo pacote reactomePA. Para isso vamos utilizar a função criada localmente symbols_to_entrez_id(), a qual esta depositada no pacote CNeEXP.

Função criada:

symbols_to_entrez_id <-function(input){
  library(org.Hs.eg.db) # mudar a forma de carregar essa library
  entrez_ids=NULL
  for (i in input) {
    x <-AnnotationDbi::select(x = org.Hs.eg.db, 
                              keys=i, 
                              keytype = "SYMBOL", 
                              columns = "ENTREZID")
    entrez_ids=rbind(entrez_ids, x)}
    }

Correlações positivas

inputPosCor[1:5,]
## NULL

Correlações Negativas

inputNegCor <- symbols_to_entrez_id(negative_correlations$gene)
2.2 Realizando a análise de enriquecimento
library(ReactomePA)
## 

## Registered S3 methods overwritten by 'treeio':
##   method              from    
##   MRCA.phylo          tidytree
##   MRCA.treedata       tidytree
##   Nnode.treedata      tidytree
##   Ntip.treedata       tidytree
##   ancestor.phylo      tidytree
##   ancestor.treedata   tidytree
##   child.phylo         tidytree
##   child.treedata      tidytree
##   full_join.phylo     tidytree
##   full_join.treedata  tidytree
##   groupClade.phylo    tidytree
##   groupClade.treedata tidytree
##   groupOTU.phylo      tidytree
##   groupOTU.treedata   tidytree
##   inner_join.phylo    tidytree
##   inner_join.treedata tidytree
##   is.rooted.treedata  tidytree
##   nodeid.phylo        tidytree
##   nodeid.treedata     tidytree
##   nodelab.phylo       tidytree
##   nodelab.treedata    tidytree
##   offspring.phylo     tidytree
##   offspring.treedata  tidytree
##   parent.phylo        tidytree
##   parent.treedata     tidytree
##   root.treedata       tidytree
##   rootnode.phylo      tidytree
##   sibling.phylo       tidytree

## ReactomePA v1.44.0  For help: https://yulab-smu.top/biomedical-knowledge-mining-book/
## 
## If you use ReactomePA in published research, please cite:
## Guangchuang Yu, Qing-Yu He. ReactomePA: an R/Bioconductor package for reactome pathway analysis and visualization. Molecular BioSystems 2016, 12(2):477-479
reactomePositiveCorrelations <- enrichPathway(
  sort(na.omit(inputPosCor$ENTREZID)), ## espera entrez_id
  organism = "human",
  pvalueCutoff = 0.05,
  pAdjustMethod = "BH",
  qvalueCutoff = 0.2,
  #universe,
  minGSSize = 10,
  maxGSSize = 500,
  readable = FALSE
)
## --> No gene can be mapped....

## --> Expected input gene ID: 23218,51300,84320,2277,64750,3745

## --> return NULL...
library(ReactomePA)
reactomeNegativeCorrelations <- enrichPathway(
  sort(na.omit(inputNegCor$ENTREZID)), ## espera entrez_id
  organism = "human",
  pvalueCutoff = 0.05,
  pAdjustMethod = "BH",
  qvalueCutoff = 0.2,
  #universe,
  minGSSize = 10,
  maxGSSize = 500,
  readable = FALSE
)

Armazenar os resultados em um data frame

reactomePositiveCorrelations <-as.data.frame(reactomePositiveCorrelations)
reactomeNegativeCorrelations <- as.data.frame(reactomeNegativeCorrelations)
reactomePositiveCorrelations[1:5,-1]
## data frame with 0 columns and 5 rows