导语
GUIDE ╲
单细胞RNAseq数据集在不同生物和临床条件下对不同细胞类型进行完整的转录表征。然而,整合分析多种数据集极具挑战性。
背景介绍
今天小编为大家介绍一个整合并标准化多个单细胞数据集的R包Hormony。Hormony包于2020年5月发表在Nature Methods(https://github.com/immunogenomics/harmony)。
R包安装
install.packages("harmony")
#如果需要更新
library(devtools)
install_github("immunogenomics/harmony")
library(harmony)
R包使用
01
单细胞数据
单细胞的公开数据集大多来自于10X website,这里我们以Hormony包自带数据集为例。
data(cell_lines_small)
pca_matrix <- cell_lines_small$scaled_pcs
meta_data <- cell_lines_small$meta_data
我们可以使用以下几种方式作为Hormony包的输入。
02
在主成分分析(PCA)矩阵上运行
Harmony可以采用PCA嵌入矩阵作为输入
harmony_embeddings <- HarmonyMatrix(pca_matrix, meta_data, 'dataset',
do_pca=FALSE)
输出是校正后的PC嵌入矩阵
dim(harmony_embeddings)
harmony_embeddings[seq_len(5), seq_len(5)]
最后,我们可以返回一个包含所有底层数据结构的对象
Harmony_object <- HarmonyMatrix(pca_matrix, meta_data, 'dataset',
do_pca=FALSE,return_object=TRUE)
dim(harmony_object$Y)
dim(harmony_object$R)
dim(harmony_object$Z_corr) ## 修正 PCA 嵌入
head(harmony_object$O) ##通过聚类共现矩阵进行批处理
03
标准化矩阵输入
我们还可以在library大小的标准化表达式计数的稀疏矩阵上运行Harmony。Harmony将扩展这些计数,运行PCA,最后执行数据整合。
my_harmony_embeddings <- HarmonyMatrix(normalized_counts, meta_data, "dataset")
04
使用Seurat包管道分析
使用Seurat包进行Harmony分析需要有两步修改,首先使用RunHarmony()函数运行Harmony,然后在下游分析中,使用Harmony嵌入而不是先前的PCA嵌入。
seuratObj <- RunHarmony(seuratObj, "dataset")
seuratObj <- RunUMAP(seuratObj, reduction = "harmony")
05
使用MUDAN函数执行Harmony
调用MUDAN包函数可以分析多个单细胞RNA-seq样本实现跨患者、跨时间点和跨批次的细胞类型的联合注释。
require(devtools)
devtools::install_github("JEFworks/MUDAN")
06
整合两个或多个协变量
最后,Harmony包可以整合多个协变量。为此,应该指定要积分的向量协变量。
my_harmony_embeddings <- HarmonyMatrix(
my_pca_embeddings, meta_data, c("dataset", "donor", "batch_id"),
do_pca = FALSE
)
#Seurat管道
seuratObject <- RunHarmony(seuratObject, c("dataset", "donor", "batch_id"))
小编总结
Hormony包是一种整合多数据集的算法,以满足无监督单细胞数据联合嵌入的四个关键挑战:扩展到大型数据集,识别广泛群和细粒度亚群,适应复杂实验设计的灵活性,以及跨模式整合数据的能力。如果大家有标准化多个单细胞数据集的需求,那就来试试Hormony包吧!