基因芯片的差异分析主要采用limma这个R包。
使用这个包需要三个数据:

  • 表达矩阵
  • 分组矩阵
  • 差异比较矩阵

分析需要三个步骤:

  • lmFit
  • eBayes
  • topTable

数据处理准备

表达矩阵

表达矩阵可以自己从芯片原始的cel文件开始用affy包读取,然后用rma或者mas5函数做归一化处理,最后得到表达矩阵。也可以直接下载表达矩阵然后用read.table等函数读取到R里面。或者直接下载一个含有表达矩阵的数据对象!重点是表达矩阵数据有没有对齐,需不需要做归一化处理。

分组矩阵

  1. design <- model.matrix(~0+factor(group_list))
  2. colnames(design)=levels(factor(group_list))
  3. rownames(design)=colnames(exprSet)
  4. design

差异表达矩阵

  1. contrast.matrix<-makeContrasts(paste0(unique(group_list),collapse = "-"),levels = design)
  2. contrast.matrix

差异分析

  1. ##step1
  2. fit <- lmFit(exprSet, design)
  3. ##step2
  4. fit2 <- contrasts.fit(fit, contrast.matrix) ##这一步很重要,大家可以自行看看效果
  5. fit2 <- eBayes(fit2) ## default no trend !!!
  6. ##step3
  7. tempOutput = topTable(fit2, coef=1, n=Inf)
  8. nrDEG = na.omit(tempOutput)
  9. head(nrDEG)
  10. write.csv(nrDEG2,"limma_notrend.results.csv",quote = F)

Code

Arry DGE limma.R

参考资料

https://www.jianshu.com/p/ada878fdedf7
https://github.com/bioconductor-china/basic/blob/master/makeContrasts.md