基因芯片的差异分析主要采用limma这个R包。
使用这个包需要三个数据:
- 表达矩阵
- 分组矩阵
- 差异比较矩阵
分析需要三个步骤:
- lmFit
- eBayes
- topTable
数据处理准备
表达矩阵
表达矩阵可以自己从芯片原始的cel文件开始用affy包读取,然后用rma或者mas5函数做归一化处理,最后得到表达矩阵。也可以直接下载表达矩阵然后用read.table等函数读取到R里面。或者直接下载一个含有表达矩阵的数据对象!重点是表达矩阵数据有没有对齐,需不需要做归一化处理。
分组矩阵
design <- model.matrix(~0+factor(group_list))colnames(design)=levels(factor(group_list))rownames(design)=colnames(exprSet)design
差异表达矩阵
contrast.matrix<-makeContrasts(paste0(unique(group_list),collapse = "-"),levels = design)contrast.matrix
差异分析
##step1fit <- lmFit(exprSet, design)##step2fit2 <- contrasts.fit(fit, contrast.matrix) ##这一步很重要,大家可以自行看看效果fit2 <- eBayes(fit2) ## default no trend !!!##step3tempOutput = topTable(fit2, coef=1, n=Inf)nrDEG = na.omit(tempOutput)head(nrDEG)write.csv(nrDEG2,"limma_notrend.results.csv",quote = F)
Code
参考资料
https://www.jianshu.com/p/ada878fdedf7
https://github.com/bioconductor-china/basic/blob/master/makeContrasts.md
