Modified version of normalize.loess and normalize.AffyBatch.pspline from the affy package uses the Pspline smoother in stead of the loess algorithm
1 2 3 4 
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. 
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 Pspline 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.
Normalized AffyBatch
Maarten van Iterson and Chantal van Leeuwen
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, 307315.
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 highdensity arrays. SAGMB, 11(4).
Paul .H.C. Eilers and Brain D. Marx (1996). Flexible smoothing with Bsplines and Penalties. Statistical Science, Vol 11, No. 2, 89121.
normalize.loess
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)

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
All documentation is copyright its authors; we didn't write any of that.