作者 | 戴迟迟 编辑 | 戴迟迟 校对 | 李仲深
今天给大家介绍密歇根大学的Lana X. Garmire教授等人发表在Genome Biology上的一篇文章 “DeepImpute: an accurate, fast, and scalable deep neural network method to impute single-cell RNA-seq data” 。单细胞RNA测序 (scRNA-seq) 为同时研究数万个单细胞的基因表达提供了新的机遇。本文提出了DeepImpute,一个基于深度神经网络的插补算法,它使用dropout层和损失函数来学习数据中的分布模式从而精确地插补缺失数据。总的来说,通过均方误差或皮尔逊相关系数衡量,DeepImpute比其他六种公开可用的插补方法精度更高。实验表明,DeepImpute是一个准确、快速、可扩展的插补工具,适合处理数量不断增长的scRNA-seq数据。
一、研究背景
RNA测序技术的不断发展为理解生物系统提供了新的方向。尤其单细胞RNA测序 (scRNA-seq) ,是这一领域的重大突破。因此,越来越多的研究利用scRNA-seq研究新的细胞类型、特定细胞类型的新标记和细胞异质性。可由于每个细胞的mRNA拷贝起始量较低,scRNA-seq数据非常嘈杂且不完整。在scRNA-seq实验中,缺失值 (被误判为0的值) 超过70%的数据集经常出现。这些表面上的零值可能是真正的零或假的零,后一种现象被称为“dropout”事件。“dropout”事件是由于原始RNA转录本扩增失败造成的。“dropout”事件会引入了基因表达的偏差从而显著影响下游的生物信息学分析。为了纠正这一问题,Granatum等分析平台加入了一个插补步骤,以改进下游分析。
本文提出了一种新的算法,DeepImpute (Deep neural network Imputation),作为下一代的插补scRNA-seq数据的方法。近年来,深度神经网络算法在生物医学领域中获得了很大的应用,范围从大型公共数据集提取稳定的基因表达签名到使用EHR数据填补缺失值。在本报告中,通过将基因分成子集并构建子网络来构建深度插补模型,以提高其效率。使用精确度指标,证明了DeepImpute比最近发表的其他六种插补方法 (MAGIC, DrImpute, ScImpute, SAVER, VIPER,和DCA) 表现更好。DeepImpute还改进了下游分析结果,改进了使用真实和模拟数据集进行聚类的性能以及使用模拟数据集进行差异表达的性能。DeepImpute在计算运行时间和内存使用方面也优于其他方法。此外,DeepImpute允许使用数据子集训练模型,以节省计算时间,并且在预测精度上几乎没有损失。
二、模型与方法
DeepImpute是一种深度神经网络模型,通过构建多个子神经网络,以分治的方式对基因进行插补。这样做的好处是,通过学习较小的问题和微调子神经网络来降低复杂性。对于每个数据集,选择一组插补基因,这些基因相对于平均比率有一定的方差 (默认为0.5)。每个子神经网络旨在了解输入基因 (输入层) 和目标基因 (被选择插补的基因,即输出层) 之间的关系。用户可以设置目标基因的大小,本文将512作为默认值。如图1所示,每个子神经网络由四层组成。由与目标基因高度相关的基因组成的输入层,紧随其后的是一个由256个神经元组成的隐藏层,一个神经元“dropout”率为20% (注:不是单细胞的“dropout”) 的dropout层 (用来避免过度拟合) 和由上述目标基因组成的输出层。使用修正的线性单元 (ReLU) 作为默认的激活函数,并通过分割数据来训练 (95%的细胞) 和测试 (5%的细胞) ,并行地训练每个子模型。如果连续5个epoch损失都没有改善,或者epoch的数量超过500 (以其中较少者为准) 将停止训练。由于每个子网络的简单性,观察到了由于超参数调优而产生的非常低的可变性。因此,本文将默认参数中的批大小设置为64,学习率设置为0.0001。
图1. DeepImpute的子神经网络结构
三、实验结果
3.1 在scRNA-seq数据插补方法中,DeepImpute是最准确的
在四个公开的scRNA-seq数据集上测试了插补的准确性:Jurkat和293T (10X基因组) ;小鼠神经元细胞数据集 (10X基因组) ;GSE67602小鼠滤泡间表皮数据集。将DeepImpute与其他六种最先进的代表性插补算法进行了比较。由于实际的dropout值是未知的,通过随机遮盖 (用零替换)一个scRNA-seq数据集的表达矩阵的一部分来评估不同的方法,然后度量被遮盖数据的插补值和实际值之间的差异。为了模拟一个更真实的分布,从数据中估计了遮盖概率函数。使用两个指标:皮尔逊相关系数 (PCC) 和均方误差 (MSE) 来测量精度。
图2显示了遮盖数据上插补度量的所有结果。DeepImpute成功从所有范围恢复了“dropout”事件,并向遮盖数据引入了最小的偏差,而且在所有的数据集获得了最高的皮尔森相关系数和最低的MSE (图2A和C) 。DCA,另一个基于神经网络的方法,在DeepImpute之后拥有第二佳性能。相反,其他方法存在各种问题。本实验进一步计算出了基因和细胞水平上的MSE分布 (图2B) 。在所有数据集中,DeepImpute是最优的,其在基因和细胞水平上的MSE始终是最低的,显著低于其他所有插补方法 (p<0.05) 。除此之外,本文还进行了内部比较,将DeepImpute与没有使用隐藏层的模型以及使用隐藏层但是使用线性激活函数替换ReLU激活函数的模型比较。总之,在比较的插补方法中,DeepImpute在研究的数据集中具有最高的准确率。
图2. DeepImpute和其他插补方法的准确度比较
3.2 DeepImpute提高了FISH实验数据中的基因分布相似性
另一种评估插补效率的方法是对scRNA-seq数据的实验验证。单细胞RNA FISH是一种直接检测单个细胞中少量RNA转录本的方法。Torre等人使用RNA FISH和Drop-Seq测量了一个黑色素瘤细胞系的基因表达,并使用Gini系数比较了它们的分布。同样地,本实验在相同的基因中比较了RNA FISH的Gini系数与插补后的Gini系数。DrImpute不能处理大的细胞群,因此在比较中被忽略了。对比RNA FISH与原始scRNA-seq数据之间的PCC (−0.260) ,DeepImpute、SAVER和DCA三种方法提高最大,分别为0.984、0.782和0.732。VIPER的Gini系数几乎没有改变,而scImpute的相关系数 (−0.451) 甚至低于原始的scRNA-seq数据集 (图3A)。对于MSE,除了VIPER给出了与原始数据相同的MSE外,其他所有的插补方法都得到了比原始scRNA-seq结果更低的MSE (0.281)。其中DeepImpute、SAVER和DCA,给出了最低的MSE。此外,本实验比较了不同插补方法前后各基因的分布,以及在FISH实验中的分布 (图3B)。总体而言,在DeepImpute (蓝色曲线) 中,5个基因中的3个 (LMNA、MITF和TXNRD1) 的分布与FISH实验 (灰色曲线) 最为相似,K-S检验统计量分别为0.08、0.15和0.18。对于KDM5A,DeepImpute获得了第二好的K-S统计量,与DCA几乎相同。对于基因VGF,即使在RNA FISH数据中也有超过40%的零值 (在原始Drop-Seq数据中为56%) 。总的来说,FISH验证结果清楚地表明DeepImpute通过插补提高了数据质量。
图3. 利用RNA FISH数据比较插补方法
3.3 DeepImpute改进了下游功能分析
另一种评估插补可能带来的好处的方法是进行下游功能分析。为此,本实验使用了额外的实验和模拟数据集。使用来自GSE102827的实验数据集 (Hrvatin) ,此数据集由48,267个注释的小鼠初级视觉皮层细胞组成,包含有33个细胞类型。本实验使用UMAP与Leiden聚类算法进行细胞聚类 (图4A) 。使用各种指标来衡量聚类的准确性,包括调整Rand指数 (ARI) 、调整相互评分 (AMS) 、福克斯-马洛指数 (FMI) 和剪影指数 (SI) ,以评估UMAP聚类形状 (图4B) 。由于Hrvatin数据集的大小问题,DrImpute和VIPER (速度问题) 以及scImpute (速度和内存问题) 不能运行。与没有插补的情况相比,DeepImpute成功地分离了许多簇(图4A),其聚类指标得到了最大的改善 (图4B) 。
图4. 插补对实验数据 (GSE102827) 下游功能分析的影响比较
鉴于实验数据 (GSE102827)中类标签缺乏绝对真实性,接下来本实验使用Splatter生成模拟数据。该模拟数据集 (sim) 由4000个基因和2000个细胞组成,分为5种细胞类型(比例为5%、5%、10%、20%、20%、40%)。DeepImpute在模拟数据中成功分离细胞类型 (图5A) 。这些观察结果得到了评估指标的证实,其中DeepImpute在ARI、AMS和FMI中取得了最佳的分数,并且与原始数据相比显著提高了SI (图5B) 。接下来,本实验比较了所有7种插补方法恢复模拟数据中差异表达基因的能力 (图5B) 。对于每种方法,提取每种细胞类型中前500个差异表达基因,并与真正的差异表达基因进行比较。总体而言,与其他插补方法相比,DeepImpute检测差异表达基因的准确率最高 (AUC = 0.893) 。实验和模拟数据的结果一致表明,DeepImpute改善了下游功能分析。
图5. 插补对Splatter模拟数据的下游功能分析的影响比较
3.4 DeepImpute是一个快速且有效使用内存的包
随着scRNA-seq越来越受欢迎,测序细胞的数量呈指数级增长,插补方法必须在计算上高效才能被广泛采用。考虑到这个目标,本实验选择Mouse 1M数据集来评估不同插补方法之间的计算速度和内存使用情况。使用Mouse 1M dataset是因为它具有最高的细胞数目来评估每个方法的适应性。
向下采样Mouse 1M数据,大小从100到50k细胞 (100,500,1k,5k,10k,30k,50k) 。将插补运行了三次,并在一台拥有30GB内存的8核机器上测量了运行时间和内存负载。DeepImpute, DCA和MAGIC在速度上优于其他四种方法 (图6A) ,当细胞计数变大时 (> 30k) , DeepImpute的优势最大。其他四种插补方法 (scImpute、DrImpute、VIPER和SAVER) 速度要慢得多,消耗的内存也要多得多 (图6B) 。总而言之,从大数据集的计算速度和存储效率来看,DeepImpute和DCA方法优于其他五种方法。
3.5 DeepImpute是一种可扩展的机器学习方法
与其他的插补方法不同,DeepImpute首先拟合一个预测模型,然后单独进行插补。模型拟合步骤使用了大部分的计算资源和时间,而预测步骤非常快。本实验使用neuron 9k数据集,在训练阶段评估不同子采样分数 (5%、10%、20%、40%、60%、80%、90%、100%) 对插补预测阶段的影响。随机抽取样本的一个子集进行训练步骤,然后计算整个数据集的精度 (MSE,PCC) ,在每个条件下重复10次。在接近40%数量的细胞中,模型性能的改善开始放缓 (图6C) 。这些实验显示了DeepImpute相对于其他插补方法的另一个优势,即只使用一小部分的数据集将减少运行时间,而几乎没有降低预测结果的准确性。
图6. 两种插补方法速度和内存使用的比较,及下采样训练数据对DeepImpute精度的影响
四、总结
本文提出了一种基于深度神经网络的方法DeepImpute。实验表明,DeepImpute不仅具有最高的整体精度,而且提供更快的计算时间,对计算机内存的需求更少。不论在模拟数据集还是实验数据集中,即使在其他插补方法不可取的情况下,DeepImpute在增加聚类结果和检测差异表达基因方面都有更好的性能。此外,即使在输入数据的一小部分上进行训练,DeepImpute仍然可以产生不错的预测结果,还可以进一步减少运行时间。总之,这些结果有力地证明了DeepImpute是一种精确而高效的方法。
代码
https://github.com/lanagarmire/DeepImpute
参考文献
Arisdakessian, C., et al., DeepImpute: an accurate, fast, and scalable deep neural network method to impute single-cell RNA-seq data. Genome Biology, 2019. 20.
https://genomebiology.biomedcentral.com/articles/10.1186/s13059-019-1837-6?fbclid=IwAR2wkwBbp_rQBv0muKEYlt-MDZGlJF6sej1sbKJOP58jvXX1XdD98aGuauo