Nature Methods | 新软件SAVER-X可对单细胞转录组学数据进行有效降噪
摘要
单细胞转录组测序(single-cell RNA-seq, scRNA-seq)数据有高噪音和稀疏的特点。原文作者展示了跨数据集的迁移学习可显著提高数据的质量。通过将深度自动编码器与贝叶斯模型相结合,原文开发的SAVER-X软件可从不同实验室、不同条件和不同物种的数据中提取可迁移的基因关系,以对新的目标数据集进行降噪。
<更多精彩,可关注微信公众号:AIPuFuBio和大型免费综合生物信息学资源和工具平台AIPuFu:www.aipufu.com>
前言
在scRNA-seq的研究中,技术噪音让细胞状态之间的精确识别模糊化,而且低表达基因不能被准确量化。当测序深度较低或感兴趣的细胞类型较少时,现有的降噪方法往往表现不佳;而且这些方法也忽略了公共的数据集,这些公共数据集可能包含有助于降噪的相关信息。现在逐渐建立了小鼠的细胞图谱,很快就会有人体每个器官的详细图谱。可公开利用的scRNA-seq数据集包含与新产生数据相关的细胞类型和基因特征信息。然而,目前还不清楚如何跨平台、跨物种、跨组织地借用信息。此外,这种迁移学习方法不能引入bias或迫使新数据失去其独特的特征。
结果
原文作者开发了一种新的降噪方SAVER-X,该方法通过表达复原利用外部数据进行单细胞分析;它将贝叶斯分层模型与一个可预处理的深度自动编码器相结合。尽管神经网络已经成为了其他单细胞方法的基础,但现有的工具只对周围的数据起作用。此外,本文中广泛的基准测试和数据强调,除了SAVER-X软件的前身SAVER之外,大多数方法对真实基因表达都产生有偏估计,并引入了特殊的基因相关性。SAVER-X是建立在SAVER软件的核心模型基础上,结合自动编码器后端和两阶段训练机制来利用公共数据资源。
SAVER-X将Y的变异分解为:(i)一个可预测的结构化成分(λ),解释基因间的共享变异;(ii)不可预测的细胞水平波动,这些波动在具有基因特异性分散的基因之间是独立的;和(iii)技术噪音。SAVER-X估计未观察到的真实基因表达,即λ加上独立的细胞水平波动。λ是通过自动编码器(图1b)获得的,该编码器的权重首先在来自相同组织或相似类型组织的细胞上进行预处理,从公共存储库中提取(“预处理数据”;图1a)。权重随后被更新以适应目标数据。这种两阶段训练方案允许适应性保留可迁移特征。人类和小鼠共享许多核心的细胞类型和必要的生物学通路。
为了可以跨物种学习,SAVER-X中的自动编码器包含了人和小鼠之间的共同网络。此外,SAVER-X采用基于交叉验证的基因过滤和贝叶斯收缩来保留目标数据集特有的表达模式(图1b)。交叉验证识别出与自动编码器不匹配的基因,自动编码器的预测被它们的目标数据均值所取代。贝叶斯收缩方法通过计算加权预测值的平均值和观察到的数值来得到最终的降噪值。
原文作者首先探索了SAVER-X在免疫系统不同细胞类型上进行迁移学习的好处和局限性。在没有流动分类的情况下,scRNA-seq数据中的组织浸润免疫细胞很少,因此,如果没有外部数据的帮助,降噪很有挑战性。软件作者检测了SAVER-X是否对来自人类细胞图谱(HCA)项目(来自脐带血和骨髓的500,000个免疫细胞)和10X基因组学(200,000个外周血单核细胞)的数据进行了预处理,从而有意义地提高了来自健康和疾病组织的免疫细胞的数据质量。与此同时,软件作者把SAVER-X和现有的降噪方法进行了对比,降噪方法是针对来自九种非重叠免疫细胞类型的一组纯化细胞进行的。
对T细胞亚型的可靠鉴定,对组织免疫环境的定性至关重要,然而,在原始的单细胞转录组测序数据中,T细胞亚型常常被混在一起(图2a)。原文作者通过对每种细胞类型随机选择100个细胞创建了一个测试数据集,发现SAVER-X不仅显著提高了肝癌T细胞亚型之间的分离,而且与其他降噪方法相比,还提高了细胞类型识别的准确性(通过矫正后的兰德指数(ARI)来测量)。包含相似细胞类型的数据集显示了迁移方法的有效性,通过降低目标数据中细胞数量或测序深度,原文作者也观察到了更加明显的效果。在极端情况下,即使是覆盖范围仅为60个唯一分子标识符(UMIs)的细胞(通常被丢弃在当前管道中),也可以通过迁移学习来拯救,以揭示有用的信息。
为了理解迁移学习的局限性,原文作者评估了降噪精度,与预处理数据集和目标数据集之间细胞类型的相似性关系。迁移学习是否能有效地降噪预处理数据中不存在的细胞状态呢?考虑上面分析的纯化T细胞。当对所有的T细胞亚型进行SAVER-X预处理时,标记基因的聚类和表达量化得到了显著改善(图2b)。然而,即使细胞类型(CD4+调节性T (Treg)细胞)完全在预处理中缺失,SAVER-X也改善了这种“新”细胞类型的鉴定和标记基因定量。而且,为了确定预处理数据中细胞类型的富集是否提高了目标数据中的降噪精度,原文作者对富集了Treg细胞的T细胞进行了SAVER-X预处理,发现会产生任何明显的差异。因此,SAVER-X不需要预处理数据和目标数据之间的细胞类型完美匹配,重要的是,可以提高预处理数据中不存在的新细胞类型的量化。
作为辅助手段,原文作者还使用CITE-seq技术检测关键免疫标记的基因蛋白相关性。在CITE-seq中发现蛋白质丰度和它们的同源基因RNA表达之间的相关性非常低。而且还发现,对于PBMC和脐带血单个核细胞(CBMC)的CITE-seq数据,SAVER-X的降噪表达估计(在HCA和PBMC 10X基因组学上进行了预处理)与它们的蛋白质产物有明显更高的相关性。与其他方法相比,当目标数据集包含100和1000个细胞时,SAVER-X都提高了所有标记的相关性(图2c)。然而,对于具有8,000个细胞的较大数据集,预处理并没有显示出明显的效果。
接下来,原文作者探讨了SAVER-X是否能有效地从健康的免疫细胞中去学习降噪。与非预处理模型相比,对来自健康组织的免疫细胞(HCA和PBMC 10X基因组学)的预处理,使能够更好地表征多受试者中肿瘤浸润免疫细胞的类型(图2d)。同时,迁移学习后,肿瘤相关免疫细胞亚群仍可识别。特别地,SAVER-X保留了升高的免疫球蛋白,这是该疾病特异细胞状态下的标志(图2e)。该细胞群在健康组织中不存在,通过LYZ等标记物进一步验证了该免疫类型的存在。配对肿瘤和正常组织之间的细胞亚型特异基因表达差异,也在所有具有配对组织的受试者中,和对于免疫监测至关重要的两种细胞类型中得以保留(图2f)。
最后,原文作者使用了来自小鼠和人类发育腹侧中脑细胞scRNA-seq数据,进行跨物种迁移学习。对人类数据集中10%的读段(reads)进行降采样,将其降低到每个细胞有中值为452 UMIs,并利用原始数据作为衡量降噪精度的参考。将人类细胞随机分成两组,对一组的reads进行下采样(down-sampled),并保留另一组进行预处理。与未预处理的相比,在匹配的小鼠脑细胞上的SAVER-X预处理,导致人类脑细胞分类的有了显著地改善(图3a)。与单独对人类细胞进行预处理相比,对人和小鼠细胞预处理进一步提高了降噪精度。此外,对腹侧中脑以外区域的细胞进行SAVER-X预处理是有益的,而且对三个人类非UMI数据集以及小鼠细胞进行预处理也是有益的。这些实验证明了跨物种迁移学习在一般和实际环境中的优点,尽管在这些环境中,解剖区域和实验方案可能在预处理数据和目标数据之间有所不同。
然后,原文作者仔细检查了一个对小鼠数据进行预处理的模型,判断是否会对人类特异表达基因的估计产生偏差。他们计算了人类和小鼠之间,细胞类型特异平均表达的对数倍数变化,并鉴定了两个物种之间四种细胞类型的差异表达基因。用处理小鼠细胞的SAVER-X对下采样的人类数据进行降噪,结果保留了对数的倍数变化(图3b)。相反,仅仅依靠自动编码器,而没有交叉验证和收缩,则减少了一些基因的倍数变化。与其他方法不同,SAVER-X还保留了细胞间基因的差异(图3c)。
综上所述,结果表明SAVER-X的框架可以利用现有数据,来提高新scRNA-seq数据集的质量。SAVER-X的核心是在一系列研究设计中训练一个深层神经网络,并将该模型应用于新数据,以加强共享的生物模式。迁移学习将scRNA-seq数据分析的方法,从特定研究的统计建模过程转变为跨研究数据集成和信息共享的自动化过程。
<更多精彩,可关注微信公众号:AIPuFuBio和大型免费综合生物信息学资源和工具平台AIPuFu:www.aipufu.com>
Nature Methods | 新软件SAVER-X可对单细胞转录组学数据进行有效降噪的更多相关文章
- ubuntu要安装新软件,已有deb安装包
如果ubuntu要安装新软件,已有deb安装包(例如:iptux.deb),但是无法登录到桌面环境.那该怎么安装?答案是:使用dpkg命令.dpkg命令常用格式如下:sudo dpkg -I iptu ...
- Docker这个新软件究竟是用来干嘛的???
http://dockone.io/article/378 尝试新软件 对开发者而言,每天会催生出的各式各样的新技术都需要尝试,然而开发者却不太可能为他们一一搭建好环境并进行测试.时间非常宝贵,正是得 ...
- 大数据软件安装之Hadoop(Apache)(数据存储及计算)
大数据软件安装之Hadoop(Apache)(数据存储及计算) 一.生产环境准备 1.修改主机名 vim /etc/sysconfig/network 2.修改静态ip vim /etc/udev/r ...
- ST推出新软件STM32Cube ,让STM32微控制器应用设计变得更容易、更快、更好用
功能强大的STM32Cube 新软件平台由设计工具.中间件和硬件抽象层组成,让客户能够集中精力创新 意法半导体(STMicroelectronics,简称ST)针对STM32微控制器推出一套免费的功能 ...
- 【转载】 DeepMind发表Nature子刊新论文:连接多巴胺与元强化学习的新方法
原文地址: baijiahao.baidu.com/s?id=1600509777750939986&wfr=spider&for=pc 机器之心 18-05-15 14:26 - ...
- .Net 转战 Android 4.4 日常笔记(5)--新软件Android Studio 0.5.8安装与配置及问题解决
说真心话,Eclipse跟我们.net的VS比起来就是屌丝比高富帅,一切都是那么的难用,速度慢得我无法忍受 于是想试试Google钦点的Android Studio IDE工具,这跟ADT一样也是一套 ...
- 新软件马上就要完成了,先发篇文章YY下
最近一直都在搞网站抓取方面的开发,闲着无聊逛逛论坛,发现有些帖子还是写的相当不错的,只是一篇一篇的点进去比较麻烦,于是就写了个小软件只是为了方便查看博客园和CSDN上的优秀文章.其实这个还可以拓展的, ...
- cygwin下使用apt-cyg安装新软件
1.获取 (记得先安装好git) git clone https://github.com/transcode-open/apt-cyg.git 2.安装apt-cyg cd apt-cyg chm ...
- Linux Mint---更新软件源
安装完系统之后第一件事情就是更新软件源,为接下来的各种工作作准备,这个也很简单,直接打开software source设置一下, 然后打开software manager更新一下就好了.
随机推荐
- HDU-3400Line belt-三分再三分-求距离中要加esp
传送门:Line belt 参考:http://blog.csdn.net/hcbbt/article/details/39375763 题意:在一个平面途中,有一条路ab,还有一条路cd:假设在ab ...
- poj 1511 Invitation Cards(dijstra优化)
题目链接:http://poj.org/problem?id=1511 题意:给出n个点和n条有向边,求所有点到源点1的来回最短路之和(保证每个点都可以往返源点1) 题目比较简单就是边和点的个数有点多 ...
- 接口请求失败处理,重新请求并限制请求次数.自己封装搞定retry函数
最近开发一款小程序的时候想到一个问题,如果接口突然挂掉怎么办呢,于是乎想到一个解决办法.接口请求重试功能.并限制请求次数 用最新的async函数语法实现.代码简洁明了. 测试代码如下: functio ...
- JSON和Map,List,String互相转换
1)Map 和 JSON 互相转换 Map 转成 JSON Map<String, List> map = new HashMap<>(); map.put("xAx ...
- zabbix监控nginx脚本
~]# cd /etc/zabbix/scripts/ scripts]# ls nginx_status.sh scripts]# cat nginx_status.sh ############# ...
- mysql之explain详解
mysql之explain详解 mysql之explain各个字段的详细意思: 字段 含义 select_type 分为简单(simple)和复杂 type all : 即全表扫描 index : 按 ...
- java8-Stream原理
前言 java8新特性目前使用非常广泛,其中Stream更是最常用的特性,这篇文章将介绍Stream的原理,如果你现在还不怎么会用的话可以看一下菜鸟教 https://www.runoob.com/j ...
- FreeSql (三十一)分区分表
分区 分区就是把一个数据表的文件和索引分散存储在不同的物理文件中.把一张表的数据分成N多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上,数据库不同实现方式有所不同. 与分表不同,一张大表进行 ...
- Python中使用pip安装库时指定镜像源为豆瓣镜像源
场景 在使用pip进行安装库时,使用默认的库会很慢,甚至有时会出现远程主机中断了一个现有连接. 怎样在使用pip install 时指定镜像源为豆瓣镜像源. 实现 pip install moviep ...
- preg_relace_callback不起作用匿名函数不启作用替换字符串中的所有图片
遇到这样的一个需求,即替换新闻正文中的所有图片,将其图片地址补充为完整的地址. 刚开始的时候,采用匿名函数的方法可以使用,但有一个问题,好像是php的匿名函数5.4以前的版本支持的并不好. 然后在内部 ...