游乐游手机版
首页/AI教程/文章详情

单细胞与空间转录组跨模态标签转移方法解析

时间:2026-08-15 14:27
本文代码来自Seurat官方网站。介绍单样本空转数据的标签转移。代码语言:r复制rm(list = ls())library(tidyverse)library(Seurat)library(SeuratData)cortex = readRDS( "cortex rds ")这是小鼠皮层细胞的高质量参

本文代码来自Seurat官方网站。介绍单样本空转数据的标签转移。

代码语言:r

复制

rm(list = ls())library(tidyverse)library(Seurat)library(SeuratData)cortex = readRDS("cortex.rds")

这是小鼠皮层细胞的高质量参考数据,来自 Allen 研究所。

下载自 https://www.dropbox.com/s/cuowvm4vrf65pvq/allen_cortex.rds?dl=1

代码语言:r

首先加载参考数据集,并通过 dim() 函数确认其维度: allen_reference <- readRDS("allen_cortex.rds") dim(allen_reference) 运行结果显示为 34617 行、14249 列。

这里推荐设置 ncells=3000。这一操作的逻辑在于:虽然它会对整个数据集进行归一化,但仅在 3000 个细胞上构建噪声模型。这种策略能显著加速 SCTransform 的计算过程,且在性能上并无损失,是官网明确推荐的用法。

代码语言:r

复制

allen_reference <- SCTransform(allen_reference, ncells = 3000, verbose = FALSE) %>%RunPCA(verbose = FALSE) %>%RunUMAP(dims = 1:30)

参考数据是已经注释好的Seurat对象,注释的细胞类型存储在meta.data的subclass列,画个umap图展示它。

代码语言:r

复制

DimPlot(allen_reference, group.by = "subclass", label = TRUE) NoLegend() coord_fixed()

简单罗列一下这些细胞类型咯,不研究这个领域的话,只要分清楚这些单词是细胞的名字,不是基因名字就可以啦!

兴奋性神经元

L2/3 IT

第2/3层端脑内投射神经元

兴奋性神经元

L4

第4层颗粒神经元

兴奋性神经元

L5 IT

第5层端脑内投射神经元

兴奋性神经元

L5 PT

第5层锥体束投射神经元

兴奋性神经元

L6 CT

第6层皮层丘脑投射神经元

兴奋性神经元

L6 IT

第6层端脑内投射神经元

兴奋性神经元

L6b

第6b层神经元

兴奋性神经元

NP

近距离投射神经元

抑制性神经元

Lamp5

Lamp5 中间神经元

抑制性神经元

Meis2

Meis2 中间神经元

抑制性神经元

Pvalb

小清蛋白中间神经元

抑制性神经元

Serpinf1

Serpinf1 中间神经元

抑制性神经元

Sncg

Sncg 中间神经元

抑制性神经元

Sst

生长抑素中间神经元

抑制性神经元

Vip

VIP 中间神经元

发育相关神经元

CR

Cajal-Retzius 细胞

非神经元细胞

Astro

星形胶质细胞

非神经元细胞

Endo

血管内皮细胞

非神经元细胞

Macrophage

巨噬细胞/小胶质细胞

非神经元细胞

Oligo

少突胶质细胞

非神经元细胞

Peri

周细胞

非神经元细胞

SMC

平滑肌细胞

非神经元细胞

VLMC

血管及软脑膜细胞

寻找锚点,进行标签转移。这里的 cortex 已经完成了 SCTransform 和 PCA,因此可以直接用于寻找锚点和标签转移。

代码语言:r

复制

anchors <- FindTransferAnchors(reference = allen_reference, query = cortex, normalization.method = "SCT", reference.reduction = "pca", dims = 1:30)predictions.assay <- TransferData(anchorset = anchors,refdata = allen_reference$subclass, prediction.assay = TRUE,weight.reduction = cortex[["pca"]], dims = 1:30)

执行到这里,拿到的 predictions.assay 表示的是:每个 spot 在每一种细胞类型上的预测得分。接下来,把它写入空转的 Seurat 对象中,作为其中的一个组成部分即可。

代码语言:r

复制

GetAssayData(predictions.assay, layer = "data")[1:4, 1:4]代码语言:plain

复制

