Does Fold change cutoff changes the FDR value using glmTreat function in edgeR?
1
0
Entering edit mode
Biologist ▴ 110
@biologist-9801
Last seen 4.0 years ago

I'm doing differential analysis between two groups A & B

With Fold change > 2 and FDR < 0.05 I have got more than 600 differentially expressed genes. Among them I see the following gene.

tr <- glmTreat(fit, contrast=contrast.matrix, lfc=log2(2))
tab2 <- topTags(tr,n=Inf, adjust.method = "BH")
keep <- tab2$table$FDR <= 0.05
          LogFC Unshrunk.logFC  logCPM   PValue       FDR
RMRP 2.802567464 2.802628518 11.43969321 1.94E-06 2.07E-05

For Fold change > 5 and FDR < 0.05

tr <- glmTreat(fit, contrast=contrast.matrix, lfc=log2(5))
tab2 <- topTags(tr,n=Inf, adjust.method = "BH")
keep <- tab2$table$FDR <= 0.05
          LogFC Unshrunk.logFC  logCPM   PValue       FDR
RMRP 2.802567464 2.802628518 11.43969321 0.05563776 0.9930597

But with Fold change > 5 and FDR < 0.05 I did not find this gene differentially expressed. 

Similarly in other analysis between C & D

with Fold change > 2 and FDR < 0.05

       LogFC    Unshrunk.logFC  logCPM     PValue     FDR
RMRP 9.269439542 9.275584319 12.44069535 1.73E-28 1.48E-26

with Fold change > 5 and FDR < 0.05

        LogFC    Unshrunk.logFC  logCPM     PValue     FDR
RMRP 9.269439542 9.275584319 12.44069535 1.77E-24 8.20E-22

My question why in the analysis between A & B with Foldchange > 5 I didn't find that gene differentially expressed?

In the analysis between C & D, with Fold change > 2 and Fold Change > 5 I see the "RMRP" gene showing similar values but PValue and FDR is changing. Does FDR value change based on Fold change cutoff?

edgeR r bioconductor diffferential expression fdr • 2.1k views
ADD COMMENT
0
Entering edit mode

Read the posting guide and provide some code, namely your glmTreat calls.

ADD REPLY
0
Entering edit mode

yes, I gave the code and made necessary changes in my question.

ADD REPLY
3
Entering edit mode
@james-w-macdonald-5106
Last seen 13 minutes ago
United States

You are getting confused as to what glmTreat is intended to do. When you do a statistical test, you are testing for evidence that the difference between the populations being compared is greater than a particular threshold. To do so, you take some samples from the populations you care about and do a test. When you do that test, you generate sample estimates (like the logFC that you present). There is a critical difference here, so let me repeat; you take samples of a population in order to say something about the population. But the estimates from the samples are just that - estimates of the population parameter you care about - rather than being the population parameters themselves.

When you do a test using glmTreat, saying you want a logFC > 1, you aren't saying that you want a sample logFC > 1, you are saying that you want to test for evidence that the population logFC is > 1. Since there is error involved in taking a sample, you always need a larger sample logFC to provide evidence for a given population logFC, and the higher the variability for your sample, the larger the sample logFC you need.

So yes, when you change the lfc argument, the underlying p-values will change as well, and since FDR is estimated using the p-values, that changes too. If it didn't, what would be the point of having the lfc argument?

 

ADD COMMENT
0
Entering edit mode

This is very helpful. Thank you for the answer.

ADD REPLY

Login before adding your answer.

Traffic: 879 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6