RCA2:单细胞数据的分析和可视化工具!
2021-08-27 09:28
导语
GUIDE ╲
单细胞测序可以详细分析不同细胞类型的转录多样性。RCA2包是一种基于图的聚类算法,可以聚类大型scRNA-seq数据集并可视化。
library(remotes)install_github("prabhakarlab/RCAv2")
PBMCs<-RCAv2::createRCAObjectFrom10X("10xPBMCs/")PBMCs
RCA reference class objectRaw data: 5247 cells and 33570 features.
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)
PBMCs<-RCAv2::dataProject(PBMCs, method = "GlobalPanel", corMeth = "pearson")
PBMCs<-RCAv2::dataClust(PBMCs)RCAv2::plotRCAHeatmap(PBMCs,filename = "Heatmap_PBMCs.pdf",var.thrs=1)
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 cellPBMCs<-estimateCellTypeFromProjection(PBMCs,confidence = NULL)#Generate the cluster composition plotRCAv2::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。这里小编就不一一展示了,大家可以根据自己的需求选择聚类方法。
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)
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)
不感兴趣
看过了
取消
单细胞,数据集,工具,数据,分析,基因
不感兴趣
看过了
取消
精彩评论
相关阅读
赞+1