[BioC] edgeR Quasi-likelihood with tagwise dispersion?

Ryan C. Thompson rct at thompsonclan.org
Tue Mar 19 05:00:22 CET 2013

Ok, so the proper calling sequence would, in general, be something like 

dge <- DGEList(...)
dge <- calcNormFactors(dge)
dge <- estimateGLMCommonDisp(dge, design)
dge <- estimateGLMTrendedDisp(dge, design)
qlft <- glmQLFTest(dge, design, coef=...)

On 03/18/2013 07:42 PM, Gordon K Smyth wrote:
> Dear Ryan,
> Yes, glmQLFTest() can be substituted for glmLRT() in an edgeR analysis 
> pipeline, but it assumes that trended not tagwise dispersion has been 
> estimated.  This is explained in the published paper Lund et al (2012).
> There has been no detailed description of the usage of glmQLFTest() in 
> the edgeR document so far, but there will be before the next release 
> in a few weeks' time.
> Yes, glmQLFtest() does its own tagwise dispersion moderation. This is 
> the reason for the function.  glmQLFTest() actually does its own 
> trending as well, so that it is quite robust to the NB dispersions 
> that it gets as input.  The help page says:
> "[glmQLFTest] calls the limma function squeezeVar to conduct empirical 
> Bayes smoothing of the genewise multiplicative dispersions."
> I don't think that you will get meaningfull results from inputing 
> tagwise dispersions into glmQLTest(), i.e., it doesn't make sense to 
> re-shrink values that are already shrunk.
> Because of the possible misunderstanding, glmQLFTest() now has a new 
> calling sequence, so that it can stand alone from glmFit(). This 
> permits the function to ensure that it gets the correct NB dispersion 
> estimates.
> Best wishes
> Gordon
> ---------------------------------------------
> Professor Gordon K Smyth,
> Bioinformatics Division,
> Walter and Eliza Hall Institute of Medical Research,
> 1G Royal Parade, Parkville, Vic 3052, Australia.
> http://www.statsci.org/smyth
> On Mon, 18 Mar 2013, Ryan C. Thompson wrote:
>> Hi Gordon,
>> I was looking in the devel code for edgeR and I noticed this new 
>> check in glmQLFTest:
>>> if(!is.null(disptype)) if(disptype=="tagwise") stop("glmfit should be
>> computed using trended dispersions, not tagwise")
>> which refuses to run the quasi-likelihood F-test on a fit for tagwise 
>> dispersion. Could you elaborate on this? Does glmQLFTest implement 
>> its own different kind of tagwise behavior that is different from 
>> that of estimateGLMTagwiseDisp?
>> What would happen if I ran glmQLFTest after estimateGLMTagwiseDisp 
>> (using the release version, which does not disallow it)? Would the 
>> results be statistically meaningful? I have been doing this sometimes 
>> because I assumed that glmQLFTest was supposed to be a "drop-in" 
>> replacement for glmLRT, using all the same dispersions and such, due 
>> to this quote from the glmQLFTest help text in the current release of 
>> edgeR:
>>> [glmQLFTest] behaves the same as ‘glmLRT’ except that it replaces
>> likelihood ratio tests with quasi-likelihood F-tests for coefficients 
>> in the linear model.
>> So, what is the correct usage of glmQLFTest with the estimate*Disp 
>> family, and has this changed between the current release and devel 
>> versions of edgeR?
>> Thanks,
>> -Ryan Thompson
> ______________________________________________________________________
> The information in this email is confidential and inte...{{dropped:6}}

More information about the Bioconductor mailing list