# 2.3.1 算法｜2020-BatchBench比较scRNA批次矫正方法

> 这篇文章做了一件事，就是帮助我们区分不同的批次矫正方法，然后比较了一下优劣

文章题目：Flexible comparison of batch correction methods for single-cell RNA-seq using BatchBench

文章在：[Flexible comparison of batch correction methods for single-cell RNA-seq using BatchBench](https://www.biorxiv.org/content/10.1101/2020.05.22.111211v2)

上传时间是：2020.05.22

BatchBench地址 ：<https://github.com/cellgeni/batchbench>

> BatchBench is a Nextflow workflow for running the following scRNA-Seq data batch effect correction methods:
>
> * mnnCorrect
> * limma
> * ComBat
> * Seurat 3
> * Scanorama
> * Harmony
> * FastMNN
> * BBKNN

## 前言

### **首先为什么要进行批次矫正？**

单细胞分析经常会整合一些公共数据，不同的实验时间、文库制备、测序方案，都会产生一些技术误差，如果太多，可能会干扰真实的生物信号。因此来自这些非生物因素的干扰就称作批次效应

**作者将8种常用的批次矫正方法分为3类：**

* mnnCorrect、limma、ComBat、Seurat 3、Scanorama：产生一个整合、矫正后的表达矩阵
* Harmony、FastMNN：不是直接操作原始表达矩阵，而是对降维后的结果操作（they operate on a low-dimensional embedding of the original expression matrices），因此如果下游分析如果要用到原始表达矩阵的话，这类方法就会受限
* BBKNN：基于表达矩阵构建k-nearest neighbor graph（KNN），只能进行后续基于细胞的分析（如聚类、分群可视化），不能进行基于基因的分析（如marker基因鉴定、基因网络）

关于这8种方法：

![](https://jieandze1314-1255603621.cos.ap-guangzhou.myqcloud.com/blog/2020-05-29-031053.png)

以及这三类针对什么进行分析以及后续可以做什么，作者也作图说明：

![](https://jieandze1314-1255603621.cos.ap-guangzhou.myqcloud.com/blog/2020-05-29-030946.png)

但真正使用哪种方法，还是要依赖一个评测结果。但传统的评测只能针对已发表的方法，并且评测缺少一些高质量的数据集（比如尽可能多的包含批次效应的因素）

作者使用BatchBench，针对3种研究深入的数据集，对8种方法进行评测，这个方法的流程是：

![](https://jieandze1314-1255603621.cos.ap-guangzhou.myqcloud.com/blog/2020-05-29-031026.png)

### **三个数据集**

**Pancreas dataset**

Baron (GSE84133)、Muraro (GSE85241)、Segerstolpe (E-MTAB-5061) 分别由inDrop, CEL-Seq2 和 Smart-Seq2产生。过滤细胞：细胞中基因表达量少于200；过滤基因：在少于3个细胞中表达。另外只保留有注释的细胞类型（去掉了unclassified这类的细胞）

**Mouse Cell Atlas datasets**

数据来自：<https://figshare.com/s/865e694ad06d5857db4b>

按照组织进行整合，得到了包含37个器官的数据集，其中选取了18个数据集（它们中包含大于1个批次并且有合理的细胞类型分布）。过滤细胞：基因表达量少于250；过滤基因：在少于50个细胞中表达；过滤细胞类型：细胞数量少于整体1%的类型；过滤批次：细胞数量少于总体5%的批次

**Tabula Muris datasets**

数据来自：<https://www.google.com/url?q=https://figshare.com/projects/Tabula_Muris_Transcriptomic_characterization_of_20_organs_and_tissues_from_Mus_musculus_at_single_cell_resolution/27733&sa=D&ust=1589187433512000&usg=AFQjCNFC_0CGNwum-u2nka-OvFAmxoECtA>

来自两个平台的同一组织的不同数据混合，得到11个器官的数据集。过滤细胞：基因表达量少于1000；过滤基因：在少于50个细胞中表达；过滤细胞类型：细胞数量少于整体1%的类型；过滤批次：细胞数量少于总体5%的批次。结果得到4168个基因，60828个细胞（40,058 from 10X and 20,770 from Smart-Seq2）

### 直接上结论

Seurat的整体效果最好，它既正确地整合了批次，又没有丢失不同细胞类型；

Harmony在pancreas和MCA的数据中表现也不错，但在矫正Tabula Muris数据时失败；Scanorama 和 fastMNN表现也算良好；

这里使用的熵评估方法，可能不太适用BBKNN，因此它需要额外的评测方法；

另外对于处理大量的细胞数量和批次，Harmony表现优秀，并且计算资源分配合理。除了Harmony和BBKNN，其他方法当遇到上百个批次的处理时（即使一个批次中的细胞数量不多）也会捉襟见肘，因此未来的批次效应处理方法应该向数据可扩展性（scalability）上发展。

如果想使用处理批次效应后的表达矩阵进行下游分析（如鉴定marker基因），这些方法都会遇到问题。因为marker基因并不是保守存在的，任何基于基因的分析（例如 找差异基因或者鉴定marker基因），都是基于基因表达量，而批次矫正方法需要保证不会干扰表达量的变化，这一点也是未来需要改进的。

## 结果

### **1 测试批次整合与细胞分群**

使用了人类胰腺癌的3个scRNA数据集，原始数据的UMAP结果是：

![](https://jieandze1314-1255603621.cos.ap-guangzhou.myqcloud.com/blog/2020-05-29-032155.png)

> 左边是三个数据集，右边是各种细胞类型 但不得不说，两个图例使用的颜色太相近，容易引起混淆

可以看到，所有的方法都能将不同数据集的细胞混合起来，而依然可以分离不同的细胞类型

![](https://jieandze1314-1255603621.cos.ap-guangzhou.myqcloud.com/blog/2020-05-31-013319.png)

然后为了评估处理（先整合不同批次的细胞，然后分离不同的细胞类型）的效果，提出了计算一个”熵“：normalized Shannon entropy。如果批次方面的熵比较高，说明混合的批次之间更接近，也就是混合效果更好；如果细胞类型方面的熵比较低，说明细胞类型依然可区分

可以看到，不同的方法都保持较低的细胞类型方面的熵，因此它们都能够保证分离不同类型的细胞；但批次方面的熵差别较大。其中Seurat和Harmony整体表现较好，汽其次是Scanorama和fastMNN；而mnnCorrect, Limma 和 ComBat的表现较差

并且大部分方法对MCA（Mouse Cell Atlas）数据集的整合效果更好

![](https://jieandze1314-1255603621.cos.ap-guangzhou.myqcloud.com/blog/2020-05-31-014004.png)

> 图例：pancreas data (red), Mouse Cell Atlas (green), and Tabula Muris (blue)

### **2 当细胞数量或批次数量增加时，批次矫正变得困难**

利用 Tabula Muris数据集（总共60,828 cells），取了它的1%、3%、5%、10%、20%、50%作比较

当细胞数量从608（1%）增至60828时，除了Scanorama、Harmony、Seurat，其他方法的批次熵都下降了50%左右。但是Scanorama在混合批次的同时，也混合了细胞类型（可以看到蓝色的虚线基本不变，说明细胞类型熵不变，也就是没有分离细胞类型）

Harmony是唯一一个在增加细胞数量后，批次熵增加的（图a）。除了Scanorama，其余方法的细胞类型熵都降低，说明细胞数量增多，细胞分群更容易

批次数量增加时，BBKNN, Seurat 和 Harmony表现最稳定（图d）

在时间方面，mnnCorrect和fastMNN随细胞数量增长，运行时间也呈现指数增长，mnnCorrect运行最慢。不过时间消耗在大部分软件中差别不大

在内存方面，所有的方法随细胞数量增长，内存消耗都呈现指数增长，其中Seurat消耗内存最多。综上，Seurat, mnnCorrect, ComBat 和 fastMNN是比较消耗资源的，而Harmony, Scanorama 和 BBKNN资源需求最小

![](https://jieandze1314-1255603621.cos.ap-guangzhou.myqcloud.com/blog/2020-05-31-022157.png)

> a、d：熵的变化；b、e运行时间的变化；c、f：消耗内存的变化

### **3 批次处理对非监督聚类和marker基因鉴定的影响**

使用三种非监督聚类方法：Leiden、Louvain、SC3，然后比较矫正前后的数据聚类结果。这个结果相似性的量化是利用Adjusted Rand Index (ARI)，图a可以看到：MCA数据集利用不同的方法聚类后结果相似，但组织之间的差异比较大；Tabula Muris数据集也是如此，不过与MCA不同的是，利用SC3方法得到的聚类结果会比Louvain或Leiden结果普遍（11个组织中有7个）有更高的ARI。奇怪的是，对于心脏和乳腺组织，最佳的聚类结果发生在：SC3+非批次矫正的数据。对于pancreas数据，SC3倾向于得到更大的ARI，而且不想MCA数据，Seurat和Harmony的聚类结果与之前的熵分析结果也一致。

对整合后的数据进行marker基因鉴定，只有ComBat和Limma的结果可以找到大部分细胞类型的marker基因，Seurat只能对少部分细胞类型进行鉴定（图b），但如果检测单个数据的marker基因与混合矫正后的marker基因之间的一致性，Seurat的一致性更强（图c）。Seurat的一致性表现是牺牲细胞类型数量得到的

![](https://jieandze1314-1255603621.cos.ap-guangzhou.myqcloud.com/blog/2020-05-31-035810.png)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://jieandze1314.osca.top/02/2.2-suan-fa-batchbench-bi-jiao-scrna-pi-ci-jiao-zheng-fang-fa.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
