\HeaderA{cleancdfname}{Clean Affymetrix's CDF name}{cleancdfname}
\aliasA{mapCdfName}{cleancdfname}{mapCdfName}
\keyword{character}{cleancdfname}
\begin{Description}\relax
This function converts Affymetrix's names for CDF files to the names
used in the annotation pacakge and in all Bioconductor.
\end{Description}
\begin{Usage}
\begin{verbatim}
cleancdfname(cdfname, addcdf = TRUE)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{cdfname}] A \code{character} denoting Affymetrix'x CDF file name 
\item[\code{addcdf}] A \code{logical}. If \code{TRUE} it adds the string
"cdf" at the end of the cleaned CDF name. This is used to name the
\code{cdfenvs} packages.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
This function takes a CDF filename obtained from an Affymetrix file
(from a CEL file for example) and
convert it to a convention of ours: all small caps
and only alphanumeric characters. The details of the rule can be seen
in the code.
We observed exceptions that made us create a set of special cases for
mapping CEL to CDF. The object \code{mapCdfName} holds information
about these cases. It is a
\code{data.frame} of three elements: the 
first is the name as found in the CDF file, the second the name in the
CEL file and the third the name in bioconductor. \code{mapCdfName} can
bne loaded using \code{data(mapCdfName)}.
\end{Details}
\begin{Value}
A \code{character}
\end{Value}
\begin{Examples}
\begin{ExampleCode}
cdf.tags <- c("HG_U95Av2", "HG-133A")
for (i in cdf.tags)
  cat(i, "becomes", cleancdfname(i), "\n")
\end{ExampleCode}
\end{Examples}

