news 2026/7/12 21:31:37

SCS 58.单细胞空间转录组GSEA(SPATA2)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SCS 58.单细胞空间转录组GSEA(SPATA2)

Gene Set Enrichment Analysis

1. 介绍

请务必熟悉关于差异表达分析和分子变量的教程。要更深入地了解差异表达分析(DEA)的结果,可以查找在所提出的聚类中富集或基于组织学创建的基因集。SPATA2实现了hypeR包,该包使用超几何检验来检测富集的基因集。

# load required packages library(SPATA2) library(tidyverse)
# load SPATA2 inbuilt example data #object_t269 <- loadExampleObject("UKF269T", process = TRUE, meta = TRUE) object_t269<- readRDS("object_t269.rds") object_t269 <- updateSpataObject(object_t269)
# plot histology plotSurface(object_t269, color_by = "histology", pt_clrp = "npg")

# plot bayes space cluster plotSurface(object_t269, color_by = "bayes_space", pt_clrp = "uc")

2. 计算GSEA

函数 runGSEA() 执行计算。它需要 runDEA() 产生的结果,该函数用于执行差异表达分析。默认情况下,该函数使用 SPATA2 对象中保存的所有基因集。如果您不希望对某些基因集进行测试,可以提供一个子集化的基因集列表。默认示例对象 object_t269 是通过 initiateSpataObjectVisium() 创建的,其中包含多种类别的多个基因集(如 Hallmark、Biocarta 等),这些基因集均带有相应的前缀(如 HM 或 BC)。

gs_list <- getGeneSetList(object_t269) head(gs_list)
## $BC_41BB_PATHWAY ## [1] "IFNG" "TNFSF9" "IL4" "NFKBIA" "TNFRSF9" "IL2" "MAP4K5" ## [8] "MAPK8" "MAP3K5" "CHUK" "MAPK14" "RELA" "TRAF2" "ATF2" ## [15] "IKBKB" "NFKB1" "MAP3K1" "JUN" ## ## $BC_ACE2_PATHWAY ## [1] "REN" "COL4A1" "AGT" "CMA1" "COL4A6" "ACE2" "ACE" "COL4A5" ## [9] "AGTR2" "AGTR1" "COL4A2" "COL4A3" "COL4A4" ## ## $BC_ACETAMINOPHEN_PATHWAY ## [1] "CYP1A2" "CYP2E1" "PTGS2" "PTGS1" "NR1I3" ## ## $BC_ACH_PATHWAY ## [1] "FASLG" "PIK3CG" "RAPSN" "PIK3R1" "FOXO3" "YWHAH" "CHRNG" "CHRNB1" ## [9] "BAD" "PTK2B" "TERT" "MUSK" "AKT1" "PIK3CA" ## ## $BC_ACTINY_PATHWAY ## [1] "ACTA1" "WASF1" "PSMA7" "NTRK1" "RAC1" "WASF2" "ABI2" "NCK1" ## [9] "PIR" "NCKAP1" "WASF3" "WASL" ## ## $BC_AGPCR_PATHWAY ## [1] "GRK4" "GNAS" "PRKACG" "PRKAR1A" "PRKAR2B" "PRKCB" "PRKACB" ## [8] "ARRB1" "PRKAR1B" "PRKCA" "PRKAR2A"
length(gs_list)
## [1] 11654

为了清晰起见,本示例仅使用Biocarta(BC)和Hallmark(HM)基因集。

# subset gene sets that start with HM or BC gs_list_sub <- getGeneSetList(object_t269, class = c("BC", "HM")) length(gs_list_sub)
## [1] 339

如果只想在基因集的子集上运行GSEA,请使用参数签名。如果要针对SPATA2对象_t269中存储的所有基因集进行测试,请将其留空。

set.seed(1) sample(gs_list_sub, size = 3)
## $HM_NOTCH_SIGNALING ## [1] "JAG1" "NOTCH3" "NOTCH2" "APH1A" "HES1" "CCND1" "FZD1" ## [8] "PSEN2" "FZD7" "DTX1" "DLL1" "FZD5" "MAML2" "NOTCH1" ## [15] "PSENEN" "WNT5A" "CUL1" "WNT2" "DTX4" "SAP30" "PPARD" ## [22] "KAT2A" "HEYL" "SKP1" "RBX1" "TCF7L2" "ARRB1" "LFNG" ## [29] "PRKCA" "DTX2" "ST3GAL6" "FBXW11" ## ## $BC_MEF2D_PATHWAY ## [1] "HDAC2" "HDAC1" "CALM1" "MEF2D" "CAPN2" "NFATC2" "PPP3CA" "PRKCB" ## [9] "CALM2" "PPP3CB" "CAPNS1" "CALM3" "CABIN1" "EP300" "PRKCA" "NFATC1" ## [17] "CAPNS2" "PPP3CC" ## ## $BC_HSWI_SNF_PATHWAY ## [1] "SMARCD1" "NF1" "NR3C1" "SMARCC2" "SMARCA4" "ARID1A" "SMARCC1" ## [8] "ACTB" "SMARCB1" "TBP" "GTF2A1" "SMARCE1"
object_t269 <- runGSEA( object = object_t269, across = "histology", background = 21563, signatures = gs_list_sub )

3. 提取结果

