官方幸运快三计划-10X-Visum空间转录组(2)---下游分析数据基本处理-降维聚类-可视化

新闻动态 /

你的位置:官方幸运快三计划 > 新闻动态 > 10X-Visum空间转录组(2)---下游分析数据基本处理-降维聚类-可视化
10X-Visum空间转录组(2)---下游分析数据基本处理-降维聚类-可视化
发布日期:2025-03-07 14:15    点击次数:191

1、《KS科研分享与服务》公众号有QQ交流群,进入门槛是20元(完全是为了防止白嫖党,请理解),请考虑清楚。群里有免费推文的注释代码和示例数据(终身拥有),没有付费内容,群成员福利是购买单个付费内容半价!

2、《KS科研分享与服务》微信VIP群只针对购买打包代码的小伙伴(公众号所有付费内容合集)!微信群不是单独的,是对于打包的人答疑解惑和交流的平台、群成员专享视频教程,帖子提前发布,以及其他更多福利!

点击:→ 加入微信vip群:2024-2025《KS科研分享与服务》付费内容打包集合

3、需进QQ群或者打包代码入微信VIP的小伙伴请添加作者微信了解,请备注目的,除此之外请勿添加,谢谢!

详情请联系作者:

前面我们演示了10X空转的上游分析(10X-Visum空间转录组(1)---上游分析),主要是为了应对一些特殊的状况,从这节开始,我们将逐渐进行下游分析。其实下游分析已经不是什么难事了,不论是官网,还是其他途径,都有很详细的演示可以参考,我们可以对比一下,搞明白其中的一些细节。本节内容已发布微信VIP。

我们这里演示的是多个样本,如果您是单个的,或者需要单独分析,那么直接走单个的流程即可,不用合并分析。分析还是使用熟悉的seurat,熟悉的配方!

setwd("/home/tq_ziv/data_analysis/10X空间转录组/")library(Seurat)library(ggplot2)library(hdf5r)library(tidydr)

加载数据,load data本来并不是什么需要说的,但是毕竟随着公共数据库的增加,很多时候需要利用别人的数据,那么这时候读取数据可能就不是那么顺畅了。就像scRNA教程开头一样,我们写了很多种情况的数据读取。空间转录组也是如此,如果自己跑了space ranger上游,得到了数据,那么就很好读取了,Load10X_Spatial即可。读取要求是将表达矩阵filtered_feature_bc_matrix.h5文件和spatial文件夹放在同一目录下。我们有多个data,分别读取!

#Early1Early1 <- CreateSeuratObject(counts = Read10X("./raw/Early_R1/"), assay = "Spatial")#读取exp matrix,并创建seurat objEarly1_img <- Read10X_Image(image.dir = file.path("./sptial/Early_R01_S1_spatial/"), filter.matrix = TRUE)#Load a 10X Genomics Visium ImageEarly1_img <- Early1_img[Cells(x = Early1)]DefaultAssay(Early1 = Early1_img) <- "Spatial"Early1[["slice1"]] <- Early1_img#Early2Early2 <- CreateSeuratObject(counts = Read10X("./raw/Early_R2/"), assay = "Spatial")#读取exp matrix,并创建seurat objEarly2_img <- Read10X_Image(image.dir = file.path("./sptial/Early_R02_S1_spatial/"), filter.matrix = TRUE)#Load a 10X Genomics Visium ImageEarly2_img <- Early2_img[Cells(x = Early2)]DefaultAssay(Early2 = Early2_img) <- "Spatial"Early2[["slice1"]] <- Early2_img#Mid1Mid1 <- CreateSeuratObject(counts = Read10X("./raw/Mid_R1/"), assay = "Spatial")#读取exp matrix,并创建seurat objMid1_img <- Read10X_Image(image.dir = file.path("./sptial/Mid_R01_S1_spatial/"), filter.matrix = TRUE)#Load a 10X Genomics Visium ImageMid1_img <- Mid1_img[Cells(x = Mid1)]DefaultAssay(Mid1 = Mid1_img) <- "Spatial"Mid1[["slice1"]] <- Mid1_img#Mid2Mid2 <- CreateSeuratObject(counts = Read10X("./raw/Mid_R2/"), assay = "Spatial")#读取exp matrix,并创建seurat objMid2_img <- Read10X_Image(image.dir = file.path("./sptial/Mid_R02_S2_spatial/"), filter.matrix = TRUE)#Load a 10X Genomics Visium ImageMid2_img <- Mid2_img[Cells(x = Mid2)]DefaultAssay(Mid2 = Mid2_img) <- "Spatial"Mid2[["slice1"]] <- Mid2_img#Old1Old1 <- CreateSeuratObject(counts = Read10X("./raw/Old_R1/"), assay = "Spatial")#读取exp matrix,并创建seurat objOld1_img <- Read10X_Image(image.dir = file.path("./sptial/Old_R01_S1_spatial/"), filter.matrix = TRUE)#Load a 10X Genomics Visium ImageOld1_img <- Old1_img[Cells(x = Old1)]DefaultAssay(Old1 = Old1_img) <- "Spatial"Old1[["slice1"]] <- Old1_img#Old2Old2 <- CreateSeuratObject(counts = Read10X("./raw/Old_R2/"), assay = "Spatial")#读取exp matrix,并创建seurat objOld2_img <- Read10X_Image(image.dir = file.path("./sptial/Old_R02_S2_spatial/"), filter.matrix = TRUE)#Load a 10X Genomics Visium ImageOld2_img <- Old2_img[Cells(x = Old2)]DefaultAssay(Old2 = Old2_img) <- "Spatial"Old2[["slice1"]] <- Old2_img

