RNA-seq的标准化方法罗列

简介: RNA-seq的标准化方法对于RNA-seq而言,由于 技术误差, 测序深度不同, 基因长度不同,为了能够比较不同的样本,比较不同的基因的表达量,以及使表达水品分布符合统计方法的基本假设,就需要对原始数据进行标准化。

RNA-seq的标准化方法

对于RNA-seq而言,由于 技术误差测序深度不同基因长度不同,为了能够比较不同的样本,比较不同的基因的表达量,以及使表达水品分布符合统计方法的基本假设,就需要对原始数据进行标准化。

对于一个新兴的领域,通常会有50多种算法,但是最后常用的,其实也就那么几个。在RNA-seq标准化这个领域也是如此,目前用的最多也就是, RPKM/FPKM, TPM,但是注意,有些时候一个方法出现的多,单纯是因为公司没有修改他们的分析流程。

为了方便理解,假设目前你在一次测序中(即剔除批次效应)检测了一个物种的3个样本,A,B,C,这个物种有三个基因G1,G2,G3, 基因长度分别为100, 500, 1000. 通过前期数据预处理,你得到了尚未标准化的表达量矩阵,如下所示。

事先声明,以下数字完全是我瞎编,方便用于后续的计算,如有雷同,留个微信,线下交友。

基因/样本 样本A 样本B 样本C
G1(100) 300 400 500
G2(500) 700 750 800
G3(1000) 1000 1300 1800

基因表达量矩阵

基因/样本 样本A 样本B 样本C
G1(100) 300 400 500
G2(500) 700 750 800
G3(1000) 1000 1300 1800

先说三个简单的策略,也就是最容易想到的方法

  • Total Count, TC, 每个基因计数除以总比对数, 即文库大小, 然后乘以不同样本的总比对数的均值
  • Upper Quartile, UQ, 和TC方法相似, 即用上四分位数替代总比对数
  • Median, Med, 和TC方法相似, 用中位数代替总比对数

上面方法都相似,考虑到我的例子只有三个基因,所以只展示TC方法的结果. 可以发现,原本比其他组观测值的A-G2,目前反而是最高。

TC处理后 A B C
G1 370 402.7 418.1
G2 863.3 744.1 543.5
G3 1233.3 1308.8 1505.1

如果省去TC中的 "乘以不同样本的总比对数的均值" 这一步,那么差不多就是CPM (counts per million)的策略,也就是根据直接根据深度对每个样本单独进行标准化. 在edgeR和limma/voom里面都有出现过。

img_fb2733b33075dbd4ccfcf7b4ee8cf602.jpe
CPM

TMM(trimmed mean of M value)方法出现在2010年,比TC、 UQ、Med, CPM方法高级一点,基本假设是绝大数的基因不是差异表达基因.计算方法有点复杂,简单的说就是移除一定百分比的数据后,计算平均值作为缩放因子,对样本进行标准化。这次我们用R/edgeR来算. 和之前不同,A组的G2基因标准化后还是最低,这就是trim所引起。

> library(edgeR)
> expr <- matrix(c(300,400,500,700,750,650,1000,1300,1800),nrow = 3,byrow = TRUE)
> f <- calcNormFactors(expr, method = "TMM")
> mt_norm <- t(t(mt) /f )
> mt_norm
          [,1]      [,2]      [,3]
[1,]  303.0164  402.5300  491.9114
[2,]  707.0382  754.7438  787.0583
[3,] 1010.0545 1308.2226 1770.8811

DESeq2/DESeq有自己专门的计算缩放因子(scaling factor)的策略,它的基本假设就是绝大部分的基因表达在处理前后不会有显著性差异,表达量应该相似,据此计算每个基因在所有样本中的几何平均值(geometri mean), 每个样本的各个基因和对应的几何平均数的比值的中位数就是缩放因子(scaling factor). 这里仅仅提到思想,不做计算。

上述方法都是对样本整体进行标准化,标准化的结果只能比较不同样本之间的同一个基因的表达水平。如果要同时比较不同样本不同基因之间的表达量差异,就得考虑到每个基因的转录本长度未必相同,毕竟转录本越长,打算成片段后被观察到的概率会高一点。最长尝试解决这个问题,应该是单端测序时代的RPKM(双端则是FPKM), 全称为Reads Per Kilobase Million, 其中K象征的是转录本长度, M象征的是测序量.

img_205bf1a1c7929fff81cf9ff4229d5908.jpe
RPKM

对于A-G1而言,他的表达量就是300*1000 / (2000 x 100) = 1.5, 其中系数10e6在这里不需要使用。你可以认为它是先对文库大小进行标准化,然后再根据基因长度标准化

RPKM处理后 A B C
G1 1.5 1.63 1.61
G2 0.7 0.61 0.52
G3 0.5 0.53 0.58

一波操作下来,感觉数值就有点可比性了。

下面介绍TPM(transcript per million), 计算公式如下,其中X表示比对到基因上的read数,l表示基因的长度。

img_ff45fd101cae94571f5f7cf8403073f1.jpe
TPM

如果手动计算的话,那就是先进行 长度标准化

长度标准化 A B C
G1 3 4 5
G2 1.4 1.5 1.6
G3 1 1.3 1.8

然后进行文库标准化,即每一列各个数值除以每一列的和

长度标准化 A B C
G1 0.56 0.59 0.60
G2 0.26 0.22 0.19
G3 0.18 0.19 0.21
列和 1 1 1

