美文网首页
10X空间转录组同型细胞网络绘制(cell degree)

10X空间转录组同型细胞网络绘制(cell degree)

作者: 单细胞空间交响乐 | 来源:发表于2023-07-23 16:01 被阅读0次

    作者,Evil Genius

    什么是细胞“网络”?细胞在空间位置上不是随机出现的,细胞在空间上的定位受到了周围环境以及自身状态的影响,而这种影响的结果,就是每种细胞类型在空间上形成了具有区域偏好性的细胞“网络”。为了系统的确定特定细胞类型的细胞区域“网络”,计算了每种细胞类别中的空间位置彼此相邻的倾向,这里我们称之为同型细胞“网络”。

    同型细胞“网络”是为了确定单一细胞类型在空间上的分布特点,多条件进行比较会发现明显的差异和生物学变化。

    为了评估每一类(这里就是细胞类型)中spot的空间聚类程度,针对空间转录组构建空间细胞网络,计算网络中每个点 i 的spot degree--- ki(即直接相邻spot的数量,对于 Visium 对应的最大spot degree为 6),文章展示图如下:

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

    随便找了个数据试了一下,拿到下面的效果

    当然了,用HE图片的效果比荧光效果好的多,当然,这个图的绘制也是相当复杂。

    好看的图片需要以下几个要素:

    1、主题:一幅好照片必须有一个鲜明的主题,可以是表现一件事、一个人,也可以表现组照作品故事中的某一个细节。主题明确的作品,要表述的内容让观众一目了然,也就是说,能够使观众很容易从照片中看明白作者的意图。
    2、简洁清晰:想必大家都知道这么一句话:绘画是加法,摄影是减法。也就是说,摄影的画面越简洁越好。简洁不等于简单,也不是指画面中被摄内容的多少,而是指画面与主题无关的视觉元素越少越好。
    3、颜色搭配:颜色搭配也是一门很深的学问

    我们就来实现一下这个方法,首先我们要构建空间网络,寻找每个spot周围6个spot,随后计算细胞等级。

    library(Seurat)
    library(dplyr)
    cortex_sp = readRDS(spatial.rds)
    
    decon_mtrx = t(cortex_sp@assays$predictions@data)
    
    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")
    
    
    
    ###添加坐标信息
    st.object = cortex_sp
    
    st.object$pixel_x = spatial_coord$imagerow_scaled
    st.object$pixel_y = spatial_coord$imagecol_scaled
    st.object$sample = st.object$orig.ident
    
    xys = setNames(st.object@meta.data[, c("pixel_x", "pixel_y", "sample")], c("x", "y", "sample"))
    
    platforms = 'Visium'
    
    spotnames <- rownames(xys)
    library(dplyr)
    names(spotnames) <- c(1:nrow(xys)) %>% paste0()
    # Get spot distances
    sdist = 200
    ###10X空间转录组临近的6个spot
    nNeighbours = 6
    maxdist = 200
    
    

    接下来就要构建空间近邻网络

    相关文章

      网友评论

          本文标题:10X空间转录组同型细胞网络绘制(cell degree)

          本文链接:https://www.haomeiwen.com/subject/xrbxpdtx.html