summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/textopo
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/textopo
Initial commit
Diffstat (limited to 'macros/latex/contrib/textopo')
-rw-r--r--macros/latex/contrib/textopo/textopo.dtx13030
-rw-r--r--macros/latex/contrib/textopo/textopo.ins72
-rw-r--r--macros/latex/contrib/textopo/textopo.pdfbin0 -> 635944 bytes
-rw-r--r--macros/latex/contrib/textopo/textopo.txt140
4 files changed, 13242 insertions, 0 deletions
diff --git a/macros/latex/contrib/textopo/textopo.dtx b/macros/latex/contrib/textopo/textopo.dtx
new file mode 100644
index 0000000000..ebb8bbd6c4
--- /dev/null
+++ b/macros/latex/contrib/textopo/textopo.dtx
@@ -0,0 +1,13030 @@
+% \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-2011 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'.
+% }
+%
+% \changes{1.5}{2011-06-02}{%
+% Corrections:
+% - compatibility issues with the current TeXshade
+% version solved.
+% }
+%
+%
+% \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 Kiel,
+% Pharmaceutical Chemistry, Gutenbergstrasse 8,
+% D-24118 Kiel, Germany;
+% send electronic mail to \texttt{ebeitz@pharmazie.uni-kiel.de};
+% for further information, updates and on-line documentation
+% see my homepage at
+% \texttt{www.pharmazie.uni-kiel.de/chem/Prof\_Beitz/biotex.html} }}
+% \date{v1.5; 2011/06/02\\}
+% \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.5 2011/06/02}
+% \medskip
+%
+% Compatibility with the current \TeXshade{} version was
+% re-established.
+% \medskip
+%
+% \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
+%
+% \newpage
+%
+% \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}|}|
+% \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}[2011/06/02 LaTeX TeXtopo (v1.5)]
+\message{Package `textopo', Version 1.5 of 2011/06/02.}
+
+\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@ 000@}
+ \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@ 000@}
+ \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', `alignment',\MessageBreak
+ and `HMMTOP' 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\def\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@{featurenames}
+ \ifx\first@\temp@ \xdef\ftext@family{\third@}
+ \else
+ \xdef\temp@{featurestylenames}
+ \ifx\first@\temp@ \xdef\fstyles@family{\third@}
+ \else
+ \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@{ruler}
+ \ifx\first@\temp@ \xdef\ruler@family{\second@}
+ \else
+ \xdef\temp@{all}
+ \ifx\first@\temp@
+ \xdef\ftext@family{\third@}
+ \xdef\fstyles@family{\third@}
+ \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@}
+ \xdef\ruler@family{\second@}
+ \fi\fi\fi\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@{featurenames}
+ \ifx\first@\temp@ \xdef\ftext@series{\third@}
+ \else
+ \xdef\temp@{featurestylenames}
+ \ifx\first@\temp@ \xdef\fstyles@series{\third@}
+ \else
+ \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\ftext@series{\third@}
+ \xdef\fstyles@series{\third@}
+ \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\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@{featurenames}
+ \ifx\first@\temp@ \xdef\ftext@shape{\third@}
+ \else
+ \xdef\temp@{featurestylenames}
+ \ifx\first@\temp@ \xdef\fstyles@shape{\third@}
+ \else
+ \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\ftext@shape{\third@}
+ \xdef\fstyles@shape{\third@}
+ \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\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@{featurenames}
+ \ifx\first@\temp@
+ \def\ftext@size{\csname #2\endcsname}
+ \else
+ \xdef\temp@{featurestylenames}
+ \ifx\first@\temp@
+ \def\fstyles@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\ftext@size{\csname #2\endcsname}
+ \def\fstyles@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\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
+
diff --git a/macros/latex/contrib/textopo/textopo.ins b/macros/latex/contrib/textopo/textopo.ins
new file mode 100644
index 0000000000..4a3d310cf0
--- /dev/null
+++ b/macros/latex/contrib/textopo/textopo.ins
@@ -0,0 +1,72 @@
+%%
+%% docstrip install file for textopo.sty
+%%
+%% Copyright 2000-2005 Eric Beitz
+%%
+\def\batchfile{textopo.ins}
+
+\input docstrip
+
+\askforoverwritefalse
+\keepsilent
+
+\declarepreamble\textopo
+
+A LaTeX package for shaded membrane protein topology plots
+
+Copyright (C) 2000-2005 Eric Beitz
+See the file textopo.txt
+
+\endpreamble
+
+\generate{\usepreamble\textopo%
+ \file{textopo.sty}{\from{textopo.dtx}{textpo}}}
+
+\generate{\usepreamble\empty \usepostamble\empty%
+ \file{textopo.def} {\from{textopo.dtx}{defins}}
+ \file{AQPpro.MSF} {\from{textopo.dtx}{AQPpro}}
+ \file{AQP2spec.ALN}{\from{textopo.dtx}{AQP2sp}}
+ \file{AQPpro1.shd} {\from{textopo.dtx}{AQPshd}}
+ \file{AQP1.tpo} {\from{textopo.dtx}{AQPtpo}}
+ \file{AQP1.phd} {\from{textopo.dtx}{AQPPHD}}
+ \file{AQP1.hmm} {\from{textopo.dtx}{AQP1HMM}}
+ \file{AQP1.swp} {\from{textopo.dtx}{AQPswp}}
+ \file{AQP1.SP} {\from{textopo.dtx}{AQP1SP}}
+ \file{biotex.sty} {\from{textopo.dtx}{btstyl}}}
+
+\Msg{**************************************************************}
+\Msg{*}
+\Msg{* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}
+\Msg{* !!! Have you used a docstrip version 2.4 or later?}
+\Msg{* !!!}
+\Msg{* !!! IF NOT GO AND GET A RECENT VERSION!}
+\Msg{* !!!}
+\Msg{* !!! The documentation will not run through TeX with}
+\Msg{* !!! your files extracted by an old docstrip version!}
+\Msg{* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by LaTeX:}
+\Msg{*}
+\Msg{* \space\space textopo.sty}
+\Msg{* \space\space biotex.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the following file twice}
+\Msg{* through LaTeX:}
+\Msg{*}
+\Msg{* \space\space textopo.dtx}
+\Msg{*}
+\Msg{* Make sure that the following files are present in the same}
+\Msg{* directory as textopo.dtx (needed for TeXing the doc):}
+\Msg{*}
+\Msg{* \space\space AQPpro.MSF}
+\Msg{* \space\space APQ2spec.ALN}
+\Msg{* \space\space AQPpro.shd}
+\Msg{* \space\space APQ1.phd}
+\Msg{* \space\space APQ1.SP}
+\Msg{* \space\space AQP1.tpo}
+\Msg{* \space\space AQP1.swp}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{**************************************************************}
diff --git a/macros/latex/contrib/textopo/textopo.pdf b/macros/latex/contrib/textopo/textopo.pdf
new file mode 100644
index 0000000000..25d318029f
--- /dev/null
+++ b/macros/latex/contrib/textopo/textopo.pdf
Binary files differ
diff --git a/macros/latex/contrib/textopo/textopo.txt b/macros/latex/contrib/textopo/textopo.txt
new file mode 100644
index 0000000000..ff9bd4b872
--- /dev/null
+++ b/macros/latex/contrib/textopo/textopo.txt
@@ -0,0 +1,140 @@
+ TeXtopo v1.5
+ >>
+ >> A LaTeX package for shaded membrane protein topology plots.
+ >>
+ >> PHD topology predictions are a mighty tool to localize trans-
+ >> membrane domains and the protruding loops. SwissProt database
+ >> files provide sequence feature informations, such as mutation
+ >> sites, important domains, or secondary modifications. Making
+ >> these data visible in a sophisticated topology plot is an
+ >> enormous effort when using a standard drawing software.
+ >>
+ >> TeXtopo is a LaTeX2e macro package that provides two new envi-
+ >> ronments: (a) the textopo environment is used for plotting to-
+ >> pology data of membrane proteins derived from PHD predictions,
+ >> from SwissProt database files or from manually entered data
+ >> containing sequence and transmembrane domain information, and
+ >> (b) the helical wheel environment draws transmembrane domains
+ >> as seen from above or beneath the cell membrane.
+ >>
+ >> Both kinds of plots can be richly decorated with special sha-
+ >> ding for domains of interest, with labels and legends. TeXtopo
+ >> is fully compatible with TeXshade (v1.3 and up) -- the compre-
+ >> hensive alignment shading package for the TeX community. This
+ >> allows one to apply calculated shading based on sequence con-
+ >> servation and functional aspects of the residue sidechains.
+ >>
+ Copyright (C) 2000-2011 Eric Beitz
+
+
+
+ FOR THE HASTY READER
+
+ Be sure to use a docstrip version 2.4 or later!
+ Otherwise you will not be able to tex the documentation!
+
+
+
+1 - FILES DISTRIBUTED WITH THIS PACKAGE
+
+ textopo.ins Batch file, run through LaTeX
+ textopo.dtx Docstrip archive, run twice through LaTeX
+ textopo.txt This file
+
+
+ (a) FILES THAT WILL BE GENERATED FROM TEXTOPO.INS
+
+ textopo.sty LaTeX package
+ textopo.def Standard definitions
+ AQPpro.MSF Example protein alignment file (.MSF-format)
+ AQPpro1.shd Shading information calculated from AQPpro.MSF
+ AQP2spec.ALN Example protein alignment file (.ALN-format)
+ AQP1.phd Example PHD secondary structure file
+ AQP1.tpo Topology data extracted from AQP1.phd
+ AQP1.SP SwissProt database file
+ AQP1.swp Information extracted from AQP1.SP
+ biotex.sty Style file which organizes the BioTeX Bundle
+
+
+ (b) FILE THAT WILL BE GENERATED FROM TEXTOPO.DTX
+
+ textopo.dvi Package documentation
+
+
+
+2 - INSTALLATION
+
+ (a) EXTRACTING FILES FROM THE DOCSTRIP ARCHIVE
+
+ All files provided by TeXtopo are compacted to one single file,
+ namely "textopo.dtx". To extract the archive run "textopo.ins"
+ - which contains the corresponding instructions - through LaTeX.
+ A list of the generated files is given above, see 1(a).
+
+ AGAIN: Be sure to use a docstrip version 2.4 or later! Otherwise
+ you will not be able to tex the documentation!
+
+
+ (b) THE DOCUMENTATION
+
+ The file "textopo.dtx" further contains the package documentation.
+ Therefore, run this file through LaTeX now. As you will recognize
+ two runs are needed to make proper references within the document.
+
+ TeXtopo needs lots of LaTeX's memory, so adjust your parameter set-
+ tings to make TeXtopo feel comfortable. The documentation is a
+ good test for this. (If you have problems TeXing the doc, you can
+ download an on-line version [PDF-, DVI-, or PostScript format] at
+ http://homepages.uni-tuebingen.de/beitz/)
+
+ The resulting file "textopo.dvi" can be viewed and printed using a
+ DVI-viewer which is able to display embedded PostScript. Another
+ possibility is to run "textopo.dvi" through DVIPS, a DVI to Post-
+ Script converter, and finally view and print the converted file
+ which will be most likely "textopo.ps" with GhostView from the GNU
+ free software foundation.
+
+ TeXtopo makes use of "color.sty" by David Carlisle. This style is
+ part of the Standard LaTeX Graphics Bundle. Usually, the bundle is
+ present in a comprehensive LaTeX installation. If this is not the
+ case for your system you have to download the package from a CTAN-
+ server, e.g. ftp.dante.de.
+
+
+ (c) MAKING TEXTOPO.STY AVAILABLE FOR YOUR LATEX SYSTEM
+
+ In the final step, copy at least the files "textopo.sty" and
+ "biotex.sty" to a directory searched by TeX in order to make these
+ files available for all documents you produce in the future. The
+ remaining files are example files which are not necessary for run-
+ ning TeXtopo. Nevertheless, it would be a good idea to keep all the
+ files together.
+
+
+
+
+3 - CONTACT
+
+ E-Mail: ebeitz@pharmazie.uni-kiel.de
+ WWW: http://www.pharmazie.uni-kiel.de/chem/
+ (On-line documentation and updates)
+ Address: Eric Beitz, University of Kiel, Pharmaceutical Chemistry,
+ Gutenbergstrasse 76, D-24118 Kiel (Germany)
+
+
+
+4 - AGREEMENT
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ In order to receive a copy of the GNU General Public License write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.