空转第16课同型细胞网络(cell degree)内容补充

2023-10-27  本文已影响0人  单细胞空间交响乐

作者,Evil Genius

什么是细胞“网络”?细胞在空间位置上不是随机出现的,细胞在空间上的定位受到了周围环境以及自身状态的影响,而这种影响的结果,就是每种细胞类型在空间上形成了具有区域偏好性的细胞“网络”。为了系统的确定特定细胞类型的细胞区域“网络”,计算了每种细胞类别中的空间位置彼此相邻的倾向,这里我们称之为同型细胞“网络”。
同型细胞“网络”是为了确定单一细胞类型在空间上的分布特点,多条件进行比较会发现明显的差异和生物学变化。
为了评估每一类(这里就是细胞类型)中spot的空间聚类程度,针对空间转录组构建空间细胞网络,计算网络中每个点 i 的spot degree--- ki(即直接相邻spot的数量,对于 Visium 对应的最大spot degree为 6),文章展示图如下:



意思就是一个spot含有细胞类型A,那其周围的6个spot如果都含有A,那么该spot 为等级6,5个spot含有A则是等级5,以此类推。

课程用示例数据分析一下的结果:

点的大小等一些元素可以调整,最主要的是体现其分布特点

课程上的代码如下:

library(Seurat)
library(dplyr)
library(dbscan)
library(ggplot2)


cortex_sp = readRDS('/root/singlepipeline/demodata/cell2location/sp.degree.test.rds')

###decon_mtrx = t(cortex_sp@assays$predictions@data)

decon_mtrx = read.csv('/root/singlepipeline/demodata/cell2location/sp_sc.csv',header = T,row.names = 1,check.names = F)

decon_mtrx = t(decon_mtrx)

cell_types_all <- colnames(decon_mtrx)[which(colnames(decon_mtrx) != "max")]

decon_df <- decon_mtrx %>%
  data.frame(check.names = F) %>%
  tibble::rownames_to_column("barcodes")

#decon_df$barcodes = rownames(tmp)

cortex_sp@meta.data <- cortex_sp@meta.data %>%
  tibble::rownames_to_column("barcodes") %>%
  dplyr::left_join(decon_df, by = "barcodes") %>%
  tibble::column_to_rownames("barcodes")

###plot dot
slice <- names(cortex_sp@images)[1]
metadata_ds <- data.frame(cortex_sp@meta.data)
colnames(metadata_ds) <- colnames(cortex_sp@meta.data)
cell_types_interest <- cell_types_all

metadata_ds <- metadata_ds %>% tibble::rownames_to_column("barcodeID") %>%
            dplyr::mutate(rsum = base::rowSums(.[, cell_types_interest,
                drop = FALSE])) %>% dplyr::filter(rsum != 0) %>%
            dplyr::select("barcodeID") %>% dplyr::left_join(metadata_ds %>%
            tibble::rownames_to_column("barcodeID"), by = "barcodeID") %>%
            tibble::column_to_rownames("barcodeID")


spatial_coord <- data.frame(cortex_sp@images[[slice]]@coordinates) %>%
        tibble::rownames_to_column("barcodeID") %>% dplyr::mutate(imagerow_scaled = imagerow *
        cortex_sp@images[[slice]]@scale.factors$lowres, imagecol_scaled = imagecol *
        cortex_sp@images[[slice]]@scale.factors$lowres) %>% dplyr::inner_join(metadata_ds %>%
        tibble::rownames_to_column("barcodeID"), by = "barcodeID")

head(spatial_coord)
等级计算
上一篇下一篇

猜你喜欢

热点阅读