[BioC] limma: normalizeWithinArrays using composite method

Gordon Smyth smyth at wehi.edu.au
Fri Aug 22 16:09:47 MEST 2003


At 12:04 PM 22/08/2003, paul.boutros at utoronto.ca wrote:
>Hello,
>
>One question about normalizeWithinArrays(method="composite") function.  I am
>getting an error with this method indicating I'm passing invalid values.  The
>error and traceback are below.
>
>The function predLoess seems to be in modreg, but I couldn't find much detail
>on it.  I'm not sure if this is aproblem with passing in values where R - 
>Rb <
>0

No, I suspect that the problem is with R-Rb=0 rather than with R-Rb<0. 
Missing values (NA) are removed by loess but infinities (-Inf) are not.

I already do a check for -Inf with ordinary loess normalization, but not 
with composite. I will add in some sort of check for composite 
normalization as well. In the meantime with your data, just make the 
-infinities missing or else make sure there are no R-Rb or G-Gb=0.

Cheers
Gordon

>  (which is the case for some of my data, and which I could filter out), 
> or if
>there is some way to handle this?  Any suggestions much appreciated.
>
>R      1.7.1
>limma  1.1.10
>OS     WinXP
>
>Paul
>
>### BEGIN SCREEN DUMP
> > MA.within   <- normalizeWithinArrays(RG, layout, method="composite");
>Error in predLoess(object$y, object$x, newx, object$s, object$weights,  :
>         NA/NaN/Inf in foreign function call (arg 3)
>Execution halted
>
> > traceback();
>5: predLoess(object$y, object$x, newx, object$s, object$weights,
>        object$pars$robust, object$pars$span, object$pars$degree,
>        object$pars$normalize, object$pars$parametric, 
> object$pars$drop.square,
>        object$pars$surface, object$pars$cell, object$pars$family,
>        object$kd, object$divisor, se = se)
>4: predict.loess(fit, newdata = x)
>3: predict(fit, newdata = x)
>2: switch(method, loess = {
>        for (j in 1:narrays) {
>            y <- object$M[, j]
>            x <- object$A[, j]
>            w <- weights[, j]
>            object$M[, j] <- loessFit(y, x, w, span = span, iterations =
>iterations)$residuals
>        }
>    }, printtiploess = {
>        if (is.null(layout))
>            stop("Layout argument not specified")
>        ngr <- layout$ngrid.r
>        ngc <- layout$ngrid.c
>        nspots <- layout$nspot.r * layout$nspot.c
>        for (j in 1:narrays) {
>            spots <- 1:nspots
>            for (gridr in 1:ngr) for (gridc in 1:ngc) {
>                y <- object$M[spots, j]
>                x <- object$A[spots, j]
>                w <- weights[spots, j]
>                object$M[spots, j] <- loessFit(y, x, w, span = span,
>                    iterations = iterations)$residuals
>                spots <- spots + nspots
>            }
>        }
>    }, composite = {
>        if (is.null(layout))
>            stop("Layout argument not specified")
>        ntips <- layout$ngrid.r * layout$ngrid.c
>        nspots <- layout$nspot.r * layout$nspot.c
>        for (j in 1:narrays) {
>            y <- object$M[, j]
>            x <- object$A[, j]
>            w <- weights[, j]
>            fit <- loess(y ~ x, weights = w, span = span, subset = 
> controlspots,
>                na.action = na.exclude, degree = 0, surface = "direct",
>                family = "symmetric", trace.hat = "approximate",
>                iterations = iterations)
>            global <- predict(fit, newdata = x)
>            alpha <- (rank(x) - 1)/sum(!is.na(x))
>            spots <- 1:nspots
>            for (tip in 1:ntips) {
>                y <- object$M[spots, j]
>                x <- object$A[spots, j]
>                w <- weights[spots, j]
>                local <- loessFit(y, x, w, span = span, iterations = 
> iterations)
>$fitted
>                object$M[spots, j] <- object$M[spots, j] - alpha[spots] *
>                    global[spots] - (1 - alpha[spots]) * local
>                spots <- spots + nspots
>            }
>        }
>    }, robustspline = {
>        if (is.null(layout))
>            stop("Layout argument not specified")
>        for (j in 1:narrays) object$M[, j] <- 
> normalizeRobustSpline(object$M[,
>            j], object$A[, j], layout, df = df, method = robust)
>    })
>1: normalizeWithinArrays(RG, layout, method = "composite")
>### END SCREEN DUMP
>
>_______________________________________________
>Bioconductor mailing list
>Bioconductor at stat.math.ethz.ch
>https://www.stat.math.ethz.ch/mailman/listinfo/bioconductor



More information about the Bioconductor mailing list