您现在的位置是:首页 > 编程 > 

跟着Seurat学Xenium空转分析

2025-07-28 14:55:53
跟着Seurat学Xenium空转分析 Xenium是由 10x Genomics 推出的一种先进的空间转录组学技术,能够在单细胞分辨率的基础上,精确地检测和定位组织切片中的基因表达情况。这项技术结合了分子检测与空间定位的优势,为研究细胞在组织中的位置及其功能关系提供了重要工具。这里看一下AI对Xenium的理解,描述的非常详细:Xenium 的核心原理:Xenium 的核心是基于高通量的原位

跟着Seurat学Xenium空转分析

Xenium是由 10x Genomics 推出的一种先进的空间转录组学技术,能够在单细胞分辨率的基础上,精确地检测和定位组织切片中的基因表达情况。这项技术结合了分子检测与空间定位的优势,为研究细胞在组织中的位置及其功能关系提供了重要工具。这里看一下AI对Xenium的理解,描述的非常详细:

  • Xenium 的核心原理:Xenium 的核心是基于高通量的原位杂交 (In Situ Hybridization, ISH) 技术。通过使用特异性探针捕获 RA 分子,并在组织切片上直接检测信号,Xenium 能够实现以下目标:
    • 单细胞分辨率:识别每个细胞的基因表达模式。
    • 空间信息整合:保留组织切片中细胞的物理位置,揭示细胞间的空间关系。
    • 高通量检测:同时检测数千个目标基因,满足复杂样本的多维度分析需求。
  • Xenium 的技术优势:
    • 空间与分子信息结合:能够同时获得基因表达的数量和细胞所在的组织位置。
    • 无需解离组织:保留了细胞与组织环境的原始结构关系,避免传统单细胞 RA 测序中组织解离造成的信息丢失。
    • 高通量:相比于传统的空间转录组学方法,Xenium 提供了更高的基因检测通量和精度。
  • Xenium 的应用场景:Xenium 技术在许多生物医学研究领域具有广泛应用,包括但不限于:
    • 肿瘤微环境研究:研究肿瘤细胞与免疫细胞之间的空间关系,揭示潜在的调控机制。
    • 神经科学:解析大脑组织中不同神经元的空间分布及基因表达特性。
    • 发育生物学:监测胚胎发育过程中细胞分化与空间分布的动态变化。
    • 免疫研究:探索免疫细胞在组织中的分布及其与病原体或其他细胞的交互。

下面跟着Seurat学习Xenium的分析流程。Seurat官方教程在

首先下载示例数据:

代码语言:javascript代码运行次数:0运行复制
## Mouse_Brain
wget .0.2/Xenium_V1_FF_Mouse_Brain_Coronal_Subset_CTX_HP/Xenium_V1_FF_Mouse_Brain_Coronal_Subset_CTX_HP_outs.zip

unzip Xenium_V1_FF_Mouse_Brain_Coronal_Subset_CTX_HP_outs.zip

一. 读入数据

首先,我们读取数据集并创建一个Seurat对象。提供Xenium运行的数据文件夹的路径作为输入路径。RA数据存储在Seurat对象的Xenium分析中。这一步大概需要一分钟。

代码语言:javascript代码运行次数:0运行复制
library(Seurat)
library(qs)
library(ggplot2)
library(dplyr)

path <- "./Rawdata"
# Load the Xenium data
 <- LoadXenium(path, fov = "fov")
# remove cells with 0 counts
 <- subset(, subset = nCount_Xenium > 0)

空间信息被加载到Seurat对象的插槽中。

可视化每个细胞基因数量(nFeature_Xenium)和每个细胞的转录本计数情况(nCount_Xenium):

代码语言:javascript代码运行次数:0运行复制
VlnPlot(, features = c("nFeature_Xenium", "nCount_Xenium"), ncol = 2, pt.size = 0)

image-202412122704589

Xenium数据使用ImageDimPlot进行spatial的可视化,这里可以使用这个函数展示一些感兴趣的marker基因:

代码语言:javascript代码运行次数:0运行复制
ImageDimPlot(, fov = "fov", molecules = c("Gad1", "Sst", "Pvalb", "Gfap"), nmols = 20000)

image-202412122806255

我们还可以使用ImageFeaturePlot()在单细胞水平上可视化关键基因的表达水平。基于这个函数,我们可以设置一个参数调整基因表达的最大值以提高可视化的对比度,例如每个基因的截止值大约为其计数分布的第90个百分位数(可以用='q90'指定)。

代码语言:javascript代码运行次数:0运行复制
ImageFeaturePlot(, features = c("Cux2", "Rorb", "Bcl11b", "Foxp2"),  = c(25,
    5, 12, 10), size = 0.75, cols = c("white", "red"))

image-20241212285957

我们可以使用Crop函数放大选定区域。一旦放大,我们可以看到细胞分割边界以及单个分子。

代码语言:javascript代码运行次数:0运行复制
 <- Crop([["fov"]], x = c(1200, 2900), y = c(750, 4550), coords = "plot")
[["zoom"]] <- 
# visualize cropped area with cell segmentati & selected molecules
DefaultBoundary([["zoom"]]) <- "segmentation"
ImageDimPlot(, fov = "zoom", axes = TRUE,  = "white", border.size = 0.1, cols = "polychrome",
    coord.fixed = FALSE, molecules = c("Gad1", "Sst", "py2r", "Pvalb", "rn1"), nmols = 10000)

