目录
1.去除///
2.去除重复的基因名
3.表达矩阵自动log2化
4.矫正差异
表达量矩阵的数据清洗应该在注释完成之后进行,并且下列操作最好按顺序进行
1.去除///
如下图的表格所示,同一个探针ID对应的gene有多个,用///分隔着,而我们想获得一个探针ID只对应一个基因symbol的表格。
2.去除重复的基因名
表达矩阵注释过后,通常会有一些基因名是重复
matrix <- aggregate(.~Gene.symbol, matrix, mean) ##把重复的Symbol取平均值
row.names(matrix) <- matrix$gene.name #把行名命名为SYMBOL
matrix <- subset(matrix, select = -1) #删除Symbol列(一般是第一列)
Gene.symbol:是需要去重的所在例名
data:是表达矩阵
3.表达矩阵自动log2化
qx <- as.numeric(quantile(exprSet, 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
## 取log2
exprSet <- log2(ex)
print("log2 transform finished")
}else{
print("log2 transform not needed")
}
4.矫正差异
library(limma)
boxplot(exprSet,outline=FALSE, notch=T, las=2) ##出箱线图
### 该函数默认使用quntile 矫正差异
exprSet=normalizeBetweenArrays(exprSet)
boxplot(exprSet,outline=FALSE, notch=T, las=2)
## 这步把矩阵转换为数据框很重要
class(exprSet) ##注释:此时数据的格式是矩阵(Matrix)
exprSet <- as.data.frame(exprSet)
更多教学请关注:
👉🏻公众号:LN生物笔记👈🏻文章来源:https://www.toymoban.com/news/detail-547552.html
👉🏻知乎:小宇👈🏻文章来源地址https://www.toymoban.com/news/detail-547552.html
到了这里,关于R语言 | GEO表达矩阵的数据清洗与预处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!