前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Genome Biology | DeepImpute:一种基于深度神经网络来插补单细胞RNA测序数据的方法

Genome Biology | DeepImpute:一种基于深度神经网络来插补单细胞RNA测序数据的方法

作者头像
智能生信
修改于 2023-09-24 10:27:45
修改于 2023-09-24 10:27:45
2.7K0
举报
文章被收录于专栏:智能生信智能生信

作者 | 戴迟迟 编辑 | 戴迟迟 校对 | 李仲深

今天给大家介绍密歇根大学的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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能生信 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
04 网络面经:HTTP 2.0的这些新特性,是时候了解一下了
面试中关于HTTP 2.0的面试题并不多,但基于HTTP 2.0的应用已经很多了,比如谷歌的gRPC框架就是基于HTTP 2.0来提升效率的。同时,HTTP 1.0中的存在的很多缺陷也都在HTTP 2.0中得到了解决。
程序新视界
2021/12/07
3520
04 网络面经:HTTP 2.0的这些新特性,是时候了解一下了
HTTP/3 竟然基于 UDP,HTTP 协议这些年都经历了啥?
花下猫语:若说最为人知的网络协议,大概非 HTTP 协议莫属。但是,关于这个协议的更多细节,相信很多人都答不上来。现在它已经发展到第三代了,而且出现了重大的转变。今天分享的这篇文章,主要从 HTTP 发展进化的角度,介绍了这个协议的底层原理以及设计思想,希望对你有所帮助。
Python猫
2019/04/23
1.6K0
HTTP/3 竟然基于 UDP,HTTP 协议这些年都经历了啥?
图解 HTTP 的前世今生!
Http超文本传输协议同空气一般,感触不到它的存在但是又无处不在,笔者从维基百科摘录了一些Http协议的发展历程的简单信息,一起来看下吧:
范蠡
2020/11/13
8560
图解 HTTP 的前世今生!
什么是http2.0?
上图:设置Connection:Keep-Alive,保持连接在一段时间内不断开。
小灰
2022/07/05
2.8K0
什么是http2.0?
二、《图解HTTP》- HTTP协议历史发展(重点)
这一章节基本上大部分为个人扩展,因为书中的内容讲的实在是比较浅。本文内容非常长,另外哪怕这么长也只是讲到了HTTP协议的一部分而已,HTTP协议本身十分复杂。
阿东
2022/08/12
6700
二、《图解HTTP》- HTTP协议历史发展(重点)
详解:HTTP协议的演进与特性
来源:Linux云计算网络 HTTP的前世传奇 HTTP协议确定之前,伯纳斯-李已经提出了超文本构想,并最终实现了最早期的超文本系统。 1980年——超文本构想的诞生 1980年6月至12月间,伯纳斯-李在日内瓦的CERN(欧洲核子研究中心)担任独立承包人。在那段时间里,他提出了一个构想:创建一个以超文本系统为基础的项目,目的是为了方便研究人员分享及更新讯息。 同时他也开发出了最早的原型系统,并命名为ENQUIRE。这个系统允许一个存储信息片断,并以任何方式链接相关的部分。要找到信息,通过从一张纸到另一张
SDNLAB
2022/08/26
4750
详解:HTTP协议的演进与特性
【HTTP】843- 揭秘 HTTP2
前段时间组内小伙伴遇到了一个问题:一个页面上有 10 个视频,因为浏览器对 tcp 连接数的限制,导致同时只能加载 6 个视频。考虑到http2协议的多路复用可以解决这个问题,特地整理此篇关于http2的内容和大家分享。
pingan8787
2021/01/28
1.6K0
【HTTP】843- 揭秘 HTTP2
HTTP 0.9 HTTP 1.0 HTTP 1.1 HTTP 2.0区别
HTTP协议 :Hyper Text Transfer Protocol(超文本传输协议),是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 HTTP/0.9 HTTP/0.9是第一个版本的HTTP协议,已过时。它的组成极其简单,只允许客户端发送GET这一种请求,且不支持请求头。由于没有协议头,
武培轩
2018/04/18
1.7K0
HTTP/1.1和HTTP/2.0有什么区别
HTTP/1.1 和 HTTP/2.0 是 HTTP 协议的两个版本,它们之间有以下几点区别:
程序员朱永胜
2023/11/15
1.3K0
HTTP1.0、1.1、2.0、3.0的主要区别?HTTP状态码及含义?
HTTP头Connection: keep-alive是什么意思?解决了什么问题?
了凡银河系
2022/08/22
1.1K0
HTTP1.0、1.1、2.0、3.0的主要区别?HTTP状态码及含义?
HTTP/2学习笔记
上图中流A和B没有依赖关系,权重分别为12和4,则A和B获取资源的比例为3/4、1/4;C依赖于D,则D需要等待C后分配资源。
用户1472179
2019/04/01
1.3K0
真正“搞”懂HTTP协议13之HTTP2
  在前面的章节,我们把HTTP/1.1的大部分核心内容都过了一遍,并且给出了基于Node环境的一部分示例代码,想必大家对HTTP/1.1已经不再陌生,那么HTTP/1.1的学习基本上就结束了。这两篇文章,我会和大家一起,学习一下HTTP/2和HTTP/3。
