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:
https://www.biostars.org/p/396181/ and https://support.bioconductor.org/p/101190/
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