目前还有一种技术叫做UMI,可以进行转录本的绝对定量,一个转录本有多少特异的UMI,就一定程度上代表了它的表达量。

一些看法

RNA-seq数据标准化其实要分为两种,样本间标准化和样本内标准化。

对于差异表达分析而言,样本内对不同转录本长度进行标准化 毫无必要,是的,真的是没啥意义,粗略比较同一个基因在两个样本间是否有差异,只要处理好测序深度这个问题就行,任何要求用RPKM/FPKM而不是raw count作为差异表达分析的原始数据的分析方法都需要被淘汰掉,而沿用这种分析策略的公司都已经很久没有更新自己流程了。

此外,如果你要比较不同样本内的基因表达情况,那么目前更推荐用TPM。 因为在它的计算方法中,能更有效的标准化不同转录本组成上的差异,而不是简单除以文库大小。

题外话,我最近看到一篇发在Nature上ATAC-seq文章,Method部分提到他用RPKM这个方法对每个bin的read count进行标准化。考虑到每个bin的大小都一样,我觉得这个标准化的方法从定义上更接近CPM。

Correcting for gene length is not necessary when comparing changes in gene expression within the same gene across samples, but it is necessary for correctly ranking gene expression levels within the sample to account for the fact that longer genes accumulate more reads.

对于差异表达分析而言,标准化不但要考虑测序深度的问题,还要考虑到某些表达量超高或者极显著差异表达的基因导致count的分布出现偏倚, 推荐用TMM, DESeq方法进行标准化。

参考文献

目录
相关文章
|
机器学习/深度学习 缓存 网络安全
服务器中的conda环境
服务器中的conda环境
1363 1
|
监控 前端开发 JavaScript
AST 代码扫描实战:如何保障代码质量
2020 年 618 大促已经过去,作为淘系每年重要的大促活动,淘系前端在其中扮演着什么样的角色,如何保证大促的平稳进行?又在其中应用了哪些新技术?淘系前端团队特此推出「618 系列|淘系前端技术分享」,为大家介绍 618 中的前端身影。 本篇来自于频道与D2C智能团队的菉竹,为大家介绍本次 618 大促中是如何用代码扫描做资损防控的。
3593 0
AST 代码扫描实战:如何保障代码质量
|
3月前
|
监控 前端开发 安全
BSC链DAPP合约协议系统开发技术规则
本文深入解析BSC链DApp合约协议系统开发的技术规则,涵盖项目规划、智能合约设计、前后端开发、系统部署与后期维护等内容,为开发者提供全面的开发指南。
|
9月前
|
人工智能 机器人 UED
不怕不会设计logo拉-本篇教你如何使用AI设计logo-如何快速用AI设计logo-附上AI绘图logo设计的咒语-优雅草央千澈-实战教程
不怕不会设计logo拉-本篇教你如何使用AI设计logo-如何快速用AI设计logo-附上AI绘图logo设计的咒语-优雅草央千澈-实战教程
475 86
不怕不会设计logo拉-本篇教你如何使用AI设计logo-如何快速用AI设计logo-附上AI绘图logo设计的咒语-优雅草央千澈-实战教程
|
7月前
|
监控 文件存储 异构计算
国产NAS也支持本地部署DeepSeek了:极空间Z423上手
极空间Z423 NAS新增本地部署DeepSeek大模型功能,支持7B和14B两种参数量级模型。本文通过实际测试展示了其性能表现:14B模型运行缓慢,Token输出速度低于每秒10个,而7B模型速度稍快但仍不理想。硬件资源占用高,温度显著上升,风扇噪音增大。作者建议优化交互逻辑、提供局域网接口及更好GPU支持,并预测未来NAS可能加入GPU或NPU以提升推理能力。此功能目前更像战略布局,为后续硬件升级铺垫。
467 0
|
6月前
|
人工智能 安全 数据安全/隐私保护
本地部署DeepSeek教程:一键远程访问,还能解决Ollama安全隐患
本教程详细介绍如何使用Ollama+Open WebUI本地部署DeepSeek模型,并借助贝锐花生壳内网穿透实现安全远程访问。首先,安装Ollama并下载DeepSeek模型,根据显存选择合适参数(如4G选1.5B)。接着,通过Docker部署Open WebUI以获得图形化交互界面。最后,利用贝锐花生壳简单三步完成远程访问设置,支持HTTPS加密传输,保障数据安全。整个过程无需云服务器,轻松打造专属AI助手。
761 5
|
Python
md文件格式转成word文档
md文件格式转成word文档
589 0
|
SQL 关系型数据库 MySQL
乐观锁在分布式数据库中与事务隔离级别结合使用
乐观锁在分布式数据库中与事务隔离级别结合使用
229 3
|
机器学习/深度学习 算法
分类预测 | MATLAB实现BWO-TCN-Attention数据分类预测
分类预测 | MATLAB实现BWO-TCN-Attention数据分类预测
|
编解码 网络协议 安全
什么是猫池
猫池(外文名:ModemPOOL)就是将相当数量的Modem使用特殊的拨号请求接入设备连接在一起,可以同时接受多个用户拨号连接的设备。无线猫池设备广泛应用于大量具有多用户远程联网需求的单位或需要向从多用户提供电话拨号联网服务的单位。如邮电局、税务局、海关、银行、证券商、各类交易所、期货经纪公司、工商局、各类信息呼叫中心等。我公司的提供的猫池主要用于IP电话通讯使用,不是市面上的养卡猫池,这里我们再对猫池详细说明及功能使用:
4967 0