\section{protein}
\label{module_protein}
This module contains the following objects

\begin{itemize}
\item \ref{object_Protein} Protein

\end{itemize}
\subsection{Object Protein}

\label{object_Protein}

The Protein object has the following fields. To see how to access them refer to \ref{accessing_fields}
\begin{description}
\item{baseseq} Type [Sequence * : Scalar] No documentation

\end{description}
The protein object is a typed
example of a sequence object.


It does nothing more than a sequence
object but is typed




Member functions of Protein

\subsubsection{Protein_from_Sequence}

\begin{description}
\item[External C] {\tt Wise2_Protein_from_Sequence (seq)}
\item[Perl] {\tt &Wise2::Protein::Protein_from_Sequence (seq)}

\item[Perl-OOP call] {\tt $obj->Protein_from_Sequence()}

\end{description}
Arguments
\begin{description}
\item[seq] [OWNER] Sequence to make protein from [Sequence *]
\item[returns] [UNKN ] Undocumented return value [Protein *]
\end{description}
makes a new protein from a Sequence. It 
owns the Sequence memory, ie will attempt a /free_Sequence
on the structure when /free_Protein is called


If you want to give this protein this Sequence and
forget about it, then just hand it this sequence and set
seq to NULL (no need to free it). If you intend to use 
the sequecne object elsewhere outside of the Protein datastructure
then use Protein_from_Sequence(/hard_link_Sequence(seq))




