\HeaderA{Cdf-class}{Class Cdf}{Cdf.Rdash.class}
\aliasA{atom}{Cdf-class}{atom}
\aliasA{atom,Cdf-method}{Cdf-class}{atom,Cdf.Rdash.method}
\aliasA{atom<\Rdash}{Cdf-class}{atom<.Rdash.}
\aliasA{atom<-,Cdf-method}{Cdf-class}{atom<.Rdash.,Cdf.Rdash.method}
\aliasA{name.levels}{Cdf-class}{name.levels}
\aliasA{name.levels,Cdf-method}{Cdf-class}{name.levels,Cdf.Rdash.method}
\aliasA{name.levels<\Rdash}{Cdf-class}{name.levels<.Rdash.}
\aliasA{name.levels<-,Cdf-method}{Cdf-class}{name.levels<.Rdash.,Cdf.Rdash.method}
\aliasA{pbase}{Cdf-class}{pbase}
\aliasA{pbase,Cdf-method}{Cdf-class}{pbase,Cdf.Rdash.method}
\aliasA{pbase.levels}{Cdf-class}{pbase.levels}
\aliasA{pbase.levels,Cdf-method}{Cdf-class}{pbase.levels,Cdf.Rdash.method}
\aliasA{pbase.levels<\Rdash}{Cdf-class}{pbase.levels<.Rdash.}
\aliasA{pbase.levels<-,Cdf-method}{Cdf-class}{pbase.levels<.Rdash.,Cdf.Rdash.method}
\aliasA{pbase<\Rdash}{Cdf-class}{pbase<.Rdash.}
\aliasA{pbase<-,Cdf-method}{Cdf-class}{pbase<.Rdash.,Cdf.Rdash.method}
\aliasA{show,Cdf-method}{Cdf-class}{show,Cdf.Rdash.method}
\aliasA{tbase}{Cdf-class}{tbase}
\aliasA{tbase,Cdf-method}{Cdf-class}{tbase,Cdf.Rdash.method}
\aliasA{tbase.levels}{Cdf-class}{tbase.levels}
\aliasA{tbase.levels,Cdf-method}{Cdf-class}{tbase.levels,Cdf.Rdash.method}
\aliasA{tbase.levels<\Rdash}{Cdf-class}{tbase.levels<.Rdash.}
\aliasA{tbase.levels<-,Cdf-method}{Cdf-class}{tbase.levels<.Rdash.,Cdf.Rdash.method}
\aliasA{tbase<\Rdash}{Cdf-class}{tbase<.Rdash.}
\aliasA{tbase<-,Cdf-method}{Cdf-class}{tbase<.Rdash.,Cdf.Rdash.method}
\keyword{methods}{Cdf-class}
\begin{Description}\relax
A class describing the content a Chip Description File.
\end{Description}
\begin{Details}\relax
The class \code{Cdf} was designed to store the content of Affymetrix's
Chip Definition Files (CDF). This early class is no longer widely used
in the package affy. Environments (called \code{cdfenvs}) are
preferred to have an efficient mapping between probe set identifiers
and indexes (needed to access/subset particular probe intensities).
Unless one needs to access every information contained in a
CDF file, the \code{cdfenvs} will be preferred.

The following comments are only relevant to someone with interest in
what is in a CDF file.
The name associated
to each probe is not unique, it corresponds to the gene name. It is
very common to have a name repeated 40 times (20 perfect matches and 20
mismatches). Probes can be grouped by pairs: a perfect
match (PM) probe has its mismatch (MM) counterpart. The two probes in a
pair differ by one base (usually located in the middle of the
sequence). The information relative to this particular base are stored
in \code{pbase} and \code{tbase}. At a given position (x,y), having
pbase[x,y] == tbase[x,y] means having a MM while having pbase[x,y] !=
tbase[x,y] means having a perfect mismatch if and only if one of the
bases is A while the other is TRUE, or one is G and the other is C. The
function 
\code{\LinkA{pmormm}{pmormm}} returns \code{TRUE} for PMs and \code{FALSE} for
MMs.

To know more about the file structure of a CDF file, one has to refer
to the parsing code (mostly in C).
\end{Details}
\begin{Section}{Creating Objects}
\code{  new('Cdf',}\\
\code{    cdfName      = ...., \# Object of class character}\\
\code{    name         = ...., \# Object of class matrix}\\
\code{    name.levels  = ...., \# Object of class character}\\
\code{    pbase        = ...., \# Object of class matrix}\\
\code{    pbase.levels = ...., \# Object of class character}\\
\code{    tbase        = ...., \# Object of class matrix}\\
\code{    tbase.levels = ...., \# Object of class character}\\
\code{    atom         = ...., \# Object of class matrix}\\
\code{  )}
\end{Section}
\begin{Section}{Slots}
\describe{
\item[\code{cdfName}:] the CDF name tag. Used to link with the right
CEL files
\item[\code{name}:] Object of class "matrix" of 'factors' for the gene names corresponding to the probes.
\item[\code{name.levels}:] Object of class "character" containing
the levels corresponding to \code{name}. 
\item[\code{pbase}:] Object of class "matrix" of pbase levels.
\item[\code{pbase.levels}:] Object of class "character"  containing
the levels corresponding to \code{pbase}. 
\item[\code{tbase}:] Object of class "matrix" of tbase levels.
\item[\code{tbase.levels}:] Object of class "character" containing
the levels corresponding to \code{tbase}.  
\item[\code{atom}:] Object of class "matrix" of atom or probe numbers.
}
\end{Section}
\begin{Section}{Methods}
\describe{
\item[atom] (Cdf): An accesor function for the
\code{ato,} slot. 
\item[atom\textless{}-] (Cdf):  A replacement function for
\code{atom} slot. 
\item[name.levels] (Cdf):  An accesor function for the
\code{name.levels} slot. 
\item[name.levels\textless{}-] (Cdf): A replacement function for
\code{name.levels} slot. 
\item[pbase] (Cdf):  An accesor function for the
\code{pbase} slot. 

\item[pbase\textless{}-] (Cdf): A replacement function for
\code{pbase} slot. 
\item[pbase.levels] (Cdf):  An accesor function for the
\code{pbase.levels} slot. 
\item[pbase.levels\textless{}-] (Cdf): A replacement function for
\code{pbase.levels} slot. 
\item[show] (Cdf):  renders information about the \code{Cdf}
object in a concise way on stdout. 
\item[tbase] (Cdf):  An accesor function for the
\code{tbase} slot. 
\item[tbase\textless{}-] (Cdf): A replacement function for
\code{tbase} slot. 
\item[tbase.levels] (Cdf):  An accesor function for the
\code{tbase.levels} slot. 
\item[tbase.levels\textless{}-] (Cdf): A replacement function for
\code{tbase.levels} slot. 
}
\end{Section}
\begin{Author}\relax
L. Gautier \textless{}laurent@cbs.dtu.dk\textgreater{}
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{read.cdffile}{read.cdffile}},
\code{\LinkA{make.cdf.env}{make.cdf.env}},
\code{\LinkA{make.cdf.package}{make.cdf.package}}
\end{SeeAlso}

