分享

GEO芯片数据差异表达分析时是否需要log2以及标准化

 世上无难事bio 2022-05-10 发布于湖南省

GEO中的Series Matrix File(s)通常是经过了标准化和对数转换的数据。但不全是。在实际应用的时候需要根据情况判断一下。对于芯片数据,可能作者将.cel的文件处理成未标准化的数据直接上传。

方法一:

一般来说,在判断counts是否需要重新标准化以及是否需要log2时,可以根据数值大小粗略估计。

如果表达丰度的数值在50以内,通常是经过log2转化的。如果数字在几百几千,则是未经转化的。因为2的几十次方已经非常巨大,如果2的几百次方,则不符合实际情况。

方法二:

对于是否需要标准化的问题,可以通过boxplot函数观察一下样本表达丰度值的分布是否整齐进行判断。

在差异表达分析教程给出的代码中已经包含了boxplot函数。

详细请见:https://blog.csdn.net/tuanzide5233/article/details/83541443

方法三:

查看GSE数据下载界⾯中的SOFT⽂件、Series Matrix File(s)⽂件中均有描述该系列的数据是如何进⾏标准化处理的,常见的标准化处理⽅法有3种:

RMA算法、

GC-RMA算法、

MAS5算法

其中前两中算法的返回值已经经过log2转换,可直接进⾏差异表达分析,第三种算法返回值未经过log2转换,需要⾃⾏进⾏log2转换。

方法四:

这个脚本会⾃动判断是否需要log2转化,我们知道GSE42872数据是log2过后的,所以这⾥会返回:[1] "log2 transform not needed

## 下载数据GSE42872

rm(list = ls())

library(GEOquery)

eSet <- getGEO("GSE42872", 

               destdir = '.',

               getGPL = F)


# 从eSet中提取表达矩阵exprSet

exprSet <- exprs(eSet[[1]])


#对得到的表达矩阵操作

ex <- exprSet

qx <- as.numeric(quantile(ex, c(0., 0.25, 0.5, 0.75, 0.99, 1.0), na.rm=T))

LogC <- (qx[5] > 100) ||

  (qx[6]-qx[1] > 50 && qx[2] > 0) ||

  (qx[2] > 0 && qx[2] < 1 && qx[4] > 1 && qx[4] < 2)

if (LogC) { ex[which(ex <= 0)] <- NaN

exprSet <- log2(ex)

print("log2 transform finished")}else{print("log2 transform not needed")}


————————————————

ref:(60条消息) 生物信息学入门 GEO芯片数据差异表达分析时是否需要log2以及标准化的问题_ntuYision的博客-CSDN博客_geo标准化

https://wenku.baidu.com/view/c575b5976adc5022aaea998fcc22bcd126ff42e7.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多