EdgeR - How to set up the design matrix for a multifactorial experimental design with interactions?
1
0
Entering edit mode
D • 0
@d-16116
Last seen 18 months ago
UK

Dear All,

I have performed RNAseq on an experimental design using 6 samples subject to two rounds of treatments: The first treatment uses a molecule that induces a signalling pathway (T1), the second round of treatment uses two drugs that disrupt that signalling pathway (D2_A and D2_B). The drugs used in the second round are used independently (i.e. drug 2_A and drug 2_B are not used together in any one sequencing reaction). The samples are paired, such that each of the 6 samples was subject to all combinations of the treatments.

As such I have an experimental design that looks something like this (for the first sample), where NT=no treatment 1 and ND = no treatment 2:

6 (samples) x 2 (treatment 1) x 3 (treatment 2) = 36 libraries

 Sample Treatment_1 Treatment_2 S1 NT ND S1 NT D2A S1 NT D2B S1 T1 ND S1 T1 D2A S1 T1 D2B

I have a range of questions to ask of the data but most importantly, I want to know how each of the second treatments (the drugs) modifies the effect of the first treatment (the induction of a signalling pathway). I.e. what is the difference between T1-NT with D2A vs. T1-NT with ND.

Would I need to do something special when building the design matrix, i.e. am I looking to create a nested interaction formulae, or could I use a simpler additive matrix then handle the comparison using a range of subtractions when selecting the coefficients?

I currently have something like this:

> Group <- factor(paste(design$T1,design$T2, sep = "_"))

> levels(Group)

[1] "NT_D2B"     "NT_ND"   "NT_D2A" "T1_D2B"    "T1_ND"  "T1_D2A"

> design.mat <- model.matrix(~0+Group+SampleID)

> colnames(design.mat)

[1] "GroupNT_D2B" "GroupNT_ND" "GroupNT_D2A" "GroupT1_D2B" "GroupT1_ND" "GroupT1_D2A" "SampleID2" "SampleID3" "SampleID4" "SampleID5" "SampleID6"

Then make my contrasts (just drug D2A shown):

> cont.matrix <- makeContrasts(levels = design.mat,

standard.T1.vs.NT = GroupT1_ND-GroupNT_ND,

D2A.T1.vs.NT = GroupT1_D2A-GroupNT_D2A,

T1.diff.D2A.vs.standard = ((GroupT1_D2A-GroupNT_D2A)-(GroupT1_ND-GroupNT_ND)))

Does this look like a reasonable approach considering the biological question “how is the induced pathway affected by treatment with the drug?”

Kind regards,

Donny

2
Entering edit mode
Aaron Lun ★ 27k
@alun
Last seen 2 hours ago
The city by the bay

Your current design matrix and contrasts seem sensible to me. The only thing I would suggest is to use the glmQLFit and glmQLFTest framework, rather than glmFit and glmLRT; see this paper for more details.