欢迎关注微信公众号《生信修炼手册》!

KEGG pathway是最常用的功能注释数据库之一,可以利用KEGG 的API获取一个物种所有基因对应的pathway注释,human对应的API 链接如下

http://rest.kegg.jp/link/hsa/pathway

通过该链接可以获得以下内容

path:hsa00010 hsa:10327
path:hsa00010 hsa:124
path:hsa00010 hsa:125

第一列为pathway编号,第二列为基因编号。这里只提供了pathway编号,我们还需要pathway对应的描述信息,同样也可以通过以下API链接得到

http://rest.kegg.jp/list/

通过该链接可以获得如下内容

path:map00010 Glycolysis / Gluconeogenesis
path:map00020 Citrate cycle (TCA cycle)
path:map00030 Pentose phosphate pathway
path:map00040 Pentose and glucuronate interconversions
path:map00051 Fructose and mannose metabolism

第一列为pathway编号,第二列为具体的描述信息。需要注意的是,pathway是一个跨物种的概念,原始的pathway编号为map或者ko加数字,对于特定物种,改成物种对应的三字母缩写, 比如human对应hsa, 所有拥有pathway信息的物种和对应的三字母缩写见如下链接

https://www.genome.jp/kegg/catalog/org_list.html

clusterProfiler也是通过KEGG API去获取物种对应的pathway注释,对于已有pathway注释的物种,我们只需要知道对应的三字母缩写, clusterProfiler就会联网自动获取该物种的pathway注释信息。

和GO富集分析类似,对于KEGG的富集分析也包含以下两种

1. Over-Representation Analysis

过表达分析其实就是费舍尔精确检验,分析的代码如下

ego <- enrichKEGG(gene          = gene,keyType     = "kegg",organism   = 'hsa',pvalueCutoff      = 0.05,pAdjustMethod     = "BH",qvalueCutoff  = 0.05
)

我们只需要提供差异基因的列表和物种对应的三字母缩写,默认基因ID为kegg gene id, 通过keyType参数指定,也可以是ncbi-geneid, ncbi-proteind, uniprot

不同类型ID的转换也是通过KEGG API实现的,比如hsa的kegg gene id和ncbi-geneid的对应关系见以下链接

http://rest.kegg.jp/conv/ncbi-geneid/hsa

hsa:1 ncbi-geneid:1
hsa:100009667 ncbi-geneid:100009667
hsa:100009676 ncbi-geneid:100009676
hsa:10 ncbi-geneid:10
hsa:100 ncbi-geneid:100

在clusterProfiler中,可以通过bitr_kegg函数,调用KEGG API, 来实现ID 转换功能,示例如下

bitr_kegg(
"1",
fromType = "kegg",
toType = 'ncbi-proteinid',
organism='hsa')

2. Gene Set Enrichment Analysis

对应的函数为gseKEGG, 用法如下

kk <- gseKEGG(geneList  = gene,keyType  = 'kegg',organism = 'hsa',nPerm  = 1000,minGSSize = 10,maxGSSize = 500,pvalueCutoff = 0.05,pAdjustMethod     = "BH"
)

对于pathway数据库中没有的物种,也支持读取基因的pathway注释文件,然后进行分析,注释文件的格式如下

GeneId KEGG Description
1 ko:00001 spindle
2 ko:00002 mitotic spindle
3 ko:00003 kinetochore

只需要3列信息即可,第一列为geneID, 第二列为基因对应的pathway编号,第三列为pathway的描述信息。这3列的顺序是无所谓的, 只要包含这3种信息就可以了。

读取该文件,进行分析的代码如下

data <- read.table("pathway_annotation.txt",header = T,sep = "\t")go2gene <- data[, c(2, 1)]
go2name <- data[, c(2, 3)]# 费舍尔精确检验
x <- enricher(
gene,
TERM2GENE = go2gene,
TERM2NAME = go2name)# GSEA富集分析
x <- GSEA(
gene,
TERM2GENE = go2gene,
TERM2NAME = go2name)

对于KEGG富集分析的结果,clusterProfiler提供了以下几种可视化策略

1. barplot

用散点图展示富集到的pathways,用法如下

barplot(kk, showCategory = 10)

生成的图片如下

横轴为该pathway的差异基因个数,纵轴为富集到的pathway的描述信息, showCategory指定展示的pathway的个数,默认展示显著富集的top10个,即p.adjust最小的10个。注意的颜色对应p.adjust值,从小到大,对应蓝色到红色。

2. dotplot

用散点图展示富集到的pathways,用法如下

dotplot(kk, showCategory = 10)

生成的图片如下

横轴为GeneRatio, 代表该pathway下的差异基因个数占差异基因总数的比例,纵轴为富集到的pathway的描述信息, showCategory指定展示的pathway的个数,默认展示显著富集的top10个,即p.adjust最小的10个。图中点的颜色对应p.adjust的值,从小到大,对应蓝色到红色,大小对应该GO terms下的差异基因个数,个数越多,点越大。

3. emapplot

对于富集到的pathways之间的基因重叠关系进行展示,如果两个pathway的差异基因存在重叠,说明这两个节点存在overlap关系,在图中用线条连接起来,用法如下

emapplot(kk,  showCategory = 30)

生成的图片如下

每个节点是一个富集到的pathway, 默认画top30个富集到的pathways, 节点大小对应该pathway下富集到的差异基因个数,节点的颜色对应p.adjust的值,从小到大,对应蓝色到红色。

4. cnetplot

对于基因和富集的pathways之间的对应关系进行展示,如果一个基因位于一个pathway下,则将该基因与pathway连线,用法如下

