Factorial experimental design

Differential Expression Analysis with limma in R

John Blischak

Instructor

Factorial designs

  • 2x2 design to study effect of low temperature in plants:
    • 2 types of Arabidopsis thaliana: col, vte2
    • 2 temperatures: normal, low
    • Maeda et al. 2010
dim(eset)
Features  Samples 
   11871       12
table(pData(eset)[, c("type", "temp")])
      temp
type   low normal
  col    3      3
  vte2   3      3
Differential Expression Analysis with limma in R

Group-means model for 2x2 factorial

$$ Y = \beta_1 X_1 + \beta_2 X_2 + \beta_3 X_3 + \beta_4 X_4 + \epsilon $$

  • $\beta_1$ - Mean expression level in col plants at low temperature
  • $\beta_2$ - Mean expression level in col plants at normal temperature
  • $\beta_3$ - Mean expression level in vte2 plants at low temperature
  • $\beta_4$ - Mean expression level in vte2 plants at normal temperature
Differential Expression Analysis with limma in R

Group-means design matrix for 2x2 factorial

group <- with(pData(eset), 
              paste(type, temp, sep = "."))
group <- factor(group)
design <- model.matrix(~0 + group)
colnames(design) <- levels(group)
head(design, 3)
  col.low col.normal vte2.low vte2.normal
1       0          1        0           0
2       0          1        0           0
3       0          1        0           0
colSums(design)
    col.low  col.normal    vte2.low vte2.normal 
          3           3           3           3
Differential Expression Analysis with limma in R

Contrasts for a 2x2 factorial

$\beta_1$ $\beta_2$ $\beta_3$ $\beta_4$
type col col vte2 vte2
temp low normal low normal
  • Differences of type in normal temp: $\beta_4 - \beta_2 = 0$
  • Differences of type in low temp: $\beta_3 - \beta_1 = 0$
  • Differences of temp in vte2 type: $\beta_3 - \beta_4 = 0$
  • Effect of temp in col type: $\beta_1 - \beta_2 = 0$
  • Differences of temp between col and vte2 type: $(\beta_3 - \beta_4) - (\beta_1 - \beta_2) = 0$
Differential Expression Analysis with limma in R

Contrasts matrix for 2x2 factorial

library(limma)
cm <- makeContrasts(type_normal = vte2.normal - col.normal,
                    type_low = vte2.low - col.low,
                    temp_vte2 = vte2.low - vte2.normal,
                    temp_col = col.low - col.normal,
                    interaction = (vte2.low - vte2.normal) -(col.low - col.normal),
                    levels = design)
cm
             Contrasts
Levels        type_normal type_low temp_vte2 temp_col interaction
  col.low               0       -1         0        1          -1
  col.normal           -1        0         0       -1           1
  vte2.low              0        1         1        0           1
  vte2.normal           1        0        -1        0          -1
Differential Expression Analysis with limma in R

Testing 2x2 factorial

library(limma)

# Fit coefficients
fit <- lmFit(eset, design)

# Fit contrasts
fit2 <- contrasts.fit(fit, contrasts = cm)

# Calculate t-statistics
fit2 <- eBayes(fit2)

# Summarize results
results <- decideTests(fit2)
summary(results)
   type_normal type_low temp_vte2 temp_col interaction
-1           0      466      1635     1885         128
0        11871    10915      7635     6989       11640
1            0      490      2601     2997         103
Differential Expression Analysis with limma in R

The effect of drought on Populus trees

  • 2x2 design to study effect of drought in trees:
    • 2 types of Populus: DN34, NM6
    • 2 water conditions: normal, drought
    • Wilkins et al. 2009
dim(eset)
Features  Samples 
   16172       12
table(pData(eset)[, c("type", "water")])
      water
type   drought normal
  dn34       3      3
  nm6        3      3
Differential Expression Analysis with limma in R

Let's practice!

Differential Expression Analysis with limma in R

Preparing Video For Download...