代谢分析,让单细胞数据更出彩!感谢吴博开发的scMetabolism包,能修正下就更好了~

学术   健康   2024-12-16 08:01   上海  
scMetabolism是复旦大学附属中山医院高强教授团队吴英成博士开发、在单细胞水平量化代谢的 R 包。该包以常规单细胞矩阵文件为基础,采用VISION算法对每个细胞进行评分,得到细胞在每一条代谢通路中的活性得分,从而在单细胞水平评估细胞的代谢特征。
在本研究中,作者使用单细胞 RNA测序和空间转录组对 97 个肠癌肝转移的匹配样本进行测序。其中,转移性环境经历了免疫抑制细胞 M2 样巨噬细胞MRC1+、CCL18 +)的代谢重编程。基于此,吴英成博士开发了 scMetabolism,用于量化单细胞代谢水平,并观察到 M2 样巨噬细胞具有增强的代谢活性。有趣的是,新辅助化疗可以阻断这种状态,并恢复有反应患者的抗肿瘤免疫平衡,而无反应患者则恶化为更具抑制性的患者。
Fig1展示了实验设计流程。首先,获取结直肠肝转移或者的肿瘤和PBMC单细胞,分为Discovery和Validation两组,进行单细胞、空间转录组、多组学IHC、微阵列和RNA-Seq,然后进行综合分析其免疫特征。
最有意义的发现是,MRC+ CCL18+巨噬细胞浸润与结直肠患者的生存显著相关(Fig2G);且该研究部结论在TCGA数据中得到验证,提示MRC+ CCL18+ 巨噬细胞浸润对结肠癌肝转移患者具有极好的预后价值。本研究的意义在于提出了结直肠肝转移的单细胞和空间图谱,并在转移部位发现高度代谢激活的MRC1+  CCL18+ M2 样巨噬细胞,而有效的新辅助化疗可以减缓这种代谢激活,提高靶向转移代谢途径的可能性。

相关论文:J Adv Res. 2024 May 7:S2090-1232(24)00183-8.

该单细胞代谢分析R包已上传到github。

Github网址:https://github.com/wu-yc/scMetabolism
########--------细胞代谢分析scMetabolism--------######### install.packages(c("devtools", "data.table", "wesanderson", "Seurat", "devtools", "AUCell", "GSEABase", "GSVA", "ggplot2","rsvd"))# options(timeout = 600000000) ### set this to avoid timeout error
# devtools::install_github("YosefLab/VISION")# devtools::install_github("YosefLab/VISION@v2.1.0") # devtools::install_github("wu-yc/scMetabolism")
# 加载R包library(scMetabolism)library(tidyverse)library(rsvd)library(Seurat)library(pheatmap)library(ComplexHeatmap)library(ggsci)
load(file = "pbmc_demo.rda")
########--------示例数据--------########countexp.Seurat@meta.data$celltype <- Idents(countexp.Seurat)
countexp.Seurat <- sc.metabolism.Seurat(obj = countexp.Seurat, method = "VISION", imputation = F, ncores = 2, metabolism.type = "KEGG")
metabolism.matrix <- countexp.Seurat@assays$METABOLISM$scoremetabolism.matrix
DimPlot.metabolism(obj = countexp.Seurat, pathway = "Glycolysis / Gluconeogenesis", dimention.reduction.type = "umap", dimention.reduction.run = F, size = 1.5)
input.pathway <- rownames(countexp.Seurat@assays[["METABOLISM"]][["score"]])[1:30]DotPlot.metabolism(obj = countexp.Seurat,                    pathway = input.pathway,                    phenotype = "celltype",                    norm = "y")

input.pathway <- rownames(countexp.Seurat@assays[["METABOLISM"]][["score"]])[1:2]BoxPlot.metabolism(obj = countexp.Seurat,                    pathway = input.pathway,                    phenotype = "celltype", ncol = 1)
sce_Metal_exp = countexp.Seuratsce_Metal_exp$celltype = sce_Metal_exp$celltypemscore_data = data.frame(t(sce_Metal_exp@assays[["METABOLISM"]][["score"]]),sce_Metal_exp$celltype)avg_sM=aggregate(mscore_data[,1:ncol(mscore_data)-1],list(mscore_data$sce_Metal_exp.celltype),mean)rownames(avg_sM) = avg_sM$Group.1avg_sM=data.frame(t(avg_sM[,-1]))avg_sM$KEGG = rownames(sce_Metal_exp@assays[["METABOLISM"]][["score"]])rownames(avg_sM)=avg_sM$KEGG
c_k_l = c()for(c in c(1:ncol(avg_sM))){ c_k=avg_sM[order(avg_sM[,c]),]$KEGG[1:5] c_k_l=c(c_k_l,c_k)}c_k_l= unique(c_k_l)c_k_d = avg_sM[avg_sM$KEGG %in%c_k_l,]
rownames(c_k_d) = c_k_d$KEGGpheatmap::pheatmap(c_k_d[,-ncol(c_k_d)],show_colnames = T,scale='row')

吴博士开发的scMetabolism还是挺好的。不过,我们在用自己的数据进行分析时,有个小bug,就是需要把counts数写入RNA。这样就可以用于单细胞数据代谢分析了。当然,最好吴博有空修正下里面的小bug!期待ing~

芒果师兄
1.生信技能和基因编辑。2.论文发表和基金写作。3. 健康管理和医学科研资讯。4.幸福之路,读书,音乐和娱乐。
 最新文章