# Functions for single-colour microarray data normalization using the P-splines

### Description

Modified version of normalize.loess and normalize.AffyBatch.pspline from the affy package uses the P-spline smoother in stead of the loess algorithm

### Usage

1 2 3 4 |

### Arguments

`mat` |
a matrix with columns containing the values of the chips to normalize. |

`abatch` |
an |

`epsilon` |
a tolerance value (supposed to be a small value - used as a stopping criterion). |

`maxit` |
maximum number of iterations. |

`log.it` |
logical. If |

`verbose` |
logical. If |

`weights` |
For weighted normalization. The default is NULL, so there are no weights used. |

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

`...` |
Graphical parameters can be supplied. |

### Details

This function is a modified version of the function `normalize.loess`

from the affy package. In stead of the loess algorithm the function uses the P-spline algorithm.
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

Normalized `AffyBatch`

### Author(s)

Maarten van Iterson and Chantal van Leeuwen

### References

Laurent Gautier, Leslie Cope, Benjamin M. Bolstad and Rafael A. Irizarry (2004). affy -analysis of Affymetrix GeneChip data at the probe level. Bioinformatics, Vol. 20, no. 3, 307-315.

van Iterson M, Duijkers FA, Meijerink JP, Admiraal P, van Ommen GJ, Boer JM, van Noesel MM, Menezes RX (2012). A novel and fast normalization method for high-density arrays. SAGMB, 11(4).

Paul .H.C. Eilers and Brain D. Marx (1996). Flexible smoothing with B-splines and Penalties. Statistical Science, Vol 11, No. 2, 89-121.

### See Also

`normalize.loess`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ```
library(affydata)
data(Dilution)
PM <- log2(pm(Dilution[,c(1,3)]))
M <- PM[,1]-PM[,2]
A <- 0.5*(PM[,1]+PM[,2])
nPM <- log2(normalize.pspline(pm(Dilution[,c(1,3)])))
nM <- nPM[,1]-nPM[,2]
nA <- 0.5*(nPM[,1]+nPM[,2])
par(mfcol=c(2,1))
plot(M~A)
plot(nM~nA)
norm <- normalize.AffyBatch.pspline(Dilution, type="pmonly")
weights <- rep(1, nrow(exprs(Dilution)))
normw <- normalize.AffyBatch.pspline(Dilution, type="pmonly", weights=weights)
``` |