\HeaderA{read.affybatch}{Read CEL files into an AffyBatch}{read.affybatch}
\aliasA{AllButCelsForReadAffy}{read.affybatch}{AllButCelsForReadAffy}
\aliasA{ReadAffy}{read.affybatch}{ReadAffy}
\keyword{manip}{read.affybatch}
\begin{Description}\relax
Read CEL files into an Affybatch
\end{Description}
\begin{Usage}
\begin{verbatim}
read.affybatch(..., filenames = character(0),
               phenoData = new("phenoData"),
               description = NULL,
               notes = "",
               compress = getOption("BioC")$affy$compress.cel,
               rm.mask = FALSE, rm.outliers = FALSE, rm.extra = FALSE,
               verbose = FALSE,sd=FALSE, cdfname = NULL)

ReadAffy(..., filenames=character(0),
              widget=getOption("BioC")$affy$use.widgets,
              compress=getOption("BioC")$affy$compress.cel,
              celfile.path=NULL,
              sampleNames=NULL,
              phenoData=NULL,
              description=NULL,
              notes="",
              rm.mask=FALSE, rm.outliers=FALSE, rm.extra=FALSE,
              verbose=FALSE,sd=FALSE, cdfname = NULL)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{...}] file names separated by comma.
\item[\code{filenames}] file names in a character vector.
\item[\code{phenoData}] a \code{\LinkA{phenoData}{phenoData}} object
\item[\code{description}] a \code{\LinkA{MIAME}{MIAME}} object 
\item[\code{notes}] notes 
\item[\code{compress}] are the CEL files compressed ?
\item[\code{rm.mask}] should the spots marked as 'MASKS' set to \code{NA} ? 
\item[\code{rm.outliers}] should the spots marked as 'OUTLIERS' set to \code{NA} 
\item[\code{rm.extra}] if \code{TRUE}, overrides what is in \code{rm.mask} and \code{rm.oultiers} 
\item[\code{verbose}] verbosity flag 
\item[\code{widget}] a logical specifying if widgets should be used.
\item[\code{celfile.path}] a character denoting the path \code{ReadAffy}
should look for cel files
\item[\code{sampleNames}] a character vector of sample names to be used in
the \code{AffyBatch}
\item[\code{sd}] should the standard deviation values in the CEL file be read
in. Since these are typically not used default is not to read them
in. This also save lots of memory.
\item[\code{cdfname}] Used to specify the name of an alternative cdf package. If set to
\code{NULL}, the usual cdf package based on Affymetrix' mappings
will be used.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
\code{ReadAffy} is a wrapper for \code{read.affybatch} that permits the
user to read in phenoData, MIAME information, and CEL files using
widgets. One can also define files where to read phenoData and MIAME
information.

If the function is called with no arguments \code{ReadAffy()} all the CEL
files in the working directory are read and put into an
\code{AffyBatch}.
However, the arguments give the user great flexibility.

\code{phenoData} is read using \code{\LinkA{read.phenoData}{read.phenoData}}. If a
character is given it tries to read the file with that name
to obtain the phenoData
object as described in \code{\LinkA{read.phenoData}{read.phenoData}}. If left
\code{NULL} but \code{widget=TRUE} then widgets are used. If left
\code{NULL} and \code{widget=FALSE} then a default object is created.
It will be a data.frame with
\code{new("phenoData",pData=data.frame(x=1:length(CELfiles)),varLabels=list(x="arbitrary number"))}


\code{AllButCelsForReadAffy} is an internal function that gets called
by \code{ReadAffy}. It gets all the information except the cel intensities.


\code{description} is read using \code{\LinkA{read.MIAME}{read.MIAME}}. If a
character is given it tries to read the file with that name to obtain a
\code{MIAME} instance. If left
\code{NULL} but \code{widget=TRUE} then widgets are used. If left
\code{NULL} and \code{widget=FALSE} then an empty instance of
\code{MIAME} is created..
\end{Details}
\begin{Value}
An \code{AffyBatch} object.
\end{Value}
\begin{Author}\relax
Ben Bolstad \email{bmb@bmbolstad.com} (read.affybatch),
Laurent Gautier,
and Rafael A. Irizarry (ReadAffy)
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{AffyBatch}{AffyBatch}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
if(require(affydata)){
     celpath <- paste(.path.package("affydata"),"celfiles",sep="/")
     fns <- list.celfiles(path=celpath,full.names=TRUE)
 
     cat("Reading files:\n",paste(fns,collapse="\n"),"\n")
     ##read a binary celfile
     abatch <- ReadAffy(filenames=fns[1])
     ##read a text celfile
     abatch <- ReadAffy(filenames=fns[2])
     ##read all files in that dir
     abatch <- ReadAffy(celfile.path=celpath)
}
\end{ExampleCode}
\end{Examples}

