获取KEGG通路的基因列表 做单细胞GSEA、GSVA分析

使用KEGG通路的基因列表进行单细胞GSEA GSVA分析的过程,我们需要遵循以下步骤:

  1. 获取KEGG通路的基因列表:这通常涉及使用专门的R包,如KEGGRESTbiomaRt,来查询KEGG数据库并检索特定通路的基因列表。

  2. 准备单细胞表达数据:这包括加载单细胞RNA-seq数据,通常使用Seurat或其他单细胞分析包进行预处理。

  3. 执行GSVA分析:使用GSVA包对单细胞数据执行基因集变异分析(GSVA),根据KEGG通路的基因列表评估每个单细胞样本的通路活性。

  4. 可视化GSVA结果:最后,基于GSVA分析结果,绘制热图或其他类型的图表来展示不同单细胞样本中通路活性的变化。

今天我们主要关注第一步,如何获取KEGG通路的基因列表?

问题来源

不管是转录组数据还是单细胞数据都可以做gsva分析。gsva需要两个文件作为输入:

1. 表达矩阵

2. 基因集

表达矩阵容易获得,但是如果我们想做kegg数据库的通路分析怎么办?如何获取kegg的通路列表?

获取kegg的通路列表代码

  • 方法一:使用msigdb

 library(msigdbr)    genesets = msigdbr(species = "Homo sapiens"  ) #msigdbr提供多个物种的基因集数据    # View(msigdbr_collections()) #查看msigdbr包中所有的基因集    unique(genesets$gs_subcat)  # 有多个数据库来源的基因集可选,这里选用KEGG    genesets <- subset(genesets, gs_subcat=="CP:KEGG", select = c("gs_name", "gene_symbol"))    unique(genesets$gs_name) #查看有多少条通路(186个)    

但是这里面的kegg只有186个基因集合

  • 方法二 使用 KEGGREST

    #BiocManager::install("KEGGREST")    #BiocManager::install("EnrichmentBrowser")    library("KEGGREST")    library("EnrichmentBrowser")    KEGGREST:: listDatabases()    KEGGREST::keggList(database ='kegg')    keggList("organism") ## returns the list of KEGG organisms with    #step2: check and obtain a list of entry identifiers (in this case: sar) and associated definition for a given database or a given set of database entries.    res <- keggList("pathway", "hsa") ## returns the list of human pathways    length(res)    res=as.data.frame(res)    head(res)    #step 3: download the pathways of that organism:    hsapathway <- downloadPathways("hsa")    head(hsapathway)    idTypes(org = 'hsa' )    #step 4: retrieve gene sets for an organism from databases such as GO and KEGG:    hsa_kegg_genesets <- getGenesets(org = "hsa", db = "kegg",                                     gene.id.type = "SYMBOL",                                     cache = TRUE, return.type="list")        #step5: Parse and write the gene sets to a flat text file in GMT format for other pathway enrichment analysis programs (e.g., GSEA):    writeGMT(hsa_kegg_genesets, gmt.file = "kegg_hsa_kegg_genesets_gmt")    save(hsa_kegg_genesets,file = "~/heart_muscle/hsa_kegg_genesets.rds")

我们可以看到这里的kegg数据集合有357个

做gsva分析

 library(GSVA);print(getwd())  load("~/heart_muscle/hsa_kegg_genesets.rds")  genesets_kegg=hsa_kegg_genesets  print(length(hsa_kegg_genesets))  #kegg---  gssea.res <- gsva(expr, genesets_kegg [1:50], method="ssgsea",kcdf="Poisson",min.sz > 3,max.sz=200 ,parallel.sz=10 )   saveRDS(gssea.res, paste0(new_dir,file_name,"_gssea.res_kegg.rds"  )  )    gssea.df <- data.frame(Genesets=rownames(gssea.res),gssea.res, check.names = F)  write.csv(gssea.df,  paste0(new_dir,file_name,"gssea_res_kegg.csv" ), row.names = F)        # ssgsea-----  #library(GSVA);print(getwd())  #gssea.res <- gsva(expr, genesets_GO [1:50], method="ssgsea",kcdf="Poisson",min.sz > 3,max.sz=200 ,parallel.sz=10 )  #,parallel.sz=10  #saveRDS(gssea.res, paste0(new_dir,file_name,"_gssea.res_go.rds"  )  )    #gssea.df <- data.frame(Genesets=rownames(gssea.res), gssea.res, check.names = F)  #write.csv(gssea.df,  paste0(new_dir,file_name,"gssea_res_go.csv"), row.names = F)   #print("done-------");print(getwd())

