不同单细胞群之间的相关性分析


单细胞绘图系列:

  • Seurat绘图函数总结
  • 使用ggplot2优化Seurat绘图
  • scRNAseq灵活的点图绘制:FlexDotPlot
  • 富集分析结果雷达图
  • DoHeatmap的优化+ComplexHeatmap绘制带特定基因的单细胞热图

1. 文献中的细胞群之间的相关性热图

相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性分析旨在研究两个或两个以上随机变量之间相互依存关系的方向和密切程度。
两个变量之间的相关性可以用简单相关系数(例如皮尔森相关系数等)进行表示,相关系数越接近1,两个元素相关性越大,相关系数越接近0,两个元素越独立。

在读单细胞的文献的时候经常会看到这种细胞群间的相关性热图

Immunophenotyping of COVID-19 and influenza highlights the role of type I interferons in development of severe COVID-19
Single-Cell Reconstruction of Progression Trajectory Reveals Intervention Principles in Pathological Cardiac Hypertrophy

这类细胞群间的相关性热图的主要意义在于查看细胞群于群之间的相似性,有助于寻找相似的功能性亚群。

2. 一个简单的实现方法:

使用R从Seurat对象中提取标准差最大的top基因计算相关性,用pheatmap画图。

library(Seurat)
pbmc <- readRDS("pbmc.rds")
table(pbmc$cell_type)
av <-AverageExpression(pbmc,
                       group.by = "cell_type",
                       assays = "RNA")
av=av[[1]]
head(av)
#               Naive CD4 T Memory CD4 T  CD14+ Mono          B      CD8 T FCGR3A+ Mono         NK         DC Platelet
# AL627309.1    0.006007987   0.04854338 0.006065400 0.00000000 0.01995673   0.00000000 0.00000000 0.00000000        0
# AP006222.2    0.000000000   0.01088471 0.008397321 0.00000000 0.01157323   0.00000000 0.00000000 0.00000000        0
# RP11-206L10.2 0.007306336   0.00000000 0.000000000 0.02065031 0.00000000   0.00000000 0.00000000 0.08462847        0
# RP11-206L10.9 0.000000000   0.01050116 0.000000000 0.00000000 0.00000000   0.01200008 0.00000000 0.00000000        0
# LINC00115     0.014872162   0.03753737 0.031095957 0.03888541 0.01892413   0.01469374 0.06302423 0.00000000        0
# NOC2L         0.501822970   0.27253750 0.346874253 0.58653489 0.59129394   0.50026775 0.65705381 0.32861136        0

#选出标准差最大的1000个基因
cg=names(tail(sort(apply(av, 1, sd)),1000))
#查看这1000个基因在各细胞群中的表达矩阵
View(av[cg,])
#查看细胞群的相关性矩阵
View(cor(av[cg,],method = 'spearman'))
#pheatmap绘制热图
pheatmap::pheatmap(cor(av[cg,],method = 'spearman')) #默认是Pearson
略丑,不过还是可以说明问题的

使用Scanpy可以更简单的绘制细胞群间的相关图

import scanpy as sc
adata = sc.datasets.pbmc68k_reduced()
sc.tl.dendrogram(adata, 'bulk_labels')
#sc.pl.dendrogram(adata, 'bulk_labels')
sc.pl.correlation_matrix(adata, 'bulk_labels', figsize=(5,3.5))

参考:Scanpy可视化函数汇总

3. 相关性分析方法

相关分析有不同的方法:主要包括Pearson参数相关检验,Spearman和Kendall基于秩的相关分析。
1. Pearson相关(皮尔逊积差相关)
Pearson相关系数是用于表示相关性大小的最常用指标,数值介于-1~1之间,越接近0相关性越低,越接近-1或1相关性越高。正负号表明相关方向,正号为正相关、负号为负相关。适用于两个正态分布的连续变量
2. Spearman等级相关(斯皮尔曼秩相关)
利用两变量的秩次大小来进行分析,属于非参数统计方法。适用于不满足Pearson相关系数正态分布要求的连续变量。也可以用于有序分类变量的之间的相关性测量。
3. Kendall's Tau相关
Kendall's Tau相关系数是一种非参数检验,适用于两个有序分类变量
4. 其它
此外衡量两个变量之间关系的方法还有:卡方检验、Fisher精确检验等。


参考:多个基因集相关性热图

你可能感兴趣的:(不同单细胞群之间的相关性分析)