质控,QC无非就是对每个spot的features、counts、或者线粒体基因的比例的质控。因为spots并不是像单个细胞,我对比了很多的文章,他们质控并不是一致的,可能需要具体对待,有的文章甚至没有进行质控!

Spatial_list <- list(Early1,Early2,Mid1,Mid2,Old1,Old2)names(Spatial_list) <- c("Early1","Early2","Mid1","Mid2","Old1","Old2")Spatial_merge <-  Reduce(function(x,y) merge(x,y) , Spatial_list) Spatial_merge <- Spatial_merge[,Spatial_merge$nCount_Spatial >=5]

多个数据整合分析:

DefaultAssay(Spatial_merge) <- 'Spatial'object_splitlist <- SplitObject(Spatial_merge, split.by = "orig.ident")for (i in names(object_splitlist)) {  object_splitlist[[i]] <- SCTransform(object_splitlist[[i]], verbose = T, assay = 'Spatial')}#这就和做scRNA的没啥区别了,nfeatures可以自行选择调整Integration.features <- SelectIntegrationFeatures(object.list = object_splitlist, nfeatures = 2000)object_splitlist <- PrepSCTIntegration(object.list = object_splitlist, anchor.features = Integration.features, verbose = T)#integration,因为是cca整合,速度可能会稍微慢一点,耐心等待integration.anchors <- FindIntegrationAnchors(object.list = object_splitlist, normalization.method = "SCT",                                              anchor.features = Integration.features, verbose = T)Spatial_integrated <- IntegrateData(anchorset =integration.anchors, normalization.method = "SCT")

降维聚类:

Spatial_integrated <- RunPCA(object = Spatial_integrated, verbose = T)Spatial_integrated <- FindNeighbors(Spatial_integrated, dims = 1:30)Spatial_integrated <- FindClusters(Spatial_integrated, resolution = 0.8)#resolution可设置多个,自行选择Spatial_integrated <- RunUMAP(Spatial_integrated, dims = 1:30, verbose = T)

可视化聚类,和scRNA一样,看看spots分群:

cols= c("#EDB931","#eb6841","#cc2a36","#00a0b0","#7A989A", "#849271", "#CF9546", "#C67052", "#C1AE8D",        "#3F6F76", "#C65840", "#62496F", "#69B7CE","#91323A", "#3A4960", "#6D7345", "#D7C969",        "#C1395E", "#AEC17B", "#E07B42", "#89A7C2", "#F0CA50","#a53e1f", "#457277", "#8f657d", "#8dcee2",        "#E69253", "#EDB931", "#E4502E", "#4378A0", "#272A2A","#3F6148", "#A4804C", "#4B5F80", "#DBD3A4")#转录组UMAP降维结果DimPlot(Spatial_integrated, label = F, cols = cols,pt.size = 0.1)+  theme_dr()+theme(panel.grid.major = element_blank(),                   panel.grid.minor = element_blank())

图片

展示spots空间位置!

patialDimPlot(Spatial_integrated, stroke=0.1,ncol=3)&   scale_fill_manual(values = cols) &  theme_bw()&  theme(axis.text = element_blank(),        axis.ticks = element_blank(),        axis.title = element_blank())

图片

熟悉了scRNA的流程,那么空转的分析也会很顺畅,到这里对于空转,才算是开始。那么有一个问题就是,既然空转不是单细胞,每个spot其实包含几个细胞,那么接下来的重点就是如何进行注释了,也就是常听说的反卷积,我们后面慢慢了解。那么我们还是希望空转能尽快突破单细胞水平吧!希望我们的分享对你有用,单个赞再走呗!   

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。

上一篇:真香!这是一条有味道的推送

下一篇:没有了

相关资讯