\Header{normalizeRobustSpline}{Normalize Single Microarray Using Shrunk Robust Splines}
\keyword{models}{normalizeRobustSpline}
\begin{Description}\relax
Normalize the M-values for a single microarray using robustly fitted regression splines and empirical Bayes shrinkage.
\end{Description}
\begin{Usage}
\begin{verbatim}
normalizeRobustSpline(M,A,layout,df=5,method="M")
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{M}] numeric vector of M-values
\item[\code{A}] numeric vector of A-values
\item[\code{layout}] list specifying the dimensions of the spot matrix and the grid matrix
\item[\code{df}] degrees of freedom for regression spline, i.e., the number of regression coefficients and the number of knots
\item[\code{method}] choices are \code{"M"} for M-estimation or \code{"MM"} for high breakdown point regression
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
This function implements an idea similar to print-tip loess normalization but uses regression splines in place of the loess curves and uses empirical Bayes ideas to shrink the individual prtin-tip curves towards a common value.
This allows the technique to introduce less noise into good quality arrays with little spatial variation while still giving good results on arrays with strong spatial variation.
\end{Details}
\begin{Value}
Numeric vector containing normalized M-values.\end{Value}
\begin{Author}\relax
Gordon Smyth
\end{Author}
\begin{References}\relax
The function is based on unpublished work by the author.
\end{References}
\begin{SeeAlso}\relax
An overview of LIMMA functions for normalization is given in \link{4.Normalization}.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
library(sma)
data(MouseArray)
M <- m.spot(mouse1)
A <- a.spot(mouse1)
M <- normalizeRobustSpline(M,A,mouse.setup)
\end{ExampleCode}
\end{Examples}

