听过周老师的课的同学,应该有印象:周老师在讲单细胞数据结构的时候提到过,单细胞数据是表达量数据,每个数值表示的是表达量,也就是含量,是一个非负数。表达量这个可以有绝对表达量和相对表达量,也就是所占的比例。基于这个简单淳朴的认知,其实我们就可以画出很多好玩的图,如雷达图。
雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法。
今天在逛一个单细胞免疫数据库的时候,看到其展示了一种表示基因表达的雷达图:
瑞士免疫细胞分析门户网站(SPICA)是一个专门用于探索和分析免疫细胞单细胞RNA-seq数据的网络资源。与其他单细胞数据库不同的是,SPICA管理了高分辨率描述免疫细胞状态的细胞类型特异性参考图谱,并在这些图谱的背景下分析了发表的单细胞数据集。
https://spica.unil.ch/home/about
于是,我们就想把它复现一下。
library(fmsb)
library(Seurat)
library(SeuratData)
library(tidyverse)
pbmc3k.final
An object of class Seurat
13714 features across 2638 samples within 1 assay
Active assay: RNA (13714 features, 2000 variable features)
2 dimensional reductions calculated: pca, umap
经典的单细胞PBMCmarker :
classmk <-c("IL7R", "CCR7", "IL7R", "S100A4","CD14", "LYZ","MS4A1","CD8A","FCGR3A", "MS4A7", "GNLY",
"NKG7","FCER1A", "CST3","PPBP")
avdf <- AverageExpression(pbmc3k.final,features =classmk) #计算平均表达量
绘制雷达图:
NCD4<- avdf$RNA[,3:4]
NCD4 <- as.data.frame(NCD4)
NCD4$M <- max(NCD4)
NCD4$N <- min(NCD4)
NCD4<- NCD4[,c(3,4,1,2)]
head(NCD4)
NCD4 <- t(NCD4)
colors_border=c( rgb(0.2,0.5,0.5,0.9), rgb(0.8,0.2,0.5,0.9) , rgb(0.7,0.5,0.1,0.9) )
colors_in=c( rgb(0.2,0.5,0.5,0.4), rgb(0.8,0.2,0.5,0.4) , rgb(0.7,0.5,0.1,0.4) )
radarchart(as.data.frame(NCD4),axistype = 1, pcol=colors_border , pfcol=colors_in )
legend(x=.6, y=1.3, legend = rownames(NCD4[-c(1,2),]), bty = "n",
pch=20 , col=colors_in , text.col = "grey", cex=1.2, pt.cex=3)
一个多细胞类型多marker的雷达图就绘制成功了,那么,作为一个多变量的可视化工具,在单细胞的数据分析中,哪些步骤还可以用到雷达图呢?