\HeaderA{readCdfCellIndices}{Reads cell indices of units (probesets) in an Affymetrix CDF file}{readCdfCellIndices}
\keyword{file}{readCdfCellIndices}
\keyword{IO}{readCdfCellIndices}
\begin{Description}\relax
Reads cell indices of units (probesets) in an Affymetrix CDF file.
\end{Description}
\begin{Usage}
\begin{verbatim}readCdfCellIndices(filename, units=NULL, stratifyBy=c("nothing", "pmmm", "pm", "mm"), verbose=0)\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{filename}] The filename of the CDF file.
\item[\code{units}] An \code{\LinkA{integer}{integer}} \code{\LinkA{vector}{vector}} of unit indices
specifying which units to be read.  If \code{\LinkA{NULL}{NULL}}, all units are read.
\item[\code{stratifyBy}] A \code{\LinkA{character}{character}} string specifying which and how
elements in group fields are returned.
If \code{"nothing"}, elements are returned as is, i.e. as \code{\LinkA{vector}{vector}}s.
If \code{"pm"}/\code{"mm"}, only elements corresponding to
perfect-match (PM) / mismatch (MM) probes are returned (as \code{\LinkA{vector}{vector}}s).
If \code{"pmmm"}, elements are returned as a matrix where the
first row holds elements corresponding to PM probes and the second
corresponding to MM probes.  Note that in this case, it is assumed
that there are equal number of PMs and MMs; if not, an error is
generated.
Moreover, the PMs and MMs may not even be paired, i.e. there is no
guarantee that the two elements in a column corresponds to a
PM-MM pair.
\item[\code{verbose}] An \code{\LinkA{integer}{integer}} specifying the verbose level. If 0, the
file is parsed quietly.  The higher numbers, the more details.
\end{ldescription}
\end{Arguments}
\begin{Value}
A named \code{\LinkA{list}{list}} where the names corresponds to the names
of the units read.  Each unit element of the list is in turn a
\code{\LinkA{list}{list}} structure with one element \code{groups} which in turn
is a \code{\LinkA{list}{list}}.  Each group element in \code{groups} is a \code{\LinkA{list}{list}}
with a single field named \code{indices}.  Thus, the structure is
\begin{alltt}
     cdf
      +- unit \#1
      |   +- "groups"
      |       +- group \#1
      |       |   +- "indices"
      |       |  group \#2
      |       |   +- "indices"
      |       .
      |       +- group \#K
      |           +- "indices"
      +- unit \#2
      .
      +- unit \#J
\end{alltt}

This is structure is compatible with what \code{\LinkA{readCdfUnits}{readCdfUnits}}() returns.
\end{Value}
\begin{Author}\relax
Henrik Bengtsson (\url{http://www.braju.com/R/})
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{readCdfUnits}{readCdfUnits}}().
\end{SeeAlso}

