Skip to content

Banksy空间聚类分析模块

作者: 靳文
时长: 4 分钟
字数: 854 字
更新: 2025-07-18
阅读: 0 次
SeekOne SeekOneDD OligodT-polyA

介绍:

NOTE

本文档介绍Banksy(BANKSY)空间聚类分析R包的原理、安装、使用方法及结果解读,适用于单细胞空间转录组数据的细胞类型识别与空间域分割。

原理简介:

IMPORTANT

Banksy是一种空间组学聚类方法,通过将每个细胞的表达特征与其空间邻域的表达均值及空间梯度特征进行融合,增强细胞特征用于聚类。该方法能够:

  • 提高噪声数据中的细胞类型判别能力
  • 区分受微环境影响的细微细胞亚型
  • 识别具有相似微环境的空间结构域 Banksy适用于多种空间转录组技术(如SeekSpace、Slide-seq、MERFISH、CosMX等),并可扩展至大规模数据集。

一、数据准备

1)示例数据:

Banksy官方R包自带小鼠海马体空间转录组数据,可直接用于测试。

r
# 加载示例数据
library(Banksy)
data(hippocampus)
gcm <- hippocampus$expression
locs <- as.matrix(hippocampus$locations)

2)自有数据:

  • 表达矩阵(基因×细胞/空间点)
  • 空间坐标矩阵(细胞/空间点×2)

二、环境安装

IMPORTANT

需R >= 4.4.0,建议使用Bioconductor安装。

r
# Bioconductor安装
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install('Banksy')

# 或从GitHub安装最新版
if (!requireNamespace("remotes", quietly = TRUE))
    install.packages("remotes")
remotes::install_github("prabhakarlab/Banksy")

TIP

推荐同时安装SpatialExperiment、scuttle、scater、ggplot2、cowplot等包以便数据处理和可视化。

r
BiocManager::install(c("SpatialExperiment", "scuttle", "scater"))
install.packages(c("ggplot2", "cowplot"))

三、运行示例

r
# 加载所需包
library(Banksy)
library(SpatialExperiment)
library(scuttle)
library(scater)
library(ggplot2)
library(cowplot)

# 1. 构建SpatialExperiment对象
se <- SpatialExperiment(assay = list(counts = gcm), spatialCoords = locs)

# 2. 质控与归一化
qcstats <- perCellQCMetrics(se)
thres <- quantile(qcstats$total, c(0.05, 0.98))
keep <- (qcstats$total > thres[1]) & (qcstats$total < thres[2])
se <- se[, keep]
se <- computeLibraryFactors(se)
assay(se, "normcounts") <- normalizeCounts(se, log = FALSE)

# 3. 计算Banksy邻域特征
lambda <- c(0, 0.2)
k_geom <- c(15, 30)
se <- Banksy::computeBanksy(se, assay_name = "normcounts", compute_agf = TRUE, k_geom = k_geom)

# 4. 降维与聚类
set.seed(1000)
se <- Banksy::runBanksyPCA(se, use_agf = TRUE, lambda = lambda)
se <- Banksy::runBanksyUMAP(se, use_agf = TRUE, lambda = lambda)
se <- Banksy::clusterBanksy(se, use_agf = TRUE, lambda = lambda, resolution = 1.2)
se <- Banksy::connectClusters(se)

# 5. 可视化
cnames <- colnames(colData(se))
cnames <- cnames[grep("^clust", cnames)]
colData(se) <- cbind(colData(se), spatialCoords(se))
plot_nsp <- plotColData(se, x = "sdimx", y = "sdimy", point_size = 0.6, colour_by = cnames[1])
plot_bank <- plotColData(se, x = "sdimx", y = "sdimy", point_size = 0.6, colour_by = cnames[2])
plot_grid(plot_nsp + coord_equal(), plot_bank + coord_equal(), ncol = 2)

参数说明

参数说明
lambda空间邻域特征权重,0为非空间聚类,0.2为推荐值(细胞分型)
k_geom空间邻居数,推荐15和30
use_agf是否使用邻域均值和梯度特征
resolution聚类分辨率,影响聚类数目
assay_name使用的表达矩阵名称(如normcounts)

WARNING

  • lambda参数对不同空间分辨率数据有不同推荐值,详见官方文档
  • 运行大规模数据时建议高性能计算资源

四、主要结果说明

  • 聚类标签:colData(se)中的clust_*列为不同lambda下的聚类结果
  • 降维结果:reducedDims(se)中UMAP等降维坐标
  • 可视化:plotColData、plotReducedDim等函数可绘制空间聚类分布

NOTE

Banksy聚类结果可用于后续空间亚型分析、空间域识别、微环境研究等。

参考文献

0 条评论·0 条回复