美文网首页R语言
如何将clusterProfiler富集结果中entrezID转

如何将clusterProfiler富集结果中entrezID转

作者: Z_bioinfo | 来源:发表于2022-04-15 10:06 被阅读0次

    两种方法将难懂的entrezID转换为geneSymbol

    首先加载相关的R包
    # 适用于猪的基因,其他物种对应调整
    # 猪:org.Ss.eg.db  人:org.Hs.eg.db 小鼠:org.Mm.eg.db
    library(org.Hs.eg.db )
    library(openxlsx)
    install.packages("openxlsx", dependencies = TRUE)
    安装包
    install.packages("tidyverse")
    #使用前,记得载入包
    library(tidyverse)
    library(clusterProfiler)
    
    第一种方法:直接使用DOSE::setReadable()函数

    注意:使用前提是你的富集结果对象类型必须是:'enrichResult' , 'gseaResult' or 'compareClusterResult'其中的一个,也就是用clusterProfiler里的富集函数直接给出的结果

    # 一句代码转化,kegg为富集结果
    kegg_SYMBOL <- DOSE::setReadable(kegg,
                              OrgDb = "org.Hs.eg.db ",
                              keyType = "ENTREZID")
    
    第二种方法:自定义函数进行转换

    注意:使用前提是你的富集结果对象类型必须是:'enrichResult' , 'gseaResult' or 'compareClusterResult'其中的一个,也就是用clusterProfiler里的富集函数直接给出的结果

    # 提取富集结果
    kegg <- kegg@result
    # 此时在转换就会报错
    kegg_SYMBOL <- DOSE::setReadable(kegg,
                              OrgDb = "org.Hs.eg.db",
                              keyType = "ENTREZID")
    #>> Error in DOSE::setReadable(kegg, OrgDb = "org.Hs.eg.db ", keyType = "ENTREZID") : 
    #>>   input should be an '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.Hs.eg.db)[,"SYMBOL"]
      # 再SYMBOL合并为字符串,并返回结果
      SYMBOL_chr <- paste0(SYMBOL,"",collapse ="/")
      return(SYMBOL_chr)
    }
    # 自定义函数进行转换
    kegg$gene_name <- unlist(map(kegg$geneID,entrezID2geneSymbol))
    #>> 'select()' returned 1:1 mapping between keys and columns
    #>> 'select()' returned 1:1 mapping between keys and columns
    #>> 'select()' returned 1:1 mapping between keys and columns
    #>> 'select()' returned 1:1 mapping between keys and columns
    #>> 'select()' returned 1:1 mapping between keys and columns
    #>> 'select()' returned 1:1 mapping between keys and columns
    #>> 'select()' returned 1:1 mapping between keys and columns
    #>> ....
    #导出保存
    write.csv(kegg, "kegg_result.csv")
    
    image.png

    相关文章

      网友评论

        本文标题:如何将clusterProfiler富集结果中entrezID转

        本文链接:https://www.haomeiwen.com/subject/gtpfertx.html