image-202412122955799

二. 标准化分析流程

接下来,我们使用SCTransform进行标准化,然后是降维和聚类分析:

代码语言:javascript代码运行次数:0运行复制
 <- SCTransform(, assay = "Xenium") %>% 
  RunPCA(npcs = 0, features = rownames()) %>% 
  RunUMAP(dims = 1:0) %>% 
  Findeighbors(reduction = "pca", dims = 1:0) %>% 
  FindClusters(resolution = 0.)

然后,我们可以通过在UMAP空间中使用DimPlot或在图像上使用ImageDimPlot可视化聚类结果:

代码语言:javascript代码运行次数:0运行复制
DimPlot()

image-2024121224157999

代码语言:javascript代码运行次数:0运行复制
#FeaturePlot检查marker在umap上的分布情况
#FeaturePlot(, features = c("Cux2", "Bcl11b", "Foxp2", "Gad1", "Sst", "Gfap"))
ImageDimPlot(, cols = "polychrome", size = 0.75)

image-202412122401617

利用每个细胞的位置信息,计算空间生态位。我们使用来自艾伦大脑研究所的皮质参考来注释细胞,所以我们首先从Xenium数据中取子集,得到皮质细胞。Allen Brain参考可以安装在这里(.rds?dl=1)。

我们使用Slc17a7表达来帮助确定皮质区域。

代码语言:javascript代码运行次数:0运行复制
p1 <- ImageFeaturePlot(, features = "Slc17a7", axes = TRUE,  = "q90")
p1

image-202412122584096

代码语言:javascript代码运行次数:0运行复制
crop <- Crop([["fov"]], x = c(600, 2100), y = c(900, 4700))
[["crop"]] <- crop
p2 <- ImageFeaturePlot(, fov = "crop", features = "Slc17a7", size = 1, axes = TRUE,  = "q90")
p2

image-202412122460712

三. RCTD解卷积

Seurat v5现已纳入RCTD算法分析流程(Robust Cell Type Decomposition),用户可以使用scRA-seq参考数据集,对空间数据集的spot或者单个细胞进行反卷积分析。

RCTD安装:

代码语言:javascript代码运行次数:0运行复制
devtools::install_github("dmcable/spacexr", build_vignettes = FALSE)

基于Xenium数据,构建RCTD的query数据:

代码语言:javascript代码运行次数:0运行复制
library(spacexr)

 <- GetAssayData(, assay = "Xenium", slot = "counts")[, Cells([["crop"]])]
coords <- GetTissueCoordinates([["crop"]], which = "centroids")
rownames(coords) <- coords$cell
coords$cell <- ULL
query <- SpatialRA(coords, , colSums())

然后是单细胞参考数据集的处理,构建RCTD的Reference数据:

代码语言:javascript代码运行次数:0运行复制
# ref can be downloaded here:
# .rds?dl=1
ref <- readRDS("/brahms/shared/vignette-data/allen_cortex.rds")
ref <- UpdateSeuratObject(ref)

Idents(ref) <- "subclass"
# remove CR cells because there aren't enough of them for annotation
ref <- subset(ref, subset = subclass != "CR")
counts <- GetAssayData(ref, assay = "RA", slot = "counts")
cluster <- as.factor(ref$subclass)
names(cluster) <- colnames(ref)
nUMI <- ref$nCount_RA
names(nUMI) <- colnames(ref)
nUMI <- colSums(counts)
levels(cluster) <- gsub("/", "-", levels(cluster))
reference <- Reference(counts, cluster, nUMI)

运行RCTD:

代码语言:javascript代码运行次数:0运行复制
# run RCTD with many cores
RCTD <- create.RCTD(query, reference, max_cores = 8)
RCTD <- run.RCTD(RCTD, doublet_mode = "doublet")

处理RCTD的结果:

代码语言:javascript代码运行次数:0运行复制
annotati.df <- RCTD@results$results_df
annotati <- annotati.df$first_type
names(annotati) <- rownames(annotati.df)
$ <- annotati
 <- Cells()[!($)]
 <- subset(, cells = )

关于RCTD我已介绍多次了,HD空转分析也是采用了RCTD流程。详见:

  • 整合单细胞和空转数据多种方法之RCTD
  • 跟着Seurat学Visium HD空转分析(二)空间组织域识别和反卷积

本质上就是使用单细胞数据以及单细胞注释好的标签来注释空转数据。

更多内容详见官方教程:

本文参与 腾讯云自媒体同步曝光计划,分享自。原始发表:2024-12-1,如有侵权请联系 cloudcommunity@tencent 删除对象函数教程可视化数据

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1235742.html

相关标签:无
上传时间: 2025-07-26 15:17:09
留言与评论(共有 6 条评论)
本站网友 百度地图全景
27分钟前 发表
分享自
本站网友 响晴
22分钟前 发表
0) %>% Findeighbors(reduction = "pca"
本站网友 集装箱查询
5分钟前 发表
cols = c("white"
本站网友 皮科特
8分钟前 发表
然后是降维和聚类分析:代码语言:javascript代码运行次数:0运行复制 <- SCTransform(
本站网友 假冒
19分钟前 发表
更多内容详见官方教程:本文参与 腾讯云自媒体同步曝光计划