前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >表达矩阵的归一化和标准化,去除极端值,异常值

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

作者头像
生信技能树
发布2019-08-13 15:17:11
20.4K0
发布2019-08-13 15:17:11
举报
文章被收录于专栏:生信技能树生信技能树

我们阅读量破万的综述: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的

代码语言:javascript
复制
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矩阵的另一种表示形式。了解这些值背后的含义及应用范围,针对不同的数据挖掘模型,选取适合的表达量的表示形式来达到预期的结果。

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 归一化和标准化的区别
  • 取log对表达量的影响
  • z-score对表达量的影响
  • 表达量log归一化和z-score标准化的使用范围
  • 剔除异常值
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档