-   -   edgeR: fold change reported by exactTest for zero values of rna-seq (http://seqanswers.com/forums/showthread.php?t=40448)

 feralBiologist 01-31-2014 05:13 AM

edgeR: fold change reported by exactTest for zero values of rna-seq

I have used the exact test in edgeR to compute the log fold changes. Here is the snippet:

Code:

d <- DGEList(counts=counts, group=samples\$Condition)
d <- calcNormFactors(d)
d <- estimateCommonDisp(d)
d <- estimateTagwiseDisp(d)
de <- exactTest(d)

I've noticed that some genes have zero expression in all samples belonging to one of the two conditions. This would make the fold change mathematically undefined (division by zero). Yet the FC is reported as being ~2^-9. My question is - how does edgeR come up with this value? I've checked both the manual and the reference guide but couldn't figure out. There are various functions that accept pseudocounts as parameters but I have entered none in my snippet. So how does edgeR make up for the zero values in this particular case (which seems to be the default usage of the exactTest)?

 rskr 01-31-2014 06:33 AM

Good numerical analysts and mathematicians do delta epsilon proofs to figure out what a mathematically undefined quantity should be in specific cases to provide continuity, then redefine the definition in a specific instance. For example a correlation between two sets with zero variance, isn't defined, division by zero, but it's pretty obvious that a value of 1.0 or perfect correlation makes the most sense when doing hierarchical clustering.

A more general issue is that using fold changes is likely to amplify noise.

 feralBiologist 01-31-2014 08:35 AM

Thanks, rskr.

After closer inspection, exactTest seems to be using predFC function which, by default, adds a pseudocount of 0.125 to all observations. This seems to answer it. It would be, perhaps, more transparent to have this as a parameter in exactTest itself but once you dig in the documentation it becomes clear anyway.

 All times are GMT -8. The time now is 08:40 AM.