单细胞+代谢最新套路!高分文章的最爱,请低调使用
bigegpt 2024-10-20 04:31 13 浏览
scMetabolism包_单细胞层面定义代谢
Hi,大家好,我是晨曦
今天这期推文我们来学习一个新的R包:scMetabolism包
我们用比较简短的话就可以概括这个R包的功能——scMetabolism包是一个在单细胞分辨率下定量代谢活动的R包
研究代谢相关领域的小伙伴不要错过哦~
那么我们开始吧
期刊信息
引言
关于这个R包的文章是下面这篇文章
当然晨曦也是整体浏览了一下这篇文章,这篇文章主要内容可以概括为:肝转移是结直肠癌死亡的主要原因,具有高度异质性和抑制性的免疫微环境。在这篇文献中,作者使用单细胞RNA测序和空间转录组学对97个匹配的样本进行了测序。比较值得注意的是,转移微环境发生了显著的免疫抑制细胞的空间重编程,然后作者进一步开发了scMetabolism,一种量化单细胞代谢的计算piplines
当然具体的生物学领域并不是我们研究的重点,我们主要感兴趣的是这个R包应该如何去使用,那么下面我们就探索一下这个R包的构造加深我们后续使用的理解
Metabolism包解构
相信做过转录组测序的小伙伴们应该知道,我们平时进行ssGSEA富集分析或者GSVA富集分析的时候消耗的时间是比较长的,那么对于scRNA-seq这种高维度的数据时间的增加可不仅仅是一个简单的线性关系
本文作者开发了scMetabolismR包,整合了代谢定量和数据可视化,而且证明了该算法与Seurat的良好兼容性,可广泛适用于scRNA-seq数据
下面就是这个R包的结构
我们可以很清楚的看到,这个R包的整合了KEGG和REACTOME数据库相关的代谢基因集并且生成了一份更加全面的代谢基因集
那么计算代谢富集情况的相关算法主要是VISION、AUCell和ssGSEA来量化代谢途径活性,我们前面的推文曾经介绍过,有了参考基因集和算法我们就可以进行代谢的相关分析
至于可视化方面这个R包也提供了三种配套的可视化方案,至此,我们了解这个R包到这里就可以了
晨曦下面再来总结一下这个R包的特点
1. scMetabolismR包,整合了代谢定量和数据可视化,而且证明了该算法与Seurat的良好兼容性,可广泛适用于scRNA-seq数据进行单细胞层面代谢的相关计算
2. 整合KEGG和REACTOME的相关基因集,生成了一份高质量的代谢基因集列表
3. R包自带三种可视化方式,方便我们展示结果
代码实战
那么接下来,我们就来进行代码实操的相关部分
第一步:下载相关R包
这里其实就有一些“技巧”,晨曦在自己的笔记本上运行下面的代码基本上是没有任何问题(可能会提示你安装其它依赖包)
#windows电脑
options("repos" =c(CRAN="http://mirrors.cloud.tencent.com/CRAN/"))#选择镜像
install.packages(c("devtools", "data.table", "wesanderson", "Seurat", "devtools", "AUCell", "GSEABase", "GSVA", "ggplot2","rsvd"))
devtools::install_github("YosefLab/VISION")
devtools::install_github("wu-yc/scMetabolism")
但是在云服务器上运行相同的代码下载就是频繁的报错,探索到原因貌似是因为需要提前下载一个R包,但是这个R包的下载是需要服务区的root权限的,晨曦没有所以捣鼓了1h也没有成功,但是好在本地电脑下载是没有问题的,所以也并不影响使用
#准备工作
library(scMetabolism)
library(ggplot2)
library(rsvd)
#加载测试数据集
load(file = "pbmc_demo.rda")#外周血细胞(PBMC)的数据集
晨曦解读
需要注意的点:
1. 支持在单细胞分辨率下代谢的量化和可视化
2. 目前支持人类scRNA-seq数据
countexp.Seurat<-sc.metabolism.Seurat(obj = countexp.Seurat, method = "VISION", imputation = F, ncores = 2, metabolism.type = "KEGG")
#提取代谢评分
#metabolism.matrix <- countexp.Seurat@assays$METABOLISM$score
晨曦解读
obj is a Seurat object containing the UMI count matrix*(数据要求)
method supports VISION, AUCell, ssgsea, and gsva, which VISION is the default method(算法选择)
如果VISION包下载不下来可以这里进行调节
imputation allows users to choose whether impute their data before metabolism scoring(数据处理步骤)
这块晨曦探索得到的结论是,如果我们这里选择T,会首先对我们的数据进行一个预处理的步骤(聚类和ALRA【针对稀疏矩阵的数据预处理】)但是添加后结果并没有太多的改变,反而增加了运行时间,所以这里默认即可
ncores is the number of threads of parallel computation(并行线程数)
metabolism.type supports KEGG and REACTOME, where KEGG contains 85 metabolism pathways and REACTOME contains 82 metabolism pathways(参考数据集)
#可视化案例1
DimPlot.metabolism(obj = countexp.Seurat, pathway = "Glycolysis / Gluconeogenesis", dimention.reduction.type = "umap", dimention.reduction.run = F, size = 1)
countexp.Seurat is a Seurat object containing the UMI count matrix.
pathway is the pathway of interest to visualize.
dimention.reduction.type supports umap and tsne
dimention.reduction.run allows users to choose whether re-run the dimention reduction of the given Seurat object.
size is the dot size in the plot
#可视化案例2
input.pathway<-c("Glycolysis / Gluconeogenesis", "Oxidative phosphorylation", "Citrate cycle (TCA cycle)")
DotPlot.metabolism(obj = countexp.Seurat, pathway = input.pathway, phenotype = "ident", norm = "y")
obj is a Seurat object containing the UMI count matrix.
pathway is the pathway of interest to visualize.
phenotype is the one of the features contained in the metadata in the Seurat object.
norm refers to scale the value according to row or column. Users can choose "x", "y", and "na".
#可视化案例3
BoxPlot.metabolism(obj = countexp.Seurat, pathway = input.pathway, phenotype = "ident", ncol = 1)
obj is a Seurat object containing the UMI count matrix.
pathway is the pathway of interest to visualize.
phenotype is the one of the features contained in the metadata in the Seurat object.
ncol refers to the column number per row.
到这里这个R包的主要使用方法就结束了,总体来说是一个很好的用的R包,研究代谢和单细胞的小伙伴们可不要错过哦
当然到这里我们并没有停止对这个R包的探索,我们接下来从安装和数据类型来探索一下这个R包
探索1:VISION包怎么也安装不上,可不可以不使用这个R包?
#替换方法即可
countexp.Seurat<-sc.metabolism.Seurat(obj = countexp.Seurat, method = "AUCell", imputation = F, ncores = 2, metabolism.type = "KEGG")
探索2:可不可以不用Seurat对象,提供counts矩阵可不可以(可以,但是不建议)
metabolism.matrix<-sc.metabolism(countexp = countexp, method = "VISION", imputation = F, ncores = 2, metabolism.type = "KEGG")
countexp is a data frame of UMI count matrix (col is cell ID, row is gene name).
method supports VISION, AUCell, ssgsea, and gsva, which VISION is the default method.
imputation allows users to choose whether impute their data before metabolism scoring.
ncores is the number of threads of parallel computation.
metabolism.type supports KEGG and REACTOME, where KEGG contains 85 metabolism pathways and REACTOME contains 82 metabolism pathways.
探索3:这个R包还有什么更加重要的内容?
A.提供了代谢基因列表,我们也可以把数据download下来进行ssGSEA的相关分析;
B.全程可视化基于ggplot2,我们可以把数据下载下来后进行更多层次的可视化展现;
那么到这里,本期推文到这里就结束啦,我们下期一起继续学习更多有趣的内容吧QAQ
我是晨曦,我们下期再见~
参考教程
1.wu-yc/scMetabolism: Quantifying metabolism activity at the single-cell resolution (github.com)
2.Wu Y, Yang S, Ma J, Chen Z, Song G, Rao D, Cheng Y, Huang S, Liu Y, Jiang S, Liu J, Huang X, Wang X, Qiu S, Xu J, Xi R, Bai F, Zhou J, Fan J, Zhang X, Gao Q. Spatiotemporal Immune Landscape of Colorectal Cancer Liver Metastasis at Single-Cell Level. Cancer Discov. 2021 Aug 20
相关推荐
- Java 泛型大揭秘:类型参数、通配符与最佳实践
-
引言在编程世界中,代码的可重用性和可维护性是至关重要的。为了实现这些目标,Java5引入了一种名为泛型(Generics)的强大功能。本文将详细介绍Java泛型的概念、优势和局限性,以及如何在...
- K8s 的标签与选择器:流畅运维的秘诀
-
在Kubernetes的世界里,**标签(Label)和选择器(Selector)**并不是最炫酷的技术,但却是贯穿整个集群管理与运维流程的核心机制。正是它们让复杂的资源调度、查询、自动化运维变得...
- 哈希Hash算法:原理、应用(哈希算法 知乎)
-
原作者:Linux教程,原文地址:「链接」什么是哈希算法?哈希算法(HashAlgorithm),又称为散列算法或杂凑算法,是一种将任意长度的数据输入转换为固定长度输出值的数学函数。其输出结果通常被...
- C#学习:基于LLM的简历评估程序(c# 简历)
-
前言在pocketflow的例子中看到了一个基于LLM的简历评估程序的例子,感觉还挺好玩的,为了练习一下C#,我最近使用C#重写了一个。准备不同的简历:image-20250528183949844查...
- 55顺位,砍41+14+3!季后赛也成得分王,难道他也是一名球星?
-
雷霆队最不可思议的新星:一个55号秀的疯狂逆袭!你是不是也觉得NBA最底层的55号秀,就只能当饮水机管理员?今年的55号秀阿龙·威金斯恐怕要打破你的认知了!常规赛阶段,这位二轮秀就像开了窍的天才,直接...
- 5分钟读懂C#字典对象(c# 字典获取值)
-
什么是字典对象在C#中,使用Dictionary类来管理由键值对组成的集合,这类集合被称为字典。字典最大的特点就是能够根据键来快速查找集合中的值,其键的定义不能重复,具有唯一性,相当于数组索引值,字典...
- c#窗体传值(c# 跨窗体传递数据)
-
在WinForm编程中我们经常需要进行俩个窗体间的传值。下面我给出了两种方法,来实现传值一、在输入数据的界面中定义一个属性,供接受数据的窗体使用1、子窗体usingSystem;usingSyst...
- C#入门篇章—委托(c#委托的理解)
-
C#委托1.委托的定义和使用委托的作用:如果要把方法作为函数来进行传递的话,就要用到委托。委托是一个类型,这个类型可以赋值一个方法的引用。C#的委托通过delegate关键字来声明。声明委托的...
- C#.NET in、out、ref详解(c#.net framework)
-
简介在C#中,in、ref和out是用于修改方法参数传递方式的关键字,它们决定了参数是按值传递还是按引用传递,以及参数是否必须在传递前初始化。基本语义对比修饰符传递方式可读写性必须初始化调用...
- C#广义表(广义表headtail)
-
在C#中,广义表(GeneralizedList)是一种特殊的数据结构,它是线性表的推广。广义表可以包含单个元素(称为原子),也可以包含另一个广义表(称为子表)。以下是一个简单的C#广义表示例代...
- 「C#.NET 拾遗补漏」04:你必须知道的反射
-
阅读本文大概需要3分钟。通常,反射用于动态获取对象的类型、属性和方法等信息。今天带你玩转反射,来汇总一下反射的各种常见操作,捡漏看看有没有你不知道的。获取类型的成员Type类的GetMembe...
- C#启动外部程序的问题(c#怎么启动)
-
IT&OT的深度融合是智能制造的基石。本公众号将聚焦于PLC编程与上位机开发。除理论知识外,也会结合我们团队在开发过程中遇到的具体问题介绍一些项目经验。在使用C#开发上位机时,有时会需要启动外部的一些...
- 全网最狠C#面试拷问:这20道题没答出来,别说你懂.NET!
-
在竞争激烈的C#开发岗位求职过程中,面试是必经的一道关卡。而一场高质量的面试,不仅能筛选出真正掌握C#和.NET技术精髓的人才,也能让求职者对自身技术水平有更清晰的认知。今天,就为大家精心准备了20道...
- C#匿名方法(c#匿名方法与匿名类)
-
C#中的匿名方法是一种没有名称只有主体的方法,它提供了一种传递代码块作为委托参数的技术。以下是关于C#匿名方法的一些重要特点和用法:特点省略参数列表:使用匿名方法可省略参数列表,这意味着匿名方法...
- C# Windows窗体(.Net Framework)知识总结
-
Windows窗体可大致分为Form窗体和MDI窗体,Form窗体没什么好细说的,知识点总结都在思维导图里面了,下文将围绕MDI窗体来讲述。MDI(MultipleDocumentInterfac...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)