生物信息学分析单细胞测序

Seurat分析Slide-seq空间转录组

2022-04-19  本文已影响0人  JeremyL

此教程是使用Seurat分析 Slide-seq v2数据;大部分流程和步骤还是和10x Visium分析流程一样 。

# 数据集

InstallData("ssHippo")
slide.seq <- LoadData("ssHippo")

# 数据预处理

这一步与10x Visium数据处理差不多;但是当前的测试数据含有许多UMI很低的值,但在本教程中也是保留所有检测到的数据进行下游分析。

plot1 <- VlnPlot(slide.seq, features = "nCount_Spatial", pt.size = 0, log = TRUE) + NoLegend()
slide.seq$log_nCount_Spatial <- log(slide.seq$nCount_Spatial)
plot2 <- SpatialFeaturePlot(slide.seq, features = "log_nCount_Spatial") + theme(legend.position = "right")
wrap_plots(plot1, plot2)
image.png

然后使用sctransform对数据进行标准化,并进行数据降维和聚类。

slide.seq <- SCTransform(slide.seq, assay = "Spatial", ncells = 3000, verbose = FALSE)
slide.seq <- RunPCA(slide.seq)
slide.seq <- RunUMAP(slide.seq, dims = 1:30)
slide.seq <- FindNeighbors(slide.seq, dims = 1:30)
slide.seq <- FindClusters(slide.seq, resolution = 0.3, verbose = FALSE)

基于UMAP 可视化数据结果(DimPlot())或给予bead对应位置进行空间可视化(SpatialDimPlot())

plot1 <- DimPlot(slide.seq, reduction = "umap", label = TRUE)
plot2 <- SpatialDimPlot(slide.seq, stroke = 0)
plot1 + plot2
image.png
SpatialDimPlot(slide.seq, cells.highlight = CellsByIdentities(object = slide.seq, idents = c(1,
    6, 13)), facet.highlight = TRUE)
image.png

# 整合scRNA-seq参考数据

为了便于对Slide seq数据集进行细胞类型注释,利用现有的小鼠ScRNAseq海马数据集( Saunders, Macosko, et al. 2018)。

处理后的数据,保存为Seurat对象,下载地址: data

原始矩阵数据下载: DropViz website

ref <- readRDS("./mouse_hippocampus_reference.rds")

paper中细胞类型注释保存在Seurat 的cell metadata中;注释包含了不同层级的注释,ref$class是初始注释,ref$subcluster是对初始注释进行了的下一级注释;

首先运行Seurat标签转移方法来预测每个磁柱上的主要细胞类型。

anchors <- FindTransferAnchors(reference = ref, query = slide.seq, normalization.method = "SCT",
    npcs = 50)
predictions.assay <- TransferData(anchorset = anchors, refdata = ref$celltype, prediction.assay = TRUE,
    weight.reduction = slide.seq[["pca"]], dims = 1:50)
slide.seq[["predictions"]] <- predictions.assay

然后可视化预测的分数:

DefaultAssay(slide.seq) <- "predictions"
SpatialFeaturePlot(slide.seq, features = c("Dentate Principal cells", "CA3 Principal cells", "Entorhinal cortex",
    "Endothelial tip", "Ependymal", "Oligodendrocyte"), alpha = c(0.1, 1))
slide.seq$predicted.id <- GetTransferPredictions(slide.seq)
Idents(slide.seq) <- "predicted.id"
SpatialDimPlot(slide.seq, cells.highlight = CellsByIdentities(object = slide.seq, idents = c("CA3 Principal cells",
    "Dentate Principal cells", "Endothelial tip")), facet.highlight = TRUE)
image.png

# 鉴定空间差异表达基因

一般使用两种方法:

对于第二种方法,FindSpatiallyVariableFeatures(method = 'moransi')便可以实现,函数实现了一种叫Moran’s I 的算法;Moran’s I 可以对一个基因表达对空间位置的依赖性进行打分(类似于相关性系数)。这就允许我们基于基因的空间表达变化进行打分。这就允许我们依赖于基因表达值对基因进行快速的排序。为了快速实现这个计算过程,seurat采用了一个基本区间(bin)的策略,基于选择一个矩阵方框的Slide-seq puck,然后平均其表达和定位。在x和y轴上bin的数量分别使用x.cuts和y.cuts确定。另外,可以安装Rfast2包install.packages('Rfast2'), 这个包可以减少这个过程运行时间。

DefaultAssay(slide.seq) <- "SCT"
slide.seq <- FindSpatiallyVariableFeatures(slide.seq, assay = "SCT", slot = "scale.data", features = VariableFeatures(slide.seq)[1:1000],
    selection.method = "moransi", x.cuts = 100, y.cuts = 100)

展示Moran’s I鉴定的top6个基因:

SpatialFeaturePlot(slide.seq, features = head(SpatiallyVariableFeatures(slide.seq, selection.method = "moransi"),
    6), ncol = 3, alpha = c(0.1, 1), max.cutoff = "q95")
image.png

# 原文
Analysis, visualization, and integration of spatial datasets with Seurat

# 系列文章
Seurat分析10x Visium空间转录组数据
单细胞测序分析: Seurat V3联合harmony进行单细胞数据整合分析
单细胞测序分析: Seurat 使用教程

上一篇下一篇

猜你喜欢

热点阅读