各种id转换 kegg id kegg compound id 与HMDB转换

news2024/12/25 1:27:26

KEGG COMPOUND 数据库 - 简书 (jianshu.com)

kegg id号转换为可读 的name :使用KEGGREST



 
#-------------kegg id的entry和Name转换            https://zhuanlan.zhihu.com/p/545494092
#BiocManager::install("KEGGREST") #安装KEGGREST这个包
library(KEGGREST) #加载该R包
listDatabases() #查看可以利用的数据库

keggList()
##获取pathway(所有物种)数据集中的数据
pathway<- keggList("pathway")
head(pathway)
rat_pathway=keggList("pathway",organism = "rno")
head(rat_pathway)


#hsa_pathway <- keggList("pathway","hsa") # 获取KEGG数据库中所有人类通路   https://zhuanlan.zhihu.com/p/434383719

hsa_pathway=rat_pathway
hsa_path <- data.frame(hsa_pathway) # 转成数据框,方便后续分析
print(head(hsa_path))
hsa_path$pathID <- substr(rownames(hsa_path),6,nchar(rownames(hsa_path)[1])) # 提取pathway ID

kegg compound id 与HMDB转换 :使用metabolystr包

   {
     0. #kegg id
      library(KEGGREST) #加载该R包
      library(tibble)
      listDatabases() #查看可以利用的数据库
      
      keggList()
      ##获取pathway(所有物种)数据集中的数据
      pathway<- keggList("pathway")
      head(pathway)
      rat_pathway=keggList("pathway",organism = "rno") 
      rat_pathway=data.frame(rat_pathway) %>%rownames_to_column(var = "kegg entry id")
      rat_pathway$metabolic_pathway=str_split(rat_pathway$rat_pathway,pattern = " - Rattus norvegicus \\(rat\\)",simplify = T)[,1]
      print(head(rat_pathway))
      
      save.mat$metabolic_pathway=rownames(save.mat)
      print(head(save.mat))
      # Merge the data frames based on the "metabolic_pathway" column
      merged_data <- merge(save.mat, rat_pathway, by = "metabolic_pathway")
      
      # Print the first few rows of the merged data
      print(head(merged_data))
      
      1. #kegg compound id
      rm(mSet)
      mSet<-InitDataObjects("list", "msetora", FALSE)
      cmpd.vec<-tmp.vec
      mSet<-Setup.MapData(mSet, cmpd.vec);
      mSet<-CrossReferencing(mSet, "name");
      mSet<-CreateMappingResultTable(mSet)
      metabolite_hmdb_kegg=mSet[["dataSet"]][["map.table"]] %>% as.data.frame() 
      
      metabolite_hmdb_kegg=metabolite_hmdb_kegg[ metabolite_hmdb_kegg$KEGG!="NA"&
                                                  !is.na(metabolite_hmdb_kegg$KEGG),]
      print(head(metabolite_hmdb_kegg))
      dim(metabolite_hmdb_kegg)
      
   2.#uniport id   
      deg_proteins=read.csv("/home/data/t040413/wpx/wpx_proteinomics/1_model_success_3/LCT(14+28)-NT-D28-Normal_control _differential_proteins.csv")
      deg_proteins=deg_proteins[deg_proteins$regulate!="NOT",]$protein_name
      
      print(getwd())
     
      
      print(gene.idtype.list )
      data(rn.list);
      print(names(rn.list))
      gene.ensprot <- sim.mol.data(mol.type = "gene", id.type = gene.idtype.list[4]) 
      head(gene.ensprot)
      cpd.simtypes
      
      
      head(deg_proteins$protein_name)
      print(head(metabolite_hmdb_kegg$KEGG))
      head(merged_data)
      pv.out <- pathview(gene.data = deg_proteins$protein_name,
                         cpd.data = metabolite_hmdb_kegg$KEGG, 
                        
                          gene.idtype = "UNIPROT", cpd.idtype = "kegg",
                         
                         pathway.id = "rno01040", # merged_data[,"kegg entry id"] [1], 
                         species = "rno",            out.suffix = "sel.genes.sel.cpd", 
                         keys.align = "y", 
                         kegg.native = T, 
                         key.pos = demo.paths$kpos1[1], 
                          limit = list(gene = 1, cpd = 1),
                         bins = list(gene = 1, cpd = 1), 
                         na.col = "gray", discrete = list(gene = T, cpd = T))
      
      
      pv.out <- pathview(gene.data = deg_proteins$protein_name,
                         cpd.data = metabolite_hmdb_kegg$KEGG,  
                         pathway.id = "rno01040", 
                         gene.idtype = "UNIPROT", cpd.idtype = "kegg",
                         
                         species = "rno",        
                         out.suffix = "sgfssel.genes.sel.cpd ", 
                         keys.align = "y", kegg.native = T, 
                         key.pos = demo.paths$kpos1[i], 
                          limit = list(gene = 5, cpd = 2),
                          bins = list(gene = 5, cpd = 2), 
                         na.col = "gray", discrete = list(gene = T, cpd = T))
      
      
      
      
    }

