• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    教学以及管理操作教程

    教学以及管理操作教程

    ¥1,000.00 ¥100.00
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      教学以及管理操作教程

      教学以及管理操作教程

      ¥1,000.00 ¥100.00
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      生信星球

      • 首页
      • 博客
      • 生信星球
      • 为什么我的基因富集不到某个看似明显的通路?

      为什么我的基因富集不到某个看似明显的通路?

      • 发布者 weinfoeditor
      • 分类 生信星球
      • 日期 2020年1月24日
      测试开头

       今天是生信星球陪你的第522天


         大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~

         就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~

         这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!

      豆豆写于2020.1.23

      遇到的问题

      就是常规的差异分析结果进行GO富集分析,代码是:

      # 先获得差异分析结果DEG_mtx,然后按照log2FC排序
      geneList <- DEG_mtx$log2FoldChange
      # 这一步是去掉Ensemble ID的版本号,因为后面进行ID转换时,Ensemble ID是不支持版本号的
      names(geneList) <-  str_split(rownames(DEG_mtx) ,
                                        pattern = '\.',simplify = T)[,1]

      geneList <- sort(geneList,decreasing = T) 

      得到了这个背景基因集(universe gene list)之后,就可以进行富集分析

      library(org.Hs.eg.db)
      up_BP <- enrichGO(gene          = up.gene,
                            universe      = names(geneList),
                            keyType       = 'ENSEMBL',
                            OrgDb         = org.Hs.eg.db,
                            ont           = "BP",
                            pAdjustMethod = "BH",
                            pvalueCutoff  = 1,
                            qvalueCutoff  = 1,
                            readable      = TRUE)
      # 如果不用参数readable= TRUE,也可以使用设置up_BP富集分析结果的基因显示为Symbol ID
      up_BP <- setReadable(up_BP, OrgDb = org.Hs.eg.db)
      tmp <- as.data.frame(up_BP)

      比如我关注:GO:0030154 (cell differentiation)这个通路,放在数据框中查找,结果却是空的

      为什么我的基因富集不到某个看似明显的通路?

      思考🤔

      按说这个通路应该是很大的,不应该找不到这个通路的。

      首先查询这个通路

      注意这个链接的特点,以后可以快速查找:https://www.ebi.ac.uk/QuickGO/term/GO:0030154

      看到这个图,它也的确是在子节点,属于BP通路:

      为什么我的基因富集不到某个看似明显的通路?

      那么这个通路到底有多少基因呢?

      刚开始想从网页直接查询,但几分钟都没有查到。然后突然想到,不是有org.db这个强大的R数据库吗,而且之前也写过如果去获取其中的信息:如何快速理解GO富集结果?

      library(org.Hs.eg.db)
      go2gene <- toTable(org.Hs.egGO2ALLEGS)
      uni_gene <- unique(go2gene$gene_id[go2gene$go_id == 'GO:0030154'])
      > length(uni_gene)
      [1] 4239

      这个通路竟然有4000多个基因

      我们的差异基因有多少在这个通路呢?

      # 我们总共有这些基因,但它们是Ensemble ID,而uni_gene是Entrez ID,需要转换一下
      > length(up.gene)
      [1] 1445
      trans_id <- bitr(up.gene,fromType = "ENSEMBL",toType = "ENTREZID",
                       org.Hs.eg.db)

      然后找二者交集

      > length(intersect(trans_id$ENTREZID,uni_gene))
      [1] 231

      发现虽然我们这个通路有4000多个基因,但我们的1000多个差异基因中,也有200多个属于这个通路。因此不会不存在这个通路的

      那么问题出在哪里?

      我又看了一下enrichGO的参数,终于发现,原来它对GO term的基因数量做了限制:

      为什么我的基因富集不到某个看似明显的通路?

      它默认使用基因数量10-500的term进行富集分析,而我们这里的这个通路,由于基因数量4000多,所以不被纳入考量

      因此,如果真的要看这个通路,那么只需要修改一下参数:

      up_BP2 <- enrichGO(gene          = up.gene,
                            universe      = names(geneList),
                            keyType       = 'ENSEMBL',
                            OrgDb         = org.Hs.eg.db,
                            ont           = "BP",
                            pAdjustMethod = "BH",
                            pvalueCutoff  = 1,
                            qvalueCutoff  = 1,
                            readable      = TRUE,
                                   minGSSize = 10, maxGSSize = 5000)
      tmp2 <- as.data.frame(up_BP2)

      也可以看到结果比之前多了几百个通路富集【当然这里没进行任何的过滤,因为可以事后再过滤】

      为什么我的基因富集不到某个看似明显的通路?

      然后就能看到,这个通路出现了,并且还很比较显著:

      为什么我的基因富集不到某个看似明显的通路?

      关于事后过滤

      这个Y叔早已经多次介绍过了,并且很好用:https://wemp.app/posts/8ee2f29e-107d-4844-9c5c-7577ea3a1105
      不过需要使用enrichplot的开发版

      它的目的就是输出的富集分析结果作为数据框,然后自己过滤,最后把结果再转换为enrichResult对象,进行后续作图,例如:

      x=up_BP
      y = x[x$pvalue < 0.05, ]

      > dim(x);dim(y)
      [1] 4692    9
      [1] 549   9

      > class(y)
      [1] "data.frame"

      然后只需要加个参数:asis=T

      y = x[x$pvalue < 0.05, asis=T]
      > class(y)
      [1] "enrichResult"
      attr(,"package")
      [1] "DOSE"

      这样就完成了自行过滤,并且保持了原来的数据格式


      点击底部的“阅读原文”,获得更好的阅读体验哦😻

      初学生信,很荣幸带你迈出第一步

      🤓生信星球 🌎~ 一个不拽术语、通俗易懂的生信知识平台

      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoeditor

      上一篇文章

      恒诺新知数据传送系统发布
      2020年1月24日

      下一篇文章

      TCGA突变数据分析-mutation signafiture
      2020年1月30日

      你可能也喜欢

      8-1651673488
      生信零基础入门学习小组长期报名中(2022仍继续)
      7 4月, 2022
      2-1651673738
      简化版的ROC曲线
      21 2月, 2022
      8-1651674718
      支持向量机模型
      19 11月, 2021

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?