我下载了4个GEO乳腺癌的数据集,想要把它们整合为一个数据集,在获取了表达矩阵,提取了想要的数据,并且注释了探针名后,我想,终于可以整合了,然后,我就遇到了问题。
除了其中一个矩阵表达量都在3000左右,一看就需要log,其他的好像都是log后的。
怎样批量判断是否需要log化呢?
我就回去翻了果子老师的视频,发现了一段代码
# 自动log化
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")
}
用这个段代码批量处理了我的四个数据集,发现一个需要log2,其他三个都不需要。
然后log2一个表达矩阵就好了~
然后我还有两个问题没有解决:
所有的GEO数据库里的log都是取得log2吗?就没有哪个哥们想要log10一下?是不是值之间的差异就太小了?
第二,如何根据GSE号追溯回源文章呢?根据citation的好像不对啊
遇到的问题好多,要一点一点来了~
感悟:遇不到问题,是真的不会去好好看视频做笔记的,哎。。。。