edgeR: how to calculate group average/means ?
I am trying edgeR now to find deferentially expressed genes.
I have run d < DGEList(counts=data,group=g,lib.size=libSizes) d < calcNormFactors(d) d < estimateCommonDisp(d) d < estimateTagwiseDisp(d) d < exactTest(d) # d.final < topTags(de.com,n = length(data[,1])) and got some results like logFC logCPM PValue A1bg 1.168034660 3.842894 0.4137326 A1cf 0.000000000 Inf 1.0000000 A1i3 0.000000000 Inf 1.0000000 A2m 0.003703085 4.419204 0.9421192 A3galt2 0.437990409 2.861665 0.2611483 But I'd like to know the average/mean of the gene expressions in each condition/groups? It seems logFC it is different from "log2(rowMeans(GrpB)/ rowMeans(GrpA))" calculating from cpm() counts. How should I do the calculation ? Thanks! 
Have you found the answer? I am also curious. Thank you!

Do you need CPM per each sample after TMM normalization?
you could do something like this cpm < cpm(d, log=TRUE, lib.sizes=lib.sizes, normalized.lib.sizes = TRUE, prior.count=0.25) if your cpm values are negative then you can set the prior.count to a different value 
Thank you! But we meant mean values for each group/condition.

Manual Calc option
So, I know it isn't ideal, but let's take the actual values of log(CPM) and log(FC) that you have from edgeR. Keep in mind this will only work if your replicates of experimental and control were equal, but you could tweak it as needed. Might be worth double checking that logCPM is using base 2 which I believe is default.
Using "A" to be the average expression of your experimental condition and "B" to be your control as you've run it. FC=A/B, so 2^log(FC) will get you (A/B) CPM=(A+B)/2, so 2^log(CPM)=(A+B)/2 Basic algebra solves for B, B=2(2^log(CPM))/(1+2^(log(FC))) and then A= 2(2^log(CPM))  B Using the values of a typical EdgeR, this is minimal R work to generate the columns you wanted. Hope this helps! 
All times are GMT 8. The time now is 11:54 PM. 
Powered by vBulletin® Version 3.8.9
Copyright ©2000  2020, vBulletin Solutions, Inc.