## AAACAGAGCGACTCCT-1 AAACCGGGTAGGTACC-1 AAACCGTTCGTCCAGG-1## Vip000## Lamp5000## Sst000## Sncg 000## AAACTCGTGATATAAG-1## Vip0## Lamp50## Sst0## Sncg 0代码语言:r

复制

cortex[["predictions"]] <- predictions.assayDefaultAssay(cortex) <- "predictions"

画图查看其中两种细胞的预测分数。

代码语言:r

复制

SpatialFeaturePlot(cortex, features = c("L2/3 IT", "L4"), ncol = 2, crop = TRUE) &theme(plot.margin = unit(c(1, 1, 1, 1), "mm"),legend.text = element_text(size = 8))

寻找(预测分数)有明显空间分布模式的细胞类型。

代码语言:r

复制

cortex <- FindSpatiallyVariableFeatures(cortex, assay = "predictions", selection.method = "moransi",features = rownames(cortex), layer = "data")

展示 Moran’s I 最高的 4 种细胞类型,也就是预测分数空间自相关性最强、空间分布模式最明显的细胞类型。(图上画的是细胞类型预测分数,不是基因表达量,也不是真实细胞数量或者丰度。)

代码语言:r

复制

top.clusters <- head(SpatiallyVariableFeatures(cortex, method = "moransi"), 4)SpatialFeaturePlot(object = cortex, features = top.clusters, ncol = 2) & theme(plot.margin = unit(c(1, 1, 1, 1), "mm"),legend.text = element_text(size = 8))

最后,展示各种细胞类型预测分数的空间分布,可以与已知的小鼠皮层分层结构进行比较,检查是否相符。

代码语言:r

复制

features_of_interest <- c("Astro", "L2/3 IT", "L4", "L5 PT", "L5 IT", "L6 CT", "L6 IT", "L6b", "Oligo")SpatialFeaturePlot(cortex,features = features_of_interest, pt.size.factor = 1.6, ncol = 3,crop = TRUE,alpha = c(0.1, 1)) & theme(plot.margin = unit(c(1, 1, 1, 1), "mm"))

来源:https://cloud.tencent.com.cn/developer/article/2721918
上一篇软件测试人员常用的AI工具推荐与实用指南 下一篇网站动态URL改纯静态页面的SEO优化与AI抓取提升方案
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
CAD零基础入门教程:坐标输入、图层管理与基础绘图命令
AI教程 · 2026-09-01

CAD零基础入门教程:坐标输入、图层管理与基础绘图命令

本文面向CAD零基础学习者,系统讲解坐标输入、图层管理与基础绘图命令的核心用法。通过分步实操与常见问题排查,帮助新手建立精确绘图习惯,掌握规范出图的基础能力。

CAD从入门到项目交付:绘图、标注、图块与实战工作流
AI教程 · 2026-09-01

CAD从入门到项目交付:绘图、标注、图块与实战工作流

掌握CAD的核心在于建立“画得准、标得清、复用快、交付稳”的工作流。本文提供从环境设置、高频命令组合、标注规范、图块标准化到项目分阶段交付的完整路径,帮助初学者避免常见返工陷阱,独立完成可检查、可复用、可打印的工程图纸。

Claude Code 登录指南:个人、Teams 与企业账号区分与授权步骤
AI教程 · 2026-09-01

Claude Code 登录指南:个人、Teams 与企业账号区分与授权步骤

本文详细解析 Claude Code 登录前的账号类型区分方法,涵盖个人订阅、Teams 席位与企业 Enterprise 席位的授权路径差异。提供终端登录命令、环境变量排查及常见异常处理步骤,帮助用户快速完成正确授权并避免登录路径混淆。

Claude Code 文件修改前的权限模式配置与命令审批指南
AI教程 · 2026-09-01

Claude Code 文件修改前的权限模式配置与命令审批指南

本文详细介绍Claude Code在修改文件前的权限模式配置方法,包括defaultMode可选值、permissions allow与deny规则设置、多层级配置文件管理以及 status验证技巧,帮助开发者安全高效地使用AI编程助手。

Claude Code接入VS Code后先测扩展和终端命令
AI教程 · 2026-09-01

Claude Code接入VS Code后先测扩展和终端命令

在VS Code中接入Claude Code后,建议优先验证扩展面板与集成终端两条入口。本文提供标准检查顺序、关键命令与常见故障排查路径,帮助你快速确认环境就绪,避免后续开发受阻。