Question: The result of differential gene expression analysis should be extracted based on adj.p.value ?
1
gravatar for Raheleh
14 months ago by
Raheleh50
Raheleh50 wrote:

Hello, I am trying to analyze affymetrix microarray data (GSE27157). I did differential gene expression analysis using limma and used topTable() function to extract the top genes. I wanted to extract the genes with adj.p.value < 0.05, however filtering with this criteria returns nothing. The smallest amount for adj.p.value is 0.4 !!. Is it normal or there is a problem in my analysis? I did RMA to normalize my data and also tried with GCRMA but both returned the same result. Could I extract based on p.value instead of adj.p.value, in this case (p.value < 0.05 and lfc = 2) it returns 111 genes.

design <- model.matrix(~0 + samples)
colnames(design) <- c("Mut", "Wt")

fit <- lmFit(eset2, design)
contrast.matrix <- makeContrasts(Mut-Wt, levels = design)
fit.con <- contrasts.fit(fit, contrast.matrix)
fit.eb <- eBayes(fit.con)   

dge <- topTable(fit.eb, number = 1000, lfc = 2)
dge[which(dge$P.Value < 0.05),]
dim(dge[which(dge$P.Value < 0.05),])

any help would be great appreciated!!

ADD COMMENTlink modified 11 months ago by swbarnes25.0k • written 14 months ago by Raheleh50

Hello, I am using limfit model for gene expression data but i am confused about the result. This is the first time i am using this, could anyone please help me about interpreting the results? Which part of the result should i include in my report and how to explain that part? Thanks in advance

ADD REPLYlink written 11 months ago by farzanajui110
3
gravatar for dariober
14 months ago by
dariober9.9k
WCIP | Glasgow | UK
dariober9.9k wrote:

The smallest adjusted pvalue being 0.4 is effectively saying that no gene stands out of the statistical noise. This could be because your contrast Mut-WT doesn't produce an effect on gene expression strong enough to be confidently detected (or most or all of the genes change in the same direction so you see no change, but that's less likely).

Of course, you could still select genes with p.value < 0.05 and lfc = 2 but you have to be very careful in interpreting the results because you could be discussing just false positives. This is because if there is no effect at all, p-values are uniformly distributed between 0 and 1 and out of thousands of tests you inevitably get a few with small p-value just by chance. You could see this with:

set.seed(1234)
sort(runif(n= 10000, min= 0, max= 1))[1:10] # n random "p-values", show the smallest ten 
[1] 0.0003418126 0.0006121558 0.0006403907 0.0008630857 0.0008993864
[6] 0.0009852112 0.0011081123 0.0011709959 0.0013087022 0.0016921822
ADD COMMENTlink written 14 months ago by dariober9.9k
0
gravatar for swbarnes2
11 months ago by
swbarnes25.0k
United States
swbarnes25.0k wrote:

Could I extract based on p.value instead of adj.p.value,

Don't do this. You must adjust for multiple testing. Follow the link below to see why

https://xkcd.com/882/

It's always possible that you did nothing wrong, and there is no significant difference between your two samples.

ADD COMMENTlink written 11 months ago by swbarnes25.0k
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 2333 users visited in the last hour