RNA-seq 差异分析的细节详解 (6)

简介: RNA-seq 差异分析的细节详解 (6)

引言

本系列 将开展全新的转录组分析专栏,主要针对使用 DESeq2 时可能出现的问题和方法进行展开描述。想要学习更多内容可以添加文末的学习交流群或客服QQ。

计数数据转换

在进行差异表达分析时,我们会基于原始计数数据,运用上一节提到的离散分布方法。但对于像可视化、聚类这类后续分析,使用经过转换的计数数据会更有优势。

对数转换是最常见的转换方式。因为基因在某些条件下计数值可能为零,而在其他条件下又不为零,所以有人建议引入伪计数,也就是采用这种转换形式:

这里的 n 是计数值,n₀ 是一个正数。

本节中,我们探讨了两种更有理论依据且能合理选择类似 n₀ 参数的替代方法。一种基于方差稳定化转换(VST)的概念,另一种是正则化对数(rlog),它考虑了样本差异的先验信息。这两种转换都能得到在 log₂ 尺度上的数据,且这些数据已经根据文库大小等归一化因素进行了调整。

VST 和 rlog 这两种转换的核心目的是消除方差与均值之间的关联,尤其是当均值较低时,计数数据对数的方差会变得很大。它们都借助实验中整体的方差随均值变化的趋势,来转换数据,以去除这种整体趋势。需要注意的是,我们并不强求所有基因转换后的方差完全相同。在下面的图表里,你会看到转换后,相同均值的基因标准差并不完全一样,但整体趋势已经变平缓了。那些行方差高于整体趋势的基因,有助于我们将样本划分成有意义的组别。

盲方差估计

vst 和 rlog 这两个函数都有一个 blind 参数,用来决定转换时是否忽略设计公式中指定的样本信息。当 blind 为 TRUE(默认设置)时,函数会只用截距来重新估计离散度。这种设置适用于完全不考虑实验分组信息来比较样本,比如做样本质量保证(QA)时用到。

不过,如果预计很多基因(行)的计数差异是由实验设计能解释的,并且想把数据转换用于后续分析,那盲方差估计就不合适了。这种情况下,盲方差估计会让离散度估计值变大,因为它把实验设计导致的差异当成了不需要的噪声,进而使转换后的数值过度相互靠近。把 blind 设置为 FALSE,就会用已经估计好的离散度来转换,或者如果没有,就用当前设计公式来估计。不过,转换时只用到均值 - 离散度趋势线上的拟合离散度估计(也就是整个实验中离散度对均值的整体依赖关系)。所以,把 blind 设置为 FALSE,大部分情况下还是没用到样本分组的信息来进行转换。

提取转换值

这些转换函数会返回一个 DESeqTransform 类的对象,它是 RangedSummarizedExperiment 类的子类。对于大约 20 个样本,在新创建的 DESeqDataSet 上,rlog 大概要 30 秒,vst 不到 1 秒。如果使用 blind = FALSE,或者已经运行过 DESeq 函数,运行时间会缩短,因为不用重新估计离散度值了。用 assay 函数可以提取出归一化值的矩阵。

vsd <- vst(dds, blind=FALSE)
rld <- rlog(dds, blind=FALSE)
head(assay(vsd), 3)

方差稳定化转换

之前我们用参数拟合方法来估计离散度。在这种情况下,vst 函数会用方差稳定化转换的封闭形式表达式。要是用局部拟合(在 estimateDispersions 里设置 fitType="locfit" 选项),那就会用数值积分来替代。转换后的数据应该是方差大致稳定的,并且也考虑了大小因子或归一化因子的校正。对于计数较大的数据,转换后的结果是在 log₂ 尺度上的。

正则化对数转换

rlog 函数的意思是正则化对数,它通过拟合一个模型来把原始的计数数据转换到 log₂ 尺度。这个模型包含每个样本的项,还有从数据中估计出来的系数的先验分布。这和 DESeq 以及 nbinomWaldTest 用的对数倍数变化的收缩方法(有时也叫正则化或调和)是一个路子。转换后得到的数据里包含这样的元素:

qij 是个参数,和基因 i、样本 j 的预期真实片段浓度成正比(具体公式下面有),βi₀ 是个不收缩的截距,βij 是样本特有的效应,会根据整个数据集的离散度 - 均值趋势向零收缩。通常低计数的基因离散度高,所以这些基因在 rlog 转换中收缩得更厉害。

得注意的是,qij 表示在把大小因子 sj 除掉后均值 μij 的一部分,这就说明 rlog 转换本身就能考虑到测序深度的不同。要是没有先验,这个设计矩阵就会有多个解,但给非截距的 beta 加上先验就能找到唯一的解。

转换对方差的影响

下面这张图展示了用移位对数转换、正则化对数转换和方差稳定化转换后的数据标准差,和样本均值的关系。移位对数在计数少的时候标准差会变高,正则化对数稍微好点,而方差稳定化转换后的数据,标准差在整个范围内基本保持不变。

