首页    数据分析    空间转录组分析工具-seurat介绍

空间转录组分析工具-seurat介绍

创建时间:2024-05-17 10:58

什么是空间转录组(ST)?

以市面上最流行的10X为例:将冰冻组织切片(FF)或石蜡切片(FFPE)放置在10X Genomics Visium芯片的捕获区域内,进行HE染色和成像后,对组织切片进行透化处理,细胞内的mRNA释放出来,从而被芯片上带有oligo-dT的探针捕获,并且每个探针都带有特异的位置序列,然后以mRNA为模版进行cDNA合成,构建文库后再通过测序,获得基因表达信息的同时,每一条测序reads因带有位置序列,从而能够获得基因表达的位置信息。

空间转录组的优势

与scRNA-seq相比的优缺点:scRNA-seq将基因表达与单个细胞相关联,但关于这些基因在组织中的位置信息丢失了;相反的,ST知道基因表达的位置,却不知道是哪个细胞产生的。scRNA-seq联合ST能起到1+1>2的作用(超高分辨率+位置信息)。

Seurat单细胞空间转录组数据分析

Seurat是一个用于分析单细胞转录组数据的R包,它可以用于对单细胞空间转录组数据进行整合、分析和可视化。Seurat提供了丰富的功能,包括数据预处理、细胞聚类、细胞类型标注、基因差异表达分析等,是单细胞转录组和空间转录组数据分析中常用的工具之一。

Seurat数据分析通常包括以下步骤:

  1. 数据预处理:

    • 读取原始数据,包括单细胞RNA测序数据和空间信息数据。
    • 数据质量控制,包括过滤低质量细胞和基因。
    • 数据归一化,通常使用对数转换或归一化方法。
  2. 细胞聚类

    • 使用细胞特征进行细胞聚类,常用的方法包括PCA和t-SNE。
    • 根据聚类结果对细胞进行分类和标记。
  3. 空间信息整合:

    • 将单细胞RNA测序数据与空间信息数据进行整合,以确定细胞在组织空间中的位置
  4. 空间转录组分析:

    • 分析细胞在组织空间中的基因表达模式,探索不同区域的基因表达差异
  5. 结果可视化:

    • 将分析结果可视化,包括细胞聚类图、空间分布图和基因表达热图等,以便进行结果解释和展示。

Seurat分析代码实践:

1. 数据预处理:

1.1 导入空转示例数据文件:小鼠大脑组织样本空间转录组数据brain_st

===================================================================

# 提起安装好用到的包,并导入
library(Seurat)
library(SeuratData)
library(ggplot2)
library(patchwork)
library(dplyr)
# 导入空转示例数据文件:a large seurat object
brain <- LoadData("stxBrain", type = "anterior1") 
===================================================================

1.2 SCTransform()实现数据归一化

====================================================================

# n count
plot1 <- VlnPlot(brain, features = "nCount_Spatial", pt.size = 0.1) + NoLegend()
plot2 <- SpatialFeaturePlot(brain, features = "nCount_Spatial", slot='data') + theme(legend.position = "right")
wrap_plots(plot1, plot2)
# normalization
brain <- SCTransform(brain, assay = "Spatial", verbose = FALSE)
DefaultAssay(brain)

===================================================================

 

1.3 特定基因可视化

===================================================================

SpatialFeaturePlot(brain, features = c("Hpca", "Ttr")) #  + theme(legend.position = "right")
p1 <- SpatialFeaturePlot(brain, features = "Ttr", pt.size.factor = 3)
p2 <- SpatialFeaturePlot(brain, features = "Ttr", alpha = c(0.1, 1))
p1 + p2

​===================================================================

  • output:

2. 细胞聚类

2.1 降维聚类

  • RunPCA() & RunUMAP()实现降维, FindClusters()实现聚类
===================================================================
brain <- RunPCA(brain, assay = "SCT", verbose = FALSE)
brain <- FindNeighbors(brain, reduction = "pca", dims = 1:30)
brain <- FindClusters(brain, verbose = FALSE)
brain <- RunUMAP(brain, reduction = "pca", dims = 1:30)

