\HeaderA{alphabetFrequency}{Function to calculate the frequency of letters in a biological sequence}{alphabetFrequency}
\aliasA{alphabetFrequency,BString-method}{alphabetFrequency}{alphabetFrequency,BString.Rdash.method}
\aliasA{alphabetFrequency,BStringViews-method}{alphabetFrequency}{alphabetFrequency,BStringViews.Rdash.method}
\aliasA{alphabetFrequency,DNAString-method}{alphabetFrequency}{alphabetFrequency,DNAString.Rdash.method}
\aliasA{alphabetFrequency,RNAString-method}{alphabetFrequency}{alphabetFrequency,RNAString.Rdash.method}
\keyword{category}{alphabetFrequency}
\begin{Description}\relax
This function calculates the frequency of each letter in the (base) alphabet
for a biological sequence.
\end{Description}
\begin{Usage}
\begin{verbatim}
  alphabetFrequency(x, baseOnly=TRUE)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{x}] A \LinkA{BString}{BString}, \LinkA{DNAString}{DNAString}, \LinkA{RNAString}{RNAString}
or \LinkA{BStringViews}{BStringViews} object.

\item[\code{baseOnly}] \code{TRUE} or \code{FALSE}.
If \code{TRUE}, the returned vector only contains frequencies for the
letters in the "base" alphabet + the gap symbol
i.e. "A", "C", "G", "T" + "-" when \code{x} is a \LinkA{DNAString}{DNAString} object
(or a \LinkA{BStringViews}{BStringViews} object with a \LinkA{DNAString}{DNAString} subject),
and "U", "G", "C", "A" + "-" when \code{x} is a \LinkA{RNAString}{RNAString} object
(or a \LinkA{BStringViews}{BStringViews} object with a \LinkA{RNAString}{RNAString} subject).
When \code{x} is a \LinkA{BString}{BString} object (or a \LinkA{BStringViews}{BStringViews}
object with a \LinkA{BString}{BString} subject), then the \code{baseOnly}
argument is ignored.

\end{ldescription}
\end{Arguments}
\begin{Value}
An integer vector.
If \code{x} is a \LinkA{DNAString}{DNAString} or \LinkA{RNAString}{RNAString} object
(or a \LinkA{BStringViews}{BStringViews} object with a \LinkA{DNAString}{DNAString}
or \LinkA{RNAString}{RNAString} subject), then the returned vector is named
with the letters in the alphabet.
If the \code{baseOnly} argument is TRUE, then the returned vector
has an extra element named 'other'.
If \code{x} is a \LinkA{BStringViews}{BStringViews} object, then the returned
vector contains the cumulated frequencies found in each view.
\end{Value}
\begin{Author}\relax
H. Pages
\end{Author}
\begin{SeeAlso}\relax
\LinkA{BString}{BString}, \LinkA{DNAString}{DNAString}, \LinkA{RNAString}{RNAString}, \LinkA{BStringViews}{BStringViews}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
  data(yeastSEQCHR1)
  yeast1 <- DNAString(yeastSEQCHR1)
  alphabetFrequency(yeast1)
  alphabetFrequency(yeast1, baseOnly=FALSE)
\end{ExampleCode}
\end{Examples}