这里的expr是行为基因列为样本的 表达矩阵。

参考:https://biobeat.wordpress.com/category/r/https://www.researchgate.net/post/How_i_can_get_a_list_of_KEGG_pathways_and_its_list_of_genes

分析完成之后,可以使用新得到的通路矩阵进行差异分析。下期见~

看完记得顺手点个“在看”哦!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

详解JS原型与原型链的关系

1、构造函数原型prototype (1)、构造函数通过原型分配的函数是所有对象所共享的&#xff1b; (2)、JavaScript规定&#xff0c;每一个构造函数都有一个prototype属性&#xff0c;指向另一个对象&#xff1b; (3)、注意这个prototype就是一个对象&#xff0c;这个对象的所有属性…

Scikit-Learn逻辑回归(二)

Scikit-Learn逻辑回归二&#xff1a;多项式与正则化 1、多项式回归回顾1.1、逻辑回归为什么要使用多项式1.2、多项式回归及原理 2、逻辑回归与多项式 1、多项式回归回顾 本文接上篇&#xff1a;Scikit-Learn逻辑回归(一) 上篇中&#xff0c;我们详细介绍了逻辑回归的概念、原理…

使用 React antd 的ProFormSelect组件 搜索查询 多选的写法

使用 React antd 的ProFormSelect组件 搜索查询 多选的写法 需求&#xff1a;需要一个搜索框&#xff0c;可以选择员工&#xff0c;&#xff08;员工人数多无法一次性获取&#xff0c;全部放入options中&#xff09;&#xff0c;所以需要使用搜索功能&#xff0c;而且是可以多…

XR“黑话”

MTP&#xff08;Motion-To-Photon Latency&#xff09;&#xff1a;实际人体发生运动到图像显示到屏幕上的时间延迟。早期一些vr产生晕动症的主要原因。 ATW&#xff08;Asynchronous Timewarp&#xff09;&#xff1a;主要解决两个问题&#xff0c;一是延迟&#xff0c;二是补…

CSS弹性盒模型(学习笔记)

一、厂商前缀 1.1 作用 解决浏览器对C3新特性的兼容&#xff0c;不同的浏览器厂商&#xff0c;定义了自己的厂商前缀 1.2 语法 浏览器 厂商前缀内核(渲染引擎)&#xff1a;解析htmlcssjs谷歌 -webkit-blink苹果-webkit-webkit欧朋-o-blink火狐 -moz-geckoIE-ms- trid…

OpenCV4.9.0开源计算机视觉库安装教程

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 引言&#xff1a;OpenCV系列文章中的安装部分今天全部完成了&#xff0c;为了读者更方便阅读&#xff0c;大家可以按下列索引前往&#xff0c;成文较为仓促有错漏在所难免&#xff0c;欢迎大家指正…

服务器运行一段时间后

自己记录一下。 一、查看目录占用情况 df -h 命令查看磁盘空间 du -ah --max-depth=1 / 查看根目录下各个文件占用情况 二、mysql日志清空 这个日志是可以清空的 echo > /usr/local/mysql/data/syzl-db2.log #将文件清空 说明: 这个文件这么大是因为,开启 …

将OpenCV与gdb驱动的IDE结合使用

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV4.9.0开源计算机视觉库在 Linux 中安装 下一篇&#xff1a;将OpenCV与gcc和CMake结合使用 ​ 能力 这个漂亮的打印机可以显示元素类型、、标志is_continuous和is_subm…

微信小程序分销返佣模式--小程序1-3级分销插件--小程序分销--

