【论文阅读】 Single-cell RNA-seq denoising using a deep count autoencoder.

简介

这是一篇2019年1月23日发表在nature communications 杂志上的文章。文章主要介绍了一种使用DCA对单细胞count数据进行降噪,其中自编码器的loss设计是本篇文章的亮点。作者认为(现有很多文章也进行过论证)single cell数据服从Zero Inflation Negative Binomial(ZINB) 零膨胀的负二项分布。而本篇文章的创新点也正是将ZINB和NB设计成为loss函数。文章地址为:戳我


背景介绍

单细胞RNA测序(scRNA-seq)使研究人员能够以细胞分辨率研究基因表达。然而,由于扩增和丢失引起的噪声可能阻碍分析,因此需要可扩展的去噪方法来获得越来越大但稀疏的scRNA-seq数据。我们提出深度计数自动编码器网络(DCA)来对scRNA-seq数据集进行去噪。

低RNA捕获率导致检测到表达基因失败,导致“假”零计数观察,定义为丢失事件。重要的是要注意“假”和“真”零计数之间的区别。真零计数表示基因在特定细胞类型中缺乏表达,因此真正的细胞类型特异性表达。因此,并非scRNA-seq数据中的所有零都可以被视为缺失值。在统计中,通常估算缺失的数据值。在此过程中,缺失值将随机或通过适应数据结构替换值,以改进统计推断或建模。由于真零假计数之间的非平凡区别,具有定义的缺失值的经典插补方法可能不适合scRNA-seq数据。

我们假设数据源自无噪声数据流形,代表潜在的生物过程和细胞状态。然而,像成像(图像分析)或测序这样的测量技术会产生这种流形的破坏表现。

DCA使用具有或不具有零膨胀的负二项式噪声模型来考虑数据的计数分布,过度离散和稀疏性,并且捕获非线性基因 - 基因依赖性。我们的方法与细胞数量成线性关系,因此可以应用于数百万个细胞的数据集。我们证明DCA去噪使用模拟和真实数据集改进了一系列典型的scRNA-seq数据分析。


方法

1. Noise model

零膨胀的负二项分布(ZINB) 模拟的scRNA-seq数据都是高度稀疏且过度分散的count值。ZINB包括两部分:一部分是在0点处的冲激函数,代表有数据中过多的0值;另一部分是非零点的负二项分布。对于scRNA-seq数据,在0点处的point mass点质量函数可以捕获数据中的丢失事件,而负二项部分模拟数据中的非dropout值。

NB和ZINB函数如下所示:

NB(x;\mu ,\theta )=\frac{\Gamma (x+\theta )}{\Gamma (\theta )}\cdot (\frac{\theta }{\theta +\mu })^{\theta }\cdot (\frac{\mu }{\mu +\theta })^{x}

ZINB(x;\pi ,\mu ,\theta )=\pi \delta _{0}(x)+(1-\pi)NB(x;\mu,\theta)

(然而我在阅读别的资料的时候发现NB第一个分式中,分母缺少一项 \Gamma (x+1), )

\pi代表该点质量函数的权重,\mu代表负二项分布的均值,\theta代表该分布的离散程度(戳这里看负二项分布)。

 

2.模型结构

DCA: deep count autoencoder,首先该模型的基础是自编码器。模型一共五层,节点个数分别为X-64-32-64-X. X是从上万的基因中找到的高表达基因。

与普通的神经网络模型不同,该模型没有训练样本之间的差异(loss用MSE等函数表示),而是通过输入的样本训练每个基因的ZINB分布参数(如图中output层所示,训练每个基因的\mu,\theta,\pi参数)