I'm analysing a microarray (single-channel) study with 2 experimental groups, each one with only 2 samples. I wanted to compare the two groups in order to find DE genes, so, I ran limma analysis on this dataset. The results were weird...lots of genes w/ very low p-values (lowest p-value: 6.144e-213). I made a volcano plot to see what was happening with the data...got this weird volcano plot: http://s33.postimg.org/mxnx39j67/weird_volcano.png
Do you guys know what kind of stuff would lead to that?
>print(annot)
GEO_ID group
1 GSM321605 uninfected
2 GSM321606 uninfected
3 GSM321607 infected
4 GSM321608 infected
>design <- model.matrix(~0 +annot[, "group"])
>head(design)
annot[, "group"]infected annot[, "group"]uninfected
1 0 1
2 0 1
3 1 0
4 1 0
>colnames(design) <- c("infected", "uninfected")
>cm <- makeContrasts(InfvsUninf = infected-uninfected, levels=design)
>print(cm)
Contrasts
Levels InfvsUninf
infected 1
uninfected -1
>fit <- lmFit(exprs, design)
>fit2 <- contrasts.fit(fit, cm)
>fit2 <- eBayes(fit2)
>results <- topTable(fit2, "InfvsUninf", number=Inf)
>head(results)
ID logFC AveExpr t P.Value adj.P.Val
IDO1 7.496098 8.077363 31.43580 6.144487e-213 8.017326e-209
TNFAIP6 6.945901 7.551685 29.12848 1.359307e-183 8.868116e-180
RSAD2 6.532472 8.066029 27.39471 6.405851e-163 2.786118e-159
IFI27 6.230206 7.727492 26.12712 1.461824e-148 4.768471e-145
IFITM1 6.128964 6.775055 25.70255 6.766299e-144 1.765733e-140
INHBA 5.915550 7.068516 24.80758 2.674626e-134 5.816421e-131
The results do not match with the volcano plot, negative logFC in your results but postive in the Volcanoplot (for those with extreme p-values)
Sorry! I pasted the results of the reverse comparison (
UninfvsInf
). Thanks for noticing, I'll edit the post!your t values should also be positive
Oh, of course! Thank you for noticing!
can you post a
head
of your results? also, how did you code your design matrix etc etc?Done! Added the code to the original post.
Why is the design matrix (~0 +annot[, "group"]) I think the 0 indicates that you don't want to use an intercept term, but in this design you should really keep a common base between the samples.
It is correct. If limma uses contrasts then it automatically inserts an extra intercept. Its in the code.
Did u fix it? I meet the same problem. could u share some suggestions, please?
This looks like a comment rather than an answer. Please, add comments using the
ADD COMMENT
button under each post. There is an accepted answer to this questions that both explains the cause of the original problem and provides some solutions. Is this not working for you? If you have a different issue please ask a new question instead. Thank you.You are right, I moved the post to a comment now.