Testing three-way interactions in DESeq2
Entering edit mode
red_bricks ▴ 60
Last seen 12 weeks ago
United States


I am new to using DESeq2 and would appreciate some advice for a somewhat complex experimental design (for a non-statistician anyway). I have a dataset with 3 factor variables, each with 2 levels, as follows:

trt: control, treatment

geno: A, B

time: 6h, 12h (no time 0h)

Each combination of factor levels was replicated 3 times, giving 2 x 2 x 2 x 3 = 24 samples total.

Biologically, I want to find the genes that respond differently to treatment in the two genotypes; this can be a constant effect over time or not. Statistically, I figure that I should be looking for genes with significant geno x trt effect over time points, and also genes with significant geno x trt x time effect. Other ideas would be appreciated here.

Assuming the above reasoning makes sense, does the following code/design accomplish the goals above?

dds2 <- DESeqDataSetFromMatrix(countData = cts2,
                               colData = coldata, 
                               design = ~ geno + trt + time + geno:trt + geno:time + trt:time + geno:trt:time)

dds2 <- DESeq(dds2, test="LRT", reduced = ~ geno + trt + time + geno:time + trt:time)

Also, what would the log2 fold change mean in this case?

Thanks in advance!

deseq2 rna-seq rnaseq interactions • 3.3k views
Entering edit mode
Last seen 12 hours ago
United States

"I want to find the genes that respond differently to treatment in the two genotypes; this can be a constant effect over time or not."

From what you've described, I think you want to use a full design of ~trt + geno + time + geno:time + trt:time + trt:geno:time

And then the reduced design is to remove the term trt:geno:time.

You can use resultsNames() to see the names of the coefficients after fitting the model.

There will be two coefficients associated with the interaction term, a difference between the genotypes due to treatment at time 1 and another for the difference at time 2. You can pull these out with results() using 'name'.

Entering edit mode

Hi Michael,

I just wanted to confirm that the test as you have described will produce P-values for difference in response to treatment between the two genotypes regardless of whether this effect changes or not at the two time points. Is that correct?

So I would not need to pull out the two coefficients associated with trt:geno:time unless I wanted to do Wald tests for trt:geno effects at time 1 and time 2 individually or if I wanted to retrieve the fold changes for visualization.

Thanks again!

Entering edit mode

Because you have two interaction terms that are dropped from full in the reduced design, yes, it will give small p-values whether there is a difference in treatment across genotype at time 1 or time 2 or both.

Yes to second question.


Login before adding your answer.

Traffic: 614 users visited in the last hour
Help About
Access RSS

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6