0

我以以下方式设计了我的矩阵,我将其命名为 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”只会给我那些在样本一与二中显着的基因。我对那些仅在第一个样本中差异表达但在第二个样本中没有差异表达的基因感兴趣,我不确定这是否是正确的方法。

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

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

我不确定我应该如何设置对比矩阵以仅从样本 1 中获取 DEG,但在其他三个中则不然。

4

1 回答 1

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)
    

    并查看重叠的基因。

于 2013-04-19T11:59:08.143 回答