作者,Evil Genius
低谷过后有新风~~~
空间细胞类型密度分布图
空间转录组数据分析之近邻热图绘制
10X单细胞(10X空间转录组)分析回顾之一些细节绘图操作
10X空间转录组的画图操作(基础知识)
文献中的热图代码实现(热图标记感兴趣的基因,基础知识)
ggplot2给并排条形图自定义添加P值
今天我们来实现一个好看的图片
好看的图片是发文必备的,不仅仅可以提供很多有效的信息,也会让审稿人眼前一亮,提高文章命中率
对于空间而言,这种图还有另外一个作用就是绘制通讯的方向性
好看的图片需要以下几个要素:
1、主题:一幅好照片必须有一个鲜明的主题,可以是表现一件事、一个人,也可以表现组照作品故事中的某一个细节。主题明确的作品,要表述的内容让观众一目了然,也就是说,能够使观众很容易从照片中看明白作者的意图。
2、简洁清晰:想必大家都知道这么一句话:绘画是加法,摄影是减法。也就是说,摄影的画面越简洁越好。简洁不等于简单,也不是指画面中被摄内容的多少,而是指画面与主题无关的视觉元素越少越好。
3、颜色搭配:颜色搭配也是一门很深的学问
对于我们单细胞空间的数据分析而言,分析的好,也是会展示分析的结果,好看的图片胜过千言万语,细节部分需要我们精心准备。
我们来实现一下:
suppressMessages({
library(Seurat)
library(dplyr)
library(ggplot2)
})
cortex_sp = readRDS(spatial_rds)
注意这里的空间rds是做过单细胞空间的,rds里面包含了每个spot的细胞比例信息,如下图:
cortex_sp@assays$predictions@data[1:10,1:10]
接下来提取有效信息
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")
然后,指定我们的目标细胞类型
cell = c("IIx","MuSCs","IIb")
网友评论