p1 <- DimPlot(brain, reduction = "umap", label = TRUE)
p2 <- SpatialDimPlot(brain, label = TRUE, label.size = 3, group.by = 'seurat_clusters')
p1 + p2

===================================================================

  • output:

2.2 不同亚群在空间上的单独分布

===================================================================

SpatialDimPlot(brain, cells.highlight = CellsByIdentities(object = brain,
           idents = c(2, 1, 4, 3, 5, 8)), 
           facet.highlight = TRUE, ncol = 3)

 

===================================================================

  • output:

3. 与单细胞RNA-seq数据整合分析,并完成细胞标注

3.1 单细胞转录组数据allen_cortex整合

===================================================================

# 细分解剖区域(截取cortex区域)
cortex <- subset(brain, idents = c(1, 2, 3, 4, 6, 7))
cortex <- subset(cortex, anterior1_imagerow > 400 | anterior1_imagecol < 150, invert = TRUE)
cortex <- subset(cortex, anterior1_imagerow > 275 & anterior1_imagecol > 370, invert = TRUE)
cortex <- subset(cortex, anterior1_imagerow > 250 & anterior1_imagecol > 440, invert = TRUE)
SpatialDimPlot(cortex, crop = T, label = TRUE)
# 与单细胞数据整合
allen_reference <- readRDS("./data/allen_cortex.rds")
allen_reference <- SCTransform(allen_reference, ncells = 3000, verbose = FALSE) %>%
        RunPCA(verbose = FALSE) %>%
        RunUMAP(dims = 1:30)
# scRNA-seq的细胞注释图        
DimPlot(allen_reference, group.by = "subclass", label = TRUE)

===================================================================

 

3.2 与单细胞数据集成

  • 将单细胞RNA-seq的标签map到空间转录组上,鉴定单细胞的空间分布概率
===================================================================
anchors <- FindTransferAnchors(reference = allen_reference, query = cortex,
            reference.assay = 'SCT', query.assay = 'SCT',
            normalization.method = "SCT", verbose = T, reduction = 'cca')
predictions.assay <- TransferData(anchorset = anchors, refdata = allen_reference$subclass, prediction.assay = TRUE,
                                  weight.reduction = cortex[["pca"]], dims = 1:30)
# 获得每个聚类在每个Spots的预测分数                                  
cortex[["predictions"]] <- predictions.assay
# 基于这些预测分数,预测空间的细胞类型
DefaultAssay(cortex) <- "predictions"
SpatialFeaturePlot(cortex, features = c("Astro", "L2/3 IT"), pt.size.factor = 1, ncol = 2, crop = FALSE, alpha = c(0.1, 1))

===================================================================

4. 多切片,多样本分析

===================================================================

# merge多样本
DefaultAssay(brain) <- 'SCT'
brain2 <- LoadData("stxBrain", type = "posterior1")
brain2 <- SCTransform(brain2, assay = "Spatial", verbose = FALSE)
brain.merge <- merge(brain, brain2)

# 降维聚类
DefaultAssay(brain.merge) <- "SCT"
VariableFeatures(brain.merge) <- c(VariableFeatures(brain), VariableFeatures(brain2))
brain.merge <- RunPCA(brain.merge, verbose = FALSE)
brain.merge <- FindNeighbors(brain.merge, dims = 1:30)
brain.merge <- FindClusters(brain.merge, verbose = FALSE)
brain.merge <- RunUMAP(brain.merge, dims = 1:30)

# 可视化
DimPlot(brain.merge, reduction = "umap", group.by = c("ident", "orig.ident"))
SpatialDimPlot(brain.merge)
SpatialFeaturePlot(brain.merge, features = c("Hpca", "Plp1"))
SpatialFeaturePlot(brain.merge, features = c("Hpca", "Plp1"), images = 'anterior1')

=======================================================================

请关注微信公众号,更多精彩内容实时更新中


本网站发布所有原创内容,版权归属尖端生物及相关版权方,内容仅供学术交流,如有侵权请联系删除。未经授权的转载是侵权行为,版权方保留追究法律责任的权利。投稿,转载或版权问题,请联系:submit@advanced-biotech.cn;商务合作请联系:cc@advanced-biotech.cn

热点资讯