导语
GUIDE ╲
单细胞测序可以详细分析不同细胞类型的转录多样性。RCA2包是一种基于图的聚类算法,可以聚类大型scRNA-seq数据集并可视化。
背景介绍
今天小编为大家带来一个处理单细胞数据的R包——RCA2。RCA2以 scRNA-seq数据作为输入,可以对10X Genomics数据进行质量控制和预处理。RCA允许用户从自己生成自定义参考面板,同时也提供了多个预设的参考面板。RCA考虑选定的参考面板以及查询单细胞数据,以计算相关矩阵,得出单细胞转录组与参考转录组的相似性,可以在热图中聚类和可视化。RCA首个版本发表在Nature Genetics (doi: 10.1038/ng.3818),RCA2发表在NAR(10.1093/nar/gkab632)。我们可以在Github上学习RCA2的使用方法和源代码(https://github.com/prabhakarlab/RCAv2)。
R包安装
library(remotes)
install_github("prabhakarlab/RCAv2")
可视化展示
01
数据输入
使用作者提供的10X Genomics公开数据集,创建一个RCA object。
PBMCs<-RCAv2::createRCAObjectFrom10X("10xPBMCs/")
PBMCs
RCA reference class object
Raw data: 5247 cells and 33570 features.
02
正质量控制(QC)
根据检测到的基因数量(nGene.thresholds),唯一分子标识符的数量(nUMI.thresholds),线粒体reads百分比 (percent.mito.thresholds)和任何基因需要表达的细胞的最小数量(min.cell.exp)这些QC指标进行可视化。
PBMCs<-RCAv2::dataFilter(PBMCs,
nGene.thresholds = c(300,5000),
nUMI.thresholds = c(400,30000),
percent.mito.thresholds = c(0.025,0.2),
min.cell.exp = 3,
plot=T,
filename = "PBMCs_filter_example.pdf")
我们可以通过测序深度和log转换进行标准化。
PBMCs<-RCAv2::dataLogNormalise(PBMCs)
03
将单细胞数据映射到reference数据上
RCA包提供了13个参考面板。当然,我们也可以自己设置reference。
PBMCs<-RCAv2::dataProject(PBMCs,
method = "GlobalPanel",
corMeth = "pearson")
04
聚类并可视化
聚类有两个参数:deepSplitValues和minClustSize,分别表示聚类的cut和最小细胞数。
PBMCs<-RCAv2::dataClust(PBMCs)
RCAv2::plotRCAHeatmap(PBMCs,filename = "Heatmap_PBMCs.pdf",var.thrs=1)
除了热图以外,还可以使用UMAP绘制2D和3D的映射图,非常好看。
PBMCs<-computeUMAP(PBMCs)
RCAv2::plotRCAUMAP(PBMCs,filename = "UMAP_PBMCs.pdf")
PBMCs<-computeUMAP(PBMCs, nDIMS = 3)
RCAv2::plotRCAUMAP3D(PBMCs,filename = "UMAP3D_PBMCs.html")
当然,我们还可以观察每个聚类的组成(堆叠条形图)。在 a图中,显示每个聚类的相对组成,b图显示每个聚类中的细胞的绝对数量。颜色代码表示最有可能的细胞注释。
#Estimate the most probable cell type label for each cell
PBMCs<-estimateCellTypeFromProjection(PBMCs,confidence = NULL)
#Generate the cluster composition plot
RCAv2::plotRCAClusterComposition(PBMCs,filename="Cluster_Composition.pdf")
根据热图和堆叠条图,我们可以根据主要细胞类型注释重新标记聚类:
RCAcellTypes<-PBMCs$clustering.out$dynamicColorsList[[1]]
RCAcellTypes[which(RCAcellTypes=="blue")]<-"Monocytes"
RCAcellTypes[which(RCAcellTypes=="green")]<-"Dentritic cells"
RCAcellTypes[which(RCAcellTypes=="yellow")]<-"B cells"
RCAcellTypes[which(RCAcellTypes=="grey")]<-"B cells"
RCAcellTypes[which(RCAcellTypes=="brown")]<-"NK cells"
RCAcellTypes[which(RCAcellTypes=="turquoise")]<-"T cells"
RCAcellTypes[which(RCAcellTypes=="red")]<-"Myeloid cells"
RCAcellTypes[which(RCAcellTypes=="black")]<-"Progenitor cells"
这里我们以CD56的表达为例,CD56是一个常见的NK细胞标记,基因名称是NCM1。
CD56Exp<-PBMCs$data[which(rownames(PBMCs$data)=="NCAM1"),]
RCAv2::plotRCAUMAP(PBMCs,cellPropertyList = list(CellTypes=RCAcellTypes,CD56=CD56Exp),filename = "UMAP_PBMCs.pdf")
为了获得噪声较小的细胞类型标签,还可以在聚类水平上预测细胞类型。RCA2使用上述cluster组成图进行多数投票。要获得基于cluster的细胞类型预测,可以使用函数estimateCellTypeFromProjectionPerCluster:
PBMCs<-RCAv2::createRCAObjectFrom10X("../Documents/10xExample/")
PBMCs<-RCAv2::dataFilter(PBMCs,nGene.thresholds = c(300,4500),
percent.mito.thresholds = c(0.025,0.1),
min.cell.exp = 3)
PBMCs<-RCAv2::dataLogNormalise(PBMCs)
PBMCs<-RCAv2::dataProject(PBMCs,
method = "NovershternPanel",
corMeth = "pearson",
nPCs=0,
approx= FALSE)
PBMCs<-RCAv2::dataSClust(PBMCs,res = 0.15)
PBMCs<-estimateCellTypeFromProjectionPerCluster(PBMCs)
此外,RCA还提供了多种聚类方案以应对大型的单细胞数据集,例如shared neirest neighbour (snn), the Louvain graph based clustering。这里小编就不一一展示了,大家可以根据自己的需求选择聚类方法。
05
计算cluster的差异表达基因
logFoldChange表示差异表达的FC值。method表示使用哪种统计方法。p.adjust.methods表示多重校正检验。mean.Exp和min.pct表示表达基因的最小表达值以及表达基因的细胞的最小百分比。此外,top基因可以通过绘图热图功能在热图中绘制:
PBMCs<-RCAv2::dataDE(PBMCs,
logFoldChange = 1.5,
method = "wilcox",
mean.Exp = 0.5,
deep.Split.Values = 1,
min.pct = 0.25,
min.diff.pct = -Inf,
random.seed = 1,
min.cells.group = 3,
pseudocount.use = 1,
p.adjust.methods = "BH",
top.genes.per.cluster = 10
)
RCAv2::plotDEHeatmap(PBMCs,scale=FALSE)
06
GO和KEGG富集
GO富集
doEnrichGo<-function(rca.obj,
annotation=NULL,
ontology="BP",
p.Val=0.05,
q.Val=0.2,
p.Adjust.Method="BH",
gene.label.type="SYMBOL",
filename="GoEnrichment.pdf",
background.set="ALL",
background.set.threshold=NULL,
n.Cells.Expressed=NULL,
cluster.ID=NULL,
deep.split=NULL)
KEGG富集
doEnrichKEGG<-function(rca.obj,
annotation=NULL,
org="hsa",
key="kegg",
p.Val=0.05,
q.Val=0.2,
p.Adjust.Method="BH",
gene.label.type="SYMBOL",
filename="KEGGEnrichment.pdf",
background.set="ALL",
background.set.threshold=NULL,
n.Cells.Expressed=NULL,
cluster.ID=NULL,
deep.split=NULL)
小编总结
RCA2是目前比较成熟的单细胞注释和可视化的工具,操作简单,绘图精美。RCA2在相对于RCA1在速度、性能上进行了优化,大大扩展了包含的参考数据集,并且可以更轻松地处理大型单细胞数据集(无监督聚类进行注释的新方法)。那么今天使用RCA2处理单细胞数据的方法小编就全部介绍完啦,有兴趣的同学可以自己尝试一下哦!