⛳前言:🤔GEO的数据在分析之前要进行标准化处理,这已经是老生常谈的事情了。👉🏻但是如何进行标准化,以及选择那种方法进行标准化,目前依然是很多小白甚至是生物信息学家所迷惑的地方。
💡今天在这里,我对于两种常见的标准化方法进行一个简单的解释
今天拿GSE97508这个数据为例子来降解。
首先,我们先看一下我们拿到手后没有经过任何处理的原始数据。(这里说的没有经过任何处理并不是说数据真没有经过任何处理,其实在研究人员上传数据时,这些数据就已经经过各种处理,与真正意义上的原始数据差别很大)
先画一个箱型图。👇🏻
boxplot(exp,main="Non-normalized",las=2)
limma包的normalizeBetweenArrays
函数提供了对单通道芯片的几种标准化处理方法。
在参数method
中,可供选择的有"none"
,"scale"
, "quantile"
,"cyclicloess"
,一共三种标准化处理方法。(其中"none"
表示不进行标准化。
scale是一种让各个列都拥有相同中位数的标准化方法。我们选用scale normalization的方法进行标准化处理。即设置参数method="scale "
。
exp <- normalizeBetweenArrays(exp, method="scale ")
boxplot(exp,main="Normalized",las=2)
从图上我们也可以清楚的看见,scale normalization后的boxplot的中位线都位于同一水平线上了。
这是一个比较常见的数据标准化处理方法,对于这个方法我画了一张图便于大家理解。👇🏻
quantile normalization算法
如图所示,最初我们拿到的表达矩阵,其中同一颜色(同一行)表示一个基因,一列表示一个样本,数值表示的是该基因在样本中的表达量。
quantile normalizatio总共有三步:
分位数标准化会达到一个效果:矩阵中每个样本的值都相同,但是在一个样本中原始基因表达量大小的相对关系被保留了下来。
quantile normalization将数据的分位数统一,即把不同样本的数据的分位数对应到相同的值上。
那么实际应用到我们今天的示例数据GSE97508上,quantile normalization后的箱型图是这样的:👇🏻
quantile normalization
可以看到quantile normalization后,数据排列的非常整齐。🤙🏻
但是呢,也有研究表明,quantile normalization之后的数据会改变原始数据的分布,造成有些差异基因不显著。
🤔后记:
目前关于标准化的讨论仍然比较混乱,没有一个固定的标准,每个人有各自的理解。如果大家有自己的理解也可以在评论区留言,一起探讨这个问题。🛰️
👉🏻公众号:生物科研星球👈🏻
👉🏻知乎:LN生物笔记👈🏻
公众号所有文章均为markdown制作,本篇文章的MD源文件可以在微信公众号后台回复md后得到下载链接。
文章中我自己用Adobe Illustrator画的示意图也在这里分享给大家。在微信公众号后台回复作图,得到下载链接。
🥸往期文章:
☁️分子生物学 | miRNA的根源区"seed region"