空间转录组细胞类型和配受体的空间定位图
2023-07-20 本文已影响0人
单细胞空间交响乐
作者,Evil Genius
空间细胞类型方向图
空间细胞类型密度分布图
空间转录组数据分析之近邻热图绘制
10X单细胞(10X空间转录组)分析回顾之一些细节绘图操作
10X空间转录组的画图操作(基础知识)
文献中的热图代码实现(热图标记感兴趣的基因,基础知识)
ggplot2给并排条形图自定义添加P值
这一篇我们继续来分享一点空间的个性化绘图内容,当然我知道了大家做了空间转录组拿到了公司的分析结果,但是都是标准化的结果,连图片什么的都是标准化的做法,大家要注意一点,凡是好一点的文章图片都是精修的,而且没有两篇文章的图片格式是一样的。
今天我们来实现下面这张图
好看的图片需要以下几个要素:
1、主题:一幅好照片必须有一个鲜明的主题,可以是表现一件事、一个人,也可以表现组照作品故事中的某一个细节。主题明确的作品,要表述的内容让观众一目了然,也就是说,能够使观众很容易从照片中看明白作者的意图。
2、简洁清晰:想必大家都知道这么一句话:绘画是加法,摄影是减法。也就是说,摄影的画面越简洁越好。简洁不等于简单,也不是指画面中被摄内容的多少,而是指画面与主题无关的视觉元素越少越好。
3、颜色搭配:颜色搭配也是一门很深的学问
我们实现的效果如下
底片是这样的
这种图的展示方式是另外一种共定位的方法,用两种颜色梯度和shape展示共定位,既可以展示空间的共定位,也可以展示配受体的共定位,而且展示效果来讲不错,我们来实现一下:
suppressMessages({
library(Seurat)
library(dplyr)
library(ggplot2)
})
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")