差异分析是否需要比较矩阵

仔细观察下面的两个代码:

首先是不需要差异比较矩阵的:


library(CLL) 

 data(sCLLex)

 library(limma)

design=model.matrix(~factor(sCLLex$Disease))

fit=lmFit(sCLLex,design)

fit=eBayes(fit) 

options(digits=4)

topTable(fit,coef=2,adjust='BH')

然后是需要差异比较矩阵的:


library(CLL) 

data(sCLLex) 

 library(limma)

design=model.matrix(~0+factor(sCLLex$Disease))

 colnames(design)=c('progres','stable')

fit=lmFit(sCLLex,design)

cont.matrix=makeContrasts('progres-stable',levels=design)

fit2=contrasts.fit(fit,cont.matrix)

fit2=eBayes(fit2) 

 options(digits=4) 

 topTable(fit2,adjust='BH')

两者结果是一模一样的。而差异比较矩阵的需要与否,主要看分组矩阵如何制作的!


design=model.matrix(~factor(sCLLex$Disease))

design=model.matrix(~0+factor(sCLLex$Disease))

有本质的区别!!!

前面那种方法已经把需要比较的组做出到了一列,需要比较多次,就有多少列,第一列是截距不需要考虑,第二列开始往后用coef这个参数可以把差异分析结果一个个提取出来。

而后面那种方法,仅仅是分组而已,组之间需要如何比较,需要自己再制作差异比较矩阵,通过makeContrasts函数来控制如何比较!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容