close
首先加載相關的R包
#適用於豬的基因,其他物種對應調整#豬:org.Ss.eg.db 人:org.Hs.eg.db 小鼠:org.Mm.eg.dblibrary(org.Ss.eg.db)library(openxlsx)library(tidyverse)library(clusterProfiler)第一種方法:直接使用DOSE::setReadable()函數
注意:使用前提是你的富集結果對象類型必須是:'enrichResult' , 'gseaResult' or 'compareClusterResult'其中的一個,也就是用clusterProfiler里的富集函數直接給出的結果
#一句代碼轉化,kegg為富集結果kegg_SYMBOL<-DOSE::setReadable(kegg,OrgDb="org.Ss.eg.db",keyType="ENTREZID")第二種方法:自定義函數進行轉換
適用於你的數據對象已經不是上面提到的三種類型之一,比如你把富集結果提取出來保存成了數據框
#提取富集結果kegg<-kegg@result#此時在轉換就會報錯kegg_SYMBOL<-DOSE::setReadable(kegg,OrgDb="org.Ss.eg.db",keyType="ENTREZID")#>>ErrorinDOSE::setReadable(kegg,OrgDb="org.Ss.eg.db",keyType="ENTREZID"):#>>inputshouldbean'enrichResult','gseaResult'or'compareClusterResult'object...#定義函數:輸入一個ENTREZID字符返回對應gene symbol的字符entrezID2geneSymbol<-function(entrezID){#測試向量#test<-kegg$geneID[1]#entrezID<-test#將字符串切分為向量entrezID<-as.vector(str_split(entrezID,"/",simplify=T))#ENTREZID轉換為SYMBOL,返回向量SYMBOL<-bitr(entrezID,"ENTREZID","SYMBOL",org.Ss.eg.db)[,"SYMBOL"]#再SYMBOL合併為字符串,並返回結果SYMBOL_chr<-paste0(SYMBOL,"",collapse="/")return(SYMBOL_chr)}#自定義函數進行轉換kegg$gene_name<-unlist(map(kegg$geneID,entrezID2geneSymbol))#>>'select()'returned1:1mappingbetweenkeysandcolumns#>>'select()'returned1:1mappingbetweenkeysandcolumns#>>'select()'returned1:1mappingbetweenkeysandcolumns#>>'select()'returned1:1mappingbetweenkeysandcolumns#>>'select()'returned1:1mappingbetweenkeysandcolumns#>>'select()'returned1:1mappingbetweenkeysandcolumns#>>'select()'returned1:1mappingbetweenkeysandcolumns#>>....
參考資料:
https://bioconductor.org/packages/release/bioc/html/clusterProfiler.html

全站熱搜