%    \iffalse
%
% textopo.dtx
% Docstrip archive, to  extract  documentation run twice through 
% LaTeX.
% To successfully  extract the documentation it is neccessary to
% run the file `textopo.ins' through LaTeX first.  This produces 
% the needed style file `textopo.sty' as well as several example
% files.  See the file `textopo.txt' for further information!
% 
%
% Copyright (C) 2000-2005 Eric Beitz
% See the file textopo.txt
% 
%    \fi
%
%    \changes{1.0}{2000-3-18}{First release}
% 
%    \changes{1.0a}{2000-5-16}{%
%                   Corrections: 
%                    - minor changes in the documentation;
%                    - the `addtagtoNterm' and `addtagtoCterm'
%                      commands were buggy,
%                    - the `place' command did not work at all.
%    }
%    
%    \changes{1.0b}{2000-5-24}{%
%                   Corrections:
%                    - compatibility with TeXshade improved.
%    }
% 
%    \changes{1.0c}{2000-6-03}{%
%                   Corrections:
%                    - `place' command finally fixed.
%    }
% 
%    \changes{1.1}{2000-7-12}{%
%                   Major change:
%                    - handedness of helices was alternating
%                      left and right-handed. Now, all are
%                      oriented left-handed.
%                   Documentation:
%                    - Addition of instructions on increasing
%                      TeX parameters.
%    }
%    \changes{1.2}{2001-3-09}{%
%                   Introduction:
%                    - `moveres' command
%                    - `movelegend' command,
%                    - `loopfoot' command,
%                    - `broadenmembrane' command
%                    - `thickenmembrane' command;
%                    - helicalwheel environment parameter allows one
%                      to write number series with a dash {1-5};
%                    - move parameters can now be set in x- and y-values}
%                    
%    \changes{1.3}{2002-04-15}{%
%                   Corrections:
%                    - other options besides [dvips] can be passed to
%                      the graphics bundle, e.g. [dvipdf];
%                    - rotating.sty is no longer needed;
%                    - maximal transmembrane domain length increased to 36aa.
%                   Introduction:
%                    - `borderthickness' command,
%                    - `showmoment' and `hidemoment';
%                    - `momentcolor' and `scalemoment';
%                    - `Hmean', `muH', `muHmean' and `mudelta';
%                    - `helixstyle' [perspective],[wheel] or [net];
%    }
% 
%    \changes{1.4}{2005-02-14}{%
%                   Corrections:
%                    - rotation issues fixed with helix style `wheel';
%                    - minor bug fixes.
%                   Introduction:
%                    - new input format `HMMTOP' for `getsequence'.
%    }
% 
% 
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%   
%    \parindent0mm
%            
%     
%    \title{The \TeXtopo{} package\\[3mm] \large
%           for shaded membrane protein\\ topology plots\footnote{Please cite: 
%           Eric Beitz (2000), \TeX{}topo: 
%           shaded membrane protein topology plots in \LaTeXe. 
%           \textit{Bioinformatics} \textbf{16}: 1050--1051.}}
%    \author{Eric Beitz\footnote{University of T\"ubingen, 
%            Pharmaceutical Chemistry, Morgenstelle 8, 
%            D-72076 T\"ubingen, Germany; 
%            send electronic mail to \texttt{eric.beitz@uni-tuebingen.de};
%            for further information, updates and on-line documentation 
%            see my homepage at
%            \texttt{http://homepages.uni-tuebingen.de/beitz/}}}
%    \date{v1.4; 2005/02/14\\}
%    \maketitle
%    \begin{textopo}
%        \getsequence{PHD}{AQP1.PHD}
%        \hideTMlabels
%        \scaletopo{2}
%    \end{textopo}
%    \thispagestyle{empty}
%    
%    \newpage
%    \tableofcontents
%    \enlargethispage{1cm}
%    \newpage
%    
%    \section{Package Overview}\label{over}
%    
%    After \texttt{textopo.ins} is run through \TeX{} the following files
%    should appear in the directory:
%    
%    \begin{tabbing}
%    \quad\texttt{textopo.sty}\qquad\= the style file with all \TeXtopo{} 
%                                      commands\\
%    \quad\texttt{textopo.def}\>      an example parameter file with the 
%                                      standard \\
%                              \>      parameter settings\\
%    \quad\texttt{AQPpro.MSF}  \>      an example protein alignment
%                                      (\texttt{MSF}-format)\\
%    \quad\texttt{AQPpro1.shd}\>       shading information calculated
%                                      from the file \\
%                              \>      |AQPpro.MSF|\\
%    \quad\texttt{AQP2spec.ALN}\>      a further protein alignment
%                                      (minimal \texttt{ALN}-file)\\
%    \quad\texttt{AQP1.phd}\>          secondary structure information
%                                      (PHD-format)\\
%    \quad\texttt{AQP1.hmm}\>          secondary structure information
%                                      (HMMTOP-format)\\
%    \quad\texttt{AQP1.tpo}\>          secondary structure information
%                                      extracted \\
%                              \>      from |AQP1.phd|\\
%    \quad\texttt{AQP1.SP}\>           protein database entry
%                                      (SwissProt-format)\\
%    \quad\texttt{AQP1.swp}\>          sequence and feature information
%                                      extracted \\
%                              \>      from |AQP1.SP|\\
%    \quad\texttt{biotex.sty}\>        this style file organizes the
%                                      interaction\\
%                             \>       with \TeXshade{}, see \ref{mbiotex}\\
%    \end{tabbing}
%    The alignment file examples as well as the topology data file are 
%    needed for \TeX ing this documentation
%    and can serve as illustrations for the |MSF| and |ALN| 
%    file format.
%    
%    The following subsections give an overview of the capabilities of
%    the \TeXtopo{} package. All commands are described in detail 
%    later on.
%    
%    \subsection{Version History}
%    
%    \textbf{v1.4 2005/02/14}
%    \medskip
%    
%    A new topology input format has been implemented: HMMTOP, see 
%    \ref{HMMTOP}.
%    A rotation issue with classical flat helical wheels has been addressed 
%    and some minor bugs have been fixed.
%    \bigskip
%    
%    \textbf{v1.3 2002/04/15}
%    \medskip
%    
%    The unnecessary restriction to the DVIPS
%    driver for |color.sty| has been removed\footnote{As suggested by
%    Eckhart Guth\"ohrlein.}. Any color.sty compatible
%    driver option can be given with the |\usepackage{textopo}| call
%    and is then passed to the |color| package. Further, 
%    |rotating.sty| is no longer needed. The maximal helix length has
%    been increased to 36\,aa.
%    Introduction of two new helical wheel styles (|net| and |wheel|) 
%    and the display of the hydrophobic moment. Corresponding commands:
%    |\helixstyle|, |\showmoment|, |\hidemoment|, |\momentcolor|, 
%    |\scalemoment|, |\Hmean|, |\muH|, |\muHmean|, |\mudelta|).
%    
%    
%    \bigskip
%    
%    \textbf{v1.2 2001/03/09}
%    \medskip
%    
%    Several new commands were introduced: |\movelegend| for a free
%    re-location of the figure legend, |\footloop| adds a foot to
%    a specified loop and thus keeps the distance between the transmembrane
%    domains small, |\broadenmembrane| and |\thickenmembrane| allow 
%    one to change the dimensions of the membrane. In the helicalwheel
%    environment number series can be written with a dash, e.\,g. |{1-5}|
%    instead of |{1,2,3,4,5}|. In commands that move labels the new
%    position can be given in \emph{x}/\emph{y}-values besides
%    the \meta{direction} and \meta{distance} parameters.
%    \bigskip
%    
%    
%    \textbf{v1.1 2000/07/12}
%    \medskip
%    
%    One major improvement was achieved by changing the handedness of
%    the transmembrane helices to be consistently left-handed. 
%    See the cover figure! The
%    documentation now contains instructions where to find basic
%    \LaTeX{} documents and how to increase \TeX's
%    parameter settings.
%    \bigskip
%    
%    
%    \textbf{v1.0a 2000/05/16 -- v1.0c 2000/06/03}
%    \medskip
%    
%    Minor corrections of the documentation and bug fixes in the
%    |\place|, |\addtagtoNterm| and |\addtagtoCterm| commands.
%    Improvement of the \TeX{}shade compatibility.
%    \bigskip
%    
%    \textbf{v1.0 2000/03/18}
%    \medskip
%    
%    First release.
%    \bigskip
%    
%    
%    \subsection{\LaTeX{} basics}
%    
%    \subsubsection{Typesetting documents with \LaTeX}
%    
%    In order to use any of the macros provided by the \BioTeX-project 
%    (see \ref{appshad}) efficiently a basic understanding of the \TeX{} 
%    typesetting system and its usage is required. Several books are
%    available on this topic, but a rather quick and easy introduction
%    is the \emph{Not so short introduction to \LaTeX}. This document
%    is available from all Comprehensive \TeX{} Archive Network 
%    (CTAN) servers,
%    e.\,g. from \texttt{ftp://ftp.dante.de/pub/tex/documentation/lshort/},
%    in many different languages and formats besides \LaTeX{}, such 
%    as PostScript and on-line viewable PDF.
%    I also put a link from the \BioTeX{} (\TeXshade/\TeXtopo) homepage 
%    to the document collection
%    (\texttt{http://homepages.uni-tuebingen.de/beitz/biotex.html}).
%    
%    
%    \subsubsection{Memory shortness when using \TeXtopo}
%    
%    If you are using \TeXtopo{} to plot topologies of larger proteins 
%    ($> 600$ residues), LaTeX will probably stop compiling and quit with one
%    of the following messages: 
%    \texttt{!\ TeX capacity exceeded, sorry [main memory size=384000]} or 
%    \texttt{!\ TeX capacity exceeded, sorry [stack size=300]}.
%    
%    \TeX{} allocates space for different kinds of internal variables. 
%    Plotting topologies of big membrane proteins needs lots of memory,
%    usually more than for typesetting plain text.
%    Thus, the parameter settings of a standard \TeX{} installation might not
%    be sufficient for certain plotting projects. This becomes obvious
%    when \TeX{} complains about insufficient memory by displaying error 
%    messages and the setting process is interrupted. There is no reason to be 
%    concerned. The parameters can be set by hand. Unfortunately, 
%    each \TeX{} system hides its default parameter file in a different
%    place in the system. 
%    
%    In the following, an excerpt from a FAQ-list to \TeXshade, an 
%    alignment setting macro for \LaTeX{}, is added. This explains how 
%    to increase the settings in Oz\TeX{} for the Macintosh, Mik\TeX{} 
%    for Windows and te\TeX{} for *NIX \TeX{} distributions. Please contribute 
%    to this list!
%    
%    \begin{enumerate}
%    
%    \item
%    
%    \textbf{Oz\TeX{} 4.0 for the Macintosh:}
%    
%    Find the file `OzTeX:TeX:Configs:Default'. This file contains
%    all memory settings. Look for the section 
%    `\% TeX parameters' and increase the values that \TeX{} complains
%    about during the run. You will have to restart Oz\TeX{} before the
%    changes are active.
%    
%    For older versions of Oz\TeX{} the configuration file has the 
%    same name but the path is somewhat different.
%    
%    
%    \item
%    
%    \textbf{te\TeX{} for *NIX:} (contributed by Joerg Daehn)
%    
%    Find the file: `/usr/share/texmf/web2c/texmf.cnf' or
%    use |locate texmf.cnf| at the command prompt to find it.
%
%    Login as super user. Backup `texmf.cnf' in case you destroy something and
%    then open the `texmf.cnf' file in your favorite text editor and use its
%    search function to locate |main_memory|. This variable is set to 384000.
%    Change this to some higher value, i.e. 4000000 (works fine for me!). The
%    total amount of memory should not exceed 8000000, so check the other
%    values in that section. 
%
%    Next, you want to change the stack size. Search for |stack_size|. This
%    will be set to 300. I changed it to 4000 and it works fine.
%
%    There might be complains by \TeX{} about further specific parameters such
%    as \verb|stack_size|. You find all those in the same file.
%
%    After this you have to run `texconfig init'.
%
%    Logout as root.
%
%    After this all should be set for large plots. Happy \TeX{}ing!
%
%    The information on how to achieve this was derived from a mail in the
%    te\TeX{} mail archive. The original question was posted by Pascal Francq and
%    answered by Rolf Nieprasch.
%
%    
%    \item
%    
%    \textbf{MiK\TeX{} for Windows:}
%    
%    The MiK\TeX{} documentation describes very detailed how the memory
%    settings can be changed. In brief, you must locate the 
%    configuration file `miktex/config/miktex.ini'. In the [MiKTeX] 
%    section of this file you find all the parameters you need, e.\,g.\ 
%    \verb|mem_min|, \verb|mem_max|, \verb|buf_size|, \verb|stack_size| etc.
%    
%    It appears, that the standard settings of MiK\TeX{} are bigger 
%    than that of other \TeX{} installations, so it may not always be necessary 
%    to increase the values.
%    
%    
%    \end{enumerate}
%
%    
%    \subsection{System requirements}
%
%    \TeXtopo{} requires at least \LaTeXe{} and \texttt{color.sty}.  
%    David Carlisle's \texttt{color.sty} is part of the Standard \LaTeX{}
%    `Graphics Bundle' [1]. This package can be downloaded from any
%    \TeX{} archive, e.g.\ \texttt{ftp.dante.de}; usually it is already 
%    included in a comprehensive \TeX{} installation. 
%    
%    The |color| style allows one to use several |[|\meta{options}|]|, e.\,g.
%    |dvips|, |pdftex| or |dviwin|. These provide the commands which
%    different devices/programs need to display colored output. It is 
%    advisable to make yourself familiar with the |color.sty| manual. 
%    You should define a default driver in the file |color.cfg|.
%    Since there is no direct call of |color.sty| by the user, the 
%    option can be stated when \TeXtopo{} is loaded, see next 
%    subsection. If no option is stated the |DVIPS| driver will be 
%    loaded as was default before.
%    
%    With the |[dvips]| option for example the output DVI-file 
%    can be converted to \textsc{PostScript} using the |DVIPS| program
%    and can later be viewed or printed with the public domain 
%    |Ghostview| program which is
%    available for almost all computer platforms. Further, more and more
%    standard \TeX{} viewers are to a certain extent \textsc{PostScript} compatible, 
%    e.\,g.\ Oz\TeX{} on the Macintosh. The option |pdftex| makes the 
%    conversion to a PDF file easy etc.
%    
%    \TeXtopo{} is compatible with \TeXshade{} (version 1.3 or newer) which
%    is a mighty alignment shading package for \LaTeXe{}. In combination with 
%    \TeXshade{} the capability of \TeXtopo{} is greatly enhanced, 
%    e.\,g.\ by the automatic application of calculated shading from 
%    protein alignments or shading due to functional properties, such
%    as charge or accessible side chain area, see \ref{ts}.
%    
%    \bigskip
%    
%    
%    
%    \subsection{\TeXtopo{}'s environments}
%    \label{tsenvironment}
%    
%    In order to make \TeXtopo{} available for your document declare
%    it in the document header section:
%    \medskip
%    
%    \quad |\usepackage[|\meta{option}|]{textopo}|
%    
%    \medskip
%    Make sure that the file `|textopo.sty|' is present in a directory
%    searched by \TeX{} (see the installation notes in the file
%    `|textopo.txt|'). 
%    
%    The \meta{option} given here is passed to |color.sty| which 
%    handles the color commands for a particular output device, see 
%    previous subsection and the |color.sty| manual.
%    
%    The package provides two new environments, i.\,e.\ the |textopo| 
%    and the |helicalwheel| environment. Both are described in 
%    greater detail below. 
%    
%    \subsubsection{The \texttt{textopo} environment}
%    \label{topoenv}
%    
%    This environment displays schematic topology plots of membrane proteins. 
%    \TeXtopo{} can import sequence and 
%    topology data directly from PHD or HMMTOP predictions, SwissProt 
%    database files
%    (see the example files |AQP1.PHD|, |AQP1.hmm| and |V2.SP| for their 
%    structure) or alignment files (MSF and ALN format; example files
%    are also provided). When SwissProt files are used \TeXtopo{} will
%    automatically extract all the information about special domains,
%    variations, mutations etc.\ from the database file and label
%    the respective positions in the plot.
%    Alternatively, one can manually enter the sequence and the positions 
%    of the membrane spanning domains within the environment. Based on
%    this data \TeXtopo{} produces a first plot. Then, the
%    output can be further adjusted to one's needs by adding labels, special 
%    styles for the appearance of the residues, shading (automatic 
%    [see�\ref{ts}] or manual) and legends.
%    \medskip
%    
%    The usage of the |textopo| environment is easy:
%    
%    \vbox{%
%    \begin{quote}
%    |\begin{textopo}[|\meta{optional parameterfile}|]|
%         
%    \quad\emph{further \emph{\TeXtopo} commands}
%    
%    |\end{textopo}|
%    \end{quote}}
%    
%    In the optional parameter file (section~\ref{paramfilestruc})
%    any \TeXtopo{} command can be given in order to fix user
%    specific settings. This option provides fast and consistent outputs.
%    At least one command is necessary whithin the environment which
%    loads the sequence and topology of the protein to be plotted, 
%    i.\,e.\ |\getsequence| [\ref{mgetsequence}] or |\sequence| + |\MRs| 
%    [\ref{msequence},\ref{mMRs}].
%    
%    
%    \subsubsection{The \texttt{helicalwheel} environment}
%    \label{wheelenv}
%    
%    This second environment provides essentially the same 
%    functionality as |textopo|. Here, the output 
%    depicts the helical transmembrane spans as helical wheels 
%    (perspective or flat) or as helical nets which is basically 
%    the same kind of display as in the topology plots.
%    One can choose all or a subset of transmembrane domains and set any desired
%    order. Views from the outside onto the cell membrane or vice versa
%    are possible.
%    \medskip
%    
%    The usage is as easy as this:
%    
%    \vbox{%
%    \begin{quote}
%    |\begin{helicalwheel}[|\meta{parameterfile}|]{|\meta{helixlist}|}|
%         
%    \quad\emph{further \emph{\TeXtopo} commands}
%    
%    |\end{helicalwheel}|
%    \end{quote}}
%    
%    The optional parameter file can be used as described above. 
%    A list of the helices which are to be displayed is mandatory, i.\,e.
%    |{1,2,3,4,5,6}|; or for displaying a subset with changed order: 
%    |{1,3,2,5}|. Series of numbers can be typed with a dash, e.\,g.
%    |{1-3,9,5-7}|. Further, each helix number can be followed by
%    an optional parameter which indicates an angle by which the
%    transmembrane domain is rotated (only integer values). If a 
%    series of helix numbers are to be rotated by the same angle
%    use the following scheme: |{1-3[90],4-6,7[135]}|.
%    
%    A basic example shows helices 1 and 4 of an aquaporin and
%    rotates helix no.�4 by 50$^\circ$ 
%    (Fig.�\ref{figwheel}):
%    
%    \begin{figure}
%    \begin{helicalwheel}{1,4[50]}
%       \getsequence{PHD}{AQP1.PHD}
%    \end{helicalwheel}
%    \caption{A basic helical wheel example.}\label{figwheel}
%    \end{figure}
%    
%    \vbox{%
%    \begin{quote}
%    |\begin{helicalwheel}{1,4[50]}|
%    
%    \quad|\getsequence{PHD}{AQP1.PHD}|
%    
%    |\end{helicalwheel}|
%    \end{quote}}
%    
%    
%    \subsection{\TeX{}shade (v1.3 and up) compatibility}
%    \label{ts}
%    
%    \TeXshade{} is a very comprehensive \LaTeXe{} package for
%    displaying and shading protein and nucleotide alignments [2].
%    Package and documentation are available from the same
%    source as the \TeXtopo{} package, i.\,e.\ any CTAN site, 
%    e.\,g.\ |ftp.dante.de|, or from the \TeXshade{} homepage 
%    |http://homepages.uni-tuebingen.de/beitz/tse.html|.
%    
%    Since version 1.3 \TeXshade{} provides its full functionality for 
%    \TeXtopo{}, i.\,e.\ protein topology plots can be shaded 
%    automatically due to functional properties of the amino acid
%    residues or to sequence conservation based on protein
%    alignments. Most of the more than 100 \TeXshade{} commands are
%    applicable in addition to the commands provided by \TeXtopo{}
%    to customize the output or to define new shading modes.
%    
%    A simple example is shown in Fig.�\ref{figshad}. It loads the sequence and 
%    topology data from a |PHD| file and applies shading calculated from
%    an alignment in the |MSF| format.
%    
%    \vbox{%
%    \begin{quote} \label{tsexample}
%    |\begin{textopo}|
%    
%    \quad|\getsequence{PHD}{AQP1.phd}|
%    
%    \quad|\applyshading{similar}{AQPpro.MSF}|
%    
%    \quad|\allmatchspecial|
%    
%    |\end{textopo}|
%    \end{quote}}
%    
%    \begin{figure}
%    \begin{textopo}
%       \getsequence{PHD}{AQP1.phd}
%       \applyshading{similar}{AQPpro.MSF}
%       \allmatchspecial
%       \loopextent{15}
%    \end{textopo}
%    \caption{Topology plot with shading calculated
%     on the basis of a protein alignment.}\label{figshad}
%    \end{figure}
%    \bigskip
%    
%    Shading can also be applied to helical wheels as shown in 
%    Fig.�\ref{figwheelshad}: 
%    
%    \vbox{%
%    \begin{quote}
%    |\begin{helicalwheel}{1-4}|
%    
%    \quad|\getsequence{PHD}{AQP1.PHD}|
%    
%    \quad|\applyshading{functional}{chemical}|
%    
%    |\end{helicalwheel}|
%    \end{quote}}
%    
%    \begin{figure}
%    \begin{helicalwheel}{1-4}
%       \getsequence{PHD}{AQP1.PHD}
%       \applyshading{functional}{chemical}
%    \end{helicalwheel}
%    \caption{Some helical wheels with `chemical'
%    shading.}\label{figwheelshad}
%    \end{figure}
%    
%    \subsection{Customization of the output}
%    
%    The previously shown basic outputs may not be satisfactory enough
%    in terms of flexibility, additional shading, or application of 
%    labels. Therefore \TeXtopo{} provides commands which enable the
%    user to modify and refine the plot in many ways.
%    
%    Special domains in the protein sequence can be highlighted by the
%    use of shading colors or of squares and diamonds representing the
%    residues instead of circles. These additions will be automatically
%    included in the legend. Labels can be attached to single
%    residues or stretches. Secondary modifications, such as phosphorylation 
%    and glycosylation, may be shown as an encircled `P' and a tree, 
%    respectively. The appearance of the membrane is adjustable.
%    
%    Further, the display of the structure itself can be altered by
%    setting values for the maximal extension of each loop, by 
%    defining so-called `half-loops' which are invaginations of short
%    lipophilic stretches into the membrane or by declaring membrane
%    anchors, such as GPI-anchors or bound lipids. One can change
%    the location of the N-terminus from intra- to extracellular and
%    vice versa.
%    
%    The description of the usage of all necessary commands is topic of the
%    following sections.
%    
%    \section{Use of a \TeXtopo{} parameter file
%             \label{paramfilestruc}}
%    Using predefined parameter files for repeatedly occuring situations
%    can save a lot of typing and makes the output throughout the 
%    publication or presentation more consistent. Further, such
%    files are an easy way to exchange self-defined shading 
%    modes or new color schemes (i.\,e.\ for a satisfying grayscale output) 
%    with other users. If you have created a
%    parameter file, which you think is of interest for others, please 
%    submit it to me\footnote{|eric.beitz@uni-tuebingen.de|} as an e-mail 
%    attachment together with a short 
%    description. I will take care of those files and post them---with 
%    a reference to the author---together with the next \TeXtopo{} 
%    distribution to make them available for all interested users.
%    
%    No special file format is required for parameter 
%    files. \TeXtopo{} simply calls the file using the |\input|
%    command right after resetting all parameters to default. An
%    example parameter file is present containing the standard
%    parameters of \TeXtopo{} called |textopo.def|. This file can be
%    changed freely and can be used as a template for the creation of
%    personal parameter files. 
%    
%    
%    \section{\TeXtopo{} user commands}
%    
%    The \TeXtopo{} package must be loaded by the |\usepackage|
%    command in the document header section.
%    \medskip
%    
%    \quad|\usepackage[|\meta{option}|]{textopo}|
%    \medskip
%    
%    Then, the |textopo| and |helicalwheel| environments are ready to use 
%    as described in \ref{tsenvironment}. See also section \ref{paramfilestruc} 
%    for a description of the optional parameter file. All other 
%    commands provided by \TeXtopo{} must be used within the
%    |textopo|/|helicalwheel| environments. The following sections
%    mainly focus on plotting topologies rather than helical wheels.
%    For the latter a special section is reserved [\ref{helwheel}]. Nevertheless,
%    almost all commands behave the same in both environments.
%    
%    The \TeXtopo{} command syntax mainly follows the \LaTeX{} conventions. 
%    Mandatory parameters are indicated by braces (|{}|), optional
%    parameters are set in brackets (|[]|). Sometimes, optional
%    parameters can be included in mandatory parameter definitions
%    in order to save a lot of additional commands:
%    \medskip
%    
%    \quad |\command[|\meta{general option}|]{|\meta{mandatory}|[|\meta{optional}|]}|
%    \medskip
%    
%    This syntax is not used in standard \LaTeX{} commands. The
%    following descriptions explain exactly in which commands this
%    new kind of declaration can be used.
%    
%    
%    \subsection{Sequence and topology data sources}
%    
%    As pointed out earlier, there are several sources of data which can
%    be accessed by \TeXtopo: (a) PHD topology predictions [3], (b) 
%    HMMTOP topology prdictions [8], (c) SwissProt database files, (d) 
%    alignment files in the MSF- 
%    (GCG PileUp) or ALN- (Clustal) format and (e) manually provided
%    sequences. The latter two sources do not contain topological data, 
%    therefore the location of the transmembrane domains must be 
%    entered by hand using |\MRs| [\ref{align}] and the location of
%    the N-terminus must be set by |\Nterm| [\ref{mNterm}]. Let us go 
%    through all options:
%    \medskip
%    
%    \subsubsection{PHD files} 
%    \label{PHD}
%    
%    The sequence together with the topology
%    is presented near the bottom of the file (see example |AQP1.phd|).
%    \TeXtopo{} analyzes the lines starting out with |AA| which contain
%    the amino acid sequence and those beginning with |PHDThtm| to 
%    obtain the topology prediction. This information is converted
%    into \TeXtopo{} commands which are subsequently stored in a file
%    named \textit{filename}|.tpo|. This has the advantage 
%    that the entries are editable for further \TeX{} runs.
%    \TeXtopo{} will not overwrite existing |tpo|-files in order
%    to keep user made modifications of these files, but it can
%    be forced to overwrite them by using the optional parameter
%    |[make new]|.
%    \medskip
%    
%    Syntax: |\getsequence[make new]{PHD}{|\meta{PHD-file}|}| \label{mgetsequence}
%    \medskip
%    
%    \subsubsection{HMMTOP files} 
%    \label{HMMTOP}
%    
%    HMMTOP predictions have various possibilities for the output
%    format. Choose the extended format in TEXT-mode, because 
%    this contains the sequence in addition to the position of the 
%    termini and transmembrane domains (see example |AQP1.hmm|).
%    This information is in analogy to PHD-files, s.\,a., converted
%    into \TeXtopo{} commands which are subsequently stored in a file
%    named \textit{filename}|.htp|.
%    \medskip
%    
%    Syntax: |\getsequence[make new]{HMMTOP}{|\meta{HMMTOP-file}|}| \label{mgetsequence}
%    \medskip
%    
%    
%    \subsubsection{SwissProt files} 
%    \label{SwissProt}
%    
%    These files provide next to the
%    amino acid sequence (at the very bottom, |SQ|) much more information. 
%    Have a look at the example file |AQP1.SP|. The lines starting out with
%    |FT| contain data about sequence features. Here, the positions 
%    of the transmembrane domains (|TRANSMEM|) are listed. All additional 
%    features will automatically be displayed in the topology plot as shaded 
%    sequence stretches or as labels. Unfortunately, the locations of 
%    the transmembrane domains are not always listed. In this case \TeXtopo{} 
%    will complain about missing definitions of membrane regions and those
%    have to be entered by hand, see \ref{align}. As in \ref{PHD} a new file
%    is written by \TeXtopo{} with a name like this: \textit{filename}|.swp| to 
%    enable easy customization.
%    \medskip
%    
%    Syntax: |\getsequence[make new]{SwissProt}{|\meta{SwissProt-file}|}|
%    \medskip
%    
%    
%    \subsubsection{Alignment files} 
%    \label{align}
%    
%    In order to extract a sequence
%    from an alignment file the respective sequence number has to be
%    stated based on the top sequence which is defined as no.�1; if no
%    number is indicated \TeXtopo{} loads the first sequence. Two different
%    alignment file formats are readable by \TeXtopo, see the examples
%    |AQPpro.MSF| and |AQP2spec.ALN|. 
%    \medskip
%    
%    Syntax: |\getsequence[|\meta{seqnum}|]{alignment}{|\meta{Alignment-file}|}|
%    \medskip
%    
%    The positions of the membrane regions are declared by the command
%    |\MRs{|\meta{start1..stop1,start2..stop2,\ldots,start n..stop n}|}|. 
%    \label{mMRs} If the \emph{\underline{M}}embrane 
%    \emph{\underline{R}}egion\emph{\underline{s}} are located for example 
%    from position
%    88 to 109 and from 123 to 150 enter |\MRs{88..109,123..150}|. 
%    Due to the thickness of the lipid bilayer an 
%    $\alpha$-helical transmembrane spanning region is about 21 amino
%    acids long. \TeXtopo{} accepts definitions in the range of 14--36
%    amino acids. If the number of residues is below 14, which is 
%    definitively to short to span the membrane, a so-called 
%    `half-loop' is assumed as shown in the topology clipping in
%    Fig.�\ref{fighalf}.
%    \medskip
%    
%    \begin{figure}
%    \begin{textopo}
%       \labelstyle{hl}{diamond}{Black}{Blue}{White}{}
%       \sequence{PQALPSV[LQIAMAFGLAIGTLVQALG]HV%
%       SGAH[([NNE,30]hl[box[Black,Blue]:Half loop[White]]=INPAVTVACL)]VGCHVSFLR}
%       \Nterm{extra} \hideNterm \hideCterm \hidelegend \labelTM{1}{II}
%       \labeloutside[right]{extra}
%    \end{textopo}
%    \caption{A `half loop' example}\label{fighalf}
%    \end{figure}
%    
%    The orientation of the protein in the membrane is determined by 
%    the location of the N-terminus. This information is provided
%    by PHD-, HMMTOP- and SwissProt files, when using alignment files in turn
%    the command |\Nterm{|\meta{location}|}| with \emph{location} =
%    \texttt{intra} or \texttt{extra}
%    \label{mNterm} can help out. If the N-terminus is not set \TeXtopo{}
%    assumes the N-terminus to be intracellular.
%    
%    
%    \subsubsection{Manual entry} 
%    \label{manual}
%    
%    Finally, the |\sequence| 
%    \label{msequence} command allows one to enter the sequence 
%    manually directly in the |textopo| or |helicalwheel| environment.
%    \medskip
%    
%    Syntax: |\sequence{|\meta{Amino acid sequence}|}|
%    \medskip
%    
%    This command provides a second possibility to define membrane domains in 
%    addition to |\MRs| overcoming the obstacle that one needs to know
%    the position numbers in order to use |\MRs|, which may result in an
%    annoying counting job. With |\sequence| the membrane regions can be
%    indicated by brackets directly in the amino acid sequence:
%    \medskip
%    
%    \vbox{%
%    \begin{verbatim}
%    \sequence{MASEIKKKLFWRAV[VAEFLAMTLFVFISIGSA]LGFNYPLERN
%    QTLVQDN[VKVSLAFGLSIATLAQSVG]HISGAHSNPAVTL[GLLLSCQISILR
%    AVMYIIAQCVGAI]VASAILSGITSSLLENSLGRNDLARGVNSG[QGLGIEIIG
%    TLQLVLCVL]ATTDRRRRDLGGSA[PLAIGLSVALGHLLAIDY]TGCGINPARS
%    FGSAVLTRNFSNHWI[FWVGPFIGSALAVLIYDFI]LAPRSSDFTDRMKVWTSG
%    QVEEYDLDADDINSRVMKPK}
%    \end{verbatim}}
%    
%    Another feature of |\sequence| is its ability to print messages
%    containing position information during the \TeX{} run. Thus, if
%    one needs to know the position number of a special residue, 
%    say a secondary modification site, this residue can be
%    labeled with asterisks and the number will be displayed on the
%    screen.
%    \medskip
%    
%    \vbox{%
%    \begin{verbatim}
%    \sequence{MASEIKKKLFWRAV[VAEFLAMTLFVFISIGSA]LGFNYPLER*N*
%    QTLVQDN[VKVSLAFGLSIATLAQSVG]HISGAHSNPAVTL[GLLLSCQISILR
%    AVMYIIAQCVGAI]VASAILSGITSSLLENSLGRNDLARGVNSG[QGLGIEIIG
%    TLQLVLCVL]ATTDRRRRDLGGSA[PLAIGLSVALGHLLAIDY]TG*C*GINPARS
%    FGSAVLTRNFSNHWI[FWVGPFIGSALAVLIYDFI]LAPRSSDFTDRMKVWTSG
%    QVEEYDLDADDINSRVMKPK}
%    \end{verbatim}}
%    
%    Screen output: |(pos `N': 42) (pos `C': 189)|
%    \medskip
%    
%    In addition, shading and labels can be set directly within the
%    |\sequence| command; this will be described later 
%    [\ref{mlabelregion}].
%    Do not forget to define the N-terminus location by |\Nterm| 
%    [\ref{mNterm}] if it is extracellular.
%    
%    
%    
%    \subsection{Structure modifications}
%    \label{strucmod}
%    
%    \subsubsection{Output size}
%    \label{outsize}
%    
%    \TeXtopo{} tries to select a font size for the residue symbols
%    that makes the plot fit onto the page without receiving \TeX{} error
%    messages. Actually, it only checks the width, so the user has to 
%    take care of the proper height. If the size is not satisfactory 
%    one can change it using |\scaletopo{|\meta{fixed or relative size}|}|. 
%    \label{mscaletopo}
%    There are ten different sizes to choose from which are referred 
%    to by the numbers 1 (very small) to 10 (huge). Any fixed size can be 
%    set by indicating the respective number, e.\,g.\ |\scaletopo{5}|.
%    Another possibility is to increase or decrease the size based on
%    the calculation \TeXtopo{} has made. Those relative settings are
%    done by entering a number with a `|+|' or `|-|'. For example,
%    |\scaletopo{+2}| will increase the font size by two steps 
%    relative to the calculation. After increasing the font size 
%    |overful hbox| error messages will most likely appear.
%    
%    
%    \subsubsection{Loop modifications} 
%    \label{loopmod}
%    
%    The height of the topology plot can be controlled by values
%    that define the extent of each loop above or beneath the membrane. 
%    The command \label{mloopextent}
%    |\loopextent[|\meta{loop}|]{|\meta{extent}|[|\meta{distance}|]}| 
%    takes three values which have the following effects: 
%    
%    \begin{description}
%    \item[\meta{extent}] is the only mandatory value needed by 
%       |\loopextent|. It sets the maximal number of residues in the
%       straight ascending or decending parts of the loop including 
%       the residues in the bend. Default setting is `30'.
%    \item[\meta{distance}] (optional) defines the minimum distance
%       of the loops from the membrane if the loop is plotted in a
%       meandrine shape. The default setting is `5'. Altering this setting 
%       might be necessary when flipping the termini to the interior of
%       the protein, see below.
%    \item[\meta{loop}] (optional) restricts the settings to a particular loop
%       number incl.\ N- and C-termini (`|N|', `|C|').
%       If this value is not set every loop is changed according to
%       the \meta{extent} and \meta{distance} values.
%    \end{description}
%    
%    Example A: |\loopextent[N]{50[10]}| sets the N-terminal loop to
%    a maximal extent of 50 residues with a minimal distance of 10.
%    \medskip
%    
%    Example B: |\loopextent[3]{30}| sets the third loop to a 30 residue 
%    extent keeping the default for \meta{distance}.
%    \medskip
%    
%    Example C: |\loopextent{40}| sets a general maximum of 40 
%    residues to all loops keeping the default minimal distance.
%    \medskip
%    
%    
%    Setting the maximal and minimal distances from the membrane
%    might not be sufficient for an optimal plot if the respective
%    loop is very long. When it is necessary to switch to the 
%    meandrine style the distance between the loop flanking transmembrane 
%    domains gets bigger and bigger. This can be avoided if a foot
%    with a fixed width in its `\emph{neck}'-part is added to the loop. 
%    The command \label{mloopfoot} 
%    |\loopfoot{|\meta{loop}|}{|\meta{direction}|[|\meta{neck}|]}|
%    does exactly that. Note that \meta{loop} is mandatory now with
%    the termini excluded. The \meta{direction} parameter can be 
%    |left|, |right| or |center|. This defines the direction of the
%    foot extension. Finally, the optional \meta{neck} value sets
%    the number of residues in the short straight part of the foot---I 
%    call it the \emph{neck}---and thus 
%    the distance from the membrane to the start of the opening of the foot.
%    Default setting here is `5'.
%    The actual loop is plotted atop of the foot according 
%    to the |\loopextent| value. This means, that loops with a foot have a
%    greater extent than loops without a foot. Thus, one might want
%    to adjust the |\loopextent| setting for those loops. The optional
%    parameter |[|\meta{distance}|]| in the |\loopextent| command is
%    ignored in |\loopfoot|. Figure \ref{foot} gives an example.
%    
%    
%    \begin{figure}
%    \begin{textopo}
%
%    \sequence{MNTSAPPAVS PNITVLAPGK GPWQVAFIGI TTGLLSLATV TGNLLVLISF KVNTELKTVN
%     NYFLLSLACA DLIIGTFSMN LYTTYLLMGH WALGTLACDL WLALDYVASN ASVMNLLLIS
%     FDRYFSVTRP LSYRAKRTPR RAALMIGLAW LVSFVLWAPA ILFWQYLVGE RTVLAGQCYI
%     QFLSQPIITF GTAMAAFYLP VTVMCTLYWR IYRETENRAR ELAALQGSET PGKGGGSSSS
%     SERSQPGAEG SPETPPGRCC RCCRAPRLLQ AYSWKEEEEE DEGSMESLTS SEGEEPGSEV
%     VIKMPMVDPE AQAPTKQPPR SSPNTVKRPT KKGRDRAGKG QKPRGKEQLA KRKTFSLVKE
%     KKAARTLSAI LLAFILTWTP YNIMVLVSTF CKDCVPETLW ELGYWLCYVN STINPMCYAL
%     CNKAFRDTFR LLLLCRWDKR RWRKIPKRPG SVHRTPSRQC}
%
%    \MRs{25..47,62..82,100..121,142..164,187..209,367..387,402..421}
%    \Nterm{extra}
%    \loopfoot{5}{left[10]}
%    \loopextent{12}
%    \loopextent[C]{26}
%    \scaletopo{+1}
%    \labelstyle{black}{circ}{Black}{Black}{White}{}
%    \labelregion[E,7]{210..219}{black}{`neck'}
%    \labelregion[W,7]{237[NW]..248[SW]}{black}{`loopextent'}
%    \hidelegend
%    \end{textopo}
%    \caption{Example of the \texttt{loopfoot} command. Shown is 
%    the muscarinic acetylcholine receptor with its relatively big
%    loop E. Settings are: \texttt{left} for `direction' and
%    10 for `neck' with a \texttt{loopextent} of 12.} \label{foot}
%    \end{figure}
%    
%    
%    A further change in the output can be achieved by flipping the
%    termini to the interior part of the protein. This leads to a
%    more compact plot on the one hand but makes
%    labeling more difficult due to less space on the other hand.
%    There are two commands available one for the N-terminus
%    (|\flipNterm|\label{mflipNterm}) and one for the C-terminus
%    (|\flipCterm|\label{mflipCterm}). This kind of structural
%    change might result in collisions with other loops. In such
%    a case one has to adjust the loop settings using
%    |\loopextent| or |\loopfoot|, see above. Fig.�\ref{flip} shows the 
%    flipping effect.
%    
%    \begin{figure}
%    \begin{textopo}
%       \Nterm{extra}
%       \MRs{23..44}
%       \MRs{58..81}
%       \MRs{93..114}
%       \MRs{135..159}
%       \MRs{181..204}
%       \MRs{235..258}
%       \MRs{268..289}
%       \sequence{MAPNGTASSFCLDSTACKITITVVLAVLILITVAGNVVVCLAVGLNRR
%       LRNLTNCFIVSLAITDLLLGLLVLPFSAIYQLSCKWSFGKVFCNIYTSLDVMLCTASI
%       LNLFMISLDRYCAVMDPLRYPVLVTPVRVAISLVLIWVISITLSFLSIHLGWNSRNET
%       SKGNHTTSKCKVQVNEVYGLVDGLVTFYLPLLIMCITYYRIFKVARDQAKRINHISSW
%       KAATIREHKATVTLAAVMGAFIICWFPYFTAFVYRGLRGDDAINEVLEAIVLWLGYAN
%       SALNPILYAALNRDFRTGYQQLFCCRLANRNSHKTSLRSNASQLSRTQSREPRQQEEK
%       PLKLQVWSGTEVTAPQGATDR}
%       \flipNterm \loopextent[N]{10}
%       \flipCterm \loopextent[C]{25[14]}
%       \hideTMlabels
%    \end{textopo}
%    \caption{The human gastric histamine receptor (H$_{2}$). An example 
%    for flipped termini.}\label{flip}
%    \end{figure}
%    
%    
%    
%    \subsubsection{Membrane domains}
%    \label{memdom}
%    
%    The |\MRs| command has already been extensively described 
%    [\ref{mMRs}]. But in some cases it might be helpful to be
%    able to clear the membrane domain settings, e.\,g.\ if the
%    definitions or preditions of a SwissProt- or PHD-file are
%    not acceptable and new settings should be made. Therefore,
%    |\clearMRs| \label{mclearMRs} was implemented. This command 
%    is self-explanatory. It has an immediate clearing effect on the
%    settings before the command.
%    
%    Another structural feature should be discussed as a membrane
%    domain topic, i.\,e.\ lipid membrane anchors 
%    (|\anchor{|\meta{pos}|}|)\label{manchor}.
%    This very easy to use command draws a symbolic lipid chain to
%    the residue at position \meta{pos} and attaches it to the 
%    membrane. See Fig.�\ref{figanchor} for an example.
%    
%    \begin{figure}
%    \begin{textopo}
%       \sequence{APFVL[LMLLASLNSCTNPWIYASF]SSSVSSELRSLL 
%       CCARGRTPPSLGPQDESCTTASSSLAKDTSS}
%       \anchor{37} \anchor{38} \loopextent{16}
%       \Nterm{extra} \hideNterm  \hidelegend \labelTM{1}{7}
%       \labeloutside[right]{extra}
%    \end{textopo}
%    \caption{An example for lipid anchors. The V$_{2}$-receptor
%    (only TM7 and C-terminus shown) contains two anchors which are
%    directly vicinal.}\label{figanchor}
%    \end{figure}
%    
%    
%    \subsubsection{Cosmetics on the membrane}
%    
%    As a default the membrane is shown as two horizontal lines
%    representing the borders. If a more solid appearance is
%    desired the command \label{mmembranecolors}
%    |\membranecolors{|\meta{border}|}{|\meta{interior}|}| can
%    be employed. It accepts PostScript color names (see 
%    section�\ref{colors}) for \meta{border} and \meta{interior},
%    e.\,g.\ |\membranecolors{WildStrawberry}{Bittersweet}|. The
%    thickness of the border lines can be set by 
%    \label{mborderthickness} |\borderthickness{|\meta{length}|}|,
%    e.\,g. |\borderthickness{4mm}|.
%                
%    The short texts that indicate which side of the
%    membrane is oriented to the extracellular and to the intracellular 
%    space can be 
%    changed by |\labeloutside[|\meta{pos}|]{|\meta{text}|}| 
%    \label{mlabeloutside} and \label{mlabelinside}
%    |\labelinside[|\meta{pos}|]{|\meta{text}|}|. The optional parameter
%    \meta{pos} tells \TeXtopo{}
%    whether to put the label |left| or |right| on the membrane. 
%    \medskip
%    
%    Example: |\labeloutside[left]{blood}| |\labelinside{cytosol}|. 
%    \medskip
%    
%    No indication of a preferential side leads to printing on the
%    |left| for the outside label and on the |right| for the inside.
%    For a fine adjustment of the label positions use 
%    \medskip
%    
%    \quad |\moveinsidelabel{|\meta{direction,distance} or \meta{x,y}|}|
%    \label{mmoveinsidelabel} and
%    
%    \label{mmoveoutsidelabel}
%    \quad |\moveoutsidelabel{|\meta{direction,distance} or \meta{x,y}|}|.
%    \medskip
%    
%    The parameter allows one to move the label
%    into \meta{direction} (see Fig.�\ref{rosette}) for the amount of
%    \meta{distance} units; only integer values are accepted here. One unit
%    equals to $1/5$th of the diameter of the residue symbol. This 
%    scheme is also used for most of the other move-commands which
%    are described later. An example would be: 
%    |\moveinsidelabel{WSW,10}|.
%    
%    \begin{figure}
%    \begin{centering}
%    \tt
%    \begin{tabular}{ccccc}
%    NW  & NNW &     N     & NNE & NE  \\
%    WNW &     &           &     & ENE \\
%     W  &     & $\otimes$ &     &  E  \\
%    WSW &     &           &     & ESE \\
%    SW  & SSW &     S     & SSE & SE  \\
%    \end{tabular}
%    \caption{Directions for label movements from the center position.}
%    \label{rosette}
%    \end{centering}
%    \end{figure}
%    
%    Since v1.2 intuitive \emph{x/y}-values can be used to define the
%    new position besides the method described above. An example would
%    be: |\moveinsidelabel{10,-37}| which moves the label 10 units to
%    the right and 37 units down. 
%    
%    The standard width of the membrane is one residue
%    symbol broader than the extension of the N- and C-termini. If 
%    the termini are flipped to the inside, the calculation of the 
%    width is based on the transmembrane domains. In order the change
%    the width manually use the command \label{mbroadenmembrane}
%    |\broadenmembrane{|\meta{left/right}|}{|\meta{length}|}|. The
%    first parameter selects which end of the membrane is to be changed.
%    The \meta{length} is an integer value which tells \TeXtopo{}
%    by how much the width should be changed. One unit represents
%    again $1/5$th of the residue symbol. Negativ values are permitted
%    to shorten the membrane, e.\,g. |\broadenmembrane{left}{-20}|.
%    Analogous to broadening the membrane the thickness can be changed
%    by \label{mthickenmembrane} 
%    |\thickenmembrane{|\meta{top/bottom}|}{|\meta{length}|}|.
%    
%    |\hidemembrane| \label{mhidemembrane} makes the membrane totally 
%    disappear, whereas |\showmembrane| \label{mshowmembrane} brings
%    it back again. 
%    
%    
%    \subsection{Putting labels on the plot}
%    
%    \subsubsection{Labeling loops and membrane domains}
%    
%    By default transmembrane domains are labeled with upper case
%    roman numerals. This is achieved by using the command
%    |\labelTMs{|\meta{style}|}|\label{mlabelTMs} with
%    \meta{style} = |\Romancount| in the standard settings. All available
%    \meta{style} options are shown in the table below:
%    
%    \begin{center}
%    \begin{tabular}{ll}
%    \emph{counter} & \emph{display} \\[2mm]
%    \label{mnumcount}|\numcount|       & 1, 2, 3 \ldots \\
%    \label{malphacount}|\alphacount|   & a, b, c \ldots \\
%    \label{mAlphacount}|\Alphacount|   & A, B, C \ldots \\
%    \label{mromancount}|\romancount|   & i, ii, iii \ldots \\
%    \label{mRomancount}|\Romancount|   & I, II, III \ldots \\
%    \end{tabular}
%    \end{center}
%    
%    Mind the backslash! This option is actually a command which is
%    executed in the very moment the label is printed. One can 
%    also use combinations of text and a counter, e.\,g.
%    |\labelTMs{TM\numcount}|.
%    In order to set a label for one particular transmembrane
%    domain use 
%    |\labelTM[|\meta{direction,distance} or \meta{x,y}|]{|\meta{num}|}{|\meta{label}|}|
%    \label{mlabelTM} (singular! no `s'). \meta{num} indicates the 
%    number of the TM which is to be labeled with the text in
%    \meta{label}. The optional parameter can be used as 
%    described before [\ref{mmoveinsidelabel}]. Here, 
%    \emph{x/y}-values also work.
%        
%    One can move individual transmembrane domain labels without
%    having to take care of the label text by applying
%    the command \label{mmoveTMlabel}
%    |\moveTMlabel{|\meta{num}|}{|\meta{direction,distance} or \meta{x,y}|}|.
%    The first parameter \meta{num} refers to the domain number, the next 
%    pair of parameters corresponds to the ones described above. The
%    color of the labels is set by \label{mTMlabelcolor}
%    |\TMlabelcolor{|\meta{color}|}|. 
%    For a description of the color codes see section�\ref{colors}.
%    The font styles are also adjustable, see section�\ref{fonthandling}.
%    One final command concerning transmembrane domain labels is the
%    self-explanatory |\hideTMlabels|\label{mhideTMlabels}.
%    
%    Labels for the extra- and intracellular loops are handled exactly
%    in the same way as the transmembrane domain labels by the 
%    following set of commands:
%    \medskip
%    
%    \quad|\labelloops{|\meta{style}|}|\label{mlabelloops}
%    
%    \quad|\labelloop[|\meta{direction,distance} or \meta{x,y}|]{|\meta{num}|}{|\meta{label}|}|
%    \label{mlabelloop}
%    
%    \quad|\movelooplabel{|\meta{num}|}{|\meta{direction,distance} or \meta{x,y}|}|
%    \label{mmovelooplabel}
%    
%    \quad|\looplabelcolor{|\meta{color}|}|\label{mlooplabelcolor}
%    
%    \quad|\hidelooplabels|\label{mhidelooplabels}
%    \medskip
%    
%    Two pairs of special commands show or hide the extensions 
%    (\textsf{\small H$_{\mathsf{2}}$N--} and \textsf{\small --COOH}) at 
%    the N- and C-termini; these are \label{mshowNterm}\label{mhideNterm}
%    \label{mshowCterm} \label{mhideCterm}
%    |\showNterm|, |\hideNterm|, |\showCterm| and |\hideCterm|.
%    
%    
%    \subsubsection{Shading and labeling sequence features}
%    
%    The first thing to do before a certain residue or a sequence
%    domain can be labeled is to define an appropriate shading style for
%    this sequence stretch. Use the command \label{mlabelstyle}
%    |\labelstyle{|\meta{name}|}{|\meta{shape}|}{|\meta{frame 
%    color}|}{|\meta{background color}|}{|\meta{char color}|}{|\meta{legend 
%    text}|}| to set all necessary informations which are
%    needed to define the shading. The first parameter \meta{name} is
%    an `identification' of this specific label style. This is needed 
%    to be able to refer to it. Then,
%    the \meta{shape} (|circ|, |box| or |diamond|) and the colors
%    for the symbol's rim, its background and the character in the center are
%    set. The available colors are described in section�\ref{colors}.
%    Finally, \meta{legend text} contains the text which is displayed
%    in the figure legend [\ref{mshowlegend}].
%    \medskip
%    
%    \vbox{%
%    Example: |\labelstyle{BlueDiamond}{diamond}|
%    
%                               \hfill|{Black}{Blue}{Yellow}{Example}|}
%    \medskip
%    
%    This new definition can be used from now on to shade and label one
%    or several single residues or sequence regions. It is a good
%    idea to store a collection of style definitions in a parameter
%    file (section�\ref{paramfilestruc}) to have them at hand whenever
%    needed in future projects. The next command attaches
%    the label to the positions to be labeled: \label{mlabelregion}
%    |\labelregion[|\meta{direction,distance} or \meta{x,y}|]{|\meta{list of 
%    regions}|}{|\meta{style name}|}{|\meta{label text}|}|.
%    
%    This command is more complex than it seems at first sight. The
%    optional parameter |[|\meta{direction,distance}|]| can be
%    used to move the label to a new position. The usage is as in
%    |\moveinsidelabel| [\ref{mmoveinsidelabel}].
%    The third parameter \meta{style name} calls the style
%    definitions, i.\,e.\ for the example above it would be 
%    |{BlueDiamond}|. The complexity lies is the second and 
%    especially the fourth parameter. The \meta{list of 
%    regions} has a similar syntax as the list in the |\MRs| 
%    [\ref{mMRs}] command. But here, the definition of both, the start
%    and the stop position of each region can be followed by an optional 
%    \meta{direction} parameter, i.\,e.\     
%    \medskip
%    
%    \vbox{%
%    |{|\meta{start1|[|\meta{direction}|]|..stop1|[|\meta{direction}|]|},\ldots,
%    
%    \hfill\meta{start n|[|\meta{direction}|]|..stop n|[|\meta{direction}|]|}|}|.}
%    \medskip
%    
%    It happens sometimes---especially in the bends of loops---that the 
%    residue number is being printed over another residue. In such a case 
%    the \meta{direction} parameter lets one choose a new direction in which 
%    the number will be displayed. All direction definitions  
%    shown in Fig.�\ref{rosette} are permitted. Note that here no 
%    setting of the distance is needed. If an asterisk is used as 
%    parameter the number will not be displayed at all. This might be
%    useful when positions are being labeled where not enough space is 
%    available for the number, e.\,g.\ within the dense
%    packing of a helical domain.
%    
%    Now, for the actual label text. The easiest way is to use plain
%    text as label. Then an example would simply be |{not fancy}|. If
%    one wants to add colors this has to be declared by an optional 
%    parameter right after the text, e.\,g.\ |{not fancy but red[Red]}|.
%    This text can further be boxed by extending the argument like
%    this: |{box:not fancy but red[Red]}|. A white box with a black frame
%    will be printed. Maybe colors would be nicer; an optional extension
%    does the job: |{box[Blue,Yellow]:not fancy but red[Red]}|. This will
%    produce a blue framed yellow box around the red text ``not fancy
%    but red'' which is quite fancy now. If the box frame and background 
%    are supposed to have the same color it is enough to indicate this only 
%    once, e.\,g.\ |{box[yellow]: ...}|. In addition to framed boxes two
%    more symbols are at hand: |{circ[col1,col2]: ...}| and
%    |{diamond[col1,col2]: ...}|. There is only space for
%    one letter in a circle or a diamond. If longer text is used it
%    will be printed over the rims of the symbol which looks rather
%    ugly. An appropriate application might be an encircled `P' to 
%    indicate a phosphorylation site. A last symbol |{tree}| does
%    not accept any text; it is meant to indicate glycosylation sites.
%    
%    The following example uses the previously defined shading style 
%    `BlueDiamond' for the residues and prints a red colored text in a 
%    blue framed yellow box to label the sequence stretch from position 20 to
%    30 and the single residue 76. Further, the labels are moved
%    westwards by 10 units (= 2 residue diameters) and the first position
%    number is hidden, the second is displayed beneath the residue,
%    whereas the third is not altered.
%    \medskip
%    
%    \vbox{%
%    \quad |\labelregion[W,10]{20[*]..30[S],76..76}{BlueDiamond}|
%    
%                      \hfill |{box[Blue,Yellow]:red plain text[Red]}|}
%    \medskip
%    
%    It should be mentioned that there are already two
%    shading styles predefined in \TeXtopo{} called |standard|
%    and |noshade|. The former style uses the definitions of the
%    standard residues for the labeled positions, the latter
%    style can be used to attach a label to a certain residue or
%    domain without influencing the residues. Such kinds of labels 
%    are handy when using calculated shading [\ref{mapplyshading}]
%    that should not be depended on any kind of labels.
%    
%    It is also possible to make almost all these settings directly 
%    in the |\sequence| [\ref{msequence}] definition similar to the
%    declaration of the membraneous domains [\ref{align}] without
%    knowing the position numbers. However, the command structure
%    will get rather complex and makes the readability of the
%    sequence worse the more optional parameters are defined. The 
%    following example uses the settings as the example above.
%    \medskip
%    
%    \vbox{%
%    |\sequence{MLNLFMISLDRYCAVMDPL|
%    
%    |([W,10]BlueDiamond[box[Blue,Yellow]:red plain text[Red]]=|
%    
%    |YPVLVTPVRVA)ISLVLIWVISITLSFLSIHLGWNSRNETSKGNHTTSKCKVQVNEV|
%    
%    |([W,10]BlueDiamond[box[Blue,Yellow]:red plain text[Red]]=|
%    
%    |G)LVDGLVTFYLPLLIMCITYYRIFKVARDQAKRINHISSW ...}|}
%    \medskip
%    
%    As I said, it gets complex. One might figure out how to use
%    this shading definition from the shown example. There is
%    one restriction of this method: the printing direction of the
%    position numbers relative to the residue can not be
%    influenced. Nevertheless, this 
%    kind of labeling might be useful for brief plain labels. For more
%    complex labels one better takes one extra step to figure out the 
%    exact position numbers by using `|*|'s in the |\sequence| command
%    [\ref{msequence}] in order to set the label afterwards with 
%    |\labelregion|.
%    
%    Two often occuring modifications can be labeled using some kind
%    of `short-cut' commands, i.\,e.\ \label{mphosphorylation}
%    |\phosphorylation{|\meta{list of positions}|}| and 
%    \label{mglycosylation}
%    |\glycosylation{|\meta{list of positions}|}|.
%    \medskip
%    
%    Example: |\phosphorylation{10,45,99} \glycosylation{123}|
%    \medskip
%    
%    Minor alterations concern the color of the residue number which
%    can be changed by |\countercolor{|\meta{color}|}| 
%    \label{mcountercolor} (again, for
%    colors see section�\ref{colors}), and the thickness of the line
%    that connects the label with the residue \label{mrulethickness}
%    (|\rulethickness{|\meta{thickness}|}|. Two examples:
%    \medskip
%    
%    \quad |\countercolor{Blue} \rulethickness{2pt}|
%    \medskip
%    
%    
%    \subsubsection{Placing additional labels}
%    
%    All kinds of labels discussed before are attached or related to
%    some protein segments. The command \label{mplace}
%    |\place[|\meta{num}|]{|\meta{x\%}|,|\meta{y\%}|}{|\meta{label}|}| 
%    allows one to place any kind of text to any position in 
%    the figure. The optional parameter \meta{num} is only 
%    necessary when plotting helical wheels [\ref{helwheel}].
%    The second parameter lets one set the position of the label.
%    The system underlying the position calculation differs from
%    that described in the previous commands. Here, the x- and
%    y-positions are expressed as percentages (\textit{x\%}
%    and \textit{y\%}) of the total width and height of the
%    plot with the origin in the lower left corner. So, |{0,0}|
%    places the label in this corner, |{0,100}| in the upper
%    left, |{100,0}| in the lower right, |{100,100}| in the 
%    upper right corner and |{50,50}| in the center of the figure.
%    Of course, any other setting is also permitted. \meta{label}
%    finally, holds the label text which can further contain any
%    desired \LaTeX{} style modification command.
%    \medskip
%    
%    Example: |\place{10,90}{\textbf{\Large Topology example}}|
%    \medskip
%    
%    
%    \subsubsection{Adding protein tags and changing the numbering}
%    
%    In some cases the protein which is plotted contains artificial
%    tags for affinity purification, e.\,g.\ a oligo-His-tag, for
%    antibody detection, e.\,g.\ a myc-tag, or for other purposes,
%    e.\,g.\ a GFP-fusion etc. Using \TeXtopo{} one can attach
%    those tags to the termini of the protein without altering its
%    numbering, i.\,e.\ the sequence tagged to the N-terminus will
%    be numbered with negative digits so that the original 
%    start-methionine will still be number one. The syntax of the
%    commands for adding tags to the N- and C-terminus is very similar 
%    to the |\labelregion| command [\ref{mlabelregion}]:
%    \label{maddtagtoNterm}\label{maddtagtoCterm}
%    \medskip
%    
%    \vbox{%
%    \quad|\addtagtoNterm[|\meta{direction,distance} or \meta{x,y}|]{|\meta{tag sequence}|}|
%    
%    \hfill|{|\meta{style name}|}{|\meta{label text}|}|}
%    
%    \vbox{%
%    \quad|\addtagtoCterm[|\meta{direction,distance} or \meta{x,y}|]{|\meta{tag sequence}|}|
%    
%    \hfill|{|\meta{style name}|}{|\meta{label text}|}|}
%    
%    \medskip
%    
%    In contrast to |\labelregion| no definition of the positions is
%    necessary because the location is clear anyway (N- or C-terminus).
%    Instead of that the sequence of the tag needs to be entered as the
%    second parameter. Everything else is identical to |\labelregion|.
%    \medskip
%    
%    Example: |\addtagtoNterm[N,8]{MEQKLISEEDAAA}{myc}{myc-tag}|
%    \medskip
%    
%    This attaches a myc-tag and a spacer of three alanines to the 
%    N-terminus, shades the tag with a style named |myc| and prints
%    the label text |myc-tag| which is moved to the North by eight
%    units. The following original start-methionine still is no.�1, whereas
%    the new start-methionine of the myc-tag is no.�$-13$, then 
%    counting up to $-1$ for the last of the three alanines.
%    
%    Another possibility to change the residue numbering is the command
%    \label{mseqstart}|\seqstart{|\meta{num}|}|. This lets one set
%    any number---except 0---as the sequence start. One application
%    would be proteins with pro-peptides. Here, the pro-peptide could 
%    be negatively numbered ending up with no.�1 at the starting position
%    of the mature protein.
%    
%    
%    \subsubsection{Applying calculated shading}
%    \label{appshad}
%    
%    As already pointed out in section�\ref{ts},
%    a special feature of \TeXtopo{} is its ability to communicate
%    with \TeXshade{} and use the shading calculated by this
%    comprehensive alignment shading programm in a topology
%    plot to indicate residue conservation or functional aspects,
%    see examples in Fig.\ \ref{figshad} and \ref{figwheelshad}. 
%    
%    In order to use \TeXshade{}'s calculated residue shading in 
%    to\-po\-lo\-gy plots
%    the package must be loaded in the document header by
%    |\usepackage[|\meta{option}|]{texshade}|. This command must be given \emph{before}
%    loading the \TeXtopo{} package! This is due to some 
%    re-definitions \TeXtopo{} does on \TeXshade{} commands. So,
%    the document header must contain the following two commands:
%    \medskip
%    
%    \vbox{%
%    \quad|\usepackage[|\meta{option}|]{texshade}|
%    
%    \quad|\usepackage[|\meta{option}|]{textopo}|}
%    \medskip
%    
%    A safer possibility is to load both biological packages by declaring 
%    \label{mbiotex}|\usepackage[|\meta{option}|]{biotex}| instead of the commands above. 
%    \BioTeX{} does not provide new command definitions; it only
%    organizes the loading of the packages (so far \TeXshade{} and
%    \TeXtopo{} are available---but the collection is going to be
%    extended) in the correct order and checks for the appropriate
%    version numbers. The \BioTeX{} style has been produced automatically
%    when \TeXtopo{} was extracted from the docstrip archive. Keep
%    this file in a directory searched by \TeX, e.\,g.\ together
%    with your \TeXtopo{} files.
%    
%    At this point
%    it is refered to the \TeXshade{} manual for an extensive
%    description of the different shading modes. Here, only
%    a basic overview will be given.
%        
%    \begin{description}
%    \item[Identity mode:]
%    This basic type of shading is provided by almost any alignment
%    program. All identical residues at a position are shaded if the
%    number of matching residues is higher than a given threshold
%    percentage.
%    \medskip
%    
%    
%    \item[Similarity mode:]
%    Consider an alignment position where three out of five residues are basic
%    arginines and two more residues are also basic lysines.
%    In similarity mode \TeXshade{} shades similar residues in a different 
%    color to distinguish them from the consensus residue. Even when 
%    none of the residues alone reaches the 
%    threshold but a group of similar residues does these are shaded
%    in the `similarity' color. This case is given for instance
%    when at a position in a five sequence alignment two aliphatic 
%    valines and two also aliphatic isoleucins are present and the 
%    threshold is set to 50\%. Neither residue exceeds this percentage 
%    but as a group of similars they do. 
%    
%    \item[Functionality modes:]
%    Displaying functional peptide similarities is one of \TeXshade's
%    strong capabilities. Six functional shading modes are predefined,
%    see references [4--7];
%    further user specific modes can easily be created.
%    
%    \begin{itemize}
%    \item |charge|: residues which are charged at physiological pH
%                    (7.4) are shaded if their number at a position
%                    is higher than the threshold
%                    
%    \item |hydropathy|: discrimination between acidic and
%                        basic, polar uncharged and hydrophobic nonpolar residues
%    
%    \item |structure|: displays the potential
%                        localization within the tertiary structure of
%                        the protein 
%    
%    \item |chemical|: residues are shaded due to chemical 
%                      properties of
%                      their functional groups
%                      
%          
%    \item |standard area|: this shading displays the surface 
%                      area sizes
%                      of the different amino acid's sidechains
%                      
%    \item |accessible area|: 
%                     here, the surface area which can
%                     be accessed by solvent molecules is used as a 
%                     basis for shading; low accessibility means 
%                     hydrophobic (i.\,e.\ strongly buried 
%                     residues), whereas highly accessible 
%                     sidechains are hydrophilic (compare to
%                     |hydropathy| and |structure|)
%    \end{itemize}
%    \end{description}
%    
%    For the first two modes (|identical|, |similar|) an
%    alignment file containing the sequence to be plotted is needed
%    on which the shading calculation will be based. The syntax
%    is as follows:
%    \medskip
%    
%    \label{mapplyshading}
%    \quad|\applyshading[|\meta{num}|]{|\meta{mode}|}{|\meta{filename}|}|
%    \medskip
%    
%    The optional \meta{num} tells \TeXtopo{} which sequence number within
%    the alignment corresponds to the sequence to be plotted. If no 
%    \meta{num} is indicated the top sequence will be taken (no.�1).
%    The second parameter \meta{mode} selects the shading mode. Options
%    are |identical| and |similar|. Finally, the file name of the
%    alignment is the argument of the third parameter. For the
%    alignment file formats see the \TeXshade{} manual and the example
%    files |AQPpro.MSF| and |AQP2spec.ALN| or \ref{align}. 
%   
%    All \TeXshade{} commands
%    are applicable to obtain the desired shading, e.\,g.\ 
%    \label{mthreshold}|\threshold|, \label{mshadingcolors}|\shadingcolors| or 
%    \label{mallmatchspecial}|\allmatchspecial|. The function of these
%    commands is to set the threshold percentage for the consensus, e.\,g.\ 
%    |\threshold{50}|, select another colorscheme (see section�\ref{colused}),
%    e.\,g.\ |\shadingcolors{greens}|, or use a special color
%    for positions where all residues match. The counterpart of 
%    |\allmatchspecial| is \label{mallmatchspecialoff}|\allmatchspecialoff|.
%    \medskip
%    
%    \quad|\applyshading[3]{similar}{file.MSF} \allmatchspecial|
%    \medskip
%    
%    This example calculates shading for the third sequence of the alignment 
%    file |file.MSF| and shades all similar and conserved positions plus the 
%    positions with 100\% identity in different colors. See also the
%    example on page \pageref{tsexample}.
%    
%    The colors for each matching quality are changeable by the next
%    four commands:
%    \label{mstandardresidues}
%    \label{msimilarpositions}
%    \label{mconservedpositions}
%    \label{minvariablepositions}
%    \medskip
%    
%    \quad|\standardresidues{|\meta{style}|}{|\meta{frame}|}{|\meta{background}|}{|\meta{char}|}|
%    
%    \quad|\similarpositions{|\meta{style}|}{|\meta{frame}|}{|\meta{background}|}{|\meta{char}|}|
%    
%    \quad|\conservedpositions{|\meta{style}|}{|\meta{frame}|}{|\meta{background}|}{|\meta{char}|}|
%    
%    \quad|\invariablepositions{|\meta{style}|}{|\meta{frame}|}{|\meta{background}|}{|\meta{char}|}|
%    
%    \medskip
%    
%    The \meta{style} options are: |circ|, |box|, and |diamond|. The
%    next three parameters are color definitions for the symbol
%    \meta{frame}, its \meta{background}, and the residue \meta{char}.
%    \medskip
%    
%    Example: |\conservedpositions{circ}{Black}{Blue}{White}|
%    \medskip
%    
%    
%    
%    Mostly, in alignments the starting methionine is shaded with the
%    color for highly conserved residues, simply because every protein
%    starts out with a methionine, except for the cases where some
%    kind of maturation takes place. Anyway, this methionine has 
%    usually no particular function in the protein. Hence, the 
%    shading for it is deactivated by default in \TeXtopo{} by the
%    command \label{mdonotshadestartMet}|\donotshadestartMet| in 
%    the standard settings. To re-active the shading use 
%    \label{mshadestartMet}|\shadestartMet|.
%    
%    The third group of functional shading modes is calculated on the
%    topology sequence itself. Hence, no alignment file must be
%    loaded which changes the |\applyshading| command somewhat:
%    \medskip
%    
%    \quad|\applyshading[|\meta{parameterfile}|]{|\meta{mode}|}{|\meta{group}|}|
%    
%    \medskip
%    
%    Here, \meta{mode} is |functional| and \meta{group} is one of the
%    amino acid groupings described above (|charge|, |hydropathy|,
%    |structure|, |chemical|, |sidechain area|, and |accessible area|).
%    The optional parameter loads a \TeXshade{} parameter file. This 
%    allows one to apply shading modes from a user-defined collection without 
%    any hassles.
%    \medskip
%    
%    Example: |\applyshading{functional}{charge}|
%    \medskip
%    
%    This shades all charged residues in the topology plot according
%    to the color definitions of the functional shading mode
%    |charge|, see section�\ref{colused}.
%    
%    Again, it is refered to the \TeXshade{} manual for an extensive
%    exploitation of the given possibilities.    
%    
%    
%    \subsubsection{The figure legend}
%   
%    Legends are automatically printed when necessary, i.\,e.\ when
%    labels are used [\ref{mlabelstyle}] or calculated shading is 
%    applied [\ref{mapplyshading}]. Then, an example residue is 
%    shown and the explanation of the shading behind it, as
%    defined in |\labelstyle| or in the shading mode. The output of
%    the legend can be suppressed by \label{mhidelegend}|\hidelegend|,
%    or if needed turned on again by \label{mshowlegend}|\showlegend|.
%    If the position of the legend below the figure is not satisfying
%    one can move it using the command \label{mmovelegend}
%    |\movelegend{|\meta{x-offset}|}{|\meta{y-offset}|}|. The two 
%    parameters are \TeX{} lengths, e.\,g. |\movelegend{5cm}{-3cm}| 
%    moves the legend 5\,cm to the right and 3\,cm up.
%    
%    
%    \subsection{Plotting helical wheels}
%    \label{helwheel}
%    
%    Almost everything that has been said before is also true for
%    using the |helical wheel| environment [\ref{wheelenv}]. One can
%    load and label the sequence exactly as described before. There is one 
%    minor restriction to the labeling: in helical wheels no label
%    text will be displayed. But the |\place| [\ref{mplace}] command is
%    fully functional. Here, the optional parameter refers to the wheel, 
%    i.\,e.\ the number of the transmembrane domain, in which the 
%    label is to be placed. The \meta{x\%} and \meta{y\%} values
%    are now according to the dimensions of one wheel rather than the
%    whole figure.
%    
%    The style of the helix (perspective, flat wheel or net) can be
%    set by the command |\helixstyle{|\meta{style}|}| 
%    \label{mhelixstyle} with |perspective|, |wheel| or |net| as 
%    \meta{style}. The different outputs are shown in Figure 
%    \ref{figstyle}. 
%    
%        
%    \begin{figure}
%    \begin{minipage}[t]{7cm}
%       {\LARGE\sf A}
%       \vspace*{-1,5cm}
%       \begin{helicalwheel}{1}
%         \getsequence{PHD}{AQP1.PHD}
%         \applyshading{functional}{chemical} \hidelegend
%         \showmoment
%       \end{helicalwheel}
%    \end{minipage}
%    \begin{minipage}[t]{7cm}
%       {\LARGE\sf B}
%       \vspace*{-5,1cm}
%       \begin{helicalwheel}{1}
%         \getsequence{PHD}{AQP1.PHD}
%         \applyshading{functional}{chemical} \hidelegend
%         \helixstyle{net}
%       \end{helicalwheel}
%    \end{minipage}
%    \begin{minipage}[t]{7cm}
%       {\LARGE\sf C}
%       \vspace*{-1,5cm}
%       \begin{helicalwheel}{1}
%         \getsequence{PHD}{AQP1.PHD}
%         \applyshading{functional}{chemical} \hidelegend
%         \helixstyle{wheel}
%         \showmoment
%       \end{helicalwheel}
%    \end{minipage}
%    \caption{The different helical wheel styles \texttt{perspective} (A), 
%    \texttt{net} (B) and \texttt{wheel} (C) with indication of the
%    hydrophobic moment.} \label{figstyle}
%    \end{figure}
%    
%    In the |net| display the optional parameter
%    which can follow the wheel number in the |\begin{helicalwheel}|
%    call (see \ref{wheelenv}) does not represent an angle but defines 
%    where to start the net plot. Numbers from 1--7 are allowed here. 
%    This can be handy if a certain viewing angle on the helix should 
%    be displayed in order to show e.g. a hydrophobic core.
%    Figure \ref{netstart} examplary shows all possible starting points 
%    of the same helical sequence.
%    
%    \begin{figure}
%    \begin{minipage}[t]{4cm}
%       {\LARGE\sf 1}
%       \vspace*{-5,1cm}
%       \begin{helicalwheel}{1[1]}
%         \getsequence{PHD}{AQP1.PHD}
%         \applyshading{functional}{chemical} \hidelegend
%         \helixstyle{net}
%       \end{helicalwheel}
%    \end{minipage}
%    \begin{minipage}[t]{4cm}
%       {\LARGE\sf 2}
%       \vspace*{-5,1cm}
%       \begin{helicalwheel}{1[2]}
%         \getsequence{PHD}{AQP1.PHD}
%         \applyshading{functional}{chemical} \hidelegend
%         \helixstyle{net}
%       \end{helicalwheel}
%    \end{minipage}
%    \begin{minipage}[t]{4cm}
%       {\LARGE\sf 3}
%       \vspace*{-5,1cm}
%       \begin{helicalwheel}{1[3]}
%         \getsequence{PHD}{AQP1.PHD}
%         \applyshading{functional}{chemical} \hidelegend
%         \helixstyle{net}
%       \end{helicalwheel}
%    \end{minipage}
%    
%    \vspace*{1cm}
%    \begin{minipage}[t]{4cm}
%       {\LARGE\sf 4}
%       \vspace*{-5,1cm}
%       \begin{helicalwheel}{1[4]}
%         \getsequence{PHD}{AQP1.PHD}
%         \applyshading{functional}{chemical} \hidelegend
%         \helixstyle{net}
%       \end{helicalwheel}
%    \end{minipage}
%    \begin{minipage}[t]{4cm}
%       {\LARGE\sf 5}
%       \vspace*{-5,1cm}
%       \begin{helicalwheel}{1[5]}
%         \getsequence{PHD}{AQP1.PHD}
%         \applyshading{functional}{chemical} \hidelegend
%         \helixstyle{net}
%       \end{helicalwheel}
%    \end{minipage}
%    \begin{minipage}[t]{4cm}
%       {\LARGE\sf 6}
%       \vspace*{-5,1cm}
%       \begin{helicalwheel}{1[7]}
%         \getsequence{PHD}{AQP1.PHD}
%         \applyshading{functional}{chemical} \hidelegend
%         \helixstyle{net}
%       \end{helicalwheel}
%    \end{minipage}
%    
%    \vspace*{1cm}
%    \begin{minipage}[t]{4cm}
%       {\LARGE\sf 7}
%       \vspace*{-5,1cm}
%       \begin{helicalwheel}{1[7]}
%         \getsequence{PHD}{AQP1.PHD}
%         \applyshading{functional}{chemical} \hidelegend
%         \helixstyle{net}
%       \end{helicalwheel}
%    \end{minipage}
%    \caption{Net starting points 1--7 of the same sequence. In the 
%    first net the hydrophilic residues are at the sides, whereas 
%    net \#3 shows them in the center.} \label{netstart}
%    \end{figure}
%    
%    The size of the wheels can be changed by the 
%    |\scalewheel{|\meta{scale\%}|}|\label{mscalewheel} command.
%    The wheel's original diameter is multiplied by the given
%    percentage to increase (\meta{scale\%} $>100$) or decrease 
%    (\meta{scale\%} $<100$) the
%    output.
%    \medskip
%    
%    Example: |\scalewheel{50}| reduces the diameter to 50\%
%    \medskip
%    
%    The size of the residue symbols can then be adjusted by
%    the command \label{msymbolsize}|\symbolsize{|\meta{size}|}|. Three 
%    \meta{size}s are applicable: |small|, |medium| and |large|.
%    
%    Depending on the diameter of the wheel \TeXtopo{} calculates
%    the highest possible number of wheels which can be printed
%    in one row without colliding with the text width settings. If
%    the number of wheels per line should be altered the command
%    \label{mwheelsperline}|\wheelsperline{|\meta{num}|}| will
%    help. Changing the calculated amount of wheels per line will
%    most probably result in \TeX{} run-time warnings due to
%    |overful hbox|es.
%    
%    One can choose the viewing direction on the helical wheels by
%    \label{mviewfromextra}|\viewfromextra| and 
%    \label{mviewfromintra}|\viewfromintra|. The first setting
%    will show the helices as if viewed from the extracellular space 
%    onto the cell membrane (recognizable by the residue numbering) 
%    and vice versa for the second case. 
%    
%    In the perspective and the wheel display the hydrophobic moment
%    according to \textsc{David Eisenberg} of the helix can be shown as a line 
%    with a square at the end.
%    The direction of the line depicts the angle and the area of the
%    square the moment. To turn this on use |\showmoment| 
%    \label{mshowmoment} and |\hidemoment| \label{mhidemoment} turns it
%    off again. Different values obtained from the calculation can
%    be printed for every helix by the following commands with
%    \meta{helixnum} refering to the helix in question. These commands
%    can only be used outside the |helicalwheel| environment or in the 
%    caption.
%    \medskip
%    
%    \begin{centering}
%    \begin{tabular}{ll}
%       |\Hmean{|\meta{helixnum}|}|   & hydrophobicity per residue \\
%       |\muH{|\meta{helixnum}|}|     & ($\mu$H) hydrophobic moment \\
%       |\muHmean{|\meta{helixnum}|}| & hydrophobic moment per residue \\
%       |\mudelta{|\meta{helixnum}|}| & angle of the hydrophobic moment \\
%       \label{mHmean} \label{mmuH} \label{mmuHmean} \label{mmudelta} 
%    \end{tabular}
%    \end{centering}
%    
%    The color of the moment indicator can be changed by 
%    the command \label{mmomentcolor}
%    |\momentcolor{|\meta{color}|}|. The length of the line can be
%    scaled by \label{mscalemoment} |\scalemomemt{|\meta{scale\%}|}|
%    just like in the |\scalewheel| command mentioned before.
%    
%    
%    Finally, two command pairs show or hide the residue numbering
%    and the bonds between the residue symbols:
%    \medskip
%    
%    \quad\label{mshowwheelnumbering}|\showwheelnumbering|
%    
%    \quad\label{mhidewheelnumbering}|\hidewheelnumbering|
%    
%    \quad\label{mshowbonds}|\showbonds|
%    
%    \quad\label{mhidebonds}|\hidebonds|
%    
%    
%    
%    
%    \subsection{Changing font styles}
%    \label{fonthandling}
%    
%    \label{msetfamily}\label{msetseries}
%    \label{msetshape}\label{msetsize}
%    The font styles for the legends, and the loop-, TM- and
%    residue labels can be changed by several commands.
%    \medskip
%    
%    \quad|\setfamily{|\meta{text}|}{|\meta{family}|}|
%    
%    \quad|\setseries{|\meta{text}|}{|\meta{series}|}|
%    
%    \quad|\setshape{|\meta{text}|}{|\meta{shape}|}|
%    
%    \quad|\setsize{|\meta{text}|}{|\meta{size}|}|
%    \medskip
%    
%    The first parameter selects the text whose style is to be
%    changed. Possible first parameters are
%    |legend|, |labels|, |looplabels| and |TMlabels|.
%    \medskip
%    
%    The style is set by the second parameter:
%    
%    \begin{center}
%    \begin{tabular}{lll}
%    command & \meta{2. parameter} & \\
%    \hline
%    |\setfamily| & |rm| & modern roman font family \\
%           & |sf| & sans serif font family \\
%           & |tt| & typewriter font family \\ \hline
%    |\setseries| & |bf| & bold face series \\
%           & |md| & normal series \\ \hline
%    |\setshape|  & |it| & italics shape \\
%           & |sl| & slanted shape \\
%           & |sc| & small capitals shape \\
%           & |up| & upright shape \\ \hline
%    |\setsize|   & |tiny| & the known \TeX{} sizes \\
%           & |scriptsize| & \\
%           & |footnotesize| & \\
%           & |small| & \\
%           & |normalsize| & \\
%           & |large| & \\
%           & |Large| & \\
%           & |LARGE| & \\
%           & |huge| & \\
%           & |Huge| & \\ \hline
%    \end{tabular}
%    \end{center}
%    
%    Example: |\setfamily{labels}{it} \setseries{labels}{bf}|
%    \medskip
%    
%    \label{msetfont}
%    With the command
%    \medskip 
%    
%    \quad|\setfont{|\meta{text}|}{|\meta{family}|}{|\meta{series}|}{|\meta{shape}|}{|\meta{size}|}|
%    \medskip
%    
%    all four font attributes of one \meta{text} can be changed 
%    simultaneously. The order of the parameters is as indicated.
%    \medskip
%    
%    Example: |\setfont{labels}{rm}{it}{bf}{normalsize}|
%    \medskip
%    
%    Further, short commands are provided to change single font
%    attributes quickly. The following commands show examplary
%    how to change the settings for labels. 
%    \medskip
%    \enlargethispage{\baselineskip}
%    
%    \quad |\labelsrm| \quad |\labelstiny| \label{mlabelsrm}
%    
%    \quad |\labelssf| \quad |\labelsscriptsize|
%    
%    \quad |\labelstt| \quad |\labelsfootnotesize|
%    
%    \quad |\labelsbf| \quad |\labelssmall|
%    
%    \quad |\labelsmd| \quad |\labelsnormalsize|
%    
%    \quad |\labelsit| \quad |\labelslarge|
%    
%    \quad |\labelssl| \quad |\labelsLarge|
%    
%    \quad |\labelssc| \quad |\labelsLARGE|
%    
%    \quad |\labelsup| \quad |\labelshuge|
%    
%    \quad |         | \quad |\labelsHuge|
%    \medskip
%    
%    Corresponding sets are provided for
%    loop labels (|\looplabelsrm| etc.), TM labels
%    (|\TMlabelsrm| etc.) and legend texts (|legendrm| etc.).
%    
%    
%    
%    \section{The DVIPS color selection scheme}
%    \label{colors}
%    
%    \textsc{PostScript} provides 64 standard colors. All these 
%    colors are predefined in the |dvips| package. Each color
%    has a pictorial name such as |Bittersweet| and a distinct 
%    composition, e.\,g.\ 0\% cyan + 75\% magenta + 100\% yellow + 
%    24\% black---the so-called CMYK scheme. \TeXtopo{} enhances this
%    color scheme by gray scales in 5\% steps. 
%    The following colors and grays can be used in \TeXtopo{} by 
%    simply declaring the name of the color in the respective 
%    command, e.\,g.\ |\membranecolors|:
%    
%    
%    \begin{tabbing}
%    \emph{name}\hspace{2.1cm}\= \emph{CMYK}\hspace{1.8cm}
%    \=\emph{name}\hspace{2.1cm}\= \emph{CMYK}\\
%    
%     GreenYellow   \>{0.15,0,0.69,0}\>Yellow        \>{0,0,1,0}\\
%     Goldenrod     \>{0,0.10,0.84,0}\>Dandelion     \>{0,0.29,0.84,0}\\
%     Apricot       \>{0,0.32,0.52,0}\> Peach         \>{0,0.50,0.70,0}\\
%     Melon         \>{0,0.46,0.50,0}\> YellowOrange  \>{0,0.42,1,0}\\
%     Orange        \>{0,0.61,0.87,0}\>BurntOrange   \>{0,0.51,1,0}\\
%     Bittersweet   \>{0,0.75,1,0.24}\> RedOrange     \>{0,0.77,0.87,0}\\
%     Mahagony      \>{0,0.85,0.87,0.35}\>Maroon        \>{0,0.87,0.68,0.32}\\
%     BrickRed      \>{0,0.89,0.94,0.28}\> Red           \>{0,1,1,0}\\
%     OrangeRed     \>{0,1,0.50,0}\> RubineRed     \>{0,1,0.13,0}\\
%     WildStrawberry\>{0,0.96,0.39,0}\> Salmon        \>{0,0.53,0.38,0}\\
%     CarnationPink \>{0,0.63,0,0}\> Magenta       \>{0,1,0,0}\\
%     VioletRed     \>{0,0.81,0,0}\> Rhodamine     \>{0,0.82,0,0}\\
%     Mulberry      \>{0.34,0.90,0,0.02}\> RedViolet     \>{0.07,0.90,0,0.34}\\
%     Fuchsia       \>{0.47,0.91,0,0.08}\>Lavender      \>{0,0.48,0,0}\\
%     Thistle       \>{0.12,0.59,0,0}\>Orchid        \>{0.32,0.64,0,0}\\
%     DarkOrchid    \>{0.40,0.80,0.20,0}\> Purple        \>{0.45,0.86,0,0}\\
%     Plum          \>{0.50,1,0,0}\>Violet        \>{0.79,0.88,0,0}\\
%     RoyalPurple   \>{0.75,0.90,0,0}\>BlueViolet    \>{0.86,0.91,0,0.04}\\
%     Periwinkle    \>{0.57,0.55,0,0}\> CadetBlue     \>{0.62,0.57,0.23,0}\\
%     CornflowerBlue\>{0.65,0.13,0,0}\>MidnightBlue  \>{0.98,0.13,0,0.43}\\
%     NavyBlue      \>{0.94,0.54,0,0}\>RoyalBlue     \>{1,0.50,0,0}\\
%     Blue          \>{1,1,0,0}\>Cerulean      \>{0.94,0.11,0,0}\\
%     Cyan          \>{1,0,0,0}\> ProcessBlue   \>{0.96,0,0,0}\\
%     SkyBlue       \>{0.62,0,0.12,0}\>Turquoise     \>{0.85,0,0.20,0}\\
%     TealBlue      \>{0.86,0,0.34,0.02}\>Aquamarine    \>{0.82,0,0.30,0}\\
%     BlueGreen     \>{0.85,0,0.33,0}\> Emerald       \>{1,0,0.50,0}\\
%     JungleGreen   \>{0.99,0,0.52,0}\>SeaGreen      \>{0.69,0,0.50,0}\\
%     Green         \>{1,0,1,0}\>ForestGreen   \>{0.91,0,0.88,0.12}\\
%     PineGreen     \>{0.92,0,0.59,0.25}\> LimeGreen     \>{0.50,0,1,0}\\
%     YellowGreen   \>{0.44,0,0.74,0}\>SpringGreen   \>{0.26,0,0.76,0}\\
%     OliveGreen    \>{0.64,0,0.95,0.40}\>RawSienna     \>{0,0.72,1,0.45}\\
%     Sepia         \>{0,0.83,1,0.70}\>Brown         \>{0,0.81,1,0.60}\\
%     Tan           \>{0.14,0.42,0.56,0}\>\>\\
%     White (Gray0)  \>{0,0,0,0}\>Black (Gray100)    \>{0,0,0,1}\\
%     Gray5          \>{0,0,0,0.05}\>Gray10          \>{0,0,0,0.10}\\
%     Gray15          \>{0,0,0,0.15}\>Gray20          \>{0,0,0,0.20}\\
%     Gray25          \>{0,0,0,0.25}\> Gray30          \>{0,0,0,0.30}\\
%     LightGray       \>{0,0,0,0.33}\> Gray35          \>{0,0,0,0.35}\\
%     Gray40          \>{0,0,0,0.40}\>Gray45          \>{0,0,0,0.45}\\
%     Gray50          \>{0,0,0,0.50}\> Gray          \>{0,0,0,0.50}\\
%     Gray55          \>{0,0,0,0.55}\> Gray60          \>{0,0,0,0.60}\\
%     Gray65          \>{0,0,0,0.65}\> DarkGray        \>{0,0,0,0.66}\\
%     Gray70          \>{0,0,0,0.70}\> Gray75          \>{0,0,0,0.75}\\
%     Gray80          \>{0,0,0,0.80}\>Gray85          \>{0,0,0,0.85}\\
%     Gray90          \>{0,0,0,0.90}\> Gray95          \>{0,0,0,0.95}\\
%    \end{tabbing}
%    
%    Type the color names with the upper case letters exactly as described above.
%    For the definition of new colors use the |dvips| command in the
%    document header section:
%    \medskip
%    
%    \quad|\DefineNamedColor{named}{|\meta{name}|}{cmyk}{|\meta{C,M,Y,K}|}|
%    \medskip
%    
%    The \meta{name} can be chosen freely, the values for the color
%    composition must be in the range 0--1, i\,e.\ 0--100\% of the 
%    respective component (`C' -- cyan, `M' -- magenta, `Y' -- yellow,
%    `K' -- black) separated by commas.
%    \medskip
%    
%    Example: 
%    \medskip
%    
%    |\DefineNamedColor{named}{Salmon}{cmyk}{0,0.53,0.38,0}|
%    
%    \section{Colors used in the different shading modes}
%    \label{colused}
%    
%    \vspace{5mm}
%    
%    \vbox{%
%    Color scheme \emph{blues}:
%    \medskip
%    
%    \begin{tabbing}
%    \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\
%    \>Black \> White   \> no match \\
%    \>Black \> Magenta \> similar  \\
%    \>White \> RoyalBlue \> identical \\
%    \>Goldenrod \> RoyalPurple \> all match\\
%    \end{tabbing}}
%    \medskip
%    
%    \vbox{%
%    Color scheme \emph{greens}:
%    \medskip
%    
%    \begin{tabbing}
%    \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\
%    \>Black \> White   \> no match \\
%    \>Black \> GreenYellow \> similar  \\
%    \>White \> PineGreen \> identical \\
%    \>YellowOrange \> OliveGreen \> all match\\
%    \end{tabbing}}
%    \medskip
%    
%    \vbox{%
%    Color scheme \emph{reds}:
%    \medskip
%    
%    \begin{tabbing}
%    \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\
%    \>Black \> White   \> no match \\
%    \>Black \> YellowOrange \> similar  \\
%    \>White \> BrickRed \> identical \\
%    \>YellowGreen \> Mahagony \> all match\\
%    \end{tabbing}}
%    \medskip
%    
%    \vbox{%
%    Color scheme \emph{grays}:
%    \medskip
%    
%    \begin{tabbing}
%    \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\
%    \>Black \> White   \> no match \\
%    \>Black \> LightGray \> similar  \\
%    \>White \> DarkGray \> identical \\
%    \>White \> Black \> all match\\
%    \end{tabbing}}
%    \medskip
%    
%    \vbox{%
%    Color scheme \emph{black}:
%    \medskip
%    
%    \begin{tabbing}
%    \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\
%    \>Black \> White   \> no match \\
%    \>Black \> White \> similar  \\
%    \>White \> Black \> identical \\
%    \>White \> Black \> all match\\
%    \end{tabbing}}
%    \medskip
%    
%    \vbox{%
%    Functional mode \emph{charge}:
%    \medskip
%    
%    \begin{tabbing}
%    \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\
%    \>Black \> White   \> no match \\
%    \>White \> Red \> acidic  \\
%    \>White \> Blue \> basic \\
%    \end{tabbing}}
%    \medskip
%    
%    \vbox{%
%    Functional mode \emph{hydropathy}:
%    \medskip
%    
%    \begin{tabbing}
%    \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\
%    \>Black \> White   \> no match \\
%    \>White \> Red \> acidic  \\
%    \>White \> Blue \> basic \\
%    \>Black \> Yellow   \> polar uncharged \\
%    \>White \> Green   \> hydrophobic nonpolar \\
%    \end{tabbing}}
%    \medskip
%    
%    \vbox{%
%    Functional mode \emph{chemical}:
%    \medskip
%    
%    \begin{tabbing}
%    \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\
%    \>Black \> White   \> no match \\
%    \>White \> Red \> acidic  \\
%    \>White \> Black \> aliphatic  \\
%    \>White \> Green \> amide  \\
%    \>White \> Brown \> aromatic  \\
%    \>White \> Blue \> basic \\
%    \>Black \> Magenta   \> hydroxyl \\
%    \>Black \> Orange   \> imino \\
%    \>Black \> Yellow   \> sulfur \\
%    \end{tabbing}}
%    \medskip
%    
%    \vbox{%
%    Functional mode \emph{structure}:
%    \medskip
%    
%    \begin{tabbing}
%    \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\
%    \>Black \> White   \> no match \\
%    \>Black \> Orange \> external  \\
%    \>Black \> Yellow   \> ambivalent \\
%    \>White \> Green \> internal  \\
%    \end{tabbing}}
%    \medskip
%    
%    \vbox{%
%    Functional mode \emph{standard area}:
%    \medskip
%    
%    \begin{tabbing}
%    \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\
%    \>Black \> White   \> no match \\
%    \>Black \> BrickRed \> G\\
%    \>Black \> Orange  \> A, S\\
%    \>Black \> Yellow   \> C, P  \\
%    \>Black \> YellowGreen   \> T, D, V, N \\
%    \>White \> PineGreen   \> I, E \\
%    \>Black \> SkyBlue   \> L, Q, H, M \\
%    \>White \> RoyalPurple \> F, K \\
%    \>White \> RedViolet   \> Y \\
%    \>White \> Black   \> R, W \\
%    \end{tabbing}}
%    \medskip
%    
%    \vbox{%
%    Functional mode \emph{accessible area}:
%    \medskip
%    
%    \begin{tabbing}
%    \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\
%    \>Black \> White   \> no match \\
%    \>Black \> BrickRed \> C \\
%    \>Black \> Orange  \> I, V, G \\
%    \>Black \> Yellow   \> F, L, M, A \\
%    \>Black \> YellowGreen   \> W, S, T, H \\
%    \>White \> PineGreen   \> P \\
%    \>Black \> SkyBlue   \> Y, D, N \\
%    \>White \> RoyalPurple \> E, Q  \\
%    \>White \> RedViolet   \> R \\
%    \>White \> Black   \> K \\
%    \end{tabbing}}
%    \medskip
%    
%    \newpage
%    \section{Quick Reference}
%    
%    \textbf{The logos}
%    \medskip
%    
%    \quad |\TeXtopo| \qquad|\TeXshade| \qquad|\BioTeX|
%    
%    \vspace{1.5\baselineskip}
%    
%    \textbf{The \TeXtopo{} environments} (\pageref{tsenvironment}\,ff.)
%    \medskip
%    
%    \vbox{%
%    \begin{quote}
%    |\begin{textopo}[|\meta{optional parameterfile}|]|
%         
%    \quad\emph{further \emph{\TeXtopo} commands}
%    
%    |\end{textopo}|
%    \end{quote}}
%    \medskip
%    
%    \vbox{%
%    \begin{quote}
%    |\begin{helicalwheel}[|\meta{parameterfile}|]{|\meta{helixlist}|}|
%         
%    \quad\emph{further \emph{\TeXtopo} commands}
%    
%    |\end{helicalwheel}|
%    \end{quote}}
%    \bigskip
%    
%    \textbf{Sequence and topology sources}
%    \medskip
%    
%    \quad|\getsequence[make new]{PHD}{|\meta{PHD-file}|}| \hfill[\pageref{PHD}]
%    
%    \quad|\getsequence[make new]{HMMTOP}{|\meta{HMMTOP-file}|}| \hfill[\pageref{HMMTOP}]
%    
%    \quad|\getsequence[make new]{SwissProt}{|\meta{SwissProt-file}|}| \hfill[\pageref{SwissProt}]
%    
%    \quad|\getsequence{alignment}{|\meta{alignment-file}|}| \hfill[\pageref{align}]
%    
%    \quad|\MRs{|\meta{start1..stop1,start2..stop2,\ldots,start n..stop n}|}|
%            \hfill[\pageref{mMRs}]
%    
%    \quad|\Nterm{|\meta{location}|}| \hfill[\pageref{mNterm}]
%    
%    \quad|\sequence{|\meta{Amino acid sequence}|}| \hfill[\pageref{msequence}]
%    
%    \bigskip
%    
%    \textbf{Structure modifications}
%    \medskip
%    
%    \textit{Output size}
%    \medskip
%    
%    \quad|\scaletopo{|\meta{fixed or relative size}|}| 
%                    \hfill[\pageref{mscaletopo}]
%                    
%    \medskip
%    
%    \textit{Loop modifications}
%    \medskip
%    
%    \quad|\loopextent[|\meta{loop}|]{|\meta{extent}|[|\meta{distance}|]}|
%         \hfill[\pageref{mloopextent}]
%
%    \quad|\loopfoot{|\meta{loop}|}{|\meta{direction}|[|\meta{neck}|]}|     
%         \hfill[\pageref{mloopfoot}]
%             
%    \quad|\flipNterm| \hfill[\pageref{mflipNterm}]
%    
%    \quad|\flipCterm| \hfill[\pageref{mflipCterm}]
%    
%    \medskip
%    
%    \textit{Membrane domains}
%    \medskip
%    
%    \quad|\clearMRs| \hfill[\pageref{mclearMRs}]
%    
%    \quad|\anchor{|\meta{pos}|}| \hfill[\pageref{manchor}]
%    
%    \medskip
%    
%    \textit{Cosmetics on the membrane}
%    \medskip
%    
%    \quad|\membranecolors{|\meta{border}|}{|\meta{interior}|}|
%         \hfill[\pageref{mmembranecolors}]
%    
%    \quad|\borderthickness{|\meta{length}|}| \hfill[\pageref{mborderthickness}]
%         
%    \quad|\labeloutside[|\meta{pos}|]{|\meta{text}|}| \hfill[\pageref{mlabeloutside}]
%    
%    \quad|\labelinside[|\meta{pos}|]{|\meta{text}|}| \hfill[\pageref{mlabelinside}]
%    
%    \quad|\moveoutsidelabel{|\meta{direction,distance} or \meta{x,y}|}| \hfill[\pageref{mmoveoutsidelabel}]
%    
%    \quad|\moveinsidelabel{|\meta{direction,distance} or \meta{x,y}|}| \hfill[\pageref{mmoveinsidelabel}]
%    
%    \quad|\broadenmembrane{|\meta{left/right}|}{|\meta{length}|}| 
%                         \hfill[\pageref{mbroadenmembrane}]
%    
%    \quad|\thickenmembrane{|\meta{top/bottom}|}{|\meta{length}|}|
%                         \hfill[\pageref{mthickenmembrane}]
%    
%    \quad|\hidemembrane| \hfill[\pageref{mhidemembrane}]
%    
%    \quad|\showmembrane| \hfill[\pageref{mshowmembrane}]
%    
%    \bigskip
%    
%    \textbf{Putting labels on the plot}
%    \medskip
%    
%    \textit{Labeling loops and membrane domains}
%    \medskip
%    
%    \quad|\labelTMs{|\meta{style}|}| \hfill[\pageref{mlabelTMs}]
%    
%    \qquad|\numcount| \hfill[\pageref{mnumcount}]
%    
%    \qquad|\alphacount| \hfill[\pageref{malphacount}]
%    
%    \qquad|\Alphacount| \hfill[\pageref{mAlphacount}]
%    
%    \qquad|\romancount| \hfill[\pageref{mromancount}]
%    
%    \qquad|\Romancount| \hfill[\pageref{mRomancount}]
%    
%    \medskip
%    
%    \quad|\labelTM[|\meta{direction,distance} or \meta{x,y}|]{|\meta{num}|}{|\meta{label}|}|
%        \hfill[\pageref{mlabelTM}]
%        
%    \quad|\moveTMlabel{|\meta{num}|}{|\meta{direction,distance} or \meta{x,y}|}|
%        \hfill[\pageref{mmoveTMlabel}]
%    
%    \quad|\TMlabelcolor{|\meta{color}|}| \hfill[\pageref{mTMlabelcolor}]
%    
%    \quad|\hideTMlabels| \hfill[\pageref{mhideTMlabels}]
%    
%    \medskip
%    
%    \quad|\labelloops{|\meta{style}|}| \hfill[\pageref{mlabelloops}]
%    
%    \quad|\labelloop[|\meta{direction,distance} or \meta{x,y}|]{|\meta{num}|}{|\meta{label}|}|
%    \hfill[\pageref{mlabelloop}]
%    
%    \quad|\movelooplabel{|\meta{num}|}{|\meta{direction,distance} or \meta{x,y}|}|
%    \hfill[\pageref{mmovelooplabel}]
%    
%    \quad|\looplabelcolor{|\meta{color}|}|\hfill[\pageref{mlooplabelcolor}]
%    
%    \quad|\hidelooplabels|\hfill[\pageref{mhidelooplabels}]
%    
%    \medskip
%    
%    \textit{Shading and labeling sequence features}
%    \medskip
%    
%    
%    \quad|\labelstyle{|\meta{name}|}{|\meta{shape}|}{|\meta{frame color}|}|
%    
%    \qquad|{|\meta{background color}|}{|\meta{char color}|}{|\meta{legend text}|}| 
%    \hfill[\pageref{mlabelstyle}]
%    
%    \quad|\labelregion[|\meta{direction,distance} or \meta{x,y}|]|
%    
%    \qquad|{|\meta{list of regions}|}{|\meta{style name}|}{|\meta{label text}|}|
%    \hfill[\pageref{mlabelregion}]
%    
%    \medskip
%    
%    \quad|\phosphorylation{|\meta{list of positions}|}|
%       \hfill[\pageref{mphosphorylation}]
%    
%    \quad|\glycosylation{|\meta{list of positions}|}|
%       \hfill[\pageref{mglycosylation}]
%       
%    \quad|\countercolor{|\meta{color}|}| \hfill[\pageref{mcountercolor}]
%    
%    \quad|\rulethickness{|\meta{thickness}|}| \hfill[\pageref{mrulethickness}]
%    
%    \medskip
%    
%    \textit{Placing additional labels}
%    \medskip
%    
%    \quad|\place[|\meta{num}|]{|\meta{x\%}|,|\meta{y\%}|}{|\meta{label}|}|
%    \hfill[\pageref{mplace}]
%    
%    \medskip
%    
%    \textit{Adding protein tags and changing the numbering}
%    \medskip
%    
%    \vbox{%
%    \quad|\addtagtoNterm[|\meta{direction,distance} or \meta{x,y}|]{|\meta{tag sequence}|}|
%    
%    \qquad|{|\meta{style name}|}{|\meta{label text}|}|
%    \hfill[\pageref{maddtagtoNterm}]}
%    
%    \vbox{%
%    \quad|\addtagtoCterm[|\meta{direction,distance} or \meta{x,y}|]{|\meta{tag sequence}|}|
%    
%    \qquad|{|\meta{style name}|}{|\meta{label text}|}|
%    \hfill[\pageref{maddtagtoCterm}]}
%    
%    \quad|\seqstart{|\meta{num}|}| \hfill[\pageref{mseqstart}]
%    
%    \medskip
%    
%    \textit{Applying calculated shading}
%    \medskip
%    
%    \quad|\applyshading[|\meta{num}|]{|\meta{mode}|}{|\meta{filename}|}|
%    \hfill[\pageref{mapplyshading}]
%    
%    \medskip
%    
%    \quad|\threshold| \hfill[\pageref{mthreshold}]
%    
%    \quad|\shadingcolors{|\meta{colorscheme}|}| \hfill[\pageref{mshadingcolors}]
%    
%    \quad|\allmatchspecial| \hfill[\pageref{mallmatchspecial}]
%    
%    \quad|\allmatchspecialoff| \hfill[\pageref{mallmatchspecialoff}]
%    
%    \medskip
%    
%    \vbox{%
%    \quad|\standardresidues{|\meta{style}|}{|\meta{frame}|}|
%    
%    \qquad|{|\meta{background}|}{|\meta{char}|}|\hfill[\pageref{mstandardresidues}]}
%    
%    \vbox{%
%    \quad|\similarpositions{|\meta{style}|}{|\meta{frame}|}|
%    
%    \qquad|{|\meta{background}|}{|\meta{char}|}|\hfill[\pageref{msimilarpositions}]}
%    
%    \vbox{%
%    \quad|\conservedpositions{|\meta{style}|}{|\meta{frame}|}|
%    
%    \qquad|{|\meta{background}|}{|\meta{char}|}|\hfill[\pageref{mconservedpositions}]}
%    
%    \vbox{%
%    \quad|\invariablepositions{|\meta{style}|}{|\meta{frame}|}|
%    
%    \qquad|{|\meta{background}|}{|\meta{char}|}|\hfill[\pageref{minvariablepositions}]}
%    
%    \medskip
%    
%    \quad|\donotshadestartMet| \hfill[\pageref{mdonotshadestartMet}]
%    
%    \quad|\shadestartMet| \hfill[\pageref{mshadestartMet}]
%    
%    \medskip
%    
%    \textit{The figure legend}
%    \medskip
%    
%    \quad|\hidelegend| \hfill[\pageref{mhidelegend}]
%    
%    \quad|\showlegend| \hfill[\pageref{mshowlegend}]
%    
%    \quad|\movelegend{|\meta{x-offset}|}{|\meta{y-offset}|}| 
%                                    \hfill[\pageref{mmovelegend}]
%    
%    \bigskip
%    
%    \textbf{Plotting helical wheels}
%    \medskip
%    
%    \quad|\helixstyle{|\meta{style}|}| \hfill(|perspective|, 
%                                       |wheel|, |net|) [\pageref{mhelixstyle}]
%    
%    \quad|\scalewheel{|\meta{scale\%}|}| \hfill[\pageref{mscalewheel}]
%    
%    \quad|\symbolsize{|\meta{size}|}| \hfill(|small|, |medium|,
%                                       |large|) [\pageref{msymbolsize}]
%    
%    \quad|\wheelsperline{|\meta{num}|}| \hfill[\pageref{mwheelsperline}]
%    
%    \medskip
%    
%    \quad|\viewfromextra| \hfill[\pageref{mviewfromextra}]
%    
%    \quad|\viewfromintra| \hfill[\pageref{mviewfromintra}]
%    
%    \medskip
%    
%    \quad|\showmoment| \hfill[\pageref{mshowmoment}]
%    
%    \quad|\hidemoment| \hfill[\pageref{mhidemoment}]
%    
%    \quad|\Hmean{|\meta{helixnum}|}| \hfill[\pageref{mHmean}]
%    
%    \quad|\muH{|\meta{helixnum}|}| \hfill[\pageref{mmuH}]
%    
%    \quad|\muHmean{|\meta{helixnum}|}| \hfill[\pageref{mmuHmean}]
%    
%    \quad|\mudelta{|\meta{helixnum}|}| \hfill[\pageref{mmudelta}]
%    
%    \quad|\momentcolor{|\meta{color}|}| \hfill[\pageref{mmomentcolor}]
%    
%    \quad|\scalemoment{|\meta{scale\%}|}| \hfill[\pageref{mscalemoment}]
%    
%    \medskip
%    
%    \quad|\showwheelnumbering| \hfill[\pageref{mshowwheelnumbering}]
%    
%    \quad|\hidewheelnumbering| \hfill[\pageref{mhidewheelnumbering}]
%    
%    \quad|\showbonds| \hfill[\pageref{mshowbonds}]
%    
%    \quad|\hidebonds| \hfill[\pageref{mhidebonds}]
%    
%    \bigskip
%    
%    \textbf{Changing font styles}
%    \medskip
%    
%    \quad|\setfamily{|\meta{text}|}{|\meta{family}|}|
%       \hfill[\pageref{msetfamily}]
%    
%    \quad|\setseries{|\meta{text}|}{|\meta{series}|}|
%       \hfill[\pageref{msetseries}]
%    
%    \quad|\setshape{|\meta{text}|}{|\meta{shape}|}|
%       \hfill[\pageref{msetshape}]
%    
%    \quad|\setsize{|\meta{text}|}{|\meta{size}|}|
%       \hfill[\pageref{msetsize}]
%    
%    \quad|\setfont{|\meta{text}|}{|\meta{family}|}{|\meta{series}|}{|\meta{shape}|}{|\meta{size}|}|
%       \hfill[\pageref{msetfont}]
%       
%    \medskip
%    
%    \quad |\labelsrm| \quad |\labelstiny| \hfill[\pageref{mlabelsrm}]
%    
%    \quad |\labelssf| \quad |\labelsscriptsize|
%    
%    \quad |\labelstt| \quad |\labelsfootnotesize|
%    
%    \quad |\labelsbf| \quad |\labelssmall|
%    
%    \quad |\labelsmd| \quad |\labelsnormalsize|
%    
%    \quad |\labelsit| \quad |\labelslarge|
%    
%    \quad |\labelssl| \quad |\labelsLarge|
%    
%    \quad |\labelssc| \quad |\labelsLARGE|
%    
%    \quad |\labelsup| \quad |\labelshuge|
%    
%    \quad |         | \quad |\labelsHuge|
%    \medskip
%    
%    Corresponding sets are provided for
%    loop labels (|\looplabelsrm| etc.), TM labels
%    (|\TMlabelsrm| etc.) and legend texts (|legendrm| etc.).
%    
%    
%    
%    
%    \StopEventually{%
%    \newpage
%    \section*{References}
%      [1] \textsc{Carlisle, D.} The Standard \LaTeX{} `Graphics 
%          Bundle', |color.sty|.
%    
%      [2] \textsc{Beitz, E.} (2000) \TeX{}shade: shading and labeling 
%          multiple sequence alignments using \LaTeXe.
%          \newblock \textit{Bioinformatics}: \textbf{16},
%          135--139.
%          
%      [3] \textsc{Rost, B.; Sander, C.} (1994)
%          Combining evolutionary information and neural networks to predict
%          protein secondary structure.
%          \newblock \textit{Proteins: structure, function and 
%          genetics}: \textbf{19}, 55--72.
%              
%      [4] \textsc{Karlin, S.; Ghandour, G.} (1985) Multiple-alphabet
%          amino acid sequence comparisons of the immunoglobulin
%          $\kappa$-chain constant domain.
%          \newblock \textit{Proc. Natl. Acad. Sci. USA}: \textbf{82},
%          8597--8601.
%          
%      [5] \textsc{Kyte, J.; Doolittle, R. F.} (1982) A simple
%          method for displaying the hydropathic character of a
%          protein.
%          \newblock \textit{J. Mol. Biol.}: \textbf{157}, 105--132.
%          
%      [6] \textsc{Rose, G. D.; Geselowitz, A. R.; Lesser, G. J.; 
%          Lee, R. H.; Zehfus, M. H.} (1985) Hydrophobicity of amino 
%          acid residues in globular proteins.
%          \newblock \textit{Science}: \textbf{229}, 835--838.
%          
%      [7] \textsc{Lesser, G. J.; Rose, G. D.} (1990) Hydrophobicity
%          of amino acid subgroups in proteins.
%          \newblock \textit{Proteins: structure, function and 
%          genetics}: \textbf{8}, 6--13.
%          
%      [8] \textsc{Tusnady, G.E.; Simon, I.} (2001) 
%           The HMMTOP transmembrane topology prediction server.
%           \newblock \textit{Bioinformatics}: \textbf{17}, 849-850.
%              
%    }
%    \section*{Implementation}
%    \subsection*{Documentation Driver}
%    \begin{macrocode}
%<*driver>
\documentclass[12pt,a4paper]{ltxdoc}
\usepackage{textopo}
\catcode`\@=11
 \def\BioTeX{\mbox{\textsc{Bio}\kern-0.5ex\TeX}}
 \def\TeXshade{%
   \setbox1=\hbox{\texttt{H}}%
   \def\logo@rule{\vrule depth0.25\ht1 height1.25\ht1 width\wd1}%
   \TeX%
   \logo@rule\kern-\wd1\textcolor{White}{\texttt{s}}%
   \logo@rule\kern-\wd1\textcolor{White}{\texttt{h}}%
   \texttt{a}%
   \logo@rule\kern-\wd1\textcolor{White}{\texttt{d}}%
   \texttt{e}}
 \def\geneticcode#1{%
   \xdef\first@{#1}
   \xdef\temp@{standard}
   \ifx\first@\temp@
      \c@d@ns
   \else
  \input{#1.cod}
   \fi}
 \openin\in@file = hyperref.sty
 \ifeof\in@file 
 \else
      \usepackage[colorlinks]{hyperref}
 \fi
 \closein\in@file
\def\group@get#1,#2@{%
   \def\group@set{\expandafter\residue@get\second@
                 \ifx\first@\ampers@nd
                 \else \expandafter\xdef\csname \prfx grp\first@\endcsname{\the\loopcount}
                 \xdef\second@{\csname sequence\the\loopcount\endcsname} \group@set
                 \fi}
   \xdef\second@{#1 &@} \xdef\third@{#2&,@} \group@set}
\def\residue@get#1#2@{\xdef\first@{#1}
                      \ifnum`#1>96 \make@upper \fi
                      \expandafter\xdef\csname res\the\loopcount\endcsname{\first@}
                      \expandafter\xdef\csname sequence\the\loopcount\endcsname{#2@}}
\newif\ifgerm@n \germ@nfalse
\def\clear@groups{%
    \expandafter\xdef\csname \prfx grpA\endcsname{ -1}
    \expandafter\xdef\csname \prfx grpB\endcsname{ -2}
    \expandafter\xdef\csname \prfx grpC\endcsname{ -3}
    \expandafter\xdef\csname \prfx grpD\endcsname{ -4}
    \expandafter\xdef\csname \prfx grpE\endcsname{ -5}
    \expandafter\xdef\csname \prfx grpF\endcsname{ -6}
    \expandafter\xdef\csname \prfx grpG\endcsname{ -7}
    \expandafter\xdef\csname \prfx grpH\endcsname{ -8}
    \expandafter\xdef\csname \prfx grpI\endcsname{ -9}
    \expandafter\xdef\csname \prfx grpJ\endcsname{-10}
    \expandafter\xdef\csname \prfx grpK\endcsname{-11}
    \expandafter\xdef\csname \prfx grpL\endcsname{-12}
    \expandafter\xdef\csname \prfx grpM\endcsname{-13}
    \expandafter\xdef\csname \prfx grpN\endcsname{-14}
    \expandafter\xdef\csname \prfx grpO\endcsname{-15}
    \expandafter\xdef\csname \prfx grpP\endcsname{-16}
    \expandafter\xdef\csname \prfx grpQ\endcsname{-17}
    \expandafter\xdef\csname \prfx grpR\endcsname{-18}
    \expandafter\xdef\csname \prfx grpS\endcsname{-19}
    \expandafter\xdef\csname \prfx grpT\endcsname{-20}
    \expandafter\xdef\csname \prfx grpU\endcsname{-21}
    \expandafter\xdef\csname \prfx grpV\endcsname{-22}
    \expandafter\xdef\csname \prfx grpW\endcsname{-23}
    \expandafter\xdef\csname \prfx grpX\endcsname{-24}
    \expandafter\xdef\csname \prfx grpY\endcsname{-25}
    \expandafter\xdef\csname \prfx grpZ\endcsname{-26}
    \expandafter\xdef\csname \prfx grp.\endcsname{-999}
}
\def\clearfuncgroups{\xdef\prfx{func} \clear@groups \xdef\fgroup@num{0}}
\clearfuncgroups
\def\func@shading#1{%
   \clearfuncgroups
   \xdef\temp@{#1}
   \xdef\second@{charge}
   \ifx\temp@\second@
      \ifgerm@n
      \funcgroup{sauer ($-$)}{DE}{White}{Red}{upper}{up}
      \funcgroup{basisch ($+$)}{KRH}{White}{Blue}{upper}{up}
      \else
      \funcgroup{acidic ($-$)}{DE}{White}{Red}{upper}{up}
      \funcgroup{basic ($+$)}{KRH}{White}{Blue}{upper}{up}
      \fi
   \else
   \xdef\second@{hydropathy}
   \ifx\temp@\second@
      \ifgerm@n
      \funcgroup{sauer ($-$)}{DE}{White}{Red}{upper}{up}
      \funcgroup{basisch ($+$)}{KRH}{White}{Blue}{upper}{up}
      \funcgroup{polar ungeladen}{YSTGNQC}{Black}{Yellow}{upper}{up}
      \funcgroup{hydrophob unpolar}{AFPMWVIL}{White}{Green}{upper}{up}
      \else
      \funcgroup{acidic ($-$)}{DE}{White}{Red}{upper}{up}
      \funcgroup{basic ($+$)}{KRH}{White}{Blue}{upper}{up}
      \funcgroup{polar uncharged}{YSTGNQC}{Black}{Yellow}{upper}{up}
      \funcgroup{hydrophobic nonpolar}{AFPMWVIL}{White}{Green}{upper}{up}
      \fi
   \else
   \xdef\second@{chemical}
   \ifx\temp@\second@
      \ifgerm@n
      \funcgroup{sauer ($-$)}{DE}{White}{Red}{upper}{up}
      \funcgroup{aliphatisch}{AGVIL}{White}{Black}{upper}{up}
      \funcgroup{Amid}{NQ}{White}{Green}{upper}{up}
      \funcgroup{aromatisch}{FYW}{White}{Brown}{upper}{up}
      \funcgroup{basisch (+)}{KRH}{White}{Blue}{upper}{up}
      \funcgroup{Hydroxyl}{ST}{Black}{Magenta}{upper}{up}
      \funcgroup{Imin}{P}{Black}{Orange}{upper}{up}
      \funcgroup{Schwefel}{CM}{Black}{Yellow}{upper}{up}
      \else
      \funcgroup{acidic ($-$)}{DE}{White}{Red}{upper}{up}
      \funcgroup{aliphatic}{AGVIL}{White}{Black}{upper}{up}
      \funcgroup{amide}{NQ}{White}{Green}{upper}{up}
      \funcgroup{aromatic}{FYW}{White}{Brown}{upper}{up}
      \funcgroup{basic ($+$)}{KRH}{White}{Blue}{upper}{up}
      \funcgroup{hydroxyl}{ST}{Black}{Magenta}{upper}{up}
      \funcgroup{imino}{P}{Black}{Orange}{upper}{up}
      \funcgroup{sulfur}{CM}{Black}{Yellow}{upper}{up}
      \fi
   \else
   \xdef\second@{structure}
   \ifx\temp@\second@
      \ifgerm@n
      \funcgroup{extern}{DEHKNQR}{Black}{Orange}{upper}{up}
      \funcgroup{ambivalent}{ACGPSTWY}{Black}{Yellow}{upper}{up}
      \funcgroup{intern}{FILMV}{White}{Green}{upper}{up}
      \else
      \funcgroup{external}{DEHKNQR}{Black}{Orange}{upper}{up}
      \funcgroup{ambivalent}{ACGPSTWY}{Black}{Yellow}{upper}{up}
      \funcgroup{internal}{FILMV}{White}{Green}{upper}{up}
      \fi
   \else
   \xdef\second@{standard area}
   \ifx\temp@\second@
      \ifgerm@n
      \funcgroup{\ 88,1 (G); Standard Seitenkettenfl\"ache (\AA$^2$)}%
                {G}{Black}{BrickRed}{upper}{up}
      \funcgroup{118,2 (A); 129,8 (S)}{AS}{Black}{Orange}{upper}{up}
      \funcgroup{146,1 (C); 146,8 (P)}%
                {SCP}{Black}{Yellow}{upper}{up}
      \funcgroup{152,5 (T); 158,7 (D); 164,5 (V); 165,5 (N)}%
                {TDVN}{Black}{YellowGreen}{upper}{up}
      \funcgroup{181,0 (I); 186,2 (E)}{IE}{White}{PineGreen}{upper}{up}
      \funcgroup{193,1 (L); 193,2 (Q); 202,5 (H); 203,3 (M)}%
                {LQHM}{Black}{SkyBlue}{upper}{up}
      \funcgroup{222,8 (F); 225,8 (K)}{FK}{White}{RoyalPurple}{upper}{up}
      \funcgroup{238,8 (Y)}{Y}{White}{RedViolet}{upper}{up}
      \funcgroup{256,0 (R); 266,2 (W)}{RW}{White}{Black}{upper}{up}
      \else
      \funcgroup{\ 88.1 (G); Standard sidechain area (\AA$^2$)}%
                {G}{Black}{BrickRed}{upper}{up}
      \funcgroup{118.2 (A); 129.8 (S)}{AS}{Black}{Orange}{upper}{up}
      \funcgroup{146.1 (C); 146.8 (P)}%
                {SCP}{Black}{Yellow}{upper}{up}
      \funcgroup{152.5 (T); 158.7 (D); 164.5 (V); 165.5 (N)}%
                {TDVN}{Black}{YellowGreen}{upper}{up}
      \funcgroup{181.0 (I); 186.2 (E)}{IE}{White}{PineGreen}{upper}{up}
      \funcgroup{193.1 (L); 193.2 (Q); 202.5 (H); 203.3 (M)}%
                {LQHM}{Black}{SkyBlue}{upper}{up}
      \funcgroup{222.8 (F); 225.8 (K)}{FK}{White}{RoyalPurple}{upper}{up}
      \funcgroup{238.8 (Y)}{Y}{White}{RedViolet}{upper}{up}
      \funcgroup{256.0 (R); 266.2 (W)}{RW}{White}{Black}{upper}{up}
      \fi
   \else
   \xdef\second@{accessible area}
   \ifx\temp@\second@
      \ifgerm@n
      \funcgroup{\ 13,9 (C); Zug\"angliche Seitenkettenfl\"ache (\AA$^2$)}%
                {CIV}{Black}{BrickRed}{upper}{up}
      \funcgroup{\ 23,0 (I); 23,5 (V); 25,2 (G)}%
                {IVG}{Black}{Orange}{upper}{up}
      \funcgroup{\ 28,7 (F); 29,0 (L); 30,5 (M); 31,5 (A)}%
                {FLMA}{Black}{Yellow}{upper}{up}
      \funcgroup{\ 41,7 (W); 44,2 (S); 46,0 (T); 46,7 (H)}%
                {WSTH}{Black}{YellowGreen}{upper}{up}
      \funcgroup{\ 53,7 (P)}{P}{White}{PineGreen}{upper}{up}
      \funcgroup{\ 59,1 (Y); 60,9 (D); 62,2 (N)}%
                {YDN}{Black}{SkyBlue}{upper}{up}
      \funcgroup{\ 72,3 (E); 74,0 (Q)}{EQ}{White}{RoyalPurple}{upper}{up}
      \funcgroup{\ 93,8 (R)}{R}{White}{RedViolet}{upper}{up}
      \funcgroup{110,3 (K)}{K}{White}{Black}{upper}{up}
      \else
      \funcgroup{\ 13.9 (C); Accessible sidechain area (\AA$^2$)}%
                {CIV}{Black}{BrickRed}{upper}{up}
      \funcgroup{\ 23.0 (I); 23.5 (V); 25.2 (G)}%
                {IVG}{Black}{Orange}{upper}{up}
      \funcgroup{\ 28.7 (F); 29.0 (L); 30.5 (M); 31.5 (A)}%
                {FLMA}{Black}{Yellow}{upper}{up}
      \funcgroup{\ 41.7 (W); 44.2 (S); 46.0 (T); 46.7 (H)}%
                {WSTH}{Black}{YellowGreen}{upper}{up}
      \funcgroup{\ 53.7 (P)}{P}{White}{PineGreen}{upper}{up}
      \funcgroup{\ 59.1 (Y); 60.9 (D); 62.2 (N)}%
                {YDN}{Black}{SkyBlue}{upper}{up}
      \funcgroup{\ 72.3 (E); 74.0 (Q)}{EQ}{White}{RoyalPurple}{upper}{up}
      \funcgroup{\ 93.8 (R)}{R}{White}{RedViolet}{upper}{up}
      \funcgroup{110.3 (K)}{K}{White}{Black}{upper}{up}
      \fi
   \else \message{<Unknown shading mode. Clearing `funcgroups'>}
   \fi\fi\fi\fi\fi\fi
}
\def\shadeallresidues{\all@fshadetrue}
\def\funcgroup#1#2#3#4#5#6{%
   \xdef\first@{#1}
   \loopcount=0 \innerloopcount=0
   \loop
      \advance\loopcount by 1
      \ifx\csname fgroup@name\the\loopcount\endcsname\first@
          \innerloopcount=\loopcount \loopcount=\fgroup@num
      \fi
   \ifnum\loopcount<\fgroup@num \repeat
   \ifnum\innerloopcount=0
     \ifnum\fgroup@num<9
      \innerloopcount=\fgroup@num
      \advance\innerloopcount by 1 \xdef\fgroup@num{\the\innerloopcount}
     \else \message{<Too many \noexpand\funcgroups>}
     \fi
   \fi
   \ifnum\innerloopcount>0
      \expandafter\xdef\csname fgroup@name\the\innerloopcount\endcsname{\first@}
      \expandafter\xdef\csname fg@textcolor\the\innerloopcount\endcsname{#3}
      \expandafter\xdef\csname fg@color\the\innerloopcount\endcsname{#4}
      \expandafter\xdef\csname funcm@tch\the\innerloopcount\endcsname{#5}
      \expandafter\def\csname func@style\the\innerloopcount\endcsname{%
          \csname text#6\endcsname}
      \xdef\prfx{func}
      \xdef\third@{#2&,@} \loopcount=\innerloopcount
      \expandafter\group@get\third@
  \fi}
\catcode`\@=12
\DisableCrossrefs
\sloppy
\begin{document}
  \OnlyDescription
  \DocInput{textopo.dtx}
\end{document}
%</driver>
%    \end{macrocode}
%    \subsection*{\texttt{textopo.sty}---no comments}
%    \begin{macrocode}
%<*textpo>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{textopo}[2001/03/09 LaTeX TeXtopo (v1.4)]
\message{Package `textopo', Version 1.4 of 05/02/14.}

\PassOptionsToPackage{dvips}{color}
\PassOptionsToPackage{dvips}{graphicx}
\DeclareOption*{%
   \PassOptionsToPackage{\CurrentOption}{color}%
   \PassOptionsToPackage{\CurrentOption}{graphicx}%
}
\ProcessOptions
\RequirePackage{color,graphics}

\catcode`\@=11

\expandafter\ifx\csname TeXtopo\endcsname\relax \else \endinput \fi


\newread\structure@file \newwrite\feature@file
\newread\in@file

\newcount\x@pos
\newcount\y@pos
\newcount\x@p@s
\newcount\y@p@s
\newcount\x@offset
\newcount\y@offset
\newcount\x@min
\newcount\y@min
\newcount\x@max
\newcount\mem@max
\newcount\y@max
\newcount\pos@count
\newcount\pos@@count
\newcount\loopcount
\newcount\innerloopcount
\newcount\iloopcount
\newcount\temp@count
\newcount\temp@@count
\newcount\TM@@count
\newcount\loop@@count
\newcount\loop@calc
\newcount\sincos
\newcount\wheel@count

\newlength\res@diam
\newlength\res@@diam
\newlength\unit@length
\newlength\hor@offset
\newlength\temp@length
\newlength\bond@thickness
\newlength\scale@factor
\newlength\vspace@@legend
\newlength\hspace@@legend
\newlength\b@rder 

\newif\ifanalyze
\newif\iffr@me
\newif\ifmembr@ne
\newif\ifshade
\newif\ifall@shade
\newif\ifsimilar@shade
\newif\ifletter
\newif\iffuncmode
\newif\ifloop@label
\newif\ifloop@series
\newif\ifloopgo@
\newif\ifTM@label
\newif\ifTM@series
\newif\ifTMgo@
\newif\iflegend@
\newif\iflegend@@
\newif\ifshadelegend@@
\newif\ifhelix@
\newif\ifdo@it
\newif\ifno@start@met
\newif\ifinsert@
\newif\ifwheel@numbers
\newif\ifmu@H
\newif\if@helix@pers
\newif\if@net

\def\ampers@nd{&}
\def\@t{@}
\def\y@{y}
\def\n@{n}
\def\s@{sp}
\def\intr@{intra}
\def\down@@{down}
\def\up@@{up}
\xdef\@pen{[}
\xdef\cl@se{]}
\xdef\br@cket@t{][@]}
\xdef\st@r{*}
\xdef\start@label{(}
\xdef\stop@label{)}
\def\n@me{Name:}
\def\he@derend{//}
\xdef\par@{\expandafter\string\par}
\xdef\label@num{0}
\xdef\amp@com@t{&,@}
\xdef\center@{center}

\expandafter\def\csname Mio-14\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[E;6],%
2/5[W;6],7/6[E;6],%
4/10[W;6],9/11[E;6],%
1/14[W;6],6/15[E;6],%
3/19[W;6],8/20[E;6],%
0/23[W;6],5/24[NNW;8],10/25[ESE;6],%
11/30[E;6],@}
\expandafter\def\csname Mio-15\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[E;6],%
2/5[W;6],7/6[E;6],%
4/10[W;6],9/11[E;6],%
1/14[W;6],6/15[WNW;12],11/16[E;6],%
3/19[W;6],8/20[E;6],%
0/23[W;6],5/24[NNW;6],10/25[ESE;6],%
11/30[E;6],@}
\expandafter\def\csname Mio-16\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[E;6],%
2/5[W;6],7/6[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[E;6],%
1/14[W;6],6/15[WNW;12],11/16[E;6],%
3/19[W;6],8/20[E;6],%
0/23[W;6],5/24[NNW;8],10/25[ESE;6],%
11/30[E;6],@}
\expandafter\def\csname Mio-17\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[E;6],%
2/5[W;6],7/6[WNW;12],12/7[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[E;6],%
1/14[W;6],6/15[WNW;12],11/16[E;6],%
3/19[W;6],8/20[E;6],%
0/23[W;6],5/24[NNW;8],10/25[ESE;6],%
11/30[E;6],@}
\expandafter\def\csname Mio-18\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[E;6],%
2/5[W;6],7/6[WNW;12],12/7[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[E;6],%
1/14[W;6],6/15[WNW;12],11/16[E;6],%
-2/18[W;6],3/19[WNW;12],8/20[E;6],%
0/23[W;6],5/24[NNW;8],10/25[ESE;6],%
11/30[E;6],@}
\expandafter\def\csname Mio-19\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[E;6],%
2/5[W;6],7/6[WNW;1o],12/7[E;6],%
4/10[W;6],9/11[WNW;12],14/12[E;6],%
1/14[W;6],6/15[WNW;12],11/16[E;6],%
3/19[W;6],8/20[WNW;12],13/21[E;6],%
5/24[W;6],10/25[NNW;8],15/26[ESE;6],%
16/31[E;6],@}
\expandafter\def\csname Mio-20\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[E;6],%
2/5[W;6],7/6[WNW;12],12/7[E;6],%
4/10[W;6],9/11[WNW;12],14/12[E;6],%
1/14[W;6],6/15[WNW;12],11/16[E;6],%
3/19[W;6],8/20[WNW;12],13/21[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[ESE;6],%
16/31[E;6],@}
\expandafter\def\csname Mio-21\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[E;6],%
2/5[W;6],7/6[WNW;12],12/7[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[ENE;12],14/12[E;6],%
1/14[W;6],6/15[WNW;12],11/16[E;6],%
3/19[W;6],8/20[WNW;12],13/21[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[ESE;6],%
16/31[E;6],@}
\expandafter\def\csname Mio-22\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[E;6],%
2/5[W;6],7/6[WNW;12],12/7[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[ENE;12],14/12[E;6],%
1/14[W;6],6/15[WNW;12],11/16[ENE;12],16/17[E;6],%
3/19[W;6],8/20[WNW;12],13/21[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[ESE;6],%
16/31[E;6],@}
\expandafter\def\csname Mio-23\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[E;6],%
2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],%
4/10[W;6],9/11[WNW;12],14/12[ENE;12],19/13[E;6],%
6/15[W;6],11/16[WNW;12],16/17[E;6],%
3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],%
5/24[W;6],10/25[NNW;8],15/26[NNW;9],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-24\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],%
2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],%
4/10[W;6],9/11[WNW;12],14/12[ENE;12],19/13[E;6],%
6/15[W;6],11/16[WNW;12],16/17[E;6],%
3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],%
5/24[W;6],10/25[NNW;8],15/26[NNW;9],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-25\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[W;6],20/4[SSE;12],%
2/5[E;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],%
4/10[W;6],9/11[WNW;12],14/12[ENE;12],19/13[E;6],%
1/14[W;6],6/15[WNW;12],11/16[ENE;12],16/17[E;6],%
3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],%
5/24[W;6],10/25[NNW;8],15/26[NNW;9],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-26\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],%
2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],%
4/10[W;6],9/11[WNW;12],14/12[ENE;12],19/13[E;6],%
1/14[W;6],6/15[WNW;12],11/16[ENE;12],16/17[E;6],%
3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-27\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],%
2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],%
4/10[W;6],9/11[WNW;12],14/12[ENE;12],19/13[E;6],%
1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],%
3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-28\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],%
2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],%
1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],%
3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-29\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],%
2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],%
1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],%
3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-30\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],%
2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],%
1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],%
3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-31\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],%
2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],%
1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],%
-2/18[W;6],3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-32\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],%
2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],24/14[E;6],%
1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],%
-2/18[W;6],3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-33\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],%
-3/4[W;6],2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],24/14[E;6],%
1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],%
-2/18[W;6],3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-34\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],%
-3/4[W;6],2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],24/14[E;6],%
-4/13[W;6],1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],%
-2/18[W;6],3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-35\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],25/5[E;6],%
-3/4[W;6],2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],24/14[E;6],%
-4/13[W;6],1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],%
-2/18[W;6],3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],%
0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],%
21/32[E;6],@}
\expandafter\def\csname Mio-36\endcsname{%
0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],20/4[E;6],%
-3/4[W;6],2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],%
-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],24/14[E;6],%
-4/13[W;6],1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],%
-2/18[W;6],3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],%
-5/22[W;6],0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],%
21/32[E;6],@}

\expandafter\def\csname Moi-14\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[E;6],%
-4/-5[W;6],-9/-6[E;6],%
-6/-10[W;6],-11/-11[E;6],%
-3/-14[W;6],-8/-15[E;6],%
-5/-19[W;6],-10/-20[E;6],%
-2/-23[W;6],-7/-24[SSW;6],-12/-25[E;6],%
-13/-30[E;6],@}
\expandafter\def\csname Moi-15\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[E;6],%
-4/-5[W;6],-9/-6[E;6],%
-6/-10[W;6],-11/-11[E;6],%
-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],%
-5/-19[W;6],-10/-20[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[E;6],%
-13/-30[E;6],@}
\expandafter\def\csname Moi-16\endcsname{%
-2/0[W;6],-7/-1[NNW;8],-12/-2[E;6],%
-4/-5[W;6],-9/-6[E;6],%
-1/-9[W;6],-6/-10[ESE;12],-11/-11[E;6],%
-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],%
-5/-19[W;6],-10/-20[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[E;6],%
-13/-30[E;6],@}
\expandafter\def\csname Moi-17\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[E;6],%
-4/-5[W;6],-9/-6[ESE;12],-14/-7[E;6],%
-1/-9[W;6],-6/-10[ESE;12],-11/-11[E;6],%
-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],%
-5/-19[W;6],-10/-20[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[E;6],%
-13/-30[E;6],@}
\expandafter\def\csname Moi-18\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[E;6],%
-4/-5[W;6],-9/-6[ESE;12],-14/-7[E;6],%
-1/-9[W;6],-6/-10[ESE;12],-11/-11[E;6],%
-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],%
0/-18[W;6],-5/-19[ESE;12],-10/-20[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[E;6],%
-13/-30[E;6],@}
\expandafter\def\csname Moi-19\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[E;6],%
-4/-5[W;6],-9/-6[ESE;12],-14/-7[E;6],%
-6/-10[W;6],-11/-11[ESE;12],-16/-12[E;6],%
-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],%
-5/-19[W;6],-10/-20[ESE;12],-15/-21[5;6],%
-7/-24[W;6],-12/-25[SSW;8],-17/-26[E;6],%
-18/-31[E;6],@}
\expandafter\def\csname Moi-20\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[E;6],%
-4/-5[W;6],-9/-6[ESE;12],-14/-7[E;6],%
-6/-10[W;6],-11/-11[ESE;12],-16/-12[E;6],%
-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],%
-5/-19[W;6],-10/-20[ESE;12],-15/-21[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[E;6],%
-18/-31[E;6],@}
\expandafter\def\csname Moi-21\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[E;6],%
-4/-5[W;6],-9/-6[ESE;12],-14/-7[E;6],%
-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;12],-16/-12[E;6],%
-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],%
-5/-19[W;6],-10/-20[ESE;12],-15/-21[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[E;6],%
-18/-31[E;6],@}
\expandafter\def\csname Moi-22\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[E;6],%
-4/-5[W;6],-9/-6[ESE;12],-14/-7[E;6],%
-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;12],-16/-12[E;6],%
-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;12],-18/-17[E;6],%
-5/-19[W;6],-10/-20[ESE;12],-15/-21[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[E;6],%
-18/-31[E;6],@}
\expandafter\def\csname Moi-23\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[E;6],%
-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],%
-6/-10[W;6],-11/-11[WSW;12],-16/-12[ESE;12],-21/-13[E;6],%
-8/-15[W;6],-13/-16[ESE;12],-18/-17[E;6],%
-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],%
-7/-24[W;6],-12/-25[SSW;8],-17/-26[SSW;9],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-24\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],%
-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],%
-6/-10[W;6],-11/-11[WSW;12],-16/-12[ESE;12],-21/-13[E;6],%
-8/-15[W;6],-13/-16[ESE;12],-18/-17[E;6],%
-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],%
-7/-24[W;6],-12/-25[SSW;8],-17/-26[SSW;9],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-25\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],%
-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],%
-6/-10[W;6],-11/-11[WSW;12],-16/-12[ESE;12],-21/-13[E;6],%
-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;12],-18/-17[E;6],%
-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],%
-7/-24[W;6],-12/-25[SSW;8],-17/-26[SSW;9],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-26\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],%
-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],%
-6/-10[W;6],-11/-11[WSW;12],-16/-12[ESE;12],-21/-13[E;6],%
-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;12],-18/-17[E;6],%
-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-27\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],%
-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],%
-6/-10[W;6],-11/-11[WSW;12],-16/-12[ESE;12],-21/-13[E;6],%
-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],%
-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-28\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],%
-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],%
-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],%
-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],%
-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-29\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],%
-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],%
-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],%
-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],%
-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-30\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],%
-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],%
-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],%
-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],%
-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-31\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],%
-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],%
-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],-26/-14[E;6],%
-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],%
-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-32\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],%
-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],%
-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],-26/-14[E;6],%
-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],%
0/-18[W;6],-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-33\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],%
-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],%
-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],-26/-14[E;6],%
2/-13[W;6],-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],%
0/-18[W;6],-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-34\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],%
1/-4[W;6],-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],%
-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],-26/-14[E;6],%
2/-13[W;6],-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],%
0/-18[W;6],-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-35\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],-27/-5[E;6],%
1/-4[W;6],-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],%
-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],-26/-14[E;6],%
2/-13[W;6],-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],%
0/-18[W;6],-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],%
-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],%
-23/-32[E;6],@}
\expandafter\def\csname Moi-36\endcsname{%
-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],-27/-5[E;6],%
1/-4[W;6],-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],%
-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],-26/-14[E;6],%
2/-13[W;6],-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],%
0/-18[W;6],-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],%
3/-22[W;6],-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],%
-23/-32[E;6],@}

\expandafter\def\csname oloop-1\endcsname{2/-1[N;6],5/-5[NE;6],@}
\expandafter\def\csname oloop-2\endcsname{2/-1[NW;6],7/-1[NE;6],10/-5[NE;6],@}
\expandafter\def\csname oloop-3\endcsname{0/0[NW;6],4/3[N;6],8/0[NE;6],9/-5[ENE;6],@}
\expandafter\def\csname oloop-4\endcsname{0/0[NW;6],3/4[NNW;6],8/4[NNE;6],11/0[NE;6],12/-5[W;6],@}
\expandafter\def\csname oloop-5\endcsname{0/0[WNW;6],2/5[NW;6],6/8[N;6],10/5[NE;6],12/0[ENE;6],13/-5[W;6],@}
\expandafter\def\csname oloop-6\endcsname{-1/0[NW;6],0/5[NW;6],3/9[NNW;6],%
8/9[NNE;6],11/5[NE;6],12/0[NE;6],12/-5[W;6],@}
\expandafter\def\csname oloop-7\endcsname{-1/0[WNW;6],0/5[NW;6],2/10[NW;6],6/13[NW;6],%
10/10[N;6],12/5[NE;6],13/0[ENE;6],13/-5[W;6],@}

\expandafter\def\csname iloop-1\endcsname{2/1[S;6],5/5[W;6],@}
\expandafter\def\csname iloop-2\endcsname{2/1[SW;6],7/1[SE;6],10/5[W;6],@}
\expandafter\def\csname iloop-3\endcsname{0/0[SW;6],4/-3[S;6],8/0[SE;6],9/5[W;6],@}
\expandafter\def\csname iloop-4\endcsname{0/0[SW;6],3/-4[SSW;6],8/-4[SSE;6],11/0[SE;6],12/5[W;6],@}
\expandafter\def\csname iloop-5\endcsname{0/0[WSW;6],2/-5[SW;6],6/-8[S;6],10/-5[SE;6],12/0[ESE;6],13/5[W;6],@}
\expandafter\def\csname iloop-6\endcsname{-1/0[SW;6],0/-5[SW;6],3/-9[SSW;6],%
8/-9[SSE;6],11/-5[SE;6],12/0[SE;6],12/5[W;6],@}
\expandafter\def\csname iloop-7\endcsname{-1/0[WSW;6],0/-5[SW;6],2/-10[S;6],6/-13[S;6],%
10/-10[SE;6],12/-5[SE;6],13/0[ESE;6],13/5[W;6],@}

\expandafter\def\csname iTMloop-1\endcsname{17/3[S;6],27/5[W;6],@}
\expandafter\def\csname iTMloop-2\endcsname{14/2[SW;6],21/2[SE;6],27/5[W;6],@}
\expandafter\def\csname iTMloop-3\endcsname{13/2[SW;6],18/0[S;6],23/1[SE;6],%
27/5[W;6],@}
\expandafter\def\csname iTMloop-4\endcsname{8/1[SW;6],13/0[SSW;6],18/0[SSE;6],%
23/1[SE;6],27/5[W;6],@}
\expandafter\def\csname iTMloop-5\endcsname{5/1[WSW;6],10/-1[SW;6],15/-2[S;6],%
20/-1[SE;6],25/1[ESE;6],28/5[W;6],@}
\expandafter\def\csname iTMloop-6\endcsname{2/1[SW;6],6/-2[SW;6],11/-3[SSW;6],%
16/-3[SSE;6],21/-2[SE;6],25/1[SE;6],28/5[W;6],@}
\expandafter\def\csname iTMloop-7\endcsname{0/0[WSW;6],3/-4[SW;6],8/-6[S;6],13/-7[S;6],%
18/-6[SE;6],23/-4[SE;6],26/0[ESE;6],27/5[W;6],@}

\expandafter\def\csname oTMloop-1\endcsname{9/-2[N;6],27/-5[NE;6],@}
\expandafter\def\csname oTMloop-2\endcsname{6/-2[NW;6],13/-2[NE;6],27/-5[NE;6],@}
\expandafter\def\csname oTMloop-3\endcsname{4/-2[NW;6],9/0[N;6],14/-2[NE;6],%
28/-5[ENE;6],@}
\expandafter\def\csname oTMloop-4\endcsname{3/-1[NW;6],8/0[NNW;6],13/0[NNE;6],%
18/-2[NE;6],28/-5[W;6],@}
\expandafter\def\csname oTMloop-5\endcsname{3/-1[WNW;6],8/1[NW;6],13/2[N;6],%
18/1[NE;6],23/-1[ENE;6],28/-5[W;6],@}
\expandafter\def\csname oTMloop-6\endcsname{2/-1[NW;6],6/2[NW;6],11/3[NNW;6],%
16/3[NNE;6],21/2[NE;6],25/-1[NE;6],28/-5[W;6],@}
\expandafter\def\csname oTMloop-7\endcsname{0/0[WNW;6],3/4[NW;6],8/6[NW;6],13/7[NW;6],%
18/6[N;6],23/4[NE;6],26/0[ENE;6],27/-5[W;6],@}

\expandafter\def\csname iNterm-1\endcsname{0/0[SSE;6],1/5[W;6],@}
\expandafter\def\csname iNterm-2\endcsname{0/0[SSE;6],3/4[SE;6],4/9[W;6],@}
\expandafter\def\csname iNterm-3\endcsname{0/0[SSE;6],4/3[SE;6],6/8[ESE;6],7/13[W;6],@}

\expandafter\def\csname oNterm-1\endcsname{0/0[NNE;6],1/-5[W;6],@}
\expandafter\def\csname oNterm-2\endcsname{0/0[NNE;6],3/-4[NE;6],4/-9[W;6],@}
\expandafter\def\csname oNterm-3\endcsname{0/0[NNE;6],4/-3[NE;6],6/-8[ENE;6],7/-13[W;6],@}

\expandafter\def\csname iCterm-1\endcsname{0/0[SSW;6],4/-3[W;6],@}
\expandafter\def\csname iCterm-2\endcsname{0/0[SW;6],3/-4[SSW;6],7/-7[W;6],@}
\expandafter\def\csname iCterm-3\endcsname{0/0[WSW;6],2/-5[SW;6],6/-8[SSW;6],10/-11[W;6],@}

\expandafter\def\csname oCterm-1\endcsname{0/0[NNW;6],4/3[W;6],@}
\expandafter\def\csname oCterm-2\endcsname{0/0[NW;6],3/4[NNW;6],7/7[W;6],@}
\expandafter\def\csname oCterm-3\endcsname{0/0[WNW;6],2/5[NW;6],6/8[NNW;6],10/11[W;6],@}

\expandafter\def\csname ohalf-1\endcsname{3/2[N;6],7/5[W;6],@}
\expandafter\def\csname ohalf-2\endcsname{2/1[NNW;6],7/1[NNE;6],10/5[W;6],@}
\expandafter\def\csname ohalf-3\endcsname{0/0[NNW;6],4/-3[N;6],8/0[NNE;6],9/5[W;6],@}
\expandafter\def\csname ohalf-4\endcsname{0/0[NW;6],3/-4[NNW;6],8/-4[NNE;6],11/0[NE;6],12/5[W;6],@}
\expandafter\def\csname ohalf-5\endcsname{0/0[NW;6],2/-5[NNW;6],6/-8[N;6],%
10/-5[NNE;6],12/0[NE;6],13/5[W;6],@}
\expandafter\def\csname ohalf-6\endcsname{-1/0[WNW;6],0/-5[NW;6],3/-9[NNW;6],8/-9[NNE;6],11/-5[NE;6],12/0[ENE;6],12/5[W;6],@}

\expandafter\def\csname ihalf-1\endcsname{3/-2[S;6],7/-5[W;6],@}
\expandafter\def\csname ihalf-2\endcsname{2/-1[SSW;6],7/-1[SSE;6],10/-5[W;6],@}
\expandafter\def\csname ihalf-3\endcsname{0/-0[SSW;6],4/3[S;6],8/0[SSE;6],9/-5[W;6],@}
\expandafter\def\csname ihalf-4\endcsname{0/0[SW;6],3/4[SSW;6],8/4[SSE;6],11/0[SE;6],12/-5[W;6],@}
\expandafter\def\csname ihalf-5\endcsname{0/0[SW;6],2/5[SSW;6],6/8[S;6],%
10/5[SSE;6],12/0[SE;6],13/-5[W;6],@}
\expandafter\def\csname ihalf-6\endcsname{-1/0[WSW;6],0/5[SW;6],3/9[SSW;6],8/9[SSE;6],11/5[SE;6],12/0[ESE;6],12/-5[W;6],@}

\expandafter\xdef\csname H@R\endcsname{-25300}
\expandafter\xdef\csname H@K\endcsname{-15000}
\expandafter\xdef\csname H@D\endcsname{-9000}
\expandafter\xdef\csname H@Q\endcsname{-8500}
\expandafter\xdef\csname H@N\endcsname{-7800}
\expandafter\xdef\csname H@E\endcsname{-7400}
\expandafter\xdef\csname H@H\endcsname{-4000}
\expandafter\xdef\csname H@S\endcsname{-1800}
\expandafter\xdef\csname H@T\endcsname{-500}
\expandafter\xdef\csname H@P\endcsname{1200}
\expandafter\xdef\csname H@Y\endcsname{2600}
\expandafter\xdef\csname H@C\endcsname{2900}
\expandafter\xdef\csname H@G\endcsname{4800}
\expandafter\xdef\csname H@A\endcsname{6200}
\expandafter\xdef\csname H@M\endcsname{6400}
\expandafter\xdef\csname H@W\endcsname{8100}
\expandafter\xdef\csname H@L\endcsname{10600}
\expandafter\xdef\csname H@V\endcsname{10800}
\expandafter\xdef\csname H@F\endcsname{11900}
\expandafter\xdef\csname H@I\endcsname{13800}

\def\directE{0}       \def\cosE{10000}   \def\sinE{0}
\def\directENE{22.5}  \def\cosENE{9239}  \def\sinENE{3827}
\def\directNE{45}     \def\cosNE{7071}   \def\sinNE{7071}
\def\directNNE{67.5}  \def\cosNNE{3827}  \def\sinNNE{9239}
\def\directN{90}      \def\cosN{0}       \def\sinN{10000}
\def\directNNW{112.5} \def\cosNNW{-3827} \def\sinNNW{9239}
\def\directNW{135}    \def\cosNW{-7071}  \def\sinNW{7071}
\def\directWNW{157.5} \def\cosWNW{-9239} \def\sinWNW{3827}
\def\directW{180}     \def\cosW{-10000}  \def\sinW{0}
\def\directWSW{202.5} \def\cosWSW{-9239} \def\sinWSW{-3827}
\def\directSW{225}    \def\cosSW{-7071}  \def\sinSW{-7071}
\def\directSSW{247.5} \def\cosSSW{-3827} \def\sinSSW{-9239}
\def\directS{270}     \def\cosS{0}       \def\sinS{-10000}
\def\directSSE{292.5} \def\cosSSE{3827}  \def\sinSSE{-9239}
\def\directSE{315}    \def\cosSE{7071}   \def\sinSE{-7071}
\def\directESE{337.5} \def\cosESE{9239}  \def\sinESE{-3827}

\definecolor{GreenYellow}   {cmyk}{0.15,0,0.69,0}
\definecolor{Yellow}        {cmyk}{0,0,1,0}
\definecolor{Goldenrod}     {cmyk}{0,0.10,0.84,0}
\definecolor{Dandelion}     {cmyk}{0,0.29,0.84,0}
\definecolor{Apricot}       {cmyk}{0,0.32,0.52,0}
\definecolor{Peach}         {cmyk}{0,0.50,0.70,0}
\definecolor{Melon}         {cmyk}{0,0.46,0.50,0}
\definecolor{YellowOrange}  {cmyk}{0,0.42,1,0}
\definecolor{Orange}        {cmyk}{0,0.61,0.87,0}
\definecolor{BurntOrange}   {cmyk}{0,0.51,1,0}
\definecolor{Bittersweet}   {cmyk}{0,0.75,1,0.24}
\definecolor{RedOrange}     {cmyk}{0,0.77,0.87,0}
\definecolor{Mahagony}      {cmyk}{0,0.85,0.87,0.35}
\definecolor{Maroon}        {cmyk}{0,0.87,0.68,0.32}
\definecolor{BrickRed}      {cmyk}{0,0.89,0.94,0.28}
\definecolor{Red}           {cmyk}{0,1,1,0}
\definecolor{OrangeRed}     {cmyk}{0,1,0.50,0}
\definecolor{RubineRed}     {cmyk}{0,1,0.13,0}
\definecolor{WildStrawberry}{cmyk}{0,0.96,0.39,0}
\definecolor{Salmon}        {cmyk}{0,0.53,0.38,0}
\definecolor{CarnationPink} {cmyk}{0,0.63,0,0}
\definecolor{Magenta}       {cmyk}{0,1,0,0}
\definecolor{VioletRed}     {cmyk}{0,0.81,0,0}
\definecolor{Rhodamine}     {cmyk}{0,0.82,0,0}
\definecolor{Mulberry}      {cmyk}{0.34,0.90,0,0.02}
\definecolor{RedViolet}     {cmyk}{0.07,0.90,0,0.34}
\definecolor{Fuchsia}       {cmyk}{0.47,0.91,0,0.08}
\definecolor{Lavender}      {cmyk}{0,0.48,0,0}
\definecolor{Thistle}       {cmyk}{0.12,0.59,0,0}
\definecolor{Orchid}        {cmyk}{0.32,0.64,0,0}
\definecolor{DarkOrchid}    {cmyk}{0.40,0.80,0.20,0}
\definecolor{Purple}        {cmyk}{0.45,0.86,0,0}
\definecolor{Plum}          {cmyk}{0.50,1,0,0}
\definecolor{Violet}        {cmyk}{0.79,0.88,0,0}
\definecolor{RoyalPurple}   {cmyk}{0.75,0.90,0,0}
\definecolor{BlueViolet}    {cmyk}{0.86,0.91,0,0.04}
\definecolor{Periwinkle}    {cmyk}{0.57,0.55,0,0}
\definecolor{CadetBlue}     {cmyk}{0.62,0.57,0.23,0}
\definecolor{CornflowerBlue}{cmyk}{0.65,0.13,0,0}
\definecolor{MidnightBlue}  {cmyk}{0.98,0.13,0,0.43}
\definecolor{NavyBlue}      {cmyk}{0.94,0.54,0,0}
\definecolor{RoyalBlue}     {cmyk}{1,0.50,0,0}
\definecolor{Blue}          {cmyk}{1,1,0,0}
\definecolor{Cerulean}      {cmyk}{0.94,0.11,0,0}
\definecolor{Cyan}          {cmyk}{1,0,0,0}
\definecolor{ProcessBlue}   {cmyk}{0.96,0,0,0}
\definecolor{SkyBlue}       {cmyk}{0.62,0,0.12,0}
\definecolor{Turquoise}     {cmyk}{0.85,0,0.20,0}
\definecolor{TealBlue}      {cmyk}{0.86,0,0.34,0.02}
\definecolor{Aquamarine}    {cmyk}{0.82,0,0.30,0}
\definecolor{BlueGreen}     {cmyk}{0.85,0,0.33,0}
\definecolor{Emerald}       {cmyk}{1,0,0.50,0}
\definecolor{JungleGreen}   {cmyk}{0.99,0,0.52,0}
\definecolor{SeaGreen}      {cmyk}{0.69,0,0.50,0}
\definecolor{Green}         {cmyk}{1,0,1,0}
\definecolor{ForestGreen}   {cmyk}{0.91,0,0.88,0.12}
\definecolor{PineGreen}     {cmyk}{0.92,0,0.59,0.25}
\definecolor{LimeGreen}     {cmyk}{0.50,0,1,0}
\definecolor{YellowGreen}   {cmyk}{0.44,0,0.74,0}
\definecolor{SpringGreen}   {cmyk}{0.26,0,0.76,0}
\definecolor{OliveGreen}    {cmyk}{0.64,0,0.95,0.40}
\definecolor{RawSienna}     {cmyk}{0,0.72,1,0.45}
\definecolor{Sepia}         {cmyk}{0,0.83,1,0.70}
\definecolor{Brown}         {cmyk}{0,0.81,1,0.60}
\definecolor{Tan}           {cmyk}{0.14,0.42,0.56,0}
\definecolor{White}         {cmyk}{0,0,0,0}
\definecolor{Gray0}         {cmyk}{0,0,0,0}
\definecolor{Gray5}         {cmyk}{0,0,0,0.05}
\definecolor{Gray10}        {cmyk}{0,0,0,0.10}
\definecolor{Gray15}        {cmyk}{0,0,0,0.15}
\definecolor{Gray20}        {cmyk}{0,0,0,0.20}
\definecolor{Gray25}        {cmyk}{0,0,0,0.25}
\definecolor{Gray30}        {cmyk}{0,0,0,0.30}
\definecolor{LightGray}     {cmyk}{0,0,0,0.33}
\definecolor{Gray35}        {cmyk}{0,0,0,0.35}
\definecolor{Gray40}        {cmyk}{0,0,0,0.40}
\definecolor{Gray45}        {cmyk}{0,0,0,0.45}
\definecolor{Gray50}        {cmyk}{0,0,0,0.50}
\definecolor{Gray}          {cmyk}{0,0,0,0.50}
\definecolor{Gray55}        {cmyk}{0,0,0,0.55}
\definecolor{Gray60}        {cmyk}{0,0,0,0.60}
\definecolor{Gray65}        {cmyk}{0,0,0,0.65}
\definecolor{DarkGray}      {cmyk}{0,0,0,0.66}
\definecolor{Gray70}        {cmyk}{0,0,0,0.70}
\definecolor{Gray75}        {cmyk}{0,0,0,0.75}
\definecolor{Gray80}        {cmyk}{0,0,0,0.80}
\definecolor{Gray85}        {cmyk}{0,0,0,0.85}
\definecolor{Gray90}        {cmyk}{0,0,0,0.90}
\definecolor{Gray95}        {cmyk}{0,0,0,0.95}
\definecolor{Black}         {cmyk}{0,0,0,1}
\definecolor{Gray100}       {cmyk}{0,0,0,1}
\definecolor{LightGreenYellow}   {cmyk}{0.08,0,0.35,0}
\definecolor{LightYellow}        {cmyk}{0,0,0.50,0}
\definecolor{LightGoldenrod}     {cmyk}{0,0.05,0.42,0}
\definecolor{LightDandelion}     {cmyk}{0,0.15,0.42,0}
\definecolor{LightApricot}       {cmyk}{0,0.16,0.26,0}
\definecolor{LightPeach}         {cmyk}{0,0.25,0.35,0}
\definecolor{LightMelon}         {cmyk}{0,0.23,0.25,0}
\definecolor{LightYellowOrange}  {cmyk}{0,0.21,0.50,0}
\definecolor{LightOrange}        {cmyk}{0,0.31,0.44,0}
\definecolor{LightBurntOrange}   {cmyk}{0,0.26,0.50,0}
\definecolor{LightBittersweet}   {cmyk}{0,0.38,0.50,0.12}
\definecolor{LightRedOrange}     {cmyk}{0,0.39,0.44,0}
\definecolor{LightMahagony}      {cmyk}{0,0.43,0.44,0.18}
\definecolor{LightMaroon}        {cmyk}{0,0.44,0.34,0.16}
\definecolor{LightBrickRed}      {cmyk}{0,0.45,0.47,0.14}
\definecolor{LightRed}           {cmyk}{0,0.50,0.50,0}
\definecolor{LightOrangeRed}     {cmyk}{0,0.50,0.25,0}
\definecolor{LightRubineRed}     {cmyk}{0,0.50,0.07,0}
\definecolor{LightWildStrawberry}{cmyk}{0,0.48,0.20,0}
\definecolor{LightSalmon}        {cmyk}{0,0.27,0.19,0}
\definecolor{LightCarnationPink} {cmyk}{0,0.32,0,0}
\definecolor{LightMagenta}       {cmyk}{0,0.50,0,0}
\definecolor{LightVioletRed}     {cmyk}{0,0.40,0,0}
\definecolor{LightRhodamine}     {cmyk}{0,0.41,0,0}
\definecolor{LightMulberry}      {cmyk}{0.17,0.45,0,0.01}
\definecolor{LightRedViolet}     {cmyk}{0.04,0.45,0,0.17}
\definecolor{LightFuchsia}       {cmyk}{0.24,0.46,0,0.04}
\definecolor{LightLavender}      {cmyk}{0,0.24,0,0}
\definecolor{LightThistle}       {cmyk}{0.06,0.30,0,0}
\definecolor{LightOrchid}        {cmyk}{0.16,0.32,0,0}
\definecolor{LightDarkOrchid}    {cmyk}{0.20,0.40,0.10,0}
\definecolor{LightPurple}        {cmyk}{0.23,0.43,0,0}
\definecolor{LightPlum}          {cmyk}{0.25,0.50,0,0}
\definecolor{LightViolet}        {cmyk}{0.40,0.44,0,0}
\definecolor{LightRoyalPurple}   {cmyk}{0.38,0.45,0,0}
\definecolor{LightBlueViolet}    {cmyk}{0.43,0.46,0,0.02}
\definecolor{LightPeriwinkle}    {cmyk}{0.29,0.28,0,0}
\definecolor{LightCadetBlue}     {cmyk}{0.31,0.29,0.12,0}
\definecolor{LightCornflowerBlue}{cmyk}{0.33,0.07,0,0}
\definecolor{LightMidnightBlue}  {cmyk}{0.49,0.07,0,0.22}
\definecolor{LightNavyBlue}      {cmyk}{0.47,0.27,0,0}
\definecolor{LightRoyalBlue}     {cmyk}{0.50,0.25,0,0}
\definecolor{LightBlue}          {cmyk}{0.50,0.50,0,0}
\definecolor{LightCerulean}      {cmyk}{0.47,0.06,0,0}
\definecolor{LightCyan}          {cmyk}{0.50,0,0,0}
\definecolor{LightProcessBlue}   {cmyk}{0.48,0,0,0}
\definecolor{LightSkyBlue}       {cmyk}{0.31,0,0.06,0}
\definecolor{LightTurquoise}     {cmyk}{0.43,0,0.10,0}
\definecolor{LightTealBlue}      {cmyk}{0.43,0,0.17,0.01}
\definecolor{LightAquamarine}    {cmyk}{0.41,0,0.15,0}
\definecolor{LightBlueGreen}     {cmyk}{0.43,0,0.17,0}
\definecolor{LightEmerald}       {cmyk}{0.50,0,0.25,0}
\definecolor{LightJungleGreen}   {cmyk}{0.50,0,0.26,0}
\definecolor{LightSeaGreen}      {cmyk}{0.35,0,0.25,0}
\definecolor{LightGreen}         {cmyk}{0.50,0,0.50,0}
\definecolor{LightForestGreen}   {cmyk}{0.46,0,0.44,0.06}
\definecolor{LightPineGreen}     {cmyk}{0.46,0,0.30,0.13}
\definecolor{LightLimeGreen}     {cmyk}{0.25,0,0.50,0}
\definecolor{LightYellowGreen}   {cmyk}{0.22,0,0.37,0}
\definecolor{LightSpringGreen}   {cmyk}{0.13,0,0.38,0}
\definecolor{LightOliveGreen}    {cmyk}{0.32,0,0.48,0.20}
\definecolor{LightRawSienna}     {cmyk}{0,0.36,0.50,0.23}
\definecolor{LightSepia}         {cmyk}{0,0.44,0.50,0.35}
\definecolor{LightBrown}         {cmyk}{0,0.41,0.50,0.30}
\definecolor{LightTan}           {cmyk}{0.07,0.21,0.28,0}

\def\rotopo#1{%
  \Grot@setangle{#1}%
  \setbox\z@\hbox\bgroup\ignorespaces}
\def\endrotopo{%
  \unskip\egroup
  \Grot@x\z@
  \Grot@y\z@
  \wd0\z@\dp0\z@\ht0\z@
  \Grot@box
}

\def\load@fonts{%
   \setlength\temp@length{\textwidth}
   \ifnum\fix@length>10
      \divide\temp@length by \x@max
      \loopcount=\x@max
      \advance\loopcount by -20
      \multiply\temp@length by \loopcount
      \divide\temp@length by \x@max   
      \ifdim\temp@length<0.92398pt \loopcount=0
      \else
      \ifdim\temp@length<1.10878pt \loopcount=1
      \else
      \ifdim\temp@length<1.33054pt \loopcount=2
      \else
      \ifdim\temp@length<1.59695pt \loopcount=3
      \else
      \loopcount=4
      \fi\fi\fi\fi
      \ifnum\change@length=0
      \else
         \advance\loopcount by \change@length\relax
         \ifnum\loopcount<0 \loopcount=0 \fi
         \ifnum\loopcount>10\loopcount=10\fi
      \fi
      \xdef\fix@length{\the\loopcount}
   \fi
   \ifcase\fix@length
          \setlength\temp@length{0.9pt}
      \or \setlength\temp@length{1.1pt}
      \or \setlength\temp@length{1.3pt}
      \or \setlength\temp@length{1.7pt}
      \or \setlength\temp@length{1.9pt}
      \or \setlength\temp@length{2.4pt}
      \or \setlength\temp@length{2.9pt}
      \or \setlength\temp@length{3.4pt}
      \or \setlength\temp@length{3.9pt}
      \or \setlength\temp@length{4.1pt}
      \or \setlength\temp@length{4.8pt}
      \else
   \fi
   \ifdim\temp@length<0.92398pt
      \xdef\font@num{A}
      \newfont{\bsymA}{cmsy10 scaled 833}
      \newfont{\sfdcA}{cmssdc10 scaled 232}
      \newfont{\squareA}{cmsy10 scaled 482}
      \newfont{\lipoA}{cmtt10 scaled 482}
      \newfont{\treeA}{cmssdc10 scaled 482}
      \ifx\label@size\ampers@nd
         \setsize{labels}{tiny}
      \fi
      \ifx\mem@label@size\ampers@nd
	 \setsize{membranelabels}{tiny}
      \fi
      \setsize{looplabels}{footnotesize}
      \setsize{TMlabels}{footnotesize}
   \else
   \ifdim\temp@length<1.10878pt
      \xdef\font@num{B}
      \newfont{\bsymB}{cmsy10 scaled 1000}
      \newfont{\sfdcB}{cmssdc10 scaled 279}
      \newfont{\squareB}{cmsy10 scaled 578}
      \newfont{\lipoB}{cmtt10 scaled 578}
      \newfont{\treeB}{cmssdc10 scaled 578}
      \ifx\label@size\ampers@nd
         \setsize{labels}{tiny}
      \fi
      \ifx\mem@label@size\ampers@nd
	 \setsize{membranelabels}{tiny}
      \fi
      \setsize{looplabels}{footnotesize}
      \setsize{TMlabels}{footnotesize}
   \else
   \ifdim\temp@length<1.33054pt
      \xdef\font@num{C}
      \newfont{\bsymC}{cmsy10 scaled 1200}
      \newfont{\sfdcC}{cmssdc10 scaled 335}
      \newfont{\squareC}{cmsy10 scaled 694}
      \newfont{\lipoC}{cmtt10 scaled 694}
      \newfont{\treeC}{cmssdc10 scaled 694}
      \ifx\label@size\ampers@nd
         \setsize{labels}{tiny}
      \fi
      \ifx\mem@label@size\ampers@nd
	 \setsize{membranelabels}{tiny}
      \fi
      \setsize{looplabels}{footnotesize}
      \setsize{TMlabels}{footnotesize}
   \else
   \ifdim\temp@length<1.59695pt
      \xdef\font@num{D}
      \newfont{\bsymD}{cmsy10 scaled 1440}
      \newfont{\sfdcD}{cmssdc10 scaled 402}
      \newfont{\squareD}{cmsy10 scaled 833}
      \newfont{\lipoD}{cmtt10 scaled 833}
      \newfont{\treeD}{cmssdc10 scaled 833}
      \ifx\label@size\ampers@nd
         \setsize{labels}{tiny}
      \fi
      \ifx\mem@label@size\ampers@nd
	 \setsize{membranelabels}{tiny}
      \fi
      \setsize{looplabels}{footnotesize}
      \setsize{TMlabels}{footnotesize}
   \else
   \ifdim\temp@length<1.91574pt
      \xdef\font@num{E}
      \newfont{\bsymE}{cmsy10 scaled 1728}
      \newfont{\sfdcE}{cmssdc10 scaled 482}
      \newfont{\squareE}{cmsy10 scaled 1000}
      \newfont{\lipoE}{cmtt10 scaled 1000}
      \newfont{\treeE}{cmssdc10 scaled 1000}
      \ifx\label@size\ampers@nd
         \setsize{labels}{scriptsize}
      \fi
      \ifx\mem@label@size\ampers@nd
	 \setsize{membranelabels}{scriptsize}
      \fi
      \setsize{looplabels}{smallsize}
      \setsize{TMlabels}{smallsize}
   \else
   \ifdim\temp@length<2.2992pt
      \xdef\font@num{F}
      \newfont{\bsymF}{cmsy10 scaled 2074}
      \newfont{\sfdcF}{cmssdc10 scaled 578}
      \newfont{\squareF}{cmsy10 scaled 1200}
      \newfont{\lipoF}{cmtt10 scaled 1200}
      \newfont{\treeF}{cmssdc10 scaled 1200}
      \ifx\label@size\ampers@nd
         \setsize{labels}{footnotesize}
      \fi
      \ifx\mem@label@size\ampers@nd
	 \setsize{membranelabels}{footnotesize}
      \fi
      \setsize{looplabels}{normalsize}
      \setsize{TMlabels}{normalsize}
   \else
   \ifdim\temp@length<2.75888pt
      \xdef\font@num{G}
      \newfont{\bsymG}{cmsy10 scaled 2488}
      \newfont{\sfdcG}{cmssdc10 scaled 694}
      \newfont{\squareG}{cmsy10 scaled 1440}
      \newfont{\lipoG}{cmtt10 scaled 1440}
      \newfont{\treeG}{cmssdc10 scaled 1440}
      \ifx\label@size\ampers@nd
         \setsize{labels}{small}
      \fi
      \ifx\mem@label@size\ampers@nd
	 \setsize{membranelabels}{small}
      \fi
      \setsize{looplabels}{large}
      \setsize{TMlabels}{large}
   \else
   \ifdim\temp@length<3.31097pt
      \xdef\font@num{H}
      \newfont{\bsymH}{cmsy10 scaled 2986}
      \newfont{\sfdcH}{cmssdc10 scaled 833}
      \newfont{\squareH}{cmsy10 scaled 1728}
      \newfont{\lipoH}{cmtt10 scaled 1728}
      \newfont{\treeH}{cmssdc10 scaled 1728}
      \ifx\label@size\ampers@nd
         \setsize{labels}{normalsize}
      \fi
      \ifx\mem@label@size\ampers@nd
	 \setsize{membranelabels}{normalsize}
      \fi
      \setsize{looplabels}{Large}
      \setsize{TMlabels}{Large}
   \else
   \ifdim\temp@length<3.97316pt
      \xdef\font@num{I}
      \newfont{\bsymI}{cmsy10 scaled 3583}
      \newfont{\sfdcI}{cmssdc10 scaled 1000}
      \newfont{\squareI}{cmsy10 scaled 2074}
      \newfont{\lipoI}{cmtt10 scaled 2074}
      \newfont{\treeI}{cmssdc10 scaled 2074}
      \ifx\label@size\ampers@nd
         \setsize{labels}{large}
      \fi
      \ifx\mem@label@size\ampers@nd
	 \setsize{membranelabels}{large}
      \fi
      \setsize{looplabels}{LARGE}
      \setsize{TMlabels}{LARGE}
   \else
   \ifdim\temp@length<4.76779pt
      \xdef\font@num{J}
      \newfont{\bsymJ}{cmsy10 scaled 4300}
      \newfont{\sfdcJ}{cmssdc10 scaled 1200}
      \newfont{\squareJ}{cmsy10 scaled 2488}
      \newfont{\lipoJ}{cmtt10 scaled 2488}
      \newfont{\treeJ}{cmssdc10 scaled 2488}
      \ifx\label@size\ampers@nd
         \setsize{labels}{Large}
      \fi
      \ifx\mem@label@size\ampers@nd
	 \setsize{membranelabels}{Large}
      \fi
      \setsize{looplabels}{huge}
      \setsize{TMlabels}{huge}
   \else
      \xdef\font@num{K}
      \newfont{\bsymK}{cmsy10 scaled 5160}
      \newfont{\sfdcK}{cmssdc10 scaled 1440}
      \newfont{\squareK}{cmsy10 scaled 2986}
      \newfont{\lipoK}{cmtt10 scaled 2986}
      \newfont{\treeK}{cmssdc10 scaled 2986}
      \ifx\label@size\ampers@nd
         \setsize{labels}{LARGE}
      \fi
      \ifx\mem@label@size\ampers@nd
	 \setsize{membranelabels}{LARGE}
      \fi
      \setsize{looplabels}{Huge}
      \setsize{TMlabels}{Huge}
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
}

\expandafter\def\csname sin0\endcsname{0}
\expandafter\def\csname sin1\endcsname{175}
\expandafter\def\csname sin2\endcsname{349}
\expandafter\def\csname sin3\endcsname{523}
\expandafter\def\csname sin4\endcsname{698}
\expandafter\def\csname sin5\endcsname{872}
\expandafter\def\csname sin6\endcsname{1045}
\expandafter\def\csname sin7\endcsname{1219}
\expandafter\def\csname sin8\endcsname{1392}
\expandafter\def\csname sin9\endcsname{1563}
\expandafter\def\csname sin10\endcsname{1736}
\expandafter\def\csname sin11\endcsname{1908}
\expandafter\def\csname sin12\endcsname{2079}
\expandafter\def\csname sin13\endcsname{2250}
\expandafter\def\csname sin14\endcsname{2419}
\expandafter\def\csname sin15\endcsname{2588}
\expandafter\def\csname sin16\endcsname{2756}
\expandafter\def\csname sin17\endcsname{2924}
\expandafter\def\csname sin18\endcsname{3090}
\expandafter\def\csname sin19\endcsname{3256}
\expandafter\def\csname sin20\endcsname{3420}
\expandafter\def\csname sin21\endcsname{3584}
\expandafter\def\csname sin22\endcsname{3746}
\expandafter\def\csname sin23\endcsname{3907}
\expandafter\def\csname sin24\endcsname{4067}
\expandafter\def\csname sin25\endcsname{4226}
\expandafter\def\csname sin26\endcsname{4384}
\expandafter\def\csname sin27\endcsname{4540}
\expandafter\def\csname sin28\endcsname{4695}
\expandafter\def\csname sin29\endcsname{4848}
\expandafter\def\csname sin30\endcsname{5000}
\expandafter\def\csname sin31\endcsname{5150}
\expandafter\def\csname sin32\endcsname{5299}
\expandafter\def\csname sin33\endcsname{5446}
\expandafter\def\csname sin34\endcsname{5592}
\expandafter\def\csname sin35\endcsname{5736}
\expandafter\def\csname sin36\endcsname{5878}
\expandafter\def\csname sin37\endcsname{6018}
\expandafter\def\csname sin38\endcsname{6157}
\expandafter\def\csname sin39\endcsname{6293}
\expandafter\def\csname sin40\endcsname{6428}
\expandafter\def\csname sin41\endcsname{6561}
\expandafter\def\csname sin42\endcsname{6691}
\expandafter\def\csname sin43\endcsname{6820}
\expandafter\def\csname sin44\endcsname{6947}
\expandafter\def\csname sin45\endcsname{7071}
\expandafter\def\csname sin46\endcsname{7193}
\expandafter\def\csname sin47\endcsname{7314}
\expandafter\def\csname sin48\endcsname{7431}
\expandafter\def\csname sin49\endcsname{7547}
\expandafter\def\csname sin50\endcsname{7660}
\expandafter\def\csname sin51\endcsname{7771}
\expandafter\def\csname sin52\endcsname{7880}
\expandafter\def\csname sin53\endcsname{7986}
\expandafter\def\csname sin54\endcsname{8090}
\expandafter\def\csname sin55\endcsname{8192}
\expandafter\def\csname sin56\endcsname{8290}
\expandafter\def\csname sin57\endcsname{8387}
\expandafter\def\csname sin58\endcsname{8480}
\expandafter\def\csname sin59\endcsname{8572}
\expandafter\def\csname sin60\endcsname{8660}
\expandafter\def\csname sin61\endcsname{8746}
\expandafter\def\csname sin62\endcsname{8829}
\expandafter\def\csname sin63\endcsname{8910}
\expandafter\def\csname sin64\endcsname{8989}
\expandafter\def\csname sin65\endcsname{9063}
\expandafter\def\csname sin66\endcsname{9135}
\expandafter\def\csname sin67\endcsname{9205}
\expandafter\def\csname sin68\endcsname{9272}
\expandafter\def\csname sin69\endcsname{9336}
\expandafter\def\csname sin70\endcsname{9397}
\expandafter\def\csname sin71\endcsname{9455}
\expandafter\def\csname sin72\endcsname{9511}
\expandafter\def\csname sin73\endcsname{9563}
\expandafter\def\csname sin74\endcsname{9613}
\expandafter\def\csname sin75\endcsname{9659}
\expandafter\def\csname sin76\endcsname{9703}
\expandafter\def\csname sin77\endcsname{9744}
\expandafter\def\csname sin78\endcsname{9781}
\expandafter\def\csname sin79\endcsname{9816}
\expandafter\def\csname sin80\endcsname{9848}
\expandafter\def\csname sin81\endcsname{9877}
\expandafter\def\csname sin82\endcsname{9903}
\expandafter\def\csname sin83\endcsname{9925}
\expandafter\def\csname sin84\endcsname{9945}
\expandafter\def\csname sin85\endcsname{9962}
\expandafter\def\csname sin86\endcsname{9976}
\expandafter\def\csname sin87\endcsname{9986}
\expandafter\def\csname sin88\endcsname{9994}
\expandafter\def\csname sin89\endcsname{9998}
\expandafter\def\csname sin90\endcsname{10000}

\expandafter\def\csname invtan0\endcsname{0}
\expandafter\def\csname invtan1\endcsname{175}
\expandafter\def\csname invtan2\endcsname{349}
\expandafter\def\csname invtan3\endcsname{524}
\expandafter\def\csname invtan4\endcsname{699}
\expandafter\def\csname invtan5\endcsname{875}
\expandafter\def\csname invtan6\endcsname{1051}
\expandafter\def\csname invtan7\endcsname{1228}
\expandafter\def\csname invtan8\endcsname{1405}
\expandafter\def\csname invtan9\endcsname{1584}
\expandafter\def\csname invtan10\endcsname{1763}
\expandafter\def\csname invtan11\endcsname{1944}
\expandafter\def\csname invtan12\endcsname{2126}
\expandafter\def\csname invtan13\endcsname{2309}
\expandafter\def\csname invtan14\endcsname{2493}
\expandafter\def\csname invtan15\endcsname{2679}
\expandafter\def\csname invtan16\endcsname{2867}
\expandafter\def\csname invtan17\endcsname{3057}
\expandafter\def\csname invtan18\endcsname{3249}
\expandafter\def\csname invtan19\endcsname{3443}
\expandafter\def\csname invtan20\endcsname{3640}
\expandafter\def\csname invtan21\endcsname{3839}
\expandafter\def\csname invtan22\endcsname{4040}
\expandafter\def\csname invtan23\endcsname{4245}
\expandafter\def\csname invtan24\endcsname{4452}
\expandafter\def\csname invtan25\endcsname{4663}
\expandafter\def\csname invtan26\endcsname{4877}
\expandafter\def\csname invtan27\endcsname{5095}
\expandafter\def\csname invtan28\endcsname{5317}
\expandafter\def\csname invtan29\endcsname{5543}
\expandafter\def\csname invtan30\endcsname{5774}
\expandafter\def\csname invtan31\endcsname{6009}
\expandafter\def\csname invtan32\endcsname{6247}
\expandafter\def\csname invtan33\endcsname{6494}
\expandafter\def\csname invtan34\endcsname{6745}
\expandafter\def\csname invtan35\endcsname{7002}
\expandafter\def\csname invtan36\endcsname{7265}
\expandafter\def\csname invtan37\endcsname{7536}
\expandafter\def\csname invtan38\endcsname{7813}
\expandafter\def\csname invtan39\endcsname{8098}
\expandafter\def\csname invtan40\endcsname{8391}
\expandafter\def\csname invtan41\endcsname{8693}
\expandafter\def\csname invtan42\endcsname{9004}
\expandafter\def\csname invtan43\endcsname{9325}
\expandafter\def\csname invtan44\endcsname{9657}
\expandafter\def\csname invtan45\endcsname{10000}
\expandafter\def\csname invtan46\endcsname{10355}
\expandafter\def\csname invtan47\endcsname{10724}
\expandafter\def\csname invtan48\endcsname{11106}
\expandafter\def\csname invtan49\endcsname{11504}
\expandafter\def\csname invtan50\endcsname{11918}
\expandafter\def\csname invtan51\endcsname{12349}
\expandafter\def\csname invtan52\endcsname{12799}
\expandafter\def\csname invtan53\endcsname{13270}
\expandafter\def\csname invtan54\endcsname{13764}
\expandafter\def\csname invtan55\endcsname{14281}
\expandafter\def\csname invtan56\endcsname{14826}
\expandafter\def\csname invtan57\endcsname{15399}
\expandafter\def\csname invtan58\endcsname{16003}
\expandafter\def\csname invtan59\endcsname{16643}
\expandafter\def\csname invtan60\endcsname{17321}
\expandafter\def\csname invtan61\endcsname{18040}
\expandafter\def\csname invtan62\endcsname{18807}
\expandafter\def\csname invtan63\endcsname{19626}
\expandafter\def\csname invtan64\endcsname{20503}
\expandafter\def\csname invtan65\endcsname{21445}
\expandafter\def\csname invtan66\endcsname{22460}
\expandafter\def\csname invtan67\endcsname{23558}
\expandafter\def\csname invtan68\endcsname{24751}
\expandafter\def\csname invtan69\endcsname{26051}
\expandafter\def\csname invtan70\endcsname{27475}
\expandafter\def\csname invtan71\endcsname{29042}
\expandafter\def\csname invtan72\endcsname{30777}
\expandafter\def\csname invtan73\endcsname{32709}
\expandafter\def\csname invtan74\endcsname{34874}
\expandafter\def\csname invtan75\endcsname{37321}
\expandafter\def\csname invtan76\endcsname{40108}
\expandafter\def\csname invtan77\endcsname{43315}
\expandafter\def\csname invtan78\endcsname{47046}
\expandafter\def\csname invtan79\endcsname{51446}
\expandafter\def\csname invtan80\endcsname{56713}
\expandafter\def\csname invtan81\endcsname{63138}
\expandafter\def\csname invtan82\endcsname{71154}
\expandafter\def\csname invtan83\endcsname{81443}
\expandafter\def\csname invtan84\endcsname{95144}
\expandafter\def\csname invtan85\endcsname{114301}
\expandafter\def\csname invtan86\endcsname{143007}
\expandafter\def\csname invtan87\endcsname{190814}
\expandafter\def\csname invtan88\endcsname{286363}
\expandafter\def\csname invtan89\endcsname{572900}

\def\sin@#1{%
   \xdef\first@{#1}
   \sincos=\first@
   \ifnum#1<0 
      \multiply\sincos by -1 \xdef\first@{\the\sincos}
   \fi
   \divide\sincos by 360
   \ifnum\sincos>0
      \temp@count=360 \multiply\temp@count by \sincos
      \sincos=\first@ \advance\sincos by -\temp@count
   \else
      \sincos=\first@\relax
   \fi
   \ifnum\sincos>270
      \advance\sincos by -360
      \multiply\sincos by -1
      \xdef\temp@{\csname sin\the\sincos\endcsname}
      \sincos=\temp@\relax
      \multiply\sincos by -1
   \else
   \ifnum\sincos>180
      \advance\sincos by -180
      \xdef\temp@{\csname sin\the\sincos\endcsname}
      \sincos=\temp@\relax
      \multiply\sincos by -1
   \else
   \ifnum\sincos>90 
      \advance\sincos by -180
      \multiply\sincos by -1
      \xdef\temp@{\csname sin\the\sincos\endcsname}
      \sincos=\temp@\relax
   \else
      \xdef\temp@{\csname sin\the\sincos\endcsname}
      \sincos=\temp@\relax
   \fi\fi\fi
   \ifnum#1<0 \multiply\sincos by -1 \fi
}

\def\cos@#1{%
   \xdef\first@{#1}
   \sincos=\first@
   \ifnum#1<0
      \multiply\sincos by -1 \xdef\first@{\the\sincos}
   \fi
   \divide\sincos by 360
   \ifnum\sincos>0
      \temp@count=360 \multiply\temp@count by \sincos
      \sincos=\first@ \advance\sincos by -\temp@count
   \else
      \sincos=\first@\relax
   \fi
   \ifnum\sincos>270
      \advance\sincos by -270
      \xdef\temp@{\csname sin\the\sincos\endcsname}
      \sincos=\temp@\relax
   \else
   \ifnum\sincos>180
      \advance\sincos by -270
      \multiply\sincos by -1
      \xdef\temp@{\csname sin\the\sincos\endcsname}
      \sincos=\temp@\relax
      \multiply\sincos by -1
   \else
   \ifnum\sincos>90
      \advance\sincos by -90
      \xdef\temp@{\csname sin\the\sincos\endcsname}
      \sincos=\temp@\relax
      \multiply\sincos by -1
   \else
      \advance\sincos by -90
      \multiply\sincos by -1
      \xdef\temp@{\csname sin\the\sincos\endcsname}
      \sincos=\temp@\relax  
   \fi\fi\fi
}

\def\tan@#1{%
   \cos@{#1}
   \ifnum\sincos=0  
   \PackageError{TeXtopo}
    {Undefined angle for tangens}
    {The tangens is not defined for the angles\MessageBreak
     ... -270, -90, 90, 270 ...\MessageBreak
}
   \else
     \xdef\last@{\the\sincos}
     \sin@{#1}
     \multiply\sincos by 10000 
     \divide\sincos by \last@
   \fi
}

\def\invtan@#1#2{%
   \sincos=#2
   \multiply\sincos by 10000
   \divide\sincos by #1
   \ifnum\sincos<0 \multiply\sincos by -1\fi
   \xdef\temp@{\the\sincos}
   \sincos=-1
   \loop
      \advance\sincos by 1
      \ifnum\sincos=90 \sincos=89 \xdef\temp@{-1} \fi
   \expandafter\ifnum\csname invtan\the\sincos\endcsname<\temp@ \repeat
   \ifnum\temp@=-1 \sincos=90 \fi
   \ifnum#1>0
      \ifnum#2>0
      \else
         \multiply\sincos by -1
         \advance\sincos by 360
      \fi
   \else
      \ifnum#2>0
         \multiply\sincos by -1
         \advance\sincos by 180
      \else
         \advance\sincos by 180
      \fi
   \fi
}

\def\sqrt@#1{
   \xdef\third@{10000}
   \temp@count=#1
   \ifnum#1>200000 \xdef\third@{1000} \divide\temp@count by 10\fi
   \ifnum#1>2000000 \message{Root value too big! (>200)}
   \else
   \xdef\last@{\the\temp@count}
   \xdef\first@{\third@}
   \xdef\second@{\last@}
   \temp@@count=0
   \loop
      \advance\temp@@count by 1
      \temp@count = \first@
      \advance\temp@count by \second@
      \divide\temp@count by 2
      \xdef\first@{\the\temp@count}
      \temp@count = \last@
      \multiply\temp@count by \third@
      \divide\temp@count by \first@
      \xdef\second@{\the\temp@count}
   \ifnum\temp@@count=10 \else \repeat
   \ifnum\third@=1000 
      \temp@count=\first@ \multiply\temp@count by 10
      \xdef\first@{\the\temp@count}
   \fi
   \ifnum\third@=100 
      \temp@count=\first@ \multiply\temp@count by 100
      \xdef\first@{\the\temp@count}
   \fi
   \ifnum\third@=10
      \temp@count=\first@ \multiply\temp@count by 1000
      \xdef\first@{\the\temp@count}
   \fi
   \fi
   \xdef\r@@t{\first@}
}

\def\put@normal#1#2{%
   \ifdo@it
   \xdef\first@{circ}
   \ifx\symb@l@style\first@
      \put(#1,#2){\raisebox{-\res@@diam}{%
           \textcolor{\symb@lc@l}{%
           \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"0F\hss}}}}
      \put(#1,#2){\raisebox{-\res@@diam}{%
           \textcolor{\fr@mec@l}{%
           \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"0E\hss}}%
           \kern-\res@diam \raisebox{0.4\res@diam}{%
           \raisebox{0.65\res@@diam}%
           {\hbox to \res@diam{\hss\csname sfdc\font@num\endcsname%
            \textcolor{\ch@rc@l}{\ch@r}\hss}}}}}
   \else
   \xdef\first@{diamond}
   \ifx\symb@l@style\first@
      \put(#1,#2){\raisebox{-\res@@diam}{%
                  \textcolor{\symb@lc@l}{%
                  \kern0.12\res@@diam%
           \begin{rotopo}{45}\rule[0.17\res@@diam]{1.2\res@@diam}%
                                     {1.3\res@@diam}\end{rotopo}%     
           \kern3\unit@length%
           \begin{rotopo}{45}\rule[0.085\res@diam]{0.75\res@diam}%
                                     {0.85\res@diam}\end{rotopo}}}}
      \put(#1,#2){\raisebox{-\res@@diam}{%
           \textcolor{\fr@mec@l}{%
           \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"05\hss}}%
           \kern-0.9\res@diam \raisebox{0.4\res@diam}{%
           \raisebox{0.65\res@@diam}%
           {\hbox to 0.9\res@diam{\hss\csname sfdc\font@num\endcsname%
            \textcolor{\ch@rc@l}{\ch@r}\hss}}}}}
   \else
   \xdef\first@{box}
   \ifx\symb@l@style\first@
    \ifhelix@
      \put(#1,#2){\kern-\res@@diam\raisebox{-\res@@diam}{%
                  \textcolor{\fr@mec@l}{%
                  \rule[0.25\res@@diam]{1.5\res@@diam}{1.75\res@@diam}}}}
      \put(#1,#2){\kern-0.85\res@@diam\raisebox{-0.8\res@@diam}{%
                  \textcolor{\symb@lc@l}{%
                  \rule[0.25\res@@diam]{1.2\res@@diam}{1.4\res@@diam}
                  \kern-1.45\res@@diam\raisebox{0.6\res@@diam}%
                 {\hbox to \res@@diam{\hss\csname sfdc\font@num\endcsname%
                  \textcolor{\ch@rc@l}{\ch@r}\hss}}}}}
    \else
      \put(#1,#2){\textcolor{\symb@lc@l}{\kern0.11\res@diam%
                  \rule[0.175\res@diam]{0.73\res@diam}{0.85\res@diam}}}
      \put(#1,#2){\textcolor{\fr@mec@l}{\kern0.02\res@diam%
           \raisebox{0.175\res@diam}%
           {\hbox to \res@diam{\hss\csname square\font@num\endcsname%
           \char'164\hss}\kern-\res@diam\hbox to \res@diam{%
           \hss\csname square\font@num\endcsname\char'165\hss}}%
           \kern-\res@diam \raisebox{0.4\res@diam}{%
           \raisebox{0.65\res@@diam}%
           {\hbox to \res@diam{\hss\csname sfdc\font@num\endcsname%
            \textcolor{\ch@rc@l}{\ch@r}\hss}}}}}
    \fi
   \fi
   \fi
   \fi
   \fi
}

\def\opt@col#1[#2]#3&{\xdef\fourth@{#1}\xdef\l@color{#2}\xdef\fifth@{#3}}
\def\test@box#1:#2:#3&{%
   \xdef\last@{#1[@]&}\expandafter\opt@col\last@
   \xdef\label@style{box}
   \ifx\fourth@\label@style
     \ifx\l@color\@t\xdef\back@color{White}\xdef\frame@color{Black}
     \else
        \xdef\l@color{\l@color,&@}
        \expandafter\two@color\l@color
     \fi
     \xdef\first@{#2[@]&}
     \expandafter\opt@col\first@
     \ifx\l@color\@t\xdef\l@color{Black}\fi
     \xdef\l@bel{\fourth@&}
     \ifx\l@bel\ampers@nd \xdef\l@bel{\,\,\,} \else \xdef\l@bel{\fourth@}\fi
   \else
   \xdef\label@style{circ}
   \ifx\fourth@\label@style
     \ifx\l@color\@t\xdef\back@color{White}\xdef\frame@color{Black}
     \else
        \xdef\l@color{\l@color,&@}
        \expandafter\two@color\l@color
     \fi
     \xdef\first@{#2[@]&}
     \expandafter\opt@col\first@
     \ifx\l@color\@t\xdef\l@color{Black}\fi
     \xdef\l@bel{\fourth@&}
     \ifx\l@bel\ampers@nd \xdef\l@bel{\,\,\,} \else \xdef\l@bel{\fourth@}\fi
   \else
   \xdef\label@style{diamond}
   \ifx\fourth@\label@style
     \ifx\l@color\@t\xdef\back@color{White}\xdef\frame@color{Black}
     \else
        \xdef\l@color{\l@color,&@}
        \expandafter\two@color\l@color
     \fi
     \xdef\first@{#2[@]&}
     \expandafter\opt@col\first@
     \ifx\l@color\@t\xdef\l@color{Black}\fi
     \xdef\l@bel{\fourth@&}
     \ifx\l@bel\ampers@nd \xdef\l@bel{\,\,\,} \else \xdef\l@bel{\fourth@}\fi
   \else
   \xdef\label@style{tree}
   \ifx\fourth@\label@style
     \ifx\l@color\@t\xdef\frame@color{Black}
     \else
        \xdef\l@color{\l@color,&@}
        \expandafter\two@color\l@color
     \fi
     \xdef\l@bel{}
   \else
     \xdef\label@style{&}
     \xdef\l@bel{\fourth@}
   \fi\fi\fi\fi
   \ifx\l@color\@t\xdef\l@color{Black}\xdef\frame@color{Black}\fi
   }
   
\def\put@label{%
   \ifx\l@bel\ampers@nd
   \else
      \xdef\first@{\l@bel::&}\expandafter\test@box\first@
      \setlength\temp@length{\unit@length}
      \multiply\temp@length by \length@
      \xdef\first@{tree}
      \ifx\label@style\first@
         \temp@count=\x@x@ \advance\temp@count by -1 \xdef\x@x@{\the\temp@count}
         \temp@count=\y@y@ \advance\temp@count by -1 \xdef\y@y@{\the\temp@count}
         \put(\x@x@,\y@y@){\begin{rotopo}{\csname direct\v@rdirect\endcsname}%
                           \begin{rotopo}{270}%
                           {\textcolor{\frame@color}{%
                           \csname tree\font@num\endcsname\kern-0.18ex I%
                           \kern-1ex\raisebox{1.4ex}Y%
                           \kern-1.5ex\raisebox{2.15ex}%
                           {\begin{rotopo}{32}Y\end{rotopo}}%
                           \kern0.6ex\raisebox{2.9ex}%
                           {\begin{rotopo}{329}Y\end{rotopo}}}}%
                           \end{rotopo}\end{rotopo}}
         \temp@count=\x@x@ \advance\temp@count by 1 \xdef\x@x@{\the\temp@count}
         \temp@count=\y@y@ \advance\temp@count by 1 \xdef\y@y@{\the\temp@count}
      \else
         \xdef\first@{\v@rdirect @}
         \expandafter\check@letter\first@
	 \ifletter
            \temp@count=\x@x@
            \expandafter\ifnum\csname cos\v@rdirect\endcsname<0
            \expandafter\ifnum\csname sin\v@rdirect\endcsname>-10000
            \advance\temp@count by -1\relax
            \fi\fi
            \put(\temp@count,\y@y@){\begin{rotopo}{\csname direct\v@rdirect\endcsname}%
                           \rule{\temp@length}{\rule@thickness}\end{rotopo}}
         \else
	    \invtan@{\v@rdirect}{\length@}
	    \sin@{\the\sincos}
	    \temp@count=\length@
	    \multiply\temp@count by 10000
	    \divide\temp@count by \sincos 
	    \advance\temp@count by 1
            \ifdim\temp@length<0pt \multiply\temp@length by -1 \fi
	    \xdef\first@{\the\temp@length}
            \temp@count=\x@x@
            \expandafter\ifnum\v@rdirect<0
            \advance\temp@count by -1\relax
            \fi
	    \invtan@{\v@rdirect}{\length@}
            \put(\temp@count,\y@y@){\begin{rotopo}{\the\sincos}%
                           \rule{\first@}{\rule@thickness}\end{rotopo}}
	  \fi
      \fi
      \xdef\first@{\v@rdirect @}
      \expandafter\check@letter\first@
      \ifletter
         \temp@count=\length@
         \multiply\temp@count by \csname cos\v@rdirect\endcsname
         \divide\temp@count by 10000
         \xdef\x@@x{\the\temp@count}
         \temp@count=\length@
         \multiply\temp@count by \csname sin\v@rdirect\endcsname
         \divide\temp@count by 10000
         \xdef\y@@y{\the\temp@count}
      \else
         \xdef\x@@x{\v@rdirect}
	 \xdef\y@@y{\length@}
      \fi
      \temp@count=\x@x@ \advance\temp@count by \x@@x \xdef\x@@@x{\the\temp@count}
      \temp@count=\y@y@ \advance\temp@count by \y@@y \xdef\y@@@y{\the\temp@count}
      \xdef\first@{box}
      \setbox1=\hbox{\label@size{\,\l@bel\,}}
      \ifnum\x@@x>0 
         \xdef\width@{0pt}
      \else
         \xdef\width@{\the\wd1} 
      \fi
      \ifnum\y@@y<0
         \setlength\temp@length{0.75\ht1} \xdef\height@{\the\temp@length}
      \else
         \setlength\temp@length{0.25\ht1} \xdef\height@{\the\temp@length}
      \fi
      \ifx\label@style\first@
        \ifx\frame@color\back@color
        \else
         \put(\x@@@x,\y@@@y){\kern-\width@%
                             \kern-0.5\unit@length%
                             \textcolor{\frame@color}%
                            {\raisebox{-0.5\unit@length}{%
                             \raisebox{-0.8\temp@length}{%
                             \rule[-\r@depth]{\wd1}{\r@height}}}}}
         \put(\x@@@x,\y@@@y){\kern-\width@%
                             \kern0.5\unit@length%
                             \textcolor{\frame@color}%
                            {\raisebox{-0.5\unit@length}{%
                             \raisebox{-0.8\temp@length}{%
                             \rule[-\r@depth]{\wd1}{\r@height}}}}}
         \put(\x@@@x,\y@@@y){\kern-\width@%
                             \kern-0.5\unit@length%
                             \textcolor{\frame@color}%
                            {\raisebox{0.5\unit@length}{%
                             \raisebox{-0.8\temp@length}{%
                             \rule[-\r@depth]{\wd1}{\r@height}}}}}
         \put(\x@@@x,\y@@@y){\kern-\width@%
                             \kern0.5\unit@length%
                             \textcolor{\frame@color}%
                            {\raisebox{0.5\unit@length}{%
                             \raisebox{-0.8\temp@length}{%
                             \rule[-\r@depth]{\wd1}{\r@height}}}}}
        \fi
         \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\back@color}%
                            {\raisebox{-0.8\temp@length}{%
                             \rule[-\r@depth]{\wd1}{\r@height}}}}
         \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\l@color}%
                            {\raisebox{-\height@}{\hbox to \wd1{%
                             \label@size{\,\hss\l@bel\,}}}}}
      \else
      \xdef\first@{circ}
      \ifx\label@style\first@
         \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\back@color}{%
           \raisebox{-\height@}{\raisebox{-2\unit@length}{\hbox to \res@diam{%
           \hss\csname bsym\font@num\endcsname\char"0F\hss}}}}}
         \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\frame@color}{%
           \raisebox{-\height@}{\raisebox{-2\unit@length}{\hbox to \res@diam{%
           \hss\csname bsym\font@num\endcsname\char"0E\hss}}}%
           \kern-\res@diam \raisebox{0.4\res@diam}%
           {\raisebox{-\height@}{\raisebox{-2\unit@length}{\hbox to \res@diam{%
            \hss\csname sfdc\font@num\endcsname%
            \textcolor{\l@color}{\l@bel}\hss}}}}}}
      \else
      \xdef\first@{diamond}
      \ifx\label@style\first@
         \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\back@color}{%
              \raisebox{-\height@}{\raisebox{-2.5\unit@length}{\kern3\unit@length%
              \begin{rotopo}{45}\rule[0.085\res@diam]{0.75\res@diam}%
                                     {0.85\res@diam}\end{rotopo}}}}}
         \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\frame@color}{%
              \raisebox{-\height@}{\raisebox{-2.5\unit@length}{\hbox to \res@diam{%
              \hss\csname bsym\font@num\endcsname\char"05\hss}}}%
              \kern-0.9\res@diam \raisebox{0.4\res@diam}%
              {\raisebox{-\height@}{\raisebox{-2.5\unit@length}{\hbox to 0.9\res@diam{%
              \hss\csname sfdc\font@num\endcsname%
               \textcolor{\l@color}{\l@bel}\hss}}}}}}
      \else
      \xdef\first@{tree}
      \ifx\label@style\first@
      \else
         \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\l@color}%
                        {\raisebox{-\height@}{\hbox to \wd1{%
                         \label@size{\,\hss\l@bel\,}}}}}
      \fi\fi\fi\fi
   \fi
   \ifx\num@\ampers@nd
   \xdef\first@{&}
    \expandafter\ifx\csname print\p@s\endcsname\ampers@nd
      \xdef\first@{\v@rdirect @}
      \expandafter\check@letter\first@
      \ifletter
       \xdef\first@{NE}
       \expandafter\ifnum\csname cos\v@rdirect\endcsname>3800
       \expandafter\ifnum\csname sin\v@rdirect\endcsname>-1
       \xdef\first@{NW}
       \fi\fi
      \else
       \xdef\first@{NE}
       \ifnum\v@rdirect>0
       \ifnum\length@>0
       \xdef\first@{NW}
       \fi\fi
      \fi
    \fi
    \expandafter\ifx\csname print\p@s\endcsname\n@
    \else
     \ifx\first@\ampers@nd \xdef\first@{\csname print\p@s\endcsname} \fi     
     \get@num@direc
     \temp@count=\x@x@ \advance\temp@count by \first@ 
     \xdef\x@@@x{\the\temp@count}
     \temp@count=\y@y@ \advance\temp@count by \second@
     \xdef\y@@@y{\the\temp@count}
     \temp@count=\p@s\relax
     \advance\temp@count by \seq@start\relax
     \advance\temp@count by -1\relax
     \put(\x@@@x,\y@@@y){\textcolor{\c@untc@l}{\csname sfdc\font@num\endcsname%
                         \raisebox{\rule@thickness}{%
                         \hbox to 0pt{\third@}}}}
    \fi
   \fi
}

\def\get@num@direc{%
   \xdef\temp@{NNE}
   \ifx\first@\temp@
      \xdef\first@{1}\xdef\second@{1} \def\third@{\the\temp@count\hss}
   \else
   \xdef\temp@{NE}
   \ifx\first@\temp@
      \xdef\first@{2}\xdef\second@{0} \def\third@{\the\temp@count\hss}
   \else
   \xdef\temp@{ENE}
   \ifx\first@\temp@
      \xdef\first@{2}\xdef\second@{-1} \def\third@{\the\temp@count\hss}
   \else
   \xdef\temp@{E}
   \ifx\first@\temp@
      \xdef\first@{2}\xdef\second@{-1} \def\third@{\the\temp@count\hss}
   \else
   \xdef\temp@{ESE}
   \ifx\first@\temp@
      \xdef\first@{2}\xdef\second@{-2} \def\third@{\the\temp@count\hss}
   \else
   \xdef\temp@{SE}
   \ifx\first@\temp@
      \xdef\first@{2}\xdef\second@{-3} \def\third@{\the\temp@count\hss}
   \else
   \xdef\temp@{SSE}
   \ifx\first@\temp@
      \xdef\first@{1}\xdef\second@{-4} \def\third@{\the\temp@count\hss}
   \else
   \xdef\temp@{S}
   \ifx\first@\temp@
      \xdef\first@{-1}\xdef\second@{-6} \def\third@{\hss\,\the\temp@count\hss}
   \else
   \xdef\temp@{SSW}
   \ifx\first@\temp@
      \xdef\first@{-3}\xdef\second@{-4} \def\third@{\hss\the\temp@count\,}
   \else
   \xdef\temp@{SW}
   \ifx\first@\temp@
      \xdef\first@{-3}\xdef\second@{-3} \def\third@{\hss\the\temp@count\,}
   \else
   \xdef\temp@{WSW}
   \ifx\first@\temp@
      \xdef\first@{-4}\xdef\second@{-2} \def\third@{\hss\the\temp@count}
   \else
   \xdef\temp@{W}
   \ifx\first@\temp@
      \xdef\first@{-4}\xdef\second@{-1} \def\third@{\hss\the\temp@count}
   \else
   \xdef\temp@{WNW}
   \ifx\first@\temp@
      \xdef\first@{-4}\xdef\second@{-1} \def\third@{\hss\the\temp@count}
   \else
   \xdef\temp@{NW}
   \ifx\first@\temp@
      \xdef\first@{-3}\xdef\second@{0} \def\third@{\hss\the\temp@count\,}
   \else
   \xdef\temp@{NNW}
   \ifx\first@\temp@
      \xdef\first@{-3}\xdef\second@{1} \def\third@{\hss\the\temp@count\,}
   \else
   \xdef\temp@{N}
   \ifx\first@\temp@
      \xdef\first@{-1}\xdef\second@{3} \def\third@{\hss\,\the\temp@count\hss}
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
}
   
\def\put@special#1#2{%
   \ifx#1\ampers@nd
   \else
   \temp@count=#1 \advance\temp@count by 3 \xdef\x@x@{\the\temp@count}
   \temp@count=#2 \advance\temp@count by 3 \xdef\y@y@{\the\temp@count}
   \put@label
   \xdef\first@{circ}
   \ifx\first@\style@c@l
      \put(#1,#2){\textcolor{\b@ck}{%
           \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"0F\hss}}}
      \put(#1,#2){\textcolor{\fr@me}{%
           \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"0E\hss}}%
           \kern-\res@diam \raisebox{0.4\res@diam}%
           {\hbox to \res@diam{\hss\csname sfdc\font@num\endcsname%
            \textcolor{\f@nt}{\ch@r}\hss}}}
   \else
      \xdef\first@{diamond}
      \ifx\first@\style@c@l
         \put(#1,#2){\textcolor{\b@ck}{\kern3\unit@length%
              \begin{rotopo}{45}\rule[0.085\res@diam]{0.75\res@diam}%
                                     {0.85\res@diam}\end{rotopo}}}
         \put(#1,#2){\textcolor{\fr@me}{%
              \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"05\hss}}%
              \kern-0.9\res@diam \raisebox{0.4\res@diam}%
              {\hbox to 0.9\res@diam{\hss\csname sfdc\font@num\endcsname%
               \textcolor{\f@nt}{\ch@r}\hss}}}
      \else
         \xdef\first@{box}
         \ifx\first@\style@c@l
            \put(#1,#2){\textcolor{\b@ck}{\kern0.11\res@diam%
                        \rule[0.175\res@diam]{0.73\res@diam}{0.85\res@diam}}}
            \put(#1,#2){\textcolor{\fr@me}{\kern0.02\res@diam%
               \raisebox{0.175\res@diam}%
              {\hbox to \res@diam{\hss\csname square\font@num\endcsname%
              \char'164\hss}\kern-\res@diam\hbox to \res@diam{%
              \hss\csname square\font@num\endcsname\char'165\hss}}%
              \kern-\res@diam \raisebox{0.4\res@diam}%
              {\hbox to \res@diam{\hss\csname sfdc\font@num\endcsname%
               \textcolor{\f@nt}{\ch@r}\hss}}}}
         \fi
      \fi      
   \fi
   \expandafter\get@spec@pos\label@stack
   \expandafter\get@spec@lab\label@stack
   \put@special{\x@x}{\y@y}
   \fi
}

\def\get@col#1#2@{\xdef\col@num{#1}\xdef\constopo@{#2@}}

\def\put@res#1#2{%
   \x@p@s=#1 \y@p@s=#2
   \advance\pos@count by 1\relax
   \ifnum\pos@count=0 \pos@count=1 \fi
   \expandafter\ifx\csname res@x@off\the\pos@count\endcsname\relax 
   \else
      \advance\x@pos by \csname res@x@off\the\pos@count\endcsname
      \expandafter\xdef\csname res@x@off\the\pos@count\endcsname{0}
   \fi
   \expandafter\ifx\csname res@y@off\the\pos@count\endcsname\relax 
   \else
      \advance\y@pos by \csname res@y@off\the\pos@count\endcsname
      \expandafter\xdef\csname res@y@off\the\pos@count\endcsname{0}
   \fi
   \expandafter\get@aa\sequence@
   \ifx\ch@r\ampers@nd \xdef\sequence@{&@}
   \else
   \ifshade
      \ifnum\pos@count<\seq@start
         \xdef\col@num{0}
      \else
         \expandafter\get@col\constopo@
      \fi
      \ifx\col@num\ampers@nd \xdef\col@num{0}\xdef\constopo@{&@}\fi
      \ifnum\pos@count=\start@met@num\relax
         \ifno@start@met
            \xdef\col@num{M}
            \ifx\ch@r\col@num
               \xdef\col@num{0}
            \fi
         \fi
      \fi
      \xdef\s@style{\csname sstyle\col@num\endcsname}
      \xdef\s@col{\csname scol\col@num\endcsname}
      \xdef\f@col{\csname fcol\col@num\endcsname}
      \xdef\c@col{\csname ccol\col@num\endcsname}
      \xdef\symb@l@style{\s@style}
      \xdef\symb@lc@l{\s@col}
      \xdef\fr@mec@l{\f@col}
      \xdef\ch@rc@l{\c@col}
   \else
   \iffuncmode
      \xdef\col@num{\csname funcgrp\ch@r\endcsname}
      \ifnum\col@num<0 \xdef\col@num{0}\fi
      \xdef\s@style{circ}
      \xdef\s@col{\csname fg@color\col@num\endcsname}
      \xdef\f@col{Black}
      \xdef\c@col{\csname fg@textcolor\col@num\endcsname}
      \xdef\symb@l@style{\s@style}
      \xdef\symb@lc@l{\s@col}
      \xdef\fr@mec@l{\f@col}
      \xdef\ch@rc@l{\c@col}
   \fi\fi
   \ifx\start@\ampers@nd
      \put@normal{\x@p@s}{\y@p@s}
   \else
      \ifnum\start@>\pos@count
         \put@normal{\x@p@s}{\y@p@s}
      \else
         \ifnum\stop@<\pos@count
            \getregion@fromlstack
            \ifx\start@\ampers@nd
              \ifshade
                \xdef\symb@l@style{\s@style}
                \xdef\symb@lc@l{\s@col}
                \xdef\fr@mec@l{\f@col}
                \xdef\ch@rc@l{\c@col}
              \else
                \iffuncmode
                  \xdef\symb@l@style{\s@style}
                  \xdef\symb@lc@l{\s@col}
                  \xdef\fr@mec@l{\f@col}
                  \xdef\ch@rc@l{\c@col}
                \else
                   \xdef\symb@l@style{\symb@lstyle}
                   \xdef\symb@lc@l{\symb@lcol}
                   \xdef\fr@mec@l{\fr@mecol}
                   \xdef\ch@rc@l{\ch@rcol}
              \fi\fi
              \put@normal{\x@p@s}{\y@p@s}
            \else
              \ifnum\start@=\pos@count
                \xdef\symb@l@style{\style@c@l}
                \xdef\symb@lc@l{\b@ck}
                \xdef\fr@mec@l{\fr@me}
                \xdef\ch@rc@l{\f@nt}
                \temp@count=\stretch@
                \advance\temp@count by -1\relax
                \xdef\stretch@{\the\temp@count}
                \ifhelix@ \put@normal{\x@p@s}{\y@p@s}
                \else
                \ifnum\temp@count=-1\relax
                  \xdef\num@{0}
                  \ifnum\start@=\pos@count \xdef\num@{&} \fi
                  \ifnum\stop@=\pos@count \xdef\num@{&} \fi
                  \ifx\directi@n\ampers@nd \else \xdef\v@rdirect{\directi@n} \fi
                  \ifx\length@\ampers@nd   \else \xdef\v@rlength{\length@} \fi
                  \xdef\label@stack{\label@stack \the\x@p@s;\the\y@p@s;\style@c@l;\b@ck;%
                          \fr@me;\f@nt;\ch@r;\v@rdirect;\v@rlength;\l@bel;%
                          \num@;\label@pos;}
                \else 
                 \ifnum\start@=\pos@count
                  \xdef\label@stack{\label@stack \the\x@p@s;\the\y@p@s;\style@c@l;\b@ck;%
                          \fr@me;\f@nt;\ch@r;\v@rdirect;\v@rlength;&;%
                          &;\start@;}          
                 \else
                  \ifnum\stop@=\pos@count
                   \xdef\label@stack{\label@stack \the\x@p@s;\the\y@p@s;\style@c@l;\b@ck;%
                          \fr@me;\f@nt;\ch@r;\v@rdirect;\v@rlength;&;%
                          &;\stop@;}           
              \else
               \put@normal{\x@p@s}{\y@p@s}
              \fi
             \fi
            \fi
            \fi
              \else
                \ifshade
                  \xdef\symb@l@style{\s@style}
                  \xdef\symb@lc@l{\s@col}
                  \xdef\fr@mec@l{\f@col}
                  \xdef\ch@rc@l{\c@col}
                \else
                \iffuncmode
                  \xdef\symb@l@style{\s@style}
                  \xdef\symb@lc@l{\s@col}
                  \xdef\fr@mec@l{\f@col}
                  \xdef\ch@rc@l{\c@col}
                \else
                  \xdef\symb@l@style{\symb@lstyle}
                  \xdef\symb@lc@l{\symb@lcol}
                  \xdef\fr@mec@l{\fr@mecol}
                  \xdef\ch@rc@l{\ch@rcol}
                \fi\fi
                \put@normal{\x@p@s}{\y@p@s}
              \fi
            \fi
         \else
            \xdef\symb@l@style{\style@c@l}
            \xdef\symb@lc@l{\b@ck}
            \xdef\fr@mec@l{\fr@me}
            \xdef\ch@rc@l{\f@nt}
            \temp@count=\stretch@
            \advance\temp@count by -1\relax
            \xdef\stretch@{\the\temp@count}
            \ifhelix@ \put@normal{\x@p@s}{\y@p@s}
            \else
            \ifnum\temp@count=-1\relax
               \xdef\num@{0}
               \ifnum\start@=\pos@count \xdef\num@{&} \fi
               \ifnum\stop@=\pos@count \xdef\num@{&} \fi
               \ifx\directi@n\ampers@nd \else \xdef\v@rdirect{\directi@n} \fi
               \ifx\length@\ampers@nd   \else \xdef\v@rlength{\length@} \fi
               \xdef\label@stack{\label@stack \the\x@p@s;\the\y@p@s;\style@c@l;\b@ck;%
                          \fr@me;\f@nt;\ch@r;\v@rdirect;\v@rlength;\l@bel;%
                          \num@;\label@pos;}
            \else 
             \ifnum\start@=\pos@count
               \xdef\label@stack{\label@stack \the\x@p@s;\the\y@p@s;\style@c@l;\b@ck;%
                          \fr@me;\f@nt;\ch@r;\v@rdirect;\v@rlength;&;%
                          &;\start@;}          
             \else
              \ifnum\stop@=\pos@count
               \xdef\label@stack{\label@stack \the\x@p@s;\the\y@p@s;\style@c@l;\b@ck;%
                          \fr@me;\f@nt;\ch@r;\v@rdirect;\v@rlength;&;%
                          &;\stop@;}           
              \else
               \put@normal{\x@p@s}{\y@p@s}
              \fi
             \fi
            \fi
            \fi
         \fi
      \fi
   \fi
   \fi
}

\def\get@aa#1#2@{\xdef\ch@r{#1}\xdef\sequence@{#2@}}


\def\do@offset{%
   \advance\pos@count by 1\relax
   \ifnum\pos@count=0 \pos@count=1 \fi
   \expandafter\ifx\csname res@x@off\the\pos@count\endcsname\relax 
   \else
      \advance\x@pos by \csname res@x@off\the\pos@count\endcsname
   \fi
   \expandafter\ifx\csname res@y@off\the\pos@count\endcsname\relax 
   \else
      \advance\y@pos by \csname res@y@off\the\pos@count\endcsname
   \fi
}

\def\sort@m@d@stack{%
   \expandafter\get@next@m@d\m@d@stack
   \ifnum\temp@count=0
   \else 
      \advance\temp@count by 1
      \ifnum\temp@count=0 \temp@count=1 \fi
   \fi
   \ifnum\temp@count=0
      \xdef\temp@stack{\temp@stack,\m@d@stack@ori @}
   \else
      \ifnum\loopcount<\temp@count
         \xdef\temp@stack{\temp@stack,\m@d@stack@ori,%
	              \the\temp@count:\m@d@x@offset/\m@d@y@offset,\m@d@stack}
      \else
         \xdef\temp@stack{\temp@stack,\the\temp@count:\m@d@x@offset/\m@d@y@offset}
         \sort@m@d@stack
      \fi
   \fi
}

\def\get@next@m@d#1:#2/#3,#4@{%
   \temp@count=#1 
   \ifnum\temp@count=0
   \else
      \advance\temp@count by -1\relax
      \ifnum\temp@count=0 \temp@count=-1 \fi
   \fi
   \xdef\next@m@d@pos{\the\temp@count}
   \xdef\m@d@x@offset{#2}
   \xdef\m@d@y@offset{#3}
   \xdef\m@d@stack{#4@}
}

\def\get@offset@m@d{%
   \x@offset=0\relax
   \advance\x@pos by \m@d@x@offset\relax
   \y@offset=0\relax
   \advance\y@pos by \m@d@y@offset\relax
   \ifnum\next@m@d@pos=0 \else \expandafter\get@next@m@d\m@d@stack \fi
}

\def\set@part#1{%
   \def\which@part##1-##2@{\xdef\part@name{##1}\xdef\part@num{##2}}
   \def\left@foot{%
      \ifx\current@pos\intr@
         \xdef\v@rdirect{NW}
      \else
         \xdef\v@rdirect{SW}
      \fi
      \xdef\v@rlength{6}
      \loop
	 \ifnum\pos@count=\next@m@d@pos 
	    \get@offset@m@d
            \ifanalyze \do@offset
            \else
               \put@res{\x@pos}{\y@pos}
            \fi
	    \ifnum\pos@count=\next@m@d@pos 
	    \else
	       \xdef\subtract@offset{y}
	       \get@offset@m@d
	    \fi
         \else
            \ifanalyze \do@offset
            \else
               \put@res{\x@pos}{\y@pos}
            \fi
            \advance\x@pos by -5
	    \ifx\current@pos\intr@
               \advance\y@pos by -1
	       \ifnum\loopcount=\part@num
                  \advance\y@pos by -1
	       \fi
	    \else
               \advance\y@pos by 1
               \ifnum\loopcount=\part@num
                  \advance\y@pos by 1
	       \fi
            \fi
	 \fi
      \advance\loopcount by 1
      \ifnum\loopcount>\part@num \else\repeat
      \ifnum\x@pos<\x@min \x@min=\x@pos \fi
      \ifnum\x@pos>\x@max \x@max=\x@pos \fi
      \ifnum\y@pos<\y@min \y@min=\y@pos \fi
      \ifnum\y@pos>\y@max \y@max=\y@pos \fi
   }
   \def\right@foot{%
      \ifx\current@pos\intr@
         \xdef\v@rdirect{NE}
      \else
         \xdef\v@rdirect{SE}
      \fi
      \xdef\v@rlength{6}
      \loop
	 \ifnum\pos@count=\next@m@d@pos 
	    \get@offset@m@d
            \ifanalyze \do@offset
            \else
               \put@res{\x@pos}{\y@pos}
            \fi
	    \ifnum\pos@count=\next@m@d@pos 
	    \else
	       \xdef\subtract@offset{y}
               \get@offset@m@d
	    \fi
         \else
            \ifanalyze \do@offset
            \else
               \put@res{\x@pos}{\y@pos}
            \fi
            \advance\x@pos by -5
	    \ifx\current@pos\intr@
               \advance\y@pos by 1
	       \ifnum\loopcount=1
                  \advance\y@pos by 1
	       \fi
	    \else
               \advance\y@pos by -1
               \ifnum\loopcount=1
                  \advance\y@pos by -1
	       \fi
            \fi
	 \fi
      \advance\loopcount by 1
      \ifnum\loopcount>\part@num \else\repeat
      \ifnum\x@pos<\x@min \x@min=\x@pos \fi
      \ifnum\x@pos>\x@max \x@max=\x@pos \fi
      \ifnum\y@pos<\y@min \y@min=\y@pos \fi
      \ifnum\y@pos>\y@max \y@max=\y@pos \fi
   }
   \def\d@wn{%
      \ifx\current@pos\intr@
         \xdef\v@rdirect{W}
      \else
         \xdef\v@rdirect{E}
      \fi
      \xdef\v@rlength{6}
      \loop
	 \ifnum\pos@count=\next@m@d@pos 
	    \get@offset@m@d
            \ifanalyze \do@offset
            \else
               \put@res{\x@pos}{\y@pos}
            \fi
	    \ifnum\pos@count=\next@m@d@pos
	    \else
	       \xdef\subtract@offset{y}
	       \get@offset@m@d
	    \fi
         \else
            \ifanalyze \do@offset
            \else
               \put@res{\x@pos}{\y@pos}
            \fi
            \advance\y@pos by -5
	 \fi
         \advance\loopcount by 1
      \ifnum\loopcount>\part@num \else\repeat
      \ifx\loop@inverse\y@
            \advance\x@pos by -1
      \else
         \advance\x@pos by 1
      \fi
      \ifanalyze
        \ifx\loop@inverse\y@
         \ifx\C@now\y@ 
         \else
            \advance\mem@max by -6
            \ifnum\x@pos<\x@min \x@min=\x@pos \fi
         \fi
        \else
         \advance\mem@max by 1
         \ifnum\x@pos>\x@max \x@max=\x@pos \fi
        \fi
        \ifnum\y@pos<\y@min \y@min=\y@pos \fi
      \fi
   }
   \def\up@{%
      \ifx\current@pos\intr@
         \xdef\v@rdirect{E}
      \else
         \xdef\v@rdirect{W}
      \fi
      \xdef\v@rlength{6}
      \loop
	 \ifnum\pos@count=\next@m@d@pos 
	    \get@offset@m@d
            \ifanalyze \do@offset
            \else
               \put@res{\x@pos}{\y@pos}
            \fi
	    \ifnum\pos@count=\next@m@d@pos 
	    \else
	       \xdef\subtract@offset{y}
	       \get@offset@m@d
	    \fi
         \else
            \ifanalyze \do@offset
            \else
               \put@res{\x@pos}{\y@pos}
            \fi
            \advance\y@pos by 5
	 \fi
         \advance\loopcount by 1
      \ifnum\loopcount>\part@num \else\repeat
      \ifx\loop@inverse\y@
            \advance\x@pos by -1
      \else
         \advance\x@pos by 1
      \fi
      \ifanalyze
        \ifx\loop@inverse\y@
         \ifx\C@now\y@ 
         \else
            \advance\mem@max by -6
            \ifnum\x@pos<\x@min \x@min=\x@pos \fi
         \fi
        \else
         \advance\mem@max by 1
         \ifnum\x@pos>\x@max \x@max=\x@pos \fi
        \fi
        \ifnum\y@pos>\y@max \y@max=\y@pos \fi
      \fi
   }
   \def\right@{%
      \ifx\current@pos\intr@ \xdef\v@rdirect{S} \else \xdef\v@rdirect{N} \fi
      \xdef\v@rlength{6}
      \loop
	 \ifnum\pos@count=\next@m@d@pos 
	    \get@offset@m@d
            \ifanalyze \do@offset
            \else
               \put@res{\x@pos}{\y@pos}
            \fi
	    \ifnum\pos@count=\next@m@d@pos 
	    \else 
	       \xdef\subtract@offset{y}
	       \get@offset@m@d 
	    \fi
         \else
            \ifanalyze \do@offset
            \else
               \put@res{\x@pos}{\y@pos}
            \fi
            \advance\x@pos by 5
	 \fi
         \advance\loopcount by 1
      \ifnum\loopcount>\part@num \else\repeat
      \ifanalyze 
	 \ifnum\x@pos>\x@max \x@max=\x@pos \fi
	 \ifnum\y@pos>\y@max \y@max=\y@pos \fi
	 \ifnum\x@pos<\x@min \x@min=\x@pos \fi
	 \ifnum\y@pos<\y@max \y@min=\y@pos \fi
         \mem@max=\x@max
      \fi
   }
   \def\lip@down##1##2{%
      \temp@count=\x@pos \advance\temp@count by 4 
      \xdef\first@@{\the\temp@count}
      \temp@count=\y@pos
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74}
      \advance\temp@count by -2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'76}
      \advance\temp@count by -2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74}
      \advance\temp@count by -2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'76}
      \advance\temp@count by -2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74}
      \advance\temp@count by -2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'76}
      \advance\temp@count by -2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74}
   }
   \def\lip@up##1##2{%
      \temp@count=\x@pos \advance\temp@count by 4 
      \xdef\first@@{\the\temp@count}
      \temp@count=\y@pos
      \advance\temp@count by 2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74}
      \advance\temp@count by 2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'76}
      \advance\temp@count by 2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74}
      \advance\temp@count by 2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'76}
      \advance\temp@count by 2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74}
      \advance\temp@count by 2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'76}
      \advance\temp@count by 2 
      \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74}
   }
   \def\set@pos##1/##2[##3;##4],##5@{%
      \xdef\v@rdirect{##3} \xdef\v@rlength{##4}
      \xdef\first@{##1}\xdef\second@{##2}\xdef\third@{##5@}
      \ifx\third@\@t
         \ifnum\pos@count=\next@m@d@pos
	    \ifx\first@rem@del\y@
               \ifx\loop@inverse\y@
                  \advance\x@pos by -\first@\relax
               \else
                  \advance\x@pos by \first@
               \fi
               \advance\y@pos by \second@
	    \fi
	 \else
            \ifx\loop@inverse\y@
               \advance\x@pos by -\first@\relax
            \else
               \advance\x@pos by \first@
            \fi
            \advance\y@pos by \second@
	 \fi
         \ifanalyze
            \ifnum\y@pos<\y@min \y@min=\y@pos \fi
            \ifnum\y@pos>\y@max \y@max=\y@pos \fi
            \ifx\C@now\y@ 
               \ifx\loop@inverse\y@
               \else
                  \mem@max=\x@pos
                  \ifnum\x@pos<\x@min \x@min=\x@pos \fi
                  \ifnum\x@pos>\x@max \x@max=\x@pos \fi
               \fi
            \else
               \mem@max=\x@pos
               \ifnum\x@pos<\x@min \x@min=\x@pos \fi
               \ifnum\x@pos>\x@max \x@max=\x@pos \fi
            \fi
         \fi
      \else
         \ifx\loop@inverse\y@
            \x@offset=\first@\relax
            \multiply\x@offset by -1
         \else
            \x@offset=\first@
         \fi
	 \xdef\part@list{\third@}
         \y@offset=\second@
	 \ifx\subtract@offset\y@
	    \xdef\subtract@offset{n}
	    \multiply\x@offset by -1
	    \advance\x@pos by \x@offset
	    \multiply\x@offset by -1
	    \multiply\y@offset by -1
	    \advance\y@pos by \y@offset
	    \multiply\y@offset by -1
	 \fi
	 \ifnum\pos@count=\next@m@d@pos
	    \ifx\first@rem@del\y@ 
               \advance\x@pos by \x@offset
               \advance\y@pos by \y@offset
	       \xdef\first@rem@del{n}
	    \fi
	    \get@offset@m@d
	 \fi
         \advance\x@offset by \x@pos
         \advance\y@offset by \y@pos
         \ifanalyze
	    \do@offset
	    \ifx\first@rem@del\y@
	    \else
	       \ifnum\pos@count=\next@m@d@pos
	       \else
	          \xdef\first@rem@del{y}
		  \xdef\subtract@offset{y}
	          \get@offset@m@d
	       \fi
	    \fi
            \ifnum\y@offset<\y@min \y@min=\y@offset \fi
            \ifnum\y@offset>\y@max \y@max=\y@offset \fi
            \ifx\C@now\y@ 
               \ifx\loop@inverse\y@
               \else
                  \mem@max=\x@offset
                  \ifnum\x@offset<\x@min \x@min=\x@offset \fi
                  \ifnum\x@offset>\x@max \x@max=\x@offset \fi
               \fi
            \else
               \mem@max=\x@offset
               \ifnum\x@offset<\x@min \x@min=\x@offset \fi
               \ifnum\x@offset>\x@max \x@max=\x@offset \fi
            \fi
         \else
            \ifx\lip@\ampers@nd
            \else
               \ifx\lip@\down@@ \lip@down{\first@}{\second@}
               \fi
               \ifx\lip@\up@@ \lip@up{\first@}{\second@}
               \fi
            \fi
            \put@res{\x@offset}{\y@offset}
	    \ifx\first@rem@del\y@
	    \else
	       \ifnum\pos@count=\next@m@d@pos
	       \else
	          \xdef\first@rem@del{y}
		  \xdef\subtract@offset{y}
	          \get@offset@m@d
	       \fi
	    \fi
         \fi
         \expandafter\set@pos\part@list
      \fi
   }
   \xdef\part@name{#1@}
   \expandafter\which@part\part@name
   \xdef\first@{down}
   \loopcount=1
   \ifx\part@name\first@ \d@wn
   \else
      \xdef\first@{up}
      \ifx\part@name\first@ \up@
      \else
         \xdef\first@{right}
         \ifx\part@name\first@ \right@
         \else
	  \xdef\first@{leftfoot}
	  \ifx\part@name\first@ \left@foot
	  \else
	  \xdef\first@{rightfoot}
	  \ifx\part@name\first@ \right@foot
	  \else
            \xdef\lip@{&}
            \ifnum\part@num=1
               \expandafter\ifx\csname lip@\the\pos@count\endcsname\y@
                  \ifx\current@pos\intr@ \xdef\lip@{up}
                  \else \xdef\lip@{down}
                  \fi
               \fi
            \fi
            \xdef\part@list{\csname #1\endcsname}
            \expandafter\set@pos\part@list
	  \fi
	  \fi
         \fi
      \fi
   \fi
}

\def\MR@#1{%
   \ifx\current@pos\intr@
      \xdef\tr@ns{io} 
      \xdef\current@pos{extra}
   \else 
      \xdef\tr@ns{oi}
      \xdef\current@pos{intra}
   \fi
   \expandafter\set@part{M\tr@ns-#1}
   \xdef\prev@TM{y}
   \ifnum\mem@low=-99999 \xdef\mem@low{\the\y@min} \fi
   \ifnum\mem@high=-99999 \xdef\mem@high{\the\y@max} \fi
   \ifanalyze\else
      \advance\TM@@count by 1
      \message{- TM\the\TM@@count}
      \advance\TM@@count by -1
   \fi
}

\def\do@firstloops{%
   \ifnum\iloopcount=\middle@loop
   \else
      \advance\iloopcount by 1
      \ifx\current@pos\intr@
         \advance\x@pos by 1
         \advance\y@pos by 3
         \set@part{iNterm-2}
      \else
         \advance\x@pos by 1
         \advance\y@pos by -3
         \set@part{oNterm-2}
      \fi
      \advance\x@pos by 1
      \expandafter\h@lf{\length@loops}
      \advance\x@pos by 1
      \ifx\current@pos\intr@
         \set@part{iCterm-2}
      \else
         \set@part{oCterm-2}
      \fi
      \do@firstloops
   \fi
}

\def\do@secloops{%
   \ifnum\iloopcount>\num@loops
   \else
      \advance\iloopcount by 1
      \ifx\current@pos\intr@
         \advance\x@pos by 1
         \advance\y@pos by 3
         \set@part{iNterm-2}
      \else
         \advance\x@pos by 1
         \advance\y@pos by -3
         \set@part{oNterm-2}
      \fi
      \advance\x@pos by 1
      \expandafter\h@lf{\length@loops}
      \advance\x@pos by 1
      \ifx\current@pos\intr@
         \set@part{iCterm-2}
      \else
         \set@part{oCterm-2}
      \fi
      \do@secloops
   \fi
}

\def\calc@mult@loop{%
   \temp@count=\first@
   \advance\temp@count by -\outer@loop
   \xdef\inner@loops{\the\temp@count}
   \loopcount=\temp@count
   \advance\loopcount by -1
   \divide\loopcount by \inner@loop\relax
   \divide\temp@count by \inner@loop\relax
   \ifnum\loopcount=\temp@count \advance\temp@count by 1 \fi
   \ifnum\old@loops>0 \temp@count=\old@loops\relax \fi
   \xdef\num@loops{\the\temp@count}    %%% number of inner loops
   \temp@count=\inner@loops
   \divide\temp@count by \num@loops
   \xdef\length@loops{\the\temp@count} %%% length of inner loops with extraloop
   \temp@count=\num@loops
   \loopcount=\temp@count
   \advance\loopcount by -1\relax
   \divide\loopcount by 2\relax
   \divide\temp@count by 2\relax
   \ifnum\loopcount=\temp@count \advance\temp@count by 1 \fi
   \xdef\middle@loop{\the\temp@count}  %%% middle loop number
   \temp@count=\num@loops
   \advance\temp@count by -1
   \multiply\temp@count by -\length@loops\relax
   \loopcount=\first@
   \advance\loopcount by -\outer@loop
   \advance\loopcount by \temp@count
   \advance\loopcount by -4
   \xdef\middle@length{\the\loopcount} %%% length of middle loop
   \temp@count=\length@loops
   \advance\temp@count by -4
   \xdef\length@loops{\the\temp@count} %%% length of inner loops
}   
   
\def\mult@loop#1{%
   \xdef\first@{#1}
   \calc@mult@loop
   \ifx\current@pos\intr@
      \expandafter\set@part{down-\outer@straight}
      \set@part{iCterm-2}
   \else
      \expandafter\set@part{up-\outer@straight}
      \set@part{oCterm-2}
   \fi
   \iloopcount=1
   \ifnum\middle@loop>1 \do@firstloops \fi
   \ifnum\middle@length>0
      \ifx\current@pos\intr@
         \advance\x@pos by 1
         \advance\y@pos by 3
         \set@part{iNterm-2}
      \else
         \advance\x@pos by 1
         \advance\y@pos by -3
         \set@part{oNterm-2}
      \fi
      \advance\x@pos by 1
      \expandafter\h@lf{\middle@length}
      \advance\x@pos by 1
      \ifx\current@pos\intr@
         \set@part{iCterm-2}
      \else
         \set@part{oCterm-2}
      \fi
   \else
      \loopcount=\middle@length
      \advance\loopcount by 4
      \xdef\updown@num{\the\loopcount}
      \expandafter\set@part{right-\updown@num}
      \advance\x@pos by -2
   \fi
   \advance\iloopcount by 1
   \do@secloops
   \ifx\current@pos\intr@
      \advance\x@pos by 1
      \advance\y@pos by 3
      \set@part{iNterm-2}
      \expandafter\set@part{up-\outer@straight}
   \else
      \advance\x@pos by 1
      \advance\y@pos by -3
      \set@part{oNterm-2}
      \expandafter\set@part{down-\outer@straight}
   \fi
}

\def\do@Ntermloops{%
   \ifx\current@pos\intr@
      \set@part{oloop-4}
      \expandafter\set@part{down-\inner@straight}
      \xdef\current@pos{extra}
   \else
      \set@part{iloop-4}
      \expandafter\set@part{up-\inner@straight}
      \xdef\current@pos{intra}
   \fi
   \advance\iloopcount by 1
   \ifnum\iloopcount>\num@loops\else\do@Ntermloops\fi
}

\def\mult@Nterm#1{%
   \xdef\hold@pos{\current@pos}
   \temp@count=#1
   \advance\temp@count by -\outer@length
   \advance\temp@count by -2
   \xdef\inner@loops{\the\temp@count}
   \loopcount=\inner@straight
   \advance\loopcount by 4 
   \divide\temp@count by \loopcount\relax
   \xdef\num@loops{\the\temp@count}    %%% number of inner loops
   \multiply\loopcount by -\num@loops
   \temp@count=\inner@loops
   \advance\temp@count by \loopcount
   \xdef\last@loop{\the\temp@count}
   \ifodd\num@loops
   \else
      \ifx\current@pos\intr@
         \xdef\current@pos{extra}
      \else
         \xdef\current@pos{intra}
      \fi
   \fi
   \ifnum\last@loop<4
      \ifx\current@pos\intr@
         \ifnum\last@loop<1
         \else
            \expandafter\set@part{iNterm-\last@loop}
         \fi
      \else
         \ifnum\last@loop<1
         \else
            \expandafter\set@part{oNterm-\last@loop}
         \fi
      \fi
   \else
      \loopcount=\last@loop
      \advance\loopcount by -3
      \xdef\updown@num{\the\loopcount}
      \ifx\current@pos\intr@
         \set@part{iNterm-3}
         \expandafter\set@part{up-\updown@num}
      \else
         \set@part{oNterm-3}
         \expandafter\set@part{down-\updown@num}
      \fi
   \fi
   \ifnum\num@loops>0 \iloopcount=1 \do@Ntermloops \fi
   \ifx\current@pos\intr@
      \ifnum\last@loop<0 
      \set@part{oloop-3}
      \else
      \set@part{oloop-4}
      \fi
      \expandafter\set@part{down-\outer@straight}
      \xdef\current@pos{extra}
   \else
      \ifnum\last@loop<0 
      \set@part{iloop-3}
      \else
      \set@part{iloop-4}
      \fi
      \expandafter\set@part{up-\outer@straight}
      \xdef\current@pos{intra}
   \fi
   \xdef\current@pos{\hold@pos}
   \ifx\current@pos\intr@
      \xdef\mem@low{\the\y@max}
      \xdef\mem@high{-99999}
   \else
      \xdef\mem@high{\the\y@min}
      \xdef\mem@low{-99999}
   \fi
}

\def\do@Ctermloops{%
   \ifx\current@pos\intr@
      \expandafter\set@part{down-\inner@straight}
      \set@part{iloop-4}
      \xdef\current@pos{extra}
   \else
      \expandafter\set@part{up-\inner@straight}
      \set@part{oloop-4}
      \xdef\current@pos{intra}
   \fi
   \advance\iloopcount by 1
   \ifnum\iloopcount>\num@loops\else\do@Ctermloops\fi
}

\def\mult@Cterm#1{%
   \xdef\hold@pos{\current@pos}
   \temp@count=#1
   \advance\temp@count by -\outer@length
   \advance\temp@count by -2
   \xdef\inner@loops{\the\temp@count}
   \loopcount=\inner@straight
   \advance\loopcount by 4 
   \divide\temp@count by \loopcount\relax
   \xdef\num@loops{\the\temp@count}    %%% number of inner loops
   \multiply\loopcount by -\num@loops
   \temp@count=\inner@loops
   \advance\temp@count by \loopcount
   \xdef\last@loop{\the\temp@count}
   \ifx\current@pos\intr@
      \expandafter\set@part{down-\outer@straight}
      \set@part{iloop-4}
      \xdef\current@pos{extra}
   \else
      \expandafter\set@part{up-\outer@straight}
      \set@part{oloop-4}
      \xdef\current@pos{intra}
   \fi
   \ifnum\num@loops>0 \iloopcount=1 \do@Ctermloops \fi
   \ifnum\last@loop<4
      \ifx\current@pos\intr@
         \ifnum\last@loop<1
         \else
            \expandafter\set@part{iCterm-\last@loop}
         \fi
      \else
         \ifnum\last@loop<1
         \else
            \expandafter\set@part{oCterm-\last@loop}
         \fi
      \fi
   \else
      \loopcount=\last@loop
      \advance\loopcount by -3
      \xdef\updown@num{\the\loopcount}
      \ifx\current@pos\intr@
         \expandafter\set@part{down-\updown@num}
         \set@part{iCterm-3}
      \else
         \expandafter\set@part{up-\updown@num}
         \set@part{oCterm-3}
      \fi
   \fi
   \xdef\Cterm@up{\current@pos}
   \xdef\current@pos{\hold@pos}
}

\def\do@footed@loop#1{%
   \xdef\first@{left}
   \ifx\foot@direct\first@
      \loopcount=\neck@length\relax
      \divide\loopcount by -2\relax
      \xdef\first@{\the\loopcount}
      \ifx\current@pos\intr@
         \expandafter\set@part{down-\first@}
	 \advance\y@pos by 1\relax
      \else
         \expandafter\set@part{up-\first@}
	 \advance\y@pos by -1\relax
      \fi
      \advance\x@pos by -4\relax
      \loopcount=-3\relax
      \innerloopcount=\num@loops\relax
      \multiply\innerloopcount by 5\relax
      \advance\loopcount by \innerloopcount\relax
      \xdef\first@{\the\loopcount}
      \expandafter\set@part{leftfoot-\first@}
      \advance\x@pos by 2\relax
      \ifx\current@pos\intr@
         \advance\y@pos by -3\relax
      \else
         \advance\y@pos by 3\relax
      \fi
      \expandafter\mult@loop{\updown@num}
      \loopcount=\neck@length\relax
      \divide\loopcount by -2\relax
      \advance\loopcount by \num@loops\relax
      \xdef\first@{\the\loopcount}
      \advance\x@pos by -1\relax
      \ifx\current@pos\intr@
         \expandafter\set@part{up-\first@}
      \else
         \expandafter\set@part{down-\first@}
      \fi
   \else
   \xdef\first@{right}
   \ifx\foot@direct\first@
      \loopcount=\neck@length\relax
      \divide\loopcount by -2\relax
      \advance\loopcount by \old@loops\relax
      \xdef\first@{\the\loopcount}
      \ifx\current@pos\intr@
         \expandafter\set@part{down-\first@}
      \else
         \expandafter\set@part{up-\first@}
      \fi
      \advance\x@pos by -1\relax
      \expandafter\mult@loop{\updown@num}
      \advance\x@pos by -3\relax
      \ifx\current@pos\intr@
         \advance\y@pos by -1\relax
      \else
         \advance\y@pos by 1\relax
      \fi         
      \loopcount=-3\relax
      \innerloopcount=\num@loops\relax
      \multiply\innerloopcount by 5\relax
      \advance\loopcount by \innerloopcount\relax
      \xdef\first@{\the\loopcount}
      \expandafter\set@part{rightfoot-\first@}
      \advance\x@pos by 2\relax
      \ifx\current@pos\intr@
         \advance\y@pos by 3\relax
      \else
         \advance\y@pos by -3\relax
      \fi         
      \loopcount=\neck@length\relax
      \divide\loopcount by -2\relax
      \xdef\first@{\the\loopcount}
      \ifx\current@pos\intr@
         \expandafter\set@part{up-\first@}
      \else
         \expandafter\set@part{down-\first@}
      \fi
   \else
      \loopcount=\neck@length\relax
      \divide\loopcount by -2\relax
      \xdef\first@{\the\loopcount}
      \ifx\current@pos\intr@
         \expandafter\set@part{down-\first@}
      \else
         \expandafter\set@part{up-\first@}
      \fi
      \advance\x@pos by -3\relax
      \xdef\first@{0}
      \innerloopcount=#1\relax
      \advance\innerloopcount by \neck@length\relax
      \ifodd\innerloopcount \xdef\first@{1} \fi
      \divide\innerloopcount by 2
      \xdef\f@@ting{\the\innerloopcount}
      \advance\innerloopcount by \first@\relax
      \xdef\first@{\the\innerloopcount}
      \expandafter\set@part{leftfoot-\first@}
      \advance\x@pos by 1\relax
      \ifodd\f@@ting
         \ifx\current@pos\intr@
            \advance\y@pos by -2\relax
         \else
            \advance\y@pos by 2\relax
         \fi
      \else
         \ifx\current@pos\intr@
            \advance\y@pos by -3\relax
         \else
            \advance\y@pos by 3\relax
         \fi
      \fi
      \expandafter\mult@loop{\updown@num}
      \advance\x@pos by -3\relax      
      \expandafter\set@part{rightfoot-\f@@ting}
      \advance\x@pos by 2\relax
      \ifx\current@pos\intr@
         \advance\y@pos by 3\relax
      \else
         \advance\y@pos by -3\relax
      \fi         
      \loopcount=\neck@length\relax
      \divide\loopcount by -2\relax
      \xdef\first@{\the\loopcount}
      \ifx\current@pos\intr@
         \expandafter\set@part{up-\first@}
      \else
         \expandafter\set@part{down-\first@}
      \fi
   \fi\fi
}

\def\l@@p#1{%
   \xdef\old@loops{0}
   \loopcount=#1 \xdef\res@loop{\the\loopcount}
   \ifnum\loopcount<8
      \ifnum\loopcount<3
         \loopcount=\pos@count
         \advance\loopcount by -1
         \expandafter\ifx\csname lip@\the\loopcount\endcsname\y@
            \advance\x@pos by -1
         \fi
      \fi
      \ifx\current@pos\intr@
        \ifx\prev@TM\n@
          \expandafter\set@part{iloop-#1}
	\else
	  \ifnum#1>5 \advance\x@pos by 1 \fi
          \expandafter\set@part{iTMloop-#1}
	\fi
      \else
        \ifx\next@TM\n@
          \expandafter\set@part{oloop-#1}
	\else
	  \ifnum#1>5 \advance\x@pos by 1 \fi
          \expandafter\set@part{oTMloop-#1}
	\fi
      \fi
   \else
    \ifnum\loopcount>\outer@loop
      \xdef\updown@num{\the\loopcount}
      \ifx\foot@\y@
         \ifanalyze
	 \else
            \expandafter\xdef\csname foot@\the\TM@@count\endcsname{}
	 \fi
	 \ifx\foot@direct\center@
	    \advance\loopcount by -2\relax
	 \else
	    \advance\loopcount by -3\relax
	 \fi
	 \advance\loopcount by \neck@length\relax
	 \xdef\first@{\the\loopcount}
	 \ifnum\first@>\outer@loop
	    \loopcount=\outer@loop\relax
	    \advance\loopcount by -4\relax
	    \xdef\inner@loop{\the\loopcount}
	    \loopcount=\outer@length\relax
	    \advance\loopcount by -2\relax
	    \xdef\inner@length{\the\loopcount}
	    \loopcount=\outer@straight\relax
	    \advance\loopcount by -2\relax
	    \xdef\inner@straight{\the\loopcount}
	    \calc@mult@loop
	    \loopcount=\first@\relax
	    \innerloopcount=\num@loops\relax
	    \advance\innerloopcount by -1\relax
	    \ifx\foot@direct\center@
	       \multiply\innerloopcount by -5\relax
	    \else
	       \multiply\innerloopcount by -6\relax
	    \fi
	    \advance\loopcount by \innerloopcount\relax
	    \xdef\first@{\the\loopcount}
	    \calc@mult@loop
	    \xdef\old@loops{\num@loops}
	    \loopcount=\first@\relax
	    \ifx\foot@direct\center@
	       \advance\loopcount by 5\relax
	    \else
	       \advance\loopcount by 6\relax
	    \fi
	    \xdef\first@{\the\loopcount}
	    \innerloopcount=\num@loops\relax
	    \advance\innerloopcount by -1\relax
	    \ifx\foot@direct\center@
	       \multiply\innerloopcount by -5\relax
	    \else
	       \multiply\innerloopcount by -6\relax
	    \fi
	    \calc@mult@loop	    
	    \ifx\foot@direct\center@
	       \advance\innerloopcount by -2\relax
	    \else
	       \advance\innerloopcount by -3\relax
	    \fi
	    \advance\innerloopcount by \neck@length\relax
	    \multiply\innerloopcount by -1
	    \ifnum\old@loops<\num@loops
	       \loopcount=\inner@loop\relax
	       \advance\loopcount by 4\relax
	       \xdef\inner@loop{\the\loopcount}
	       \loopcount=\inner@length\relax
	       \advance\loopcount by 2\relax
	       \xdef\inner@length{\the\loopcount}
	       \loopcount=\inner@straight\relax
	       \advance\loopcount by 2\relax
	       \xdef\inner@straight{\the\loopcount}
	    \fi
	    \loopcount=\updown@num\relax
	    \advance\loopcount by -\innerloopcount\relax
	    \xdef\updown@num{\the\loopcount}
	    \expandafter\do@footed@loop{\the\innerloopcount}
	    \xdef\old@loops{0}
         \else
            \loopcount=\updown@num
            \expandafter\mult@loop{\updown@num}
	 \fi
      \else
         \loopcount=\updown@num
         \expandafter\mult@loop{\updown@num}
      \fi
    \else
      \ifodd\loopcount
         \advance\loopcount by -7\relax
         \divide\loopcount by 2\relax
         \xdef\updown@num{\the\loopcount}
         \ifx\current@pos\intr@
            \expandafter\set@part{down-\updown@num}
            \ifx\prev@TM\n@
              \expandafter\set@part{iloop-7}
	    \else
              \expandafter\set@part{iTMloop-7}
	    \fi
            \expandafter\set@part{up-\updown@num}
         \else
            \expandafter\set@part{up-\updown@num}
            \ifx\next@TM\n@
              \expandafter\set@part{oloop-7}
   	    \else
              \expandafter\set@part{oTMloop-7}
	    \fi
            \expandafter\set@part{down-\updown@num}
         \fi
      \else
         \advance\loopcount by -6\relax
         \divide\loopcount by 2\relax
         \xdef\updown@num{\the\loopcount}
         \ifx\current@pos\intr@
            \expandafter\set@part{down-\updown@num}
            \ifx\prev@TM\n@
              \expandafter\set@part{iloop-6}
	    \else
              \expandafter\set@part{iTMloop-6}
	    \fi
            \expandafter\set@part{up-\updown@num}         
         \else
            \expandafter\set@part{up-\updown@num}
            \ifx\next@TM\n@
              \expandafter\set@part{oloop-6}
   	    \else
              \expandafter\set@part{oTMloop-6}
	    \fi
            \expandafter\set@part{down-\updown@num}         
         \fi
      \fi
    \fi
   \fi
}

\def\h@lf#1{%
   \loopcount=#1
   \ifnum\loopcount<7
      \ifx\current@pos\intr@
         \expandafter\set@part{ihalf-#1}
      \else
         \expandafter\set@part{ohalf-#1}
      \fi
   \else
      \temp@count=#1 \divide\temp@count by 2
      \advance\loopcount by 1 \divide\loopcount by 2
      \advance\x@pos by -1
      \ifnum\loopcount=\temp@count
         \loopcount=#1
         \advance\loopcount by -6
         \divide\loopcount by 2
         \xdef\updown@num{\the\loopcount}
         \ifx\current@pos\intr@
            \expandafter\set@part{up-\updown@num}
            \set@part{ihalf-6} 
            \expandafter\set@part{down-\updown@num}
         \else
            \expandafter\set@part{down-\updown@num}
            \set@part{ohalf-6} 
            \expandafter\set@part{up-\updown@num}
         \fi
      \else
         \loopcount=#1
         \advance\loopcount by -5
         \divide\loopcount by 2\relax
         \xdef\updown@num{\the\loopcount}
         \ifx\current@pos\intr@
            \expandafter\set@part{up-\updown@num}
            \set@part{ihalf-5} 
            \expandafter\set@part{down-\updown@num}
         \else
            \expandafter\set@part{down-\updown@num}
            \set@part{ohalf-5} 
            \expandafter\set@part{up-\updown@num}
         \fi
      \fi
      \advance\x@pos by -1
   \fi
}

\def\N@term#1{%
   \loopcount=#1
   \xdef\mem@low{0} \xdef\mem@high{0}   
   \ifnum\loopcount<4
      \ifx\current@pos\intr@
         \ifnum\loopcount<1
            \xdef\mem@low{0}
            \xdef\mem@high{-99999}
         \else
            \expandafter\set@part{iNterm-#1}
            \xdef\mem@low{\the\y@max}
            \xdef\mem@high{-99999}
         \fi
      \else
         \ifnum\loopcount<1
            \xdef\mem@high{0}
            \xdef\mem@low{-99999}
         \else
            \expandafter\set@part{oNterm-#1}
            \temp@count=\y@min \advance\temp@count by -5
            \xdef\mem@high{\the\temp@count}
            \xdef\mem@low{-99999}
         \fi
      \fi
   \else
      \advance\loopcount by -3
      \xdef\updown@num{\the\loopcount}
      \ifx\current@pos\intr@
         \set@part{iNterm-3}
         \expandafter\set@part{up-\updown@num}
         \xdef\mem@low{\the\y@max}
         \xdef\mem@high{-99999}
      \else
         \set@part{oNterm-3}
         \expandafter\set@part{down-\updown@num}
         \xdef\mem@high{\the\y@min}
         \xdef\mem@low{-99999}
      \fi
   \fi
}

\def\C@term#1{%
   \loopcount=#1
   \ifnum\loopcount<4
      \ifx\current@pos\intr@
         \expandafter\set@part{iCterm-#1}
         \xdef\Cterm@up{intra}
      \else
         \expandafter\set@part{oCterm-#1}
         \xdef\Cterm@up{extra}
      \fi
   \else
      \advance\loopcount by -3
      \xdef\updown@num{\the\loopcount}
      \ifx\current@pos\intr@
         \expandafter\set@part{down-\updown@num}
         \set@part{iCterm-3}
         \xdef\Cterm@up{intra}
      \else
         \expandafter\set@part{up-\updown@num}
         \set@part{oCterm-3}
         \xdef\Cterm@up{extra}
      \fi
   \fi
}

\def\get@@fromstack#1;#2;#3@{%
   \xdef\first@{#1} \xdef\second@{#2}\xdef\last@{#3@}
}

\def\sort@Mstack{%
   \expandafter\get@@fromstack\last@
   \ifx\first@\ampers@nd
      \xdef\tmpstack{\tmpstack\st@rt;\st@p;&;&;@}
   \else
   \ifnum\st@rt<\second@
      \xdef\tmpstack{\tmpstack\st@rt;\st@p;\first@;\second@;\last@}
   \else
      \xdef\tmpstack{\tmpstack\first@;\second@;}
      \sort@Mstack
   \fi\fi
}

\def\get@Mregions#1..#2,#3@{%
   \xdef\st@rt{#1} \xdef\st@p{#2} \xdef\list@{#3}
   \loopcount=\st@p\relax \advance\loopcount by -\st@rt\relax
   \ifnum\loopcount>12 \xdef\TM{y} \fi
   \ifnum\loopcount>35
      \advance\loopcount by 1
      \PackageError{TeXtopo}
      {Transmembrane domain > 36aa (\st@rt..\st@p\space= \the\loopcount)}
      {\MessageBreak
       The length of the membrane regions must be in the\MessageBreak
       range between 14-36 residues for TMs or below 14\MessageBreak
       for half loops. \MessageBreak
       I have set your range definition to 36 residues\MessageBreak
       in order to be able to finish the topology plot.\MessageBreak
       Hit <return> to proceed with the new setting or\MessageBreak
       Type X <return> to quit. \MessageBreak
}
      \loopcount=\st@rt \advance\loopcount by 35\relax
      \xdef\st@p{\the\loopcount}
   \fi
   \xdef\last@{\M@stack}
   \xdef\tmpstack{}
   \sort@Mstack
   \xdef\M@stack{\tmpstack}
}

\def\get@Apositions#1,#2@{%
   \xdef\list@@{#2}
   \MRs{#1..#1}
   \loopcount=#1
   \advance\loopcount by -1
   \expandafter\xdef\csname lip@\the\loopcount\endcsname{y}
   \ifx\list@@\ampers@nd
   \else
      \xdef\list@@{\list@@ @}
      \expandafter\get@Apositions\list@@
   \fi
}

\def\second@color#1,&{\xdef\back@color{#1}}

\def\two@color#1,#2@{%
   \xdef\first@{#1}
   \xdef\second@{#2} 
   \ifx\first@\ampers@nd
   \else
      \xdef\frame@color{#1}
      \ifx\second@\ampers@nd
         \xdef\back@color{#1}
      \else
         \expandafter\second@color\second@
      \fi
   \fi
}

\def\get@spec@pos#1;#2;#3;#4;#5;#6;#7;#8@{%
   \xdef\x@x{#1} \xdef\y@y{#2}
   \xdef\style@c@l{#3}
   \xdef\b@ck{#4} \xdef\fr@me{#5} \xdef\f@nt{#6}
   \xdef\ch@r{#7}
   \xdef\label@stack{#8@}
}

\def\get@spec@lab#1;#2;#3;#4;#5;#6@{%
   \global\xdef\v@rdirect{#1}
   \global\xdef\length@{#2}
   \xdef\l@bel{#3&}
   \ifx\l@bel\ampers@nd\else\xdef\l@bel{#3}\fi
   \xdef\num@{#4}
   \xdef\p@s{#5}
   \xdef\label@stack{#6@}
}

\def\do@topo{%   
  \xdef\prev@st@p{\st@p}
  \expandafter\get@@fromstack\M@stack
  \xdef\next@TM{n} 
  \xdef\st@rt{\first@} \xdef\st@p{\second@}
  \xdef\M@stack{\last@}
  \ifx\st@rt\ampers@nd 
     \loopcount=\seq@length
     \advance\loopcount by -\prev@st@p\relax
     \ifx\current@pos\intr@
     \else
        \advance\loopcount by 1
     \fi
     \xdef\updown@num{\the\loopcount}
     \ifx\l@@pC\y@ \xdef\first@@{C} \else \xdef\first@@{0} \fi
     \ifanalyze
     \else
        \xdef\x@before{\the\x@pos}
        \xdef\l@@pC{}
     \fi
     \xdef\inner@loop{\csname inner@loop\first@@\endcsname}
     \xdef\inner@length{\csname inner@length\first@@\endcsname}
     \xdef\inner@straight{\csname inner@straight\first@@\endcsname}
     \xdef\outer@loop{\csname outer@loop\first@@\endcsname}
     \xdef\outer@length{\csname outer@length\first@@\endcsname}
     \xdef\outer@straight{\csname outer@straight\first@@\endcsname}
     \ifx\C@inverse\y@ \xdef\loop@inverse{y} \fi
     \xdef\C@now{y}
     \ifnum\loopcount>\outer@length
        \expandafter\mult@Cterm{\updown@num}
     \else
        \ifnum\updown@num>0
           \expandafter\C@term{\updown@num}
        \fi
     \fi
     \advance\x@pos by 1
     \ifx\Cterm@up\intr@
        \advance\y@pos by 5
     \else
        \advance\y@pos by -1
     \fi
     \ifanalyze
        \ifx\C@inverse\y@
	 \ifx\current@pos\intr@
           \advance\mem@max by 17
	   \ifnum\TM@length>18 \advance\mem@max by 5 \fi
	   \ifnum\TM@length>23 \advance\mem@max by 5 \fi
	 \else
	   \advance\mem@max by 5
	 \fi
        \else
           \advance\mem@max by 14
        \fi
     \else
       \ifx\hide@COOH\y@
       \else
        \ifx\C@inverse\y@
         \loopcount=\x@pos
         \advance\loopcount by -9
         \put(\loopcount,\y@pos){\raisebox{0.01\unit@length}{%
                             \csname sfdc\font@num\endcsname{HOOC--\,}}}        
        \else
         \put(\x@pos,\y@pos){\raisebox{0.1\unit@length}{%
                             \csname sfdc\font@num\endcsname{\,--COOH}}}
        \fi
       \fi
       \message{- C)}
     \fi
     \xdef\C@now{n}
     \xdef\loop@inverse{n}
  \else
     \loopcount=\st@p
     \advance\loopcount by -\st@rt
     \advance\loopcount by 1
     \ifnum\loopcount>13 
	\xdef\next@TM{y}
	\xdef\TM@length{\the\loopcount}
     \fi
     \loopcount=\st@rt
     \advance\loopcount by -\prev@st@p
     \advance\loopcount by -1
     \ifnum\loopcount>0
        \xdef\updown@num{\the\loopcount}
        \ifanalyze\else\xdef\x@before{\the\x@pos}\fi
        \l@@p{\updown@num}
        \ifanalyze
        \else
         \ifx\half@\y@ \xdef\half@{n}
         \else
           \loop@calc=\x@pos
           \advance\loop@calc by \x@before
           \advance\loop@calc by 5
           \divide\loop@calc by 2
           \ifodd\res@loop \advance\loop@calc by -1\fi
           \advance\loop@@count by 1
           \expandafter\xdef\csname x@label\the\loop@@count\endcsname{%
              \the\loop@calc}
           \loop@calc=\y@offset
           \ifx\current@pos\intr@
              \advance\loop@calc by -13
              \ifodd\res@loop 
                 \ifnum\res@loop>\outer@loop
                 \else
                    \advance\loop@calc by -4
                 \fi
              \fi
              \expandafter\xdef\csname y@label\the\loop@@count\endcsname{%
                 \the\loop@calc}
           \else
              \advance\loop@calc by 15
              \ifodd\res@loop 
                 \ifnum\res@loop>\outer@loop
                 \else
                    \advance\loop@calc by 4
                 \fi
              \fi
              \expandafter\xdef\csname y@label\the\loop@@count\endcsname{%
                 \the\loop@calc}
           \fi
         \fi
        \fi
     \else
        \advance\x@pos by -2
        \ifx\current@pos\intr@
           \advance\y@pos by 5
        \else
           \advance\y@pos by -5 
        \fi
     \fi
     \loopcount=\st@p
     \advance\loopcount by -\st@rt
     \advance\loopcount by 1
     \xdef\updown@num{\the\loopcount}
     \ifnum\loopcount<14
        \ifanalyze\else\xdef\x@before{\the\x@pos}\fi
        \expandafter\h@lf{\updown@num}
	\xdef\prev@TM{n}
        \ifanalyze
        \else
           \xdef\half@{y}
           \loop@calc=\x@pos
           \advance\loop@calc by \x@before
           \advance\loop@calc by 5
           \divide\loop@calc by 2
           \ifodd\res@loop\else \advance\loop@calc by -1\fi
           \expandafter\xdef\csname x@label\the\loop@@count\endcsname{%
              \the\loop@calc}
           \ifx\current@pos\intr@
              \loop@calc=\lab@low
              \advance\loop@calc by -15
              \expandafter\xdef\csname y@label\the\loop@@count\endcsname{%
                 \the\loop@calc}
           \else
              \loop@calc=\lab@high
              \advance\loop@calc by 10
              \expandafter\xdef\csname y@label\the\loop@@count\endcsname{%
                 \the\loop@calc}
           \fi
        \fi
     \else
        \ifanalyze\else\xdef\x@before{\the\x@pos}\fi
        \expandafter\MR@{\updown@num}
        \advance\TM@@count by 1
        \expandafter\ifx\csname l@@p\the\TM@@count\endcsname\y@ 
        \xdef\first@@{\the\TM@@count} \else \xdef\first@@{0} \fi
        \xdef\inner@loop{\csname inner@loop\first@@\endcsname}
        \xdef\inner@length{\csname inner@length\first@@\endcsname}
        \xdef\inner@straight{\csname inner@straight\first@@\endcsname}
        \xdef\outer@loop{\csname outer@loop\first@@\endcsname}
        \xdef\outer@length{\csname outer@length\first@@\endcsname}
        \xdef\outer@straight{\csname outer@straight\first@@\endcsname}  
	\expandafter\ifx\csname foot@\the\TM@@count\endcsname\y@
	   \xdef\foot@direct{\csname foot@direct\the\TM@@count\endcsname}
	   \xdef\neck@length{\csname neck@length\the\TM@@count\endcsname}
	\fi
	\xdef\foot@{\csname foot@\the\TM@@count\endcsname}
        \ifanalyze
        \else
           \expandafter\xdef\csname l@@p\first@@\endcsname{}
           \loop@calc=\x@pos
           \advance\loop@calc by \x@before
           \advance\loop@calc by 5
           \divide\loop@calc by 2
	   \advance\loop@calc by -2
           \expandafter\xdef\csname x@TMlabel\the\TM@@count\endcsname{%
              \the\loop@calc}
           \loop@calc=\lab@high
           \advance\loop@calc by 3
           \expandafter\xdef\csname y@TMlabel\the\TM@@count\endcsname{%
              \the\loop@calc}
        \fi
     \fi
   \fi
   \ifx\last@\@t \else \do@topo \fi
}

\def\get@direction#1,#2@{%
   \xdef\first@{#1} 
   \ifx\first@\ampers@nd \xdef\directi@n{&} \else\xdef\directi@n{#1}\fi
   \xdef\first@{#2} 
   \ifx\first@\ampers@nd \xdef\length@{&} \else\xdef\length@{#2}\fi
}
   
\def\getregion@fromlstack{%
   \expandafter\get@fromlstack\lst@ck
   \xdef\start@{\first@}
   \xdef\stop@{\second@}
   \xdef\directi@n{\third@}
   \xdef\length@{\fourth@}
   \ifx\first@\ampers@nd
      \xdef\stretch@{99999}
   \else
      \temp@count=\stop@
      \advance\temp@count by -\start@
      \divide\temp@count by 2
      \xdef\stretch@{\the\temp@count}
      \temp@count=\start@ \advance\temp@count by \stretch@
      \xdef\label@pos{\the\temp@count}
      \xdef\first@{noshade}
      \ifx\first@\fifth@
         \def\style@c@l{\symb@l@style}
         \def\fr@me{\fr@mec@l}
         \def\b@ck{\symb@lc@l}
         \def\f@nt{\ch@rc@l}
      \else
         \xdef\style@c@l{\csname \fifth@ style\endcsname}
         \xdef\fr@me{\csname \fifth@ frame\endcsname}
         \xdef\b@ck{\csname \fifth@ back\endcsname}
         \xdef\f@nt{\csname \fifth@ font\endcsname}
      \fi
   \fi
   \xdef\l@bel{\sixth@}
   \xdef\num@{\seventh@}
   \xdef\lst@ck{\l@st}
}

\def\reverse@lstack{%
   \expandafter\get@fromlstack\l@st
   \ifx\first@\ampers@nd
   \else
   \ifnum\first@>\st@p
   \else
      \iloopcount=\st@p
      \ifnum\second@<\st@p
         \advance\iloopcount by -\second@
         \advance\iloopcount by \st@rt
      \else
         \iloopcount=\st@rt
      \fi
      \xdef\second@{\the\iloopcount}
      \iloopcount=\st@p
      \ifnum\first@>\st@rt
         \advance\iloopcount by -\first@
         \advance\iloopcount by \st@rt
      \else
         \iloopcount=\st@p
      \fi
      \xdef\first@{\the\iloopcount}
      \xdef\tmpstack{\second@;\first@;\third@;\fourth@;%
                     \fifth@;\sixth@;\seventh@;\tmpstack}
      \reverse@lstack
   \fi\fi
}

\def\get@fromlstack#1;#2;#3;#4;#5;#6;#7;#8@{%
   \xdef\first@{#1}  \xdef\second@{#2}
   \xdef\third@{#3}  \xdef\fourth@{#4}
   \xdef\fifth@{#5}  \xdef\sixth@{#6}
   \xdef\seventh@{#7}\xdef\l@st{#8@}
}

\def\sort@lstack{%
   \expandafter\get@fromlstack\l@st
   \ifx\first@\ampers@nd
      \xdef\tmpstack{\tmpstack\start@;\stop@;\directi@n;\length@;%
                     \style@c@l;\l@text@;\num@;&;&;&;&;&;&;&;@}
   \else
   \ifnum\start@<\second@
      \xdef\tmpstack{\tmpstack\start@;\stop@;\directi@n;\length@;%
                     \style@c@l;\l@text@;\num@;%
                     \first@;\second@;\third@;\fourth@;%
                     \fifth@;\sixth@;\seventh@;\l@st}
   \else
      \xdef\tmpstack{\tmpstack\first@;\second@;\third@;\fourth@;%
                     \fifth@;\sixth@;\seventh@;}
      \sort@lstack
   \fi\fi
}

\def\get@lregions#1..#2,#3@{%
   \xdef\start@{#1[@]&}
   \expandafter\opt@col\start@
   \xdef\start@{\fourth@}
   \xdef\start@num@pos{\l@color}
   \xdef\stop@{#2[@]&}
   \expandafter\opt@col\stop@
   \xdef\stop@{\fourth@}
   \xdef\stop@num@pos{\l@color}
   \temp@count=\stop@\relax
   \advance\temp@count by -\start@
   \divide\temp@count by 2
   \xdef\stretch@{\the\temp@count}
   \temp@count=\start@\relax
   \advance\temp@count by \stretch@\relax
   \ifx\start@num@pos\@t
      \expandafter\xdef\csname print\start@\endcsname{&}
   \else
      \ifx\start@num@pos\st@r
         \expandafter\xdef\csname print\start@\endcsname{n}
      \else
         \expandafter\xdef\csname print\start@\endcsname{\start@num@pos}
      \fi
   \fi
   \ifx\stop@num@pos\@t
      \expandafter\xdef\csname print\stop@\endcsname{&}
   \else
      \ifx\stop@num@pos\st@r
         \expandafter\xdef\csname print\stop@\endcsname{n}
      \else
         \expandafter\xdef\csname print\stop@\endcsname{\stop@num@pos}
      \fi
   \fi
   \ifx\stop@num@pos\@t
      \ifx\start@num@pos\@t
         \expandafter\xdef\csname print\the\temp@count\endcsname{&}
      \else
         \ifx\start@num@pos\st@r
            \expandafter\xdef\csname print\the\temp@count\endcsname{n}
         \else
            \expandafter\xdef\csname print\the\temp@count\endcsname{\start@num@pos}
         \fi
      \fi
   \else
      \ifx\stop@num@pos\st@r
         \expandafter\xdef\csname print\the\temp@count\endcsname{n}
      \else
         \expandafter\xdef\csname print\the\temp@count\endcsname{\stop@num@pos}
      \fi      
   \fi
   \xdef\list@{#3}
   \xdef\l@st{\lst@ck}
   \xdef\tmpstack{}
   \sort@lstack
   \xdef\lst@ck{\tmpstack}
}

\def\get@TMnum#1,#2@{\xdef\TM@num{#1}\xdef\TM@stack{#2@}}

\def\get@l@b#1=#2@{\xdef\l@b{#1}\xdef\seq@{#2@}}
\def\check@direct#1#2@{\xdef\fourth@{#1}}
\def\get@direct[#1]#2@{\xdef\direct@{#1}\xdef\l@b{#2}}

\def\count@tag#1#2@{%
   \xdef\temp@{#1@}
   \xdef\seq@@{#2@}
   \expandafter\check@letter\temp@
   \xdef\temp@{#1}
   \ifletter
      \advance\temp@count by 1
      \xdef\seq@tag{\seq@tag\temp@}
      \xdef\last@{\temp@}
   \fi
   \ifx\temp@\ampers@nd
   \else \expandafter\count@tag\seq@@\fi
}

\def\count@res#1#2@{%
   \xdef\temp@{#1@}
   \xdef\seq@{#2@}
   \expandafter\check@letter\temp@
   \xdef\temp@{#1}
   \ifletter
      \advance\pos@count by 1\relax
      \ifnum\pos@count=0 \pos@count=1 \fi
      \xdef\sequence@{\sequence@\temp@}
      \xdef\last@{\temp@}
   \else
   \ifx\temp@\@pen 
      \advance\pos@count by 1\relax
      \ifnum\pos@count=0 \pos@count=1 \fi
      \xdef\start@{\the\pos@count}
      \advance\pos@count by -1\relax
      \ifnum\pos@count=0 \pos@count=-1 \fi
   \else
      \ifx\temp@\cl@se
         \expandafter\MRs{\start@..\the\pos@count}
      \else
         \ifx\temp@\st@r
            \ifx\st@r@\y@ \xdef\st@r@{n} \message{(pos `\last@': \the\pos@count)}
            \else \xdef\st@r@{y} \fi
         \else
           \ifx\temp@\start@label
              \advance\pos@count by 1\relax
              \ifnum\pos@count=0 \pos@count=1 \fi
              \xdef\start@@{\the\pos@count}
              \advance\pos@count by -1\relax
              \ifnum\pos@count=0 \pos@count=-1 \fi
              \expandafter\get@l@b\seq@
              \xdef\direct@{&,&}
              \xdef\first@{\l@b @}
              \expandafter\check@direct\first@
              \ifx\fourth@\@pen
                 \expandafter\get@direct\first@
              \fi
              \xdef\l@b{\l@b[@]&}
              \expandafter\opt@col\l@b
              \xdef\l@b{\fourth@}
              \xdef\l@btxt{\l@color}
              \xdef\fifth@@{\fifth@}
              \ifx\l@color\@t \xdef\l@btxt{}\fi
              \xdef\fourth@{\l@btxt[@]&}
              \expandafter\opt@col\fourth@
              \ifx\l@color\@t
              \else
                 \ifx\fifth@@\br@cket@t
                    \xdef\l@btxt{\l@btxt ]} 
                 \else
                    \xdef\fifth@{\fifth@@&}
                    \expandafter\opt@col\fifth@
                    \ifx\l@color\@t
                    \else
                       \xdef\l@btxt{\l@btxt]\fourth@[\l@color]}
                    \fi
                 \fi
              \fi
           \else
              \ifx\temp@\stop@label
                \expandafter\labelregion[\direct@]{\start@@..\the\pos@count}%
                                        {\l@b}{\l@btxt}
              \fi
           \fi
         \fi
      \fi
   \fi
   \fi
   \ifx\temp@\ampers@nd
   \else \expandafter\count@res\seq@\fi
}

\def\analyzetopo{%
   \message{(Calculating ...}
   \x@pos=0 \y@pos=0
   \x@min=0 \x@max=0 \y@min=0 \y@max=0 \mem@max=0
   \xdef\virtual@pos{\current@pos}
   \xdef\M@@stack{\M@stack}
   \ifx\m@d@stack@ori\ampers@nd 
      \xdef\m@d@stack{0:0/0,0@}
   \else
      \xdef\m@d@stack{\m@d@stack@ori,0:0/0,0@}
   \fi
   \expandafter\get@next@m@d\m@d@stack
   \xdef\first@rem@del{y}
   \analyzetrue
   \dotopo
   \analyzefalse
   \xdef\current@pos{\virtual@pos}
   \xdef\M@stack{\M@@stack}
   \ifx\m@d@stack@ori\ampers@nd 
      \xdef\m@d@stack{0:0/0,0@}
   \else
      \xdef\m@d@stack{\m@d@stack@ori,0:0/0,0@}
   \fi
   \expandafter\get@next@m@d\m@d@stack
   \xdef\first@rem@del{y}
   \advance\x@max by 20\relax
   \advance\x@max by -\x@min\relax
   \advance\mem@max by 20\relax
   \advance\y@max by 26
   \advance\y@max by -\y@min
   \x@pos=5\relax
   \advance\x@pos by -\x@min
   \y@pos=-\y@min
   \advance\y@pos by 10
   \loopcount=\mem@high
   \advance\loopcount by -\y@min
   \advance\loopcount by 16
   \advance\loopcount by \mem@t@p\relax
   \xdef\mem@high{\the\loopcount} 
   \xdef\lab@high{\mem@high}
   \innerloopcount=\mem@thick
   \multiply\innerloopcount by -1
   \advance\loopcount by \innerloopcount
   \advance\loopcount by \mem@b@t\relax
   \xdef\mem@low{\the\loopcount} 
   \xdef\lab@low{\mem@low}
}

\def\dotopo{%
 \pos@count=-\N@tag@length\relax
 \advance\pos@count by -1\relax
 \ifall@shade
 \else
  \iffuncmode
  \else
   \expandafter\xdef\csname sstyle3\endcsname{\csname sstyle2\endcsname}
   \expandafter\xdef\csname fcol3\endcsname{\csname fcol2\endcsname}
   \expandafter\xdef\csname scol3\endcsname{\csname scol2\endcsname}
   \expandafter\xdef\csname ccol3\endcsname{\csname ccol2\endcsname}
   \xdef\first@{\shadenum@inv@pos}
   \expandafter\xdef\csname show@shade\first@\endcsname{n}
  \fi
 \fi
 \ifsimilar@shade
 \else
  \iffuncmode
  \else
   \expandafter\xdef\csname sstyle1\endcsname{\symb@lstyle}
   \expandafter\xdef\csname fcol1\endcsname{\fr@mecol}
   \expandafter\xdef\csname scol1\endcsname{\symb@lcol}
   \expandafter\xdef\csname ccol1\endcsname{\ch@rcol}
   \xdef\first@{\shadenum@sim@pos}
   \expandafter\xdef\csname show@shade\first@\endcsname{n}
  \fi
 \fi
 \expandafter\get@@fromstack\M@stack
 \xdef\next@TM{n}
 \ifx\TM\y@
   \xdef\st@rt{\first@} \xdef\st@p{\second@}
   \xdef\M@stack{\last@}
   \ifx\st@rt\ampers@nd
   \else
      \loopcount=\st@p
      \advance\loopcount by -\st@rt
      \advance\loopcount by 1
      \ifnum\loopcount>13 \xdef\next@TM{y} \xdef\TM@length{\the\loopcount} \fi
      \ifanalyze\else
        \message{plotting ...}
        \ifx\hide@NH\y@
        \else
          \ifx\N@inverse\y@
           \loopcount=\x@pos
           \advance\loopcount by 15
           \put(\loopcount,\y@pos){\raisebox{0.85\unit@length}{%
                             \csname sfdc\font@num\endcsname{--NH%
                             \raisebox{-1.2\unit@length}{2}}}}
          \else
           \put(\x@pos,\y@pos){\raisebox{0.85\unit@length}{%
                             \csname sfdc\font@num\endcsname{H%
                             \raisebox{-1.2\unit@length}{2}N--}}}
          \fi
        \fi
      \fi
      \advance\x@pos by 9
      \advance\y@pos by -1
      \loopcount=\st@rt\relax
      \advance\loopcount by \N@tag@length\relax
      \advance\loopcount by -1\relax
      \xdef\updown@num{\the\loopcount}
      \ifx\l@@pN\y@ \xdef\first@@{N} \else \xdef\first@@{0} \fi
      \ifanalyze
      \else
         \xdef\x@before{\the\x@pos}
         \xdef\l@@pN{}
      \fi
      \xdef\inner@loop{\csname inner@loop\first@@\endcsname}
      \xdef\inner@length{\csname inner@length\first@@\endcsname}
      \xdef\inner@straight{\csname inner@straight\first@@\endcsname}
      \xdef\outer@loop{\csname outer@loop\first@@\endcsname}
      \xdef\outer@length{\csname outer@length\first@@\endcsname}
      \xdef\outer@straight{\csname outer@straight\first@@\endcsname}
      \xdef\N@extra{n}
      \ifx\N@inverse\y@ 
         \xdef\loop@inverse{y} 
	 \ifx\current@pos\intr@
	 \else
	    \xdef\N@extra{y}
	 \fi
      \fi
      \ifnum\loopcount>\outer@length
         \expandafter\mult@Nterm{\updown@num}
      \else
         \expandafter\N@term{\updown@num}
      \fi
      \ifanalyze\else\message{N}\fi
      \ifnum\mem@max<0
         \loopcount=\x@pos
         \multiply\loopcount by -1
         \xdef\N@start@x{\the\loopcount}
	 \mem@max=0
      \else
         \xdef\N@start@x{0}
      \fi
      \ifx\loop@inverse\y@ \advance\x@pos by 2 \fi
      \xdef\loop@inverse{n}
      \loopcount=\st@p
      \advance\loopcount by -\st@rt
      \advance\loopcount by 1
      \xdef\updown@num{\the\loopcount}
      \ifnum\loopcount<14
         \expandafter\h@lf{\updown@num}
	 \xdef\prev@TM{n}
      \else
	\ifx\N@extra\y@
	   \innerloopcount=\N@start@x
	   \advance\innerloopcount by 15
	   \ifnum\loopcount>18 \advance\innerloopcount by 5 \fi
	   \ifnum\loopcount>23 \advance\innerloopcount by 5 \fi
	   \ifnum\loopcount>30 \advance\innerloopcount by 5 \fi
	   \xdef\N@start@x{\the\innerloopcount}
	\fi
        \ifanalyze\else\xdef\x@before{\the\x@pos}\fi
        \expandafter\MR@{\updown@num}
        \advance\TM@@count by 1
        \expandafter\ifx\csname l@@p\the\TM@@count\endcsname\y@ 
        \xdef\first@@{\the\TM@@count} \else \xdef\first@@{0} \fi
        \xdef\inner@loop{\csname inner@loop\first@@\endcsname}
        \xdef\inner@length{\csname inner@length\first@@\endcsname}
        \xdef\inner@straight{\csname inner@straight\first@@\endcsname}
        \xdef\outer@loop{\csname outer@loop\first@@\endcsname}
        \xdef\outer@length{\csname outer@length\first@@\endcsname}
        \xdef\outer@straight{\csname outer@straight\first@@\endcsname}  
	\expandafter\ifx\csname foot@\the\TM@@count\endcsname\y@
	   \xdef\foot@direct{\csname foot@direct\the\TM@@count\endcsname}
	   \xdef\neck@length{\csname neck@length\the\TM@@count\endcsname}
	\fi
	\xdef\foot@{\csname foot@\the\TM@@count\endcsname}
        \ifanalyze
        \else
           \expandafter\xdef\csname l@@p\first@@\endcsname{}
           \loop@calc=\x@pos
           \advance\loop@calc by \x@before
           \advance\loop@calc by 5
           \divide\loop@calc by 2
           \ifx\current@pos\intr@
              \advance\loop@calc by 2
           \else
              \advance\loop@calc by -2
           \fi
           \expandafter\xdef\csname x@TMlabel\the\TM@@count\endcsname{%
              \the\loop@calc}
           \loop@calc=\lab@high
           \advance\loop@calc by 3
           \expandafter\xdef\csname y@TMlabel\the\TM@@count\endcsname{%
              \the\loop@calc}
        \fi
      \fi
      \do@topo
   \fi
   \ifanalyze
   \else
      \xdef\label@stack{\label@stack &;&;&;&;&;&;&;&;&;&;&;&;@}
      \expandafter\get@spec@pos\label@stack
      \expandafter\get@spec@lab\label@stack
      \ifx\x@x\ampers@nd 
      \else 
         \fontfamily{\label@family}
         \fontseries{\label@series}
         \fontshape{\label@shape}
         \selectfont
         \put@special{\x@x}{\y@y}
      \fi
   \fi
 \else
      \PackageError{TeXtopo}
      {No \noexpand\MRs specified}
      {\MessageBreak
       The membrane regions (MRs) of the protein must be \MessageBreak
       specified in order to draw the topology. \MessageBreak
       Type X <return> to quit. \MessageBreak
}
 \fi
}

\def\do@membr@ne{%
   \loopcount=0
   \advance\loopcount by \to@mem@min\relax
   \xdef\mem@min{\the\loopcount}
   \loopcount=\to@mem@min\relax
   \multiply\loopcount by -1\relax
   \advance\loopcount by \mem@max\relax 
   \advance\loopcount by -\x@min\relax
   \advance\loopcount by -10\relax
   \advance\loopcount by \to@mem@max\relax
   \put(\mem@min,\mem@low){\textcolor{\membl@ck}{\rule[-\unit@length]{%
        \loopcount\unit@length}{\mem@thick\unit@length}}}
   \put(\mem@min,\mem@low){\textcolor{\memfr@me}{\rule[-\b@rder]{%
        \loopcount\unit@length}{\b@rder}}}
   \put(\mem@min,\mem@high){\textcolor{\memfr@me}{\rule[-\unit@length]{%
        \loopcount\unit@length}{\b@rder}}}
   \bgroup
   \fontfamily{\mem@label@family}
   \fontseries{\mem@label@series}
   \fontshape{\mem@label@shape}
   \selectfont
   \advance\loopcount by \mem@min
   \xdef\x@x@{\the\loopcount}
   \setbox1=\hbox{\mem@label@size{(}}
   \temp@length=\dp1
   \divide\temp@length by \unit@length
   \temp@count=\mem@high
   \advance\temp@count by \temp@length 
   \xdef\y@y@{\the\temp@count}
   \xdef\x@@x{\move@out@direc}
   \xdef\y@@y{\move@out@length}
   \xdef\first@{\move@out@direc @}
   \expandafter\check@letter\first@
   \ifletter
      \temp@count=\move@out@length 
      \multiply\temp@count by \csname cos\move@out@direc\endcsname
      \divide\temp@count by 10000
      \xdef\x@@x{\the\temp@count}
      \temp@count=\move@out@length
      \multiply\temp@count by \csname sin\move@out@direc\endcsname
      \divide\temp@count by 10000
      \xdef\y@@y{\the\temp@count}
   \fi
   \temp@count=\y@y@ \advance\temp@count by \y@@y \xdef\y@@@y{\the\temp@count}
   \xdef\first@{right}
   \ifx\first@\up@left@right
      \setbox2=\hbox{\label@size{\up@mem}}
      \temp@length=\wd2
      \temp@count=\x@x@ \advance\temp@count by \x@@x \xdef\x@@@x{\the\temp@count}
      \put(\x@@@x,\y@@@y){\raisebox{\b@rder}{\kern-\temp@length%
                                             \mem@label@size{\up@mem}}}
   \else
      \temp@count=\mem@min 
      \advance\temp@count by \x@@x \xdef\x@@@x{\the\temp@count}
      \put(\x@@@x,\y@@@y){\raisebox{\b@rder}{\mem@label@size{\up@mem}}}
   \fi
   \temp@length=\ht1
   \divide\temp@length by \unit@length
   \temp@count=\mem@low \advance\temp@count by -\temp@length
   \advance\temp@count by -1
   \xdef\y@y@{\the\temp@count}
   \xdef\x@@x{\move@in@direc}
   \xdef\y@@y{\move@in@length}
   \xdef\first@{\move@in@direc @}
   \expandafter\check@letter\first@
   \ifletter
      \temp@count=\move@in@length
      \multiply\temp@count by \csname cos\move@in@direc\endcsname
      \divide\temp@count by 10000
      \xdef\x@@x{\the\temp@count}
      \temp@count=\move@in@length
      \multiply\temp@count by \csname sin\move@in@direc\endcsname
      \divide\temp@count by 10000
      \xdef\y@@y{\the\temp@count}
   \fi
   \temp@count=\y@y@ \advance\temp@count by \y@@y \xdef\y@@@y{\the\temp@count}
   \xdef\first@{right}
   \ifx\first@\low@left@right
      \setbox2=\hbox{\mem@label@size{\low@mem}}
      \temp@length=\wd2
      \temp@count=\x@x@ \advance\temp@count by \x@@x \xdef\x@@@x{\the\temp@count}
      \put(\x@@@x,\y@@@y){\raisebox{-\b@rder}{\kern-\temp@length%
                                             \mem@label@size{\low@mem}}}
   \else
      \temp@count=\mem@min \advance\temp@count by \x@@x \xdef\x@@@x{\the\temp@count}
      \put(\x@@@x,\y@@@y){\raisebox{-\b@rder}{\mem@label@size{\low@mem}}}
   \fi
   \egroup
}

\def\do@looplabel{%
   \fontfamily{\looplabel@family}
   \fontseries{\looplabel@series}
   \fontshape{\looplabel@shape}
   \selectfont
   \loopcount=0
   \loop
    \advance\loopcount by 1
    \expandafter\ifx\csname l@true\the\loopcount\endcsname\y@ \loopgo@true\fi
    \ifloop@series \loopgo@true \fi
    \ifloopgo@
      \loopgo@false
      \x@pos=\csname x@label\the\loopcount\endcsname
      \y@pos=\csname y@label\the\loopcount\endcsname
      \expandafter\ifx\csname move@loop\the\loopcount\endcsname\y@
         \expandafter\xdef\csname move@loop\the\loopcount\endcsname{n}
	 \xdef\x@@x{\csname movel@direct\the\loopcount\endcsname}
	 \xdef\y@@y{\csname movel@offset\the\loopcount\endcsname}
         \xdef\first@{\csname movel@direct\the\loopcount\endcsname @}
	 \expandafter\check@letter\first@
	 \ifletter
            \xdef\first@{\csname movel@direct\the\loopcount\endcsname}
            \temp@count=\csname movel@offset\the\loopcount\endcsname
            \multiply\temp@count by \csname cos\first@\endcsname
            \divide\temp@count by 10000
            \xdef\x@@x{\the\temp@count}
            \temp@count=\csname movel@offset\the\loopcount\endcsname
            \multiply\temp@count by \csname sin\first@\endcsname
            \divide\temp@count by 10000
            \xdef\y@@y{\the\temp@count}
	 \fi
         \advance\x@pos by \x@@x
         \advance\y@pos by \y@@y         
      \fi
      \ifloop@series
        \expandafter\ifx\csname l@true\the\loopcount\endcsname\y@
        \else
           \put(\x@pos,\y@pos){%
              \hbox to 0pt {\looplabel@size\textcolor{\loopc@l}%
                           {\hss\loop@labeltext\hss}}}
        \fi
      \fi
      \expandafter\ifx\csname l@true\the\loopcount\endcsname\y@
         \expandafter\xdef\csname l@true\the\loopcount\endcsname{n}
	 \xdef\x@@x{\csname l@direct\the\loopcount\endcsname}
	 \xdef\y@@y{\csname l@offset\the\loopcount\endcsname}
         \xdef\first@{\csname l@direct\the\loopcount\endcsname @}
	 \expandafter\check@letter\first@
	 \ifletter
            \xdef\first@{\csname l@direct\the\loopcount\endcsname}
            \temp@count=\csname l@offset\the\loopcount\endcsname
            \multiply\temp@count by \csname cos\first@\endcsname
            \divide\temp@count by 10000
            \xdef\x@@x{\the\temp@count}
            \temp@count=\csname l@offset\the\loopcount\endcsname
            \multiply\temp@count by \csname sin\first@\endcsname
            \divide\temp@count by 10000
            \xdef\y@@y{\the\temp@count}
	 \fi
         \advance\x@pos by \x@@x
         \advance\y@pos by \y@@y
         \put(\x@pos,\y@pos){%
              \hbox to 0pt {\looplabel@size\textcolor{\loopc@l}%
                           {\hss\csname l@label\the\loopcount\endcsname\hss}}}
      \fi
      \expandafter\xdef\csname l@true\the\loopcount\endcsname{n}
    \fi
   \ifnum\loopcount=\loop@@count\else\repeat
}

\def\do@TMlabel{%
   \fontfamily{\TMlabel@family}
   \fontseries{\TMlabel@series}
   \fontshape{\TMlabel@shape}
   \selectfont
   \loopcount=0
   \loop
    \advance\loopcount by 1
    \expandafter\ifx\csname TM@true\the\loopcount\endcsname\y@ \TMgo@true\fi
    \ifTM@series \TMgo@true \fi
    \ifTMgo@
      \TMgo@false
      \x@pos=\csname x@TMlabel\the\loopcount\endcsname
      \y@pos=\csname y@TMlabel\the\loopcount\endcsname
      \expandafter\ifx\csname move@TM\the\loopcount\endcsname\y@
         \expandafter\xdef\csname move@TM\the\loopcount\endcsname{n}
         \xdef\x@@x{\csname moveTM@direct\the\loopcount\endcsname}
         \xdef\y@@y{\csname moveTM@offset\the\loopcount\endcsname}
         \xdef\first@{\csname moveTM@direct\the\loopcount\endcsname @}
	 \expandafter\check@letter\first@
	 \ifletter
            \xdef\first@{\csname moveTM@direct\the\loopcount\endcsname}
            \temp@count=\csname moveTM@offset\the\loopcount\endcsname
            \multiply\temp@count by \csname cos\first@\endcsname
            \divide\temp@count by 10000
            \xdef\x@@x{\the\temp@count}
            \temp@count=\csname moveTM@offset\the\loopcount\endcsname
            \multiply\temp@count by \csname sin\first@\endcsname
            \divide\temp@count by 10000
            \xdef\y@@y{\the\temp@count}
	 \fi
         \advance\x@pos by \x@@x
         \advance\y@pos by \y@@y         
      \fi
      \ifTM@series
        \expandafter\ifx\csname TM@true\the\loopcount\endcsname\y@
        \else
         \put(\x@pos,\y@pos){%
              \hbox to 0pt {\TMlabel@size\textcolor{\TMc@l}%
                           {\hss\TM@labeltext\hss}}}
        \fi
      \fi
      \expandafter\ifx\csname TM@true\the\loopcount\endcsname\y@
         \xdef\x@@X{\csname TM@direct\the\loopcount\endcsname}
         \xdef\y@@y{\csname TM@offset\the\loopcount\endcsname}	 
         \xdef\first@{\csname TM@direct\the\loopcount\endcsname @}
	 \expandafter\check@letter\first@
	 \ifletter
            \xdef\first@{\csname TM@direct\the\loopcount\endcsname}
            \temp@count=\csname TM@offset\the\loopcount\endcsname
            \multiply\temp@count by \csname cos\first@\endcsname
            \divide\temp@count by 10000
            \xdef\x@@x{\the\temp@count}
            \temp@count=\csname TM@offset\the\loopcount\endcsname
            \multiply\temp@count by \csname sin\first@\endcsname
            \divide\temp@count by 10000
            \xdef\y@@y{\the\temp@count}
	 \fi
         \advance\x@pos by \x@@x
         \advance\y@pos by \y@@y
         \put(\x@pos,\y@pos){%
              \hbox to 0pt {\TMlabel@size\textcolor{\TMc@l}{%
              \hss\csname TM@label\the\loopcount\endcsname\hss}}}
      \fi
      \expandafter\xdef\csname TM@true\the\loopcount\endcsname{n}
    \fi
   \ifnum\loopcount=\TM@@count\else\repeat
}

\def\do@@legend{%
   \ifnum\label@num>0
   \innerloopcount=0
   \loopcount=0
   \loop
      \advance\loopcount by 1 
      \xdef\first@{\csname labelname@\the\loopcount\endcsname}%
      \expandafter\ifx\csname show@label\first@\endcsname\y@
         \advance\innerloopcount by 1
      \fi
   \ifnum\loopcount=\label@num\else\repeat
   \fi
   \temp@length=\hspace@@legend
   \divide\temp@length by \unit@length\relax
   \loopcount=\temp@length\relax 
   \advance\loopcount by 10\relax
   \xdef\h@ten{\the\loopcount}
   \advance\loopcount by 1\relax
   \xdef\h@elvn{\the\loopcount}
   \advance\loopcount by 4\relax
   \xdef\h@fiftn{\the\loopcount}
   \advance\loopcount by 5\relax
   \xdef\h@twen{\the\loopcount}
   \setbox1=\hbox{\legend@size{(}}
   \temp@length=\ht1
   \divide\temp@length by \unit@length\relax
   \loopcount=\temp@length
   \advance\loopcount by 1
   \ifnum\loopcount>5
      \advance\loopcount by 3\relax
      \xdef\mult@{\the\loopcount}%
   \else
      \xdef\mult@{8}%
   \fi
   \multiply\innerloopcount by \mult@\relax
   \advance\innerloopcount by 8
   \begin{picture}(1,\the\innerloopcount)
    \advance\innerloopcount by -2
    \loopcount=0
    \loop
     \advance\loopcount by 1
     \xdef\first@{\csname labelname@\the\loopcount\endcsname}%
     \expandafter\ifx\csname show@label\first@\endcsname\y@
      \advance\innerloopcount by -\mult@\relax
      \xdef\first@{\csname labelname@\the\loopcount\endcsname}%
      \xdef\style@c@l{\csname \first@ style\endcsname}%
      \xdef\b@ck{\csname \first@ back\endcsname}%
      \xdef\fr@me{\csname \first@ frame\endcsname}%
      \xdef\f@nt{\csname \first@ font\endcsname}%
      \xdef\l@text@{\csname \first@ legendtext\endcsname}%
      \xdef\first@{circ}%
      \ifx\first@\style@c@l
         \put(\h@ten,\the\innerloopcount){\textcolor{\b@ck}{%
           \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"0F\hss}}}%
         \put(\h@ten,\the\innerloopcount){\textcolor{\fr@me}{%
           \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"0E\hss}}%
           \kern-\res@diam \raisebox{0.4\res@diam}{%
           \raisebox{0.5\res@@diam}{%
           \hbox to \res@diam{\hss\csname sfdc\font@num\endcsname%
            \textcolor{\f@nt}{X}\hss}}}}%
      \else
         \xdef\first@{diamond}%
         \ifx\first@\style@c@l
            \put(\h@ten,\the\innerloopcount){\textcolor{\b@ck}{%
             \begin{rotopo}{45}\kern0.1\res@@diam%
                 \rule{\res@@diam}{\res@@diam}\end{rotopo}%
              \begin{rotopo}{45}\kern3\unit@length%
                  \rule[0.085\res@diam]{0.75\res@diam}{0.85\res@diam}%
              \end{rotopo}}}%
            \put(\h@ten,\the\innerloopcount){\textcolor{\fr@me}{%
              \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"05\hss}}%
              \kern-0.9\res@diam%
              \raisebox{0.55\res@@diam}{%
              \raisebox{0.4\res@diam}{%
              \hbox to 0.9\res@diam{\hss\csname sfdc\font@num\endcsname%
               \textcolor{\f@nt}{X}\hss}}}}%
         \else
            \xdef\first@{box}%
            \ifx\first@\style@c@l
            \ifhelix@
               \advance\innerloopcount by 3
               \put(\h@elvn,\the\innerloopcount){\kern-0.9\res@@diam\raisebox{-0.9\res@@diam}{%
                  \textcolor{\fr@me}{%
                  \rule[0.05\res@@diam]{1.2\res@@diam}{1.2\res@@diam}}}}%
               \put(\h@elvn,\the\innerloopcount){\kern-0.8\res@@diam\raisebox{-0.8\res@@diam}{%
                  \textcolor{\b@ck}{%
                  \rule[0.05\res@@diam]{\res@@diam}{\res@@diam}%
                  \kern-\res@@diam\raisebox{0.25\res@@diam}%
                 {\hbox to \res@@diam{\hss\csname sfdc\font@num\endcsname%
                  \textcolor{\f@nt}{X}\hss}}}}}%
               \advance\innerloopcount by -3
            \else
               \put(\h@ten,\the\innerloopcount){\textcolor{\b@ck}{\kern0.11\res@diam%
                        \rule[0.175\res@diam]{0.73\res@diam}{0.85\res@diam}}}%
               \put(\h@ten,\the\innerloopcount){\textcolor{\fr@me}{\kern0.02\res@diam%
               \raisebox{0.175\res@diam}%
              {\hbox to \res@diam{\hss\csname square\font@num\endcsname%
              \char'164\hss}\kern-\res@diam\hbox to \res@diam{%
              \hss\csname square\font@num\endcsname\char'165\hss}}%
              \kern-\res@diam%
              \raisebox{0.6\res@@diam}{%
              \raisebox{0.4\res@diam}{%
              \hbox to \res@diam{\hss\csname sfdc\font@num\endcsname%
               \textcolor{\f@nt}{X}\hss}}}}}%
            \fi
            \fi
         \fi      
      \fi
      \fontfamily{\legend@family}%
      \fontseries{\legend@series}%
      \fontshape{\legend@shape}%
      \selectfont%
      \advance\innerloopcount by 1
      \ifnum\wheel@count=0 \xdef\first@{\h@twen} \else \xdef\first@{\h@fiftn} \fi
      \put(\first@,\the\innerloopcount){\legend@size{\l@text@}}%
      \advance\innerloopcount by -1
     \fi
    \ifnum\loopcount=\label@num\else\repeat
   \end{picture}
}

\def\do@@shadelegend{%
   \ifnum\shade@num>0
   \innerloopcount=0
   \loopcount=0
   \loop
      \advance\loopcount by 1
      \expandafter\ifx\csname show@shade\the\loopcount\endcsname\y@
         \advance\innerloopcount by 1
      \fi
   \ifnum\loopcount=\shade@num\else\repeat
   \temp@length=\hspace@@legend
   \divide\temp@length by \unit@length\relax
   \loopcount=\temp@length\relax 
   \advance\loopcount by 10\relax
   \xdef\h@ten{\the\loopcount}
   \advance\loopcount by 1\relax
   \xdef\h@elvn{\the\loopcount}
   \advance\loopcount by 4\relax
   \xdef\h@fiftn{\the\loopcount}
   \advance\loopcount by 5\relax
   \xdef\h@twen{\the\loopcount}
   \setbox1=\hbox{\legend@size{(}}
   \temp@length=\ht1
   \divide\temp@length by \unit@length
   \loopcount=\temp@length 
   \advance\loopcount by 1
   \ifnum\loopcount>5
      \advance\loopcount by 3\relax
      \xdef\mult@{\the\loopcount}%
   \else
      \xdef\mult@{8}%
   \fi
   \multiply\innerloopcount by \mult@\relax
   \advance\innerloopcount by 1
   \begin{picture}(1,\the\innerloopcount)
    \loopcount=0
    \loop
     \advance\loopcount by 1
     \expandafter\ifx\csname show@shade\the\loopcount\endcsname\y@
      \advance\innerloopcount by -\mult@\relax
      \iffuncmode
         \xdef\style@c@l{circ}%
         \xdef\b@ck{\csname fg@color\the\loopcount\endcsname}%
         \xdef\fr@me{Black}%
         \xdef\f@nt{\csname fg@textcolor\the\loopcount\endcsname}%
         \xdef\l@text@{\csname fgroup@name\the\loopcount\endcsname}%
      \else
         \xdef\first@{\csname shadename@\the\loopcount\endcsname}%
         \xdef\style@c@l{\csname \first@ style\endcsname}%
         \xdef\b@ck{\csname \first@ back\endcsname}%
         \xdef\fr@me{\csname \first@ frame\endcsname}%
         \xdef\f@nt{\csname \first@ font\endcsname}%
         \xdef\l@text@{\csname \first@ legendtext\endcsname}%
      \fi
      \xdef\first@{circ}%
      \ifx\first@\style@c@l
         \put(\h@ten,\the\innerloopcount){\textcolor{\b@ck}{%
           \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"0F\hss}}}%
         \put(\h@ten,\the\innerloopcount){\textcolor{\fr@me}{%
           \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"0E\hss}}%
           \kern-\res@diam%
           \raisebox{0.5\res@@diam}{%
           \raisebox{0.4\res@diam}%
           {\hbox to \res@diam{\hss\csname sfdc\font@num\endcsname%
            \textcolor{\f@nt}{X}\hss}}}}%
      \else
         \xdef\first@{diamond}%
         \ifx\first@\style@c@l
            \put(\h@ten,\the\innerloopcount){\textcolor{\b@ck}{%
             \begin{rotopo}{45}\kern0.1\res@@diam%
                 \rule{\res@@diam}{\res@@diam}\end{rotopo}%
              \begin{rotopo}{45}\kern3\unit@length%
                  \rule[0.085\res@diam]{0.75\res@diam}{0.85\res@diam}%
              \end{rotopo}}}%
            \put(\h@ten,\the\innerloopcount){\textcolor{\fr@me}{%
              \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"05\hss}}%
              \kern-0.9\res@diam%
              \raisebox{0.55\res@@diam}{%
              \raisebox{0.4\res@diam}%
              {\hbox to 0.9\res@diam{\hss\csname sfdc\font@num\endcsname%
               \textcolor{\f@nt}{X}\hss}}}}%
         \else
            \xdef\first@{box}%
            \ifx\first@\style@c@l
            \ifhelix@
               \advance\innerloopcount by 3
               \put(\h@elvn,\innerloopcount){\kern-0.9\res@@diam\raisebox{-0.9\res@@diam}{%
                  \textcolor{\fr@me}{%
                  \rule[0.05\res@@diam]{1.2\res@@diam}{1.2\res@@diam}}}}%
               \put(\h@elvn,\innerloopcount){\kern-0.8\res@@diam\raisebox{-0.8\res@@diam}{%
                  \textcolor{\b@ck}{%
                  \rule[0.05\res@@diam]{\res@@diam}{\res@@diam}%
                  \kern-\res@@diam\raisebox{0.25\res@@diam}%
                 {\hbox to \res@@diam{\hss\csname sfdc\font@num\endcsname%
                  \textcolor{\f@nt}{X}\hss}}}}}%
               \advance\innerloopcount by -3
            \else
               \put(\h@ten,\the\innerloopcount){\textcolor{\b@ck}{\kern0.11\res@diam%
                        \rule[0.175\res@diam]{0.73\res@diam}{0.85\res@diam}}}%
               \put(\h@ten,\the\innerloopcount){\textcolor{\fr@me}{\kern0.02\res@diam%
               \raisebox{0.175\res@diam}%
              {\hbox to \res@diam{\hss\csname square\font@num\endcsname%
              \char'164\hss}\kern-\res@diam\hbox to \res@diam{%
              \hss\csname square\font@num\endcsname\char'165\hss}}%
              \kern-\res@diam%
              \raisebox{0.6\res@@diam}{%
              \raisebox{0.4\res@diam}%
              {\hbox to \res@diam{\hss\csname sfdc\font@num\endcsname%
               \textcolor{\f@nt}{X}\hss}}}}}%
            \fi
            \fi
         \fi      
      \fi
      \fontfamily{\legend@family}%
      \fontseries{\legend@series}%
      \fontshape{\legend@shape}%
      \selectfont%
      \advance\innerloopcount by 1
      \ifnum\wheel@count=0 \xdef\first@{\h@twen} \else \xdef\first@{\h@fiftn} \fi
      \put(\first@,\the\innerloopcount){\legend@size{\l@text@}}%
      \advance\innerloopcount by -1
     \fi
    \ifnum\loopcount=\shade@num\else\repeat
   \end{picture}%
   \fi
}

\def\detect@change#1#2@{%
   \xdef\change@size{fix}
   \xdef\first@{#1}
   \xdef\second@{+}
   \ifx\first@\second@
      \xdef\change@length{#1#2}
      \xdef\change@size{+}
   \fi
   \xdef\second@{-}
   \ifx\first@\second@
      \xdef\change@length{#1#2}
      \xdef\change@size{-}
   \fi
}

\def\get@sim#1#2@{\xdef\sim@char{#1} \xdef\last@{#2 &@}}
\def\inactivate@chars{%
   \catcode`\#=12
   \catcode`\"=12
   \catcode`\~=12
   \catcode`\^=12
   \catcode`\_=12
   }
\def\cut@name#1.#2@{\global\xdef\file@n@me{#1}}
\def\struc@get#1 #2 #3 #4 #5 #6 #7 #8 #9@{%
    \xdef\first@{#1} \xdef\second@{#2} \xdef\third@{#3}  \xdef\fourth@{#4}
    \xdef\fifth@{#5} \xdef\sixth@{#6}  \xdef\seventh@{#7}\xdef\eighth@{#8}
    \xdef\ninth@{#9}}
\def\comment@get#1 #2 #3 #4 #5@{%
    \xdef\first@{#1} \xdef\second@{#2} \xdef\third@{#3}  \xdef\fourth@{#4}
    \xdef\c@mment{#5@}}
\def\trimm@fifth@#1.#2@{\xdef\fifth@{#1}}
\def\trimm@comment#1. &#2@{\xdef\c@mment{#1}}
\def\trimm@num#1#2@{%
   \ifnum`#1>57 \xdef\first@@{#2} \else \xdef\first@@{#1#2} \fi
}
\def\elim@nonchars#1#2@{%
    \xdef\first@@{#1}
    \ifx\first@@\ampers@nd
    \else
       \ifnum\catcode`#1=11 \xdef\second@{\second@#1} \fi
       \xdef\first@@{#2@}
       \expandafter\elim@nonchars\first@@
    \fi
}   
\def\get@PHD#1|#2|#3@{\xdef\PHD@line{\PHD@line #2}}
\def\get@seq#1|#2|#3@{\xdef\seq@line{\seq@line #2}}
\def\get@swissseq#1@{\xdef\seq@line{\seq@line #1}}
\def\write@@PHDtopo{%
 \expandafter\get@sim\last@
 \ifx\sim@char\c@mp
      \def\end@{\the\innerloopcount}
      \advance\innerloopcount by 1
 \else
      \ifnum\end@<\begin@ \xdef\end@{\begin@}\fi
      \if\c@mp .
      \else
      \if\c@mp L
      \else
      \if\c@mp T
         \loopcount=\first@
         \advance\loopcount by 1
         \xdef\first@{\the\loopcount}
         \immediate\write\feature@file{\string\MRs{\begin@..\end@}}
      \else
      \if\c@mp i
         \loopcount=\second@
         \advance\loopcount by 1
         \xdef\second@{\the\loopcount}
         \ifnum\loopcount=1
            \immediate\write\feature@file{\string\Nterm{intra}}
         \fi
      \else
      \if\c@mp o
         \loopcount=\second@
         \advance\loopcount by 1
         \xdef\second@{\the\loopcount}
         \ifnum\loopcount=1
            \immediate\write\feature@file{\string\Nterm{extra}}
         \fi
      \fi\fi\fi\fi\fi
      \xdef\c@mp{\sim@char}
      \advance\innerloopcount by 1
      \xdef\begin@{\the\innerloopcount}
 \fi
 \ifx\sim@char\ampers@nd\else\write@@PHDtopo\fi
}
\def\include@@PHD{%
  \xdef\first@{\optionphd}
  \xdef\structurefilename{\filenamephd}
  \bgroup
   \xdef\file@n@me{\structurefilename .@}
   \expandafter\cut@name\file@n@me
   \xdef\temp@{\file@n@me .tpo}
   \immediate\openin\structure@file = \temp@\relax
   \ifeof\structure@file \xdef\first@{make new} \fi
   \immediate\closein\structure@file
   \xdef\temp@{make new}
   \ifx\first@\temp@
    \def\par{}
    \xdef\PHD@line{}
    \xdef\seq@line{}
    \inactivate@chars
    \immediate\openin\structure@file=\structurefilename\relax
    \ifeof\structure@file
      \PackageError{TeXtopo}%
      {File `\structurefilename' not found}%
      {\MessageBreak
       The `PHD' file you specified is missing or you have \MessageBreak
       misspelled it. \MessageBreak\MessageBreak
       No topology will be displayed. \MessageBreak
       Type <return> to proceed. \MessageBreak
       Type X <return> to quit. \MessageBreak
}
       \immediate\closein\structure@file\egroup
    \else
    \message{[\structurefilename] ->}
    \xdef\temp@{PHDhtm}
    \loop
       \read\structure@file to \readline
       \xdef\structureline{\readline & & & & & & & & &@}
       \expandafter\struc@get\structureline
    \ifx\temp@\first@ \else\repeat
    \loop
       \read\structure@file to \readline
       \xdef\structureline{\readline & & & & & & & & &@}
       \expandafter\struc@get\structureline
       \xdef\temp@{AA}
       \ifx\temp@\first@
          \xdef\second@{\second@ @}
          \expandafter\get@seq\second@
       \fi
       \xdef\temp@{PHDThtm}
       \ifx\temp@\first@
          \xdef\second@{\second@ @}
          \expandafter\get@PHD\second@
       \fi
    \ifeof\structure@file \else\repeat
    \closein\structure@file
    \xdef\c@mp{+}
    \xdef\begin@{1}
    \xdef\end@{1}
    \innerloopcount=0
    \xdef\first@{0} \xdef\second@{0} \xdef\third@{0}
    \xdef\fourth@{0} \xdef\fifth@{0} \xdef\sixth@{0}
    \xdef\last@{\PHD@line &@}
    \xdef\file@n@me{\file@n@me .tpo}
    \immediate\openout\feature@file = \file@n@me\relax
    \immediate\write\feature@file{\string\sequence{\seq@line}}
    \write@@PHDtopo
    \immediate\closeout\feature@file
    \egroup
    \input{\file@n@me}
   \fi
   \else
    \egroup
    \xdef\temp@{ignore}
    \ifx\temp@\first@
    \else
       \message{using existing file:}
       \xdef\file@n@me{\file@n@me .tpo}
       \input{\file@n@me}
    \fi
   \fi}

\def\include@@HMMTOP{%
 \def\get@HMMTOP@TMs##1-##2 ##3@{%
     \immediate\write\feature@file{\string\MRs{##1..##2}}
     \xdef\structureline{##3 @}
  }
  \def\get@HMMTOP{%
     \ifnum\temp@count<\fifth@
        \advance\temp@count by 1
        \expandafter\get@HMMTOP@TMs\structureline
        \get@HMMTOP
     \fi
  }  
  \def\rem@ve@TM@info Transmembrane helices: ##1@{%
     \xdef\structureline{##1 @}
     \temp@count=0
     \get@HMMTOP
  }
  \xdef\first@{\optionHMMTOP}
  \xdef\structurefilename{\filenameHMMTOP}
  \bgroup
   \xdef\file@n@me{\structurefilename .@}
   \expandafter\cut@name\file@n@me
   \xdef\temp@{\file@n@me .htp}
   \immediate\openin\structure@file = \temp@\relax
   \ifeof\structure@file \xdef\first@{make new} \fi
   \immediate\closein\structure@file
   \xdef\temp@{make new}
   \ifx\first@\temp@
    \def\par{}
    \xdef\HMMTOP@line{}
    \xdef\seq@line{}
    \inactivate@chars
    \immediate\openin\structure@file = \structurefilename\relax
    \ifeof\structure@file
      \PackageError{TeXtopo}
      {File `\structurefilename' not found}
      {\MessageBreak
       The `HMMTOP' file you specified is missing or you have \MessageBreak
       misspelled it. \MessageBreak\MessageBreak
       No topology will be displayed. \MessageBreak
       Type <return> to proceed. \MessageBreak
       Type X <return> to quit. \MessageBreak
}
       \immediate\closein\structure@file\egroup
    \else
    \message{[\structurefilename] ->}
    \xdef\temp@{\file@n@me .htp}
    \immediate\openout\feature@file = \temp@\relax
    \xdef\@HP{>HP:} \xdef\first@@{n} \xdef\second@@{n}
    \loop
       \read\structure@file to \readline
       \xdef\temp@{\expandafter\string\readline}
       \ifx\temp@\par@
       \else
          \xdef\structureline{\readline & & & & & & & & &@}
          \expandafter\struc@get\structureline
          \ifx\first@\@HP
             \PackageError{TeXtopo}
             {Wrong HMMTOP file format in `\structurefilename'}
             {\MessageBreak
              This `HMMTOP' file is in the single line format. \MessageBreak
              Such files do not contain sequence data.  \MessageBreak\MessageBreak
              No topology will be displayed. \MessageBreak
              Type <return> to proceed. \MessageBreak
              Type X <return> to quit. \MessageBreak
}
              \immediate\closein\structure@file\egroup
	      \else
	      \xdef\temp@{Protein:}
	      \ifx\first@\temp@
	       \ifx\first@@\y@
	         \xdef\second@@{y}
	       \else
	         \xdef\first@@{y}
             \read\structure@file to \readline
             \read\structure@file to \readline
             \xdef\structureline{\readline & & & & & & & & &@}
             \expandafter\struc@get\structureline
             \xdef\temp@{IN}
             \ifx\temp@\second@
                \immediate\write\feature@file{\string\Nterm{intra}}
             \else
                \immediate\write\feature@file{\string\Nterm{extra}}
             \fi
             \read\structure@file to \readline
             \xdef\structureline{\readline & & & & & & & & &@}
             \expandafter\struc@get\structureline
             \read\structure@file to \readline
             \xdef\structureline{\readline @}
             \expandafter\rem@ve@TM@info\structureline
	       \fi
	      \else
	      \xdef\temp@{seq}
	      \ifx\first@\temp@
	        \ifx\second@@\y@
	        \else
	         \xdef\seq@line{\seq@line\second@\third@\fourth@\fifth@\sixth@}
	        \fi
	      \fi
	      \fi
          \fi
       \fi
    \ifeof\structure@file \else\repeat
    \closein\structure@file
    \immediate\write\feature@file{\string\sequence{\seq@line}}
    \immediate\closeout\feature@file
    \egroup
    \xdef\file@n@me{\file@n@me .htp}
    \input{\file@n@me}
   \fi
   \else
    \egroup
    \xdef\temp@{ignore}
    \ifx\temp@\first@
    \else
       \message{using existing file:}
       \xdef\file@n@me{\file@n@me .htp}
       \input{\file@n@me}
    \fi
   \fi
 }

\def\include@@swiss{%
  \xdef\first@{\optionswiss}
  \xdef\structurefilename{\filenameswiss}
  \bgroup
   \xdef\file@n@me{\structurefilename .@}
   \expandafter\cut@name\file@n@me
   \xdef\temp@{\file@n@me .swp}
   \immediate\openin\structure@file = \temp@\relax
   \ifeof\structure@file \xdef\first@{make new} \fi
   \immediate\closein\structure@file
   \xdef\temp@{make new}
   \ifx\first@\temp@
    \def\par{}
    \xdef\seq@line{}
    \inactivate@chars
    \immediate\openin\structure@file=\structurefilename\relax
    \ifeof\structure@file
      \PackageError{TeXtopo}%
      {File `\structurefilename' not found}%
      {\MessageBreak
       The `SwissProt' file you specified is missing or you have \MessageBreak
       misspelled it. \MessageBreak\MessageBreak
       No topology will be displayed. \MessageBreak
       Type <return> to proceed. \MessageBreak
       Type X <return> to quit. \MessageBreak
}
       \immediate\closein\structure@file\egroup
    \else
    \xdef\file@n@me{\file@n@me .swp}
    \immediate\openout\feature@file = \file@n@me\relax
    \message{[\structurefilename] ->}
    \xdef\temp@{SQ} \xdef\temp@@{FT}
    \loop
       \read\structure@file to \readline
       \xdef\comment@line{\readline & & & & & & & & &@}
       \expandafter\struc@get\comment@line
       \xdef\comment@line{\readline & & & & &. &@}
       \expandafter\comment@get\comment@line
       \ifx\temp@@\first@
          \xdef\first@@{\second@ &@} \xdef\second@{}
          \expandafter\elim@nonchars\first@@
          \xdef\fifth@{\fifth@.@}
          \expandafter\trimm@fifth@\fifth@ 
          \ifx\fifth@\ampers@nd
             \xdef\c@mment{&}
          \else
             \expandafter\trimm@comment\c@mment
          \fi
          \xdef\first@@{\third@ @} 
          \expandafter\trimm@num\first@@ \xdef\third@{\first@@}
          \xdef\first@@{\fourth@ @} 
          \expandafter\trimm@num\first@@ \xdef\fourth@{\first@@}
          \xdef\first@@{CONFLICT}
          \ifx\first@@\second@       
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{CONFLICT}{\c@mment}}
          \else
          \xdef\first@@{VARIANT}
          \ifx\first@@\second@       
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{VARIANT}{\c@mment}}
          \else
          \xdef\first@@{VARSPLIC}
          \ifx\first@@\second@       
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{VARSPLIC}{\c@mment}}
          \else
          \xdef\first@@{MUTAGEN}
          \ifx\first@@\second@       
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{MUTAGEN}{\c@mment}}
          \else
          \xdef\first@@{MODRES}
          \ifx\first@@\second@
             \ifnum\third@=1 
               \immediate\write\feature@file{\string\hideNterm}
             \fi
             \xdef\first@@{ACETYLATION}
             \ifx\fifth@\first@@ 
                \immediate\write\feature@file%
                  {\string\labelregion{\third@..\fourth@}%
                  {noshade}{box[Black,Orange]:CH$_3$COO}}
             \else
             \xdef\first@@{AMIDATION}
             \ifx\fifth@\first@@ 
                \immediate\write\feature@file%
                  {\string\labelregion{\third@..\fourth@}%
                  {noshade}{box[Black,Green]:NH$_2$}}
             \else
             \xdef\first@@{BLOCKED}
             \ifx\fifth@\first@@ 
                \immediate\write\feature@file%
                  {\string\labelregion{\third@..\fourth@}%
                  {noshade}{box[Black,Red]:Blocked}}
                \ifnum\third@>1 
                   \immediate\write\feature@file{\string\hideCterm}
                \fi
             \else
             \xdef\first@@{FORMYLATION}
             \ifx\fifth@\first@@ 
                \immediate\write\feature@file%
                  {\string\labelregion{\third@..\fourth@}%
                  {noshade}{box[Black,Brown]:H$_2$COO[White]}}
             \else
             \xdef\first@@{GAMMA-CARBOXYGLUTAMIC}
             \ifx\fifth@\first@@ 
                \immediate\write\feature@file%
                  {\string\labelregion{\third@..\fourth@}%
                  {noshade}{box[Black,Salmon]:$\gamma$-Glu}}
             \else
             \xdef\first@@{HYDROXYLATION}
             \ifx\fifth@\first@@ 
                \immediate\write\feature@file%
                  {\string\labelregion{\third@..\fourth@}%
                  {noshade}{box[Black,Blue]:OH[White]}}
             \else
             \xdef\first@@{METHYLATION}
             \ifx\fifth@\first@@ 
                \immediate\write\feature@file%
                  {\string\labelregion{\third@..\fourth@}%
                  {noshade}{box[Black]:CH$_3$[White]}}
             \else
             \xdef\first@@{PHOSPHORYLATION}
             \ifx\fifth@\first@@ 
                \immediate\write\feature@file{\string\phosphorylation{\third@}}
             \else
             \xdef\first@@{PYRROLIDONE}
             \ifx\fifth@\first@@ 
                \immediate\write\feature@file%
                  {\string\labelregion{\third@..\fourth@}%
                  {noshade}{box[Black,Aquamarine]:Pyrrolidone-Glu}}
                \immediate\write\feature@file{\string\hideNterm}
             \else
             \xdef\first@@{SULFATATION}
             \ifx\fifth@\first@@ 
                \immediate\write\feature@file%
                  {\string\labelregion{\third@..\fourth@}%
                  {noshade}{box[Black,Yellow]:SO$_4$\kern-2ex$^-$}}
             \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
          \else
          \xdef\first@@{LIPID}
          \ifx\first@@\second@
             \immediate\write\feature@file{\string\anchor{\third@}}
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\third@}{noshade}{\c@mment}}
             \xdef\first@@{GPI-ANCHOR}
             \immediate\write\feature@file{\string\hideCterm}
          \else
          \xdef\first@@{DISULFID}
          \ifx\second@\first@@ 
            \ifnum\third@=\fourth@
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\third@}%
               {noshade}{box[Black,GreenYellow]:SS\ \c@mment}}        
            \else
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\third@}%
               {noshade}{box[Black,GreenYellow]:SS$\rightarrow$\fourth@}}
             \immediate\write\feature@file%
               {\string\labelregion{\fourth@..\fourth@}%
               {noshade}{box[Black,GreenYellow]:SS$\rightarrow$\third@}}
            \fi
          \else
          \xdef\first@@{THIOLEST}
          \ifx\second@\first@@ 
            \ifnum\third@=\fourth@
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\third@}%
               {noshade}{box[Black,GreenYellow]:Thiolester\ \c@mment}}        
            \else
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\third@}%
               {noshade}{box[Black,GreenYellow]:Thiolester$\rightarrow$\fourth@}}
             \immediate\write\feature@file%
               {\string\labelregion{\fourth@..\fourth@}%
               {noshade}{box[Black,GreenYellow]:Thiolester$\rightarrow$\third@}}
            \fi
          \else
          \xdef\first@@{THIOETH}
          \ifx\second@\first@@ 
            \ifnum\third@=\fourth@
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\third@}%
               {noshade}{box[Black,GreenYellow]:Thiolether\ \c@mment}}        
            \else
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\third@}%
               {noshade}{box[Black,GreenYellow]:Thiolether$\rightarrow$\fourth@}}
             \immediate\write\feature@file%
               {\string\labelregion{\fourth@..\fourth@}%
               {noshade}{box[Black,GreenYellow]:Thiolether$\rightarrow$\third@}}
            \fi
          \else
          \xdef\first@@{CARBOHYD}
          \ifx\first@@\second@
             \immediate\write\feature@file{\string\glycosylation{\third@}}
          \else
          \xdef\first@@{METAL}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{noshade}{\c@mment}}
          \else
          \xdef\first@@{BINDING}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{noshade}{\c@mment}}
          \else
          \xdef\first@@{SIGNAL}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{SIGNAL}{\c@mment}}
          \else
          \xdef\first@@{TRANSIT}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{TRANSIT}{\c@mment}}
          \else
          \xdef\first@@{PROPEP}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{PROPEP}{\c@mment}}
          \else
          \xdef\first@@{CHAIN}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{CHAIN}{\c@mment}}
          \else
          \xdef\first@@{PEPTIDE}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{PEPTIDE}{\c@mment}}
          \else
          \xdef\first@@{DOMAIN}
          \ifx\first@@\second@
             \ifnum\third@=1
                \xdef\first@@{EXTRACELLULAR}
                \ifx\first@@\fifth@
                   \immediate\write\feature@file{\string\Nterm{extra}}
                \else
                   \immediate\write\feature@file{\string\Nterm{intra}}
                \fi
             \fi
             \xdef\first@@{EXTRACELLULAR}
             \ifx\first@@\fifth@
             \else
             \xdef\first@@{CYTOPLASMIC}
             \ifx\first@@\fifth@
             \else
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{DOMAIN}{\c@mment}}            
             \fi\fi
          \else
          \xdef\first@@{CABIND}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{CABIND}{\c@mment}}
          \else
          \xdef\first@@{DNABIND}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{DNABIND}{\c@mment}}
          \else
          \xdef\first@@{NPBIND}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{NPBIND}{\c@mment}}
          \else
          \xdef\first@@{TRANSMEM}
          \ifx\first@@\second@
             \immediate\write\feature@file{\string\MRs{\third@..\fourth@}}
          \else
          \xdef\first@@{ZNFING}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{ZNFING}{\c@mment}}
          \else
          \xdef\first@@{SIMILAR}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{SIMILAR}{\c@mment}}
          \else
          \xdef\first@@{REPEAT}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{REPEAT}{\c@mment}}
          \else
          \xdef\first@@{SITE}
          \ifx\second@\first@@ 
             \immediate\write\feature@file%
               {\string\labelregion{\third@..\fourth@}{SITE}{\c@mment}}
          \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
          \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
       \fi
    \ifx\temp@\first@ \else\repeat
    \loop
       \read\structure@file to \readline
       \xdef\structureline{\readline & & & & & & & & &@}
       \expandafter\struc@get\structureline
       \xdef\temp@{//}
       \ifx\temp@\first@
       \else
          \ifx\first@\ampers@nd
          \else
          \xdef\seq@line{\seq@line\first@}
          \ifx\second@\ampers@nd
          \else
          \xdef\seq@line{\seq@line\second@}
          \ifx\third@\ampers@nd
          \else
          \xdef\seq@line{\seq@line\third@}
          \ifx\fourth@\ampers@nd
          \else
          \xdef\seq@line{\seq@line\fourth@}
          \ifx\fifth@\ampers@nd
          \else
          \xdef\seq@line{\seq@line\fifth@}
          \ifx\sixth@\ampers@nd
          \else
          \xdef\seq@line{\seq@line\sixth@}
          \ifx\seventh@\ampers@nd
          \else
          \xdef\seq@line{\seq@line\seventh@}
          \ifx\eighth@\ampers@nd
          \else
          \xdef\seq@line{\seq@line\eighth@}
          \ifx\ninth@\ampers@nd
          \else
          \xdef\seq@line{\seq@line\ninth@}
          \fi\fi\fi\fi\fi\fi\fi\fi\fi
       \fi
    \ifeof\structure@file \else\repeat
    \closein\structure@file
    \immediate\write\feature@file{\string\sequence{\seq@line}}
    \immediate\closeout\feature@file
    \egroup
    \input{\file@n@me}
    \fi
   \else
    \egroup
    \xdef\temp@{ignore}
    \ifx\temp@\first@
    \else
       \message{using existing file:}
       \xdef\file@n@me{\file@n@me .swp}
       \input{\file@n@me}
    \fi
   \fi}

\def\check@letter#1#2@{\letterfalse \ifnum\catcode`#1=11 \lettertrue \fi}
\def\seq@get#1 #2@{\def\first@{#1} \def\seq@line{#2}}

\def\readseq@loop{%
    \read\in@file to \readline
    \xdef\last@{\expandafter\string\readline}
    \ifx\last@\par@
      \else
         \xdef\readline{\readline @}
         \expandafter\seq@get\readline
         \ifx\sequence@name\first@ \xdef\sequence@{\sequence@\seq@line} \fi
       \fi
    \ifeof\in@file \else \readseq@loop \fi}
   
\def\get@item#1,#2@{\xdef\first@{#2@}\xdef\first@@{#2}\xdef\fourth@{#1}}
  
\def\get@@digit#1,#2@{%
   \def\check@series##1-##2##3@{%
                    \xdef\first@@{##2}\xdef\fourth@@{##1}\xdef\fifth@@{##3}}
   \xdef\fourth@@@{#1}
   \xdef\first@{#2@}
   \xdef\fourth@@{#1-*@}
   \expandafter\check@series\fourth@@
   \ifx\first@@\st@r
   \else
      \loopcount=\fourth@@
      \ifx\first@\amp@com@t
         \xdef\l@color{@}
      \else
         \xdef\last@{\first@@\fifth@@[@]&}\expandafter\opt@col\last@
         \xdef\first@@{\fourth@}
      \fi
      \ifx\l@color\@t
         \xdef\fourth@{}
      \else
	 \xdef\fourth@{[\l@color]}
      \fi
      \ifnum\first@@>\fourth@@
         \advance\loopcount by 1
         \xdef\first@{\the\loopcount-\first@@\fourth@,#2@}
      \else
         \ifnum\first@@<\fourth@@
            \advance\loopcount by -1
            \xdef\first@{\the\loopcount-\first@@\fourth@,#2@}
	 \fi
      \fi
   \fi
}
  
\def\analyze@TM@stack{%
   \expandafter\get@@digit\first@
   \ifx\first@@\st@r
   \else
      \xdef\TM@stack{\TM@stack,\fourth@@\fourth@}
      \analyze@TM@stack
   \fi
   \ifx\fourth@@@\ampers@nd
   \else
      \xdef\TM@stack{\TM@stack,\fourth@@@}
      \analyze@TM@stack
   \fi
}

\def\do@wheel{%
   \expandafter\get@TMnum\TM@stack
   \xdef\first@{\TM@num[@]&}%
   \expandafter\opt@col\first@
   \xdef\TM@num{\fourth@}%
   \ifx\l@color\@t\xdef\angle@{0}\else\xdef\angle@{\l@color}\fi
   \ifx\TM@num\ampers@nd
      \message{)}%
      \ifx\wheel@active\y@
         \end{picture}
      \fi
      \newline\hbox{}\vspace{\vspace@@legend}%
      \newline\hbox{}\vspace{-2\baselineskip}%
      \setbox1=\hbox{\bsymD\char"0E}
      \global\setlength\unit@length{0.154\wd1}%
      \global\setlength\res@@diam{0.5\wd1}%
      \unitlength\unit@length
   \else
      \ifnum\wheel@count=1
         \noindent\newline\hbox{}%
         \begin{picture}(\x@max,\y@max)
         \xdef\wheel@active{y}%
      \fi
         \message{.}%
         \helical@wheel%
         \ifinsert@ \do@insert \fi
         \advance\wheel@count by 1
         \ifnum\wheel@count>\wheels@line 
            \end{picture}%
            \wheel@count=1
	    \if@net
	       \x@offset=-35
	       \y@offset=5
	    \else
               \x@offset=\an@kat
               \multiply\x@offset by 2
               \divide\x@offset by 3
               \y@offset=\x@offset  
               \advance\x@offset by -\y@max
               \advance\y@offset by 0
	    \fi
            \xdef\wheel@active{n}%
         \fi
      \xdef\seq@length{\sl@}%
      \xdef\sequence@{\seq@}%
      \xdef\lst@ck{\lst@ck@}%
      \ifshade\xdef\constopo@{\top@}\fi
      \if@net
         \advance\x@offset by 40
      \else
         \advance\x@offset by \y@max
      \fi
      \pos@count=0
      \do@wheel%
   \fi
}
    
\def\helical@wheel{%
 \ifnum\angle@>360
   \message{<Ignoring angle \angle@ in \noexpand\helicalwheel (no rotation)>}
   \xdef\angle@{0}
 \fi
 \ifnum\angle@<-360
   \message{<Ignoring angle \angle@ in \noexpand\helicalwheel (no rotation)>}
   \xdef\angle@{0}
 \fi
 \xdef\M@@stack{\M@stack}
 \loopcount=0
 \loop
    \advance\loopcount by 1
    \expandafter\get@@fromstack\M@stack
    \xdef\st@rt{\first@} \xdef\st@p{\second@}
    \xdef\M@stack{\last@}
 \ifnum\loopcount=\TM@num\else\repeat
 \xdef\M@stack{\M@@stack}
 \ifnum\st@rt=\st@p
 \else
 \ifnum\st@p>\seq@length \xdef\st@p{\seq@length} \fi
   \xdef\seq@length{\st@p}
   \loopcount=\st@p
   \advance\loopcount by -\st@rt
   \xdef\st@p@@{\the\loopcount}
   \advance\loopcount by 1
   \xdef\st@p@{\the\loopcount}
   \ifnum\st@p@>36
   \message{<Length of \noexpand\helicalwheel > 36 aa (no wheel)>}   
   \else
   \global\helix@true
      \ifx\l@@k\intr@
         \ifx\current@pos\intr@
         \else
            \xdef\current@pos{intra}
         \fi
      \else
         \ifx\current@pos\intr@
            \xdef\current@pos{extra}
         \fi
      \fi
      \if@net
         \loopcount=1
         \ifnum\st@rt>1
         \do@itfalse
         \loop
            \advance\loopcount by 1
            \put@res{1}{1}
         \ifnum\loopcount=\st@rt\else\repeat
         \fi
         \loop
            \expandafter\get@aa\sequence@
            \xdef\TM@seq{\TM@seq\ch@r}
            \ifshade 
	       \expandafter\get@col\constopo@ 
	       \xdef\TM@shade{\TM@shade\col@num}
	    \fi
            \advance\loopcount by 1
         \ifnum\loopcount>\st@p\else\repeat
         \xdef\sequence@{\TM@seq &@}
         \ifshade
            \xdef\constopo@{\TM@shade @}
         \fi
         \xdef\TM@seq{}
         \xdef\TM@shade{}
         \xdef\temp@{D}
         \xdef\font@num{\temp@}
         \setbox1=\hbox{\csname bsym\temp@\endcsname\char"0F}
         \res@@diam=\wd1 \divide\res@@diam by 2 
         \loopcount=\st@rt
         \pos@@count=\loopcount
         \advance\loopcount by -1
         \x@pos=\x@offset \y@pos=\y@offset
	 \ifnum\angle@=0\relax \xdef\angle@{4} \fi
	 \temp@@count=\angle@\relax
	 \ifnum\temp@@count>3
	    \advance\temp@@count by -4
	    \multiply\temp@@count by 8
	 \else
	    \advance\temp@@count by -1
	    \multiply\temp@@count by 8
	    \advance\temp@@count by 4
	 \fi
	 \xdef\off@set{\the\temp@@count}
	 \advance\x@pos by \off@set
         \do@ittrue
	 \ifnum\angle@=3
	 \else
         \ifnum\angle@=7
         \else
         \put(\x@pos,\y@pos){\textcolor{Black}{%
                             \begin{rotopo}{14}%
		             \kern1.3\res@diam%
                             \rule{2.5\res@@diam}{1.3pt}%
			     \end{rotopo}}}
	 \fi\fi
	 \put@res{\x@pos}{\y@pos}
         \ifwheel@numbers
            \put(\x@pos,\y@pos){\raisebox{-1.3\res@@diam}{%
		     \tiny\textsf{\textcolor{\c@untc@l}{%
		     \hbox to 0pt{\hss\the\pos@@count\hss}}}}}
         \fi
         \temp@@count=\angle@\relax
	 \xdef\angle@{4}
         \ifnum\temp@@count<1 \temp@@count=1 \fi
         \ifnum\temp@@count>7 \temp@@count=1 \fi
         \advance\temp@@count by 1
         \loop
            \advance\loopcount by 1
            \advance\pos@@count by 1
         \ifnum\loopcount=\st@p
         \else
            \ifnum\temp@@count=8
               \temp@@count=1
	       \advance\x@pos by -20
	       \advance\y@pos by 3
            \else
               \ifnum\temp@@count=4
	          \advance\x@pos by -20
	          \advance\y@pos by 3
               \else
	          \advance\x@pos by 8
	          \advance\y@pos by 2
               \fi
            \fi
	    \advance\loopcount by 1
	    \ifnum\loopcount=\st@p
	    \else
	    \ifnum\temp@@count=3
	    \else
	    \ifnum\temp@@count=7
	    \else
               \put(\x@pos,\y@pos){\textcolor{Black}{%
                             \begin{rotopo}{14}%
		             \kern1.3\res@diam%
                             \rule{2.5\res@@diam}{1.3pt}%
			     \end{rotopo}}}
	    \fi
            \fi
            \fi
	    \put@res{\x@pos}{\y@pos}
            \ifwheel@numbers
               \put(\x@pos,\y@pos){\raisebox{-1.3\res@@diam}{%
		        \tiny\textsf{\textcolor{\c@untc@l}{%
		        \hbox to 0pt{\hss\the\pos@@count\hss}}}}}
  	    \fi
	    \advance\loopcount by -1
            \advance\temp@@count by 1
         \repeat
         \ifTM@label
           \bgroup
               \fontfamily{\TMlabel@family}
               \fontseries{\TMlabel@series}
               \fontshape{\TMlabel@shape}
               \selectfont
               \loopcount=\TM@num
	       \x@pos=\x@offset
	       \advance\x@pos by \off@set
               \put(\x@pos,\y@offset){\kern-3\res@@diam
	                    \raisebox{-\res@@diam}{
	                    \hbox to 0pt {\TMlabel@size\textcolor{\TMc@l}%
                           {\hss\TM@labeltext\hss}}}}
         \egroup
         \fi
      \else
      \ifmu@H
         \xdef\b@ck@{n}
         \ifodd\TM@num
            \ifx\current@pos\intr@ \else \xdef\b@ck@{y} \fi
	 \else
            \ifx\current@pos\intr@ \xdef\b@ck@{y} \fi
         \fi	    
         \ifx\b@ck@\y@
            \x@pos=100
	    \multiply\x@pos by \st@p@@
	    \advance\x@pos by -\csname mudelta\TM@num\endcsname  
	 \else
	    \x@pos=\csname mudelta\TM@num\endcsname
	 \fi
     \if@helix@pers      %%%  How to rotate flat wheels correctly?
     \else               %%%
%        \xdef\angle@{0}  %%%
     \fi                 %%%
	 \advance\x@pos by 130
	 \multiply\x@pos by -1
	 \advance\x@pos by \angle@
	 \y@pos=\x@pos 
	 \divide\y@pos by 360 \multiply\y@pos by 360
	 \advance\x@pos by -\y@pos
	 \xdef\mu@angle{\the\x@pos}
         \x@pos=\x@offset \y@pos=\y@offset
         \advance\x@pos by \gegen@kat
         \advance\y@pos by \gegen@kat
         \advance\y@pos by 2
         \expandafter\sqrt@\csname <muH>\TM@num\endcsname
         \temp@@count=\r@@t
         \multiply\temp@@count by 14
         \ifnum\temp@@count<14000 \temp@@count=14000 \fi
         \temp@length=1sp
         \multiply\temp@length by \temp@@count
         \temp@length6.5536\temp@length
         \xdef\first@{\the\temp@length}
         \temp@length-0.92\temp@length
         \xdef\second@{\the\temp@length}
	 \if@helix@pers
            \temp@length=45mm
	 \else
	    \temp@length=52mm
	 \fi
         \setlength\temp@length{0.01\temp@length}
         \setlength\temp@length{\scale@factor\temp@length}
         \setlength\temp@length{0.01\temp@length}	 
         \setlength\temp@length{\m@mentlength\temp@length}
         \put(\x@pos,\y@pos){\textcolor{\moment@color}{%
                             \begin{rotopo}{\mu@angle}%
                             \rule{\temp@length}{0.5pt}%
                             \begin{rotopo}{45}%
                             \rule[\second@]{\first@}{\first@}%
                             \end{rotopo}\end{rotopo}}}
 
      \fi
      \temp@length=60mm
      \temp@@count=60
      \setlength\temp@length{0.01\temp@length}
      \setlength\temp@length{\scale@factor\temp@length}
      \multiply\temp@@count by \scale@factor
      \divide\temp@@count by 100
      \bond@thickness=1.5pt
      \innerloopcount=90
      \advance\innerloopcount by \angle@
      \ifnum\innerloopcount>360\advance\innerloopcount by -360\fi
      \ifnum\innerloopcount<0\advance\innerloopcount by 360\fi
      \loopcount=40
      \advance\loopcount by -\angle@
      \ifnum\loopcount<0\advance\loopcount by 360\fi
      \x@pos=\x@offset \y@pos=\y@offset
      \sin@{\the\loopcount}
      \if@helix@pers
         \multiply\sincos by \hyp@
      \else
         \multiply\sincos by \hyp@flat
      \fi
      \divide\sincos by 10000
      \advance\x@pos by -\sincos
      \advance\x@pos by \gegen@kat
      \cos@{\the\loopcount}
      \if@helix@pers
         \multiply\sincos by \hyp@
      \else
         \multiply\sincos by \hyp@flat
      \fi
      \divide\sincos by 10000
      \advance\y@pos by -\sincos
      \advance\y@pos by \an@kat
      \if@helix@pers
      \else
         \advance\temp@length by -1mm
         \advance\temp@@count by -1
      \fi
      \loopcount=0
      \loop
         \advance\loopcount by 1
	 \if@helix@pers
            \advance\bond@thickness by -0.05pt
	    \ifdim\bond@thickness < 0.2pt
	       \bond@thickness = 0.2pt
	    \fi
	 \else
	    \bond@thickness=0.8pt
	 \fi
         \ifx\show@bonds\y@
         \put(\x@pos,\y@pos){%
            \begin{rotopo}{\the\innerloopcount}%
                \rule{\temp@length}{\bond@thickness}%
            \end{rotopo}}
         \fi
         \sin@{\the\innerloopcount}
         \multiply\sincos by \temp@@count
         \divide\sincos by 10000
         \advance\y@pos by \sincos
         \cos@{\the\innerloopcount}
         \multiply\sincos by \temp@@count
         \divide\sincos by 10000
         \advance\x@pos by \sincos
	 \if@helix@pers
            \advance\temp@length by -1mm
            \advance\temp@@count by -1
	 \fi
         \advance\innerloopcount by -100
         \ifnum\innerloopcount<0\advance\innerloopcount by 360\fi
      \ifnum\loopcount=\st@p@@\else\repeat
      \advance\temp@length by 1mm
      \advance\temp@@count by 1
      \advance\innerloopcount by -80
      \loopcount=1
      \ifnum\st@rt>1
      \do@itfalse
      \loop
         \advance\loopcount by 1
         \put@res{1}{1}
      \ifnum\loopcount=\st@rt\else\repeat
      \fi
      \xdef\b@ck@{n}
      \loop
         \expandafter\get@aa\sequence@
         \ifshade \expandafter\get@col\constopo@ \fi
         \ifodd\TM@num
            \ifx\current@pos\intr@
               \xdef\TM@seq{\ch@r\TM@seq}
               \ifshade \xdef\TM@shade{\col@num\TM@shade} \fi
            \else   
               \xdef\TM@seq{\TM@seq\ch@r}
               \ifshade \xdef\TM@shade{\TM@shade\col@num} \fi
               \xdef\b@ck@{y}
            \fi
         \else
            \ifx\current@pos\intr@
               \xdef\TM@seq{\TM@seq\ch@r}
               \ifshade \xdef\TM@shade{\TM@shade\col@num} \fi
               \xdef\b@ck@{y}
            \else   
               \xdef\TM@seq{\ch@r\TM@seq}           
               \ifshade \xdef\TM@shade{\col@num\TM@shade} \fi
            \fi  
         \fi
         \advance\loopcount by 1
      \ifnum\loopcount>\st@p\else\repeat
      \xdef\sequence@{\TM@seq &@}
      \ifshade
         \xdef\constopo@{\TM@shade @}
      \fi
      \ifx\b@ck@\y@
      \else
         \xdef\tmpstack{}
         \xdef\l@st{\lst@ck@}
         \reverse@lstack
         \xdef\lst@ck{\tmpstack&;&;&;&;&;&;&;@}
         \getregion@fromlstack
      \fi
      \xdef\TM@seq{}
      \xdef\TM@shade{}
      \ifx\b@ck@\y@
         \pos@@count=\st@rt
      \else
         \pos@@count=\st@p
      \fi
      \loopcount=\st@p@
      \do@ittrue
      \if@helix@pers
        \loop
         \iloopcount=\loopcount
         \advance\iloopcount by -1
         \divide\iloopcount by 4
         \advance\iloopcount by 1
         \ifnum\iloopcount>7 \iloopcount=7 \fi
         \xdef\temp@{\@Alph\iloopcount}
         \xdef\font@num{\temp@}
         \setbox1=\hbox{\csname bsym\temp@\endcsname\char"0F}
         \res@@diam=\wd1 \divide\res@@diam by 2 
         \put@res{\x@pos}{\y@pos}
         \ifwheel@numbers
         \put(\x@pos,\y@pos){\kern0.9\res@@diam \raisebox{-0.2\res@@diam}%
                     {\tiny\textsf{\hss\textcolor{\c@untc@l}%
                     {\the\pos@@count}}}}
         \fi
         \sin@{\the\innerloopcount}
         \multiply\sincos by \temp@@count
         \divide\sincos by 10000
         \advance\y@pos by \sincos
         \cos@{\the\innerloopcount}
         \multiply\sincos by \temp@@count
         \divide\sincos by 10000
         \advance\x@pos by \sincos
         \advance\temp@length by 1mm
         \advance\temp@@count by 1
         \advance\innerloopcount by 100
         \ifnum\innerloopcount>360\advance\innerloopcount by -360\fi
         \ifx\b@ck@\y@
            \advance\pos@@count by 1
         \else
            \advance\pos@@count by -1
         \fi
         \advance\loopcount by -1
        \ifnum\loopcount=0\else\repeat
      \else
        \xdef\font@num{D}
        \setbox1=\hbox{\csname bsymD\endcsname\char"0F}
        \res@@diam=\wd1 \divide\res@@diam by 2 
        \x@pos = 100
        \multiply\x@pos by \loopcount
        \advance\x@pos by 30
        \multiply\x@pos by -1
        \advance\x@pos by \angle@ 
        \y@pos=\x@pos
        \divide\y@pos by 360 \multiply\y@pos by 360
        \advance\x@pos by -\y@pos
        \innerloopcount=\x@pos
        \temp@length=0.35146\wd1
        \sincos = \temp@length 
        \divide\sincos by 65536
        \xdef\temp@@{\the\sincos}
        \temp@@count=60 
        \multiply\temp@@count by \scale@factor
        \divide\temp@@count by 100
        \sin@{40}
        \multiply\sincos by \temp@@count
        \divide\sincos by 10000
        \temp@@count=\sincos
        \ifnum\loopcount>18
           \advance\temp@@count by \temp@@
           \advance\temp@@count by -1
        \fi
        \loop
         \sin@{\the\innerloopcount}
         \multiply\sincos by \temp@@count
         \divide\sincos by 10000
         \y@pos = \sincos
         \advance\y@pos by \y@offset
         \advance\y@pos by \an@kat
         \cos@{\the\innerloopcount}
         \multiply\sincos by \temp@@count
         \divide\sincos by 10000
         \x@pos = \sincos
         \advance\x@pos by \x@offset
         \advance\x@pos by \gegen@kat
         \put@res{\x@pos}{\y@pos}
         \ifwheel@numbers
         \ifnum\innerloopcount<0 \advance\innerloopcount by 360 \fi
           \ifnum\loopcount>18
             \ifnum\innerloopcount<91
               \put(\x@pos,\y@pos){\kern0.8\res@@diam%
                      \raisebox{-0.2\res@@diam}{%
                      \tiny\textsf{\textcolor{\c@untc@l}%
                     {\the\pos@@count\hss}}}}
             \else
               \ifnum\innerloopcount<271
               \put(\x@pos,\y@pos){\kern-0.8\res@@diam% 
	              \raisebox{-0.2\res@@diam}{%
               \hbox to 0pt{%
                      \tiny\textsf{\textcolor{\c@untc@l}%
                     {\hss\the\pos@@count}}}}}
               \else
               \put(\x@pos,\y@pos){\kern0.8\res@@diam%
                      \raisebox{-0.2\res@@diam}{%
                      \tiny\textsf{\textcolor{\c@untc@l}%
                     {\the\pos@@count\hss}}}}
               \fi	    
             \fi
           \else
             \ifnum\innerloopcount<91
                \temp@count=\innerloopcount
                \advance\temp@count by -70
                \divide\temp@count by 20
             \else
               \ifnum\innerloopcount<181
                 \temp@count=\innerloopcount
                 \advance\temp@count by -110
                 \multiply\temp@count by -1
                 \divide\temp@count by 20
               \else
                 \ifnum\innerloopcount<271
                   \temp@count=\innerloopcount
                   \advance\temp@count by -230
                   \multiply\temp@count by -1
                   \divide\temp@count by 20
                 \else
                   \temp@count=\innerloopcount
                   \advance\temp@count by -310
                   \divide\temp@count by 20
             \fi\fi\fi
	    \dimen@=0.25\res@@diam
	    \multiply\dimen@ by \temp@count
	    \advance\dimen@ by -0.08\res@@diam
	    \xdef\off@set{\the\dimen@}
	    \ifnum\innerloopcount<91
               \put(\x@pos,\y@pos){\kern0.8\res@@diam%
                      \raisebox{\off@set}{%
                      \tiny\textsf{\textcolor{\c@untc@l}%
                     {\the\pos@@count\hss}}}}
            \else
  	    \ifnum\innerloopcount<270
               \put(\x@pos,\y@pos){\kern-0.8\res@@diam% 
	              \raisebox{\off@set}{%
		      \hbox to 0pt{%
                      \tiny\textsf{\textcolor{\c@untc@l}%
                     {\hss\the\pos@@count}}}}}
	    \else
               \put(\x@pos,\y@pos){\kern0.8\res@@diam%
	              \raisebox{\off@set}{%
                      \tiny\textsf{\textcolor{\c@untc@l}%
                     {\the\pos@@count\hss}}}}
            \fi
	    \fi
	  \fi
         \fi
         \advance\innerloopcount by 100
         \ifnum\innerloopcount>360\advance\innerloopcount by -360\fi
         \ifx\b@ck@\y@
            \advance\pos@@count by 1
         \else
            \advance\pos@@count by -1
         \fi
         \advance\loopcount by -1
	 \ifnum\loopcount = 18
            \temp@@count=\scale@factor
            \multiply\temp@@count by 60
            \divide\temp@@count by 100
            \sin@{40}
            \multiply\sincos by \temp@@count
            \divide\sincos by 10000
            \temp@@count=\sincos
	 \fi
        \ifnum\loopcount=0\else\repeat
      \fi
      \ifTM@label
        \bgroup
         \fontfamily{\TMlabel@family}
         \fontseries{\TMlabel@series}
         \fontshape{\TMlabel@shape}
         \selectfont
         \x@pos=\x@offset \y@pos=\y@offset
         \advance\x@pos by \gegen@kat
         \advance\y@pos by \gegen@kat
         \advance\y@pos by 1
         \loopcount=\TM@num
         \put(\x@pos,\y@pos){\hbox to 0pt {\TMlabel@size\textcolor{\TMc@l}%
                           {\hss\TM@labeltext\hss}}}
        \egroup
      \fi
      \fi
   \fi
   \fi
}

\def\do@insert{%
   \loopcount=0
   \loop
      \advance\loopcount by 1
      \xdef\first@{\csname ins@n\the\loopcount\endcsname}
      \ifnum\TM@num=\first@
         \xdef\second@{\csname ins@x\the\loopcount\endcsname}
         \xdef\third@{\csname ins@y\the\loopcount\endcsname}
         \def\fourth@{\csname ins@z\the\loopcount\endcsname}
         \x@pos=\y@max\relax \multiply\x@pos by \second@\relax
         \divide\x@pos by 100\relax
	 \advance\x@pos by \x@offset
	 \advance\x@pos by -16
         \y@pos=\y@max\relax \multiply\y@pos by \third@\relax
         \divide\y@pos by 100\relax
         \put(\x@pos,\y@pos){\fourth@}
      \fi
   \ifnum\loopcount=\insert@num\else\repeat
}

\def\do@@insert{%
   \loopcount=0
   \loop
      \advance\loopcount by 1
      \xdef\second@{\csname ins@x\the\loopcount\endcsname}
      \xdef\third@{\csname ins@y\the\loopcount\endcsname}
      \def\fourth@{\csname ins@z\the\loopcount\endcsname}
      \x@pos=\x@max\relax \multiply\x@pos by \second@\relax 
      \divide\x@pos by 100\relax
      \y@pos=\y@max\relax \multiply\y@pos by \third@\relax 
      \divide\y@pos by 100\relax
      \put(\x@pos,\y@pos){\fourth@}
   \ifnum\loopcount=\insert@num\else\repeat
}
   
\def\get@start@stop#1..#2@{\xdef\sec@start{#1}\xdef\sec@stop{#2}}

\def\get@numbers#1/#2@{\x@pos=#1 \y@pos=#2}

\def\exp@nd@element#1,#2@{%
   \xdef\first@{#2}
   \ifx\first@\ampers@nd
      \ifx\l@st@element\y@ 
         \advance\loopcount by -1
	 \ifx\l@color\@t
            \xdef\temp@stack{\temp@stack,\the\loopcount:#1 @}
	 \else
            \xdef\temp@stack{\temp@stack,\the\loopcount:\l@color @}
	 \fi
      \else
         \ifx\l@color\@t
	    \xdef\first@{#1@}
	 \else
	    \xdef\first@{\l@color @}
	 \fi
	 \expandafter\get@numbers\first@
      \fi
   \else
      \ifx\first@element\y@
         \xdef\first@element{n}
         \xdef\first@{#1@}
	 \x@offset=\x@pos
	 \y@offset=\y@pos
	 \expandafter\get@numbers\first@
	 \advance\x@pos by \x@offset
	 \advance\y@pos by \y@offset
         \xdef\temp@stack{\temp@stack,\the\loopcount:\the\x@pos/\the\y@pos}
      \else
         \xdef\temp@stack{\temp@stack,\the\loopcount:#1}
      \fi
      \advance\loopcount by 1
      \xdef\first@{#2@}
      \expandafter\exp@nd@element\first@
   \fi
}

\def\get@three#1:#2(#3)#4@{\xdef\first@{#1} \xdef\second@{#2} \xdef\third@{#3}}

\def\straight@{%
 \ifnum\second@>0
   \temp@count=0
   \xdef\first@{0/0}
   \loop
      \advance\temp@count by 1
   \ifnum\temp@count>\second@ 
      \xdef\first@{\first@,&@}
   \else 
      \xdef\first@{\first@,\third@} \repeat
 \fi
}

\def\helix@{%
 \ifnum\second@>0
   \temp@count=0
   \temp@@count=\third@\relax
   \ifnum\temp@@count<1 \temp@@count=1 \fi
   \ifnum\temp@@count>7 \temp@@count=1 \fi
   \advance\temp@@count by 1
   \xdef\first@{0/0}
   \loop
      \advance\temp@count by 1
   \ifnum\temp@count>\second@
      \xdef\first@{\first@,&@}
   \else
      \ifnum\temp@@count=8
         \temp@@count=1
         \xdef\third@{\first@@}
      \else
         \ifnum\temp@@count=4
            \xdef\third@{\first@@}
         \else
            \xdef\third@{\second@@}
         \fi
      \fi
      \advance\temp@@count by 1
      \xdef\first@{\first@,\third@} 
   \repeat
 \fi 
}

\def\get@element#1,#2@{%
   \xdef\first@{#1[@]&}
   \expandafter\opt@col\first@
   \xdef\first@{\fourth@:&(&)@}
   \expandafter\get@three\first@
   \xdef\last@{up}
   \ifx\first@\last@
      \xdef\first@{\second@ (&)@}
      \expandafter\get@three\first@
      \xdef\second@{\first@}
      \xdef\third@{0/5}
      \straight@
   \else
   \xdef\last@{down}
   \ifx\first@\last@
      \xdef\first@{\second@ (&)@}
      \expandafter\get@three\first@
      \xdef\second@{\first@}
      \xdef\third@{0/-5}
      \straight@
   \else
   \xdef\last@{left}
   \ifx\first@\last@
      \xdef\first@{\second@ (&)@}
      \expandafter\get@three\first@
      \xdef\second@{\first@}
      \xdef\third@{-5/0}
      \straight@
   \else
   \xdef\last@{right}
   \ifx\first@\last@
      \xdef\first@{\second@ (&)@}
      \expandafter\get@three\first@
      \xdef\second@{\first@}
      \xdef\third@{5/0}
      \straight@
   \else
   \xdef\last@{straight}
   \ifx\first@\last@
      \straight@
   \else
      \xdef\last@{uphelix}
      \ifx\first@\last@
         \xdef\first@@{-13/2}
	 \xdef\second@@{5/1}
         \helix@
      \else
      \xdef\last@{downhelix}
      \ifx\first@\last@
         \xdef\first@@{13/-2}
         \xdef\second@@{-5/-1}
         \helix@
      \else
      \xdef\last@{lefthelix}
      \ifx\first@\last@
         \xdef\first@@{-2/-13}
         \xdef\second@@{-1/5}
         \helix@
      \else
      \xdef\last@{righthelix}
      \ifx\first@\last@
         \xdef\first@@{2/13}
         \xdef\second@@{1/-5}
         \helix@
      \else
         \expandafter\ifx\csname \first@\endcsname\relax
         \PackageError{TeXtopo}
         {Element `#1' not defined}
         {\MessageBreak
          The remodelling element you want to use is not \MessageBreak
          defined. Check the spelling or define it using\MessageBreak
          the \noexpand\newelement command.\MessageBreak
          Better stop here by typing `X' Return.\MessageBreak
}
      \fi
         \xdef\first@{\csname \fourth@ \endcsname} 
      \fi
      \fi
      \fi
      \fi
   \fi
   \fi
   \fi
   \fi
   \fi
   \xdef\last@{#2}   
   \ifx\last@\ampers@nd
      \xdef\first@element{y}
      \xdef\l@st@element{y}
      \expandafter\exp@nd@element\first@
   \else 
      \xdef\first@element{y}
      \expandafter\exp@nd@element\first@
      \xdef\last@{#2@} \expandafter\get@element\last@ 
   \fi
}

\def\get@m@d@stack@ori#1,#2@{\xdef\m@d@stack@ori{#2}}

\def\do@grid{%
   \setlength\temp@length{\unit@length}
   \multiply\temp@length by \y@max\relax
   \advance\temp@length by 2\unit@length\relax
   \loopcount=0
   \loop
      \put(\loopcount,0){\kern-0.05pt\rule{0.1pt}{\temp@length}}
      \advance\loopcount by \grid@mesh
   \ifnum\loopcount>\x@max \else \repeat
   \setlength\temp@length{\unit@length}
   \multiply\temp@length by \x@max\relax
   \advance\temp@length by 5\unit@length\relax
   \loopcount=0
   \loop
      \put(0,\loopcount){\rule[-0.05pt]{\temp@length}{0.1pt}}
      \advance\loopcount by \grid@mesh
   \ifnum\loopcount>\y@max \else \repeat
}

{\catcode`t=12\catcode`p=12\gdef\noPT#1pt{#1}}

\def\get@numnum#1.#2#3#4@{\xdef\first@{#1#2#3}}

\def\extract@TMs{%
   \expandafter\get@@fromstack\M@@stack
   \xdef\st@rt{\first@} \xdef\st@p{\second@}
   \xdef\M@@stack{\last@}
   \ifx\st@rt\ampers@nd
   \else
     \temp@count=\st@p
     \advance\temp@count by -\st@rt\relax
     \ifnum\temp@count<13
     \else
       \advance\innerloopcount by 1
       \expandafter\xdef\csname TM\the\innerloopcount\endcsname{}
       \iloopcount=0 \x@pos=0 \y@pos=0 \x@offset=0
       \loop
         \advance\loopcount by 1
	 \ifnum\loopcount=0 \loopcount=1 \fi
	 \expandafter\get@aa\sequence@
	 \ifnum\loopcount<\st@rt
	 \else
	    \expandafter\xdef\csname TM\the\innerloopcount\endcsname{%
	          \csname TM\the\innerloopcount\endcsname\ch@r}
            \sin@{\the\iloopcount}
	    \multiply\sincos by \csname H@\ch@r\endcsname
	    \divide\sincos by 10000
	    \advance\y@pos by \sincos
            \cos@{\iloopcount}
	    \multiply\sincos by \csname H@\ch@r\endcsname
	    \divide\sincos by 10000
	    \advance\x@pos by \sincos
	    \advance\x@offset by \csname H@\ch@r\endcsname
            \advance\iloopcount by 100
         \fi
       \ifnum\loopcount=\st@p \else \repeat
       \invtan@{\the\x@pos}{\the\y@pos}       
       \expandafter\xdef\csname mudelta\the\innerloopcount\endcsname{\the\sincos}
       \divide\iloopcount by 100
       \divide\x@offset by \iloopcount
       \expandafter\xdef\csname <H>\the\innerloopcount\endcsname{\the\x@offset}
       \invtan@{\the\x@pos}{\the\y@pos}
       \expandafter\xdef\csname mudelta\the\innerloopcount\endcsname{\the\sincos}
       \dimen@=\x@pos\s@
       \@tempdima=0.1\dimen@
       \multiply\dimen@\@tempdima
       \dimen@0.65536\dimen@
       \xdef\first@{\expandafter\noPT\the\dimen@ @}
       \expandafter\get@numnum\first@
       \x@pos=\first@
       \dimen@=\y@pos\s@
       \@tempdima=0.1\dimen@
       \multiply\dimen@\@tempdima
       \dimen@0.65536\dimen@ 
       \xdef\first@{\expandafter\noPT\the\dimen@ @}
       \expandafter\get@numnum\first@
       \y@pos=\first@\relax
       \advance\x@pos by \y@pos\relax
       \sqrt@{\the\x@pos}
       \expandafter\xdef\csname muH\the\innerloopcount\endcsname{\r@@t}
       \x@pos=\r@@t
       \divide\x@pos by \iloopcount
       \expandafter\xdef\csname <muH>\the\innerloopcount\endcsname{\the\x@pos}       
     \fi 
     \extract@TMs
   \fi
}

\def\analyze@seq{%
   \xdef\seq@{\seq@ &@}
   \xdef\sequence@{}
   \xdef\st@r@{n}
   \pos@count=-\N@tag@length\relax
   \advance\pos@count by -1\relax
   \expandafter\count@res\seq@
   \xdef\sequence@{\sequence@&@}
   \xdef\seq@length{\the\pos@count}
   \ifx\TM\y@
      \xdef\M@@stack{\M@stack}
      \xdef\seq@{\sequence@}
      \loopcount=0
      \loopcount=-\N@tag@length\relax
      \advance\loopcount by -1\relax
      \innerloopcount=0
      \extract@TMs
      \xdef\sequence@{\seq@}
   \fi
}

%%%%%%%%% User commands

\newcommand{\getsequence}[3][existing]{%
  \xdef\first@{#2}
  \xdef\temp@{PHD}
  \ifx\first@\temp@
     \xdef\first@{#1} \xdef\temp@{existing}
     \ifx\first@\temp@ \else\xdef\first@{make new}\fi
     \xdef\optionphd{\first@}
     \xdef\filenamephd{#3}
     \include@@PHD
  \else
  \xdef\temp@{HMMTOP}
  \ifx\first@\temp@
     \xdef\first@{#1} \xdef\temp@{existing}
     \ifx\first@\temp@ \else\xdef\first@{make new}\fi
     \xdef\optionHMMTOP{\first@}
     \xdef\filenameHMMTOP{#3}
     \include@@HMMTOP
  \else
  \xdef\temp@{SwissProt}
  \ifx\first@\temp@
     \xdef\first@{#1} \xdef\temp@{existing}
     \ifx\first@\temp@ \else\xdef\first@{make new}\fi
     \xdef\optionswiss{\first@}
     \xdef\filenameswiss{#3}
     \include@@swiss
  \else
  \xdef\temp@{alignment}
  \ifx\first@\temp@
   \xdef\alignname{#3}
   \openin\in@file = #3
   \ifeof\in@file
    \PackageError{TeXtopo}
    {File `\alignname' not found}
    {\MessageBreak
     The alignment file you specified is missing or you have \MessageBreak
     misspelled it. \MessageBreak\MessageBreak
     Stop here, otherwise you're likely getting in trouble. \MessageBreak
     Type X <return> to quit. \MessageBreak
}
   \else
    \message{(\alignname)}
    \xdef\he@der{no}
    \xdef\temp@@@{#1} \xdef\temp@{existing}
    \ifx\temp@@@\temp@
       \xdef\temp@@@{1}
       \message{<No number specified. Using first seq of alignment>}
    \fi
    \loopcount=0 \innerloopcount=0
    \loop
       \read\in@file to \readline
       \xdef\test@{\expandafter\string\readline}
       \ifx\test@\par@ \innerloopcount=0
       \else
          \xdef\msfline{\readline & & & & & & & & &@}
          \expandafter\struc@get\msfline
          \ifx\first@\n@me \advance\loopcount by 1\relax
             \ifnum\loopcount=\temp@@@\relax \xdef\msf@name{\second@} \fi
          \fi
          \ifx\first@\he@derend
             \ifnum\loopcount>0 \xdef\he@der{yes} \fi
          \fi
          \xdef\temp@{\first@}
          \xdef\first@{\first@ @}
          \expandafter\check@letter\first@
          \ifletter
             \advance\innerloopcount by 1\relax
             \ifnum\innerloopcount=\temp@@@\relax \xdef\aln@name{\temp@} \fi
          \fi
       \fi
    \ifeof\in@file \else\repeat
    \closein\in@file
    \xdef\first@{no}
    \ifx\he@der\first@
       \xdef\sequence@name{\aln@name}
    \else
       \xdef\sequence@name{\msf@name}
    \fi
    \xdef\sequence@{}
    \openin\in@file = #3 \readseq@loop \closein\in@file
    \expandafter\sequence{\sequence@}
   \fi
   \else
    \PackageError{TeXtopo}
    {Undefined file type demanded}
    {\MessageBreak
     The type of file you demanded is undefined or you have \MessageBreak
     misspelled it. Currently `PHD', `SwissProt' and `alignment'\MessageBreak
     are known to TeXtopo.\MessageBreak\MessageBreak
     Stop here, otherwise you're likely getting in trouble. \MessageBreak
     Type X <return> to quit. \MessageBreak
}
   \fi\fi\fi\fi
}

\def\seqstart#1{%
   \loopcount=#1
   \ifnum\loopcount=0 \advance\loopcount by 1 \fi
   \xdef\seq@start{\the\loopcount}
}

\def\displaysection#1{%
   \xdef\first@{#1@} \expandafter\get@start@stop\first@
}

\def\shadestartMet{\no@start@metfalse}
\newcommand{\donotshadestartMet}[1][1]{\xdef\start@met@num{#1}\no@start@mettrue}

\newcommand{\applyshading}[3][1]{%
     \expandafter\ifx\csname TeXshade\endcsname\relax
      \PackageError{TeXtopo}
      {`texshade.sty' not loaded}
      {\MessageBreak
       In order to apply shading on your topology plot you need\MessageBreak
       to load the TeXshade package (v1.3 or a more recent version)\MessageBreak
       using the command\noexpand\usepackage{texshade} before loading\MessageBreak
       TeXtopo or by using the BioTeX Bundle.\MessageBreak
       TeXshade and BioTeX are available from any CTAN site or from\MessageBreak
       the BioTeX/TeXshade homepage: \MessageBreak
       http://homepages.uni-tuebingen.de/beitz/tse.html
       \MessageBreak\MessageBreak
       No shading will be applied.\MessageBreak
}
     \else
     \expandafter\ifx\csname geneticcode\endcsname\relax
      \PackageError{TeXtopo}
      {Version of `texshade.sty' too old}
      {\MessageBreak
       In order to apply shading on your topology plot you need\MessageBreak
       to load a more recent TeXshade package (v1.3 or newer). \MessageBreak
       TeXshade is available from any CTAN site or from the \MessageBreak
       TeXshade/BioTeX homepage: \MessageBreak
       http://homepages.uni-tuebingen.de/beitz/tse.html
       \MessageBreak\MessageBreak
       No shading will be applied.\MessageBreak
}
     \else     
     \xdef\c@l@rscheme@{\c@l@rscheme}
     \xdef\l@fam@{\l@fam}
     \xdef\l@shap@{\l@shap}
     \xdef\l@ser@{\l@ser}
     \xdef\l@size@{\l@size}
     \xdef\first@{similar}
     \xdef\second@{#2}
     \ifx\first@\second@
       \xdef\lo@d{existing}
       \xdef\file@n@me{#3 .@}
       \expandafter\cut@name\file@n@me
       \xdef\file@n@me@{\file@n@me#1.shd}
       \immediate\openin\structure@file = \file@n@me@\relax
       \ifeof\structure@file \xdef\lo@d{make new} \fi
       \immediate\closein\structure@file
       \xdef\first@{make new}
       \ifx\first@\lo@d
       \begin{texshade}{#3}
          \shadingmode{similar}
          \constosingleseq{#1}
          \xdef\out@put{no}
       \end{texshade}
       \immediate\openout\feature@file = \file@n@me@\relax
       \immediate\write\feature@file{\string\xdef\string\constopo{\constopo}}
       \immediate\closeout\feature@file
       \else
         \message{using existing file:}
         \input{\file@n@me@}     
       \fi
       \xdef\constopo@{\constopo &@}
       \shadetrue \similar@shadetrue
       \shadelegend@@true
       \xdef\c@l@rscheme{\c@l@rscheme@}
       \shadingcolors{\c@l@rscheme}
     \else
     \xdef\first@{identical}
     \ifx\first@\second@
       \xdef\lo@d{existing}
       \xdef\file@n@me{#3 .@}
       \expandafter\cut@name\file@n@me
       \xdef\file@n@me@{\file@n@me#1.shd}
       \immediate\openin\structure@file = \file@n@me@\relax
       \ifeof\structure@file \xdef\lo@d{make new} \fi
       \immediate\closein\structure@file
       \xdef\first@{make new}
       \ifx\first@\lo@d
       \begin{texshade}{#3}
          \shadingmode{similar}
          \constosingleseq{#1}
          \xdef\out@put{no}
       \end{texshade}
       \immediate\openout\feature@file = \file@n@me@\relax
       \immediate\write\feature@file{\string\xdef\string\constopo{\constopo}}
       \immediate\closeout\feature@file
       \else
         \message{using existing file:}
         \input{\file@n@me@}     
       \fi
       \xdef\constopo@{\constopo &@}
       \shadetrue \similar@shadefalse
       \shadelegend@@true
       \xdef\c@l@rscheme{\c@l@rscheme@}
       \shadingcolors{\c@l@rscheme}
     \else
     \xdef\first@{functional}
     \ifx\first@\second@
       \shadefalse \similar@shadefalse
       \funcmodetrue
       \shadelegend@@true
       \xdef\first@{#3@}
       \ifx\first@\ampers@nd \clearfuncgroups \else \func@shading{#3} \fi
       \xdef\first@{1}\xdef\second@{#1}
       \ifx\first@\second@\else\input{#1}\fi
       \xdef\shade@num{\fgroup@num}
       \ifnum\fgroup@num>0
       \loopcount=0
       \loop
          \advance\loopcount by 1
          \expandafter\xdef\csname show@shade\the\loopcount\endcsname{y}
       \ifnum\loopcount=\fgroup@num\else\repeat
       \fi
     \else
      \PackageError{TeXtopo}
      {Unknown shading mode}
      {\MessageBreak
       The shading mode you demanded is undefined or you have \MessageBreak
       misspelled it. At the moment `identical', `similar' and \MessageBreak
       `functional' are known to TeXtopo.\MessageBreak\MessageBreak
       No shading will be applied.\MessageBreak
}     
     \fi\fi\fi
     \xdef\l@fam{\l@fam@}
     \xdef\l@shap{\l@shap@}
     \xdef\l@ser{\l@ser@}
     \xdef\l@size{\l@size@}
     \setfont{legend}{\l@fam}{\l@ser}{\l@shap}{\l@size}
     \fi\fi
}

\def\sequence#1{\xdef\seq@{#1}}

\def\loopfoot#1#2{%
   \xdef\first@{#2[5]&}\expandafter\opt@col\first@
   \loopcount=\l@color\relax
   \ifnum\loopcount<1 \loopcount=1 \fi
   \multiply\loopcount by -2\relax
   \expandafter\xdef\csname foot@direct#1\endcsname{\fourth@}
   \expandafter\xdef\csname neck@length#1\endcsname{\the\loopcount}
   \expandafter\xdef\csname foot@#1\endcsname{y}
}

\newcommand{\loopextent}[2][0]{%
   \xdef\first@{#2[5]&}\expandafter\opt@col\first@
   \temp@count=\fourth@
   \loopcount=\l@color
   \advance\temp@count by -5
   \ifnum\temp@count<5 \temp@count=5 \fi
   \ifnum\loopcount>\temp@count
   \else
      \multiply\loopcount by -1
      \advance\temp@count by \loopcount
   \fi
   \ifnum\temp@count<5 \temp@count=5 \fi
   \expandafter\xdef\csname inner@length#1\endcsname{\the\temp@count}
   \advance\temp@count by -2
   \expandafter\xdef\csname inner@straight#1\endcsname{\the\temp@count}
   \temp@count=\csname inner@length#1\endcsname
   \multiply\temp@count by 2
   \advance\temp@count by 4
   \expandafter\xdef\csname inner@loop#1\endcsname{\the\temp@count}
   \temp@count=\fourth@ \xdef\fourth@{\the\temp@count}
   \ifnum\temp@count<5 \temp@count=5 \fi
   \expandafter\xdef\csname outer@length#1\endcsname{\the\temp@count}
   \advance\temp@count by -2
   \expandafter\xdef\csname outer@straight#1\endcsname{\the\temp@count}
   \temp@count=\csname outer@length#1\endcsname
   \multiply\temp@count by 2
   \expandafter\xdef\csname outer@loop#1\endcsname{\the\temp@count}
   \expandafter\xdef\csname l@@p#1\endcsname{y}
}

\def\MRs#1{%
   \xdef\list@{#1,&}
   \loop
      \xdef\list@{\list@ @}
      \expandafter\get@Mregions\list@
   \ifx\list@\ampers@nd\else\repeat
}

\def\clearMRs{\xdef\M@stack{&;&;@}\xdef\TM{n}}

\def\anchor#1{%
   \xdef\list@@{#1,&@}
   \expandafter\get@Apositions\list@@
}
   
\def\moveres#1#2#3{%
   \ifx\wheel@@@\n@
      \loopcount=#1 \advance\loopcount by -1
      \expandafter\xdef\csname res@x@off\the\loopcount\endcsname{#2}
      \expandafter\xdef\csname res@y@off\the\loopcount\endcsname{#3}  
   \fi
}

\def\Nterm#1{%
   \xdef\first@{#1}
   \ifx\first@\intr@
      \xdef\current@pos{intra}
   \else
      \xdef\current@pos{extra}
   \fi}

\def\flipNterm{\xdef\N@inverse{y}}   

\def\flipCterm{\xdef\C@inverse{y}}
   
\def\labelstyle#1#2#3#4#5#6{%
   \loopcount=\label@num
   \advance\loopcount by 1
   \xdef\label@num{\the\loopcount}
   \expandafter\xdef\csname labelname@\label@num\endcsname{#1}
   \expandafter\xdef\csname labelnum@#1\endcsname{\label@num}
   \expandafter\xdef\csname show@label#1\endcsname{no}
   \expandafter\xdef\csname #1style\endcsname{#2}
   \expandafter\xdef\csname #1frame\endcsname{#3}
   \expandafter\xdef\csname #1back\endcsname{#4}
   \expandafter\xdef\csname #1font\endcsname{#5}
   \expandafter\xdef\csname #1legendtext\endcsname{#6}
}
   
\newcommand{\labelregion}[4][&,&]{%
   \xdef\first@{#1@} \expandafter\get@direction\first@
   \xdef\first@{#3[@]&}\expandafter\opt@col\first@
   \xdef\style@c@l{\fourth@}
   \ifx\l@color\@t \xdef\num@{&} \else \xdef\num@{\l@color} \fi
   \def\l@text@{#4}
   \xdef\list@{#2,&}
   \loop
      \xdef\list@{\list@ @}
      \expandafter\get@lregions\list@
   \ifx\list@\ampers@nd\else\repeat
   \xdef\second@{standard}
   \xdef\third@{#3}
   \ifx\second@\third@
   \else
      \expandafter\xdef\csname show@label#3\endcsname{y}
      \legend@@true
   \fi
}

\newcommand{\addtagtoNterm}[4][&,&]{%
   \xdef\first@{#2&@}
   \temp@count=\N@tag@length\relax
   \xdef\seq@tag{}
   \expandafter\count@tag\first@
   \xdef\N@tag@length{\the\temp@count}
   \xdef\N@tag{([#1]#3[#4]=\seq@tag)\N@tag}
   \xdef\second@{standard}
   \xdef\third@{#3}
   \ifx\second@\third@
   \else
      \expandafter\xdef\csname show@label#3\endcsname{y}
      \legend@@true
   \fi
}

\newcommand{\addtagtoCterm}[4][&,&]{%
   \xdef\first@{#2&@}
   \temp@count=0
   \xdef\seq@tag{}
   \expandafter\count@tag\first@
   \xdef\C@tag{\C@tag([#1]#3[#4]=\seq@tag)}
   \xdef\second@{standard}
   \xdef\third@{#3}
   \ifx\second@\third@
   \else
      \expandafter\xdef\csname show@label#3\endcsname{y}
      \legend@@true
   \fi
}

\newcommand{\labelloop}[3][N,0]{%
   \loop@labeltrue
   \xdef\first@{#1@}
   \expandafter\get@direction\first@
   \expandafter\xdef\csname l@direct#2\endcsname{\directi@n}
   \expandafter\xdef\csname l@offset#2\endcsname{\length@}
   \expandafter\xdef\csname l@label#2\endcsname{#3}
   \expandafter\xdef\csname l@true#2\endcsname{y}
}

\def\labelloops#1{%
   \loop@seriestrue
   \loop@labeltrue
   \def\loop@labeltext{#1}}

\def\movelooplabel#1#2{%
   \expandafter\xdef\csname move@loop#1\endcsname{y}
   \xdef\first@{#2@}
   \expandafter\get@direction\first@
   \expandafter\xdef\csname movel@direct#1\endcsname{\directi@n}
   \expandafter\xdef\csname movel@offset#1\endcsname{\length@}
}
   
\def\hidelooplabels{\loop@seriesfalse\loop@labelfalse\loopgo@false}

\newcommand{\labelTM}[3][N,0]{%
   \TM@labeltrue
   \xdef\first@{#1@}
   \expandafter\get@direction\first@
   \expandafter\xdef\csname TM@direct#2\endcsname{\directi@n}
   \expandafter\xdef\csname TM@offset#2\endcsname{\length@}
   \expandafter\xdef\csname TM@label#2\endcsname{#3}
   \expandafter\xdef\csname TM@true#2\endcsname{y}
}

\def\labelTMs#1{%
   \TM@seriestrue
   \TM@labeltrue
   \def\TM@labeltext{#1}}

\def\moveTMlabel#1#2{%
   \expandafter\xdef\csname move@TM#1\endcsname{y}
   \xdef\first@{#2@}
   \expandafter\get@direction\first@
   \expandafter\xdef\csname moveTM@direct#1\endcsname{\directi@n}
   \expandafter\xdef\csname moveTM@offset#1\endcsname{\length@}
}
   
\def\hideTMlabels{\TM@seriesfalse\TM@labelfalse\TMgo@false}

\newcommand{\phosphorylation}[2][&,&]{%
   \labelregion[#1]{#2..#2}{noshade}{circ[Black,YellowGreen]:P}}

\newcommand{\glycosylation}[2][&,&]{%
   \labelregion[#1]{#2..#2}{noshade}{tree[Black]}}

\def\countercolor#1{\xdef\c@untc@l{#1}}
  
\def\looplabelcolor#1{\xdef\loopc@l{#1}}
  
\def\TMlabelcolor#1{\xdef\TMc@l{#1}}
 
\def\hideNterm{\xdef\hide@NH{y}}
\def\showNterm{\xdef\hide@NH{no}}
\def\hideCterm{\xdef\hide@COOH{y}}
\def\showCterm{\xdef\hide@COOH{no}}

\def\showmembrane{\membr@netrue}
\def\hidemembrane{\membr@nefalse}
\def\membranecolors#1#2{%
   \xdef\memfr@me{#1}
   \xdef\membl@ck{#2}
}
\def\broadenmembrane#1#2{%
   \xdef\first@{#1}
   \xdef\second@{left}
   \ifx\first@\second@
      \loopcount=#2\relax
      \multiply\loopcount by -1\relax
      \xdef\to@mem@min{\the\loopcount}
   \else
      \xdef\to@mem@max{#2}
   \fi
}
\def\thickenmembrane#1#2{%
   \xdef\first@{#1}
   \xdef\second@{top}
   \ifx\first@\second@
      \xdef\mem@t@p{#2}
   \fi
   \loopcount=\mem@thick
   \advance\loopcount by #2
   \xdef\mem@thick{\the\loopcount} 
}
\def\borderthickness#1{\xdef\b@rder@set{y} \setlength\b@rder{#1}}
\newcommand{\labeloutside}[2][left]{%
   \xdef\up@mem{#2}
   \xdef\up@left@right{#1}
}
\newcommand{\labelinside}[2][right]{%
   \xdef\low@mem{#2}
   \xdef\low@left@right{#1}
}

\def\moveinsidelabel#1{%
   \xdef\first@{#1@}
   \expandafter\get@direction\first@
   \xdef\move@in@direc{\directi@n}
   \xdef\move@in@length{\length@}
}

\def\moveoutsidelabel#1{%
   \xdef\first@{#1@}
   \expandafter\get@direction\first@
   \xdef\move@out@direc{\directi@n}
   \xdef\move@out@length{\length@}
}

\def\rulethickness#1{\def\rule@thickness{#1}}

\def\scaletopo#1{%
   \xdef\first@{#1@}
   \expandafter\detect@change\first@
   \xdef\first@{fix}
   \ifx\change@size\first@
      \xdef\fix@length{#1}
      \ifnum\fix@length<0  \xdef\fix@length{0}  \fi
      \ifnum\fix@length>10 \xdef\fix@length{10} \fi
   \fi
}

\def\TeXtopo{\mbox{\TeX\textsf{topo}}}

\def\showmoment{\mu@Htrue}
\def\hidemoment{\mu@Hfalse}

\def\Hmean#1{\csname <H>#1\endcsname}
\def\muH#1{\csname muH#1\endcsname}
\def\muHmean#1{\csname <muH>#1\endcsname}
\def\mudelta#1{\csname mudelta#1\endcsname}

\def\momentcolor#1{\xdef\moment@color{#1}}
\def\scalemoment#1{\xdef\m@mentlength{#1}}

\def\showbonds{\xdef\show@bonds{y}}
\def\hidebonds{\xdef\show@bonds{n}}

\def\viewfromintra{\xdef\l@@k{intra}}
\def\viewfromextra{\xdef\l@@k{extra}}

\def\showwheelnumbering{\wheel@numberstrue}
\def\hidewheelnumbering{\wheel@numbersfalse}

\def\scalewheel#1{%
   \xdef\first@{#1}
   \loopcount=\scale@factor
   \multiply\loopcount by \first@\relax
   \divide\loopcount by 100
   \ifnum\loopcount<10 
      \xdef\scale@factor{10}
   \else
      \xdef\scale@factor{\the\loopcount}
   \fi
}

\def\wheelsperline#1{\xdef\wheels@line{#1}}

\def\symbolsize#1{%
   \xdef\sym@size{#1}
   \xdef\first@{small}
   \ifx\sym@size\first@
   \else
   \xdef\first@{medium}
   \ifx\sym@size\first@
   \else
   \xdef\first@{large}
   \ifx\sym@size\first@
   \else
      \message{<Ignoring `#1' in \noexpand\symbolsize. Using `medium'>}
      \xdef\sym@size{medium}
   \fi\fi\fi
}

\def\helixstyle#1{%
   \xdef\first@{#1}
   \xdef\second@{perspective}
   \ifx\first@\second@
      \@helix@perstrue
      \@netfalse
   \else   
   \xdef\second@{net}
   \ifx\first@\second@
      \@nettrue
      \@helix@persfalse
   \else   
   \xdef\second@{wheel}
   \ifx\first@\second@
      \@helix@persfalse
      \@netfalse
   \else
      \message{Undefined \noexpand\helixstyle. Using `perspective'.}
      \@helix@perstrue
      \@netfalse
   \fi
   \fi
   \fi
}

\newcommand{\place}[3][1]{%
   \insert@true
   \loopcount=\insert@num
   \advance\loopcount by 1
   \xdef\insert@num{\the\loopcount}
   \xdef\first@{#2@}
   \expandafter\get@direction\first@
   \expandafter\xdef\csname ins@n\insert@num\endcsname{#1}
   \expandafter\xdef\csname ins@x\insert@num\endcsname{\directi@n}
   \expandafter\xdef\csname ins@y\insert@num\endcsname{\length@}
   \expandafter\xdef\csname ins@z\insert@num\endcsname{#3}
}

\def\remodel#1#2{%
   \loopcount=#1
   \xdef\last@{#2,&@}
   \xdef\temp@stack{}
   \x@pos=0 \y@pos=0
   \xdef\l@st@element{n}
   \expandafter\get@element\last@ 
   \ifx\m@d@stack@ori\ampers@nd
   \else
   
   \message{temp:\temp@stack||ori:\m@d@stack@ori}
   
      \xdef\m@d@stack{\m@d@stack@ori,0:0/0,0@}
      \expandafter\get@m@d@stack@ori\temp@stack
      \xdef\temp@stack{}
      \sort@m@d@stack
   \fi
   \expandafter\get@m@d@stack@ori\temp@stack
   
   \message{newori:\m@d@stack@ori}
   
}
 
\def\newelement#1#2{%
   \expandafter\ifx\csname #1\endcsname\relax
   \else
      \PackageError{TeXtopo}
      {Element `#1' already defined}
      {\MessageBreak
       An element with the same name is already defined. \MessageBreak
       If you want to overwrite the definitions proceed \MessageBreak
       by hitting `Enter', if not quit now by typing `X'.\MessageBreak
}        
   \fi
   \expandafter\xdef\csname #1\endcsname{#2,&@}
}

\newcommand{\showgrid}[1][5]{\xdef\grid@mesh{#1}}

\def\hidegrid{\xdef\grid@mesh{0}}


%%%%% Redef'ed and extended TeXshade definitions

\def\allmatchspecial{\all@shadetrue}
\def\allmatchspecialoff{\all@shadefalse}

\def\showlegend{\legend@true}
\def\hidelegend{\legend@false}
\def\movelegend#1#2{%
   \expandafter\ifx\csname TeXshade\endcsname\relax
   \else
      \setlength\hspace@legend{#1}
      \setlength\vspace@legend{#2}
   \fi
   \setlength\hspace@@legend{#1}
   \setlength\vspace@@legend{#2}
}

\def\numcount{\the\loopcount}
\def\Alphacount{\@Alph\loopcount}
\def\alphacount{\@alph\loopcount}
\def\romancount{\@roman\loopcount}
\def\Romancount{\@Roman\loopcount}

\def\setfamily#1#2{%
   \xdef\second@{#2&}
   \ifx\second@\ampers@nd
   \else
   \xdef\first@{#1}
   \xdef\second@{#2}
   \xdef\temp@{rm}
   \ifx\second@\temp@
      \xdef\third@{\rmdefault}
   \else
      \xdef\temp@{sf}
      \ifx\second@\temp@
         \xdef\third@{\sfdefault}
      \else
         \xdef\temp@{tt}
         \ifx\second@\temp@
            \xdef\third@{\ttdefault}
         \else
            \xdef\third@{\second@}
   \fi\fi\fi
   \xdef\temp@{features}
   \ifx\first@\temp@ \xdef\featuretext@family{\third@}
   \else
   \xdef\temp@{featurestyles}
   \ifx\first@\temp@ \xdef\featurestyles@family{\third@}
   \else
   \xdef\temp@{numbering}
   \ifx\first@\temp@ \xdef\numbertext@family{\third@}
   \else
   \xdef\temp@{names}
   \ifx\first@\temp@ \xdef\namestext@family{\third@}
   \else
   \xdef\temp@{residues}
   \ifx\first@\temp@ \xdef\residues@family{\third@}
   \else
   \xdef\temp@{legend}
   \ifx\first@\temp@ \xdef\legend@family{\third@} \xdef\l@fam{\third@}
   \else
   \xdef\temp@{labels}
   \ifx\first@\temp@ \xdef\label@family{\third@}
   \else
   \xdef\temp@{membranelabels}
   \ifx\first@\temp@ \xdef\mem@label@family{\third@}
   \else
   \xdef\temp@{looplabels}
   \ifx\first@\temp@ \xdef\looplabel@family{\third@}
   \else
   \xdef\temp@{TMlabels}
   \ifx\first@\temp@ \xdef\TMlabel@family{\third@}
   \else
   \xdef\temp@{all}
   \ifx\first@\temp@
      \xdef\featuretext@family{\third@}
      \xdef\featurestyles@family{\third@}
      \xdef\numbertext@family{\third@}
      \xdef\namestext@family{\third@}
      \xdef\residues@family{\third@}
      \xdef\legend@family{\third@} \xdef\l@fam{\third@}
      \xdef\label@family{\third@}
      \xdef\looplabel@family{\third@}
      \xdef\TMlabel@family{\third@}
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
   \fi
}
\def\setseries#1#2{%
   \xdef\second@{#2&}
   \ifx\second@\ampers@nd
   \else
   \xdef\first@{#1}
   \xdef\second@{#2}
   \xdef\temp@{bf}
   \ifx\second@\temp@
      \xdef\third@{\bfdefault}
   \else
      \xdef\temp@{md}
      \ifx\second@\temp@
         \xdef\third@{\mddefault}
      \else
         \xdef\third@{\second@}
   \fi\fi
   \xdef\temp@{features}
   \ifx\first@\temp@ \xdef\featuretext@series{\third@}
   \else
   \xdef\temp@{featurestyles}
   \ifx\first@\temp@ \xdef\featurestyles@series{\third@}
   \else
   \xdef\temp@{numbering}
   \ifx\first@\temp@ \xdef\numbertext@series{\third@}
   \else
   \xdef\temp@{names}
   \ifx\first@\temp@ \xdef\namestext@series{\third@}
   \else
   \xdef\temp@{residues}
   \ifx\first@\temp@ \xdef\residues@series{\third@}
   \else
   \xdef\temp@{legend}
   \ifx\first@\temp@ \xdef\legend@series{\third@} \xdef\l@ser{\third@}
   \else
   \xdef\temp@{labels}
   \ifx\first@\temp@ \xdef\label@series{\third@}
   \else
   \xdef\temp@{membranelabels}
   \ifx\first@\temp@ \xdef\mem@label@series{\third@}
   \else
   \xdef\temp@{looplabels}
   \ifx\first@\temp@ \xdef\looplabel@series{\third@}
   \else
   \xdef\temp@{TMlabels}
   \ifx\first@\temp@ \xdef\TMlabel@series{\third@}
   \else
   \xdef\temp@{all}
   \ifx\first@\temp@
      \xdef\featuretext@series{\third@}
      \xdef\featurestyles@series{\third@}
      \xdef\numbertext@series{\third@}
      \xdef\namestext@series{\third@}
      \xdef\residues@series{\third@}
      \xdef\legend@series{\third@} \xdef\l@ser{\third@}
      \xdef\label@series{\third@}
      \xdef\looplabel@series{\third@}
      \xdef\TMlabel@series{\third@}
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
   \fi
}
\def\setshape#1#2{%
   \xdef\second@{#2&}
   \ifx\second@\ampers@nd
   \else
   \xdef\first@{#1}
   \xdef\second@{#2}
   \xdef\temp@{it}
   \ifx\second@\temp@
      \xdef\third@{\itdefault}
   \else
      \xdef\temp@{sl}
      \ifx\second@\temp@
         \xdef\third@{\sldefault}
      \else
         \xdef\temp@{sc}
         \ifx\second@\temp@
            \xdef\third@{\scdefault}
         \else
            \xdef\temp@{up}
            \ifx\second@\temp@
               \xdef\third@{\updefault}
            \else
               \xdef\third@{\second@}
   \fi\fi\fi\fi
   \xdef\temp@{features}
   \ifx\first@\temp@ \xdef\featuretext@shape{\third@}
   \else
   \xdef\temp@{featurestyles}
   \ifx\first@\temp@ \xdef\featurestyles@shape{\third@}
   \else
   \xdef\temp@{numbering}
   \ifx\first@\temp@ \xdef\numbertext@shape{\third@}
   \else
   \xdef\temp@{names}
   \ifx\first@\temp@ \xdef\namestext@shape{\third@}
   \else
   \xdef\temp@{residues}
   \ifx\first@\temp@ \xdef\residues@shape{\third@}
   \else
   \xdef\temp@{legend}
   \ifx\first@\temp@ \xdef\legend@shape{\third@} \xdef\l@shap{\third@}
   \else
   \xdef\temp@{labels}
   \ifx\first@\temp@ \xdef\label@shape{\third@}
   \else
   \xdef\temp@{membranelabels}
   \ifx\first@\temp@ \xdef\mem@label@shape{\third@}
   \else
   \xdef\temp@{looplabels}
   \ifx\first@\temp@ \xdef\looplabel@shape{\third@}
   \else
   \xdef\temp@{TMlabels}
   \ifx\first@\temp@ \xdef\TMlabel@shape{\third@}
   \else
   \xdef\temp@{all}
   \ifx\first@\temp@
      \xdef\featuretext@shape{\third@}
      \xdef\featurestyles@shape{\third@}
      \xdef\numbertext@shape{\third@}
      \xdef\namestext@shape{\third@}
      \xdef\residues@shape{\third@}
      \xdef\legend@shape{\third@} \xdef\l@shap{\third@}
      \xdef\label@shape{\third@}
      \xdef\looplabel@shape{\third@}
      \xdef\TMlabel@shape{\third@}
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
   \fi
}
\def\setsize#1#2{%
   \xdef\second@{#2&}
   \ifx\second@\ampers@nd
   \else
   \xdef\first@{#1}
   \xdef\temp@{features}
   \ifx\first@\temp@
      \def\featuretext@size{\csname #2\endcsname}
   \else
   \xdef\temp@{featurestyles}
   \ifx\first@\temp@
      \def\featurestyles@size{\csname #2\endcsname}
   \else
   \xdef\temp@{numbering}
   \ifx\first@\temp@
      \def\numbertext@size{\csname #2\endcsname}
   \else
   \xdef\temp@{names}
   \ifx\first@\temp@
      \def\namestext@size{\csname #2\endcsname}
   \else
   \xdef\temp@{legend}
   \ifx\first@\temp@
      \def\legend@size{\csname #2\endcsname} \xdef\l@size{#2}
   \else
   \xdef\temp@{labels}
   \ifx\first@\temp@
      \def\label@size{\csname #2\endcsname}
   \else
   \xdef\temp@{membranelabels}
   \ifx\first@\temp@
      \def\mem@label@size{\csname #2\endcsname}
   \else
   \xdef\temp@{looplabels}
   \ifx\first@\temp@
      \def\looplabel@size{\csname #2\endcsname}
   \else
   \xdef\temp@{TMlabels}
   \ifx\first@\temp@
      \def\TMlabel@size{\csname #2\endcsname}
   \else
   \xdef\temp@{residues}
   \ifx\first@\temp@
      \def\residues@size{\csname #2\endcsname}
      \xdef\res@size{#2}
   \else
   \xdef\temp@{all}
   \ifx\first@\temp@
      \def\featuretext@size{\csname #2\endcsname}
      \def\featurestyles@size{\csname #2\endcsname}
      \def\numbertext@size{\csname #2\endcsname}
      \def\namestext@size{\csname #2\endcsname}
      \def\legend@size{\csname #2\endcsname} \def\l@size{#2}
      \def\label@size{\csname #2\endcsname}
      \def\looplabel@size{\csname #2\endcsname}
      \def\TMlabel@size{\csname #2\endcsname}
      \def\residues@size{\csname #2\endcsname}
      \xdef\res@size{#2}
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
   \xdef\temp@{Huge}
   \ifx\temp@\res@size
      \def\bottomruler@size{\csname Large\endcsname}
   \else
   \xdef\temp@{huge}
   \ifx\temp@\res@size
      \def\bottomruler@size{\csname large\endcsname}
   \else
   \xdef\temp@{LARGE}
   \ifx\temp@\res@size
      \def\bottomruler@size{\csname normalsize\endcsname}
   \else
   \xdef\temp@{Large}
   \ifx\temp@\res@size
      \def\bottomruler@size{\csname small\endcsname}
   \else
   \xdef\temp@{large}
   \ifx\temp@\res@size
      \def\bottomruler@size{\csname footnotesize\endcsname}
   \else
   \xdef\temp@{normalsize}
   \ifx\temp@\res@size
      \def\bottomruler@size{\csname scriptsize\endcsname}
   \else
      \def\bottomruler@size{\csname tiny\endcsname}
   \fi\fi\fi\fi\fi\fi
   \fi
}
\def\setfont#1#2#3#4#5{%
   \setfamily{#1}{#2}\setseries{#1}{#3}
   \setshape{#1}{#4}\setsize{#1}{#5}}

\def\labelsrm{\setfamily{labels}{rm}}
\def\labelssf{\setfamily{labels}{sf}}
\def\labelstt{\setfamily{labels}{tt}}
\def\labelsmd{\setseries{labels}{md}}
\def\labelsbf{\setseries{labels}{bf}}
\def\labelsup{\setshape {labels}{up}}
\def\labelsit{\setshape {labels}{it}}
\def\labelssl{\setshape {labels}{sl}}
\def\labelssc{\setshape {labels}{sc}}
\def\labelstiny        {\setsize{labels}{tiny}}
\def\labelsscriptsize  {\setsize{labels}{scriptsize}}
\def\labelsfootnotesize{\setsize{labels}{footnotesize}}
\def\labelssmall       {\setsize{labels}{small}}
\def\labelsnormalsize  {\setsize{labels}{normalsize}}
\def\labelslarge       {\setsize{labels}{large}}
\def\labelsLarge       {\setsize{labels}{Large}}
\def\labelsLARGE       {\setsize{labels}{LARGE}}
\def\labelshuge        {\setsize{labels}{huge}}
\def\labelsHuge        {\setsize{labels}{Huge}}

\def\membranelabelsrm{\setfamily{membranelabels}{rm}}
\def\membranelabelssf{\setfamily{membranelabels}{sf}}
\def\membranelabelstt{\setfamily{membranelabels}{tt}}
\def\membranelabelsmd{\setseries{membranelabels}{md}}
\def\membranelabelsbf{\setseries{membranelabels}{bf}}
\def\membranelabelsup{\setshape {membranelabels}{up}}
\def\membranelabelsit{\setshape {membranelabels}{it}}
\def\membranelabelssl{\setshape {membranelabels}{sl}}
\def\membranelabelssc{\setshape {membranelabels}{sc}}
\def\membranelabelstiny        {\setsize{membranelabels}{tiny}}
\def\membranelabelsscriptsize  {\setsize{membranelabels}{scriptsize}}
\def\membranelabelsfootnotesize{\setsize{membranelabels}{footnotesize}}
\def\membranelabelssmall       {\setsize{membranelabels}{small}}
\def\membranelabelsnormalsize  {\setsize{membranelabels}{normalsize}}
\def\membranelabelslarge       {\setsize{membranelabels}{large}}
\def\membranelabelsLarge       {\setsize{membranelabels}{Large}}
\def\membranelabelsLARGE       {\setsize{membranelabels}{LARGE}}
\def\membranelabelshuge        {\setsize{membranelabels}{huge}}
\def\membranelabelsHuge        {\setsize{membranelabels}{Huge}}

\def\looplabelsrm{\setfamily{looplabels}{rm}}
\def\looplabelssf{\setfamily{looplabels}{sf}}
\def\looplabelstt{\setfamily{looplabels}{tt}}
\def\looplabelsmd{\setseries{looplabels}{md}}
\def\looplabelsbf{\setseries{looplabels}{bf}}
\def\looplabelsup{\setshape {looplabels}{up}}
\def\looplabelsit{\setshape {looplabels}{it}}
\def\looplabelssl{\setshape {looplabels}{sl}}
\def\looplabelssc{\setshape {looplabels}{sc}}
\def\looplabelstiny        {\setsize{looplabels}{tiny}}
\def\looplabelsscriptsize  {\setsize{looplabels}{scriptsize}}
\def\looplabelsfootnotesize{\setsize{looplabels}{footnotesize}}
\def\looplabelssmall       {\setsize{looplabels}{small}}
\def\looplabelsnormalsize  {\setsize{looplabels}{normalsize}}
\def\looplabelslarge       {\setsize{looplabels}{large}}
\def\looplabelsLarge       {\setsize{looplabels}{Large}}
\def\looplabelsLARGE       {\setsize{looplabels}{LARGE}}
\def\looplabelshuge        {\setsize{looplabels}{huge}}
\def\looplabelsHuge        {\setsize{looplabels}{Huge}}

\def\TMlabelsrm{\setfamily{TMlabels}{rm}}
\def\TMlabelssf{\setfamily{TMlabels}{sf}}
\def\TMlabelstt{\setfamily{TMlabels}{tt}}
\def\TMlabelsmd{\setseries{TMlabels}{md}}
\def\TMlabelsbf{\setseries{TMlabels}{bf}}
\def\TMlabelsup{\setshape {TMlabels}{up}}
\def\TMlabelsit{\setshape {TMlabels}{it}}
\def\TMlabelssl{\setshape {TMlabels}{sl}}
\def\TMlabelssc{\setshape {TMlabels}{sc}}
\def\TMlabelstiny        {\setsize{TMlabels}{tiny}}
\def\TMlabelsscriptsize  {\setsize{TMlabels}{scriptsize}}
\def\TMlabelsfootnotesize{\setsize{TMlabels}{footnotesize}}
\def\TMlabelssmall       {\setsize{TMlabels}{small}}
\def\TMlabelsnormalsize  {\setsize{TMlabels}{normalsize}}
\def\TMlabelslarge       {\setsize{TMlabels}{large}}
\def\TMlabelsLarge       {\setsize{TMlabels}{Large}}
\def\TMlabelsLARGE       {\setsize{TMlabels}{LARGE}}
\def\TMlabelshuge        {\setsize{TMlabels}{huge}}
\def\TMlabelsHuge        {\setsize{TMlabels}{Huge}}

\def\standardresidues#1#2#3#4{%
   \xdef\symb@lstyle{#1}
   \xdef\fr@mecol{#2}
   \xdef\symb@lcol{#3}
   \xdef\ch@rcol{#4}
   \labelstyle{standard}{#1}{#2}{#3}{#4}{standard residues}
   \expandafter\xdef\csname sstyle0\endcsname{#1}
   \expandafter\xdef\csname fcol0\endcsname{#2}
   \expandafter\xdef\csname scol0\endcsname{#3}
   \expandafter\xdef\csname ccol0\endcsname{#4}
}

\def\similarpositions#1#2#3#4{%
   \expandafter\xdef\csname sstyle1\endcsname{#1}
   \expandafter\xdef\csname fcol1\endcsname{#2}
   \expandafter\xdef\csname scol1\endcsname{#3}
   \expandafter\xdef\csname ccol1\endcsname{#4}
   \loopcount=\shade@num
   \advance\loopcount by 1
   \xdef\shade@num{\the\loopcount}
   \expandafter\xdef\csname shadename@\shade@num\endcsname{sim@pos}
   \expandafter\xdef\csname shadenum@sim@pos\endcsname{\shade@num}
   \expandafter\xdef\csname show@shade\shade@num\endcsname{y}
   \expandafter\xdef\csname sim@posstyle\endcsname{#1}
   \expandafter\xdef\csname sim@posframe\endcsname{#2}
   \expandafter\xdef\csname sim@posback\endcsname{#3}
   \expandafter\xdef\csname sim@posfont\endcsname{#4}
   \expandafter\xdef\csname sim@poslegendtext\endcsname{similar positions}
}
\def\conservedpositions#1#2#3#4{%
   \expandafter\xdef\csname sstyle2\endcsname{#1}
   \expandafter\xdef\csname fcol2\endcsname{#2}
   \expandafter\xdef\csname scol2\endcsname{#3}
   \expandafter\xdef\csname ccol2\endcsname{#4}
   \loopcount=\shade@num
   \advance\loopcount by 1
   \xdef\shade@num{\the\loopcount}
   \expandafter\xdef\csname shadename@\shade@num\endcsname{cons@pos}
   \expandafter\xdef\csname shadenum@cons@pos\endcsname{\shade@num}
   \expandafter\xdef\csname show@shade\shade@num\endcsname{y}
   \expandafter\xdef\csname cons@posstyle\endcsname{#1}
   \expandafter\xdef\csname cons@posframe\endcsname{#2}
   \expandafter\xdef\csname cons@posback\endcsname{#3}
   \expandafter\xdef\csname cons@posfont\endcsname{#4}
   \expandafter\xdef\csname cons@poslegendtext\endcsname{conserved positions}
}
\def\invariablepositions#1#2#3#4{%
   \expandafter\xdef\csname sstyle3\endcsname{#1}
   \expandafter\xdef\csname fcol3\endcsname{#2}
   \expandafter\xdef\csname scol3\endcsname{#3}
   \expandafter\xdef\csname ccol3\endcsname{#4}
   \loopcount=\shade@num
   \advance\loopcount by 1
   \xdef\shade@num{\the\loopcount}
   \expandafter\xdef\csname shadename@\shade@num\endcsname{inv@pos}
   \expandafter\xdef\csname shadenum@inv@pos\endcsname{\shade@num}
   \expandafter\xdef\csname show@shade\shade@num\endcsname{y}
   \expandafter\xdef\csname inv@posstyle\endcsname{#1}
   \expandafter\xdef\csname inv@posframe\endcsname{#2}
   \expandafter\xdef\csname inv@posback\endcsname{#3}
   \expandafter\xdef\csname inv@posfont\endcsname{#4}
   \expandafter\xdef\csname inv@poslegendtext\endcsname{invariable positions}
}

\def\shadingcolors#1{%
  \xdef\shade@num{0}
  \gapcolors{Black}{White}
  \nomatchresidues{Black}{White}{upper}{up}
  \standardresidues{circ}{Black}{White}{Black}
  \xdef\first@{#1} \xdef\second@{blues}
  \ifx\first@\second@
    \xdef\c@l@rscheme{\first@}
    \similarresidues{Black}{Magenta}{upper}{up}
    \conservedresidues{White}{RoyalBlue}{upper}{up}
    \allmatchresidues{Goldenrod}{RoyalPurple}{upper}{up}
    \similarpositions{circ}{Black}{Magenta}{Black}
    \conservedpositions{circ}{Black}{RoyalBlue}{White}
    \invariablepositions{circ}{Black}{RoyalPurple}{Goldenrod}
  \else \xdef\second@{greens}
  \ifx\first@\second@
    \xdef\c@l@rscheme{\first@}
    \similarresidues{Black}{GreenYellow}{upper}{up}
    \conservedresidues{White}{PineGreen}{upper}{up}
    \allmatchresidues{YellowOrange}{OliveGreen}{upper}{up}
    \similarpositions{circ}{Black}{GreenYellow}{Black}
    \conservedpositions{circ}{Black}{PineGreen}{White}
    \invariablepositions{circ}{Black}{OliveGreen}{YellowOrange}
  \else \xdef\second@{reds}
  \ifx\first@\second@
    \xdef\c@l@rscheme{\first@}
    \similarresidues{Black}{YellowOrange}{upper}{up}
    \conservedresidues{White}{BrickRed}{upper}{up}
    \allmatchresidues{YellowGreen}{Mahagony}{upper}{up}
    \similarpositions{circ}{Black}{YellowOrange}{Black}
    \conservedpositions{circ}{Black}{BrickRed}{White}
    \invariablepositions{circ}{Black}{Mahagony}{YellowGreen}
  \else \xdef\second@{black}
  \ifx\first@\second@
    \xdef\c@l@rscheme{\first@}
    \similarresidues{Black}{White}{upper}{sl}
    \conservedresidues{White}{Black}{upper}{up}
    \allmatchresidues{White}{Black}{upper}{sl}
    \similarpositions{box}{Black}{White}{Black}
    \conservedpositions{diamond}{Black}{White}{Black}
    \invariablepositions{circ}{Black}{Black}{White}
  \else \xdef\second@{grays}
  \ifx\first@\second@
  \else \message{<Undefined color set. Using `grays'>} \xdef\first@{grays}\fi
  \ifx\first@\second@
    \xdef\c@l@rscheme{\first@}
    \similarresidues{Black}{LightGray}{upper}{up}
    \conservedresidues{White}{DarkGray}{upper}{up}
    \allmatchresidues{White}{Black}{upper}{up}
    \similarpositions{circ}{Black}{LightGray}{Black}
    \conservedpositions{circ}{Black}{DarkGray}{White}
    \invariablepositions{circ}{Black}{Black}{White}
  \fi\fi\fi\fi\fi}
\def\nomatchresidues#1#2#3#4  {\xdef\first@{#1&}\xdef\second@{#2&}\xdef\third@{#3&}
                             \xdef\last@{\ampers@nd}
                             \ifx\first@\last@\else\def\TextNomatch{#1}
                               \expandafter\def\csname fg@textcolor0\endcsname{#1}
                             \fi
                             \ifx\second@\last@\else\gdef\Nomatch{#2}
                               \expandafter\def\csname fg@color0\endcsname{#2}
                             \fi
                             \ifx\third@\last@\else\def\resn@m@tch{#3}
                             \fi
                             \xdef\first@{#4&}
                             \ifx\first@\last@\else
                               \def\no@style{\csname text#4\endcsname}
                               \expandafter\def\csname func@style0\endcsname%
                                  {\csname text#4\endcsname}\fi}
\def\similarresidues#1#2#3#4  {\xdef\first@{#1&}\xdef\second@{#2&}\xdef\third@{#3&}
                             \xdef\last@{\ampers@nd}
                             \ifx\first@\last@\else\def\TextSimilar{#1}\fi
                             \ifx\second@\last@\else\gdef\Similar{#2}\fi
                             \ifx\third@\last@\else\def\ressimm@tch{#3}\fi
                             \xdef\first@{#4&}
                             \ifx\first@\last@\else
                               \def\sim@style{\csname text#4\endcsname}\fi}
\def\conservedresidues#1#2#3#4{\xdef\first@{#1&}\xdef\second@{#2&}\xdef\third@{#3&}
                             \xdef\last@{\ampers@nd}
                             \ifx\first@\last@\else\def\TextIdentical{#1}\fi
                             \ifx\second@\last@\else\gdef\Identical{#2}\fi
                             \ifx\third@\last@\else\def\resm@tch{#3}\fi
                             \xdef\first@{#4&}
                             \ifx\first@\last@\else
                               \def\id@style{\csname text#4\endcsname}\fi}
\def\allmatchresidues#1#2#3#4 {\xdef\first@{#1&}\xdef\second@{#2&}\xdef\third@{#3&}
                             \xdef\last@{\ampers@nd}
                             \ifx\first@\last@\else\def\TextAllmatch{#1}\fi
                             \ifx\second@\last@\else\gdef\Allmatch{#2}\fi
                             \ifx\third@\last@\else\def\res@llm@tch{#3}\fi
                             \xdef\first@{#4&}
                             \ifx\first@\last@\else
                               \def\all@style{\csname text#4\endcsname}\fi}
\def\gapcolors#1#2           {\xdef\first@{#1&}\xdef\second@{#2&}
                             \xdef\last@{\ampers@nd}
                             \ifx\first@\last@\else\def\gap@fg{#1}
                                \expandafter\def\csname fg@textcolor*\endcsname{#1}\fi
                             \ifx\second@\last@\else\def\gap@bg{#2}
                                \expandafter\def\csname fg@color*\endcsname{#2}\fi}
\def\legendcolor#1{\xdef\legend@fg{#1}}

%%%%%%%%%%% TeXtopo
\def\clearvariables{%
   \xdef\lst@ck{&;&;&;&;&;&;&;@}
   \xdef\TM@stack{&,@}
   \xdef\label@stack{}
   \xdef\tmpstack{}
   \xdef\fr@me{Black}
   \xdef\b@ck{White}
   \xdef\f@nt{Black}
   \xdef\sequence@{&}
   \pos@count=0
   \xdef\seq@start{1}
   \xdef\fix@length{11}
   \xdef\change@length{0}
   \xdef\label@size{&}
   \xdef\mem@label@size{&}
   \xdef\b@rder@set{n}
   \xdef\start@{1}
   \xdef\c@unter{0}
   \xdef\label@num{0}
   \xdef\shade@num{0}
   \xdef\N@tag{}
   \xdef\C@tag{}
   \xdef\seq@{}
   \xdef\N@tag@length{0}
   \xdef\C@tag@length{0}
   \xdef\N@inverse{n}
   \xdef\C@inverse{n}
   \xdef\to@mem@min{0}
   \xdef\to@mem@max{0}
   \xdef\move@in@length{0}
   \xdef\move@in@direc{N}
   \xdef\move@out@length{0}
   \xdef\move@out@direc{N}
   \xdef\start@met@num{1}
   \shadefalse
   \all@shadefalse
   \funcmodefalse
   \TM@labelfalse
   \TM@seriesfalse
   \TM@@count=0
   \TMgo@false
   \loop@labelfalse
   \loop@seriesfalse
   \loop@@count=0
   \loopgo@false
   \xdef\half@{n}
   \clearMRs
   \xdef\TM@seq{}
   \xdef\TM@shade{}
   \xdef\TM@num{0}
   \helix@false
   \do@ittrue
   \res@@diam=0pt
   \xdef\wheels@line{0}
   \xdef\wheel@@@{n}
   \xdef\scale@factor{60}
   \xdef\insert@num{0}
   \insert@false
   \setlength\hspace@@legend{0pt}
   \setlength\vspace@@legend{0pt}
   \xdef\mem@b@t{0}
   \xdef\mem@t@p{0}
   \xdef\mem@thick{30}
   \xdef\m@d@stack@ori{&}
   \xdef\subtract@offset{n}
}

\def\do@wheelcalc{%
   \message{(Plotting wheels}
   \xdef\first@{small}
   \ifx\sym@size\first@
   \newfont{\bsymG}{cmsy10 scaled 1720}
   \newfont{\bsymF}{cmsy10 scaled 2048}
   \newfont{\bsymE}{cmsy10 scaled 2488}
   \newfont{\bsymD}{cmsy10 scaled 2986}
   \newfont{\bsymC}{cmsy10 scaled 3583}
   \newfont{\bsymB}{cmsy10 scaled 4300}
   \newfont{\bsymA}{cmsy10 scaled 5160}
   \newfont{\sfdcG}{cmssdc10 scaled 482}
   \newfont{\sfdcF}{cmssdc10 scaled 578}
   \newfont{\sfdcE}{cmssdc10 scaled 694}
   \newfont{\sfdcD}{cmssdc10 scaled 833}
   \newfont{\sfdcC}{cmssdc10 scaled 1000}
   \newfont{\sfdcB}{cmssdc10 scaled 1200}
   \newfont{\sfdcA}{cmssdc10 scaled 1440}
   \else
   \xdef\first@{medium}
   \ifx\sym@size\first@
   \newfont{\bsymG}{cmsy10 scaled 2048}
   \newfont{\bsymF}{cmsy10 scaled 2488}
   \newfont{\bsymE}{cmsy10 scaled 2986}
   \newfont{\bsymD}{cmsy10 scaled 3583}
   \newfont{\bsymC}{cmsy10 scaled 4300}
   \newfont{\bsymB}{cmsy10 scaled 5160}
   \newfont{\bsymA}{cmsy10 scaled 6192}
   \newfont{\sfdcG}{cmssdc10 scaled 578}
   \newfont{\sfdcF}{cmssdc10 scaled 694}
   \newfont{\sfdcE}{cmssdc10 scaled 833}
   \newfont{\sfdcD}{cmssdc10 scaled 1000}
   \newfont{\sfdcC}{cmssdc10 scaled 1200}
   \newfont{\sfdcB}{cmssdc10 scaled 1440}
   \newfont{\sfdcA}{cmssdc10 scaled 1720}
   \else
   \xdef\first@{large}
   \ifx\sym@size\first@
   \newfont{\bsymG}{cmsy10 scaled 2488}
   \newfont{\bsymF}{cmsy10 scaled 2986}
   \newfont{\bsymE}{cmsy10 scaled 3583}
   \newfont{\bsymD}{cmsy10 scaled 4300}
   \newfont{\bsymC}{cmsy10 scaled 5160}
   \newfont{\bsymB}{cmsy10 scaled 6192}
   \newfont{\bsymA}{cmsy10 scaled 7430}
   \newfont{\sfdcG}{cmssdc10 scaled 694}
   \newfont{\sfdcF}{cmssdc10 scaled 833}
   \newfont{\sfdcE}{cmssdc10 scaled 1000}
   \newfont{\sfdcD}{cmssdc10 scaled 1200}
   \newfont{\sfdcC}{cmssdc10 scaled 1440}
   \newfont{\sfdcB}{cmssdc10 scaled 1720}
   \newfont{\sfdcA}{cmssdc10 scaled 2048}
   \fi\fi\fi
   \xdef\lst@ck@{\lst@ck}
   \xdef\sl@{\seq@length}
   \xdef\seq@{\sequence@}
   \ifshade
      \xdef\top@{\constopo@}
   \fi
   \pos@count=0
   \getregion@fromlstack
   \xdef\symb@l@style{\symb@lstyle}
   \xdef\symb@lc@l{\symb@lcol}
   \xdef\fr@mec@l{\fr@mecol}
   \xdef\ch@rc@l{\ch@rcol}
   \ifx\start@\ampers@nd
   \else
      \ifnum\start@=1
         \xdef\symb@l@style{\style@c@l}
         \xdef\symb@lc@l{\b@ck}
         \xdef\fr@mec@l{\fr@me}
         \xdef\ch@rc@l{\f@nt}
      \fi
   \fi
   \setlength\unit@length{1mm}
   \unitlength \unit@length
   \temp@@count=\scale@factor
   \multiply\temp@@count by 30
   \divide\temp@@count by 100
   \xdef\an@kat{\the\temp@@count}
   \x@max=\temp@@count
   \multiply\x@max by 2
   \x@offset=\an@kat
   \multiply\x@offset by 2
   \divide\x@offset by 3
   \y@offset=\x@offset  
   \advance\x@max by \x@offset
   \advance\x@max by \x@offset
   \y@max=\x@max
   \if@net
      \x@max=40 \x@offset=5
      \y@max=90 \y@offset=5
   \fi
   \ifnum\wheels@line=0
      \loopcount=\x@max
      \multiply\loopcount by \unit@length
      \temp@@count=\textwidth
      \divide\temp@@count by \loopcount
      \ifnum\temp@@count<1 \temp@@count=1\fi
      \xdef\wheels@line{\the\temp@@count}
   \fi
   \multiply\x@max by \temp@@count
   \temp@@count=\scale@factor
   \multiply\temp@@count by 25
   \divide\temp@@count by 100
   \xdef\gegen@kat{\the\temp@@count}
   \temp@@count=\scale@factor
   \multiply\temp@@count by 39
   \divide\temp@@count by 100
   \xdef\hyp@{\the\temp@@count}
   \temp@@count=\scale@factor
   \multiply\temp@@count by 34
   \divide\temp@@count by 100
   \xdef\hyp@flat{\the\temp@@count}
   \wheel@count=1
   \xdef\wheel@active{n}
   \helix@false
   \setbox1=\hbox{\bsymD\char"0E}
   \setlength\unit@length{0.154\wd1}
   \if@helix@pers
   \else
      \temp@@count=\scale@factor
      \multiply\temp@@count by 84
      \divide\temp@@count by 100
      \xdef\scale@factor{\the\temp@@count}
   \fi
}
   
\def\do@calculations{%
   \pos@count=0
   \getregion@fromlstack 
   \xdef\symb@l@style{\symb@lstyle}
   \xdef\symb@lc@l{\symb@lcol}
   \xdef\fr@mec@l{\fr@mecol}
   \xdef\ch@rc@l{\ch@rcol}
   \ifx\start@\ampers@nd
   \else
      \ifnum\start@=1
         \xdef\symb@l@style{\style@c@l}
         \xdef\symb@lc@l{\b@ck}
         \xdef\fr@mec@l{\fr@me}
         \xdef\ch@rc@l{\f@nt}
      \fi
   \fi
   \analyzetopo
   \pos@count=-\N@tag@length\relax
   \advance\pos@count by -1\relax
   \TM@@count=0
   \load@fonts
   \setbox1=\hbox{\label@size{(}}
   \xdef\r@depth{\the\dp1}
   \temp@length=\dp1 \advance\temp@length by \ht1
   \xdef\r@height{\the\temp@length}
   \setbox1=\hbox{\csname bsym\font@num\endcsname\char"0E}\res@diam=0.77\wd1
   \setlength\unit@length{0.2\res@diam}
   \unitlength\unit@length
   \ifx\b@rder@set\n@ \setlength\b@rder{\unit@length} \fi
   \setlength\hor@offset{-\textwidth}
   \advance\hor@offset by \x@max\unit@length
   \divide\hor@offset by -2
   \leftskip\hor@offset
   \wheel@count=0
}

\newenvironment{textopo}[1][&]%
  {\clearvariables\standardparameters
   \xdef\first@{#1}
   \ifx\first@\ampers@nd\else\input{#1}\fi}
  {\xdef\seq@{\N@tag\seq@\C@tag}
   \analyze@seq
   \ifx\sequence@\ampers@nd
      \PackageError{TeXtopo}
      {No \noexpand\sequence specified}
      {\MessageBreak
       TeXtopo needs an amino acid sequence to be set. \MessageBreak
       Use the command \noexpand\sequence or load a sequence \MessageBreak
       from a PHD, a SwissProt or an alignment file. \MessageBreak
       Type X <return> to quit. \MessageBreak
}
   \else
   \bgroup
      \parindent 0pt
      \do@calculations
      \bigskip
      \vbox{%
      \begin{picture}(\x@max,\y@max)
        \ifmembr@ne   \do@membr@ne  \fi
	\ifnum\grid@mesh>0 \do@grid \fi
        \dotopo
        \ifTM@label   \do@TMlabel   \fi
        \ifloop@label \do@looplabel \fi
        \ifinsert@    \do@@insert   \fi
      \end{picture}}
      \iflegend@
	   \vspace{\vspace@@legend}
	   \setbox1=\vbox{\ifshadelegend@@\hbox{\do@@shadelegend}\fi%
                          \iflegend@@\hbox{\do@@legend}\fi}
	   \vbox{\ifshadelegend@@\hbox{\do@@shadelegend}\fi%
                 \iflegend@@\hbox{\do@@legend}\fi}
           \bigskip
	   \ifnum\ht1<-\vspace@@legend
	      \vspace{-\ht1}\vspace{-\vspace@@legend}
	   \fi
       \bigskip
      \fi
   \egroup
   \fi
  }

  
\newenvironment{helicalwheel}[2][&]%
  {\clearvariables\standardparameters
   \xdef\wheel@@@{y}
   \xdef\first@{#1}
   \ifx\first@\ampers@nd\else\input{#1}\fi
   \setsize{TMlabels}{large}
   \xdef\TM@stack{}
   \xdef\first@{#2,&,@}
   \analyze@TM@stack
   \xdef\TM@stack{\TM@stack @}
   \expandafter\get@item\TM@stack
   \xdef\TM@stack{\first@@,&,@}}
  {\analyze@seq
   \ifx\sequence@\ampers@nd
      \PackageError{TeXtopo}
      {No \noexpand\sequence specified}
      {\MessageBreak
       TeXtopo needs an amino acid sequence to be set. \MessageBreak
       Use the command \noexpand\sequence or load a sequence \MessageBreak
       from a PHD, a SwissProt or an alignment file. \MessageBreak
       Type X <return> to quit. \MessageBreak
}
   \else
   \bgroup
      \do@wheelcalc
      \do@wheel
      \hbox{}
      \iflegend@
           \xdef\font@num{E}
	   \setbox1=\vbox{\ifshadelegend@@\hbox{\do@@shadelegend}\fi%
                          \iflegend@@\hbox{\do@@legend}\fi}
	   \vbox{\ifshadelegend@@\hbox{\do@@shadelegend}\fi%
                 \iflegend@@\hbox{\do@@legend}\fi}
           \bigskip
	   \ifnum\ht1<-\vspace@@legend
	      \vspace{-\ht1}\vspace{-\vspace@@legend}
	   \fi
       \bigskip
      \fi
   \egroup
   \fi
}

  
\catcode`\@=12


\def\standardparameters{%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%                                                                      %%%%%
%%%%%     Default parameter settings for the LaTeX ``TeXtopo'' package     %%%%%
%%%%%                                                                      %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%                                                                      %%%%%
%%%%%   Under any circumstances:                                           %%%%%
%%%%%                                                                      %%%%%
%%%%%                     DO NOT CHANGE ANY SETTINGS !!!                   %%%%%
%%%%%                                                                      %%%%%
%%%%%   Please define your personal parameter file!  Store your new file   %%%%%
%%%%%   together with this style-file in the same directory and load the   %%%%%
%%%%%   file by  naming it as an optional parameter in the `textopo' en-   %%%%%
%%%%%   vironment.  The file `textopo.def' can be used as a template for   %%%%%
%%%%%   the new creation. See the manual for further help.                 %%%%%
%%%%%                                                                      %%%%%
%%%%%                              THANK YOU !!!                           %%%%%
%%%%%                                                                      %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\Nterm{intra}                       %  Assume N-terminus intracellular
\loopextent{30}                     %  Set loop extent to 30 residues
\shadingcolors{blues}               %  Use color scheme `blues' for shading
\showmembrane                       %  Show the membrane
\membranecolors{Black}{White}       %        as black lines w/o filling
\labeloutside{extra}                %  Label extracellular side with `extra'
\labelinside{intra}                 %  Label intracellular side with `intra'
\rulethickness{0.5pt}               %  Set thickness of label rules to 0.5pt
\countercolor{Red}                  %  Use red color for position counter
\helixstyle{perspective}            %  Draw helical wheels in perspective
\showbonds                          %  Show bonds on helical wheels
\hidemoment                         %  Do not show hydrophobic moment
\momentcolor{Lavender}              %  Lavender color for hydrophobic moment
\scalemoment{100}                   %  Moment rule length is 100%
\showwheelnumbering                 %  Show residue numbers on helical wheels
\scalewheel{100}                    %  Show full size helical wheel
\symbolsize{medium}                 %  Use medium sized symbols in wheels
\donotshadestartMet                 %  Do not shade the start methionine
\showNterm                          %  Show amino terminus as NH2
\showCterm                          %  Show carboxy terminus as COOH

\setfamily{labels}{sf}              %  Use sans serif family for labels
\setseries{labels}{md}              %  Use normal series for labels
\setshape {labels}{up}              %  Use upright shape for labels
\setfamily{membranelabels}{sf}      %  Use sans serif for membrane labels
\setseries{membranelabels}{md}      %  Use normal series for membrane labels
\setshape {membranelabels}{up}      %  Use upright shape for membrane labels
\setfamily{looplabels}{sf}          %  Use sans serif for loop labels
\setseries{looplabels}{bf}          %  Use bold face for loop labels
\setshape {looplabels}{up}          %  Use upright shape for loop labels
\looplabelcolor{Red}                %  Set loop label color to `Red'
\setfamily{TMlabels}{sf}            %  Use sans serif for TM labels
\setseries{TMlabels}{bf}            %  Use bold face for TM labels
\setshape {TMlabels}{up}            %  Use upright shape for TM labels
\TMlabelcolor{Blue}                 %  Set TM label color to `Blue'
\labelTMs{\Romancount}              %  Label the TMs with roman numbers
\setfamily{legend}{sf}              %  Use sans serif font for legend texts
\setseries{legend}{md}              %  Use normal series for legend texts
\setshape {legend}{up}              %  Use upright shape for legend texts
\setsize  {legend}{normalsize}      %  Use normal font size for legends
\legendcolor{Black}                 %  Set legend text color to `Black'
\showlegend                         %  Show the legend
\hidegrid                           %  Do not show the grid

\labelstyle{CONFLICT}               %    Label style definitions for
 {diamond}{Black}{Blue}{White}      %
 {Conflicting reports in literatur} %       SwissProt data files
                                                     
\labelstyle{VARIANT}                %                |
 {diamond}{Black}{Orange}{Black}    %                |
 {Sequence variants}                %                V
  
\labelstyle{VARSPLIC}               %
 {diamond}{Black}{Apricot}{Black}   %
 {Splice variants}                  %
  
\labelstyle{MUTAGEN}                %
 {diamond}{Black}{Red}{White}       %
 {Mutation sites}                   %
  
\labelstyle{SIGNAL}                 %
 {square}{Black}{Yellow}{Black}     %
 {Signal peptide}                   %
  
\labelstyle{TRANSIT}                %
 {square}{Black}{Green}{Black}      %
 {Transit peptide}                  %
  
\labelstyle{PROPEP}                 %
 {square}{Black}{Red}{White}        %
 {Propeptide}                       %
  
\labelstyle{CHAIN}                  %
 {circ}{Black}{Aquamarine}{Blue}    %
 {Polypeptide chain}                %
  
\labelstyle{PEPTIDE}                %
 {circ}{Black}{Peach}{Black}        %
 {Released peptide}                 %
  
\labelstyle{DOMAIN}                 %
 {circ}{Black}{Turquoise}{Black}    %
 {Domain}                           %
  
\labelstyle{CABIND}                 %
 {circ}{Black}{Gray50}{White}       %
 {Calcium binding domain}           %
  
\labelstyle{DNABIND}                %
 {circ}{Black}{YellowGreen}{Black}  %
 {DNA binding domain}               %
  
\labelstyle{NPBIND}                 %
 {circ}{Black}{Melon}{Black}        %
 {Nucleotide phosphate binding}     %
   
\labelstyle{ZNFING}                 %
 {circ}{Black}{Lavender}{Black}     %
 {Zinc finger}                      %
  
\labelstyle{SIMILAR}                %
 {circ}{Black}{SpringGreen}{Black}  %
 {Similar region}                   %
  
\labelstyle{REPEAT}                 %
 {circ}{Black}{Plum}{White}         %
 {Sequence repeat}                  %
  
\labelstyle{SITE}                   %
 {circ}{Black}{ForestGreen}{White}  %
 {Special site}                     %
}
%</textpo>
%    \end{macrocode}
%    \begin{macrocode}
%<*defins>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%                                                                      %%%%%
%%%%%     Default parameter settings for the LaTeX ``TeXtopo'' package     %%%%%
%%%%%                                                                      %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%                                                                      %%%%%
%%%%%   This example file contains all standard  settings of the TeXtopo   %%%%%
%%%%%   package. It can be used as a template for the creation of perso-   %%%%%
%%%%%   nal parameter files.  All TeXtopo user commands are  allowed and   %%%%%
%%%%%   functional when specified here.                                    %%%%%
%%%%%                                                                      %%%%%
%%%%%   To activate these settings for your topology plot load this file   %%%%%
%%%%%   by naming it as optional parameter  at the beginning of the tex-   %%%%%
%%%%%   topo environment, e.g.                                             %%%%%
%%%%%                                                                      %%%%%
%%%%%          \begin{textopo}[myparameterfile]                            %%%%%
%%%%%             .                                                        %%%%%
%%%%%             .                                                        %%%%%
%%%%%          \end{textopo}                                               %%%%%
%%%%%                                                                      %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\Nterm{intra}                       %  Assume N-terminus intracellular
\loopextent{30}                     %  Set loop extent to 30 residues
\shadingcolors{blues}               %  Use color scheme `blues' for shading
\showmembrane                       %  Show the membrane
\membranecolors{Black}{White}       %        as black lines w/o filling
\labeloutside{extra}                %  Label extracellular side with `extra'
\labelinside{intra}                 %  Label intracellular side with `intra'
\rulethickness{0.5pt}               %  Set thickness of label rules to 0.5pt
\countercolor{Red}                  %  Use red color for position counter
\helixstyle{perspective}            %  Draw helical wheels in perspective
\showbonds                          %  Show bonds on helical wheels
\hidemoment                         %  Do not show hydrophobic moment
\momentcolor{Lavender}              %  Lavender color for hydrophobic moment
\scalemoment{100}                   %  Moment rule length is 100%
\showwheelnumbering                 %  Show residue numbers on helical wheels
\scalewheel{100}                    %  Show full size helical wheel
\symbolsize{medium}                 %  Use medium sized symbols in wheels
\donotshadestartMet                 %  Do not shade the start methionine
\showNterm                          %  Show amino terminus as NH2
\showCterm                          %  Show carboxy terminus as COOH

\setfamily{labels}{sf}              %  Use sans serif family for labels
\setseries{labels}{md}              %  Use normal series for labels
\setshape {labels}{up}              %  Use upright shape for labels
\setfamily{membranelabels}{sf}      %  Use sans serif for membrane labels
\setseries{membranelabels}{md}      %  Use normal series for membrane labels
\setshape {membranelabels}{up}      %  Use upright shape for membrane labels
\setfamily{looplabels}{sf}          %  Use sans serif for loop labels
\setseries{looplabels}{bf}          %  Use bold face for loop labels
\setshape {looplabels}{up}          %  Use upright shape for loop labels
\looplabelcolor{Red}                %  Set loop label color to `Red'
\setfamily{TMlabels}{sf}            %  Use sans serif for TM labels
\setseries{TMlabels}{bf}            %  Use bold face for TM labels
\setshape {TMlabels}{up}            %  Use upright shape for TM labels
\TMlabelcolor{Blue}                 %  Set TM label color to `Blue'
\labelTMs{\Romancount}              %  Label the TMs with roman numbers
\setfamily{legend}{sf}              %  Use sans serif font for legend texts
\setseries{legend}{md}              %  Use normal series for legend texts
\setshape {legend}{up}              %  Use upright shape for legend texts
\setsize  {legend}{normalsize}      %  Use normal font size for legends
\legendcolor{Black}                 %  Set legend text color to `Black'
\showlegend                         %  Show the legend
\hidegrid                           %  Do not show the grid

\labelstyle{CONFLICT}               %    Label style definitions for
 {diamond}{Black}{Blue}{White}      %
 {Conflicting reports in literatur} %       SwissProt data files
                                                     
\labelstyle{VARIANT}                %                |
 {diamond}{Black}{Orange}{Black}    %                |
 {Sequence variants}                %                V
  
\labelstyle{VARSPLIC}               %
 {diamond}{Black}{Apricot}{Black}   %
 {Splice variants}                  %
  
\labelstyle{MUTAGEN}                %
 {diamond}{Black}{Red}{White}       %
 {Mutation sites}                   %
  
\labelstyle{SIGNAL}                 %
 {square}{Black}{Yellow}{Black}     %
 {Signal peptide}                   %
  
\labelstyle{TRANSIT}                %
 {square}{Black}{Green}{Black}      %
 {Transit peptide}                  %
  
\labelstyle{PROPEP}                 %
 {square}{Black}{Red}{White}        %
 {Propeptide}                       %
  
\labelstyle{CHAIN}                  %
 {circ}{Black}{Aquamarine}{Blue}    %
 {Polypeptide chain}                %
  
\labelstyle{PEPTIDE}                %
 {circ}{Black}{Peach}{Black}        %
 {Released peptide}                 %
  
\labelstyle{DOMAIN}                 %
 {circ}{Black}{Turquoise}{Black}    %
 {Domain}                           %
  
\labelstyle{CABIND}                 %
 {circ}{Black}{Gray50}{White}       %
 {Calcium binding domain}           %
  
\labelstyle{DNABIND}                %
 {circ}{Black}{YellowGreen}{Black}  %
 {DNA binding domain}               %
  
\labelstyle{NPBIND}                 %
 {circ}{Black}{Melon}{Black}        %
 {Nucleotide phosphate binding}     %
   
\labelstyle{ZNFING}                 %
 {circ}{Black}{Lavender}{Black}     %
 {Zinc finger}                      %
  
\labelstyle{SIMILAR}                %
 {circ}{Black}{SpringGreen}{Black}  %
 {Similar region}                   %
  
\labelstyle{REPEAT}                 %
 {circ}{Black}{Plum}{White}         %
 {Sequence repeat}                  %
  
\labelstyle{SITE}                   %
 {circ}{Black}{ForestGreen}{White}  %
 {Special site}                     %
%</defins>
%    \end{macrocode}
%    \begin{macrocode}
%<*AQPtpo>    
\sequence{MASEIKKKLFWRAVVAEFLAMTLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSIA
TLAQSVGHISGAHSNPAVTLGLLLSCQISILRAVMYIIAQCVGAIVASAILSGITSSLLENSLGRNDLARG
VNSGQGLGIEIIGTLQLVLCVLATTDRRRRDLGGSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSAVLT
RNFSNHWIFWVGPFIGSALAVLIYDFILAPRSSDFTDRMKVWTSGQVEEYDLDADDINSRVMKPK}

\Nterm{intra}
\MRs{15..32}
\MRs{50..68}
\MRs{82..106}
\MRs{137..154}
\MRs{169..186}
\MRs{212..230}
%</AQPtpo>    
%    \end{macrocode}
%    \begin{macrocode}
%<*AQPswp>    
\Nterm{intra}
\MRs{18..35}
\MRs{49..67}
\MRs{94..115}
\MRs{136..156}
\MRs{165..184}
\MRs{211..232}
\labelregion{189..189}{SITE}{HG(2+)-SENSITIVE RESIDUE}
\labelregion{159..162}{DOMAIN}{POLY-ARG}
\glycosylation{42}
\glycosylation{205}
\labelregion{45..45}{VARIANT}{A->V (IN CO(A-B+) ANTIGEN)}
\sequence{MASEIKKKLFWRAVVAEFLAMTLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSIA
TLAQSVGHISGAHSNPAVTLGLLLSCQISILRAVMYIIAQCVGAIVASAILSGITSSLLENSLGRNDLARG
VNSGQGLGIEIIGTLQLVLCVLATTDRRRRDLGGSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSAVLT
RNFSNHWIFWVGPFIGSALAVLIYDFILAPRSSDFTDRMKVWTSGQVEEYDLDADDINSRVMKPK}
%</AQPswp>    
%    \end{macrocode}
%    \begin{macrocode}
%<*AQPpro>
AQPpro.MSF  MSF: 356   Type: P  Freitag, 12. Februar 1999 Check: 2586 ..
Name: AQP1.PRO  Len: 269  Check:  5367    Weight: 1.00
Name: AQP2.PRO  Len: 271  Check:  6176    Weight: 1.00
Name: AQP3.PRO  Len: 285  Check:  2893    Weight: 1.00
Name: AQP4.PRO  Len: 323  Check:  9737    Weight: 1.00
Name: AQP5.PRO  Len: 265  Check:  8413    Weight: 1.00
//
          1                                                      60
AQP1.PRO  MAS........................EIKKKLFWRAVVAEFLAMTLFVFISIGSALGFN
AQP2.PRO  MW.........................ELRSIAFSRAVLAEFLATLLFVFFGLGSALQWA
AQP3.PRO  M.........NRCG.....EMLHIRYR......LLRQALAECLGTLILVMFGCGSVAQVV
AQP4.PRO  MSDGAAARRWGKCGPPCSRESIMVAFKGVWTQAFWKAVTAEFLAMLIFVLLSVGSTINWG
AQP5.PRO  MK........................KEVCSLAFFKAVFAEFLATLIFVFFGLGSALKWP

          61                                                      120
AQP1.PRO  YPLERNQTLVQDNVKVSLAFGLSIATLAQSVGHISGAHSNPAVTLGLLLSCQISILRAVM
AQP2.PRO  ...SS....PPSVLQIAVAFGLGIGILVQALGHVSGAHINPAVTVACLVGCHVSFLRAAF
AQP3.PRO  LSRGTHGGF....LTINLAFGFAVTLAILVAGQVSGAHLNPAVTFAMCFLAREPWIKLPI
AQP4.PRO  ...GSENPLPVDMVLISLCFGLSIATMVQCFGHISGGHINPAVTVAMVCTRKISIAKSVF
AQP5.PRO  ...SA....LPTILQISIAFGLAIGTLAQALGPVSGGHINPAITLALLIGNQISLLRAVF

          121                                                      180
AQP1.PRO  YIIAQCVGAIVASAILSGI..........TSSLLENSLGRNDLARGVNSGQ.....GLGI
AQP2.PRO  YVAAQLLGAVAGAAILHEI..........TPVEIRGDLAVNALHNNATAGQ.....AVTV
AQP3.PRO  YTLAQTLGAFLGAGIVFGLYYDAIWAFAGNELVVSGPNGTAGIFATYPSGHLDMVNGFFD
AQP4.PRO  YITAQCLGAIIGAGILYLV..........TPPSVVGGLGVTTVHGNLTAGH.....GLLV
AQP5.PRO  YVAAQLVGAIAGAGILYWL..........APLNARGNLAVNALNNNTTPGK.....AMVV

          181                                                      240
AQP1.PRO  EIIGTLQLVLCVLATTDR.RRRDLGGSAPLAIGLSV.ALGHLLAIDYTGCGINPARSFGS
AQP2.PRO  ELFLTMQLVLCIFASTDE.RRGDNLGSPALSIGFSV.TLGHLLGIYFTGCSMNPARSLAP
AQP3.PRO  QFIGTAALIVCVLAIVDPYNNPVPRGLEAFTVGLVVLVIGTSMGFN.SGYAVNPARDFGP
AQP4.PRO  ELIITFQLVFTIFASCDS.KRTDVTGSVALAIGFSV.AIGHLFAINYTGASMNPARSFGP
AQP5.PRO  ELILTFQLALCIFSSTDS.RRTSPVGSPALSIGLSV.TLGHLVGIYFTGCSMNPARSFGP

          241                                                      300
AQP1.PRO  AVLTR..NFS.N......HWIFWVGPFIGSALAVL..IYDFILAPRSSDFTDRMK.....
AQP2.PRO  AVVTG..KFD.D......HWVFWIGPLVGAIIGSL..LYNYLLFPSAKSLQERL..AVLK
AQP3.PRO  RLFTALAGWGSEVFTTGQNW..WWVPIVSPLLGSIGGVFVYQL.................
AQP4.PRO  AVIMG..NWE.N......HWIYWVGPIIGAVLAGA..LYEYV.FCPDVELKRRLKEAFSK
AQP5.PRO  AVVMN..RFSPS......HWVFWVGPIVGAMLAAI..LYFYLLFPSSLSLHDRV..AVVK

          301                                                         356
AQP1.PRO  .......VWTS.....GQVEEYDLDAD.......DINSRVEMKPK...........
AQP2.PRO  G.LEPDTDWEEREVRRRQ..SVELHSPQSLPRG...................SKA.
AQP3.PRO  ..................MIGCHLEQPPPSTEAENV.KLAHMKHKE.......QI.
AQP4.PRO  AAQQTKGSYMEVEDNRSQVETEDLILKPGVVHVIDIDRGDEKKGKDSSGEVLSSV.
AQP5.PRO  GTYEPEEDWEDHREERKK..TIELTAH.............................

%</AQPpro>
%    \end{macrocode}
%    \begin{macrocode}
%<*AQPshd>
\xdef\constopo{20000000000100123221001022001220100000000000000001010
21222010000000201322303232211101000100010102112301320110102001000000
00000000000000001001211020021201020120100000000000121010200211100220
01332300202100002000201210301200210111011100000000000000000000000000
000000000000}
%</AQPshd>
%    \end{macrocode}
%    \begin{macrocode}
%<*AQP2sp>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%                                                                      %%%%%
%%%%% This is a minimal ALN file - many sequence aligners can produce them %%%%%
%%%%%                                                                      %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

AQP2bt  SIAFSRAVLAEFLATLLFVFFGLGSALNWPQALPSVLQIAMAFGLAIGTLVQALGHVSGA
AQP2cf  SVAFSRAVFAEFLATLLFVFFGLGSALNWPQALPSVLQIAMAFGLGIGTLVQALGHVSGA
AQP2dd  SIAFSRAVFSEFLATLLFVFFGLGSALNWPQALPSVLQIAMAFGLAIGTLVQALGHISGA
AQP2ec  SIAFSRAVLAEFLATLLFVFFGLGSALNWPQAMPSVLQIAMAFGLAIGTLVQALGHVSGA
AQP2em  SIAFSRAVFSEFLATLLFVFFGLGSALNWPQALPSVLQIAMAFGLAIGTLVQTLGHISGA


AQP2bt  HINPAVTVACLVGCHVSFLRAVFYVAAQLLGAVAGAALLHEITPPAIRG
AQP2cf  HINPAVTVACLVGCHVSFLRAAFYVAAQLLGAVAGAALLHEITPPHVRG
AQP2dd  HINPAVTVACLVGCHVSFLRATFYLAAQLLGAVAGAAILHEITPPDIRG
AQP2ec  HINPAVTVACLVGCHVSFLRAAFYVAAQLLGAVAGAALLHEITPPDIRR
AQP2em  HINPAVTVACLVGCHVSFLRATFYLAAQLLGAVAGAALLHELTPPDIRG

%</AQP2sp>
%    \end{macrocode}
%    \begin{macrocode}
%<*AQP1SP>
ID   AQP1_HUMAN     STANDARD;      PRT;   269 AA.
AC   P29972;
DT   01-APR-1993 (Rel. 25, Created)
DT   01-APR-1993 (Rel. 25, Last sequence update)
DT   15-JUL-1998 (Rel. 36, Last annotation update)
DE   AQUAPORIN-CHIP (WATER CHANNEL PROTEIN FOR RED BLOOD CELLS AND KIDNEY
DE   PROXIMAL TUBULE) (AQUAPORIN 1) (URINE WATER CHANNEL).
GN   AQP1 OR CHIP28.
OS   Homo sapiens (Human).
OC   Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Mammalia;
OC   Eutheria; Primates; Catarrhini; Hominidae; Homo.
RN   [1]
RP   SEQUENCE FROM N.A., AND PARTIAL SEQUENCE.
RX   MEDLINE; 92107900.
RA   PRESTON G.M., AGRE P.;
RT   "Isolation of the cDNA for erythrocyte integral membrane protein of
RT   28 kilodaltons: member of an ancient channel family.";
RL   Proc. Natl. Acad. Sci. U.S.A. 88:11110-11114(1991).
RN   [2]
RP   SEQUENCE FROM N.A.
RX   MEDLINE; 93340184.
RA   MOON C., PRESTON G.M., GRIFFIN C.A., JABS E.W., AGRE P.;
RT   "The human aquaporin-CHIP gene. Structure, organization, and
RT   chromosomal localization.";
RL   J. Biol. Chem. 268:15772-15778(1993).
RN   [3]
RP   SEQUENCE FROM N.A.
RC   TISSUE=RETINA;
RA   RUIZ A.C., BOK D.;
RL   Submitted (MAY-1996) to the EMBL/GenBank/DDBJ databases.
RN   [4]
RP   SEQUENCE FROM N.A.
RC   TISSUE=UTERUS;
RX   MEDLINE; 94290349.
RA   LI X., YU H., KOIDE S.S.;
RT   "The water channel gene in human uterus.";
RL   Biochem. Mol. Biol. Int. 32:371-377(1994).
RN   [5]
RP   FUNCTION.
RX   MEDLINE; 92229472.
RA   PRESTON G.M., CARROLL T.P., GUGGINO W.B., AGRE P.;
RT   "Appearance of water channels in Xenopus oocytes expressing red cell
RT   CHIP28 protein.";
RL   Science 256:385-387(1992).
RN   [6]
RP   TARGET OF MERCURY INHIBITION.
RX   MEDLINE; 93106996.
RA   PRESTON G.M., JUNG J.S., GUGGINO W.B., AGRE P.;
RT   "The mercury-sensitive residue at cysteine 189 in the CHIP28 water
RT   channel.";
RL   J. Biol. Chem. 268:17-20(1993).
RN   [7]
RP   TOPOLOGY.
RX   MEDLINE; 94124503.
RA   PRESTON G.M., JUNG J.S., GUGGINO W.B., AGRE P.;
RT   "Membrane topology of aquaporin CHIP. Analysis of functional epitope-
RT   scanning mutants by vectorial proteolysis.";
RL   J. Biol. Chem. 269:1668-1673(1994).
RN   [8]
RP   STRUCTURE BY ELECTRON CRYO-MICROSCOPY.
RX   MEDLINE; 94313979.
RA   WALZ T., SMITH B.L., AGRE P., ENGEL A.;
RT   "The three-dimensional structure of human erythrocyte aquaporin
RT   CHIP.";
RL   EMBO J. 13:2985-2993(1994).
RN   [9]
RP   STRUCTURE BY ELECTRON CRYO-MICROSCOPY.
RX   MEDLINE; 97320502.
RA   WALZ T., HIRAI T., MURATA K., HEYMANN J.B., MITSUOKA K.,
RA   FUJIYOSHI Y., SMITH B.L., AGRE P., ENGEL A.;
RT   "The three-dimensional structure of aquaporin-1.";
RL   Nature 387:624-627(1997).
RN   [10]
RP   VARIANT BLOOD GROUP COLTON.
RX   MEDLINE; 94365170.
RA   SMITH B.L., PRESTON G.M., SPRING F., ANSTEE D.J., AGRE P.;
RT   "Human red cell aquaporin CHIP. I. Molecular characterization of ABH
RT   and Colton blood group antigens.";
RL   J. Clin. Invest. 94:1043-1049(1994).
CC   -!- FUNCTION: FORMS A WATER-SPECIFIC CHANNEL THAT PROVIDES THE PLASMA
CC       MEMBRANES OF RED CELLS AND KIDNEY PROXIMAL TUBULES WITH HIGH
CC       PERMEABILITY TO WATER, THEREBY PERMITTING WATER TO MOVE IN THE
CC       DIRECTION OF AN OSMOTIC GRADIENT.
CC   -!- SUBUNIT: HOMOTETRAMER.
CC   -!- SUBCELLULAR LOCATION: INTEGRAL MEMBRANE PROTEIN.
CC   -!- TISSUE SPECIFICITY: ERYTHROCYTES AND RENAL TUBULES.
CC   -!- POLYMORPHISM: AQP1 IS RESPONSIBLE FOR THE COLTON BLOOD GROUP
CC       SYSTEM. APPROXIMATELY 92% OF CAUCASIANS ARE CO(A+B-) (ALA-45),
CC       APPROXIMATELY 8% ARE CO(A+B+), AND ONLY 0.2% ARE CO(A-B+) (VAL-
CC       45). CO(A-B-) WHICH IS VERY RARE, IS DUE TO A COMPLETE ABSENCE OF
CC       AQP1.
CC   -!- MISCELLANEOUS: PHARMACOLOGICALLY INHIBITED BY SUBMILLIMOLAR
CC       CONCENTRATIONS OF HG2+.
CC   -!- SIMILARITY: BELONGS TO THE TRANSMEMBRANE CHANNEL MIP FAMILY.
CC   --------------------------------------------------------------------------
CC   This SWISS-PROT entry is copyright. It is produced through a collaboration
CC   between  the Swiss Institute of Bioinformatics  and the  EMBL outstation -
CC   the European Bioinformatics Institute.  There are no  restrictions on  its
CC   use  by  non-profit  institutions as long  as its content  is  in  no  way
CC   modified and this statement is not removed.  Usage  by  and for commercial
CC   entities requires a license agreement (See http://www.isb-sib.ch/announce/
CC   or send an email to license@isb-sib.ch).
CC   --------------------------------------------------------------------------
DR   EMBL; M77829; AAA58425.1; -.
DR   EMBL; U41517; AAC50648.1; -.
DR   EMBL; S73482; AAB31193.1; -.
DR   PIR; A41616; A41616.
DR   MIM; 107776; -.
DR   MIM; 110450; -.
DR   PFAM; PF00230; MIP; 1.
DR   PROSITE; PS00221; MIP; 1.
KW   Transport; Transmembrane; Polymorphism; Blood group antigen.
FT   DOMAIN        1     14       CYTOPLASMIC (POTENTIAL).
FT   TRANSMEM     18     35       POTENTIAL.
FT   DOMAIN       36     48       EXTRACELLULAR (POTENTIAL).
FT   TRANSMEM     49     67       POTENTIAL.
FT   DOMAIN       68     93       CYTOPLASMIC (POTENTIAL).
FT   TRANSMEM     94    115       POTENTIAL.
FT   DOMAIN      116    135       EXTRACELLULAR (POTENTIAL).
FT   TRANSMEM    136    156       POTENTIAL.
FT   DOMAIN      157    164       CYTOPLASMIC (POTENTIAL).
FT   TRANSMEM    165    184       POTENTIAL.
FT   DOMAIN      185    210       EXTRACELLULAR (POTENTIAL).
FT   TRANSMEM    211    232       POTENTIAL.
FT   DOMAIN      233    269       CYTOPLASMIC (POTENTIAL).
FT   SITE        189    189       HG(2+)-SENSITIVE RESIDUE.
FT   DOMAIN      159    162       POLY-ARG.
FT   CARBOHYD     42     42       POTENTIAL.
FT   CARBOHYD    205    205       POTENTIAL.
FT   VARIANT      45     45       A -> V (IN CO(A-B+) ANTIGEN).
FT                                /FTId=VAR_004400.
SQ   SEQUENCE   269 AA;  28526 MW;  8063A7AD CRC32;
     MASEFKKKLF WRAVVAEFLA TTLFVFISIG SALGFKYPVG NNQTAVQDNV KVSLAFGLSI
     ATLAQSVGHI SGAHLNPAVT LGLLLSCQIS IFRALMYIIA QCVGAIVATA ILSGITSSLT
     GNSLGRNDLA DGVNSGQGLG IEIIGTLQLV LCVLATTDRR RRDLGGSAPL AIGLSVALGH
     LLAIDYTGCG INPARSFGSA VITHNFSNHW IFWVGPFIGG ALAVLIYDFI LAPRSSDLTD
     RVKVWTSGQV EEYDLDADDI NSRVEMKPK
//
%</AQP1SP>
%    \end{macrocode}
%    \begin{macrocode}
%<*AQPPHD>

From phd@EMBL-Heidelberg.de Wed Nov 25 10:24:25 1998
Date: Tue, 24 Nov 1998 17:45:25 +0100
From: Protein Prediction <phd@EMBL-Heidelberg.de>
To: eric.beitz@uni-tuebingen.de
Subject: PredictProtein




The following information has been received by the server:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

________________________________________________________________________________

reference predict_h25873 (Tue Nov 24 17:43:21 MET 1998)
from eric.beitz@uni-tuebingen.de
password(###)
resp MAIL
orig HTML
prediction of: -secondary structure   (PHDsec)-solvent accessibility (PHDacc)-
return msf format
# no description
MASEIKKKLFWRAVVAEFLAMTLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSIATLAQSVGHISGAHSNPAVT
LGLLLSCQISILRAVMYIIAQCVGAIVASAILSGITSSLLENSLGRNDLARGVNSGQGLGIEIIGTLQLVLCVLATTDRR
RRDLGGSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSAVLTRNFSNHWIFWVGPFIGSALAVLIYDFILAPRSSDFTD
RMKVWTSGQVEEYDLDADDINSRVEMKPK

________________________________________________________________________________





Result of PROSITE search (Amos Bairoch):    
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

please quote: A Bairoch, P Bucher & K Hofmann: The PROSITE database,
its status in 1997. Nucl. Acids Res., 1997, 25, 217-221.

________________________________________________________________________________


--------------------------------------------------------

--------------------------------------------------------

Pattern-ID: ASN_GLYCOSYLATION PS00001 PDOC00001
Pattern-DE: N-glycosylation site
Pattern:    N[^P][ST][^P]
   42       NQTL
   250      NFSN

Pattern-ID: GLYCOSAMINOGLYCAN PS00002 PDOC00002
Pattern-DE: Glycosaminoglycan attachment site
Pattern:    SG.G
   135      SGQG

Pattern-ID: PKC_PHOSPHO_SITE PS00005 PDOC00005
Pattern-DE: Protein kinase C phosphorylation site
Pattern:    [ST].[RK]
   157      TDR
   398      TDR

Pattern-ID: CK2_PHOSPHO_SITE PS00006 PDOC00006
Pattern-DE: Casein kinase II phosphorylation site
Pattern:    [ST].{2}[DE]
   118      SLLE
   383      SRVE

Pattern-ID: MYRISTYL PS00008 PDOC00008
Pattern-DE: N-myristoylation site
Pattern:    G[^EDRKHPFYW].{2}[STAGCN][^P]
   30       GSALGF
   92       GLSIAT
   179      GLLLSC
   288      GAIVAS
   407      GITSSL
   544      GVNSGQ
   722      GLSVAL
   917      GINPAR
   1141     GSALAV

Pattern-ID: PROKAR_LIPOPROTEIN PS00013 PDOC00013
Pattern-DE: Prokaryotic membrane lipoprotein lipid attachment site
Pattern:    [^DERK]{6}[LIVMFWSTAG]{2}[LIVMFYSTAGCQ][AGS]C
   77       PAVTLGLLLSC

Pattern-ID: MIP PS00221 PDOC00193
Pattern-DE: MIP family signature
Pattern:    [HNQA].NP[STA][LIVMF][ST][LIVMF][GSTAFY]
   74       HSNPAVTLG




________________________________________________________________________________





Result of ProDom domain search (Corpet, Gouzy, Kahn):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- please quote: ELL Sonnhammer & D Kahn, Prot. Sci., 1994, 3, 482-492

________________________________________________________________________________


--- ------------------------------------------------------------
--- Results from running BLAST against PRODOM domains
---
--- PLEASE quote:
---       F Corpet, J Gouzy, D Kahn (1998).  The ProDom database
---       of protein domain families. Nucleic Ac Res 26:323-326.
---
--- BEGIN of BLASTP output
BLASTP 1.4.7 [16-Oct-94] [Build 17:06:52 Oct 31 1994]

Reference:  Altschul, Stephen F., Warren Gish, Webb Miller, Eugene W. Myers,
and David J. Lipman (1990).  Basic local alignment search tool.  J. Mol. Biol.
215:403-10.

Query=  prot (#) ppOld, no description /home/phd/server/work/predict_h25873
        (269 letters)

Database:  /home/phd/ut/prodom/prodom_34_2
           53,597 sequences; 6,740,067 total letters.
Searching..................................................done

                                                                     Smallest
                                                                       Sum
                                                              High  Probability
Sequences producing High-scoring Segment Pairs:              Score  P(N)      N

 390 p34.2 (45) MIP(6) AQP1(4) GLPF(4)  // PROTEIN INTRIN...   270  2.0e-32   1
 45663 p34.2 (1) AQPZ_ECOLI // AQUAPORIN Z.                     90  3.2e-13   2
 45611 p34.2 (1) AQP2_HUMAN // AQUAPORIN-CD (AQP-CD) (WAT...   136  6.0e-13   1
 304 p34.2 (61) AQP2(10) GLPF(6) MIP(5)  // PROTEIN CHANN...   121  9.2e-11   1
 45607 p34.2 (1) PMIP_NICAL // POLLEN-SPECIFIC MEMBRANE I...    80  1.2e-07   2
 45606 p34.2 (1) BIB_DROME // NEUROGENIC PROTEIN BIG BRAIN.     80  1.2e-05   2
 2027 p34.2 (15) GLPF(9) AQP3(2)  // PROTEIN FACILITATOR ...    60  3.4e-05   2
 45615 p34.2 (1) GLPF_STRPN // GLYCEROL UPTAKE FACILITATO...    63  0.024     1
 45638 p34.2 (1) AQP5_HUMAN // AQUAPORIN 5.                     61  0.044     1



>390 p34.2 (45) MIP(6) AQP1(4) GLPF(4)  // PROTEIN INTRINSIC CHANNEL WATER
  AQUAPORIN TONOPLAST MEMBRANE FOR PLASMA LENS
  Length = 88

 Score = 270 (125.3 bits), Expect = 2.0e-32, P = 2.0e-32
 Identities = 47/67 (70%), Positives = 56/67 (83%)

Query:   156 TTDRRRRDLGGSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSAVLTRNFSNHWIFWVG 215
             T D+RR  +GGSAPL IG SVALGHL+ I YTGCG+NPARSFG AV+T NF+NHW++WVG
Sbjct:    22 TDDKRRGSVGGSAPLPIGFSVALGHLIGIPYTGCGMNPARSFGPAVVTGNFTNHWVYWVG 81

Query:   216 PFIGSAL 222
             P IG+ L
Sbjct:    82 PIIGAVL 88

 Score = 95 (44.1 bits), Expect = 2.3e-06, P = 2.3e-06
 Identities = 20/33 (60%), Positives = 23/33 (69%)

Query:   136 GQGLGIEIIGTLQLVLCVLATTDRRRRDLGGSA 168
             GQ L +EIIGT QLV CV ATTD +RR   G +
Sbjct:     1 GQNLVVEIIGTFQLVYCVFATTDDKRRGSVGGS 33


>45663 p34.2 (1) AQPZ_ECOLI // AQUAPORIN Z.
  Length = 96

 Score = 90 (41.8 bits), Expect = 3.2e-13, Sum P(2) = 3.2e-13
 Identities = 18/36 (50%), Positives = 25/36 (69%)

Query:   166 GSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSAV 201
             G AP+AIGL++ L HL++I  T   +NPARS   A+
Sbjct:    25 GFAPIAIGLALTLIHLISIPVTNTSVNPARSTAVAI 60

 Score = 63 (29.2 bits), Expect = 3.2e-13, Sum P(2) = 3.2e-13
 Identities = 11/25 (44%), Positives = 14/25 (56%)

Query:   210 WIFWVGPFIGSALAVLIYDFILAPR 234
             W FWV P +G  +  LIY  +L  R
Sbjct:    71 WFFWVVPIVGGIIGGLIYRTLLEKR 95


>45611 p34.2 (1) AQP2_HUMAN // AQUAPORIN-CD (AQP-CD) (WATER CHANNEL PROTEIN FOR
  RENAL COLLECTING DUCT) (ADH WATER CHANNEL) (AQUAPORIN 2) (COLLECTING DUCT
  WATER CHANNEL PROTEIN) (WCH-CD).
  Length = 49

 Score = 136 (63.1 bits), Expect = 6.0e-13, P = 6.0e-13
 Identities = 23/42 (54%), Positives = 34/42 (80%)

Query:    50 VKVSLAFGLSIATLAQSVGHISGAHSNPAVTLGLLLSCQISI 91
             +++++AFGL I TL Q++GHISGAH NPAVT+  L+ C +S+
Sbjct:     8 LQIAMAFGLGIGTLVQALGHISGAHINPAVTVACLVGCHVSV 49


>304 p34.2 (61) AQP2(10) GLPF(6) MIP(5)  // PROTEIN CHANNEL WATER AQUAPORIN
  INTRINSIC DUCT COLLECTING FOR TONOPLAST WCH-CD
  Length = 43

 Score = 121 (56.1 bits), Expect = 9.2e-11, P = 9.2e-11
 Identities = 24/43 (55%), Positives = 31/43 (72%)

Query:    70 ISGAHSNPAVTLGLLLSCQISILRAVMYIIAQCVGAIVASAIL 112
             ISG H NPAVT+GLL+  +   LRAV YI AQ +GA+  +A+L
Sbjct:     1 ISGGHINPAVTIGLLIGGRFPFLRAVFYIAAQLLGAVAGAALL 43


>45607 p34.2 (1) PMIP_NICAL // POLLEN-SPECIFIC MEMBRANE INTEGRAL PROTEIN.
  Length = 69

 Score = 80 (37.1 bits), Expect = 1.2e-07, Sum P(2) = 1.2e-07
 Identities = 17/54 (31%), Positives = 32/54 (59%)

Query:   149 LVLCVLATTDRRRRDLGGSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSAVL 202
             L++ V++      R +G  A +A+G+++ L   +A   +G  +NPARS G A++
Sbjct:    13 LLMFVISGVATDDRAIGQVAGIAVGMTITLNVFVAGPISGASMNPARSIGPAIV 66

 Score = 34 (15.8 bits), Expect = 1.2e-07, Sum P(2) = 1.2e-07
 Identities = 8/18 (44%), Positives = 11/18 (61%)

Query:   136 GQGLGIEIIGTLQLVLCV 153
             GQ L IEII +  L+  +
Sbjct:     1 GQSLAIEIIISFLLMFVI 18


>45606 p34.2 (1) BIB_DROME // NEUROGENIC PROTEIN BIG BRAIN.
  Length = 119

 Score = 80 (37.1 bits), Expect = 1.2e-05, Sum P(2) = 1.2e-05
 Identities = 15/34 (44%), Positives = 24/34 (70%)

Query:     1 MASEIKKKLFWRAVVAEFLAMTLFVFISIGSALG 34
             M +EI+   FWR++++E LA  ++VFI  G+A G
Sbjct:    55 MQAEIRTLEFWRSIISECLASFMYVFIVCGAAAG 88

 Score = 39 (18.1 bits), Expect = 1.2e-05, Sum P(2) = 1.2e-05
 Identities = 9/17 (52%), Positives = 12/17 (70%)

Query:    53 SLAFGLSIATLAQSVGH 69
             +LA GL++ATL Q   H
Sbjct:   103 ALASGLAMATLTQCFLH 119


>2027 p34.2 (15) GLPF(9) AQP3(2)  // PROTEIN FACILITATOR GLYCEROL UPTAKE
  AQUAPORIN DIFFUSION UPTAKE/EFFLUX PEPX 5'REGION ORF1
  Length = 55

 Score = 60 (27.8 bits), Expect = 3.4e-05, Sum P(2) = 3.4e-05
 Identities = 17/46 (36%), Positives = 20/46 (43%)

Query:   156 TTDRRRRDLGGSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSAV 201
             T D      GG  PL +G  V    +     TG  INPAR FG  +
Sbjct:    10 TDDGNNVPSGGLHPLMVGFLVMGIGMSLGGTTGYAINPARDFGPRI 55

 Score = 37 (17.2 bits), Expect = 3.4e-05, Sum P(2) = 3.4e-05
 Identities = 7/10 (70%), Positives = 8/10 (80%)

Query:   149 LVLCVLATTD 158
             L+ CVLA TD
Sbjct:     2 LIACVLALTD 11


>45615 p34.2 (1) GLPF_STRPN // GLYCEROL UPTAKE FACILITATOR PROTEIN.
  Length = 26

 Score = 63 (29.2 bits), Expect = 0.025, P = 0.024
 Identities = 13/23 (56%), Positives = 18/23 (78%)

Query:   205 NFSNHWIFWVGPFIGSALAVLIY 227
             ++S  WI  VGP IG+ALAVL++
Sbjct:     1 DWSYAWIPVVGPVIGAALAVLVF 23


>45638 p34.2 (1) AQP5_HUMAN // AQUAPORIN 5.
  Length = 27

 Score = 61 (28.3 bits), Expect = 0.045, P = 0.044
 Identities = 11/19 (57%), Positives = 18/19 (94%)

Query:    50 VKVSLAFGLSIATLAQSVG 68
             ++++LAFGL+I TLAQ++G
Sbjct:     8 LQIALAFGLAIGTLAQALG 26


Parameters:
  E=0.1
  B=500

  V=500
  -ctxfactor=1.00

  Query                        -----  As Used  -----    -----  Computed  ----
  Frame  MatID Matrix name     Lambda    K       H      Lambda    K       H
   +0      0   BLOSUM62        0.322   0.138   0.394    same    same    same

  Query
  Frame  MatID  Length  Eff.Length   E    S W   T  X     E2  S2
   +0      0      269       269     0.10 69 3  11 22    0.22 33


Statistics:
  Query          Expected         Observed           HSPs       HSPs
  Frame  MatID  High Score       High Score       Reportable  Reported
   +0      0    59 (27.4 bits)  270 (125.3 bits)       14         14

  Query         Neighborhd  Word      Excluded    Failed   Successful  Overlaps
  Frame  MatID   Words      Hits        Hits    Extensions Extensions  Excluded
   +0      0      5349     3124825      609708     2510548     4569         2

  Database:  /home/phd/ut/prodom/prodom_34_2
    Release date:  unknown
    Posted date:  12:24 PM MET DST May 06, 1998
  # of letters in database:  6,740,067
  # of sequences in database:  53,597
  # of database sequences satisfying E:  9
  No. of states in DFA:  564 (111 KB)
  Total size of DFA:  226 KB (256 KB)
  Time to generate neighborhood:  0.03u 0.00s 0.03t  Real: 00:00:00
  Time to search database:  9.80u 0.03s 9.83t  Real: 00:00:10
  Total cpu time:  9.90u 0.06s 9.96t  Real: 00:00:10
--- END of BLASTP output
--- ------------------------------------------------------------
---
--- Again: these results were obtained based on the domain data-
--- base collected by Daniel Kahn and his coworkers in Toulouse.
---
--- PLEASE quote:
---       F Corpet, J Gouzy, D Kahn (1998).  The ProDom database
---       of protein domain families. Nucleic Ac Res 26:323-326.
---
--- The general WWW page is on:
----      ---------------------------------------
---       http://www.toulouse.inra.fr/prodom.html
----      ---------------------------------------
---
--- For WWW graphic interfaces to PRODOM, in particular for your
--- protein family, follow the following links (each line is ONE
--- single link for your protein!!):
---
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=390 ==> multiple alignment, consensus, PDB and PROSITE links of domain 390
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=390 ==> graphical output of all proteins having domain 390
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=45663 ==> multiple alignment, consensus, PDB and PROSITE links of domain 45663
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=45663 ==> graphical output of all proteins having domain 45663
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=45611 ==> multiple alignment, consensus, PDB and PROSITE links of domain 45611
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=45611 ==> graphical output of all proteins having domain 45611
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=304 ==> multiple alignment, consensus, PDB and PROSITE links of domain 304
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=304 ==> graphical output of all proteins having domain 304
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=45607 ==> multiple alignment, consensus, PDB and PROSITE links of domain 45607
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=45607 ==> graphical output of all proteins having domain 45607
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=45606 ==> multiple alignment, consensus, PDB and PROSITE links of domain 45606
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=45606 ==> graphical output of all proteins having domain 45606
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=2027 ==> multiple alignment, consensus, PDB and PROSITE links of domain 2027
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=2027 ==> graphical output of all proteins having domain 2027
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=45615 ==> multiple alignment, consensus, PDB and PROSITE links of domain 45615
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=45615 ==> graphical output of all proteins having domain 45615
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=45638 ==> multiple alignment, consensus, PDB and PROSITE links of domain 45638
http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=45638 ==> graphical output of all proteins having domain 45638
---
--- NOTE: if you want to use the link, make sure the entire line
---       is pasted as URL into your browser!
---
--- END of PRODOM
--- ------------------------------------------------------------

________________________________________________________________________________


--- Database used for sequence comparison:
--- SEQBASE    RELEASE 34.0 OF EMBL/SWISS-PROT WITH  59021 SEQUENCES




The alignment that has been used as input to the network is:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

________________________________________________________________________________

--- ------------------------------------------------------------
--- MAXHOM multiple sequence alignment
--- ------------------------------------------------------------
---
--- MAXHOM ALIGNMENT HEADER: ABBREVIATIONS FOR SUMMARY
--- ID           : identifier of aligned (homologous) protein
--- STRID        : PDB identifier (only for known structures)
--- PIDE         : percentage of pairwise sequence identity
--- WSIM         : percentage of weighted similarity
--- LALI         : number of residues aligned
--- NGAP         : number of insertions and deletions (indels)
--- LGAP         : number of residues in all indels
--- LSEQ2        : length of aligned sequence
--- ACCNUM       : SwissProt accession number
--- NAME         : one-line description of aligned protein
---
--- MAXHOM ALIGNMENT HEADER: SUMMARY
ID         STRID  IDE WSIM LALI NGAP LGAP LEN2 ACCNUM NAME
aqp1_rat          100  100  269    0    0  269 P29975 PROXIMAL TUBULE) (AQUAPOR
aqp1_mouse         98   99  269    0    0  269 Q02013 PROXIMAL TUBULE) (AQUAPOR
aqp1_human         93   97  269    0    0  269 P29972 PROXIMAL TUBULE) (AQUAPOR
aqp1_bovin         90   95  269    1    2  271 P47865 PROXIMAL TUBULE) (AQUAPOR
aqp1_sheep         90   94  269    2    3  272 P56401 PROXIMAL TUBULE) (AQUAPOR
aqpa_ranes         78   89  268    2    5  272 P50501 AQUAPORIN FA-CHIP.
aqp2_dasno         49   73  109    1    7  109 P79164 PROTEIN) (WCH-CD) (FRAGME
aqp2_bovin         49   73  109    1    7  109 P79099 PROTEIN) (WCH-CD) (FRAGME
aqp2_canfa         48   72  109    1    7  109 P79144 PROTEIN) (WCH-CD) (FRAGME
aqp2_rabit         48   73  109    1    7  109 P79213 PROTEIN) (WCH-CD) (FRAGME
aqp2_elema         47   72  109    1    7  109 P79168 PROTEIN) (WCH-CD) (FRAGME
aqp2_horse         47   72  109    1    7  109 P79165 PROTEIN) (WCH-CD) (FRAGME
aqp2_proha         47   73  109    1    7  109 P79229 PROTEIN) (WCH-CD) (FRAGME
mip_rat            46   73  259    1    7  261 P09011 LENS FIBER MAJOR INTRINSI
aqp2_oryaf         46   72  109    1    7  109 P79200 PROTEIN) (WCH-CD) (FRAGME
mip_mouse          46   73  261    1    7  263 P51180 LENS FIBER MAJOR INTRINSI
mip_ranpi          45   73  261    1    7  263 Q06019 LENS FIBER MAJOR INTRINSI
mip_bovin          45   73  261    1    7  263 P06624 LENS FIBER MAJOR INTRINSI
mip_human          45   73  261    1    7  263 P30301 LENS FIBER MAJOR INTRINSI
mip_chick          45   72  110    1    1  112 P28238 LENS FIBER MAJOR INTRINSI
aqp5_rat           44   71  262    2    8  265 P47864 AQUAPORIN 5.
aqp5_human         44   71  262    2    8  265 P55064 AQUAPORIN 5.
aqp2_human         44   72  261    2    8  271 P41181 PROTEIN) (WCH-CD).
aqp4_human         43   70  266    2    5  323 P55087 AQUAPORIN 4 (WCH4) (MERCU
aqp4_rat           43   70  266    2    5  323 P47863 AQUAPORIN 4 (WCH4) (MERCU
aqp4_mouse         43   69  265    3    6  322 P55088 AQUAPORIN 4 (WCH4) (MERCU
aqp2_rat           42   71  261    2    8  271 P34080 PROTEIN) (WCH-CD).
aqp2_mouse         42   71  261    2    8  271 P56402 PROTEIN) (WCH-CD).
wc2a_arath         42   67  248    4   12  287 P43286 PLASMA MEMBRANE INTRINSIC
aqp6_human         42   68  260    2    9  282 Q13520 AQUAPORIN 6 (AQUAPORIN-2
wc2c_arath         41   66  248    4   12  285 P30302 INTRINSIC PROTEIN) (WSI-T
wc2b_arath         41   66  248    4   12  285 P43287 PLASMA MEMBRANE INTRINSIC
wc1c_arath         41   65  238    4   10  286 Q08733 (TMP-B).
wc1b_arath         41   65  238    4   10  286 Q06611 (TMP-A).
tipw_lyces         40   65  237    4   10  286 Q08451 (RIPENING-ASSOCIATED MEMB
wc1a_arath         40   64  238    4   10  286 P43285 PLASMA MEMBRANE INTRINSIC
tipw_pea           40   64  237    4   11  289 P25794 RESPONSIVE PROTEIN 7A).
tipa_arath         38   64  250    3    9  268 P26587 TONOPLAST INTRINSIC PROTE
aqua_atrca         38   64  246    4   10  282 P42767 AQUAPORIN.
dip_antma          38   65  242    2    4  250 P33560 PROBABLE TONOPLAST INTRIN
aqpz_ecoli         37   59  220    4   17  231 P48838 AQUAPORIN Z (BACTERIAL NO
tip2_tobac         37   64  242    2    4  250 P24422 TONOPLAST INTRINSIC PROTE
tip1_tobac         37   64  242    2    4  250 P21653 TONOPLAST INTRINSIC PROTE
tipg_arath         33   62  241    2    4  251 P25818 TONOPLAST INTRINSIC PROTE
bib_drome          33   60  260    4   10  700 P23645 NEUROGENIC PROTEIN BIG BR
tipr_arath         33   62  243    2    4  253 P21652 TONOPLAST INTRINSIC PROTE
tipa_phavu         33   62  246    2    4  256 P23958 TONOPLAST INTRINSIC PROTE
tipg_orysa         32   62  240    2    5  250 P50156 TONOPLAST INTRINSIC PROTE
---
--- MAXHOM ALIGNMENT: IN MSF FORMAT
MSF of: /home/phd/server/work/predict_h25873-22040.hssp from:    1 to:  269
 /home/phd/server/work/predict_h25873-22040.msfRet  MSF:  269  Type: P 24-Nov-98  17:44:5  Check: 3448  ..


 Name: predict_h258    Len:   269  Check: 8331  Weight:  1.00
 Name: aqp1_rat        Len:   269  Check: 8331  Weight:  1.00
 Name: aqp1_mouse      Len:   269  Check: 7552  Weight:  1.00
 Name: aqp1_human      Len:   269  Check: 6501  Weight:  1.00
 Name: aqp1_bovin      Len:   269  Check: 7067  Weight:  1.00
 Name: aqp1_sheep      Len:   269  Check: 7582  Weight:  1.00
 Name: aqpa_ranes      Len:   269  Check: 4844  Weight:  1.00
 Name: aqp2_dasno      Len:   269  Check: 8933  Weight:  1.00
 Name: aqp2_bovin      Len:   269  Check: 9649  Weight:  1.00
 Name: aqp2_canfa      Len:   269  Check: 8990  Weight:  1.00
 Name: aqp2_rabit      Len:   269  Check: 8787  Weight:  1.00
 Name: aqp2_elema      Len:   269  Check: 9381  Weight:  1.00
 Name: aqp2_horse      Len:   269  Check: 8993  Weight:  1.00
 Name: aqp2_proha      Len:   269  Check: 8855  Weight:  1.00
 Name: mip_rat         Len:   269  Check: 9773  Weight:  1.00
 Name: aqp2_oryaf      Len:   269  Check: 8554  Weight:  1.00
 Name: mip_mouse       Len:   269  Check: 9723  Weight:  1.00
 Name: mip_ranpi       Len:   269  Check: 5937  Weight:  1.00
 Name: mip_bovin       Len:   269  Check: 1430  Weight:  1.00
 Name: mip_human       Len:   269  Check:  372  Weight:  1.00
 Name: mip_chick       Len:   269  Check: 4658  Weight:  1.00
 Name: aqp5_rat        Len:   269  Check: 9033  Weight:  1.00
 Name: aqp5_human      Len:   269  Check: 6547  Weight:  1.00
 Name: aqp2_human      Len:   269  Check: 6209  Weight:  1.00
 Name: aqp4_human      Len:   269  Check: 2589  Weight:  1.00
 Name: aqp4_rat        Len:   269  Check: 4412  Weight:  1.00
 Name: aqp4_mouse      Len:   269  Check: 2845  Weight:  1.00
 Name: aqp2_rat        Len:   269  Check: 5748  Weight:  1.00
 Name: aqp2_mouse      Len:   269  Check: 6526  Weight:  1.00
 Name: wc2a_arath      Len:   269  Check: 4866  Weight:  1.00
 Name: aqp6_human      Len:   269  Check: 9404  Weight:  1.00
 Name: wc2c_arath      Len:   269  Check: 6187  Weight:  1.00
 Name: wc2b_arath      Len:   269  Check: 7328  Weight:  1.00
 Name: wc1c_arath      Len:   269  Check: 8575  Weight:  1.00
 Name: wc1b_arath      Len:   269  Check: 9544  Weight:  1.00
 Name: tipw_lyces      Len:   269  Check: 9283  Weight:  1.00
 Name: wc1a_arath      Len:   269  Check:  598  Weight:  1.00
 Name: tipw_pea        Len:   269  Check: 9253  Weight:  1.00
 Name: tipa_arath      Len:   269  Check: 6544  Weight:  1.00
 Name: aqua_atrca      Len:   269  Check: 2848  Weight:  1.00
 Name: dip_antma       Len:   269  Check: 9619  Weight:  1.00
 Name: aqpz_ecoli      Len:   269  Check: 5641  Weight:  1.00
 Name: tip2_tobac      Len:   269  Check:  490  Weight:  1.00
 Name: tip1_tobac      Len:   269  Check:  622  Weight:  1.00
 Name: tipg_arath      Len:   269  Check: 3231  Weight:  1.00
 Name: bib_drome       Len:   269  Check: 7687  Weight:  1.00
 Name: tipr_arath      Len:   269  Check: 4476  Weight:  1.00
 Name: tipa_phavu      Len:   269  Check: 5563  Weight:  1.00
 Name: tipg_orysa      Len:   269  Check: 3537  Weight:  1.00

//


              1                                                   50
predict_h258  MASEIKKKLF WRAVVAEFLA MTLFVFISIG SALGFNYPLE RNQTLVQDNV
aqp1_rat      MASEIKKKLF WRAVVAEFLA MTLFVFISIG SALGFNYPLE RNQTLVQDNV
aqp1_mouse    MASEIKKKLF WRAVVAEFLA MTLFVFISIG SALGFNYPLE RNQTLVQDNV
aqp1_human    MASEFKKKLF WRAVVAEFLA TTLFVFISIG SALGFKYPVG NNQTAVQDNV
aqp1_bovin    MASEFKKKLF WRAVVAEFLA MILFIFISIG SALGFHYPIK SNQTtvQDNV
aqp1_sheep    MASEFKKKLF WRAVVAEFLA MILFIFISIG SALGFHYPIK SNQTtvQDNV
aqpa_ranes    MASEFKKKAF WRAVIAEFLA MILFVFISIG AALGFNFPIE EKANQtqDIV
aqp2_dasno    ......SVAF SRAVLAEFLA TLIFVFFGLG SALSWPQALP S.......VL
aqp2_bovin    ......SIAF SRAVLAEFLA TLLFVFFGLG SALNWPQALP S.......VL
aqp2_canfa    ......SVAF SRAVFAEFLA TLLFVFFGLG SALNWPQALP S.......VL
aqp2_rabit    ......SIAF SRAVFAEFLA TLLFVFFGLG SALNWPSALP S.......TL
aqp2_elema    ......SIAF SRAVFSEFLA TLLFVFFGLG SALNWPQALP S.......VL
aqp2_horse    ......SIAF SRAVLAEFLA TLLFVFFGLG SALNWPQAMP S.......VL
aqp2_proha    ......SIAF SRAVLSEFLA TLLFVFFGLG SALNWPQALP S.......VL
mip_rat       ...ELRSASF WRAIFAEFFA TLFYVFFGLG SSLRWA.... ...PGPLHVL
aqp2_oryaf    ......SIAF SKAVFSEFLA TLLFVFFGLG SALNWPQALP S.......GL
mip_mouse     .MWELRSASF WRAIFAEFFA TLFYVFFGLG ASLRWA.... ...PGPLHVL
mip_ranpi     .MWEFRSFSF WRAVFAEFFG TMFYVFFGLG ASLKWAAGPA .......NVL
mip_bovin     .MWELRSASF WRAICAEFFA SLFYVFFGLG ASLRWA.... ...PGPLHVL
mip_human     .MWELRSASF WRAIFAEFFA TLFYVFFGLG SSLRWA.... ...PGPLHVL
mip_chick     .......... .......... .......... .......... ..........
aqp5_rat      MKKEVCSLAF FKAVFAEFLA TLIFVFFGLG SALKWPSALP T.......IL
aqp5_human    MKKEVCSVAF LKAVFAEFLA TLIFVFFGLG SALKWPSALP T.......IL
aqp2_human    .MWELRSIAF SRAVFAEFLA TLLFVFFGLG SALNWPQALP S.......VL
aqp4_human    AFKGVWTQAF WKAVTAEFLA MLIFVLLSLG STINWG...G TEKPLPVDMV
aqp4_rat      AFKGVWTQAF WKAVTAEFLA MLIFVLLSVG STINWG...G SENPLPVDMV
aqp4_mouse    AFKGVWTQAF WKAVSAEFLA TLIFVL.GVG STINWG...G SENPLPVDMV
aqp2_rat      .MWELRSIAF SRAVLAEFLA TLLFVFFGLG SALQWASSPP S.......VL
aqp2_mouse    .MWELRSIAY CRAVLAEFLA TLLFVFFGLG SALQWASSPP S.......VL
wc2a_arath    DGAELKKWSF YRAVIAEFVA TLLFLYITVL TVIGYKIQSD TDAGGVdgIL
aqp6_human    MLACRLWKAI SRALFAEFLA TGLYVFFGVG SVMRWPTALP S.......VL
wc2c_arath    DAEELTKWSL YRAVIAEFVA TLLFLYVTVL TVIGYKIQSD TKAGGVdgIL
wc2b_arath    DADELTKWSL YRAVIAEFVA TLLFLYITVL TVIGYKIQSD TKAGGVdgIL
wc1c_arath    EPGELSSWSF YRAGIAEFIA TFLFLYITVL TVMGVKRA.. PNMCASVGIQ
wc1b_arath    EPGELASWSF WRAGIAEFIA TFLFLYITVL TVMGVKR..S PNMCASVGIQ
tipw_lyces    EPGELSSWSF YRAGIAEFMA TFLFLYITIL TVMGLKRSDS LCSSV..GIQ
wc1a_arath    EPGELSSWSF WRAGIAEFIA TFLFLYITVL TVMGVKR..S PNMCASVGIQ
tipw_pea      EPSELTSWSF YRAGIAEFIA TFLFLYITVL TVMGVVRESS KCKTV..GIQ
tipa_arath    RADEATHPDS IRATLAEFLS TFVFVFAAEG SILSLDKLYW EHAAHAGTni
aqua_atrca    DMGELKLWSF WRAAIAEFIA TLLFLYITVA TVIGYKKETD PCASVGL..L
dip_antma     SIGDSFSVAS IKAYVAEFIA TLLFVFAGVG SAIAYNKLTS DAALDPAGLV
aqpz_ecoli    .........M FRKLAAECFG TFWLVFGGCG SAVLAAGFPE ....LGIGFA
tip2_tobac    SIGDSFSVGS LKAYVAEFIA TLLFVFAGVG SAIAYNKLTA DAALDPAGLV
tip1_tobac    SIGDSFSVGS LKAYVAEFIA TLLFVFAGVG SAIAYNKLTA DAALDPAGLV
tipg_arath    RPDEATRPDA LKAALAEFIS TLIFVVAGSG SGMAFNKLTE NGATTPSGLV
bib_drome     MQAEIRTLEF WRSIISECLA SFMYVFIVCG AAAGVGVGAS VSSVL....L
tipr_arath    RPDEATRPDA LKAALAEFIS TLIFVVAGSG SGMAFNKLTE NGATTPSGLV
tipa_phavu    RTDEATHPDS MRASLAEFAS TFIFVFAGEG SGLALVKIYQ DSAFSAGELL
tipg_orysa    SHQEVYHPGA LKAALAEFIS TLIFVFAGQG SGMAFSKLTG GGATTPAGLI

              51                                                 100
predict_h258  KVSLAFGLSI ATLAQSVGHI SGAHSNPAVT LGLLLSCQIS ILRAVMYIIA
aqp1_rat      KVSLAFGLSI ATLAQSVGHI SGAHSNPAVT LGLLLSCQIS ILRAVMYIIA
aqp1_mouse    KVSLAFGLSI ATLAQSVGHI SGAHLNPAVT LGLLLSCQIS ILRAVMYIIA
aqp1_human    KVSLAFGLSI ATLAQSVGHI SGAHLNPAVT LGLLLSCQIS IFRALMYIIA
aqp1_bovin    KVSLAFGLSI ATLAQSVGHI SGAHLNPAVT LGLLLSCQIS VLRAIMYIIA
aqp1_sheep    KVSLAFGLSI ATLAQSVGHI SGAHLNPAVT LGLLLSCQIS ILRAIMYIIA
aqpa_ranes    KVSLAFGISI ATMAQSVGHV SGAHLNPAVT LGCLLSCQIS ILKAVMYIIA
aqp2_dasno    QIALAFGLAI GTLVQALGHV SGAHINPAVT VACLVGCHVS FLRAAFYVAA
aqp2_bovin    QIAMAFGLAI GTLVQALGHV SGAHINPAVT VACLVGCHVS FLRAVFYVAA
aqp2_canfa    QIAMAFGLGI GTLVQALGHV SGAHINPAVT VACLVGCHVS FLRAAFYVAA
aqp2_rabit    QIAMAFGLGI GTLVQALGHV SGAHINPAVT VACLVGCHVS FLRAAFYVAA
aqp2_elema    QIAMAFGLAI GTLVQTLGHI SGAHINPAVT VACLVGCHVS FLRATFYLAA
aqp2_horse    QIAMAFGLAI GTLVQALGHV SGAHINPAVT VACLVGCHVS FLRAAFYVAA
aqp2_proha    QIAMAFGLAI GTLVQTLGHI SGAHINPAVT IACLVGCHVS FLRALFYLAA
mip_rat       QVALAFGLAL ATLVQTVGHI SGAHVNPAVT FAFLVGSQMS LLRAFCYIAA
aqp2_oryaf    QIAMAFGLAI GTLVQTLGHI SGAHINPAVT VACLVGCHVS FLRAIFYVAA
mip_mouse     QVALAFGLAL ATLVQTVGHI SGAHVNPAVT FAFLVGSQMS LLRAFCYIAA
mip_ranpi     VIALAFGLVL ATMVQSIGHV SGAHINPAVT FAFLIGSQMS LFRAIFYIAA
mip_bovin     QVALAFGLAL ATLVQAVGHI SGAHVNPAVT FAFLVGSQMS LLRAICYMVA
mip_human     QVAMAFGLAL ATLVQSVGHI SGAHVNPAVT FAFLVGSQMS LLRAFCYMAA
mip_chick     .......... .......... .......... .......... ..........
aqp5_rat      QISIAFGLAI GTLAQALGPV SGGHINPAIT LALLIGNQIS LLRAVFYVAA
aqp5_human    QIALAFGLAI GTLAQALGPV SGGHINPAIT LALLVGNQIS LLRAFFYVAA
aqp2_human    QIAMAFGLGI GTLVQALGHI SGAHINPAVT VACLVGCHVS VLRAAFYVAA
aqp4_human    LISLCFGLSI ATMVQCFGHI SGGHINPAVT VAMVCTRKIS IAKSVFYIAA
aqp4_rat      LISLCFGLSI ATMVQCFGHI SGGHINPAVT VAMVCTRKIS IAKSVFYITA
aqp4_mouse    LISLCFGLSI ATMVQCLGHI SGGHINPAVT VAMVCTRKIS IAKSVFYIIA
aqp2_rat      QIAVAFGLGI GILVQALGHV SGAHINPAVT VACLVGCHVS FLRAAFYVAA
aqp2_mouse    QIAVAFGLGI GTLVQALGHV SGAHINPAVT VACLVGCHVS FLRAAFYVAA
wc2a_arath    GIAWAFGGMI FILVYCTAGI SGGHINPAVT FGLFLARKVS LPRALLYIIA
aqp6_human    QIAITFNLVT AMAVQVTWKT SGAHANPAVT LAFLVGSHIS LPRAVAYVAA
wc2c_arath    GIAWAFGGMI FILVYCTAGI SGGHINPAVT FGLFLARKVS LIRAVLYMVA
wc2b_arath    GIAWAFGGMI FILVYCTAGI SGGHINPAVT FGLFLARKVS LIRAVLYMVA
wc1c_arath    GIAWAFGGMI FALVYCTAGI SGGHINPAVT FGLFLARKLS LTRAVFYIVM
wc1b_arath    GIAWAFGGMI FALVYCTAGI SGGHINPAVT FGLFLARKLS LTRAVYYIVM
tipw_lyces    GVAWAFGGMI FALVYCTAGI SGGHINPAVT FGLFLARKLS LTRAVFYMVM
wc1a_arath    GIAWAFGGMI FALVYCTAGI SGGHINPAVT FGLFLARKLS LTRALYYIVM
tipw_pea      GIAWAFGGMI FALVYCTAGI SGGHINPAVT FGLFLARKLS LTRAIFYMVM
tipa_arath    LVALAHAFAL FAAVSAAINV SGGHVNPAVT FGALVGGRVT AIRAIYYWIA
aqua_atrca    GIAWSFGGMI FVLVYCTAGI SGGHINPAVT FGLFLARKVS LLRALVYMIA
dip_antma     AVAVAHAFAL FVGVSMAANV SGGHLNPAVT LGLAVGGNIT ILTGLFYWIA
aqpz_ecoli    GVALAFGLTV LTMAFAVGHI SGGHFNPAVT IGLWAGGRFP AKEVVGYVIA
tip2_tobac    AVAVAHAFAL FVGVSIAANI SGGHLNPAVT LGLAVGGNIT ILTGFFYWIA
tip1_tobac    AVAVAHAFAL FVGVSIAANI SGGHLNPAVT LGLAVGGNIT ILTGFFYWIA
tipg_arath    AAAVAHAFGL FVAVSVGANI SGGHVNPAVT FGAFIGGNIT LLRGILYWIA
bib_drome     ATALASGLAM ATLTQCFLHI SGAHINPAVT LALCVVRSIS PIRAAMYITA
tipr_arath    AAAVAHAFGL FVAVSVGANI SGGHVNPAVT FGAFIGGNIT LLRGILYWIA
tipa_phavu    ALALAHAFAL FAAVSASMHV SGGHVNPAVS FGALIGGRIS VIRAVYYWIA
tipg_orysa    AAAVAHAFAL FVAVSVGANI SGGHVNPAVT FGAFVGGNIT LFRGLLYWIA

              101                                                150
predict_h258  QCVGAIVASA ILSGITSSLL ENSLGRNDLA RGVNSGQGLG IEIIGTLQLV
aqp1_rat      QCVGAIVASA ILSGITSSLL ENSLGRNDLA RGVNSGQGLG IEIIGTLQLV
aqp1_mouse    QCVGAIVATA ILSGITSSLV DNSLGRNDLA HGVNSGQGLG IEIIGTLQLV
aqp1_human    QCVGAIVATA ILSGITSSLT GNSLGRNDLA DGVNSGQGLG IEIIGTLQLV
aqp1_bovin    QCVGAIVATA ILSGITSSLP DNSLGLNALA PGVNSGQGLG IEIIGTLQLV
aqp1_sheep    QCVGAIVATV ILSGITSSLP DNSLGLNALA PGVNSGQGLG IEIIGTLQLV
aqpa_ranes    QCLGAVVATA ILSGITSGLE NNSLGLNGLS PGVSAGQGLG VEILVTFQLV
aqp2_dasno    QLLGAVAGAA ILHEITPPDV RG........ .......... ..........
aqp2_bovin    QLLGAVAGAA LLHEITPPAI RG........ .......... ..........
aqp2_canfa    QLLGAVAGAA LLHEITPPHV RG........ .......... ..........
aqp2_rabit    QLLGAVAGAA LLHEITPAEV RG........ .......... ..........
aqp2_elema    QLLGAVAGAA LLHELTPPDI RG........ .......... ..........
aqp2_horse    QLLGAVAGAA LLHEITPPDI RR........ .......... ..........
aqp2_proha    QLLGAVAGAA LLHELTPPDI RG........ .......... ..........
mip_rat       QLLGAVAGAA VLYSVTPPAV RGNLALNTLH AGVSVGQATT VEIFLTLQFV
aqp2_oryaf    QLLGAVAGAA LLHELTPPDI RG........ .......... ..........
mip_mouse     QLLGAVAGAA VLYSVTPPAV RGNLALNTLH TGVSVGQATT VEIFLTLQFV
mip_ranpi     QLLGAVAGAA VLYGVTPAAI RGNLALNTLH PGVSLGQATT VEIFLTLQFV
mip_bovin     QLLGAVAGAA VLYSVTPPAV RGNLALNTLH PGVSVGQATI VEIFLTLQFV
mip_human     QLLGAVAGAA VLYSVTPPAV RGNLALNTLH PAVSVGQATT VEIFLTLQFV
mip_chick     .......... .......... .......... .......... ..........
aqp5_rat      QLVGAIAGAG ILYWLAPLNA RGNLAVNALN NNTTPGKAMV VELILTFQLA
aqp5_human    QLVGAIAGAG ILYGVAPLNA RGNLAVNALN NNTTQGQAMV VELILTFQLA
aqp2_human    QLLGAVAGAA LLHEITPADI RGDLAVNALS NSTTAGQAVT VELFLTLQLV
aqp4_human    QCLGAIIGAG ILYLVTPPSV VGGLGVTMVH GNLTAGHGLL VELIITFQLV
aqp4_rat      QCLGAIIGAG ILYLVTPPSV VGGLGVTTVH GNLTAGHGLL VELIITFQLV
aqp4_mouse    QCLGAIIGAG ILYLVTPPSV VGGLGVTTVH GNLTAGHGLL VELIITFQLV
aqp2_rat      QLLGAVAGAA ILHEITPVEI RGDLAVNALH NNATAGQAVT VELFLTMQLV
aqp2_mouse    QLLGAVAGAA ILHEITPVEI RGDLAVNALH NNATAGQAVT VELFLTMQLV
wc2a_arath    QCLGAICGVG FVKAFQSSYY TRYGGgnSLA DGYSTGTGLA AEIIGTFVLV
aqp6_human    QLVGATVGAA LLYGVMPGDI RETLGINVVR NSVSTGQAVA VELLLTLQLV
wc2c_arath    QCLGAICGVG FVKAFQSSHY VNYGGgnFLA DGYNTGTGLA AEIIGTFVLV
wc2b_arath    QCLGAICGVG FRQSFQSSYY DRYGGgnSLA DGYNTGTGLA AEIIGTFVLV
wc1c_arath    QCLGAICGAG VVKGFQPNPY QtgGGANTVA HGYTKGSGLG AEIIGTFVLV
wc1b_arath    QCLGAICGAG VVKGFQPKQY QagGGANTIA HGYTKGSGLG AEIIGTFVLV
tipw_lyces    QCLGAICGAG VVKGFMVGPY QrgGGANVVN PGYTKGDGLG AEIIGTFVLV
wc1a_arath    QCLGAICGAG VVKGFQPKQY QagGGANTVA HGYTKGSGLG AEIIGTFVLV
tipw_pea      QVLGAICGAG VVKGFEGKQR FGDLNgnFVA PGYTKGDGLG AEIVGTFILV
tipa_arath    QLLGAILACL LLRLTTNGMR PVGFR...LA SGVGAVNGLV LEIILTFGLV
aqua_atrca    QCAGAICGVG LVKAFMKGPY NqgGGANSVA LGYNKGTAFG AELIGTFVLV
dip_antma     QCLGSTVACL LLKFVTNGL. ..SVPTHGVA AGMDAIQGVV MEIIITFALV
aqpz_ecoli    QVVGGIVAAA LLYLIASGKT GFDAAASGFA sgYSMLSALV VELVLSAGFL
tip2_tobac    QLLGSTVACL LLKYVTNGL. ..AVPTHGVA AGLNGFQGVV MEIIITFALV
tip1_tobac    QLLGSTVACL LLKYVTNGL. ..AVPTHGVA AGLNGLQGVV MEIIITFALV
tipg_arath    QLLGSVVACL ILKFATGGLA VPAFG...LS AGVGVLNAFV FEIVMTFGLV
bib_drome     QCGGGIAGAA LLYGVTVPGY QGNLQAasHS AALAAWERFG VEFILTSLVV
tipr_arath    QLLGSVVACL ILKFATGGLA VPPFG...LS AGVGVLNAFV FEIVMTFGLV
tipa_phavu    QLLGSIVAAL VLRLVTNNMR PSGF...HVS PGVGVGHMFI LEVVMTFGLM
tipg_orysa    QLLGSTVACF LLRFSTGGLA TGTFGL.... TGVSVWEALV LEIVMTFGLV

              151                                                200
predict_h258  LCVLATTDRR RRDLGGSAPL AIGLSVALGH LLAIDYTGCG INPARSFGSA
aqp1_rat      LCVLATTDRR RRDLGGSAPL AIGLSVALGH LLAIDYTGCG INPARSFGSA
aqp1_mouse    LCVLATTDRR RRDLGGSAPL AIGLSVALGH LLAIDYTGCG INPARSFGSA
aqp1_human    LCVLATTDRR RRDLGGSAPL AIGLSVALGH LLAIDYTGCG INPARSFGSA
aqp1_bovin    LCVLATTDRR RRDLGGSGPL AIGFSVALGH LLAIDYTGCG INPARSFGSS
aqp1_sheep    LCVLATTDRR RrdLGDSGPL AIGFSVALGH LLAIDYTGCG INPARSFGSS
aqpa_ranes    LCVVAVTDRR RHDVSGSVPL AIGLSVALGH LIAIDYTGCG MNPARSFGSA
aqp2_dasno    .......... .......... .......... .......... ..........
aqp2_bovin    .......... .......... .......... .......... ..........
aqp2_canfa    .......... .......... .......... .......... ..........
aqp2_rabit    .......... .......... .......... .......... ..........
aqp2_elema    .......... .......... .......... .......... ..........
aqp2_horse    .......... .......... .......... .......... ..........
aqp2_proha    .......... .......... .......... .......... ..........
mip_rat       LCIFATYDER RNGRMGSVAL AVGFSLTLGH LFGMYYTGAG MNPARSFAPA
aqp2_oryaf    .......... .......... .......... .......... ..........
mip_mouse     LCIFATYDER RNGRMGSVAL AVGFSLTLGH LFGMYYTGAG MNPARSFAPA
mip_ranpi     LCIFATYDER RNGRLGSVSL AIGFSLTLGH LFGLYYTGAS MNPARSFAPA
mip_bovin     LCIFATYDER RNGRLGSVAL AVGFSLTLGH LFGMYYTGAG MNPARSFAPA
mip_human     LCIFATYDER RNGQLGSVAL AVGFSLALGH LFGMYYTGAG MNPARSFAPA
mip_chick     ........DR HDGRPGSAAL PVGFSLALGH LFGIPFTGAG MNPARSFAPA
aqp5_rat      LCIFSSTDSR RTSPVGSPAL SIGLSVTLGH LVGIYFTGCS MNPARSFGPA
aqp5_human    LCIFASTDSR RTSPVGSPAL SIGLSVTLGH LVGIYFTGCS MNPARSFGPA
aqp2_human    LCIFASTDER RGENPGTPAL SIGFSVALGH LLGIHYTGCS MNPARSLAPA
aqp4_human    FTIFASCDSK RTDVTGSIAL AIGFSVAIGH LFAINYTGAS MNPARSFGPA
aqp4_rat      FTIFASCDSK RTDVTGSVAL AIGFSVAIGH LFAINYTGAS MNPARSFGPA
aqp4_mouse    FTVFASCDSK RTDVTGSIAL AIGFSVAIGH LFAINYTGAS MNPARSFGPA
aqp2_rat      LCIFASTDER RGDNLGSPAL SIGFSVTLGH LLGIYFTGCS MNPARSLAPA
aqp2_mouse    LCIFASTDER RSDNLGSPAL SIGFSVTLGH LLGIYFTGCS MNPARSLAPA
wc2a_arath    YTVFSATDPK RSavPVLAPL PIGFAVFMVH LATIPITGTG INPARSFGAA
aqp6_human    LCVFASTDSR QTS..GSPAT MIGISWALGH LIGILFTGCS MNPARSFGPA
wc2c_arath    YTVFSATDPK RNavPVLAPL PIGFAVFMVH LATIPITGTG INPARSFGAA
wc2b_arath    YTVFSATDPK RNavPVLAPL PIGFAVFMVH LATIPITGTG INPARSFGAS
wc1c_arath    YTVFSATDAK RSavPILAPL PIGFAVFLVH LATIPITGTG INPARSLGAA
wc1b_arath    YTVFSATDAK RNavPILAPL PIGFAVFLVH LATIPITGTG INPARSLGAA
tipw_lyces    YTVFSATDAK RNavPILAPL PIGFAVFLVH LATIPITGTG INPARSLGAA
wc1a_arath    YTVFSATDAK RNavPILAPL PIGFAVFLVH LATIPITATG INPARSLGAA
tipw_pea      YTVFSATDAK RSavPILAPL PIGFAVFLVH LATIPITGTG INPARSLGAA
tipa_arath    YVVYStiDPK RGSLGIIAPL AIGLIVGANI LVGGPFSGAS MNPARAFGPA
aqua_atrca    YTVFSATDPK RSavPILAPL PIGFAVFMVH LATIPITGTG INPARSFGAA
dip_antma     YTVYAtaDPK KGSLGVIAPI AIGFIVGANI LAAGPFSGGS MNPARSFGPA
aqpz_ecoli    LVIHGATDKF APA..GFAPI AIGLALTLIH LISIPVTNTS VNPARSTAVA
tip2_tobac    YTVYAtaDPK KGSLGTIAPI AIGFIVGANI LAAGPFSGGS MNPARSFGPA
tip1_tobac    YTVYAtaDPK KGSLGTIAPI AIGFIVGANI LAAGPFSGGS MNPARSFGPA
tipg_arath    YTVYAtiDPK NGSLGTIAPI AIGFIVGANI LAGGAFSGAS MNPAVAFGPA
bib_drome     LCYFVSTDPM KKFMGNS.AA SIGCAYSACC FVSMPYLN.. ..PARSLGPS
tipr_arath    YTVYAtiDPK NGSLGTIAPI AIGFIVGANI LAGGAFSGAS MNPAVAFGPA
tipa_phavu    YTVYGtiDPK RGAVSYIAPL AIGLIVGANI LVGGPFDGAC MNPALAFGPS
tipg_orysa    YTVYAtvDPK KGSLGTIAPI AIGFIVGANI LVGGAFDGAS MNPAVSFGPA

              201                                                250
predict_h258  VLTRNFSNHW IFWVGPFIGS ALAVLIYDFI LAPRSSDFTD RMKVWTSGQV
aqp1_rat      VLTRNFSNHW IFWVGPFIGS ALAVLIYDFI LAPRSSDFTD RMKVWTSGQV
aqp1_mouse    VLTRNFSNHW IFWVGPFIGG ALAVLIYDFI LAPRSSDFTD RMKVWTSGQV
aqp1_human    VITHNFSNHW IFWVGPFIGG ALAVLIYDFI LAPRSSDLTD RVKVWTSGQV
aqp1_bovin    VITHNFQDHW IFWVGPFIGA ALAVLIYDFI LAPRSSDLTD RVKVWTSGQV
aqp1_sheep    VITHNFQDHW IFWVGPFIGA ALAVLIYDFI LAPRSSDLTD RVKVWTSGQV
aqpa_ranes    VLTKNFTYHW IFWVGPMIGG AAAAIIYDFI LAPRTSDLTD RMKVWTNGQV
aqp2_dasno    .......... .......... .......... .......... ..........
aqp2_bovin    .......... .......... .......... .......... ..........
aqp2_canfa    .......... .......... .......... .......... ..........
aqp2_rabit    .......... .......... .......... .......... ..........
aqp2_elema    .......... .......... .......... .......... ..........
aqp2_horse    .......... .......... .......... .......... ..........
aqp2_proha    .......... .......... .......... .......... ..........
mip_rat       ILTRNFSNHW VYWVGPIIGG GLGSLLYDFL LFPRLKSVSE RLSILKGARP
aqp2_oryaf    .......... .......... .......... .......... ..........
mip_mouse     ILTRNFSNHW VYWVGPIIGG GLGSLLYDFL LFPRLKSVSE RLSILKGARP
mip_ranpi     VLTRNFTNHW VYWVGPIIGG ALGGLVYDFI LFPRMRGLSE RLSILKGARP
mip_bovin     ILTRNFTNHW VYWVGPVIGA GLGSLLYDFL LFPRLKSVSE RLSILKGSRP
mip_human     ILTGNFTNHW VYWVGPIIGG GLGSLLYDFL LFPRLKSISE RLSVLKGAKP
mip_chick     VITRNFTNHW VFWAGPLLGA ALAALLYELA LCPRARSMAE RLAV.LRGEP
aqp5_rat      VVMNRFssHW VFWVGPIVGA MLAAILYFYL LFPSSLSLHD RVAVVKGTYE
aqp5_human    VVMNRFsaHW VFWVGPIVGA VLAAILYFYL LFPNSLSLSE RVAIIKGTYE
aqp2_human    VVTGKFDDHW VFWIGPLVGA ILGSLLYNYV LFPPAKSLSE RLAVLKGLEp
aqp4_human    VIMGNWENHW IYWVGPIIGA VLAGGLYEYV FCPDVEFKRR FKEAFSKaqT
aqp4_rat      VIMGNWENHW IYWVGPIIGA VLAGALYEYV FCPDVELKRR LKEAFSKaqT
aqp4_mouse    VIMGNWANHW IYWVGPIMGA VLAGALYEYV FCPDVELKRR LKEAFSKaqT
aqp2_rat      VVTGKFDDHW VFWIGPLVGA IIGSLLYNYL LFPSAKSLQE RLAVLKGLEp
aqp2_mouse    VVTGKFDDHW VFWIGPLVGA IIGSLLYNYL LFPSTKSLQE RLAVLKGLEp
wc2a_arath    VIYnpWDDHW IFWVGPFIGA AIAAFYHQFV LRASGSKSLG SFRSAANV..
aqp6_human    IIIGKFTVHW VFWVGPLMGA LLASLIYNFV LFPDTKTLAQ RLAILTGTVE
wc2c_arath    VIFnpWDDHW IFWVGPFIGA TIAAFYHQFV LRASGSKSLG SFRSAANV..
wc2b_arath    VIYnpWDDHW IFWVGPFIGA AIAAFYHQFV LRASGSKSLG SFRSAANV..
wc1c_arath    IIYnaWDDHW IFWVGPFIGA ALAALYHQLV IRAIPFKSRS ..........
wc1b_arath    IIFnaWDDHW VFWVGPFIGA ALAALYHVIV IRAIPFKSRS ..........
tipw_lyces    IIYnaWNDHW IFWVGPMIGA ALAAIYHQII IRAMPFHRS. ..........
wc1a_arath    IIYnsWDDHW VFWVGPFIGA ALAALYHVVV IRAIPFKSRS ..........
tipw_pea      IVFngWNDHW IFWVGPFIGA ALAALYHQVV IRAIPFKSK. ..........
tipa_arath    LVGWRWHDHW IYWVGPFIGS ALAALIYEYM VIPTEPPTHH AHGVHQPLAP
aqua_atrca    VIyrVWDDHW IFWVGPFVGA LAAAAYHQYV LRAAAIKALG SFRSNPTN..
dip_antma     VASGDFSQNW IYWAGPLIGG ALAGFIYGDV FITAHAPLPT SEDYA.....
aqpz_ecoli    IFQgaLEQLW FFWVVPIVGG IIGGLIYRTL LEKRD..... ..........
tip2_tobac    VVAGDFSQNW IYWAGPLIGG GLAGFIYGDV FIGCHTPLPT SEDYA.....
tip1_tobac    VVAGDFSQNW IYWAGPLIGG GLAGFIYGDV FIGCHTPLPT SEDYA.....
tipg_arath    VVSWTWTNHW VYWAGPLVGG GIAGLIYEVF FINTTHEQLP TTDY......
bib_drome     FVLNKWDSHW VYWFGPLVGG MASGLVYEYI FNSRNRNLRH NKGSIDNDSS
tipr_arath    VVSWTWTNHW VYWAGPLVGG GIAGLIYEVF FINTTHTSSS NHRLLN....
tipa_phavu    LVGWQWHQHW IFWVGPLLGA ALAALVYEYA VIPIEPPPHH HQPLATEDY.
tipg_orysa    LVSWSWESQW VYWVGPLIGG GLAGVIYEVL FISHTHEQLP TTDY......

              251              269
predict_h258  EEYDLDADDI NSRVEMKPK
aqp1_rat      EEYDLDADDI NSRVEMKPK
aqp1_mouse    EEYDLDADDI NSRVEMKPK
aqp1_human    EEYDLDADDI NSRVEMKPK
aqp1_bovin    EEYDLDADDI NSRVEMKPK
aqp1_sheep    EEYDLDADDI NSRVEMKPK
aqpa_ranes    EEYELDGDD. NTRVEMKPK
aqp2_dasno    .......... .........
aqp2_bovin    .......... .........
aqp2_canfa    .......... .........
aqp2_rabit    .......... .........
aqp2_elema    .......... .........
aqp2_horse    .......... .........
aqp2_proha    .......... .........
mip_rat       SDSNGQPEGT GEPVELKTQ
aqp2_oryaf    .......... .........
mip_mouse     SDSNGQPEGT GEPVELKTQ
mip_ranpi     AEPEGQQEAT GEPIELKTQ
mip_bovin     SESNGQPEVT GEPVELKTQ
mip_human     DVSNGQPEVT GEPVELNTQ
mip_chick     PAAAPPPEPP AEPLELKTQ
aqp5_rat      PEEDWEDHRE ERKKTIELT
aqp5_human    PDEDWEEQRE ERKKTMELT
aqp2_human    tDWEEREVRR RQSVELHSP
aqp4_human    KGSYMEVEDN RSQVETDDL
aqp4_rat      KGSYMEVEDN RSQVETEDL
aqp4_mouse    KGSYMEVEDN RSQVETEDL
aqp2_rat      tDWEEREVRR RQSVELHSP
aqp2_mouse    tDWEEREVRR RQSVELHSP
wc2a_arath    .......... .........
aqp6_human    VGTGARAGAE PLKKESQPG
wc2c_arath    .......... .........
wc2b_arath    .......... .........
wc1c_arath    .......... .........
wc1b_arath    .......... .........
tipw_lyces    .......... .........
wc1a_arath    .......... .........
tipw_pea      .......... .........
tipa_arath    EDY....... .........
aqua_atrca    .......... .........
dip_antma     .......... .........
aqpz_ecoli    .......... .........
tip2_tobac    .......... .........
tip1_tobac    .......... .........
tipg_arath    .......... .........
bib_drome     SIHSEDELNY DMDMEKPNK
tipr_arath    .......... .........
tipa_phavu    .......... .........
tipg_orysa    .......... .........


________________________________________________________________________________




   Prediction of:           

    - secondary structure,          by PHDsec       
    - solvent accessibility,        by PHDacc       
    - and helical transmembrane regions,    by PHDhtm       

   PHD: Profile fed neural network systems from HeiDelberg
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   Author:             Burkhard Rost        
                       EMBL, Heidelberg, FRG
                       Meyerhofstrasse 1, 69 117 Heidelberg
                       Internet: Predict-Help@EMBL-Heidelberg.DE

   All rights reserved.





   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
   Secondary structure prediction by PHDsec:
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    

   Author:             Burkhard Rost        
                       EMBL, Heidelberg, FRG
                       Meyerhofstrasse 1, 69 117 Heidelberg
                       Internet: Rost@EMBL-Heidelberg.DE        

   All rights reserved.




About the network method
~~~~~~~~~~~~~~~~~~~~~~~

The network procedure is described in detail in:
1) Rost, Burkhard; Sander, Chris:
  Prediction of protein structure at better than 70% accuracy.
  J. Mol. Biol., 1993, 232, 584-599.            

A brief description is given in:
  Rost, Burkhard; Sander, Chris:
  Improved prediction of protein secondary structure by use of se-
  quence profiles and neural networks.
  Proc. Natl. Acad. Sci. U.S.A., 1993, 90, 7558-7562.           

The PHD mail server is described in:
2) Rost, Burkhard; Sander, Chris; Schneider, Reinhard:
  PHD - an automatic mail server for protein secondary structure
  prediction.
  CABIOS, 1994, 10, 53-60.

The latest improvement steps (up to 72%) are explained in:
3) Rost, Burkhard; Sander, Chris:
  Combining evolutionary information and neural networks to predict
  protein secondary structure.
  Proteins, 1994,  19, 55-72.

To be quoted for publications of PHD output:
  Papers 1-3 for the prediction of secondary structure and the pre-
  diction server.



About the input to the network
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The prediction is performed by a system of neural networks.
The input is a multiple sequence alignment. It is taken from an HSSP
file (produced by the program MaxHom:
  Sander, Chris & Schneider, Reinhard: Database of Homology-Derived
  Structures and the Structural Meaning of Sequence Alignment.
  Proteins, 1991, 9, 56-68.

For optimal results the alignment should contain sequences with varying
degrees of sequence similarity relative to the input protein.
The following is an ideal situation:

+-----------------+----------------------+
|   sequence:     |  sequence identity   |
+-----------------+----------------------+
| target sequence |  100 %               |
| aligned seq. 1  |   90 %               |
| aligned seq. 2  |   80 %               |
|      ...        |   ...                |
| aligned seq. 7  |   30 %               |
+-----------------+----------------------+



Estimated Accuracy of Prediction
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A careful cross validation test on some 250 protein chains (in total
about 55,000 residues) with less than 25% pairwise sequence identity
gave the following results:

++================++-----------------------------------------+
|| Qtotal = 72.1% ||      ("overall three state accuracy")   |
++================++-----------------------------------------+

+----------------------------+-----------------------------+
| Qhelix (% of observed)=70% | Qhelix (% of predicted)=77% |
| Qstrand(% of observed)=62% | Qstrand(% of predicted)=64% |
| Qloop  (% of observed)=79% | Qloop  (% of predicted)=72% |
+----------------------------+-----------------------------+
..........................................................................

These percentages are defined by:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|                    number of correctly predicted residues
|Qtotal =            ---------------------------------------      (*100)
|                          number of all residues
|
|                    no of res correctly predicted to be in helix
|Qhelix (% of obs) = -------------------------------------------- (*100)
|                    no of all res observed to be in helix
|
|
|                    no of res correctly predicted to be in helix
|Qhelix (% of pred)= -------------------------------------------- (*100)
|                    no of all residues predicted to be in helix

..........................................................................

Averaging over single chains
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The most reasonable way to compute the overall accuracies is the above
quoted percentage of correctly predicted residues.  However, since the
user is mainly interested in the expected performance of the prediction
for a particular protein, the mean value when averaging over protein
chains might be of help as well.  Computing first the three state
accuracy for each protein chain, and then averaging over 250 chains
yields the following average:

+-------------------------------====--+
| Qtotal/averaged over chains = 72.2% |
+-------------------------------====--+
| standard deviation          =  9.3% |
+-------------------------------------+

..........................................................................

Further measures of performance
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Matthews correlation coefficient:

+---------------------------------------------+
| Chelix = 0.63, Cstrand = 0.53, Cloop = 0.52 |
+---------------------------------------------+
..........................................................................

Average length of predicted secondary structure segments:

.           +------------+----------+
.           |  predicted | observed |
+-----------+------------+----------+
| Lhelix  = |    10.3    |    9.3   |
| Lstrand = |     5.0    |    5.3   |
| Lloop   = |     7.2    |    5.9   |
+-----------+------------+----------+
..........................................................................

The accuracy matrix in detail:

+---------------------------------------+
|    number of residues with H, E, L    |
+---------+------+------+------+--------+
|         |net H |net E |net L |sum obs |
+---------+------+------+------+--------+
| obs H   |12447 | 1255 | 3990 |  17692 |
| obs E   |  949 | 7493 | 3750 |  12192 |
| obs L   | 2604 | 2875 |19962 |  25441 |
+---------+------+------+------+--------+
| sum Net |16000 |11623 |27702 |  55325 |
+---------+------+------+------+--------+

Note: This table is to be read in the following manner:
     12447 of all residues predicted to be in helix, were observed to
     be in helix, 949 however belong to observed strands, 2604 to
     observed loop regions.  The term "observed" refers to the DSSP
     assignment of secondary structure calculated from 3D coordinates
     of experimentally determined structures (Dictionary of Secondary
     Structure  of Proteins: Kabsch & Sander (1983) Biopolymers, 22,
     2577-2637).



Position-specific reliability index
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The network predicts the three secondary structure types using real
numbers from the output units. The prediction is assigned by choosing
the maximal unit ("winner takes all").  However, the real numbers
contain additional information.
E.g. the difference between the maximal and the second largest output
unit can be used to derive a "reliability index".  This index is given
for each residue along with the prediction.  The index is scaled to
have values between 0 (lowest reliability), and 9 (highest).
The accuracies (Qtot) to be expected for residues with values above a
particular value of the index are given below as well as the fraction
of such residues (%res).:

+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| index|  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |
| %res |100.0| 99.2| 90.4| 80.9| 71.6| 62.5| 52.8| 42.3| 29.8| 14.1|
+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|      |     |     |     |     |     |     |     |     |     |     |
| Qtot | 72.1| 72.3| 74.8| 77.7| 80.3| 82.9| 85.7| 88.5| 91.1| 94.2|
|      |     |     |     |     |     |     |     |     |     |     |
+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| H%obs| 70.4| 70.6| 73.7| 77.1| 80.1| 83.1| 86.0| 89.3| 92.5| 96.4|
| E%obs| 61.5| 61.7| 63.7| 66.6| 69.1| 71.7| 74.6| 77.0| 77.8| 68.1|
|      |     |     |     |     |     |     |     |     |     |     |
| H%prd| 77.8| 78.0| 80.0| 82.6| 84.7| 86.9| 89.2| 91.3| 93.1| 95.4|
| E%prd| 64.5| 64.7| 67.8| 71.0| 74.2| 77.6| 81.4| 85.1| 89.8| 93.5|
+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+

The above table gives the cumulative results, e.g. 62.5% of all
residues have a reliability of at least 5.  The overall three-state
accuracy for this subset of almost two thirds of all residues is 82.9%.
For this subset, e.g., 83.1% of the observed helices are correctly
predicted, and 86.9% of all residues predicted to be in helix are
correct.

..........................................................................

The following table gives the non-cumulative quantities, i.e. the
values per reliability index range.  These numbers answer the question:
how reliable is the prediction for all residues labeled with the
particular index i.

+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| index|  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |
| %res |  8.8|  9.5|  9.3|  9.1|  9.7| 10.5| 12.5| 15.7| 14.1|
+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|      |     |     |     |     |     |     |     |     |     |
| Qtot | 46.6| 50.6| 57.7| 62.6| 67.9| 74.2| 82.2| 88.3| 94.2|
|      |     |     |     |     |     |     |     |     |     |
+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| H%obs| 36.8| 42.3| 49.5| 55.2| 61.7| 69.9| 78.8| 87.4| 96.4|
| E%obs| 44.7| 44.5| 52.1| 55.4| 60.9| 68.0| 75.9| 81.0| 68.1|
|      |     |     |     |     |     |     |     |     |     |
| H%prd| 49.9| 52.5| 60.3| 64.2| 69.2| 77.5| 85.4| 89.9| 95.4|
| E%prd| 41.7| 47.1| 53.6| 57.0| 64.0| 71.6| 78.8| 88.8| 93.5|
+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+

For example, for residues with Relindex = 5 64% of all predicted betha-
strand residues are correctly identified.





   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
   Solvent accessibility prediction by PHDacc:
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      

   Author:             Burkhard Rost        
                       EMBL, Heidelberg, FRG
                       Meyerhofstrasse 1, 69 117 Heidelberg
                       Internet: Rost@EMBL-Heidelberg.DE        

   All rights reserved.




About the network method
~~~~~~~~~~~~~~~~~~~~~~~

The network for prediction of secondary structure is described in
detail in:
  Rost, Burkhard; Sander, Chris:
  Prediction of protein structure at better than 70% accuracy.
  J. Mol. Biol., 1993, 232, 584-599.

The analysis of the prediction of solvent exposure is given in:
  Rost, Burkhard; Sander, Chris:
  Conservation and prediction of solvent accessibility in protein
  families.  Proteins, 1994, 20, 216-226.

To be quoted for publications of PHD exposure prediction:
  Both papers quoted above.



Definition of accessibility
~~~~~~~~~~~~~~~~~~~~~~~~~~

For training the residue solvent accessibility the DSSP (Dictionary of
Secondary Structure of Proteins; Kabsch & Sander (1983) Biopolymers, 22,
2577-2637) values of accessible surface area have been used.  The
prediction provides values for the relative solvent accessibility.  The
normalisation is the following:

|                           ACCESSIBILITY (from DSSP in Angstrom)
|RELATIVE_ACCESSIBILITY =   ------------------------------------- * 100
|                               MAXIMAL_ACC (amino acid type i)

where MAXIMAL_ACC (i) is the maximal accessibility of amino acid type i.
The maximal values are:

+----+----+----+----+----+----+----+----+----+----+----+----+
|  A |  B |  C |  D |  E |  F |  G |  H |  I |  K |  L |  M |
| 106| 160| 135| 163| 194| 197|  84| 184| 169| 205| 164| 188|
+----+----+----+----+----+----+----+----+----+----+----+----+
|  N |  P |  Q |  R |  S |  T |  V |  W |  X |  Y |  Z |
| 157| 136| 198| 248| 130| 142| 142| 227| 180| 222| 196|
+----+----+----+----+----+----+----+----+----+----+----+

Notation: one letter code for amino acid, B stands for D or N; Z stands
  for E or Q; and X stands for undetermined.

The relative solvent accessibility can be used to estimate the number
of water molecules (W) in contact with the residue:

W = ACCESSIBILITY /10

The prediction is given in 10 states for relative accessibility, with

RELATIVE_ACCESSIBILITY = (PREDICTED_ACC * PREDICTED_ACC)

where PREDICTED_ACC = 0 - 9.



Estimated Accuracy of Prediction
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A careful cross validation test on some 238 protein chains (in total
about 62,000 residues) with less than 25% pairwise sequence identity
gave the following results:


Correlation
...........

The correlation between observed and predicted solvent accessibility
is:

-----------
corr = 0.53
-----------

This value ought to be compared to the worst and best case prediction
scenario: random prediction (corr = 0.0) and homology modelling
(corr = 0.66).  (Note: homology modelling yields a relative accurate
prediction in 3D if, and only if, a significantly identical sequence
has a known 3D structure.)


3-state accuracy
................

Often the relative accessibility is projected onto, e.g., 3 states:
  b  = buried       (here defined as < 9% relative accessibility),
  i  = intermediate ( 9% <= rel. acc. < 36% ),
  e  = exposed      ( rel. acc. >= 36% ).

A projection onto 3 states or 2 states (buried/exposed) enables the
compilation of a 3- and 2-state prediction accuracy.  PHD reaches an
overall 3-state accuracy of:
  Q3 = 57.5%
(compared to 35% for random prediction and 70% for homology modelling).

In detail:

+-----------------------------------+-------------------------+
| Qburied       (% of observed)=77% | Qb (% of predicted)=60% |
| Qintermediate (% of observed)= 9% | Qi (% of predicted)=44% |
| Qexposed      (% of observed)=78% | Qe (% of predicted)=56% |
+-----------------------------------+-------------------------+


10-state accuracy
.................

The network predicts relative solvent accessibility in 10 states, with
state i (i = 0-9) corresponding to a relative solvent accessibility of
i*i %.  The 10-state accuracy of the network is:

  Q10 = 24.5%

..........................................................................

These percentages are defined by:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|                     number of correctly predicted residues
|Q3               = ---------------------------------------      (*100)
|                           number of all residues
|
|                     no of res. correctly predicted to be buried
|Qburied (% of obs) = ------------------------------------------- (*100)
|                     no of all res. observed to be buried
|
|
|                     no of res. correctly predicted to be buried
|Qburied (% of pred)= ------------------------------------------- (*100)
|                     no of all residues predicted to be buried

..........................................................................

Averaging over single chains
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The most reasonable way to compute the overall accuracies is the above
quoted percentage of correctly predicted residues.  However, since the
user is mainly interested in the expected performance of the prediction
for a particular protein, the mean value when averaging over protein
chains might be of help as well.  Computing first the correlation
between observed and predicted accessibility for each protein chan, and
then averaging over all 238 chains yields the following average:

+-------------------------------====--+
| corr/averaged over chains   = 0.53  |
+-------------------------------====--+
| standard deviation          = 0.11  |
+-------------------------------------+

..........................................................................

Further details of performance accuracy
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The accuracy matrix in detail:
..............................

-------+----------------------------------------------------+-----------
\ PHD |    0    1   2   3    4    5     6     7    8    9  |  SUM  %obs
-------+----------------------------------------------------+-----------
OBS  0 | 8611  140   8  44   82  169   772   334   27    0  | 10187 16.6
OBS  1 | 4367  164   0  50  106  231   738   346   44    3  |  6049  9.8
OBS  2 | 3194  168   1  68  125  303   951   513   42    7  |  5372  8.7
OBS  3 | 2760  159   8  80  136  327  1246   746   58   19  |  5539  9.0
OBS  4 | 2312  144   2  72  166  396  1615  1245  124   19  |  6095  9.9
OBS  5 | 1873   96   3  84  138  425  1979  1834  187   27  |  6646 10.8
OBS  6 | 1387   67   1  60   80  278  2237  2627  231   51  |  7019 11.4
OBS  7 | 1082   35   0  32   56  225  1871  3107  302   60  |  6770 11.0
OBS  8 |  660   25   0  27   43  136  1206  2374  325   87  |  4883  7.9
OBS  9 |  325   20   2  27   29   74   648  1159  366  214  |  2864  4.7
-------+----------------------------------------------------+-----------
SUM    |26571 1018  25 544  961 2564 13263 14285 1706  487  |
%pred  | 43.3  1.7 0.0 0.9  1.6  4.2  21.6  23.3  2.8  0.8  |
-------+----------------------------------------------------+-----------

Note: This table is to be read in the following manner:
     8611 of all residues predicted to be in exposed by 0%, were
     observed with 0% relative accessibility.  However, 325 of all
     residues predicted to have 0% are observed as completely exposed
     (obs = 9 -> rel. acc. >= 81%).  The term "observed" refers to the
     DSSP compilation of area of solvent accessibility calculated from
     3D coordinates of experimentally determined structures (Diction-
     ary of Secondary Structure  of Proteins: Kabsch & Sander (1983)
     Biopolymers, 22, 2577-2637).


Accuracy for each amino acid:
.............................

+---+------------------------------+-----+-------+------+
|AA |   Q3 b%o b%p i%o i%p e%o e%p | Q10 |  corr |    N |
+---+------------------------------+-----+-------+------+
| A | 59.0  87  60   2  38  66  57 |  31 | 0.530 | 5054 |
| C | 62.0  91  67   5  39  25  21 |  34 | 0.244 |  893 |
| D | 56.5  21  45   6  49  94  57 |  20 | 0.321 | 3536 |
| E | 60.8   9  40   3  41  98  61 |  21 | 0.347 | 3743 |
| F | 63.3  94  67   9  46  29  37 |  27 | 0.366 | 2436 |
| G | 52.1  75  51   1  31  67  53 |  22 | 0.405 | 4787 |
| H | 50.9  63  53  23  45  71  50 |  18 | 0.442 | 1366 |
| I | 64.9  95  68   6  41  30  38 |  34 | 0.360 | 3437 |
| K | 66.6   2  11   2  37  98  67 |  23 | 0.267 | 3652 |
| L | 61.6  93  65   8  44  31  40 |  31 | 0.368 | 5016 |
| M | 60.1  92  64   5  39  45  44 |  29 | 0.452 | 1371 |
| N | 55.5  45  45   8  38  87  59 |  17 | 0.410 | 2923 |
| P | 53.0  48  48   9  39  83  56 |  18 | 0.364 | 2920 |
| Q | 54.3  27  44   7  44  92  56 |  20 | 0.344 | 2225 |
| R | 49.9  15  47  36  47  76  51 |  18 | 0.372 | 2765 |
| S | 55.6  69  53   3  51  81  56 |  22 | 0.464 | 3981 |
| T | 51.8  61  51   8  38  78  53 |  21 | 0.432 | 3740 |
| V | 61.1  93  65   5  40  39  42 |  34 | 0.418 | 4156 |
| W | 56.2  85  62  20  49  29  27 |  21 | 0.318 |  891 |
| Y | 49.7  73  52  33  49  36  38 |  19 | 0.359 | 2301 |
+---+------------------------------+-----+-------+------+

Abbreviations:

AA:   amino acid in one-letter code
b%o, i%o, e%o:   = Qburied, Qintermediate, Qexposed (% of observed),
     i.e. percentage of correct prediction in each state, see above
b%p, i%p, e%p:   = Qburied, Qintermediate, Qexposed (% of predicted),
     i.e. probability of correct prediction in each state, see above
b%o:  = Qburied (% of observed), see above
Q10:  percentage of correctly predicted residues in each of the 10
     states of predicted relative accessibility.
corr: correlation between predicted and observed rel. acc.
N:    number of residues in data set


Accuracy for different secondary structure:
...........................................

+--------+------------------------------+----+-------+-------+
| type   |   Q3 b%o b%p i%o i%p e%o e%p |Q10 |  corr |     N |
+--------+------------------------------+----+-------+-------+
| helix  | 59.5  79  64   8  44  80  56 | 27 | 0.574 | 20100 |
| strand | 61.3  84  73   9  46  69  37 | 35 | 0.524 | 13356 |
| loop   | 54.4  64  43  11  44  78  61 | 18 | 0.442 | 27968 |
+--------+------------------------------+----+-------+-------+

Abbreviations as before.



Position-specific reliability index
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The network predicts the 10 states for relative accessibility using real
numbers from the output units. The prediction is assigned by choosing
the maximal unit ("winner takes all").  However, the real numbers
contain additional information.
E.g. the difference between the maximal and the second largest output
unit (with the constraint that the second largest output is compiled
among all units at least 2 positions off the maximal unit) can be used
to derive a "reliability index".  This index is given for each residue
along with the prediction.  The index is scaled to have values between
0 (lowest reliability), and 9 (highest).
The accuracies (Q3, corr, asf.) to be expected for residues with values
above a particular value of the index are given below as well as the
fraction of such residues (%res).:

+---+------------------------------+----+-------+-------+
|RI |   Q3 b%o b%p i%o i%p e%o e%p |Q10 |  corr |  %res |
+---+------------------------------+----+-------+-------+
| 0 | 57.5  77  60   9  44  78  56 | 24 | 0.535 | 100.0 |
| 1 | 59.1  76  63   9  45  82  57 | 25 | 0.560 |  91.2 |
| 2 | 61.7  79  66   4  47  87  58 | 27 | 0.594 |  77.1 |
| 3 | 66.6  87  70   1  51  89  63 | 30 | 0.650 |  57.1 |
| 4 | 70.0  89  72   0  83  91  67 | 32 | 0.686 |  45.8 |
| 5 | 72.9  92  75   0   0  93  70 | 34 | 0.722 |  35.6 |
| 6 | 76.3  95  77   0   0  93  75 | 36 | 0.769 |  24.7 |
| 7 | 79.0  97  79   0   0  93  78 | 39 | 0.803 |  16.0 |
| 8 | 80.9  98  80   0   0  91  81 | 43 | 0.824 |   9.6 |
| 9 | 81.2  99  80   0   0  88  83 | 45 | 0.828 |   5.9 |
+---+------------------------------+----+-------+-------+

Abbreviations as before.

The above table gives the cumulative results, e.g. 45.8% of all
residues have a reliability of at least 4.  The correlation for this
most reliably predicted half of the residues is 0.686, i.e. a value
comparable to what could be expected if homology modelling were
possible.  For this subset of 45.8% of all residues, 89% of the buried
residues are correctly predicted, and 72% of all residues predicted to
be buried are correct.

..........................................................................

The following table gives the non-cumulative quantities, i.e. the
values per reliability index range.  These numbers answer the question:
how reliable is the prediction for all residues labeled with the
particular index i.

+---+------------------------------+----+-------+-------+
|RI |   Q3 b%o b%p i%o i%p e%o e%p |Q10 |  corr |  %res |
+---+------------------------------+----+-------+-------+
| 0 | 40.9  79  40  16  41  21  40 | 14 | 0.175 |   8.8 |
| 1 | 45.4  61  46  28  44  48  44 | 17 | 0.278 |  14.1 |
| 2 | 47.4  53  52  10  46  80  44 | 19 | 0.343 |  19.9 |
| 3 | 52.9  75  59   4  50  77  47 | 23 | 0.439 |  11.4 |
| 4 | 60.0  81  63   0  83  84  56 | 25 | 0.547 |  10.1 |
| 5 | 65.2  82  70   0   0  93  62 | 28 | 0.607 |  10.9 |
| 6 | 71.3  90  72   0   0  94  70 | 31 | 0.692 |   8.8 |
| 7 | 76.0  94  76   0   0  95  75 | 34 | 0.762 |   6.3 |
| 8 | 80.5  97  81   0   0  94  79 | 39 | 0.808 |   3.8 |
| 9 | 81.2  99  80   0   0  88  83 | 45 | 0.828 |   5.9 |
+---+------------------------------+----+-------+-------+

For example, for residues with RI = 4 83% of all predicted intermediate
residues are correctly predicted as such.





   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Prediction of helical transmembrane segments by PHDhtm:
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   Author:             Burkhard Rost        
                       EMBL, Heidelberg, FRG
                       Meyerhofstrasse 1, 69 117 Heidelberg
                       Internet: Rost@EMBL-Heidelberg.DE        

   All rights reserved.




About the network method
~~~~~~~~~~~~~~~~~~~~~~~

The PHD mail server is described in:
  Rost, Burkhard; Sander, Chris; Schneider, Reinhard:
  PHD - an automatic mail server for protein secondary structure
  prediction.
  CABIOS, 1994, 10, 53-60.      

To be quoted for publications of PHDhtm output:
  Rost, Burkhard; Casadio, Rita; Fariselli, Piero; Sander, Chris:
  Prediction of helical transmembrane segments at 95% accuracy.
  Protein Science, 1995, 4, 521-533.                



Estimated Accuracy of Prediction
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A cross validation test on 69 helical trans-membrane  proteins (in total
about 30,000 residues) with less than 25% pairwise sequence identity
gave the following results:

++================++-----------------------------------------+
|| Qtotal = 94.7% ||      ("overall two state accuracy")     |
++================++-----------------------------------------+

+----------------------------+-----------------------------+
| Qhelix (% of observed)=92% | Qhelix (% of predicted)=83% |
| Qloop  (% of observed)=96% | Qloop  (% of predicted)=97% |
+----------------------------+-----------------------------+

..........................................................................

These percentages are defined by:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|                    number of correctly predicted residues
|Qtotal =            ---------------------------------------      (*100)
|                          number of all residues
|
|                    no of res correctly predicted to be in helix
|Qhelix (% of obs) = -------------------------------------------- (*100)
|                    no of all res observed to be in helix
|
|
|                    no of res correctly predicted to be in helix
|Qhelix (% of pred)= -------------------------------------------- (*100)
|                    no of all residues predicted to be in helix

..........................................................................

Further measures of performance
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Matthews correlation coefficient:

+---------------------------------------------+
| Chelix = 0.84, Cloop = 0.84                 |
+---------------------------------------------+
..........................................................................

Average length of predicted secondary structure segments:

|           +------------+----------+
|           |  predicted | observed |
+-----------+------------+----------+
| Lhelix  = |    24.6    |   22.2   |
+-----------+------------+----------+
..........................................................................

The accuracy matrix in detail:

+---------------------------------+
|    number of residues with H, L |
+---------+------+-------+--------+
|         |net H | net L |sum obs |
+---------+------+-------+--------+
| obs H   | 5214 |   492 |   5706 |
| obs L   | 1050 | 22423 |  23473 |
+---------+------+-------+--------+
| sum Net | 6264 | 22915 |  29179 |
+---------+------+-------+--------+

Note: This table is to be read in the following manner:
     5214 of all residues predicted to be in a helical trans-membrane
     region, were observed to be in the lipid bilayer, 1050 however
     were observed either inside or outside of the protein, i.e. in
     loop (or non-membrane) regions. The term "observed" refers to DSSP
     assignment of secondary structure calculated from 3D coordinates
     of experimentally determined structures (Dictionary of Secondary
     Structure  of Proteins: Kabsch & Sander (1983) Biopolymers, 22,
     2577-2637) where these were available.  For all other proteins,
     the assignment of trans-membrane segments has been taken from the
     Swissprot data bank (Bairoch, A.; Boeckmann, B.: The SWISS-PROT
     protein sequence data bank. Nucl. Acids Res. 20: 2019-2022, 1992).

..........................................................................

Overlap between predicted and observed segments:

+-----------------+---------------+----------------+
| segment overlap | % of observed | % of predicted |
|   Sov helix     |      95.6%    |      95.5%     |
|   Sov loop      |      83.6%    |      97.2%     |
+-----------------+---------------+----------------+
|   Sov total     |      86.0%    |      96.8%     |
+-----------------+---------------+----------------+

     Definition of Sov in: Rost et al., JMB, 1994, 235, 13-26.

     As helical trans-membrane segments are longer than globular heli-
     ces, correctly predicted segments can easily be made out.  PHDhtm
     misses 5 out of 258 observed segments, predicts 6 where non is
     observed and 3 times the predicted helical segment overlaps two
     observed regions.  Thus, in total more than 95% of all segments
     are correctly predicted.

..........................................................................

Entropy of prediction (information measure):

+-----------------+
| I = 0.64        |
+-----------------+

     (For comparison: homology modelling of globular proteins in three
     states: I=0.62.)
     Definition of Sov in: Rost et al., JMB, 1994, 235, 13-26.



Position-specific reliability index
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The network predicts two states: helical trans-membrane region and rest
using two output units.  The prediction is assigned by choosing the ma-
ximal unit ("winner takes all").  However, the real numbers of the out-
put units contain additional information.
E.g. the difference between the two output units can be used to derive
a "reliability index".  This index is given for each residue along with
the prediction.  The index is scaled to have values between 0 (lowest
reliability), and 9 (highest).
The accuracies (Qtot) to be expected for residues with values above a
particular value of the index are given below as well as the fraction
of such residues (%res).:

+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| index|  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |
| %res |100.0| 98.8| 97.3| 95.9| 94.1| 92.3| 89.9| 86.2| 75.0| 66.8|
+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|      |     |     |     |     |     |     |     |     |     |     |
| Qtot | 94.7| 95.2| 95.6| 96.2| 96.7| 97.2| 97.7| 98.4| 99.4| 99.8|
|      |     |     |     |     |     |     |     |     |     |     |
+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| H%obs| 91.8| 92.9| 93.8| 94.4| 95.0| 95.7| 96.2| 96.8| 95.5| 78.7|
| L%obs| 95.3| 95.7| 96.1| 96.6| 97.0| 97.5| 98.1| 98.8| 99.7|100.0|
|      |     |     |     |     |     |     |     |     |     |     |
| H%prd| 82.7| 83.8| 85.0| 86.7| 88.1| 89.7| 91.4| 93.8| 96.3| 97.1|
| L%prd| 97.9| 98.3| 98.5| 98.7| 98.8| 99.0| 99.2| 99.4| 99.7| 99.9|
+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+

The above table gives the cumulative results, e.g. 92.3% of all
residues have a reliability of at least 5.  The overall two-state
accuracy for this subset is 97.2%.  For this subset, e.g., 95.7% of
the observed helical trans-membrane residues are correctly predicted,
and 89.7% of all residues predicted to be in helical trans-membrane
segment are correct.







The resulting network (PHD) prediction is:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

________________________________________________________________________________



 PHD: Profile fed neural network systems from HeiDelberg
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 Prediction of:         
    secondary structure,               by PHDsec        
    solvent accessibility,             by PHDacc        
    and helical transmembrane regions,     by PHDhtm        

 Author:                                    
    Burkhard Rost                           
    EMBL, 69012 Heidelberg, Germany                 
    Internet: Rost@EMBL-Heidelberg.DE               

 All rights reserved.



 The network systems are described in:                              

 PHDsec:    B Rost & C Sander: JMB, 1993, 232, 584-599.     
        B Rost & C Sander: Proteins, 1994, 19, 55-72.       
 PHDacc:    B Rost & C Sander: Proteins, 1994, 20, 216-226.     
 PHDhtm:    B Rost et al.:     Prot. Science, 1995, 4, 521-533. 



 Some statistics
 ~~~~~~~~~~~~~~~

 Percentage of amino acids:
 +--------------+--------+--------+--------+--------+--------+
 | AA:          |    L   |    A   |    S   |    G   |    I   |
 | % of AA:     |   13.0 |   10.0 |    9.7 |    8.9 |    8.6 |
 +--------------+--------+--------+--------+--------+--------+
 | AA:          |    V   |    R   |    T   |    F   |    D   |
 | % of AA:     |    7.8 |    5.2 |    4.5 |    4.5 |    4.5 |
 +--------------+--------+--------+--------+--------+--------+
 | AA:          |    N   |    Q   |    E   |    P   |    K   |
 | % of AA:     |    4.1 |    3.0 |    3.0 |    2.6 |    2.6 |
 +--------------+--------+--------+--------+--------+--------+
 | AA:          |    Y   |    M   |    W   |    H   |    C   |
 | % of AA:     |    1.9 |    1.9 |    1.5 |    1.5 |    1.5 |
 +--------------+--------+--------+--------+--------+--------+

 Percentage of secondary structure predicted:
 +--------------+--------+--------+--------+
 | SecStr:      |    H   |    E   |    L   |
 | % Predicted: |   43.9 |   16.7 |   39.4 |
 +--------------+--------+--------+--------+

 According to the following classes:
    all-alpha:   %H>45 and %E< 5; all-beta : %H<5 and %E>45
    alpha-beta : %H>30 and %E>20; mixed:    rest,
 this means that the predicted class is:           mixed class



 PHD output for your protein
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~

 Tue Nov 24 17:44:57 1998
 Jury on:       10    different architectures (version   5.94_317 ).
 Note: differently trained architectures, i.e., different versions can
 result in different predictions.



 About the protein
 ~~~~~~~~~~~~~~~~~

 HEADER     /home/phd/server/work/predict_h25873-220
 COMPND
 SOURCE
 AUTHOR
 SEQLENGTH   269
 NCHAIN        1 chain(s) in predict_h25873-22040 data set
 NALIGN       48
 (=number of aligned sequences in HSSP file)



 Abbreviations: PHDsec
 ~~~~~~~~~~~~~~~~~~~~~

 sequence:
    AA : amino acid sequence
 secondary structure:
    HEL: H=helix, E=extended (sheet), blank=other (loop)
    PHD: Profile network prediction HeiDelberg
    Rel: Reliability index of prediction (0-9)
 detail:
    prH: 'probability' for assigning helix
    prE: 'probability' for assigning strand
    prL: 'probability' for assigning loop
         note: the 'probabilites' are scaled to the interval 0-9, e.g.,
               prH=5 means, that the first output node is 0.5-0.6
 subset:
    SUB: a subset of the prediction, for all residues with an expected
         average accuracy > 82% (tables in header)
         note: for this subset the following symbols are used:
      L: is loop (for which above " " is used)
    ".": means that no prediction is made for this residue, as the
         reliability is:  Rel < 5

 Abbreviations: PHDacc
 ~~~~~~~~~~~~~~~~~~~~~

    SS : secondary structure
    HEL: H=helix, E=extended (sheet), blank=other (loop)
 solvent accessibility:
    3st: relative solvent accessibility (acc) in 3 states:
         b = 0-9%, i = 9-36%, e = 36-100%.
    PHD: Profile network prediction HeiDelberg
    Rel: Reliability index of prediction (0-9)
    O_3: observed relative acc. in 3 states: B, I, E
         note: for convenience a blank is used intermediate (i).
    P_3: predicted relative accessibility in 3 states
    10st:relative accessibility in 10 states:
         = n corresponds to a relative acc. of n*n %
 subset:
    SUB: a subset of the prediction, for all residues with an expected
         average correlation > 0.69 (tables in header)
         note: for this subset the following symbols are used:
    "I": is intermediate (for which above " " is used)
    ".": means that no prediction is made for this residue, as the
         reliability is: Rel < 4


 Abbreviations: PHDhtm
 ~~~~~~~~~~~~~~~~~~~~~

 secondary structure:
    HL:  T=helical transmembrane region, blank=other (loop)
    PHD: Profile network prediction HeiDelberg
    PHDF:filtered prediction, i.e., too long transmembrane segments
         are split, too short ones are deleted
    Rel: Reliability index of prediction (0-9)
 detail:
    prH: 'probability' for assigning helical transmembrane region
    prL: 'probability' for assigning loop
         note: the 'probabilites' are scaled to the interval 0-9, e.g.,
               prH=5 means, that the first output node is 0.5-0.6
 subset:
    SUB: a subset of the prediction, for all residues with an expected
         average accuracy > 82% (tables in header)
         note: for this subset the following symbols are used:
      L: is loop (for which above " " is used)
    ".": means that no prediction is made for this residue, as the
         reliability is:  Rel < 5



 protein:       predict        length      269

                  ....,....1....,....2....,....3....,....4....,....5....,....6
         AA      |MASEIKKKLFWRAVVAEFLAMTLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSI|
         PHD sec |       HHHHHHHHHHHHHHHHHHHHHHHHHHEE            HHHHHHHHHHHHH|
         Rel sec |998443148899999999999998997676530312469989998623353579999999|
 detail:
         prH sec |001223468899999999999998888777653112210000000145566788999999|
         prE sec |000011000000000000000001001111233542100000000000323211000000|
         prL sec |998665420100000000000000000011112244578988998753100000000000|
 subset: SUB sec |LLL.....HHHHHHHHHHHHHHHHHHHHHHH......LLLLLLLLL...H.HHHHHHHHH|

 ACCESSIBILITY
 3st:    P_3 acc |eeeebee bbb bbbbbbbbbbbbbbbbbbbbbebeee eeeeeeeeebbbbbbbbbbbb|
 10st:   PHD acc |997706650005000000000000000000000607775779776677000000000000|
         Rel acc |735421110541467608662789996343122133420454330023453975664547|
 subset: SUB acc |e.ee.....bb.bbbb.bbb.bbbbbb.b.......e..eee......bb.bbbbbbbbb|
                  ....,....7....,....8....,....9....,....10...,....11...,....12
         AA      |ATLAQSVGHISGAHSNPAVTLGLLLSCQISILRAVMYIIAQCVGAIVASAILSGITSSLL|
         PHD sec |HHHHHHHHHE      HHHHEHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH     |
         Rel sec |999996412122653167703135552356779999999999999999999998467213|
 detail:
         prH sec |998986544334223477843456665567779999999999999999999998611343|
         prE sec |001001123420010000145432101221110000000000000000000000000000|
         prL sec |000001232245765521000000123210000000000000000000000000278555|
 subset: SUB sec |HHHHHH......LL..HHH....HHH..HHHHHHHHHHHHHHHHHHHHHHHHHH.LL...|

 ACCESSIBILITY
 3st:    P_3 acc |bbbbebbbebbbbbb bbbbbbbbbbbebbbbbbbbbbbbbbbbbbbbbbbbeebbeeeb|
 10st:   PHD acc |000060006000000500000000000600000000000000000000000067006760|
         Rel acc |456515321655013144869663400154551757478936465465467713401400|
 subset: SUB acc |bbbb.b...bbb....bbbbbbb.b...bbbb.bbbbbbb.bbbbbbbbbbb..b..e..|
                  ....,....13...,....14...,....15...,....16...,....17...,....18
         AA      |ENSLGRNDLARGVNSGQGLGIEIIGTLQLVLCVLATTDRRRRDLGGSAPLAIGLSVALGH|
         PHD sec |       HHH       EEEEEEEEEEEEEEEEEEE            E E   HHHHHH|
         Rel sec |359985212134223651899898866789799875436658889963211351457756|
 detail:
         prH sec |320002345432332111000000000000100000221120000000001113567767|
         prE sec |100000000000011014899888877789789886100000000013544222221111|
         prL sec |568986543466545763100000011100000112567768889975454564210111|
 subset: SUB sec |.LLLLL.........LL.EEEEEEEEEEEEEEEEEE..LLLLLLLLL.....L..HHHHH|

 ACCESSIBILITY
 3st:    P_3 acc |eeebbbebbbeebeebeebbbbbbbbbbbbbbbbbbbeeeeeeeebbbbbbbbbbbbbbb|
 10st:   PHD acc |677000600077076077000000000000000000077767767000000000000000|
         Rel acc |133100124043040233247198656399879530035414413123255869586654|
 subset: SUB acc |........b.e..e.....bb.bbbbb.bbbbbb....ee.ee......bbbbbbbbbbb|
                  ....,....19...,....20...,....21...,....22...,....23...,....24
         AA      |LLAIDYTGCGINPARSFGSAVLTRNFSNHWIFWVGPFIGSALAVLIYDFILAPRSSDFTD|
         PHD sec |HEEEE E          HHHEEEE    EEEEEE HHHHHHHHHHHHHEEEEE       |
         Rel sec |321341126989622145152653534229996251699999999973147525556642|
 detail:
         prH sec |521100000000145432463121122000000114789999999875421111121124|
         prE sec |244564431000000000015765121358997510000000000013467642110000|
         prL sec |233234457889754567411012655530002364200000000010010136667765|
 subset: SUB sec |........LLLLL....H.H.EE.L....EEEE.L.HHHHHHHHHHH...EE.LLLLL..|

 ACCESSIBILITY
 3st:    P_3 acc |bbbbebbbbbbebb bbbbbbbbeebeebbbbbbbbbbbbbbbbbbbbbbbbeeeee ee|
 10st:   PHD acc |000060000006005000000007606600000000000000000000000076777577|
         Rel acc |754424240102242141047612131118967874356346635751777031345044|
 subset: SUB acc |bbbb.b.b.....b..b..bbb.......bbbbbbb.bb.bbb.bbb.bbb....ee.ee|
                  ....,....25...,....26...,....27...,....28...,....29...,....30
         AA      |RMKVWTSGQVEEYDLDADDINSRVEMKPK|
         PHD sec |HHHHHH                       |
         Rel sec |66775259975467555457776422699|
 detail:
         prH sec |77887520012221222221111100000|
         prE sec |00000000000000000000001233200|
         prL sec |11112379987678777678887655799|
 subset: SUB sec |HHHHH.LLLLL.LLLLL.LLLLL...LLL|

 ACCESSIBILITY
 3st:    P_3 acc |ebebbeeeeeeeeeeeeeeeeeebeeeee|
 10st:   PHD acc |60700787677777677777767067789|
         Rel acc |10411563134335144444514212559|
 subset: SUB acc |..e..ee...e..e.eeeeee.e...eee|


 PHDhtm Helical transmembrane prediction
        note: PHDacc and PHDsec are reliable for water-
              soluble globular proteins, only.  Thus,
              please take the  predictions above with
              particular caution wherever transmembrane
              helices are predicted by PHDhtm!


 PHDhtm
---
--- PhdTopology REFINEMENT AND TOPOLOGY PREDICTION: SYMBOLS
--- AA           : amino acid in one-letter code
--- PHD htm      : HTM's predicted by the PHD neural network
---                system (T=HTM, ' '=not HTM)
--- Rel htm      : Reliability index of prediction (0-9, 0 is low)
--- detail       : Neural network output in detail
--- prH htm      : 'Probability' for assigning a helical trans-
---                membrane region (HTM)
--- prL htm      : 'Probability' for assigning a non-HTM region
---          note: 'Probabilites' are scaled to the interval
---                0-9, e.g., prH=5 means, that the first
---                output node is 0.5-0.6
--- subset       : Subset of more reliable predictions
--- SUB htm      : All residues for which the expected average
---                accuracy is > 82% (tables in header).
---          note: for this subset the following symbols are used:
---             L: is loop (for which above ' ' is used)
---           '.': means that no prediction is made for this,
---                residue as the reliability is:  Rel < 5
--- other        : predictions derived based on PHDhtm
--- PHDFhtm      : filtered prediction, i.e., too long HTM's are
---                split, too short ones are deleted
--- PHDRhtm      : refinement of neural network output
--- PHDThtm      : topology prediction based on refined model
---                symbols used:
---             i: intra-cytoplasmic
---             T: transmembrane region
---             o: extra-cytoplasmic
---
--- PhdTopology REFINEMENT AND TOPOLOGY PREDICTION
                  ....,....1....,....2....,....3....,....4....,....5....,....6
         AA      |MASEIKKKLFWRAVVAEFLAMTLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSI|
         PHD htm |              TTTTTTTTTTTTTTTTTTT               TTTTTTTTTTTT|
 detail:         |                                                            |
         prH htm |000000000001136788999999999988875321110000000123678889999988|
         prL htm |999999999998863211000000000011124678889999999876321110000011|
  other:         |                                                            |
         PHDFhtm |              TTTTTTTTTTTTTTTTTTT                TTTTTTTTTTT|
         PHDRhtm |              TTTTTTTTTTTTTTTTTT                 TTTTTTTTTTT|
         PHDThtm |iiiiiiiiiiiiiiTTTTTTTTTTTTTTTTTToooooooooooooooooTTTTTTTTTTT|
 subset:         |                                                            |
         SUB htm |............................................................|
                  ....,....7....,....8....,....9....,....10...,....11...,....12
         AA      |ATLAQSVGHISGAHSNPAVTLGLLLSCQISILRAVMYIIAQCVGAIVASAILSGITSSLL|
         PHD htm |TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT     |
 detail:         |                                                            |
         prH htm |888888877777666677788888888888888888888888888888888876543211|
         prL htm |111111122222333322211111111111111111111111111111111123456788|
  other:         |                                                            |
         PHDFhtm |TTTTTTTTTTTTTTTT    TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT       |
         PHDRhtm |TTTTTTTT             TTTTTTTTTTTTTTTTTTTTTTTTT              |
         PHDThtm |TTTTTTTTiiiiiiiiiiiiiTTTTTTTTTTTTTTTTTTTTTTTTToooooooooooooo|
 subset:         |                                                            |
         SUB htm |............................................................|
                  ....,....13...,....14...,....15...,....16...,....17...,....18
         AA      |ENSLGRNDLARGVNSGQGLGIEIIGTLQLVLCVLATTDRRRRDLGGSAPLAIGLSVALGH|
         PHD htm |               TTTTTTTTTTTTTTTTTTT             TTTTTTTTTTTTT|
 detail:         |                                                            |
         prH htm |000000000001234567788888999988887643211111111235788899998888|
         prL htm |999999999998765432211111000011112356788888888764211100001111|
  other:         |                                                            |
         PHDFhtm |               TTTTTTTTTTTTTTTTTTT             TTTTTTTTTTTTT|
         PHDRhtm |                TTTTTTTTTTTTTTTTTT              TTTTTTTTTTTT|
         PHDThtm |ooooooooooooooooTTTTTTTTTTTTTTTTTTiiiiiiiiiiiiiiTTTTTTTTTTTT|
 subset:         |                                                            |
         SUB htm |............................................................|
                  ....,....19...,....20...,....21...,....22...,....23...,....24
         AA      |LLAIDYTGCGINPARSFGSAVLTRNFSNHWIFWVGPFIGSALAVLIYDFILAPRSSDFTD|
         PHD htm |TTTTTTTTT            TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT        |
 detail:         |                                                            |
         prH htm |888887765443432233334566777777788888888888888888887542100000|
         prL htm |111112234556567766665433222222211111111111111111112457899999|
  other:         |                                                            |
         PHDFhtm |TTTTTTTTT            TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT        |
         PHDRhtm |TTTTTT                         TTTTTTTTTTTTTTTTTTT          |
         PHDThtm |TTTTTToooooooooooooooooooooooooTTTTTTTTTTTTTTTTTTTiiiiiiiiii|
 subset:         |                                                            |
         SUB htm |............................................................|
                  ....,....25...,....26...,....27...,....28...,....29...,....30
         AA      |RMKVWTSGQVEEYDLDADDINSRVEMKPK|
         PHD htm |                             |
 detail:         |                             |
         prH htm |00000000000000000000000000000|
         prL htm |99999999999999999999999999999|
  other:         |                             |
         PHDFhtm |                             |
         PHDRhtm |                             |
         PHDThtm |iiiiiiiiiiiiiiiiiiiiiiiiiiiii|
 subset:         |                             |
         SUB htm |.............................|
---
--- PhdTopology REFINEMENT AND TOPOLOGY PREDICTION END
---

________________________________________________________________________________



________________________________________________________________________________


-----------------------------------------------------------------------------
---   PredictProtein: NEWS from January, 1997                             ---
---                                                                       ---
---   Dear user,                                                          ---
---                                                                       ---
---      as of  January 1, 1997,  EMBL has effectively decided to not     ---
---   support the PredictProtein service by personal resources.  I do     ---
---   maintain the program, so to speak, in my private time. However,     ---
---   my contract obliges me to do science, instead.   Unfortunately,     ---
---   the computer environment at  EMBL  is at the same time starting     ---
---   to become increasingly unstable.   Consequence of these two re-     ---
---   cent developments is that the  PredictProtein service is not as     ---
---   stable as it was.                                                   ---
---                                                                       ---
---      I apologise for the problems this may cause.  In particular,     ---
---   I apologise for my inability to reply to the 20-30 daily,  per-     ---
---   sonal mails, and suggest to  re-submit requests after 24 hours!     ---
---                                                                       ---
---   Hoping  that I shall  find  a more convenient  solution for the     ---
---   future of the PredictProtein I remain with my best regards,         ---
---                                                                       ---
---   Burkhard Rost                                                       ---
-----------------------------------------------------------------------------
---   PredictProtein: NEWS from April, 1998                               ---
---                                                                       ---
--------------------------------                                          ---
---   MOVING PredictProtein                                               ---
---   There appears to be light on the horizon! PP will may be having     ---
---   many hickups over the next months (as I shall leave EMBL). How-     ---
---   ever, the server seems to have a fair chance of survival thanks     ---
---   to a major support that is being raised by Columbia University,     ---
---   New York, U.S.A.).   I hope that this will settle the issue for     ---
---   the years to come ...                                               ---
--------------------------------                                          ---
---   WARNING                                                             ---
---   After a  major  rewriting of most of the PP code over the last,     ---
---   I am afraid  that  not all errors have been traced by me,  yet.     ---
---   Thus, please have mercy and report any bug you'll encounter!        ---
---                                             THANKS, Burkhard Rost     ---
--------------------------------                                          ---
---   NEW PREDICTION DEFAULTS                                             ---
---   * Coiled-coil regions: now by default the program COILS written by  ---
---     Andrei Lupas is run on your sequence. An output is returned if a  ---
---     coiled-coil region has been detected.                             ---
---   * Functional sequence motifs: now by default the PROSITE database   ---
---     written by Amos Bairoch, Philip Bucher and Kay Hofmann is scanned ---
---     for sequence motifs. An output is returned if any motif has been  ---
---     detected.                                                         ---
--------------------------------                                          ---
---   see http://www.embl-heidelberg.de/predictprotein/ppNews.html        ---
---     for a description of the following new options.                   ---
---   NEW INPUT OPTION                                                    ---
---   * Your input sequence(s) in FASTA-list format ("# FASTA list ")     ---
---   NEW OUTPUT OPTIONS                                                  ---
---   * Return also BLASTP output ("return blast")                        ---
---   * Return prediction additionally in RDB format ("return phd rdb")   ---
---   * Return topits hssp  ("return topits hssp")                        ---
---   * Return topits strip ("return topits strip")                       ---
---   * Return topits own   ("return topits own")                         ---
---   * Return no coils     ("return no coils")                           ---
---   * Return no prosite   ("return no prosite")                         ---
-----------------------------------------------------------------------------
%</AQPPHD>
%    \end{macrocode}
%    \begin{macrocode}
%<*AQP1HMM>
Protein: AQP1
Length:  269
N-terminus:  IN 
Number of transmembrane helices: 6
Transmembrane helices: 14-33 54-73 94-112 139-156 165-184 211-230 

Total entropy of the model:  17.0025
Entropy of the best path:  17.0049

The best path:

     seq  MASEIKKKLF WRAVVAEFLA MTLFVFISIG SALGFNYPLE RNQTLVQDNV    50
     pred IIIIiiiiii iiiHHHHHHH HHHHHHHHHH HHHooooooo oooooooooo 

     seq  KVSLAFGLSI ATLAQSVGHI SGAHSNPAVT LGLLLSCQIS ILRAVMYIIA   100
     pred oooHHHHHHH HHHHHHHHHH HHHiiiiiii iiiiiiiiii iiiHHHHHHH 

     seq  QCVGAIVASA ILSGITSSLL ENSLGRNDLA RGVNSGQGLG IEIIGTLQLV   150
     pred HHHHHHHHHH HHoooooooo oooooooooo ooooooooHH HHHHHHHHHH 

     seq  LCVLATTDRR RRDLGGSAPL AIGLSVALGH LLAIDYTGCG INPARSFGSA   200
     pred HHHHHHiiii iiiiHHHHHH HHHHHHHHHH HHHHoooooo oooooooooo 

     seq  VLTRNFSNHW IFWVGPFIGS ALAVLIYDFI LAPRSSDFTD RMKVWTSGQV   250
     pred oooooooooo HHHHHHHHHH HHHHHHHHHH iiiiiiiiii iiiiiIIIII 

     seq  EEYDLDADDI NSRVEMKPK  269
     pred IIIIIIIIII IIIIIIIII
%</AQP1HMM>
%    \end{macrocode}
%    \begin{macrocode}
%<*btstyl>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{biotex}[2001/08/08 LaTeX BioTeX Bundle (v1.1)]


\catcode`\@=11

\expandafter\ifx\csname BioTeX\endcsname\relax \else \endinput \fi

\def\BioTeX{\mbox{\textsc{Bio}\kern-0.5ex\TeX}}

\message{Welcome to the BioTeX Bundle Version 1.1 of 01/08/08}

\DeclareOption*{%
   \PassOptionsToPackage{\CurrentOption}{texshade}%
   \PassOptionsToPackage{\CurrentOption}{textopo}%
}
\ProcessOptions

\newread\in@file

\expandafter\ifx\csname TeXshade\endcsname\relax
 \openin\in@file = texshade.sty
 \ifeof\in@file
  \PackageError{BioTeX}
    {`texshade.sty' not found}
      {\MessageBreak
       I can not find the TeXshade package on your computer.\MessageBreak
       That means that neither setting of sequence alignments\MessageBreak
       nor shading of topology plots or helical wheels\MessageBreak
       can be applied.\MessageBreak
       TeXshade is available from any CTAN site or from the\MessageBreak
       BioTeX (TeXshade/TeXtopo) homepage: \MessageBreak
       http://homepages.uni-tuebingen.de/beitz/tse.html
       \MessageBreak\MessageBreak
       You can proceed <return> or stop by typing X <return>. \MessageBreak
}
 \else \RequirePackage{texshade}
 \expandafter\ifx\csname geneticcode\endcsname\relax
   \PackageError{BioTeX}
   {(actually a warning only) `texshade.sty' too old}
   {\MessageBreak
       The TeXshade version your are about to use is not\MessageBreak
       compatible with TeXtopo. \MessageBreak
       In order to apply shading on topology plots you\MessageBreak
       need to install a more recent TeXshade package\MessageBreak
       (v1.3 or newer). \MessageBreak
       TeXshade is available from any CTAN site or from the \MessageBreak
       BioTeX (TeXshade/TeXtopo) homepage: \MessageBreak
       http://homepages.uni-tuebingen.de/beitz/tse.html
       \MessageBreak\MessageBreak
       You can proceed <return> or stop by typing X <return>. \MessageBreak
}
 \fi
 \closein\in@file
 \fi
\fi

\expandafter\ifx\csname TeXtopo\endcsname\relax
 \openin\in@file = textopo.sty
 \ifeof\in@file
  \PackageError{BioTeX}
    {`textopo.sty' not found}
      {\MessageBreak
       I can not find the TeXtopo package on your computer.\MessageBreak
       That means that neither topology plots nor helical wheels\MessageBreak
       can be set.\MessageBreak
       TeXtopo is available from any CTAN site or from the\MessageBreak
       BioTeX (TeXshade/TeXtopo) homepage: \MessageBreak
       http://homepages.uni-tuebingen.de/beitz/tse.html
       \MessageBreak\MessageBreak
       You can proceed <return> or stop by typing X <return>. \MessageBreak
}
 \else \RequirePackage{textopo} \fi
 \closein\in@file
\fi
 
\catcode`\@=12

\endinput
%</btstyl>
%    \end{macrocode}
%    \Finale
\endinput

