GEO数据挖掘(四):limma差异分析
2024-01-09 本文已影响0人
佳名
library(limma)
样本分组
exprSet<-as.data.frame(exprSet)
exprSet<-exprSet[,c(1:3,7:9)]
group <- factor(c(rep('normal',3),rep('cancer',3)),
levels = c("normal","cancer"))
boxplot(exprSet,outline = F,notch = T,las = 2,col = group)
差异分析
design <- model.matrix(~0 + group)
design
colnames(design)<- levels(group)
rownames(design)<- colnames(exprSet)
design
contrast.matrix<- makeContrasts("cancer-normal",levels = design)
contrast.matrix
step1 使用LmFit函数进行非线性最小二乘分析
fit <- lmFit(exprSet,design)
step2 使用经验贝叶斯对t-test中方差部分进行调整
fit1 <- contrasts.fit(fit, contrast.matrix) ##这一步很重要,大家可以自行看看效果
fit2 <- eBayes(fit1) ## default no trend !!!
####eBayes() with trend=TRUE
step3 得到差异表达分析结果
tempOutput = topTable(fit2, coef=1, n=Inf)
nrDEG = na.omit(tempOutput)
合并表达矩阵
将表达矩阵exprSet按差异基因nrDEG行名排序,然后合并
data <- exprSet[match(row.names(nrDEG),row.names(exprSet)),]
data1 <- cbind(nrDEG,data)
合并表达矩阵的最大好处是查看基因上下调时,可以佐证,不会出现上下调基因搞反的情况。