normalizeCyclicLoess(x, weights = NULL, span=0.7, iterations = 3, method = "fast")
"fast"
, "affy"
or "pairs"
.x
containing the normalized values.
A number of variants of cylic loess have been suggested.
method="pairs"
implements the intuitive idea that each pair of arrays is subjected to loess normalization as for two-color arrays.
This process is simply cycled through all possible pairs of arrays, then repeated for several iterations
.
This is the method described by Ballman et al (2004) as ordinary cyclic loess normalization.
method="affy"
implements a method similar to normalize.loess
in the affy package,
except that here we call lowess
instead of loess
and avoid the use of probe subsets and the predict
function.
In this approach, no array is modified until a complete cycle of all pairs has been completed.
The adjustments are stored for a complete iteration, then averaged, and finally used to modify the arrays.
The "affy"
method is invariant to the order of the columns of x
, whereas the "pairs"
method is not.
The affy approach is presumably that used by Bolstad et al (2003), although the algorithm was not explicitly described in that article.
method="fast"
implements the "fast linear loess" method of Ballman et al (2004), whereby each array is simply normalized to a reference array,
the reference array being the average of all the arrays.
This method is relatively fast because computational time is linear in the number of arrays, whereas "pairs"
and "affy"
are quadratic in the number of arrays.
"fast"
requires n lowess fits per iteration, where n is the number of arrays, whereas "pairs"
and "affy"
require n*(n-1)/2 lowess fits per iteration.
Ballman, KV Grill, DE, Oberg, AL and Therneau, TM (2004). Faster cyclic loess: normalizing RNA arrays via linear models. Bioinformatics 20, 2778-2786.
normalize.loess in the affy package also implements cyclic loess normalization, without weights.