Single-cell RNA-seq denoising using a deep count autoencoder

0. 简介

这篇文章是2019年发表在Nature Communications上的使用自编码器对单细胞RNA-Seq数据进行降噪的工作,通讯作者是Fabian J. Theis, 来自于德国。这篇文章对自编码器做了改进,常规的自编码器只有一层输出,该文章提出的DCA方法有三层输出。

文章链接
文章代码1
文章代码2

1. 摘要

  • scRNA-seq (Single-cell RNA sequencing)使得研究人员可以在单个细胞分辨率水平上研究基因表达;然而由amplification以及dropout带来的噪音可能阻碍下游的分析,因此需要对scRNA-seq(维度高、稀疏)开发专门的方法;
  • 作者在这里提出DCA(deep count autoencoder network)对scRNA-seq进行降噪;DCA使用binomial noise model with or without zero-inflation考虑到count distribution, overdispersion and sparsity of the data
  • 使用模拟数据和真实数据作者证明了DCA降噪可以提高各种各样传统的scRNA-seq分析,DCA在数据填充和速度上也比目前已有的方法。

2. 前言

  • 单细胞转录组的进步使得研究人员可以发现新的细胞类型,研究复杂细胞分化、发育过程追溯以及提高对人类疾病的理解;
  • 单细胞测序技术虽然有了很大的提升,但是由各种各样的技术因素(例如:amplification bias, cell cycle effects, library size differences and especially low RNA capture rate)导致在scRNA-seq实验中存在着大量的噪音;这些技术由于测序深度较低所以非常稀疏;总之,技术因此带来了大量的噪音,这可能会破坏本身的生物学信号因此阻碍下游分析;
  • RNA捕获率低会导致检测不到某个基因的表达,也就是所谓的"false" zero count, 叫做"dropout event"。但是也有一些zero count是由于该基因在这个细胞中没有表达,因此在scRNA-seq中并不是所有的zero count都是缺失值。在统计学上,缺失值通常可以补充,要么通过随机替换要么是根据数据结构推断, 由于true zero count与false zero count之间的不平凡的差别,传统的方法对于scRNA-seq的imputation并不合适;
  • 降噪的概念在图像领域被普遍用来从噪音中描绘信号;降噪通过从原始图像中抑制或者去除噪音来提升图片的质量;作者这里假设,从无噪数据得来的结果可以反应潜在的生物学过程以及细胞状态。然而,诸如成像或测序的测量技术会产生corrupted representation (Figure 1A);

  • 目前已有一些针对于scRNA-seq的填充或者降噪方法。这些方法依赖于单细胞基因表达数据之间的相关性结构利用细胞之间或基因之间的相关性来推断矫正好的基因表达。例如:scImpute使用混合模型定义可能的dropout values,然后将likely dropout values替换;而MAGICSAVER对每个基因和细胞输入输出降噪后的结果。但是这些方法都忽略了数据之间的count的非线性关系,而且,随着scRNA数据量的增大,这些方法不能分析上百万个细胞,这些方法分析不了如此大尺度的数据;
  • 人工神经网络中的自编码器可以以一种非监督的模式学习到数据有效的压缩。自编码器的压缩部分强迫自编码器只能学习到重要的潜在特征,这种重构可以忽略随机噪音,目前自编码器在分子生物学领域已有很多应用;
  • 作者为了能将自编码器应用于scRNA数据的填充而开发了deep count autoencoder, 方法的核心是将重构的错误定义为噪音模型的概率分布而不是输入数据本身 (FIgure 1B),在训练的过程中, DCA通过最小化重构错误来学习基因特异性的分布参数;DCA有三个隐层可以捕获scRNA-seq数据中的复杂性以及非线性;

3. 结果

