KEGG数据库的rest API(附带R语言小技巧)
时间:2022-05-06
本文章向大家介绍KEGG数据库的rest API(附带R语言小技巧),主要内容包括补充阅读:、另外:附赠一个基因ID转换R语言完成方式:、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
发现感兴趣的KEGG ID居然不在KEGG.db
包里面,比如:
hsa05034 Alcoholism hsa05030 Cocaine addiction
导致下面的代码失效:
library(KEGG.db)
ls("package:KEGG.db")
cellcycle_genes=KEGGPATHID2EXTID[['hsa04110']]
cytokine_genes=KEGGPATHID2EXTID[['hsa04060']]
KEGGPATHID2EXTID[['hsa05034']]
KEGGPATHID2EXTID[['hsa05030']]
其实,即使不失效,也不能使用这种方法来找属于某个pathway的基因集合了,因为这个R包以及很多年没有更新了。
搜索了一下,发现KEGG数据库的rest API,比如
http://rest.kegg.jp/get/hsa05034 (点击阅读原文可以直达)
本来准备读入到R里面,然后自己解析,发现其实已经有了R包:
library(KEGGREST)
listDatabases()
## ----get_organisms------------------------------------------------------------
org <- keggList("organism")
head(org)
keggGet('hsa05034')
gs <- keggGet('hsa05034')
gs[[1]]$GENE
genes <- unlist(lapply(gs[[1]]$GENE,function(x) strsplit(x,';')[[1]][1]))
genes[1:length(genes)%%2 ==0]
当然了,这个R包的功能不止如此:https://bioconductor.org/packages/release/bioc/html/KEGGREST.html 我就不多演示了,感兴趣的朋友去探索一下。
补充阅读:
pathway gif动画版 可视化 :https://github.com/ajmazurie/kegg-animate-pathway
另外:附赠一个基因ID转换R语言完成方式:
ensembl2symbol <- function(genes){
library(org.Hs.eg.db)
eg2symbol=toTable(org.Hs.egSYMBOL)
eg2ensembl=toTable(org.Hs.egENSEMBL)
#genes=sample(eg2ensembl$ensembl_id,100)
tmp=merge(eg2symbol,eg2ensembl,by='gene_id')
return(tmp[tmp$ensembl_id %in% genes,])
}
genes=sample(eg2ensembl$ensembl_id,100)
ensembl2symbol(genes)
genes=sample(eg2ensembl$ensembl_id,100)
ensembl2symbol(genes)
genes=sample(eg2ensembl$ensembl_id,100)
ensembl2symbol(genes)
就当是我当年参加生信技能树直播编程活动提交的作业吧!
- rman数据备份恢复学习笔记(49天)
- 虚拟专用数据库VPD应用 (48天)
- 关于创建视图的问题(48天)
- 性能调优之redo切换频率(47天)
- 关于oracle中session跟踪的总结(56天)
- oracle中关于小数中0的格式化(55天)
- 关于trigger过滤最大值的问题(54天)
- oracle共享服务器配置汇总(53天)
- 关于drop user的cascade选项解惑(52天)
- ORACLE数据文件名导致的奇怪问题 (51天)
- linux下挂载新硬盘和分区的步骤 (50天)
- 通过shell脚本生成数据统计信息的报表 (笔记65天)
- 物化视图全量刷新的简单测试(63天)
- Golang语言社区--Go操作CSV文件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Vue+SpringBoot项目实战(一) 搭建环境
- kubernetes(十九) Ceph存储入门
- Java并发编程(8)- 应用限流及其常见算法
- 字符集其实很简单
- kubernetes(二十)SpringCloud微服务容器化迁移
- HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!
- kubernetes(七) 二进制部署k8s(1.18.4版本)
- Java并发编程(7)- 线程调度 - 线程池
- Java并发编程(6)- J.U.C组件拓展
- Java并发编程(5)- J.U.C之AQS及其相关组件详解
- Python+selenium 自动化-启用带插件的chrome浏览器,调用浏览器带插件,浏览器加载配置信息。
- Java并发编程(4)- 线程安全策略
- Java并发编程(3)- 如何安全发布对象
- Python 技术篇-3行代码实现语音朗读,pywin32库实现语音朗读
- Java并发编程(2)- 线程安全性详解