# normalizeDifferencesToAverage: Rescales channel vectors to get the same average In aroma.light: Light-Weight Methods for Normalization and Visualization of Microarray Data using Only Basic R Data Types

## Description

Rescales channel vectors to get the same average.

## Usage

 ```1 2``` ```## S3 method for class 'list' normalizeDifferencesToAverage(x, baseline=1, FUN=median, ...) ```

## Arguments

 `x` A `numeric` `list` of length K. `baseline` An `integer` in [1,K] specifying which channel should be the baseline. The baseline channel will be almost unchanged. If `NULL`, the channels will be shifted towards median of them all. `FUN` A `function` for calculating the average of one channel. `...` Additional arguments passed to the `avg` `function`.

## Value

Returns a normalized `list` of length K.

Henrik Bengtsson

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34``` ```# Simulate three shifted tracks of different lengths with same profiles ns <- c(A=2, B=1, C=0.25)*1000 xx <- lapply(ns, FUN=function(n) { seq(from=1, to=max(ns), length.out=n) }) zz <- mapply(seq_along(ns), ns, FUN=function(z,n) rep(z,n)) yy <- list( A = rnorm(ns["A"], mean=0, sd=0.5), B = rnorm(ns["B"], mean=5, sd=0.4), C = rnorm(ns["C"], mean=-5, sd=1.1) ) yy <- lapply(yy, FUN=function(y) { n <- length(y) y[1:(n/2)] <- y[1:(n/2)] + 2 y[1:(n/4)] <- y[1:(n/4)] - 4 y }) # Shift all tracks toward the first track yyN <- normalizeDifferencesToAverage(yy, baseline=1) # The baseline channel is not changed stopifnot(identical(yy[[1]], yyN[[1]])) # Get the estimated parameters fit <- attr(yyN, "fit") # Plot the tracks layout(matrix(1:2, ncol=1)) x <- unlist(xx) col <- unlist(zz) y <- unlist(yy) yN <- unlist(yyN) plot(x, y, col=col, ylim=c(-10,10)) plot(x, yN, col=col, ylim=c(-10,10)) ```

aroma.light documentation built on May 2, 2018, 2:52 a.m.