作者,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)
网友评论