[BioC] tagwise parameters for negative binomial distribution in edgeR

Mark Robinson mark.robinson at imls.uzh.ch
Thu Mar 20 14:58:05 CET 2014

Hi Davide,

Just to add another option, there is also estimateGLMRobustDisp(), which is a wrapper for an iteratively re-weighted scheme that down weights outliers -- effectively using a constant prior degrees of freedom.  This was developed independently of estimateDisp() from a different perspective.  But, what this gives is a matrix of weights (so, one for each observation, not just for each tag) where identified outliers should exhibit lower weights.  So, you could use this to identify outliers observation-wise or tag-wise (e.g. take column sum of weights).  You'd want >= 3 replicates per condition for this one though.

In code, you could do something like:

d <- estimateGLMRobustDisp(d, design)

More details can be found at:


(in particular, Supplementary Figure 8, which shows ROC curves for ability to separate [simulated] outliers by weights/residuals and yet another option is DESeq2's Cook's [observation-wise or max-by-tag] distance; we don't have a curve for estimateDisp!)

Best regards, Mark

Prof. Dr. Mark Robinson
Bioinformatics, Institute of Molecular Life Sciences
University of Zurich

On 20.03.2014, at 01:04, Gordon K Smyth <smyth at wehi.edu.au> wrote:

> Dear Davide,
> Do you want to identify tags (genes) with dispersion values that are so high (relative to other genes with similar count sizes) that they should be considered outliers?
> The easiest way to do this is to use
>  d <- estimateDisp(d, design, robust=TRUE)
> and then look at the output values for prior.df:
>  summary(d$prior.df)
> Any tag with a small prior.df is considered an outlier.  You can sort tags by their prior.df values to select the most significant outliers.
> Note that the methodology used by the estimateDisp() robust procedure is more complicated than simply using NB probabilities, because one has to take into acccount the genome-wide distribution of the dispersion values as well as accounting for the fact that the fitted values (p) have been estimated from the same data.  The methodology is mostly explained in:
> http://www.statsci.org/smyth/pubs/edgeRChapterPreprint.pdf
> http://www.statsci.org/smyth/pubs/RobustEBayesPreprint.pdf
> Best wishes
> Gordon
>> From: Davide Cittaro <cittaro.davide at hsr.it>
>> To: "bioconductor at r-project.org list" <bioconductor at r-project.org>
>> Subject: [BioC] tagwise parameters for negative binomial distribution
>> 	in	edgeR
>> Dear list,
>> I have a DGElist object in edgeR, already processed with calcNormFactors, estimateCommonDispersion and estimateTagWiseDispersion. Now, I would like to identify tagwise outliers in my data, I thought I could estimate NB distribution for each tag. Given that a NB is defined by two parameters (r and p), I assume that r = 1/x$tagwise.dispersion, how can I get tagwise p from DGEList dataframe?
>> Thanks
>> d
> ______________________________________________________________________
> The information in this email is confidential and intend...{{dropped:4}}
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at r-project.org
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor

More information about the Bioconductor mailing list