1、批次整合方法
可以参考文档 Ghosn-Lab/BatchNorm: Vignettes/BatchEffect_Correction.Rmd (rdrr.io)
2、关于评估方法
进行跨批次数据整合时,我们期望的结果是混合具有相同类型/状态的细胞。
最直观的解决方案是检查UMAP聚类结果中的细胞标志物(marker)的表达情况,混合良好的话标志物应该在不同数据集的同一个簇里面表达;
使用 FeaturePlot()
指定 cell =
参数来分别绘制每个数据集的表达进行人工检查。
一些综合指标可以用来检查数据集细胞混合均匀度的指标
- 局部逆辛普森指数 Local Inverse Simpson's Index (LISI),用于评估细胞最近邻居是否分布在不同的数据集中。
- 兰特指数 Adjusted rand index (ARI),用于检查整合聚类后每个簇里面细胞类型纯度,前提基于整合前的数据已经完成注释。
3、关于细胞类型参考注释策略
Method.1.1 基于细胞类型相似性(Spearman cor)
基于细胞相似性的判断方法简单明了,其中相似性测量的方法主要常用 皮尔逊相关 和 斯皮尔曼相关;在差别上,Pearson 相关性关注的是两个向量之间的线性关系,不能准确反映两个相关向量的非线性单调关系,且易受到极端值影响。而 Spearman 相关在数学描述上等价于两个排序向量的 Pearson 相关,这种排序操作使得 Spearman 相关性也适用于更准确描述评估两个随机变量之间的 非线性单调关系。 Spearman 相关性通常同时也能对存在少量异常值的情况下提供更稳健的估计,正是这种稳定性,Spearman 相关性分数在具有高度稀疏性的单细胞表达谱上通常表现的更好。
一般现实采样进行一致性度量的,很少满足正态性检验,故如果使用相关分析进行一致性检验,一般使用Spearman相关系数,而不使用Pearson相关系数。
不过典型的排名操作通常更耗费时间和资源,使得 Spearman 相关性的计算速度明显慢于 Pearson 相关性。从在处理稠密的单细胞矩阵时,通常使用C语言的排序封装包
presto
对数据先进行排序再计算 Pearson 相关性presto::rank_matrix(seu_data@assays$RNA@data)$X_ranked
,快速计算 Pearson 分数也可以使用qlcMatrix
包的函数qlcMatrix::corSparse(dat_ref, dat_use)
。
实现步骤
- Step.1 选择两个数据集Hvg的交集作为用于计算的转录特征,也可以是参考集中每种细胞类型的DEG并集;
- Step.2 计算数据集细胞类型的平均表达水平:
dat_ref <- sapply(sort(unique(seu_use@meta.data[["Celltype"]])), function(ct) rowMeans(seu_use@assays[["RNA"]]@data[,which(seu_use$Celltype == ct)] ))
- Step.3 计算两个参考集和查询集两两细胞簇间的Spearman 相关分数
corr2ref_cl <- cor(dat_ref, dat_use, method="spearman")
- Step.4 绘制相关性热图
局限性:如果两个数据集中的簇或细胞类型没有定义具有可比性的分辨率,相似性分数的比较结果将是不准确的。对于绘制动态图谱来说,由于聚类可能会截断连续态的细胞类型到不同的簇,从而该方法不能有效识别查询集的连续态细胞类型。
Method.1.2 单细胞水平的转录组相似性
基于单细胞转录组水平的相似性注释方法是 基于细胞类型相似性注释 的改进。主要是为了更好地识别查询集内连续态的细胞类型。操作上对于参考集还是按细胞类计算平均表达水平,但对于查询集将不再以簇的单位去计算相似性,而是分别计算每个细胞与参考集pseudo_bulk 的相似分数,根据最高得分为每个查询集的细胞进行注释。
Method.2 其它综合性方法
Seurat-based label transfer 是目前较为常用的标签迁移方法,该方法将参考集上的降维变换(PCA)应用到查询集,从而在参考集的PCA空间里同时展示参考集和查询集的分布和识别互相最近邻锚点对,然后计算参考集细胞与锚点之间的关联来为参考集进行注释。
网友评论