Limma包找到差异表达的基因

时间:2013-04-19 11:50:11

标签: r bioinformatics bioconductor limma

我的矩阵按以下方式设计,我将其命名为mat1:

 Probes  sample1  sample1 sample2 sample2 sample3 sample3 sample4 sample4  
         rep1      rep2    rep1   rep2    rep1    rep2    rep1    rep2
 ------------------------------------------------------------------------
   gene1   5.098   5.076   5.072  4.677  7.450   7.456   8.564   8.555
   gene2   8.906   8.903   6.700  6.653  6.749   6.754   7.546   7.540
   gene3   7.409   7.398   5.392  5.432  6.715   6.724   5.345   5.330
   gene4   4.876   4.869   5.864  5.981  4.280   4.290   4.267   4.255
   gene4   3.567   3.560   3.554  3.425  8.500   8.564   6.345   6.330 
   gene5   2.569   2.560   8.600  8.645  5.225   5.234   7.345   7.333

我使用limma包来找到DEG的

Group <- factor(c("p1", "p1", "p2", "p2","p3", "p4","p4")
design <- model.matrix(~0 + Group)
colnames(design) <- gsub("Group","", colnames(design))
fit <- lmFit(mat1[,1:4],design)
contrast.matrix<-makeContrasts(p1-p2,levels=design)
fit2<-contrasts.fit(fit,contrast.matrix)
fit2<-eBayes(fit2)
sel.diif<-p.adjust(fit2$F.p.value,method="fdr")<0.05
deg<-mat1[,1:4][sel.diif,]

因此,“deg”只会给我那些在样本1和2中具有重要意义的基因。我感兴趣的是那些只在第一个样本中差异表达但在第二个样本中没有表达的基因,我不确定这是否是正确的方法。

或者我应该尝试这样的事情:

contrast.matrix<-makeContrasts(contrasts="p1"-("p2"+"p3"+"p4")/3,levels=design)

我不确定如何设置对比矩阵以仅从样本1获得DEG,而不是在其他三个中获得。

1 个答案:

答案 0 :(得分:1)

您的示例不可重现,即我无法重现结果。但是,这里有一些评论:

  1. 关于deg,你是对的。它将寻找两个样本之间不同的基因。
  2. 对比矩阵:

    makeContrasts(contrasts="p1-(p2+p3+p4)/3", levels=design)
    

    是我(可能)解决这个问题的方法。但是,这可能会抵消效果。例如,p2为高且p3为低。

  3. 或者,您可以使用以下内容:

    makeContrasts(contrasts=c("p1-p2", "p1-p3", "p1-p4"), levels=design)
    

    并查看重叠基因。