DESeq2 design with three treatments and the genes common to all
1
2
Entering edit mode
2.7 years ago
MaxF ▴ 120

My experimental design is 18 samples: three different treatments (cytokines A, B,C) each of which has its own mock/control each in triplicate.

I would like to know the genes that are differentially expressed across all cytokine treatments. I would also like to know the genes differentially expressed in response to each cytokine treatment. I am not trying to find out the genes that are only induced in A, but not B or C (etc).

Is the best option to perform each comparison individually and then manually look for the things that overlap, or is this something I can do within the design of my experiment?

At the moment my columns are set up like:

samp           condition  cyto
CytoA_treat    treated    A
CytoA_untreat  untreated  A
CytoB_treat    treated    B
CytoB_untreat  untreated  B
CytoC_treat    treated    C
CytoC_untreat  untreated  C


If I set up my design like:

ddsTxi <- DESeqDataSetFromTximport(txi, colData = samps_matx, design = ~ cyto + condition)
results(ddsTxi, name = "condition_treated_vs_untreated")


I think this gets me the answer to my first question ("Which genes are differentially expressed in all treatments?") but from there I don't know how to perform the individual comparisons. I read about interaction terms, but as I understand it adding one in is not what I want.

DESeqDataSetFromTximport(txi, colData = samps_matx,
design = ~ cyto + condition + cyto:condition)
results(ddsTxi, contrast=list( c("condition_untreated_vs_treated","cytoB.conditiontreated")


From the DESeq2 vignette it seems like this would tell me the additional effects of cytokine B treatment as compared to A, which isn't exactly what I want.

Maybe the best bet is to just make two DESeq objects and have one where I make a compound factor of "condition.treatment" and then individually compare those groups with the contrast argument?

A final option, since these data are all from the same cell type, is to merge the "untreated" samples and compare each cytokine treatment to this aggregate 'super mock'. I can see from the PCA, though, that the mocks from each of these experiments cluster by cytokine group (so there are batch effects).

These two questions are very similar to what I'm asking, but having read the answers I'm still a bit confounded: DESeq2 design with multiple conditions and https://support.bioconductor.org/p/101190/

RNA-Seq R desq2 • 1.7k views
3
Entering edit mode
2.7 years ago

Hey, I think that you need these:

~ cyto + condition + cyto:condition


## The condition effect for cyto A

results(dds, contrast = c('condition', 'treated', 'untreated'))


## The condition effect for cyto B

That is, the extra condition effect in cyto B compared to cyto A.

results(dds, contrast = list(c('condition_treated_vs_untreated', 'cytoB.conditiontreated')))


## The condition effect for cyto C

That is, the extra condition effect in cyto C compared to cyto A.

results(dds, contrast = list(c('condition_treated_vs_untreated', 'cytoC.conditiontreated')))


## ------------------

You could also just use a single-parameter model of the form ~ samp and do pairwise comparisons.

Kevin

0
Entering edit mode

Thanks Kevin, I ended up doing pariwise comparisons but put the mocks together as one group. Since these cytokine treatments were done at different times, I also included a "batch" condition.

Maybe I'm just confused, but I thought this:

results(dds, contrast = list(c('condition_treated_vs_untreated', 'cytoBconditiontreated')))


Would tell me the different in the effect of the treatment for cytokine B compared to cytokine A (as in, a small L2FC for a gene would mean the effect from A and B is of a similar magnitude).

1
Entering edit mode

Yes, according to the DESeq2 manual pages, it would be:

'The condition effect for cyto B. This is the main effect plus the interaction term (the extra condition effect in cytoB compared to cyto A)'

I added these extra lines to the original answer.