\HeaderA{phenoData}{Class For Patient or Experiment Level Data}{phenoData}
\aliasA{\$,phenoData-method}{phenoData}{.Rdol.,phenoData.Rdash.method}
\aliasA{\$<-,phenoData-method}{phenoData}{.Rdol.<.Rdash.,phenoData.Rdash.method}
\aliasA{class:phenoData}{phenoData}{class:phenoData}
\aliasA{coerce,data.frame,phenoData-method}{phenoData}{coerce,data.frame,phenoData.Rdash.method}
\aliasA{combine,phenoData,ANY-method}{phenoData}{combine,phenoData,ANY.Rdash.method}
\aliasA{combine,phenoData,phenoData-method}{phenoData}{combine,phenoData,phenoData.Rdash.method}
\aliasA{convertVarLabels,phenoData-method}{phenoData}{convertVarLabels,phenoData.Rdash.method}
\aliasA{getVarMetadata}{phenoData}{getVarMetadata}
\aliasA{getVarMetadata,phenoData,character,character-method}{phenoData}{getVarMetadata,phenoData,character,character.Rdash.method}
\aliasA{getVarMetadata,phenoData,character,missing-method}{phenoData}{getVarMetadata,phenoData,character,missing.Rdash.method}
\aliasA{getVarMetadata<\Rdash}{phenoData}{getVarMetadata<.Rdash.}
\aliasA{initialize,phenoData-method}{phenoData}{initialize,phenoData.Rdash.method}
\aliasA{pData,phenoData-method}{phenoData}{pData,phenoData.Rdash.method}
\aliasA{pData<-,phenoData,ANY-method}{phenoData}{pData<.Rdash.,phenoData,ANY.Rdash.method}
\aliasA{phenoData-class}{phenoData}{phenoData.Rdash.class}
\aliasA{phenoData<-,annotatedDataset,phenoData-method}{phenoData}{phenoData<.Rdash.,annotatedDataset,phenoData.Rdash.method}
\aliasA{show,phenoData-method}{phenoData}{show,phenoData.Rdash.method}
\aliasA{split,phenoData,vector,missing-method}{phenoData}{split,phenoData,vector,missing.Rdash.method}
\aliasA{updateObject,phenoData-method}{phenoData}{updateObject,phenoData.Rdash.method}
\aliasA{varLabels,phenoData-method}{phenoData}{varLabels,phenoData.Rdash.method}
\aliasA{varMetadata,phenoData-method}{phenoData}{varMetadata,phenoData.Rdash.method}
\aliasA{[,phenoData-method}{phenoData}{[,phenoData.Rdash.method}
\aliasA{[[,phenoData-method}{phenoData}{[[,phenoData.Rdash.method}
\aliasA{[[<-,phenoData-method}{phenoData}{[[<.Rdash.,phenoData.Rdash.method}
\keyword{methods}{phenoData}
\keyword{manip}{phenoData}
\keyword{classes}{phenoData}
\begin{Description}\relax
The class consists of a \code{data.frame} and some
accompanying methods suited to handle patient level data for microarrays.
\end{Description}
\begin{Section}{Creating Objects}
\code{new('phenoData', pData = [data.frame], varLabels = [list], varMetadata = [data.frame])}
\end{Section}
\begin{Section}{Slots}
\describe{
\item[\code{pData}:] Object of class 'data.frame'. The data. 
\item[\code{varLabels}:] Object of class 'list'. Optional long labels for the different variables. 
\item[\code{varMetadata}:] Object of class 'data.frame'. A data frame with a column named varNames and arbitrarily many additional columns. 
}
\end{Section}
\begin{Section}{Methods}
Class-specific methods:
\describe{
\item[\code{combine(phenoData, phenoData)}] Combines several instances into a single 'phenoData' instance. See \code{\LinkA{combine}{combine}}
\item[\code{convertVarLabels(phenoData)}] Not documented
\item[\code{getVarMetadata(phenoData, character, character)} or \code{getVarMetadata(phenoData, character, missing)}] Not documented
\item[\code{pData(phenoData), pData(phenoData)<-}] Get/set methods for slot \code{pData}
\item[\code{phenoData(exprSet)<-}] A replacement method for the \code{phenoData} slot
\item[\code{split(phenoData, vector)}] FIXME: there is no implementation!!! A method to \code{split} \code{pData} and return a list of \code{phenoData} objects. Unlike \code{split} this function requires the number of rows of \code{pData} to be a multiple of the length of \code{vector}
\item[\code{varLabels(phenoData)}] A method to display the variable labels. 
\item[\code{varMetadata(phenoData)}] Not documented
}
Standard methods defined for 'phenoData':
\describe{
\item[\code{\$(name), \$(name, value)<-}] An old-style method to get and set. It is \code{pData(object)[[as.character(val)]]} which does not quite have the right semantics but it is close. This operator extracts the named component of the \code{pData} slot in \code{phenoData}.
\item[\code{[(phenoData)}] A subset operator
\item[\code{[[(phenoData), [[(phenoData)<-}] A get/set subset operator
\item[\code{show(phenoData)}] Displays the data in a readable manner
}
Functions defined in Biobase to operate with 'phenoData' instances include:
\describe{
\item[\code{updateObject(object, ..., verbose=FALSE)}] Update instance to current version, if necessary. See \code{\LinkA{updateObject}{updateObject}}
\item[\code{isCurrent(object)}] Determine whether version of object is current. See \code{\LinkA{isCurrent}{isCurrent}}
\item[\code{isVersioned(object)}] Determine whether object contains a 'version' string describing its structure . See \code{\LinkA{isVersioned}{isVersioned}}
\item[\code{df2pD(x, varLabels, varMetadata)}] Function to coerce from a \code{data.frame} to a \code{phenoData} object. Here \code{x} is the \code{data.frame} to be coerced; \code{varLabels} is a character describing each of the columns in \code{x} and \code{varMetadata} is a more extensive descriptions of the variables in \code{x}, including units of measurement etc
\item[\code{read.phenoData}] See help on \code{\LinkA{read.phenoData}{read.phenoData}}
}
\end{Section}
\begin{SeeAlso}\relax
\code{\LinkA{read.phenoData}{read.phenoData}}, \code{\LinkA{combine}{combine}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
data(sample.exprSet)
pes <- phenoData(sample.exprSet)
pes <- convertVarLabels(pes)
varMetadata(pes)

# example for 'df2pD'
data(cars)
d1 = df2pD(cars)

# update phenoData to current class description
updateObject(phenoData(sample.exprSet))

\end{ExampleCode}
\end{Examples}