kegg compound 数据库存储了在生命活动中发挥作用的各种小分子,生物大分子和其他类型的化学物质,采用C number 进行标识,比如C00047, 代表L-赖氨酸。除了名称等信息外,还存储了该物质的化学结构和其他相关信息;

对于所有compound 的分类详见 Brite 数据库

image

Module 是ko的集合,但是ko只是基因集,真正参与生命活动的是这些基因的产物,在产物发挥作用的时候,也需要compound 的参与,所有会给出compound 相关的module。

Enzyme 数据库保存各种酶的相关信息,酶作为催化剂调控一些生物学过程的发生和进行,在这个过程中肯定也会有compound 的参与;比如1.1.1.306 这种酶催化的反应中, 供体提供甲酸才能进行反应,所以会给出compound 对应的Enzyme 编号;

总结

  1. compound 数据库存储了参与生命活动的各种分子的信息,数据库中的记录用C Number唯一标识, 每条分子都有对应的化学式,结构式,分子量等基本信息;

  2. compound 和reaction , module, pathway, enzeme 等多个数据库都有联系;


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/789519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android访问其他程序中的数据——以读取系统联系人为例

首先&#xff0c;需要保证通讯录里面有联系人存在&#xff0c;这里手动新增了两条数据。 activity_main.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmln…

SpringBoot创建和使⽤

1.什么是Spring Boot&#xff1f;为什么要学Spring Boot&#xff1f; Spring 的诞⽣是为了简化 Java 程序的开发的&#xff0c;⽽ Spring Boot 的诞⽣是为了简化 Spring 程序开发 的。 Spring Boot 翻译⼀下就是 Spring 脚⼿架&#xff0c;什么是脚⼿架呢&#xff1f;如下图所…

函数(超详解)

函数 1.什么是函数2.C语言中函数的分类2.1 库函数2.1.1如何使用库函数 2.2自定义函数 3.函数的参数3.1实际参数&#xff08;实参&#xff09;3.2形式参数&#xff08;形参&#xff09; 4.函数的调用4.1 传值调用4.2 传址调用4.3 练习 5.函数的嵌套使用和链式访问5.1 嵌套调用5.…

第15章 呈现数据

默认情况下&#xff0c;大多数bash命令会将输出导向STDOUT文件描述符。 数据追加到某个文件用>> 符号来完成。 who命令生成的输出会被追加到test2文件中已有数据的后面。 只重定向错误STDERR文件描述符被设成2。可以选择只重定向错误消息&#xff0c;将该文件描述符值…

day02_springboot综合案例

day02_springboot综合案例 订单操作 查询所有订单 查询所有订单流程 查询订单&#xff0c;要把订单对应的产品也要查出来 Orders实体类 Data public class Orders {private String id;private String orderNum;DateTimeFormat(pattern"yyyy-MM-dd HH:mm")privat…

多线程面试题--线程安全

synchronized关键字的底层原理 基础版 当我们对代码就行反编译&#xff0c;会发现其实synchronized就是monitor Monitor 假如现在有一个线程过来了&#xff0c;要执行当前代码&#xff0c;会执行到synchronized (lock)&#xff0c;lock是一个对象锁。首先会让这个lock对象和m…

Clion开发stm32之微妙延迟(采用nop指令实现)

前言 需要借助逻辑分析仪动态调整参数此次测试的开发芯片为stm32f103vet6 延迟函数 声明 #define NOP_US_DELAY_MUL_CNT 5 /*nop 微妙延迟需要扩大的倍数(根据实际动态修改)*/ void bsp_us_delay_nop(uint32_t us);void bsp_ms_delay_nop(uint32_t ms);定义 void bsp_us_dela…

【深度学习】yolov5以及yolov8的微调后的模型精度对比

文章目录 前言1. 训练1.1 yolov5 的 yolov5m61.2 yolov5 的 yolov5l61.3 yolov8 的训练 结论&#xff1a; 前言 做了一个烟火识别&#xff0c;用了2W张图片&#xff0c;标注包括&#xff1a;fire&#xff0c;smoke 。在coco80类的模型上进行ft&#xff0c; 借此机会进行比较一…

koa2 从0使用mysql2做第一个接口

