表达矩阵的归一化和标准化,去除极端值,异常值

我们阅读量破万的综述:RNA-seq这十年(3万字长文综述)给粉丝朋友们带来了很多理解上的挑战,所以我们开辟专栏慢慢介绍其中的一些概念性的问题,上一期:

RNA-seq的counts值,RPM, RPKM, FPKM, TPM 的异同

在数据挖掘过程,数据的归一化和标准化是必须的。取log值就是一种归一化的方法,z-score是常用的标准正态分布化的方法。

归一化和标准化的区别

实际上口语里面通常是没办法很便捷的区分这两个概念。
归一化:将每个样本的特征值(在转录组中,特征值就是表达量)转换到同一量纲下,把表达量映射到特定的区间内,区间的上下限由表达量的极值决定,这种区间缩放法是归一化的常用方法
标准化:按照表达矩阵中的一个基因在不同样本中的表达量处理数据,每个样本点都能对标准化产生影响,通过求z-score值,转换为标准正态分布,经过处理的数据的均值为0,标准差为1,因此z-score也称为零-均值规范化。

取log对表达量的影响

原始的raw counts矩阵是一个离散型的变量,离散程度很高。有的基因表达丰度比较高,counts数为10000,有些低表达的基因counts可能10,甚至在有些样本中为0。
即使经过了RPKM/FPKM等方法抵消了一些测序技术误差的影响,但高低丰度基因的表达量的差距依然很大。
如果对表达量去一下log10,发现10000变成了4,10变成了1,这样之前离散程度很大的数据就被集中了。

如上图,这些离散的表达量都汇聚到了不同底数的log函数线上,可以使绘制的热图、箱线图等图形更加美观。
有时当表达量为0时,取log会出现错误,可以log(counts+1)来取log值。当x=1时,所有的log系列函数值都为0。这样原本表达量为0的值,取log后仍为0。
这也就是UCSC的XENA下载到的表达矩阵的形式。

z-score对表达量的影响

log对每个样本的表达量的处理标准是一样,而z-score考虑到了不同样本对表达量的影响,计算z-score时,消除到了表达的平均水平和偏离度的影响。

转换后表达量符合正态分布分布,Z-score只是一个临界值,是标准化的结果,本身没有意义,有意义的在于在标准正态分布模型中它代表的概率值。
所以只要知道Z值, 查对应的正态分布表,就可以知道表达量偏离平均水平的程度。

表达量log归一化和z-score标准化的使用范围

  • 如果对表达量的范围有要求,用归一化。

  • 如果表达量较为稳定,不存在极端最大最小值,使用归一化。

  • 如果表达量离散程度很大,存在异常值和较多噪音,用标准化可以避免异常值和极端值的影响。

  • 在分类、聚类、PCA算法中,使用z-score值的结果更好。

  • 数据不太符合正态分布时,可以使用归一化。

  • 机器学习的算法(SVM、KNN、神经网络等)要求归一化/标准化

剔除异常值

大家看群主代码绘制热图,里面经常看到z-score以及去除极端值的:

希望你看清楚下面代码是如何进行z-score的

pheatmap(dat)
n=t(scale(t(dat)))
n[n>2]=2 #限定上限,使表达量大于2的等于2
n[n< -2]= -2 #限定下限,使表达量小于-2的等于-2
n[1:4,1:4]
pheatmap(n,show_colnames =F,show_rownames = F)
ac=data.frame(group=cluster)
rownames(ac)=colnames(n)
pheatmap(n,annotation_col = ac,
         show_colnames =F,show_rownames = T)
n[n< -1]= -1 # 重新限定下限,使表达量小于-2的等于-2
n[1:4,1:4] 
pheatmap(n,annotation_col = ac,
         show_colnames =F,show_rownames = T)

总结

