单细胞测序技术的发展日新月异,新的分析工具也层出不穷。每个工具都有它的优势与不足,在没有权威工具和流程的单细胞生信江湖里,多掌握几种分析方法和工具,探索数据时常常会有意想不到的惊喜。
单细胞初级8讲和高级分析8讲 单细胞分析十八般武艺1:harmony 单细胞分析十八般武艺2:LIGER 单细胞分析十八般武艺3:fastMNN 单细胞分析十八般武艺4:velocyto 单细胞分析十八般武艺5:monocle3 单细胞分析十八般武艺6:NicheNet 单细胞分析十八般武艺7:CellChat 单细胞分析十八般武艺8:Garnett 单细胞分析十八般武艺9:DoubletFinder 单细胞分析十八般武艺10:NMF
xCell是开发SingleR包的团队2017年推出的一款推断bulkRNA样本中细胞类型比例的R包,目前在google学术查到它有598次引用。xCell的工作原理是用机器学习算法提取了64种免疫细胞和基质细胞的signature,待检测bulkRNA数据先用ssGSEA算法计算样本在每个细胞类型signature的富集分数,然后用特别设计的算法将样本中各种细胞类型的富集分数转换为细胞类型分数,最后对紧密相关的细胞类型分数进行补偿校正。
https://raw.githubusercontent.com/dviraran/xCell/master/vignettes/sdy420.rds
devtools::install_github('dviraran/xCell')
library(xCell)
## 加载测试数据
sdy <- readRDS("sdy420.rds")
# sdy是下载的示例数据,有104个样本的表达谱芯片的bulkRNA数据expr,
# 以及基于流式计数的细胞百分比的数据fcs
summary(sdy)
# Length Class Mode
#expr 104 data.frame list
#fcs 104 data.frame list
## 根据样本实际情况设置分析的细胞类型,有利于提高分析的准确性,非必要步骤
cell.types.use = intersect(colnames(xCell.data$spill$K), rownames(sdy$fcs))
## xCell评分,注意rnaseq参数,芯片数据设为F,测序数据设为T
scores = xCellAnalysis(sdy$expr, rnaseq=F, cell.types.use = cell.types.use)
## 准确性评估
library(psych)
library(ggplot2)
fcs = sdy$fcs[rownames(scores), colnames(scores)]
res = corr.test(t(scores), t(fcs), adjust='none')
qplot(x=rownames(res$r), y=diag(res$r),
fill=diag(res$p) < 0.05, geom='col',
main='SDY420 association with immunoprofiling',
ylab='Pearson R', xlab= '') + labs(fill = "p-value < 0.05") +
theme_classic() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
测试数据集中有24种细胞类型,因为xCell自带signature的局限性,只能预测18种细胞类型。其中13个预测结果与真实的细胞比例显著相关(p<0.05),7个预测结果与真实的细胞比例高度相关(p<0.05&R>0.5)。
xCell并不是一款分析单细胞数据的工具,我向大家介绍它并收录在《单细胞分析十八般武艺》专题中,是因为它与单细胞的分析密切相关。虽然单细胞研究热潮已经持续了几年,但是高昂的成本依然让大家难以负担;因此使用少量样本做scRNA-seq得出研究结论,然后用大量bulkRNA样本进行验证的策略被越来越多的人使用。为了更好地将单细胞数据与bulkRNA数据联系起来,往往需要对bulkRNA数据进行去卷积操作,近年来很多优秀的去卷积工具被开发出来,我会在此专题中陆续介绍几款常用的方法。
交流探讨:如果您阅读此文有所疑惑,或有不同见解,亦或其他问题,可以点击阅读原文联系探讨。