第10章 具有共同参照的双色实验

10.1 背景介绍

现在考虑一个双色微阵列实验,其中所有的阵列都使用了通用参照。如果在整个实验中将相同的通道作为通用参照,则可以对表达值的log-ratios进行精确分析,就好像是通过单通道实验获得的基因表达log值一样。在这些情况下,可以像单通道实验一样设计微阵列。

当通用参照进行了染色交换实验后,最简单的方法是使用modelMatrix()函数和目标文件设置设计矩阵。

10.2 两组

现在假设我们希望使用与通用参照RNA(Ref)杂交的阵列比较两只野生型(Wt)小鼠与三只突变(Mu)小鼠:

FileName Cy3 Cy5
File1 Ref WT
File2 Ref WT
File3 Ref Mu
File4 Ref Mu
File5 Ref Mu

这里的关注点在于突变型小鼠和野生型小鼠之间的比较。我们可以通过两种主要方法进行比较:

  1. 创建一个设计矩阵,其中包含突变体与野生型差异的系数,
  2. 创建一个设计矩阵,其中包括野生型和突变型小鼠分别的系数,然后提取差异作为对比。

对于第一种方法,设计矩阵应如下:

> design
        WTvsREF  MUvsWT
Array1            1              0
Array2            1              0
Array3            1              1
Array4            1              1
Array5            1              1

这里第一个系数估计每个探针野生型和参考之间的差异。第二个系数估计突变型和野生型之间的差异。对于那些不熟悉线性回归模型矩阵的人,可以通过以下方式理解它。矩阵代表每个阵列使用的系数。对于前两个阵列,拟合值只是WTvsREF系数,这显然是正确的。对于其余的阵列 ,拟合值应该是WTvsREF + MUvsWT ,等效于突变与参照的对比,也是正确的。由于原因稍后将显而易见,有时我们将其称为实验组-对照组参数化。可以通过下面的命令发现差异表达基因:

> fit <- lmFit(MA, design)
> fit <- eBayes(fit)
> topTable(fit, coef="MUvsWT", adjust="BH")

这里不需要使用contrasts.fit(),因为针对关注点的比较已经内置在拟合模型中。这个分析类似于经典的混合双样本t检验,只不过不同之处在于基因之间已经借用了信息。
对于第二种方法,设计矩阵应该是

> design
            WT    MU
Array1     1       0
Array2     1       0
Array3     0       1
Array4     0       1
Array5     0       1

现在,第一个系数代表野生型与参照,第二个系数代表突变型与参照。我们感兴趣的比较是这两个系数之间的差异,我们将其称为分组参数化。可以通过下面的命令发现差异表达基因

> fit <- lmFit(MA, design)
> cont.matrix <- makeContrasts(MUvsWT=MU-WT, levels=design)
> fit2 <- contrasts.fit(fit, cont.matrix)
> fit2 <- eBayes(fit2)
> topTable(fit2, adjust="BH")

结果与第一种方法完全一致。

设计矩阵可以通过下面的方法构建:

  1. 手动
  2. 使用limma软件包中的modelMatrix()函数
  3. 使用R语言内置的model.matrix()函数

将Group定义为

> Group <- factor(c("WT","WT","Mu","Mu","Mu"), levels=c("WT","Mu"))

对于第一种方法,实验组-对照组参数化,设计矩阵可以通过下面的命令计算

> design <- cbind(WTvsRef=1,MUvsWT=c(0,0,1,1,1))

或者通过

> param <- cbind(WTvsRef=c(-1,1,0),MUvsWT=c(0,-1,1))
> rownames(param) <- c("Ref","WT","Mu")
> design <- modelMatrix(targets, parameters=param)

或者通过

> design <- model.matrix(~Group)
> colnames(design) <- c("WTvsRef","MUvsWT")

上面三种命令的计算结果一致。

对于第二种方法,分组参数化,设计矩阵可以通过下面的命令计算

> design <- cbind(WT=c(1,1,0,0,0),MU=c(0,0,1,1,1))

或者通过

> param <- cbind(WT=c(-1,1,0),MU=c(-1,0,1))
> rownames(param) <- c("Ref","WT","Mu")
> design <- modelMatrix(targets, parameters=param)

或者通过

> design <- model.matrix(~0+Group)
> colnames(design) <- c("WT","Mu")

上面三种命令的计算结果一致。

10.3 若干组

上述分为两组的方法很容易扩展到任何数量的组。假设有三个RNA靶标进行比较,这三个目标称为 “RNA1”,“RNA2” 和 “RNA3”,目标矩阵有可能是

FileName Cy3 Cy5
File1 Ref RNA1
File2 RNA1 Ref
File3 Ref RNA2
File4 RNA2 Ref
File5 Ref RNA3

可以使用下面的命令创建设计矩阵

> design <- modelMatrix(targets, ref="Ref")

经过处理之后,分析就完全等同于9.3章节的单通道实验了。例如,为了得到三组之间的两两比较结果,需要运行以下命令

> fit <- lmFit(eset, design)
> contrast.matrix <- makeContrasts(RNA2-RNA1, RNA3-RNA2, RNA3-RNA1,
+ levels=design)
> fit2 <- contrasts.fit(fit, contrast.matrix)
> fit2 <- eBayes(fit2)

等等。

你可能感兴趣的:(第10章 具有共同参照的双色实验)