在一些公共数据库如TCGA、GEO中,会提供取log值、z-score后的表达量矩阵,这些值都是count矩阵的另一种表示形式。了解这些值背后的含义及应用范围,针对不同的数据挖掘模型,选取适合的表达量的表示形式来达到预期的结果。

那么,怎么样知道你的表达矩阵是否需要进行归一化或者标准化呢?下面的学习班可能会帮助你

(0)

相关推荐

  • 收藏贴之一 | 写过热图工具的人,给你理清热图数据标准化

    写在前面 热图,或称热力图,是外文 Heatmap 的直译.在几乎所有数值分析相关工作中都可以看到.生物信息学数据,自然躲不过.无论是形态数据,还是基因拷贝数数据,或是基因表达量,都可以使用热图来进行 ...

  • 熵权法(客观赋权法)超详细解析

    熵权法   熵权法是一种客观赋权方法.(客观 = 数据本身就可以告诉我们权重)   依据的原理:指标的变异程度越小,所反映的信息量也越少,其对应的权值也应该越低. 文章目录 熵权法 一.方法介绍 二. ...

  • 机器学习:模型评价指标总结

    子曰:"温故而知新,可以为师矣. 混淆矩阵 混淆矩阵是一种特定的矩阵用来呈现算法性能的可视化效果,通常用于二分类模型.其每一列代表预测值,每一行代表的是实际的类别. 其实就是把所有类别的预测 ...

  • 如果表达矩阵被归一化会发生什么

    事情起源于,某个吃了很多汉堡王一起学习的日子,技能树一众学徒一起学习从GEO数据挖掘到limma差异分析等等等. 选的数据集倒是很有.趣.依据原始表达矩阵随便画的热图是这样的

  • 什么,你一定要基于FPKM标准化表达矩阵做单细胞差异分析

    学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了! 下面是<生信入门第7期>学员的分享 最近看到有一个简单的数据挖掘文章,就做了一个单细胞表达矩阵的差异分析,然后强行解释一波.而 ...

  • 在单细胞转录组表达矩阵里面去除细胞周期影响

    背景介绍 早在2015年发表在Nat. Biotechnol文章就提出了 scLVM (single-cell latent variable model)来在单细胞转录组数据里面去除细胞周期影响 但 ...

  • 表达矩阵可视化大全

    貌代码被折叠了,大家需要阅读原文才能复制粘贴我代码在Rstudio里面直接运行,几分钟就可以学会15个图的制作! basic visualization for expression matrix j ...

  • lncRNA实战项目-第四步-得到表达矩阵的流程

    响应生信技能树的号召:lncRNA数据分析传送门 , 一起来一个lncRNA数据分析实战! SRA->FASTQ->BAM->COUNTS 这几个步骤而已,中间穿插一些质控的手段,每 ...

  • 从GEO数据库下载得到表达矩阵 一文就够

    在第一讲我们详细介绍了GEO数据库的基础知识及规律,也了解了如何利用官方R包GEOquery来探索GEO数据库,当然,我的生信菜鸟团博客里面也从很多其它角度解析过它,欢迎大家自行搜索学习.总得来说,从 ...

  • 使用CGP数据库的表达矩阵进行药物反应预测

    发表这个算法的文章是:Clinical drug response can be predicted using baseline gene expression levels and in vitr ...

  • 要读源代码才能解决的报错-GEOquery下载表达矩阵缺样本名

    最近生信技能树的很多朋友反馈一个GEOquery的bug,而且这个错误对初学者来说,是不可能解决的问题,值得分享一下!(2018-11-27 计) 就是昨天推文末尾的小测试: GEOquery包的ge ...

  • 转录组表达矩阵为什么需要主成分分析以及怎么做

    我们阅读量破万的综述:RNA-seq这十年(3万字长文综述)给粉丝朋友们带来了很多理解上的挑战: 所以我们开辟专栏慢慢介绍其中的一些概念性的问题,上一期:表达矩阵的归一化和标准化,去除极端值,异常值 ...