可以通过以下函数手动提取结果。getGseaResults() 会提取一个 hypeR 对象列表(每个组对应一个对象)。getGseaResultsDf() 会提取一个数据框,该数据框是将所有 hypeR 对象的数据合并后的结果。每个基因集所属的组别信息保存在根据分组变量命名的变量/列中——此处为 histology(组织学类型)。

getGseaDf( object = object_t269, across = "histology", method_de = "wilcox", n_gsets = 3# extract top 20 most significant gene sets )
## # A tibble: 9 × 10 ## # Groups: histology [3] ## histology label pval fdr signature geneset overlap background hits ## <fct> <fct> <dbl> <dbl> <int> <int> <int> <dbl> <chr> ## 1 tumor HM_E… 6.80e-47 7.90e-43 5082 200 143 21563 AURK… ## 2 tumor HM_I… 7.70e-39 4.50e-35 5082 196 132 21563 STAT… ## 3 tumor HM_G… 5.20e-34 2 e-30 5082 196 126 21563 AURK… ## 4 transition BP.G… 1.3 e-10 1.20e- 6 1192 856 94 21563 TANK… ## 5 transition CC.G… 2 e-10 1.20e- 6 1192 914 98 21563 PARP… ## 6 transition MF.G… 3.20e-10 1.20e- 6 1192 200 36 21563 CHD1… ## 7 infiltrated CC.G… 1.90e-61 2.3 e-57 1950 1332 315 21563 CDH8… ## 8 infiltrated BP.G… 2.90e-47 1.70e-43 1950 733 198 21563 CDH8… ## 9 infiltrated CC.G… 4.6 e-38 1.80e-34 1950 1317 266 21563 HDAC… ## # ℹ 1 more variable: overlap_perc <dbl>

4. Plotting results

基因集富集结果可以通过点图进行可视化。这可以通过设置 by_group = TRUE 按组进行,也可以合并所有组的结果进行展示。图2展示了聚类0和聚类5的富集情况,突出了该区域与缺氧相关的活性。

plotGseaDotPlot( object = object_t269, across = "histology", across_subset = c("tumor", "infiltrated"), n_gsets = 10, by_group = TRUE, transform_with = list(fdr = log10), nrow = 2 )

使用 by_group = FALSE 时,结果会合并到一个图表中。

plotGseaDotPlot( object = object_t269, across = "histology", color_by = "histology", n_gsets = 7, pt_alpha = 0.8, transform_with = list(fdr = log10), by_group = FALSE# merge in one plot )

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 21:52:06

Langchain-Chatchat能否用于客服系统?实测结果揭晓

Langchain-Chatchat能否用于客服系统&#xff1f;实测结果揭晓 在企业服务智能化浪潮中&#xff0c;一个现实而紧迫的问题摆在面前&#xff1a;如何让员工快速查到散落在PDF、Word和内部Wiki中的制度流程&#xff1f;如何让客户724小时获得准确的产品支持&#xff1f;传统客服系…

作者头像 李华
网站建设 2026/7/12 20:24:46

5、网络配置与故障排查实用指南

网络配置与故障排查实用指南 1. FTP 通过 NAT 配置 在 2005 年 11 月,旧版的 ftp - proxy(/usr/libexec/ftp - proxy)在 OpenBSD - current 中被新版的 ftp - proxy 所取代,新版位于 /usr/sbin 目录,OpenBSD 3.9 及后续版本都包含此软件。 旧版 ftp - proxy 配置 若使…

作者头像 李华
网站建设 2026/7/12 19:12:03

Android电池保护神器:Battery Charge Limit深度配置手册

你是否也曾为手机电池续航能力下降而烦恼&#xff1f;看着电量百分比在短短一年内从满格掉到80%&#xff0c;那种无奈感想必很多Android用户都深有体会。Battery Charge Limit正是为此而生的一款开源应用&#xff0c;它能让你主动掌控充电过程&#xff0c;设置合理的充电上限&a…

作者头像 李华
网站建设 2026/7/11 21:05:07

9、网络配置与主动防御策略

网络配置与主动防御策略 1. 网络桥接配置 在进行网络桥接配置时,需要按照特定步骤操作。首先,使用 ifconfig 命令检查预期的成员接口(如 ep0 和 ep1 )是否已启动且未分配IP地址。然后,通过以下命令配置桥接: $ sudo brconfig bridge0 add ep0 add ep1 up接着,…

作者头像 李华
网站建设 2026/7/11 23:13:08

xformers混合专家模型架构深度解析与实战部署

xformers混合专家模型架构深度解析与实战部署 【免费下载链接】xformers Hackable and optimized Transformers building blocks, supporting a composable construction. 项目地址: https://gitcode.com/gh_mirrors/xf/xformers 你是否在构建大语言模型时面临显存不足的…

作者头像 李华
网站建设 2026/7/12 11:37:26

从文本到数字人讲解视频:使用Linly-Talker全流程实操记录

从文本到数字人讲解视频&#xff1a;使用Linly-Talker全流程实操记录 在教育、客服、直播等场景中&#xff0c;我们越来越频繁地看到“虚拟主播”登场——他们口齿清晰、表情自然&#xff0c;仿佛真人出镜。但背后是否真的需要一支动画团队逐帧制作&#xff1f;答案是否定的。如…

作者头像 李华