前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RCA2:单细胞数据的分析和可视化工具!

RCA2:单细胞数据的分析和可视化工具!

作者头像
作图丫
发布2022-03-29 11:22:13
8460
发布2022-03-29 11:22:13
举报
文章被收录于专栏:作图丫

导语

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包安装

代码语言:javascript
复制
library(remotes)
install_github("prabhakarlab/RCAv2")

可视化展示

01

数据输入

使用作者提供的10X Genomics公开数据集,创建一个RCA object。

代码语言:javascript
复制
PBMCs<-RCAv2::createRCAObjectFrom10X("10xPBMCs/")
PBMCs
代码语言:javascript
复制
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指标进行可视化。

代码语言:javascript
复制
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转换进行标准化。

代码语言:javascript
复制
PBMCs<-RCAv2::dataLogNormalise(PBMCs)

03

将单细胞数据映射到reference数据上

RCA包提供了13个参考面板。当然,我们也可以自己设置reference。

代码语言:javascript
复制
PBMCs<-RCAv2::dataProject(PBMCs,
                     method = "GlobalPanel",
                     corMeth = "pearson")

04

聚类并可视化

聚类有两个参数:deepSplitValues和minClustSize,分别表示聚类的cut和最小细胞数。

代码语言:javascript
复制
PBMCs<-RCAv2::dataClust(PBMCs)
RCAv2::plotRCAHeatmap(PBMCs,filename = "Heatmap_PBMCs.pdf",var.thrs=1)

除了热图以外,还可以使用UMAP绘制2D和3D的映射图,非常好看。

代码语言:javascript
复制
PBMCs<-computeUMAP(PBMCs)
RCAv2::plotRCAUMAP(PBMCs,filename = "UMAP_PBMCs.pdf")
代码语言:javascript
复制
PBMCs<-computeUMAP(PBMCs, nDIMS = 3)
RCAv2::plotRCAUMAP3D(PBMCs,filename = "UMAP3D_PBMCs.html")

当然,我们还可以观察每个聚类的组成(堆叠条形图)。在 a图中,显示每个聚类的相对组成,b图显示每个聚类中的细胞的绝对数量。颜色代码表示最有可能的细胞注释。

代码语言:javascript
复制
#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")

根据热图和堆叠条图,我们可以根据主要细胞类型注释重新标记聚类:

代码语言:javascript
复制
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。

代码语言:javascript
复制
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:

代码语言:javascript
复制
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基因可以通过绘图热图功能在热图中绘制:

代码语言:javascript
复制
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富集

代码语言:javascript
复制
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富集

代码语言:javascript
复制
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处理单细胞数据的方法小编就全部介绍完啦,有兴趣的同学可以自己尝试一下哦!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作图丫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档