获取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

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

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

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

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

相关文章

申请Github Education获取免费Copilot权限(2024.3.18实测成功)

起因&#xff1a;旧帐户Copilot权限被封 我已经离开Github Copilot就无法独自耐着性子写代码了&#xff08;懒惰AI成瘾性&#xff09;&#xff0c;这两天Github Copilot不知道为什么在大规模封号&#xff0c;我不幸也被封号了&#xff08;禁用掉了Github Copilot权限&#xff…

Python:柱状-折线图

写论文&#xff0c;需要画数据分析图&#xff1a; 用柱状图描述算法执行时间用折线图描述性能改进 示例代码&#xff1a; import numpy as np import matplotlib.pyplot as plt from matplotlib.pyplot import MultipleLocatorSecurity ["128", "192",…

Linux第82步_“gpio子系统”下的使用KEY开关灯

使用新字符设备驱动的一般模板和“gpio子系统”&#xff0c;以及设备树&#xff0c;驱动KEY和LED。 1、在stm32mp157d-atk.dts文件中添加“gpio_led”和“key0”节点 打开虚拟机上“VSCode”&#xff0c;点击“文件”&#xff0c;点击“打开文件夹”&#xff0c;点击“zgq”&…

HTTPS 协议原理

目录 HTTPS VS HTTP HTTPS是什么 概念准备 常见的加密方式 对称加密 一个简单的对称加密例子 非对称加密 数据摘要&&数据指纹 数字签名 HTTPS 的工作过程探究 方案1-只使用对称加密 方案2-只使用非对称加密 方案3-双方都使用非对称加密 方案4-非对称加密…

Cell发表的单细胞整合方法:LIGER,很好用!

之前&#xff0c;我们已经介绍过其他的整合方法&#xff1a; harmony整合单细胞数据-去除批次效应 Seurat一键完成五种数据整合&#xff1a;harmony&#xff0c;CCA&#xff0c;RPCA,FastMNN,scVI&#xff0c;代码分享 今天来看看Cell发表的LIGER 介绍 LIGER&#xff08;Li…

C++语言学习(二)—— C++语言的基本知识

目录 一、面向对象的三个核心概念 二、C语言中的I/O口 三、C语言中的数据类型​​​​​​​ 3.1 逻辑类型 3.2 引用类型 3.2.1 引用作为函数参数 3.2.2 引用作为函数返回值 3.2.3 引用作为类成员 3.3 类类型 四、 C语言中的内联函数 五、 函数重载 六、 带默认形参…

docker 容器挂掉,无法exec 进入bash 怎么修改容器里的文件

在使用tdengine 数据库时出现了 TDengine.Driver.TDengineError:“code:[0x334],error:Out of dnodes” 查找文档发现需要修改一个配置文件 。 /etc/taos/taos.cfg 中的 supportVnodes 参数 于是修改 保存。然后&#xff0c;运行出错。 03/21 06:56:27.986498 00000064 …

IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器

文章目录 1. 检查Linux SSH服务2. 本地连接测试3. Linux 安装Cpolar4. 创建远程连接公网地址5. 公网远程连接测试6. 固定连接公网地址7. 固定地址连接测试 本文主要介绍如何在IDEA中设置远程连接服务器开发环境&#xff0c;并结合Cpolar内网穿透工具实现无公网远程连接&#xf…

[音视频学习笔记]六、自制音视频播放器Part1 -新版本ffmpeg,Qt +VS2022,都什么年代了还在写传统播放器?

前言 参考了雷神的自制播放器项目&#xff0c;100行代码实现最简单的基于FFMPEGSDL的视频播放器&#xff08;SDL1.x&#xff09; 不过老版本的代码参考意义不大了&#xff0c;我现在准备使用Qt VS2022 FFmpeg59重写这部分代码&#xff0c;具体的代码仓库如下&#xff1a; …

基于python+vue渔船出海及海货统计系统的设计与实现flask-django-php-nodejs

当今社会已经步入了科学技术进步和经济社会快速发展的新时期&#xff0c;国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。传统渔船出海及海货统计采取了人工的管理方法&#…

