Xenium | 空间原位转录组数据分析全解

10x Genomics推出的Xenium平台基于高通量的原位杂交技术,通过使用特异性探针捕获 RNA 分子,并在组织切片上直接检测信号,使得我们能够在单细胞分辨率的基础上,精确地检测和定位组织切片中的基因表达情况。最近有几位同学后台私信我,希望能完整介绍下Xenium数据分析全流程,以及空转数据能做的分析有哪些,我上网查了下,好像还真没有一个全面完整的教程,于是乎,我们使用10x官方公布的测试数据,基于之前介绍的spatialdata框架进行一个系列的完整的介绍。

初步设想主要包括以下几部分内容:

1. Xenium prime下机数据读取

  • 学会怎样使用spatialdata进行单样本下机数据读取、多样本合并、简单原位绘图;

  • 演示数据来源地址: https://www.10xgenomics.com/datasets/xenium-human-lung-cancer-post-xenium-technote

图片

图片

2. 数据预处理,单细胞降维聚类

  • 学会低质量细胞过滤、使用scanpy降维聚类

图片

3. 细胞类型注释

  • 学会降维聚类后特征基因筛选、细胞类型注释

图片

图片

图片

图片

4. 空间原位高级分析

  • 对特定细胞和分子的存在与相关作用的原位展示,包括原位展示基因表达等

  • 如何计算Tumor细胞周围50um半径内其他细胞的细胞比例

  • 怎样按分组统计展示

  • 如何计算距离特定细胞最近的其他细胞的细胞类型及距离变化

  • 采用仿射变换算法实现HE图像与空间坐标对齐

图片

图片

在R语言中,可以使用一些包来读取和处理空间转录组数据,常用的包有Seurat、SpatialTranscriptomics和STUtility等。这里以Seurat包为例,介绍如何读取空间转录组数据。 1. 安装Seurat包 在R语言中,需要先安装Seurat包。可以使用以下代码进行安装: ``` install.packages("Seurat") ``` 2. 读取数据 在使用Seurat包之前,需要将空间转录组数据读入R语言环境中。通常使用的数据格式有10x Genomics Visium、NanoString GeoMx和Spatial Transcriptomics等。Seurat包中提供了一些函数来读取这些数据格式,如Read10X()、ReadVisium()和ReadSpatial()等。 例如,使用以下代码读取10x Genomics Visium格式的空间转录组数据: ``` library(Seurat) data <- ReadVisium("path/to/data") ``` 其中,"path/to/data"是数据文件的路径。 3. 数据预处理 读入数据后,需要进行一些数据预处理,如基因过滤、归一化和批次效应校正等。Seurat包提供了一些函数来进行这些预处理操作,如FilterCells()、NormalizeData()和IntegrateData()等。 例如,使用以下代码对数据进行基因过滤和归一化: ``` data <- FilterCells(data, min.cells = 3, min.genes = 200) data <- NormalizeData(data) ``` 其中,FilterCells()函数可以去除低质量的细胞和基因,min.cells和min.genes参数分别表示每个细胞和每个基因的最小表达量。NormalizeData()函数可以将数据进行归一化。 4. 可视化 数据预处理完成后,可以使用Seurat包中的SpatialPlot()函数对空间转录组数据进行可视化。SpatialPlot()函数可以将细胞和基因的空间位置信息与基因表达量进行可视化,并使用t-SNE或UMAP等算法将细胞投影到二维空间中。 例如,使用以下代码对空间转录组数据进行可视化: ``` data <- RunTSNE(data) SpatialPlot(data, label = "gene", gene = "ACTB") ``` 其中,RunTSNE()函数使用t-SNE算法将细胞投影到二维空间中,SpatialPlot()函数用于可视化数据。gene参数用于指定要可视化的基因,label参数用于指定标签的类型,可以是"cell"、"gene"或"both"。 5. 差异表达基因分析 可视化完成后,可以使用Seurat包中的FindMarkers()函数对不同空间区域之间的差异表达基因进行分析。FindMarkers()函数可以使用Wilcoxon秩和检验或t检验等方法来进行差异分析,并计算每个基因在不同空间区域中的平均表达量和差异表达程度。 例如,使用以下代码对不同空间区域之间的差异表达基因进行分析: ``` markers <- FindMarkers(data, ident.1 = "area1", ident.2 = "area2") head(markers) ``` 其中,ident.1和ident.2参数分别表示要比较的两个空间区域的标识符,FindMarkers()函数会返回一个包含差异表达基因信息的数据框。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值