# Normalize arrays

### Description

normalizes arrays in an AffyBatch each other or to a set of target intensities

### Usage

1 2 3 4 5 6 7 8 9 | ```
normalize.AffyBatch.qspline(abatch,type=c("together", "pmonly", "mmonly",
"separate"), ...)
normalize.qspline(x, target = NULL, samples = NULL,
fit.iters = 5, min.offset = 5,
spline.method = "natural", smooth = TRUE,
spar = 0, p.min = 0, p.max = 1.0,
incl.ends = TRUE, converge = FALSE,
verbose = TRUE, na.rm = FALSE)
``` |

### Arguments

`x` |
a |

`abatch` |
an |

`target` |
numerical vector of intensity values to normalize to. (could be the name for one of the celfiles in 'abatch'). |

`samples` |
numerical, the number of quantiles to be used for spline. if (0,1], then it is a sampling rate. |

`fit.iters` |
number of spline interpolations to average. |

`min.offset` |
minimum span between quantiles (rank difference) for the different fit iterations. |

`spline.method` |
specifies the type of spline to be used. Possible values are ‘"fmm"’, ‘"natural"’, and ‘"periodic"’. |

`smooth` |
logical, if ‘TRUE’, smoothing splines are used on the quantiles. |

`spar` |
smoothing parameter for ‘splinefun’, typically in (0,1]. |

`p.min` |
minimum percentile for the first quantile. |

`p.max` |
maximum percentile for the last quantile. |

`incl.ends` |
include the minimum and maximum values from the normalized and target arrays in the fit. |

`converge` |
(currently unimplemented) |

`verbose` |
logical, if ‘TRUE’ then normalization progress is reported. |

`na.rm` |
logical, if ‘TRUE’ then handle NA values (by ignoring them). |

`type` |
a string specifying how the normalization should be applied. See details for more. |

`...` |
optional parameters to be passed through. |

### Details

This normalization method uses the quantiles from each array and the
target to fit a system of cubic splines to normalize the data. The
target should be the mean (geometric) or median of each probe but could
also be the name of a particular chip in the `abatch`

object.

Parameters setting can be of much importance when using this method.
The parameter `fit.iter`

is used as a starting point to find a
more appropriate value. Unfortunately the algorithm used do not
converge in some cases. If this happens, the `fit.iter`

value is
used and a warning is thrown. Use of different settings for the
parameter `samples`

was reported to give good results. More
specifically, for about 200 data points use
`samples = 0.33`

, for about 2000 data points use
`samples = 0.05`

, for about 10000 data points use
`samples = 0.02`

(thanks to Paul Boutros).

The `type`

argument should be one of
`"separate","pmonly","mmonly","together"`

which indicates whether
to normalize only one probe type (PM,MM) or both together or separately.

### Value

a normalized `AffyBatch`

.

### Author(s)

Laurent and Workman C.

### References

Christopher Workman, Lars Juhl Jensen, Hanne Jarmer, Randy Berka, Laurent Gautier, Henrik Bjorn Nielsen, Hans-Henrik Saxild, Claus Nielsen, Soren Brunak, and Steen Knudsen. A new non-linear normal- ization method for reducing variability in dna microarray experiments. Genome Biology, accepted, 2002