[BioC] edgeR plotMDS.DGEList() use of normalized counts

Gordon K Smyth smyth at wehi.EDU.AU
Sun Nov 11 06:39:22 CET 2012


Dear Ted,

>From the code you give, you don't seem to be using the latest release of 
Bioconductor, which was released on 3 October 2012, see:

   http://www.bioconductor.org/news/bioc_2_11_release/

Type sessionInfo() to confirm what packages you are using.  The current 
version of edgeR is 3.0.3.

Nevertheless, I think your point is correct.  plotMDS.DGEList is using 
norm.factors in part of the code (when it calls estimateTagwiseDisp) but 
not everywhere.

I have committed a fix to edgeR today in edgeR 3.0.3 to make sure that 
plotMDS.DGEList consistently uses norm.factors.  To see the fix you will 
need to install edgeR from Bioc 2.11.  It may take a couple of days to 
become available.

Best wishes
Gordon

> Date: Fri,  9 Nov 2012 15:51:52 -0800 (PST)
> From: "Ted Toal [guest]" <guest at bioconductor.org>
> To: bioconductor at r-project.org, twtoal at ucdavis.edu
> Subject: [BioC] edgeR plotMDS.DGEList() use of normalized counts
>
>
> When an MDS plot is made using plotMDS.DGEList(), if the DGEList object 
> that is supplied as an argument contains normalization factors, are they 
> used to make the MDS plot?  I'm told that they are, and yet when I look 
> at the function code, it appears that unnormalized raw counts are being 
> internally normalized in the function without using the normalization 
> factors present in the DGEList object.  I'm pasting the relevant code 
> from plotMDS.DGEList() below.  I don't see any use of x$samples$lib.size 
> or x$samples$norm.factors, which contain the normalization factors, 
> within the function.
>
>
> -- output of sessionInfo():
>
>    subdata <- x$counts[o, ]
>    gm <- function(x) exp(mean(log(x)))
>    myFun <- function(delta, y, ...) colSums(condLogLikDerDelta(y,
>        delta, ...))
>    for (i in 2:(nsamples)) {
>        for (j in 1:(i - 1)) {
>            mm <- subdata[, c(i, j)]
>            rs5 <- rowSums(mm) > 5
>            norm <- t(t(mm)/colSums(mm)) * gm(colSums(mm))
>            delta <- optimize(myFun, interval = c(1e-04, 0.99),
>                tol = 1e-06, maximum = TRUE, y = norm[rs5, ],
>                der = 0, doSum = FALSE)
>            dd[i, j] = sqrt(delta$maximum/(1 - delta$maximum))
>        }
>    }
>
>

______________________________________________________________________
The information in this email is confidential and intend...{{dropped:4}}



More information about the Bioconductor mailing list