cnetplot(kk, showCategory = 5)

生成的图片如下

图中灰色的点代表基因,黄色的点代表富集到的pathways, 默认画top5富集到的pathwayss, pathways节点的大小对应富集到的基因个数。

5. browseKEGG

在pathway通路图上标记富集到的基因,代码如下

browseKEGG(kk, "hsa04934")

会给出一个url链接,示例如下

https://www.kegg.jp/kegg-bin/show_pathway?hsa04934/111/23236/4221/9586/5087/1026/1871/1583/51176

在浏览器中打开会看到如下所示的图片

富集到的差异基因会用红色方框表示,更多用法和细节请参考官方文档。

扫描关注微信号,更多精彩内容等着你!

使用clusterProfiler进行KEGG富集分析相关推荐

  1. 使用R语言包clusterProfiler做KEGG富集分析时出现的错误及解决方法

    使用enrichKEGG做通路富集分析时,一直报错:显示No gene can be mapped.... k <- enrichKEGG(gene = gene, organism = &qu ...

  2. 如何利用clusterProfiler进行基因集的KEGG富集分析?

    NGS 测序项目,不管是基因组测序,还是转录组测序,通常会得到一个基因列表,记录了基因突变,或者高/低表达量. 对成百上千甚至上万个基因进行解读,往往是困难的,对基因进行分组以帮助对数据的理解就非常有 ...

  3. 富集分析原理和clusterProfiler包进行GO、KEGG富集分析详细说明

    概念: 基因富集分析是指对于给定一组基因根据基因组注释信息(GO.KEGG)对基因进行聚类分析,即给定的基因是不是GO中的一个功能(或KEGG中的一个通路). 基因的功能富集的目的是说明给定的基因集对 ...

  4. R语言|clusterprofile超几何分布富集分析 GO,KEGG富集分析,循环Fisher‘s test

    超几何分布富集分析 GO,KEGG富集分析,循环Fisher's test ID转换 GO KEGG 把KEGG里的geneid转回名称(readable table) 超几何分布以及生成data f ...

  5. 写一个KEGG富集分析的R语言代码

    . 有很多方法可以在R语言中完成KEGG富集分析.这里是一个简单的代码示例: library(clusterProfiler) library(KEGG.db)# 读取基因列表 geneList &l ...

  6. GO和KEGG富集分析详细步骤

    GO和KEGG富集分析 文章目录 GO和KEGG富集分析 @[toc] 1. 将差异表达结果的基因名称转化为id 2. GO富集分析 3. GO圈图绘制 4. KEGG富集分析 5. KEGG圈图绘制 ...

  7. go分析和kegg分析_GO和KEGG富集分析(Metascape数据库)

    介绍 生物信息学研究中,获取基因列表的GO和KEGG富集分析的需求非常常见.目前有许多生物信息学手段或者数据库可以实现基因富集分析,例如DAVID,但它们有些是收费的,有些不易于使用且很少维护.例如D ...

  8. 使用clusterProfiler进行GO富集分析

    欢迎关注微信公众号<生信修炼手册>! clusterProfiler是一个功能强大的R包,同时支持GO和KEGG的富集分析,而且可视化功能非常的优秀,本章主要介绍利用这个R包来进行Gene ...

  9. GO、KEGG富集分析实例讲解

    "组学"."数据挖掘"是近几年来我们经常听到的词汇,科研工作中也经常用到二代测序,不管送哪家测序公司进行测序或数据分析,结题报告中都会看到一个标准的分析套路:功 ...

  10. GO and KEGG富集分析

    GO 基因本体涉及的基因和基因产物词汇分为三大类,涵盖生物学的三个方面: 细胞组分(cellular component)CC:细胞的每个部分和细胞外环境. 分子功能(molecular functi ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第4期)
  2. Nat. Biotech. | AI、药物重定位和同行评审
  3. ERROR: No matching distribution found for onnxsim
  4. Python函数参数中的冒号与箭头
  5. “约见”面试官系列之常见面试题之第四十五篇CSS优先级(建议收藏)
  6. 微软老兵 Antoine LeBlond 将正式离职
  7. iOS关于armv7,armv7s,arm64,i386,x86_64等问题
  8. 带你掌握4种Python 排序算法
  9. 光线跟踪的几种常见求交运算
  10. DBUtils结果集处理
  11. 软件测试自学教程——书籍教程篇
  12. 电子设计教程4:稳压管稳压电路
  13. 1055 习题4-9-3 逆序输出正整数各位上数字
  14. 嵌入式(十三):嵌入式系统概念
  15. cocos2dx-setUserData
  16. spark大数据分析:spark Struct Strreaming(21) 数据流处理
  17. Java基础面试题(持续更新...)
  18. python爬虫抓图_Python 爬虫网页抓图保存
  19. [汇文教育]iOS内支付(IAP)研究
  20. 遥感影像辐射质量改善之复原(沈焕锋教授-武汉大学)

热门文章

  1. 为什么说软件测试很重要?
  2. 搜狗站长工具:索引量与收录量的解释,它等同于site的收录吗?
  3. 设计网站如何提高版式的设计水平?
  4. c++内存池作用和优势
  5. 商业化游戏服务器引擎自定义框架设计思路
  6. 修复苹果电脑运行过程中出现的声音、触摸板失灵、键盘错键、光标乱窜问题
  7. 个人对ReadyBoost加速你的Win7的看法
  8. 敌兵布阵——线段树单点修改区间查询
  9. STM32精确延迟1us和1ms的函数
  10. volatile能保持线程安全吗_volatile是什么?volatile能保证线程安全性吗?如何正确使用volatile?...