Hello,
I am new to DESeq2. The vignette (LINK) focuses on a simple set : "treated vs untreated ".
My experimental design contains 2 genotypes (A and B) vs 2 conditions (Control / Treated).
My coldata :
Sample | Genotype | Treatment |
1 | A | control |
2 | A | control |
3 | A | control |
4 | A | control |
5 | B | control |
6 | B | control |
7 | B | control |
8 | B | control |
9 | A | Treated |
10 | A | Treated |
11 | A | Treated |
12 | A | Treated |
13 | B | Treated |
14 | B | Treated |
15 | B | Treated |
16 | B | Treated |
In order to answer my biological questions, I would expect to do something like this:
- Genotype effect = (A Control + A Treated) - (B Control + B Treated)
- Treatment effect = (A Treated + B Treated) - (A Control + B Control)
I remember that in edgeR we could define such a list via:
my.contrasts <- makeContrasts().
In DESeq2, according to the vignette and these topics (DESEq2 comparison with mulitple cell types under 2 conditions and DESeq2 likelihood ratio test (LRT) design - 2 genotypes, 4 time points) I did:
dds <- DESeqDataSetFromMatrix(countData = cts, colData = coldata, design = ~ Genotype + Treatment + Genotype:Treatment)
dds$group <- factor(paste0(dds$Genotype, dds$Treatment))
design(dds) <- ~ group
dds <- DESeq(dds)
resultsNames(dds)
The output of "resultsNames(dds)" was :
"Intercept", "group_ATreated_vs_AControl", "group_BControl_vs_AControl" and "group_BTreated_vs_AControl".
I expected to get something like "A_vs_B" and "Treated_vs_Control." But I saw this post (A: DESeq2 resultsNames output) that says: it is easy to test if the interaction effect is significant, by testing a single term: for example "groupY.conditionB".
However, which one of the “resultsNames(dds)” shortcuts should I use in the next step "Shrinkage of effect size" ? I am confused in regards to my biological questions.
Then, do I have to ask each question separately in DESq2 and compare them together later (outside DESeq2) ? I mean “A Treated vs A Control”, “B Treated vs B Control”, etc…
Tanks in advance.
Both are interesting, I mean:
1/ Get the differentially expressed genes in genotype A in response to treatment
2/ Get the differentially expressed genes in genotype B in response to treatment
3/ Compare the transcriptome response of genotype A vs B (before and after treatment)
A PCA would well reflects the expected response : four clouds such as AControl, ATreated, BControl, BTreated
I do not know if averaging is here a good strategy or not. But we would like to explore both the treatment effects and the genotype response. Sorry if I am not clear. :-)
You can use a design of
~genotype + genotype:treatment
, to accomplish 1-3. You will use results withname
for 1 and 2, and withcontrast=list(..., ...)
for 3.Thanks. I got :
So, I suppose that :
"GenotypeA.TreatmentTreated" will answer question 1;
"GenotypeB.TreatmentTreated" will answer question 2;
Can we interpret the "Genotype_B_vs_A", as being the overall difference between genotypes regardless of the treatment?
For question 3, I am not sure that it is the good way to ask the question but I tried :
I saw that the first columns "baseMean" of the output dataframes contain the same values.
Genotype B vs A is the difference for controls.
The contrast is instead (3).
Re: baseMean, see here:
http://bioconductor.org/packages/release/workflows/vignettes/rnaseqGene/inst/doc/rnaseqGene.html#building-the-results-table
or here:
http://bioconductor.org/packages/release/bioc/vignettes/DESeq2/inst/doc/DESeq2.html#access-to-all-calculated-values
Thanks for your rapid and kind help ! :-)