3.1 Count noise model is neccessary to denoise scRNA-seq data

  • 作者首先将DCA应用于模拟scRNA-seq(使用Splatter)数据探究DCA方法的属性;首先可以获得有dropout和没有dropout的数据,作者模拟了两组数据:
    • 两个细胞类型(2000个细胞)中的200个基因, 63%被设置为0;
    • 六个细胞类型(2000个细胞)中的200个基因,35%被设置为0;
  • 为了指导用户选择合适的噪声模型,作者提出检查从同一cluster或细胞类型的细胞计算的基因平均值和经验dropout之间的关系,通过构建NB(negative binomial distribution without zero-inflation)
    与ZINB(negative binomial distribution with zero-inflation)思然比检验来决定zero-inflation是否存在从而决定DCA选择的噪音模型的参数;
  • Figure 2A-2B: 从模拟数据结果来看,dropout带来了大量的噪音阻碍了西北类型的发现,但是在用DCA降噪之后又可以恢复之前的细胞类型;为了检验count-based损失函数是不是必要的,作者比较了DCA与传统的自编码器(MSE作为损失函数,log转换),从最右边的图可以看出基于自编码器的MSE不能恢复细胞类型,表明specialized count loss function对于scRNA-seq数据的必要性

  • Figure 2C-2D: 上述结论在更复杂的六个细胞类型的数据上也得到了验证;
  • 模拟数据的优点就是可以进行各种各样的评估,包括潜在的overimpudtation的评估;

3.2 DCA可以捕获真实数据中细胞群体结构 (DCA captures cell population structure in real data)

  • 作者在这里使用了68579个外周血单核细胞和1000个highly variable genes (92%都是0)(Figure 3A)。

  • Figure 3B: 作者将自编码器的瓶颈层限制成2个神经元然后可视化其输出;
  • Figure 3C-3F: 已知的细胞类型marker基因表现出了cluster-specific表达,表明DCA在真是数据集中捕获到了细胞群体的结构;

4. 方法

4.1 自编码器

  • 自编码器使用三层来预测输入数据,分别是:输入层、隐层(瓶颈层)以及输出层。输入输出都是相同大小维度,隐层是输入数据的低维展示,也就是降维,传统的自编码器通过最小化MSE损失函数来优化权重,自编码器中的压缩模型强制其只能学习到重要的潜在特征;PCA可以看作是以MSE为损失函数的线性自编码器;

4.2 噪音模型

  • ZINB分布模拟高度稀疏和过度分散的count数据,其考虑了两个成分:
    • 点质量为零,表示数据中的过零值 (a point mass at zero which represents excess zero values in the data);
    • 表示计数分布的负二项式分量 (a negative binomial component representing the count distribution)
  • 成分1可捕获dropout事件;
  • 成分2代表从潜在的分子中抽样reads的过程;
  • ZINB分布用下式表示:
    NB(x;\mu,\theta)=\frac{\Gamma(x+\theta)}{\Gamma(\theta)}(\frac{\theta}{\theta+\mu})^\theta(\frac{\mu}{\theta+\mu})^x
    ZINB(x;\pi,\mu,\theta)=\pi\sigma_0(x)+(1-\pi)NB(x;\mu,\theta)
  • \mu\theta分别代表负二项分布的均值和离散度;

4.3 模型结构与训练

  • 接下来作者用自编码器框架以每个基因输入数据为条件估计ZINB分布的三个参数,因此与传统的自编码器不同的是,这个模型除了估计均值\mu外,还要估计dropout(\pi)和dispersion参数\theta;
  • 与传统的自编码器不同的是DCA有三个输出层,分别代表每个基因的三个参数,三个参数组成了gene-specific损失函数来比较这个基因原始输入与输出的差异;
  • 对而分类模型来说,输出层可以解释为逻辑回归,因此DCA输出层可以看作是ZINB回归,predictor就是细胞的重新展示:
    E=ReLU(\bar{X}W_E)
    B=ReLU(EW_B)
    D=ReLU(BW_D)
    \bar{M}=exp(DW_{\mu})
    \prod=sigmoid(DW_{\pi})
    \Theta=exp(DW_\theta)
  • E, B, D分别代表encoder、bottleneck和decoder层,\bar{x}代表log转换的表达值的z-score。每个细胞的大小因子(size factor), 用每个细胞总的count数目除以每个细胞counts的median,\bar{x}通过一下公式来计算:
    \bar{X}=zscore(log(diag(s_i)^{-1}X+1))
  • X代表基因表达count矩阵,"zscore"代表z-score标准化;
  • 输出激活以矩阵的形式展现
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容