• 自己的数据集做富集分析 自定义基因集做富集分析clusterprolifer


    OrgDb库

    1. enrichGO默认gene type是entrezID,但其他OrgDb支持的类型(ENSEMBLE,SYMBOL等)都可以通过参数keyType指定。
    2. gene的ID type不一样,富集的结果也会有稍微的差异。
      原gene list是entrezID,直接通过bitr转换成ensembl和symbol,分别做enrichGO。
      发现entrezedID可能对应多个ENSEMBL的。
      entrezedID和SYMBOL是一一对应的

      image.png


      dim(gene.df[!duplicated(gene.df$ENSEMBL),])

    entrezedID 207
    ENSEMBL 239
    SYMBOL 207

    1)因为ensembl在库中多个ID会对应同一个entrez,因此四个数值都要大一些
    2)entrez和symbol 可能是因为是在db中是一一对应?,因此结果一模一样。
    3)Y叔建议尽量不用SYMBOL做enrichGO。

    entrez

    symbol

    ensemble

    1. bitr其实是使用AnnotationHub的select,将库中的不同类型GeneID重新转换。

    enrichGO

    1. universe:默认不指定,这样就直接使用orgDB的所有基因作为背景。
      如果指定,相当与将universe的基因集和orgDB的基因做交集,作为背景。(因为只有orgDB的基因有注释信息)
      需要和KeyType指定类型相同。
    2. minGSSize和maxGSSize:背景基因注释到某个GO的geneset需要在此范围内才会输出该GO的结果。
      默认范围(10,500)
      以下是默认参数(10,500):4个结果
      参数设为 (0,Inf):40个结果,仅截取部分

       

      image.png

    3. 阈值的选择
      背景注释到GO的geneset太小,会得到很小的p值,但结果可能不具参考性?
      背景注释到GO的geneset很大,一般p值也会增大。

       

      image.png

    GO&GOALL

    1. 查询Org.Hs.db的manual
      http://bioconductor.org/packages/release/data/annotation/manuals/org.Hs.eg.db/man/org.Hs.eg.db.pdf
    2. org.Hs.egGO
      entrezID和GOID是一对一对应的。不包含GO下属的其他节点的term
      org.Hs.egGO2ALLEGS
      一个GO和所有相关的entrez GENE(被注释到该GO或者它的child nodes),因此比前者的库要更大,包含更多信息

    分析过程

    orgDb select,将所有entrezID作为query,提取GOALL信息。

    1. CC分类全部Gene ID,即为背景注释到总体数。去重复(因为一个gene可能注释到多个CC类的term)
      cat Hs.db.GO|grep CC|sort -k1,1 -u|wc -l
    2. 某个GO类全部Gene ID,即为背景注释到该GO数(即成功数)
      gene可能有重复
      cat Hs.db.GO|awk '$2=="GO:0005575"{print $1,$2}'|sort -k1,1 -u|wc -l
    3. input genelist中能注释到CC类的数目。
      4.input genelist中每个基因能注释到的GO,并按照每个GO类对gene计数。input genelist里能注释到某个GO类的gene数目。
    4. 结果
    BgRatio : M/NGeneRatio:k/n
    M 背景所有能注释到某个GO的基因k genelist中能注释到某个GO的基因
    N 背景所有能注释到CC的基因n genelist中能注释到CC的基因

    CC结果中,n和N不变,M和k随不同的GO类不同。

    结果

    1. pvalue = phyper(k-1,M, N-M, n, lower.tail=FALSE)
    2. p.adj = p.adjust(pvalue, method="BH")
    3. qobj = qvalue(dfqvalues

    enricher

    1. 用自己的注释信息来做富集分析。
    2. TERM2GENE: df,第一列是term ID(比如GO ID),第二列是mapped gene。
      TERM2NAME :df,第一列是term ID,第二列是相应term name。optional。
      这样背景基因和注释库都可以自己建立。

       

      image.png

    3. 其他参数同enrichGO。
  • 相关阅读:
    VMware设置Linux网络
    厚膜功率电阻器制造:优化性能
    Spring Boot 项目的常用注解与依赖
    乐元素 X Hologres:一站式高性能游戏运营分析平台
    1480. 一维数组的动态和
    【电商】管理后台篇之安全、菜单、通知管理
    第5章 验证码识别
    19.12 Boost Asio 获取远程进程
    LeetCode 209. 长度最小的子数组
    嵌入式Linux应用开发-Framebuffer 应用编程
  • 原文地址:https://blog.csdn.net/qq_52813185/article/details/127689137