全局安装Koa命令行工具: npm install -g koa/cli 2. 创建新项目: koa new my-app 这将生成如下目录结构: my-app ├── app.js ├── package.json └── src └── index.js 3. 安装依赖: cd my-app npm install 4. 启动项目: npm start 5.安装mysql2 yarn add…

升级JDK17问题记录

1. 放开标准库的模块访问限制 Jdk9模块后, 有些类访问, 需要通过如下配置打开访问权限 --add-opensjava.base/jdk.internal.miscALL-UNNAMED --add-opensjava.base/java.langALL-UNNAMED --add-opensjava.base/java.utilALL-UNNAMED --add-opensjava.base/java.lang.refle…

加载数据集

批量梯度下降法&#xff08;Batch Gradient Descent&#xff0c;BGD&#xff09;&#xff1a;在更新参数时&#xff0c;BGD根据batch中的所有样本对参数进行更新。&#xff08;计算速度快&#xff09; 随机梯度下降法&#xff08;Stochastic Gradient Descent&#xff0c;SGD&…

实训笔记7.21

实训笔记7.21 7.21一、MapReduce编程代码的打包问题与大数据集群环境中运行问题1.1 MR程序在运行的时候&#xff0c;job提交作业的时候会自动识别我们的运行环境&#xff0c;如果我们是在windows本地运行的话&#xff0c;MR程序识别的环境未LocalRunner这么一个环境&#xff0c…

王道考研数据结构--4.2循环队列

目录 前言 1.循环队列的定义 2.循环队列的结构 3.循环队列的操作 3.1定义循环队列 3.2初始化 3.3入队 3.4出队 3.5遍历&#xff0c;求表长 3.6清空销毁 4.完整代码 前言 日期&#xff1a;2023.7.25 书籍&#xff1a;2024年数据结构考研复习指导&#xff08;王道考研…

MySQL 中一条 SQL 的查询与更新

MySQL 中一条 SQL 的查询与更新 1 SQL 的查询1.1 MySQL 的逻辑架构图1.2 连接器1.3 查询缓存1.4 分析器1.5 优化器1.6 执行器 2 SQL 的更新2.1 redo log&#xff08;重做日志&#xff09;2.2 binlog&#xff08;归档日志&#xff09;2.3 redo log 和 binlog 日志的差异2.4 示例…

【Java SE】类和对象

目录 【1】面向对象的初步认识 【1.1】什么是面向对象 【1.2】面向对象与面向过程 【2】类定义和使用 【2.1】简单认识类 【2.2】类的定义格式 【2.3】练习 【2.3.1】定义一个狗类 【2.3.2】定义一个学生类 【3】类的实例化 【3.1】什么是实例化 【3.2】类和对象的…

Acwing.282 石子合并(动态规划)

题目 设有N堆沙子排成一排&#xff0c;其编号为1&#xff0c;2&#xff0c;3&#xff0c;…&#xff0c;N。 每堆沙子有一定的质量&#xff0c;可以用一个整数来描述&#xff0c;现在要将这N堆沙子合并成为一堆。 每次只能合并相邻的两堆&#xff0c;合并的代价为这两堆沙子的…

应用层协议——http

文章目录 1. HTTP协议1.1 认识URL1.2 urlencode和urldecode1.3 HTTP协议格式1.3.1 HTTP请求1.3.2 HTTP响应1.3.3 外网测试1.3.4 添加html文件1.3.5 HTTP常见Header1.3.6 GET和POST 1.4 HTTP的状态码1.4.1 301和3021.4.2 代码实现 1.5 Cookie1.5.1 代码验证1.5.2 Cookiesession …

【Nodejs】Puppeteer\爬虫实践

puppeteer 文档:puppeteer.js中文文档|puppeteerjs中文网|puppeteer爬虫教程 Puppeteer本身依赖6.4以上的Node&#xff0c;但是为了异步超级好用的async/await&#xff0c;推荐使用7.6版本以上的Node。另外headless Chrome本身对服务器依赖的库的版本要求比较高&#xff0c;c…

海外网红营销合作指南:详解海外合同与协议要点

随着互联网的发展和社交媒体的普及&#xff0c;海外网红营销成为了品牌推广和营销的重要力量。然而&#xff0c;这种跨国合作需要谨慎考虑&#xff0c;签订合适的合同与协议显得尤为重要&#xff0c;以确保各方权益得到保障并促进合作的顺利进行。本文Nox聚星将详细介绍与海外网…

Stable Diffusion - 扩展 Segment Anything 和 GroundingDINO 实例分割算法 插件的配置与使用

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/131918652 Paper and GitHub&#xff1a; Segment Anything: SAM - Segment Anything GitHub: https://github.com/facebookresearch/s…