Dear Gordon,
Thank you very much for taking the time to write your answer.
Your explanation for the data "reparation" makes perfect sense.
I am of course aware, that I need to interpret the adjusted p-values. I used the unadjusted p-values only to get a feeling for whether the limma analysis is plausible.
Also thank you for suggesting the ANOVA approach, I suppose I blinded the experiment a bit too much, since some of the groups are time course data. I'm not interested in comparing all the groups.
Thank you for the suggestion to use a started log-transformation. I will do this from now on.
However, I'm wondering how you decided on 1e-5 as the constant (c).
I did some testing and the p-value, e.g. of metabolite_75, strongly depends on this constant. The p-value decreases with decreasing c and converges to the p-value I got from my original "broken" data set where the outliers dominated.
c = 1e-4: 0.8110358
c = 1e-5: 0.3721194
c = 1e-6: 0.1362911
c = 1e-7: 0.05532647
c = 1e-8: 0.03213364
c = 1e-9: 0.02850181
Here is the distribution for the values of c:
m <- as.matrix(read.csv('m.csv', row.names=1))
y <- exp(m)
y[m==0] <- 0
par(mfrow=c(2,6))
hist(log(y + 1e-4)); hist(log(y + 1e-5)); hist(log(y + 1e-6)); hist(log(y + 1e-7)); hist(log(y + 1e-8)); hist(log(y + 1e-9))
qqnorm(log(y + 1e-4)); qqnorm(log(y + 1e-5)); qqnorm(log(y + 1e-6)); qqnorm(log(y + 1e-7)); qqnorm(log(y + 1e-8)); qqnorm(log(y + 1e-9))
Visually, the histogram with c = 1e-5 still seems slightly skewed.
Since the p-value strongly depends on this value, how did you decide on 1e-5?
Again, thank you very much for your time!
Edit:
I just realized you reversed my log2-transformation with exp(m), but it should be 2^m, shouldn't it?
That would change the p-value with c = 1e-5 to p = 0.04999265.
Interesting, that it's still barely significant when unadjusted.
Edit2: Moved this from a reply to a comment.