zaking
2023/02/13
8160
真正“搞”懂HTTP协议13之HTTP2
HTTP 和 HTTPS 之间除了安全性区别外,还有哪些区别
HTTP 和 HTTPS 是两种常见的网络协议,它们都是用于在浏览器和服务器之间传输数据的。但是,它们之间也有一些重要的区别,这些区别涉及到数据的安全性、传输性能、使用成本和搜索排名等方面。本文将从以下几个方面来介绍 HTTP 和 HTTPS 的区别,本文内容大纲如下:
wayn
2023/11/28
5240
HTTP 和 HTTPS 之间除了安全性区别外,还有哪些区别
HTTP 2.0 为什么这么设计
HTTP 1.0 是 1996 年发布的,奠定了 web 的基础。时隔三年,1999 年又发布了 HTTP 1.1,对功能上做了扩充。之后又时隔十六年,2015 年发布了 HTTP 2.0。
神说要有光zxg
2022/06/06
3780
HTTP 2.0 为什么这么设计
透视http协议
HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范
虎妞先生
2023/10/16
2330
透视http协议
http协议
当客户端和服务器通过三次握手建立了TCP连接以后,当数据传送完毕,肯定是要断开TCP连接的啊。那对于TCP的断开连接,这里就有了神秘的“四次分手”。
愤怒的小鸟
2021/01/06
7260
谈谈HTTP1.0,HTTP1.1和HTTP2.0区别
HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。
张炳
2019/08/02
3.8K0
谈谈HTTP1.0,HTTP1.1和HTTP2.0区别
HTTP - HTTP/2 知识点
在《图解HTTP》的读书笔记[《图解HTTP》- HTTP协议历史发展(重点)]当中介绍了一部分关于HTTP/2的内容,但是内容比较简短没有过多深入,本文对于HTTP/2 协议做一个更深入的介绍。
阿东
2022/10/20
1.7K2
HTTP - HTTP/2 知识点
HTTP探索之路 - HTTP 1 / HTTP 2 / QUIC
从1989年万维网(www)诞生,HTTP(HyperText Transfer Protocol)经历了众多版本迭代,WebSocket也在期间萌芽。1991年HTTP/0.9被发明;1996年出现了HTTP/1.0;2015年HTTP/2正式发布;2020年HTTP/3或能正式使用。以下将会简单介绍。 一、HTTP 1.1 与 HTTP 2 1.1 HTTP 1.1 的缺陷 高延迟 — 队头阻塞(Head-Of-Line Blocking) 无状态特性 — 阻碍交互 明文传输 — 不安全
用户1097444
2022/06/29
8330
HTTP探索之路 - HTTP 1 / HTTP 2 / QUIC
Http/2.0
http2.0是一种安全高效的下一代http传输协议。安全是因为http2.0建立在https协议的基础上,高效是因为它是通过二进制分帧来进行数据传输。正因为这些特性,http2.0协议也在被越来越多的网站支持。据统计,截止至2018年8月,已经有27.9%的网站支持http2.0。
大公爵
2022/11/02
1.1K0
Http/2.0
相关推荐
04 网络面经:HTTP 2.0的这些新特性,是时候了解一下了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档