美文网首页注释和富集good code
ID转换、利用clusterProfiler做GO、KEGG富集

ID转换、利用clusterProfiler做GO、KEGG富集

作者: 欧阳松 | 来源:发表于2020-01-02 23:15 被阅读0次

    首先需要加载的包

    library(AnnotationHub)  
    library(org.Hs.eg.db)   
    library(clusterProfiler)
    library(DOSE)   #GO分面用
    library(ggplot2)  #加大泡泡图圈圈
    

    需要准备的文件

    • 包含gene列表的txt或csv文件,如“genelist.txt
    • 格式为ENSEMBL

    一、读取表格

    f <- read.table("genelist.txt")    # genelist.txt内容ENSEMBL格式
    f <- f[c(1)] 
    

    二、ID转换

    EG2Ensembl=toTable(org.Hs.egENSEMBL)      
    f=f$V1  
    geneLists=data.frame(ensembl_id=f)
    results=merge(geneLists,EG2Ensembl,by='ensembl_id',all.x=T)
    id=na.omit(results$gene_id)
    

    三、富集分析

    (1)GO富集分析(MF、BP、CC)
    • 分析
    #包含MF、BP和CC的GO分析
    All <- enrichGO(OrgDb="org.Hs.eg.db", gene = id, ont = "ALL",  readable= TRUE) 
    #GO-MF富集分析
    MF <- enrichGO(OrgDb="org.Hs.eg.db", gene = id, ont = "MF",  readable= TRUE) 
    #GO-BP富集分析
    BP <- enrichGO(OrgDb="org.Hs.eg.db", gene = id, ont = "BP",  readable= TRUE) 
    #GO-CC富集分析
    CC <- enrichGO(OrgDb="org.Hs.eg.db", gene = id, ont = "CC",  readable= TRUE) 
    

    • 作图
    #泡泡图,显示前10项,标题为“Enrichment GO Top10”
    dotplot(All,showCategory=10,title="Enrichment GO Top10") 
    #柱状图,显示前20项,标题为“Enrichment GO Top10”
    barplot(All, showCategory=20,title="EnrichmentGO")  
    
    # BP,MF,CC分别显示(要加载DOSE包)
    barplot(All, split="ONTOLOGY")+ facet_grid(ONTOLOGY~.,scale="free")
    dotplot(All, split="ONTOLOGY")+ facet_grid(ONTOLOGY~.,scale="free")
    

    (2) KEGG分析
    KEGG <- enrichKEGG(gene= id, organism  = 'hsa', pvalueCutoff = 0.05)     #KEGG富集分析
    barplot(KEGG,font.size=8)   # 柱状图,字体大小8
    dotplot(KEGG,font.size=8)   # 气泡图,字体大小8
    dotplot(KEGG,showCategory=10,title="Enrichment KEGG Top10") #泡泡图
    browseKEGG(KEGG,'mmu01100') # 显示通路图
    

    (3) 个性定制
     #字体大小,显示项数,标题,泡泡大小,需加载ggplot2
    dotplot(KEGG, font.size=8, showCategory=10, title="Enrichment KEGG Top10") + scale_size(rang=c(5.20))
     #文本太长超出的解决方案
    library(stringr)
    library(ggplot2)
    barplot(All)+scale_x_discrete(labels=function(x) str_wrap(x,width=10))
    dotplot(All)+scale_y_discrete(labels=function(x) stringr::str_wrap(x, width=60))
    
    ego2 <-
    cnetplot(ego2, foldChange=geneList)
    cnetplot(ego2, foldChange=geneList, circular =TRUE, colorEdge =TRUE) (只显示5项,如加项可输入showCategory=10等)
    

    相关文章

      网友评论

        本文标题:ID转换、利用clusterProfiler做GO、KEGG富集

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