KEGG通路与基因的对应关系

基于 KEGGREST 包:

  1. p_load(KEGGREST)

hsa05215 (Prostate cancer) 通路为例。一切都要从 keggGet() 获取的全部信息开始:

  1. infos = keggGet("hsa05215")

数据很全面,包括其相关联的通路、发表的相关文献、相关疾病、治疗药物、内部基因等等。

提取基因信息:

  1. gene_info = matrix(infos[[1]]$GENE, ncol = 2, byrow = T)

如图所示,第一列为Gene ID,第二列为基因描述信息,以”;”分隔,前面即为Symbol,使用 stringr 包中的 str_extract() 函数可以很方便的提取出来:

  1. p_load(stringr)
  2. str_extract(gene_info[,2], "^[^;]*")

共计97个基因。

拓展来看,如果想获得所有pathway对应的所有基因也是可行的,实现上并非针对每个hsa*编号重复执行上述过程,而是通过 keggLink() 函数:

  1. kl = keggLink("pathway", "hsa")
  2. path_gid = data.frame(pathway = str_extract(kl, "[^:]*$"), id = str_extract(names(kl), "[^:]*$"))

如图所示,第一列为通路编号,第二列为Gene ID。结合 org.Hs.eg.db 包,我们还可以做更多,比如获取Symbol和Ensembl ID:

  1. p_load(org.Hs.eg.db, tidyverse)
  2. path_gene = path_gid %>%
  3. mutate_all(as.character) %>%
  4. mutate(
  5. symbol = mapIds(org.Hs.eg.db, id, "SYMBOL", "ENTREZID"),
  6. ensembl = mapIds(org.Hs.eg.db, id, "ENSEMBL", "ENTREZID")
  7. )

再获取通路的描述信息:

  1. paths = keggList("pathway", "hsa")
  2. path_descriptions = data.frame(pathway = str_extract(names(paths), "[^:]*$"), description = str_match(paths, "(.*) - ")[,2])

合并整理下:

  1. path_final = full_join(path_descriptions, path_gene, by = "pathway")

这个时候,通路和基因的对应关系就很明了了吧!得到这个表之后,我们至少还有三件事情可以做:

1、直接从中提取开题的hsa05215通路中的基因:

  1. path_final %>% filter(pathway == "hsa05215") %>% dplyr::select(symbol)

也是97个基因,与之前的结果一致!

2、获取特定基因对应的通路,即哪些通路中包含着你要做的目标基因!

3、保存到文件中,下次可以直接离线使用!

生物信息学

PICRUSt:16S预测宏基因组-扩增子分析

2020-2-27 14:10:34

生物信息学

Linux学习-常用和不太常用的实用awk命令

2020-2-28 14:54:52

声明 本网站部分文章源于互联网,出于传递更多信息和学习之目的转载,并不保证内容正确或赞同其观点。
如转载稿涉及失效、版权等问题,请立即联系管理员;我们会予以修改、删除相关文章,请留言反馈
Notice: When your legal rights are being violated, please send an email to: [email protected]
搜索