\HeaderA{DNAString-class}{The DNAString class}{DNAString.Rdash.class}
\aliasA{alphabet,DNAString-method}{DNAString-class}{alphabet,DNAString.Rdash.method}
\aliasA{class:DNAString}{DNAString-class}{class:DNAString}
\aliasA{DNAString}{DNAString-class}{DNAString}
\aliasA{DNA\_ALPHABET}{DNAString-class}{DNA.Rul.ALPHABET}
\aliasA{initialize,DNAString-method}{DNAString-class}{initialize,DNAString.Rdash.method}
\keyword{methods}{DNAString-class}
\keyword{classes}{DNAString-class}
\begin{Description}\relax
A \code{DNAString} object allows efficient storage
and manipulation of a long DNA sequence.
\end{Description}
\begin{Details}\relax
The \code{DNAString} class derives directly from the
\code{\LinkA{BString}{BString}} class (with no additional slot).
All functions and methods described in the
\code{\LinkA{BString}{BString}} man page also work
with a \code{DNAString} object (inheritance).

Unlike a \code{\LinkA{BString}{BString}} object that allows storage
of any non-empty string (based on a single-byte character set)
a \code{DNAString} object can only store a non-empty string
based on the DNAString alphabet (see below).
In addition, the letters stored in a \code{DNAString} object
are encoded in a way that optimizes fast search algorithms.
\end{Details}
\begin{Section}{The DNAString alphabet}
This alphabet contains all letters from the
IUPAC Extended Genetic Alphabet (see \code{\LinkA{IUPAC\_CODE\_MAP}{IUPAC.Rul.CODE.Rul.MAP}})
+ the gap letter \code{"-"}.
It is stored in the \code{DNA\_ALPHABET} constant (character vector).
The \code{alphabet} method also returns
\code{DNA\_ALPHABET} when applied to a \code{DNAString}
object and is provided for convenience only.
\end{Section}
\begin{Section}{Constructor-like functions and generics}
In the code snippet below,
\code{src} can be a character vector
or a \code{\LinkA{BString}{BString}} (or derived) object.

\describe{
\item[] \code{DNAString(src)}:
[TODO: Document me]

}
\end{Section}
\begin{Author}\relax
H. Pages
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{BString}{BString}}, \code{\LinkA{IUPAC\_CODE\_MAP}{IUPAC.Rul.CODE.Rul.MAP}},
\code{\LinkA{RNAString}{RNAString}}, \code{\LinkA{BStringViews}{BStringViews}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
  DNA_ALPHABET
  d <- DNAString("TTGAAAA-CTC-N")
  length(d)
  alphabet(d)
\end{ExampleCode}
\end{Examples}