抖音视频爬虫下载软件|可导出视频分享链接|视频批量采集工具

无水印视频关键词批量下载工具操作指南 我们自主开发了一款便捷的音视频批量下载工具&#xff0c;不仅支持单个视频链接提取&#xff0c;还可通过关键词搜索实现批量采集和选择性下载&#xff0c;让您轻松获取所需视频内容。 操作说明&#xff1a; 关键词批量采集视频 进入软件…

AI绘画可以稳定生成中文了:白嫖阿里云部署AnyText

长久以来&#xff0c;在AI绘画中书写文字一直是个难题。即使到了SDXL时代&#xff0c;我们也只能输出英文&#xff0c;而且还经常出现漏掉字母的情况。现在阿里达摩院搞出了一个解决方案&#xff0c;可以在Stable Diffusion生成的作品中稳定输出中、英、日、韩等多种文字&#…

python共享单车信息系统的设计与实现flask-django-php-nodejs

课题主要分为二大模块&#xff1a;即管理员模块和用户模块&#xff0c;主要功能包括&#xff1a;用户、区域、共享单车、单车租赁、租赁归还、报修信息、检修信息等&#xff1b; 语言&#xff1a;Python 框架&#xff1a;django/flask 软件版本&#xff1a;python3.7.7 数据库…

【Unity】从0到1的横版2d制作笔记-DAY3

确定碰撞体积 选择rigidbody2d&#xff0c;创建player重力 创建player碰撞体积 创建瓦片地图碰撞体积 使平台变成一个整体 ​​​​​ 设置Body Type为Static&#xff08;避免平台也因为重力影响下落&#xff09; 回到Player&#xff0c;在Rigidbody2D中设置为冻结旋转 Player设…

python家政服务系统flask-django-php-nodejs

相比于以前的传统手工管理方式&#xff0c;智能化的管理方式可以大幅降低家政公司的运营人员成本&#xff0c;实现了家政服务的标准化、制度化、程序化的管理&#xff0c;有效地防止了家政服务的随意管理&#xff0c;提高了信息的处理速度和精确度&#xff0c;能够及时、准确地…

解决mini2440 LCD(型号:P43)驱动的背光失效问题

目录 概述 1 LCD(P43)背光问题 1 移植LCD驱动程序 1.1 编写驱动代码 1.2 编写LCD的配置参数 1.3 配置LCD驱动至内核 2 移植触摸功能程序 2.1 移植ADC驱动程序 2.1.1 编写ADC驱动代码 2.1.2 编写配置文件 2.2 移植P43的一线触摸程序 2.2.1 编写代码 2.2.2 编写配置链…

-bash: ./1.sh: /bin/bash^M: bad interpreter: No such file or directory解决方法

1、执行脚本 ./1.sh时报如下错误 -bash: ./1.sh: /bin/bash^M: bad interpreter: No such file or directory 2、在Windows编辑的脚本导入Linux系统中&#xff0c;执行报错问题 yum install -y dos2unix 3、或者本地安装 rpm -ivh /mnt/Packages/dos...... 4、然…

基于python+vue中医学习服务管理系统flask-django-php-nodejs

随着世界经济信息化、全球化的到来和互联网的飞速发展&#xff0c;推动了各行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、动态的、交互友好的、高效的中医学习服务管理系统。当前的信息管理存在工作…

利用Jmeter工具对服务器,数据库进行性能监控,压测,导出性能测试报告

Jmeter是Apache基金会旗下的一款免费,开源,轻量级的性能测试工具,主要针对web应用程序客户端/服务器进行性能测试.它可以分别测试静态、动态资源(Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等),它可以通过线程组来模拟数个用户,在一段时间内同时登录服务器,数个用…

Matlab使用教程(持续更新)

1. Matlab Matlab被广泛的应用在数据分析&#xff0c;汽车仿真&#xff0c;机器人以及医学研究等众多方面。 它可以帮助我们理解研究复杂的系统。 在60年代和70年代&#xff0c;计算机使得科学家和工程师完成了以前不可能进行的计算&#xff1b;但是需要懂得计算机编程。 C…