本文首发于“生信补给站”公众号 https://mp.weixin.qq.com/s/56uSlqCDzBNbOMuTxeHKVQ
偶然见到一张将拟时序分析的结果映射到umap中的图(https://www.jianshu.com/p/e2f0dc8a485c),想了下只需要获取 时序分析的结果 + umap的位置信息 ,使用ggplot2是不是就可以绘制了?
一 加载数据 R包
使用上篇推文得到的拟时序分析的结果,也可后台回复 “时序”获取。
尽可能的熟悉单细胞分析中常见的数据都存在哪,记不住的可以多使用 str 函数查看
library(monocle) library(Seurat) library(ggplot2) #载入数据 load("HSMM_anno.RData") #查看umap的位置信息 head(pbmc@reductions$umap@cell.embeddings) #查看cell的Pseudotime 信息 head(HSMM@phenoData@data)
1.2 结合Pseudotime 和 umap
将Pseudotime信息添加到pbmc的meta.data中
pbmc@meta.data$Pseudotime <- HSMM@phenoData@data$Pseudotime head(pbmc@meta.data)
二 Pseudotime映射到umap
2.1 划分Pseudotime
考虑到Pseudotime是连续型的 ,绘制到umap上颜色类型太多了,暂时“任性”的分为6类(没有啥参考)。
#将Pseudotime分类 p3 <- plot_cell_trajectory(HSMM, color_by = "Pseudotime")+ scale_color_gradientn(values = seq(0,1,0.2), colours = c('blue','cyan','green','yellow','orange','red')) p3
2.2 Pseudotime映射到umap图
#提取位置和Pseudotime信息 mydata<- FetchData(pbmc,vars = c("UMAP_1","UMAP_2","Pseudotime")) p <- ggplot(mydata,aes(x = UMAP_1,y =UMAP_2,colour = Pseudotime))+ geom_point(size = 1)+ scale_color_gradientn(values = seq(0,1,0.2), colours = c('blue','cyan','green','yellow','orange','red')) p4 <- p + theme_bw() + theme(panel.border = element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), axis.line = element_line(colour = "black")) p4 p3 / p4
OK,完成拟时序分析结果的映射。是不是觉得其实只要知道需要的数据都在哪,然后使用ggplot2 或者 基础函数就能解决问题。
你用,或者不用我。
数据就在那里,不藏不躲。