还要注意,这种图的纵轴是所有样本方差的平方根,也就是把实验条件导致的方差也算进去了。虽然从均值上看,方差平方根的平坦曲线好像是转换追求的效果,但对于那些因实验条件有很多真实差异的数据集,这可能就不合适了。

# this gives log2(n + 1)
ntd <- normTransform(dds)
library("vsn")
meanSdPlot(assay(ntd))

meanSdPlot(assay(vsd))

meanSdPlot(assay(rld))

相关文章
|
11月前
|
存储 数据可视化 项目管理
RNA-seq 差异分析的细节详解 (5)
RNA-seq 差异分析的细节详解 (5)
RNA-seq 差异分析的细节详解 (5)
|
10月前
|
机器学习/深度学习 人工智能 物联网
TransPixar AI
TransPixar是由Adobe研究院与香港科技大学合作开发的AI系统,专注于文本到视频生成,特别擅长处理透明效果。它能生成包含Alpha通道的RGBA视频,使烟雾、反射等元素自然融入场景。采用扩散变换器架构和低秩适应微调方法,确保RGB和Alpha通道的一致性。该技术简化了视觉特效制作流程,降低了成本,并在娱乐、广告等领域有广泛应用前景。在线体验demo:[TransPixar](https://transpixar-ai.net/)。
|
10月前
|
数据可视化 算法 数据挖掘
Python时间序列分析工具Aeon使用指南
**Aeon** 是一个遵循 scikit-learn API 风格的开源 Python 库,专注于时间序列处理。它提供了分类、回归、聚类、预测建模和数据预处理等功能模块,支持多种算法和自定义距离度量。Aeon 活跃开发并持续更新至2024年,与 pandas 1.4.0 版本兼容,内置可视化工具,适合数据探索和基础分析任务。尽管在高级功能和性能优化方面有提升空间,但其简洁的 API 和完整的基础功能使其成为时间序列分析的有效工具。
338 37
Python时间序列分析工具Aeon使用指南
|
10月前
|
Java
Java快速入门之判断与循环
本文介绍了编程中的流程控制语句,主要包括顺序结构、判断结构(if语句和switch语句)以及循环结构(for、while和do...while)。通过这些语句可以精确控制程序的执行流程。if语句有三种格式,分别用于简单条件判断、二选一判断和多条件判断。switch语句适用于有限个离散值的选择判断,而循环结构则用于重复执行某段代码,其中for循环适合已知次数的情况,while循环适合未知次数但有明确结束条件的情况,do...while则是先执行后判断。文中还提供了多个示例和练习,帮助读者理解并掌握这些重要的编程概念。
|
10月前
|
Windows
【Azure App Service】对App Service中CPU指标数据中系统占用部分(System CPU)的解释
在Azure App Service中,CPU占比可在App Service Plan级别查看整个实例的资源使用情况。具体应用中仅能查看CPU时间,需通过公式【CPU Time / (CPU核数 * 60)】估算占比。CPU百分比适用于可横向扩展的计划(Basic、Standard、Premium),而CPU时间适用于Free或Shared计划。然而,CPU Percentage包含所有应用及系统占用的CPU,高CPU指标可能由系统而非应用请求引起。详细分析每个进程的CPU占用需抓取Windows Performance Trace数据。
233 40
|
10月前
|
机器学习/深度学习 人工智能 分布式计算
我的阿里云社区年度总结报告:Python、人工智能与大数据领域的探索之旅
我的阿里云社区年度总结报告:Python、人工智能与大数据领域的探索之旅
312 35
|
10月前
|
人工智能 Kubernetes Cloud Native
写在最前的话
本文是“拥抱云计算”系列的导语。文章回顾了作者与云计算的缘分始于2013年,并阐述了对云计算的理解:云计算是一种通过解耦实现业务弹性的架构。该系列文章旨在分享云计算技术栈、架构等核心思想,计划涵盖阿里云、分布式、微服务、云原生等主题,同步更新于微信公众号@云上的喵酱等平台。期待与读者共同探索云计算的奥秘。
167 18
写在最前的话
|
10月前
|
编解码 前端开发 算法
R中单细胞RNA-seq分析教程 (7)
R中单细胞RNA-seq分析教程 (7)
322 20
R中单细胞RNA-seq分析教程 (7)
|
10月前
|
机器学习/深度学习 人工智能 云计算
与阿里合作项目荣获2024年度教育部产学合作协同育人项目优秀案例
该项目强调利用阿里云计算有限公司的低代码开发平台和算力资源,开发创新性的教学案例,以支持机器学习和深度学习等前沿技术课程的教学和实验。项目部分成果纳入了即将出版的《深度学习实战案例》教材中,该教材由人民邮电出版社出版。
548 10