空间转录组数据注释分析:SPOTlight反卷积
创作时间:
作者:
@小白创作中心
空间转录组数据注释分析:SPOTlight反卷积
引用
1
来源
1.
https://cloud.tencent.com/developer/article/2507452
空间转录组学(Spatial Transcriptomics, ST)技术能够提供组织中基因表达的空间信息,但缺乏单细胞分辨率。为了解决这一问题,Holger Heyn团队开发了SPOTlight这一计算工具,通过整合空间转录组数据和单细胞转录组数据,实现对组织中细胞类型和状态的空间定位分析。本文将详细介绍SPOTlight的工作原理及其使用方法。
SPOTlight工具简介
SPOTlight的核心是基于种子的非负矩阵分解(seeded Non-negative Matrix Factorization, NMF)回归。该方法通过使用细胞类型标记基因进行初始化,并利用非负最小二乘法(Non-negative Least Squares, NNLS)来进一步解析ST捕获位置(spot)的空间分布。
软件安装
# 设置Bioconductor镜像
options(BioC_mirror="https://mirrors.westlake.edu.cn/bioconductor")
options("repos"=c(CRAN="https://mirrors.westlake.edu.cn/CRAN/"))
# 安装SPOTlight
library(devtools)
install_github("https://github.com/MarcElosua/SPOTlight")
输入数据
- ST (sparse) matrix:空间表达矩阵,可以是raw count,标准化后的data,行为基因,列为spot
- Single cell (sparse) matrix:单细胞表达矩阵,可以是raw count,标准化后的data,行为基因,列为细胞
- Vector:单细胞的每个细胞注释标签向量,顺序对应单细胞矩阵的列
- 其他格式:输入数据还可以为SpatialExperiment或SingleCellExperiment对象
数据准备
# 加载空转数据
library(TENxVisiumData)
spe <- MouseKidneyCoronal()
rownames(spe) <- rowData(spe)$symbol
# 加载单细胞数据
library(TabulaMurisSenisData)
sce <- TabulaMurisSenisDroplet(tissues = "Kidney")$Kidney
sce <- sce[, sce$age == "18m"]
sce <- sce[, !sce$free_annotation %in% c("nan", "CD45")]
数据预处理
特征基因选择
# 特征基因选择
sce <- logNormCounts(sce)
genes <- !grepl(pattern = "^Rp[l|s]|Mt", x = rownames(sce))
dec <- modelGeneVar(sce, subset.row = genes)
hvg <- getTopHVGs(dec, n = 3000)
获取标记基因
# 获取标记基因
colLabels(sce) <- colData(sce)$free_annotation
mgs <- scoreMarkers(sce, subset.row = genes)
mgs_fil <- lapply(names(mgs), function(i) {
x <- mgs[[i]]
x <- x[x$mean.AUC > 0.8, ]
x <- x[order(x$mean.AUC, decreasing = TRUE), ]
x$gene <- rownames(x)
x$cluster <- i
data.frame(x)
})
mgs_df <- do.call(rbind, mgs_fil)
细胞降采样
# 细胞降采样
idx <- split(seq(ncol(sce)), sce$free_annotation)
n_cells <- 20
cs_keep <- lapply(idx, function(i) {
n <- length(i)
if (n < n_cells)
n_cells <- n
sample(i, n_cells)
})
sce <- sce[, unlist(cs_keep)]
反卷积分析
# 反卷积
res <- SPOTlight(
x = sce,
y = spe,
groups = as.character(sce$free_annotation),
mgs = mgs_df,
hvg = hvg,
weight_id = "mean.AUC",
group_id = "cluster",
gene_id = "gene")
mat <- res$mat
mod <- res$NMF
结果可视化
Topic profiles评估
# 可视化Topic profiles
plotTopicProfiles(
x = mod,
y = sce$free_annotation,
facet = FALSE,
min_prop = 0.01,
ncol = 1) +
theme(aspect.ratio = 1)
空间相关性矩阵
# 绘制相关性图
plotCorrelationMatrix(mat)
细胞类型共定位
# 细胞类型共定位分析
plotInteractions(mat, which = "heatmap", metric = "prop")
plotInteractions(mat, which = "heatmap", metric = "jaccard")
plotInteractions(mat, which = "network")
空间切片展示
# 饼图展示
ct <- colnames(mat)
mat[mat < 0.1] <- 0
paletteMartin <- c(
"#000000", "#004949", "#009292", "#ff6db6", "#ffb6db",
"#490092", "#006ddb", "#b66dff", "#6db6ff", "#b6dbff",
"#920000", "#924900", "#db6d00", "#24ff24", "#ffff6d")
pal <- colorRampPalette(paletteMartin)(length(ct))
names(pal) <- ct
plotSpatialScatterpie(
x = spe,
y = mat,
cell_types = colnames(mat),
img = FALSE,
scatterpie_alpha = 1,
pie_scale = 0.4) +
scale_fill_manual(
values = pal,
breaks = names(pal))
通过以上步骤,我们可以得到空间转录组数据中细胞类型的详细注释结果,并以直观的可视化方式展示出来。这对于理解组织结构和功能具有重要意义。
本文内容参考自:
热门推荐
量化交易学习笔记:双均线策略详解与实战
处女座适合佩戴什么首饰?十件处女座专属饰品推荐
吃药喝茶水影响药效吗
稀有金属的提取与冶炼:从技术到应用的全面解析
深度强化学习 Actor-Critic演员评论家 PPO
这12个「减肥穴位」一定要多按!每天5分钟按对有感瘦腿、瘦小腹、消水肿
黄金回收价格在的情况如何?这一价格反映了怎样的市场趋势?
世界口腔健康日 | 关于洗牙,你想知道的都在这!
中国经济与国际环境的关系及应对策略研究
通往奴役之路学习笔记
外媒评十佳中国武术电影:功夫永不朽!
马德兴:国足多人伤病停赛累及下场 直接影响中澳之战
深入了解软件测试:从入门到奥秘,揭开测试的精髓
跟着罗大伦学养生:以阴阳为核心,激活自愈力,告别疾病困扰
手指受伤后吃什么能最有利于恢复
如何理解公司分红政策并进行投资决策?这种政策如何影响股东的收益?
如何缓解梨状肌痛
国有六大行上半年业绩出炉:5家净利润、营收同比下降,净息差集体走低
美国PMI数据提振美元反弹,美日继续走高
风味轮:味道是吃出来的还是闻出来的?
职场新人必读:如何在工作中展现自己的能力和价值
古埃及法人物与法律制度的历史研究
公司对公账户注销流程及所需部门详解
家庭资产配置:策略、原则与常见误区
选择与使用散热风扇:提升产品性能的核心因素
应对白发问题:健康饮食与良好心态的重要性与方法分析
开源授权如何促进创新
学校食堂承包费一般多少:探究我国学校食堂运营成本
六安市:用好红色资源“活教材” 培养新时代的“接班人”
液氧增氧技术在青鱼池塘养殖中的应用试验