\HeaderA{spatialLayout}{Calculation of two dimensional coordinates}{spatialLayout}
\keyword{dplot}{spatialLayout}
\begin{Description}\relax
All \code{value}s are mapped on a matrix representing the
the spatial layout defined by the function arguments, mainly
by \code{row}, \code{column} and \code{block}. The result can be 
visualised with the function
\code{\LinkA{plot.imageMatrix}{plot.imageMatrix}}.
\end{Description}
\begin{Usage}
\begin{verbatim}spatialLayout(value, row, col, block, numberOfValues, nrOfBlocksPerRow = 4, mapping = 0, nrRow, nrCol)\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{value}] numeric vector; required; default: missing
\item[\code{row}] integer vector; required; default: missing
\item[\code{col}] integer vector; required; default: missing
\item[\code{block}] integer vector; required; default: missing
\item[\code{numberOfValues}] integer; optional; default: missing.
The argument \code{numberOfValues} may be used 
if not all values for all coordinates are
passed to the function. An additional consistency
check is offered.
\item[\code{nrOfBlocksPerRow}] integer; required; default: 4.
Useful if there is a block structured layout
with columns and rows assigned within each block
as common for microarrays. See examples for a
simple case with only one block.
\item[\code{mapping}] integer; either zero or one; default: zero,
Mapping toggles between counting blocks "by row" or "by column".
Zero corresponds to "ScanAlyze" and "GenePix", i.e. counting
blocks "by row".
\item[\code{nrRow}] integer; optional; default: missing.
The argument \code{nrRow} (number of rows per block) may be used to
supersede \code{max(row)} which is calculated automatically.
\item[\code{nrCol}] integer; optional; default: missing.
The argument \code{nrCol} (number of columns per block)  may be used to
supersede \code{max(col)} which is calculated automatically.
\end{ldescription}
\end{Arguments}
\begin{Value}
A matrix representing the spatial layout of all \code{value}s.
The matrix is labelled as class \code{imageMatrix} and \code{matrix}.
\end{Value}
\begin{Author}\relax
Andreas Buness <a.buness@dkfz.de>
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{plot.imageMatrix}{plot.imageMatrix}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}

 value <- rep(c(1,rep(0,49)),10)
 block <- as.integer(gl(10,50))
 col <- rep(c(1:10),50)
 row <- rep(as.integer(gl(5,10)),10)
 sL <- spatialLayout(value=value,row=row,col=col,block=block,nrOfBlocksPerRow=2)
 plot.imageMatrix(sL)
 value <- value[-(201:250)]
 block <- block[-(201:250)]
 col <- col[-(201:250)]
 row <- row[-(201:250)]
 sL <- spatialLayout(value=value,row=row,col=col,block=block,nrOfBlocksPerRow=2,numberOfValues=500)
 plot.imageMatrix(sL)

 value <- 1:200
 block <- rep(1, 200)
 col <- rep(1:20, 10)
 row <- as.integer(gl(10,20))
 sLOne <- spatialLayout(value=value,block=block,col=col,row=row,nrOfBlocksPerRow=1)
        \end{ExampleCode}
\end{Examples}

