需求
最近在看一篇2018年science肾脏细胞癌文献的时候,发现一张比较好看的TSNE图,上面的每个聚类中有等高线,觉得作者画的挺好看的,我们平时做10xGenomics单细胞转录组也挺多的,自己也想尝试一下。文献原文图如下:
实践
先上代码,既然知道是我们普通TSNE图上面加了等高线,那我们首先就要把画图所需的数据提取出来,然后使用原始数据画等高线图,此次用的是我们平时的用的seurat分析10xGenomics单细胞转录数据最终保存的rds文件,具体代码如下:
#提取数据
require(Seurat)
require(dplyr)
require(Matrix)
require(magrittr)
rds_file<-'you_path_dir/immune_combined.rds'
immune.combined <- readRDS(rds_file)
x<-as.data.frame(immune.combined@dr$tsne@cell.embeddings)
x$orig.ident<-rownames(x)
y<-immune.combined@meta.data[,c('orig.ident','tech','res.0.8')]
y$orig.ident<-rownames(y)
head(y)
y$res.0.8<-immune.combined@ident
color<-hue_pal()(cluster_num)
c<-merge(x,y,by='orig.ident')
head(c)
# orig.ident tSNE_1 tSNE_2 tech res.0.8
# 1 AAACCTGAGAATCTCC.1.2 11.317681 27.2440212 DF84d 2
# 2 AAACCTGAGACAATAC.1.1 26.814518 16.4364683 DF80d 13
# 3 AAACCTGAGACAGAGA.1.3 13.430117 0.1523017 DF88d 4
# 4 AAACCTGAGACTACAA.1.2 22.325150 22.6805528 DF84d 2
# 5 AAACCTGAGAGTGACC.1.1 -31.634440 -4.1118314 DF80d 9
# 6 AAACCTGAGATGTCGG.1.1 -8.230845 10.8149502 DF80d 1
####根据提取的数据画图
bwidth = .05*c(sum(abs(range(c$tSNE_1))),sum(abs(range(c$tSNE_2))))
pdf('tsne_stat_density2d.pdf',w=12,h=8)
gg = ggplot(c,aes(tSNE_1,tSNE_2,colour=res.0.8)) +
#geom_tile(data=rastMap,aes(x,y,fill=res.1),alpha=0.5,inherit.aes=FALSE)+
#geom_contour(data=minContDat,aes(x,y,z=z,colour=res.1),alpha=0.3,bins=1,inherit.aes=FALSE) +
stat_density2d(aes(x=tSNE_1,y=tSNE_2,colour=res.0.8),h=bwidth) +
geom_point(size=1.0,stroke=0.1) +
#scale_shape_manual(values=diseaseShapes,breaks=names(diseaseShapes))+
#scale_colour_manual(values=manCols) +
scale_alpha_manual(values=c(`0`=0.3,`1`=0.1,`2`=1.0,`3`=0.25)) +
#Randomise default colours
#scale_colour_manual(values=sample(ggColours(length(unique(df$res.1))))) +
#geom_text(data=cLabs,aes(x,y,label=ClusterID),inherit.aes=FALSE,size=10) +
#ggtitle(gsub('.*_','',srcDir)) +
guides(colour=FALSE,fill=FALSE,shape=FALSE,alpha=FALSE)
print(gg)
dev.off()
上图为我们实测数据画的带有等高线的TSNE图,当然图片与文献的图相差还是比较大的,一个是数据的问题,各个亚群分的不是很开,另外一个是颜色的问题,颜色是一个很重要的关键点,ggplot自带的颜色真的好丑,不过目的基本上实现了,这里就不再进行美化了,先记录下来,回头再用。
参考文献
Single-cell transcriptomes from human kidneys reveal the cellular identity of renal tumors
2019年7月9日