团购小程序是一种基于社区团购模式的电商平台&#xff0c;主要面向社区居民用户。 如果你想要开发一款分销团购小程序可以参考以下功能需求进行开发制作。 1、用户注册和登录 提供用户注册和登录功能&#xff0c;使用户能够创建和管理他们的账户。 2、会员管理 包括会员注…

springboot网站开发-诡异的static/images读取故障

springboot网站开发-诡异的static/images读取故障!我在本地环境测试代码&#xff0c;一切正常。可以读取到该路径下的图片模板&#xff0c;正常生成图片存储在本地D盘下面的文件夹。但是改成服务器linux环境后就不行了。打包发布后&#xff0c;死活读取不到图片模板。 这个故障…

HTML(一)

一、网页 1.1 什么是网页 网站是指在因特网上根据一定的规则&#xff0c;使用 HTML 等制作的用于展示特定内容相关的网页集合。 网页是网站中的一“页”&#xff0c;通常是 HTML 格式的文件&#xff0c;它要通过浏览器来阅读。 网页是构成网站的基本元素&#xff0c;它通常由…

基于python+vue智慧农业小程序flask-django-php-nodejs

传统智慧农业采取了人工的管理方法&#xff0c;但这种管理方法存在着许多弊端&#xff0c;比如效率低下、安全性低以及信息传输的不准确等&#xff0c;同时由于智慧农业中会形成众多的个人文档和信息系统数据&#xff0c;通过人工方法对知识科普、土壤信息、水质信息、购物商城…

FreeRTOS任务相关API函数

1. FreeRTOS任务相关API函数介绍 函数描述uxTaskPriorityGet()获取任务优先级vTaskPrioritySet()设置任务优先级uxTaskGetNumberOfTasks()获取系统中任务的数量uxTaskGetSystemState()获取所有任务状态信息vTaskGetInfo()获取指定单个的任务信息xTaskGetCurrentTaskHandle()获…

解决1130-Host‘ ‘is not allowed to connect to this MySQL server,实现远程连接本地数据库

参考:https://blog.csdn.net/CoCo629vanilla/article/details/129008644 在使用Navicat远程连接本地数据库时&#xff0c;遇到了这样一个问题&#xff0c; 我使用 本地主机的地址&#xff0c;连接本地的数据库&#xff0c;报错host ‘’ is not allowed to connect to this my…

转座子插入序列分析2-自制分析流程

我们先观察一下测序的结果&#xff0c;是否有一些什么规律&#xff0c;因为使用的靶向富集法的测序&#xff0c;我们使用了特殊序列将插入了转座子的部分钓了出来&#xff0c;然后进行的测序&#xff0c;所以理论上富集到的所有序列都应该存在一段与我们钓鱼序列互补的“靶点序…

Redis实战:缓存穿透及其解决思路 实战演示

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏Redis实战与进阶 本专栏讲解Redis从原理到实践 …

YOLOv5改进 | 图像去雾 | 利用图像去雾网络AOD-PONO-Net网络增改进图像物体检测(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是利用AODNet图像去雾网络结合PONO机制实现二次增强&#xff0c;我将该网络结合YOLOv5针对图像进行去雾检测&#xff08;也适用于一些模糊场景&#xff0c;图片不清晰的检测&#xff09;&#xff0c;同时本文的内容不影响其它的模块改进…

【嵌入式硬件】步进电机

1.步进电机简介 1.1步进电机基本原理 步进电机的英文是stepping motor。step的中文意思是行走、迈步。所以仅从字面上我们就可以得知,步进电机就是一步一步移动的电动机。说的官方一点儿,步进电机是一种将电脉冲信号转换成相应角位移或者线位移的电动机(直线电机)。下图为…

交通事故档案管理系统|基于JSP技术+ Mysql+Java+Tomcat的交通事故档案管理系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

AI程序员的崛起还是人类程序员的消亡?

最近有个对互联网行业影响极大的爆炸新闻&#xff1a; 我们这个圈子里有了个新玩家——AI程序员。 没错&#xff0c;就是那种用人工智能技术驱动的编程助手。你可能听说过Devin&#xff0c;这家伙不是一般的程序员&#xff0c;它能迅速学习新技术&#xff0c;还能在编码、找bug…