From d961cb4a823a229871531c6ab902c9ad79c6cb20 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 11 Jan 2006 23:58:22 +0000 Subject: trunk/Master/texmf-dist/source/latex/textopo git-svn-id: svn://tug.org/texlive/trunk@549 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/textopo/textopo.dtx | 12977 +++++++++++++++++++ Master/texmf-dist/source/latex/textopo/textopo.ins | 72 + 2 files changed, 13049 insertions(+) create mode 100644 Master/texmf-dist/source/latex/textopo/textopo.dtx create mode 100644 Master/texmf-dist/source/latex/textopo/textopo.ins (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/source/latex/textopo/textopo.dtx b/Master/texmf-dist/source/latex/textopo/textopo.dtx new file mode 100644 index 00000000000..2e0c448db9f --- /dev/null +++ b/Master/texmf-dist/source/latex/textopo/textopo.dtx @@ -0,0 +1,12977 @@ +% \iffalse +% +% textopo.dtx +% Docstrip archive, to extract documentation run twice through +% LaTeX. +% To successfully extract the documentation it is neccessary to +% run the file `textopo.ins' through LaTeX first. This produces +% the needed style file `textopo.sty' as well as several example +% files. See the file `textopo.txt' for further information! +% +% +% Copyright (C) 2000-2005 Eric Beitz +% See the file textopo.txt +% +% \fi +% +% \changes{1.0}{2000-3-18}{First release} +% +% \changes{1.0a}{2000-5-16}{% +% Corrections: +% - minor changes in the documentation; +% - the `addtagtoNterm' and `addtagtoCterm' +% commands were buggy, +% - the `place' command did not work at all. +% } +% +% \changes{1.0b}{2000-5-24}{% +% Corrections: +% - compatibility with TeXshade improved. +% } +% +% \changes{1.0c}{2000-6-03}{% +% Corrections: +% - `place' command finally fixed. +% } +% +% \changes{1.1}{2000-7-12}{% +% Major change: +% - handedness of helices was alternating +% left and right-handed. Now, all are +% oriented left-handed. +% Documentation: +% - Addition of instructions on increasing +% TeX parameters. +% } +% \changes{1.2}{2001-3-09}{% +% Introduction: +% - `moveres' command +% - `movelegend' command, +% - `loopfoot' command, +% - `broadenmembrane' command +% - `thickenmembrane' command; +% - helicalwheel environment parameter allows one +% to write number series with a dash {1-5}; +% - move parameters can now be set in x- and y-values} +% +% \changes{1.3}{2002-04-15}{% +% Corrections: +% - other options besides [dvips] can be passed to +% the graphics bundle, e.g. [dvipdf]; +% - rotating.sty is no longer needed; +% - maximal transmembrane domain length increased to 36aa. +% Introduction: +% - `borderthickness' command, +% - `showmoment' and `hidemoment'; +% - `momentcolor' and `scalemoment'; +% - `Hmean', `muH', `muHmean' and `mudelta'; +% - `helixstyle' [perspective],[wheel] or [net]; +% } +% +% \changes{1.4}{2005-02-14}{% +% Corrections: +% - rotation issues fixed with helix style `wheel'; +% - minor bug fixes. +% Introduction: +% - new input format `HMMTOP' for `getsequence'. +% } +% +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \parindent0mm +% +% +% \title{The \TeXtopo{} package\\[3mm] \large +% for shaded membrane protein\\ topology plots\footnote{Please cite: +% Eric Beitz (2000), \TeX{}topo: +% shaded membrane protein topology plots in \LaTeXe. +% \textit{Bioinformatics} \textbf{16}: 1050--1051.}} +% \author{Eric Beitz\footnote{University of T\"ubingen, +% Pharmaceutical Chemistry, Morgenstelle 8, +% D-72076 T\"ubingen, Germany; +% send electronic mail to \texttt{eric.beitz@uni-tuebingen.de}; +% for further information, updates and on-line documentation +% see my homepage at +% \texttt{http://homepages.uni-tuebingen.de/beitz/}}} +% \date{v1.4; 2005/02/14\\} +% \maketitle +% \begin{textopo} +% \getsequence{PHD}{AQP1.PHD} +% \hideTMlabels +% \scaletopo{2} +% \end{textopo} +% \thispagestyle{empty} +% +% \newpage +% \tableofcontents +% \enlargethispage{1cm} +% \newpage +% +% \section{Package Overview}\label{over} +% +% After \texttt{textopo.ins} is run through \TeX{} the following files +% should appear in the directory: +% +% \begin{tabbing} +% \quad\texttt{textopo.sty}\qquad\= the style file with all \TeXtopo{} +% commands\\ +% \quad\texttt{textopo.def}\> an example parameter file with the +% standard \\ +% \> parameter settings\\ +% \quad\texttt{AQPpro.MSF} \> an example protein alignment +% (\texttt{MSF}-format)\\ +% \quad\texttt{AQPpro1.shd}\> shading information calculated +% from the file \\ +% \> |AQPpro.MSF|\\ +% \quad\texttt{AQP2spec.ALN}\> a further protein alignment +% (minimal \texttt{ALN}-file)\\ +% \quad\texttt{AQP1.phd}\> secondary structure information +% (PHD-format)\\ +% \quad\texttt{AQP1.hmm}\> secondary structure information +% (HMMTOP-format)\\ +% \quad\texttt{AQP1.tpo}\> secondary structure information +% extracted \\ +% \> from |AQP1.phd|\\ +% \quad\texttt{AQP1.SP}\> protein database entry +% (SwissProt-format)\\ +% \quad\texttt{AQP1.swp}\> sequence and feature information +% extracted \\ +% \> from |AQP1.SP|\\ +% \quad\texttt{biotex.sty}\> this style file organizes the +% interaction\\ +% \> with \TeXshade{}, see \ref{mbiotex}\\ +% \end{tabbing} +% The alignment file examples as well as the topology data file are +% needed for \TeX ing this documentation +% and can serve as illustrations for the |MSF| and |ALN| +% file format. +% +% The following subsections give an overview of the capabilities of +% the \TeXtopo{} package. All commands are described in detail +% later on. +% +% \subsection{Version History} +% +% \textbf{v1.4 2005/02/14} +% \medskip +% +% A new topology input format has been implemented: HMMTOP, see +% \ref{HMMTOP}. +% A rotation issue with classical flat helical wheels has been addressed +% and some minor bugs have been fixed. +% \bigskip +% +% \textbf{v1.3 2002/04/15} +% \medskip +% +% The unnecessary restriction to the DVIPS +% driver for |color.sty| has been removed\footnote{As suggested by +% Eckhart Guth\"ohrlein.}. Any color.sty compatible +% driver option can be given with the |\usepackage{textopo}| call +% and is then passed to the |color| package. Further, +% |rotating.sty| is no longer needed. The maximal helix length has +% been increased to 36\,aa. +% Introduction of two new helical wheel styles (|net| and |wheel|) +% and the display of the hydrophobic moment. Corresponding commands: +% |\helixstyle|, |\showmoment|, |\hidemoment|, |\momentcolor|, +% |\scalemoment|, |\Hmean|, |\muH|, |\muHmean|, |\mudelta|). +% +% +% \bigskip +% +% \textbf{v1.2 2001/03/09} +% \medskip +% +% Several new commands were introduced: |\movelegend| for a free +% re-location of the figure legend, |\footloop| adds a foot to +% a specified loop and thus keeps the distance between the transmembrane +% domains small, |\broadenmembrane| and |\thickenmembrane| allow +% one to change the dimensions of the membrane. In the helicalwheel +% environment number series can be written with a dash, e.\,g. |{1-5}| +% instead of |{1,2,3,4,5}|. In commands that move labels the new +% position can be given in \emph{x}/\emph{y}-values besides +% the \meta{direction} and \meta{distance} parameters. +% \bigskip +% +% +% \textbf{v1.1 2000/07/12} +% \medskip +% +% One major improvement was achieved by changing the handedness of +% the transmembrane helices to be consistently left-handed. +% See the cover figure! The +% documentation now contains instructions where to find basic +% \LaTeX{} documents and how to increase \TeX's +% parameter settings. +% \bigskip +% +% +% \textbf{v1.0a 2000/05/16 -- v1.0c 2000/06/03} +% \medskip +% +% Minor corrections of the documentation and bug fixes in the +% |\place|, |\addtagtoNterm| and |\addtagtoCterm| commands. +% Improvement of the \TeX{}shade compatibility. +% \bigskip +% +% \textbf{v1.0 2000/03/18} +% \medskip +% +% First release. +% \bigskip +% +% +% \subsection{\LaTeX{} basics} +% +% \subsubsection{Typesetting documents with \LaTeX} +% +% In order to use any of the macros provided by the \BioTeX-project +% (see \ref{appshad}) efficiently a basic understanding of the \TeX{} +% typesetting system and its usage is required. Several books are +% available on this topic, but a rather quick and easy introduction +% is the \emph{Not so short introduction to \LaTeX}. This document +% is available from all Comprehensive \TeX{} Archive Network +% (CTAN) servers, +% e.\,g. from \texttt{ftp://ftp.dante.de/pub/tex/documentation/lshort/}, +% in many different languages and formats besides \LaTeX{}, such +% as PostScript and on-line viewable PDF. +% I also put a link from the \BioTeX{} (\TeXshade/\TeXtopo) homepage +% to the document collection +% (\texttt{http://homepages.uni-tuebingen.de/beitz/biotex.html}). +% +% +% \subsubsection{Memory shortness when using \TeXtopo} +% +% If you are using \TeXtopo{} to plot topologies of larger proteins +% ($> 600$ residues), LaTeX will probably stop compiling and quit with one +% of the following messages: +% \texttt{!\ TeX capacity exceeded, sorry [main memory size=384000]} or +% \texttt{!\ TeX capacity exceeded, sorry [stack size=300]}. +% +% \TeX{} allocates space for different kinds of internal variables. +% Plotting topologies of big membrane proteins needs lots of memory, +% usually more than for typesetting plain text. +% Thus, the parameter settings of a standard \TeX{} installation might not +% be sufficient for certain plotting projects. This becomes obvious +% when \TeX{} complains about insufficient memory by displaying error +% messages and the setting process is interrupted. There is no reason to be +% concerned. The parameters can be set by hand. Unfortunately, +% each \TeX{} system hides its default parameter file in a different +% place in the system. +% +% In the following, an excerpt from a FAQ-list to \TeXshade, an +% alignment setting macro for \LaTeX{}, is added. This explains how +% to increase the settings in Oz\TeX{} for the Macintosh, Mik\TeX{} +% for Windows and te\TeX{} for *NIX \TeX{} distributions. Please contribute +% to this list! +% +% \begin{enumerate} +% +% \item +% +% \textbf{Oz\TeX{} 4.0 for the Macintosh:} +% +% Find the file `OzTeX:TeX:Configs:Default'. This file contains +% all memory settings. Look for the section +% `\% TeX parameters' and increase the values that \TeX{} complains +% about during the run. You will have to restart Oz\TeX{} before the +% changes are active. +% +% For older versions of Oz\TeX{} the configuration file has the +% same name but the path is somewhat different. +% +% +% \item +% +% \textbf{te\TeX{} for *NIX:} (contributed by Joerg Daehn) +% +% Find the file: `/usr/share/texmf/web2c/texmf.cnf' or +% use |locate texmf.cnf| at the command prompt to find it. +% +% Login as super user. Backup `texmf.cnf' in case you destroy something and +% then open the `texmf.cnf' file in your favorite text editor and use its +% search function to locate |main_memory|. This variable is set to 384000. +% Change this to some higher value, i.e. 4000000 (works fine for me!). The +% total amount of memory should not exceed 8000000, so check the other +% values in that section. +% +% Next, you want to change the stack size. Search for |stack_size|. This +% will be set to 300. I changed it to 4000 and it works fine. +% +% There might be complains by \TeX{} about further specific parameters such +% as \verb|stack_size|. You find all those in the same file. +% +% After this you have to run `texconfig init'. +% +% Logout as root. +% +% After this all should be set for large plots. Happy \TeX{}ing! +% +% The information on how to achieve this was derived from a mail in the +% te\TeX{} mail archive. The original question was posted by Pascal Francq and +% answered by Rolf Nieprasch. +% +% +% \item +% +% \textbf{MiK\TeX{} for Windows:} +% +% The MiK\TeX{} documentation describes very detailed how the memory +% settings can be changed. In brief, you must locate the +% configuration file `miktex/config/miktex.ini'. In the [MiKTeX] +% section of this file you find all the parameters you need, e.\,g.\ +% \verb|mem_min|, \verb|mem_max|, \verb|buf_size|, \verb|stack_size| etc. +% +% It appears, that the standard settings of MiK\TeX{} are bigger +% than that of other \TeX{} installations, so it may not always be necessary +% to increase the values. +% +% +% \end{enumerate} +% +% +% \subsection{System requirements} +% +% \TeXtopo{} requires at least \LaTeXe{} and \texttt{color.sty}. +% David Carlisle's \texttt{color.sty} is part of the Standard \LaTeX{} +% `Graphics Bundle' [1]. This package can be downloaded from any +% \TeX{} archive, e.g.\ \texttt{ftp.dante.de}; usually it is already +% included in a comprehensive \TeX{} installation. +% +% The |color| style allows one to use several |[|\meta{options}|]|, e.\,g. +% |dvips|, |pdftex| or |dviwin|. These provide the commands which +% different devices/programs need to display colored output. It is +% advisable to make yourself familiar with the |color.sty| manual. +% You should define a default driver in the file |color.cfg|. +% Since there is no direct call of |color.sty| by the user, the +% option can be stated when \TeXtopo{} is loaded, see next +% subsection. If no option is stated the |DVIPS| driver will be +% loaded as was default before. +% +% With the |[dvips]| option for example the output DVI-file +% can be converted to \textsc{PostScript} using the |DVIPS| program +% and can later be viewed or printed with the public domain +% |Ghostview| program which is +% available for almost all computer platforms. Further, more and more +% standard \TeX{} viewers are to a certain extent \textsc{PostScript} compatible, +% e.\,g.\ Oz\TeX{} on the Macintosh. The option |pdftex| makes the +% conversion to a PDF file easy etc. +% +% \TeXtopo{} is compatible with \TeXshade{} (version 1.3 or newer) which +% is a mighty alignment shading package for \LaTeXe{}. In combination with +% \TeXshade{} the capability of \TeXtopo{} is greatly enhanced, +% e.\,g.\ by the automatic application of calculated shading from +% protein alignments or shading due to functional properties, such +% as charge or accessible side chain area, see \ref{ts}. +% +% \bigskip +% +% +% +% \subsection{\TeXtopo{}'s environments} +% \label{tsenvironment} +% +% In order to make \TeXtopo{} available for your document declare +% it in the document header section: +% \medskip +% +% \quad |\usepackage[|\meta{option}|]{textopo}| +% +% \medskip +% Make sure that the file `|textopo.sty|' is present in a directory +% searched by \TeX{} (see the installation notes in the file +% `|textopo.txt|'). +% +% The \meta{option} given here is passed to |color.sty| which +% handles the color commands for a particular output device, see +% previous subsection and the |color.sty| manual. +% +% The package provides two new environments, i.\,e.\ the |textopo| +% and the |helicalwheel| environment. Both are described in +% greater detail below. +% +% \subsubsection{The \texttt{textopo} environment} +% \label{topoenv} +% +% This environment displays schematic topology plots of membrane proteins. +% \TeXtopo{} can import sequence and +% topology data directly from PHD or HMMTOP predictions, SwissProt +% database files +% (see the example files |AQP1.PHD|, |AQP1.hmm| and |V2.SP| for their +% structure) or alignment files (MSF and ALN format; example files +% are also provided). When SwissProt files are used \TeXtopo{} will +% automatically extract all the information about special domains, +% variations, mutations etc.\ from the database file and label +% the respective positions in the plot. +% Alternatively, one can manually enter the sequence and the positions +% of the membrane spanning domains within the environment. Based on +% this data \TeXtopo{} produces a first plot. Then, the +% output can be further adjusted to one's needs by adding labels, special +% styles for the appearance of the residues, shading (automatic +% [see÷\ref{ts}] or manual) and legends. +% \medskip +% +% The usage of the |textopo| environment is easy: +% +% \vbox{% +% \begin{quote} +% |\begin{textopo}[|\meta{optional parameterfile}|]| +% +% \quad\emph{further \emph{\TeXtopo} commands} +% +% |\end{textopo}| +% \end{quote}} +% +% In the optional parameter file (section~\ref{paramfilestruc}) +% any \TeXtopo{} command can be given in order to fix user +% specific settings. This option provides fast and consistent outputs. +% At least one command is necessary whithin the environment which +% loads the sequence and topology of the protein to be plotted, +% i.\,e.\ |\getsequence| [\ref{mgetsequence}] or |\sequence| + |\MRs| +% [\ref{msequence},\ref{mMRs}]. +% +% +% \subsubsection{The \texttt{helicalwheel} environment} +% \label{wheelenv} +% +% This second environment provides essentially the same +% functionality as |textopo|. Here, the output +% depicts the helical transmembrane spans as helical wheels +% (perspective or flat) or as helical nets which is basically +% the same kind of display as in the topology plots. +% One can choose all or a subset of transmembrane domains and set any desired +% order. Views from the outside onto the cell membrane or vice versa +% are possible. +% \medskip +% +% The usage is as easy as this: +% +% \vbox{% +% \begin{quote} +% |\begin{helicalwheel}[|\meta{parameterfile}|]{|\meta{helixlist}|}| +% +% \quad\emph{further \emph{\TeXtopo} commands} +% +% |\end{helicalwheel}| +% \end{quote}} +% +% The optional parameter file can be used as described above. +% A list of the helices which are to be displayed is mandatory, i.\,e. +% |{1,2,3,4,5,6}|; or for displaying a subset with changed order: +% |{1,3,2,5}|. Series of numbers can be typed with a dash, e.\,g. +% |{1-3,9,5-7}|. Further, each helix number can be followed by +% an optional parameter which indicates an angle by which the +% transmembrane domain is rotated (only integer values). If a +% series of helix numbers are to be rotated by the same angle +% use the following scheme: |{1-3[90],4-6,7[135]}|. +% +% A basic example shows helices 1 and 4 of an aquaporin and +% rotates helix no.÷4 by 50$^\circ$ +% (Fig.÷\ref{figwheel}): +% +% \begin{figure} +% \begin{helicalwheel}{1,4[50]} +% \getsequence{PHD}{AQP1.PHD} +% \end{helicalwheel} +% \caption{A basic helical wheel example.}\label{figwheel} +% \end{figure} +% +% \vbox{% +% \begin{quote} +% |\begin{helicalwheel}{1,4[50]}| +% +% \quad|\getsequence{PHD}{AQP1.PHD}| +% +% |\end{helicalwheel}| +% \end{quote}} +% +% +% \subsection{\TeX{}shade (v1.3 and up) compatibility} +% \label{ts} +% +% \TeXshade{} is a very comprehensive \LaTeXe{} package for +% displaying and shading protein and nucleotide alignments [2]. +% Package and documentation are available from the same +% source as the \TeXtopo{} package, i.\,e.\ any CTAN site, +% e.\,g.\ |ftp.dante.de|, or from the \TeXshade{} homepage +% |http://homepages.uni-tuebingen.de/beitz/tse.html|. +% +% Since version 1.3 \TeXshade{} provides its full functionality for +% \TeXtopo{}, i.\,e.\ protein topology plots can be shaded +% automatically due to functional properties of the amino acid +% residues or to sequence conservation based on protein +% alignments. Most of the more than 100 \TeXshade{} commands are +% applicable in addition to the commands provided by \TeXtopo{} +% to customize the output or to define new shading modes. +% +% A simple example is shown in Fig.÷\ref{figshad}. It loads the sequence and +% topology data from a |PHD| file and applies shading calculated from +% an alignment in the |MSF| format. +% +% \vbox{% +% \begin{quote} \label{tsexample} +% |\begin{textopo}| +% +% \quad|\getsequence{PHD}{AQP1.phd}| +% +% \quad|\applyshading{similar}{AQPpro.MSF}| +% +% \quad|\allmatchspecial| +% +% |\end{textopo}| +% \end{quote}} +% +% \begin{figure} +% \begin{textopo} +% \getsequence{PHD}{AQP1.phd} +% \applyshading{similar}{AQPpro.MSF} +% \allmatchspecial +% \loopextent{15} +% \end{textopo} +% \caption{Topology plot with shading calculated +% on the basis of a protein alignment.}\label{figshad} +% \end{figure} +% \bigskip +% +% Shading can also be applied to helical wheels as shown in +% Fig.÷\ref{figwheelshad}: +% +% \vbox{% +% \begin{quote} +% |\begin{helicalwheel}{1-4}| +% +% \quad|\getsequence{PHD}{AQP1.PHD}| +% +% \quad|\applyshading{functional}{chemical}| +% +% |\end{helicalwheel}| +% \end{quote}} +% +% \begin{figure} +% \begin{helicalwheel}{1-4} +% \getsequence{PHD}{AQP1.PHD} +% \applyshading{functional}{chemical} +% \end{helicalwheel} +% \caption{Some helical wheels with `chemical' +% shading.}\label{figwheelshad} +% \end{figure} +% +% \subsection{Customization of the output} +% +% The previously shown basic outputs may not be satisfactory enough +% in terms of flexibility, additional shading, or application of +% labels. Therefore \TeXtopo{} provides commands which enable the +% user to modify and refine the plot in many ways. +% +% Special domains in the protein sequence can be highlighted by the +% use of shading colors or of squares and diamonds representing the +% residues instead of circles. These additions will be automatically +% included in the legend. Labels can be attached to single +% residues or stretches. Secondary modifications, such as phosphorylation +% and glycosylation, may be shown as an encircled `P' and a tree, +% respectively. The appearance of the membrane is adjustable. +% +% Further, the display of the structure itself can be altered by +% setting values for the maximal extension of each loop, by +% defining so-called `half-loops' which are invaginations of short +% lipophilic stretches into the membrane or by declaring membrane +% anchors, such as GPI-anchors or bound lipids. One can change +% the location of the N-terminus from intra- to extracellular and +% vice versa. +% +% The description of the usage of all necessary commands is topic of the +% following sections. +% +% \section{Use of a \TeXtopo{} parameter file +% \label{paramfilestruc}} +% Using predefined parameter files for repeatedly occuring situations +% can save a lot of typing and makes the output throughout the +% publication or presentation more consistent. Further, such +% files are an easy way to exchange self-defined shading +% modes or new color schemes (i.\,e.\ for a satisfying grayscale output) +% with other users. If you have created a +% parameter file, which you think is of interest for others, please +% submit it to me\footnote{|eric.beitz@uni-tuebingen.de|} as an e-mail +% attachment together with a short +% description. I will take care of those files and post them---with +% a reference to the author---together with the next \TeXtopo{} +% distribution to make them available for all interested users. +% +% No special file format is required for parameter +% files. \TeXtopo{} simply calls the file using the |\input| +% command right after resetting all parameters to default. An +% example parameter file is present containing the standard +% parameters of \TeXtopo{} called |textopo.def|. This file can be +% changed freely and can be used as a template for the creation of +% personal parameter files. +% +% +% \section{\TeXtopo{} user commands} +% +% The \TeXtopo{} package must be loaded by the |\usepackage| +% command in the document header section. +% \medskip +% +% \quad|\usepackage[|\meta{option}|]{textopo}| +% \medskip +% +% Then, the |textopo| and |helicalwheel| environments are ready to use +% as described in \ref{tsenvironment}. See also section \ref{paramfilestruc} +% for a description of the optional parameter file. All other +% commands provided by \TeXtopo{} must be used within the +% |textopo|/|helicalwheel| environments. The following sections +% mainly focus on plotting topologies rather than helical wheels. +% For the latter a special section is reserved [\ref{helwheel}]. Nevertheless, +% almost all commands behave the same in both environments. +% +% The \TeXtopo{} command syntax mainly follows the \LaTeX{} conventions. +% Mandatory parameters are indicated by braces (|{}|), optional +% parameters are set in brackets (|[]|). Sometimes, optional +% parameters can be included in mandatory parameter definitions +% in order to save a lot of additional commands: +% \medskip +% +% \quad |\command[|\meta{general option}|]{|\meta{mandatory}|[|\meta{optional}|]}| +% \medskip +% +% This syntax is not used in standard \LaTeX{} commands. The +% following descriptions explain exactly in which commands this +% new kind of declaration can be used. +% +% +% \subsection{Sequence and topology data sources} +% +% As pointed out earlier, there are several sources of data which can +% be accessed by \TeXtopo: (a) PHD topology predictions [3], (b) +% HMMTOP topology prdictions [8], (c) SwissProt database files, (d) +% alignment files in the MSF- +% (GCG PileUp) or ALN- (Clustal) format and (e) manually provided +% sequences. The latter two sources do not contain topological data, +% therefore the location of the transmembrane domains must be +% entered by hand using |\MRs| [\ref{align}] and the location of +% the N-terminus must be set by |\Nterm| [\ref{mNterm}]. Let us go +% through all options: +% \medskip +% +% \subsubsection{PHD files} +% \label{PHD} +% +% The sequence together with the topology +% is presented near the bottom of the file (see example |AQP1.phd|). +% \TeXtopo{} analyzes the lines starting out with |AA| which contain +% the amino acid sequence and those beginning with |PHDThtm| to +% obtain the topology prediction. This information is converted +% into \TeXtopo{} commands which are subsequently stored in a file +% named \textit{filename}|.tpo|. This has the advantage +% that the entries are editable for further \TeX{} runs. +% \TeXtopo{} will not overwrite existing |tpo|-files in order +% to keep user made modifications of these files, but it can +% be forced to overwrite them by using the optional parameter +% |[make new]|. +% \medskip +% +% Syntax: |\getsequence[make new]{PHD}{|\meta{PHD-file}|}| \label{mgetsequence} +% \medskip +% +% \subsubsection{HMMTOP files} +% \label{HMMTOP} +% +% HMMTOP predictions have various possibilities for the output +% format. Choose the extended format in TEXT-mode, because +% this contains the sequence in addition to the position of the +% termini and transmembrane domains (see example |AQP1.hmm|). +% This information is in analogy to PHD-files, s.\,a., converted +% into \TeXtopo{} commands which are subsequently stored in a file +% named \textit{filename}|.htp|. +% \medskip +% +% Syntax: |\getsequence[make new]{HMMTOP}{|\meta{HMMTOP-file}|}| \label{mgetsequence} +% \medskip +% +% +% \subsubsection{SwissProt files} +% \label{SwissProt} +% +% These files provide next to the +% amino acid sequence (at the very bottom, |SQ|) much more information. +% Have a look at the example file |AQP1.SP|. The lines starting out with +% |FT| contain data about sequence features. Here, the positions +% of the transmembrane domains (|TRANSMEM|) are listed. All additional +% features will automatically be displayed in the topology plot as shaded +% sequence stretches or as labels. Unfortunately, the locations of +% the transmembrane domains are not always listed. In this case \TeXtopo{} +% will complain about missing definitions of membrane regions and those +% have to be entered by hand, see \ref{align}. As in \ref{PHD} a new file +% is written by \TeXtopo{} with a name like this: \textit{filename}|.swp| to +% enable easy customization. +% \medskip +% +% Syntax: |\getsequence[make new]{SwissProt}{|\meta{SwissProt-file}|}| +% \medskip +% +% +% \subsubsection{Alignment files} +% \label{align} +% +% In order to extract a sequence +% from an alignment file the respective sequence number has to be +% stated based on the top sequence which is defined as no.÷1; if no +% number is indicated \TeXtopo{} loads the first sequence. Two different +% alignment file formats are readable by \TeXtopo, see the examples +% |AQPpro.MSF| and |AQP2spec.ALN|. +% \medskip +% +% Syntax: |\getsequence[|\meta{seqnum}|]{alignment}{|\meta{Alignment-file}|}| +% \medskip +% +% The positions of the membrane regions are declared by the command +% |\MRs{|\meta{start1..stop1,start2..stop2,\ldots,start n..stop n}|}|. +% \label{mMRs} If the \emph{\underline{M}}embrane +% \emph{\underline{R}}egion\emph{\underline{s}} are located for example +% from position +% 88 to 109 and from 123 to 150 enter |\MRs{88..109,123..150}|. +% Due to the thickness of the lipid bilayer an +% $\alpha$-helical transmembrane spanning region is about 21 amino +% acids long. \TeXtopo{} accepts definitions in the range of 14--36 +% amino acids. If the number of residues is below 14, which is +% definitively to short to span the membrane, a so-called +% `half-loop' is assumed as shown in the topology clipping in +% Fig.÷\ref{fighalf}. +% \medskip +% +% \begin{figure} +% \begin{textopo} +% \labelstyle{hl}{diamond}{Black}{Blue}{White}{} +% \sequence{PQALPSV[LQIAMAFGLAIGTLVQALG]HV% +% SGAH[([NNE,30]hl[box[Black,Blue]:Half loop[White]]=INPAVTVACL)]VGCHVSFLR} +% \Nterm{extra} \hideNterm \hideCterm \hidelegend \labelTM{1}{II} +% \labeloutside[right]{extra} +% \end{textopo} +% \caption{A `half loop' example}\label{fighalf} +% \end{figure} +% +% The orientation of the protein in the membrane is determined by +% the location of the N-terminus. This information is provided +% by PHD-, HMMTOP- and SwissProt files, when using alignment files in turn +% the command |\Nterm{|\meta{location}|}| with \emph{location} = +% \texttt{intra} or \texttt{extra} +% \label{mNterm} can help out. If the N-terminus is not set \TeXtopo{} +% assumes the N-terminus to be intracellular. +% +% +% \subsubsection{Manual entry} +% \label{manual} +% +% Finally, the |\sequence| +% \label{msequence} command allows one to enter the sequence +% manually directly in the |textopo| or |helicalwheel| environment. +% \medskip +% +% Syntax: |\sequence{|\meta{Amino acid sequence}|}| +% \medskip +% +% This command provides a second possibility to define membrane domains in +% addition to |\MRs| overcoming the obstacle that one needs to know +% the position numbers in order to use |\MRs|, which may result in an +% annoying counting job. With |\sequence| the membrane regions can be +% indicated by brackets directly in the amino acid sequence: +% \medskip +% +% \vbox{% +% \begin{verbatim} +% \sequence{MASEIKKKLFWRAV[VAEFLAMTLFVFISIGSA]LGFNYPLERN +% QTLVQDN[VKVSLAFGLSIATLAQSVG]HISGAHSNPAVTL[GLLLSCQISILR +% AVMYIIAQCVGAI]VASAILSGITSSLLENSLGRNDLARGVNSG[QGLGIEIIG +% TLQLVLCVL]ATTDRRRRDLGGSA[PLAIGLSVALGHLLAIDY]TGCGINPARS +% FGSAVLTRNFSNHWI[FWVGPFIGSALAVLIYDFI]LAPRSSDFTDRMKVWTSG +% QVEEYDLDADDINSRVMKPK} +% \end{verbatim}} +% +% Another feature of |\sequence| is its ability to print messages +% containing position information during the \TeX{} run. Thus, if +% one needs to know the position number of a special residue, +% say a secondary modification site, this residue can be +% labeled with asterisks and the number will be displayed on the +% screen. +% \medskip +% +% \vbox{% +% \begin{verbatim} +% \sequence{MASEIKKKLFWRAV[VAEFLAMTLFVFISIGSA]LGFNYPLER*N* +% QTLVQDN[VKVSLAFGLSIATLAQSVG]HISGAHSNPAVTL[GLLLSCQISILR +% AVMYIIAQCVGAI]VASAILSGITSSLLENSLGRNDLARGVNSG[QGLGIEIIG +% TLQLVLCVL]ATTDRRRRDLGGSA[PLAIGLSVALGHLLAIDY]TG*C*GINPARS +% FGSAVLTRNFSNHWI[FWVGPFIGSALAVLIYDFI]LAPRSSDFTDRMKVWTSG +% QVEEYDLDADDINSRVMKPK} +% \end{verbatim}} +% +% Screen output: |(pos `N': 42) (pos `C': 189)| +% \medskip +% +% In addition, shading and labels can be set directly within the +% |\sequence| command; this will be described later +% [\ref{mlabelregion}]. +% Do not forget to define the N-terminus location by |\Nterm| +% [\ref{mNterm}] if it is extracellular. +% +% +% +% \subsection{Structure modifications} +% \label{strucmod} +% +% \subsubsection{Output size} +% \label{outsize} +% +% \TeXtopo{} tries to select a font size for the residue symbols +% that makes the plot fit onto the page without receiving \TeX{} error +% messages. Actually, it only checks the width, so the user has to +% take care of the proper height. If the size is not satisfactory +% one can change it using |\scaletopo{|\meta{fixed or relative size}|}|. +% \label{mscaletopo} +% There are ten different sizes to choose from which are referred +% to by the numbers 1 (very small) to 10 (huge). Any fixed size can be +% set by indicating the respective number, e.\,g.\ |\scaletopo{5}|. +% Another possibility is to increase or decrease the size based on +% the calculation \TeXtopo{} has made. Those relative settings are +% done by entering a number with a `|+|' or `|-|'. For example, +% |\scaletopo{+2}| will increase the font size by two steps +% relative to the calculation. After increasing the font size +% |overful hbox| error messages will most likely appear. +% +% +% \subsubsection{Loop modifications} +% \label{loopmod} +% +% The height of the topology plot can be controlled by values +% that define the extent of each loop above or beneath the membrane. +% The command \label{mloopextent} +% |\loopextent[|\meta{loop}|]{|\meta{extent}|[|\meta{distance}|]}| +% takes three values which have the following effects: +% +% \begin{description} +% \item[\meta{extent}] is the only mandatory value needed by +% |\loopextent|. It sets the maximal number of residues in the +% straight ascending or decending parts of the loop including +% the residues in the bend. Default setting is `30'. +% \item[\meta{distance}] (optional) defines the minimum distance +% of the loops from the membrane if the loop is plotted in a +% meandrine shape. The default setting is `5'. Altering this setting +% might be necessary when flipping the termini to the interior of +% the protein, see below. +% \item[\meta{loop}] (optional) restricts the settings to a particular loop +% number incl.\ N- and C-termini (`|N|', `|C|'). +% If this value is not set every loop is changed according to +% the \meta{extent} and \meta{distance} values. +% \end{description} +% +% Example A: |\loopextent[N]{50[10]}| sets the N-terminal loop to +% a maximal extent of 50 residues with a minimal distance of 10. +% \medskip +% +% Example B: |\loopextent[3]{30}| sets the third loop to a 30 residue +% extent keeping the default for \meta{distance}. +% \medskip +% +% Example C: |\loopextent{40}| sets a general maximum of 40 +% residues to all loops keeping the default minimal distance. +% \medskip +% +% +% Setting the maximal and minimal distances from the membrane +% might not be sufficient for an optimal plot if the respective +% loop is very long. When it is necessary to switch to the +% meandrine style the distance between the loop flanking transmembrane +% domains gets bigger and bigger. This can be avoided if a foot +% with a fixed width in its `\emph{neck}'-part is added to the loop. +% The command \label{mloopfoot} +% |\loopfoot{|\meta{loop}|}{|\meta{direction}|[|\meta{neck}|]}| +% does exactly that. Note that \meta{loop} is mandatory now with +% the termini excluded. The \meta{direction} parameter can be +% |left|, |right| or |center|. This defines the direction of the +% foot extension. Finally, the optional \meta{neck} value sets +% the number of residues in the short straight part of the foot---I +% call it the \emph{neck}---and thus +% the distance from the membrane to the start of the opening of the foot. +% Default setting here is `5'. +% The actual loop is plotted atop of the foot according +% to the |\loopextent| value. This means, that loops with a foot have a +% greater extent than loops without a foot. Thus, one might want +% to adjust the |\loopextent| setting for those loops. The optional +% parameter |[|\meta{distance}|]| in the |\loopextent| command is +% ignored in |\loopfoot|. Figure \ref{foot} gives an example. +% +% +% \begin{figure} +% \begin{textopo} +% +% \sequence{MNTSAPPAVS PNITVLAPGK GPWQVAFIGI TTGLLSLATV TGNLLVLISF KVNTELKTVN +% NYFLLSLACA DLIIGTFSMN LYTTYLLMGH WALGTLACDL WLALDYVASN ASVMNLLLIS +% FDRYFSVTRP LSYRAKRTPR RAALMIGLAW LVSFVLWAPA ILFWQYLVGE RTVLAGQCYI +% QFLSQPIITF GTAMAAFYLP VTVMCTLYWR IYRETENRAR ELAALQGSET PGKGGGSSSS +% SERSQPGAEG SPETPPGRCC RCCRAPRLLQ AYSWKEEEEE DEGSMESLTS SEGEEPGSEV +% VIKMPMVDPE AQAPTKQPPR SSPNTVKRPT KKGRDRAGKG QKPRGKEQLA KRKTFSLVKE +% KKAARTLSAI LLAFILTWTP YNIMVLVSTF CKDCVPETLW ELGYWLCYVN STINPMCYAL +% CNKAFRDTFR LLLLCRWDKR RWRKIPKRPG SVHRTPSRQC} +% +% \MRs{25..47,62..82,100..121,142..164,187..209,367..387,402..421} +% \Nterm{extra} +% \loopfoot{5}{left[10]} +% \loopextent{12} +% \loopextent[C]{26} +% \scaletopo{+1} +% \labelstyle{black}{circ}{Black}{Black}{White}{} +% \labelregion[E,7]{210..219}{black}{`neck'} +% \labelregion[W,7]{237[NW]..248[SW]}{black}{`loopextent'} +% \hidelegend +% \end{textopo} +% \caption{Example of the \texttt{loopfoot} command. Shown is +% the muscarinic acetylcholine receptor with its relatively big +% loop E. Settings are: \texttt{left} for `direction' and +% 10 for `neck' with a \texttt{loopextent} of 12.} \label{foot} +% \end{figure} +% +% +% A further change in the output can be achieved by flipping the +% termini to the interior part of the protein. This leads to a +% more compact plot on the one hand but makes +% labeling more difficult due to less space on the other hand. +% There are two commands available one for the N-terminus +% (|\flipNterm|\label{mflipNterm}) and one for the C-terminus +% (|\flipCterm|\label{mflipCterm}). This kind of structural +% change might result in collisions with other loops. In such +% a case one has to adjust the loop settings using +% |\loopextent| or |\loopfoot|, see above. Fig.÷\ref{flip} shows the +% flipping effect. +% +% \begin{figure} +% \begin{textopo} +% \Nterm{extra} +% \MRs{23..44} +% \MRs{58..81} +% \MRs{93..114} +% \MRs{135..159} +% \MRs{181..204} +% \MRs{235..258} +% \MRs{268..289} +% \sequence{MAPNGTASSFCLDSTACKITITVVLAVLILITVAGNVVVCLAVGLNRR +% LRNLTNCFIVSLAITDLLLGLLVLPFSAIYQLSCKWSFGKVFCNIYTSLDVMLCTASI +% LNLFMISLDRYCAVMDPLRYPVLVTPVRVAISLVLIWVISITLSFLSIHLGWNSRNET +% SKGNHTTSKCKVQVNEVYGLVDGLVTFYLPLLIMCITYYRIFKVARDQAKRINHISSW +% KAATIREHKATVTLAAVMGAFIICWFPYFTAFVYRGLRGDDAINEVLEAIVLWLGYAN +% SALNPILYAALNRDFRTGYQQLFCCRLANRNSHKTSLRSNASQLSRTQSREPRQQEEK +% PLKLQVWSGTEVTAPQGATDR} +% \flipNterm \loopextent[N]{10} +% \flipCterm \loopextent[C]{25[14]} +% \hideTMlabels +% \end{textopo} +% \caption{The human gastric histamine receptor (H$_{2}$). An example +% for flipped termini.}\label{flip} +% \end{figure} +% +% +% +% \subsubsection{Membrane domains} +% \label{memdom} +% +% The |\MRs| command has already been extensively described +% [\ref{mMRs}]. But in some cases it might be helpful to be +% able to clear the membrane domain settings, e.\,g.\ if the +% definitions or preditions of a SwissProt- or PHD-file are +% not acceptable and new settings should be made. Therefore, +% |\clearMRs| \label{mclearMRs} was implemented. This command +% is self-explanatory. It has an immediate clearing effect on the +% settings before the command. +% +% Another structural feature should be discussed as a membrane +% domain topic, i.\,e.\ lipid membrane anchors +% (|\anchor{|\meta{pos}|}|)\label{manchor}. +% This very easy to use command draws a symbolic lipid chain to +% the residue at position \meta{pos} and attaches it to the +% membrane. See Fig.÷\ref{figanchor} for an example. +% +% \begin{figure} +% \begin{textopo} +% \sequence{APFVL[LMLLASLNSCTNPWIYASF]SSSVSSELRSLL +% CCARGRTPPSLGPQDESCTTASSSLAKDTSS} +% \anchor{37} \anchor{38} \loopextent{16} +% \Nterm{extra} \hideNterm \hidelegend \labelTM{1}{7} +% \labeloutside[right]{extra} +% \end{textopo} +% \caption{An example for lipid anchors. The V$_{2}$-receptor +% (only TM7 and C-terminus shown) contains two anchors which are +% directly vicinal.}\label{figanchor} +% \end{figure} +% +% +% \subsubsection{Cosmetics on the membrane} +% +% As a default the membrane is shown as two horizontal lines +% representing the borders. If a more solid appearance is +% desired the command \label{mmembranecolors} +% |\membranecolors{|\meta{border}|}{|\meta{interior}|}| can +% be employed. It accepts PostScript color names (see +% section÷\ref{colors}) for \meta{border} and \meta{interior}, +% e.\,g.\ |\membranecolors{WildStrawberry}{Bittersweet}|. The +% thickness of the border lines can be set by +% \label{mborderthickness} |\borderthickness{|\meta{length}|}|, +% e.\,g. |\borderthickness{4mm}|. +% +% The short texts that indicate which side of the +% membrane is oriented to the extracellular and to the intracellular +% space can be +% changed by |\labeloutside[|\meta{pos}|]{|\meta{text}|}| +% \label{mlabeloutside} and \label{mlabelinside} +% |\labelinside[|\meta{pos}|]{|\meta{text}|}|. The optional parameter +% \meta{pos} tells \TeXtopo{} +% whether to put the label |left| or |right| on the membrane. +% \medskip +% +% Example: |\labeloutside[left]{blood}| |\labelinside{cytosol}|. +% \medskip +% +% No indication of a preferential side leads to printing on the +% |left| for the outside label and on the |right| for the inside. +% For a fine adjustment of the label positions use +% \medskip +% +% \quad |\moveinsidelabel{|\meta{direction,distance} or \meta{x,y}|}| +% \label{mmoveinsidelabel} and +% +% \label{mmoveoutsidelabel} +% \quad |\moveoutsidelabel{|\meta{direction,distance} or \meta{x,y}|}|. +% \medskip +% +% The parameter allows one to move the label +% into \meta{direction} (see Fig.÷\ref{rosette}) for the amount of +% \meta{distance} units; only integer values are accepted here. One unit +% equals to $1/5$th of the diameter of the residue symbol. This +% scheme is also used for most of the other move-commands which +% are described later. An example would be: +% |\moveinsidelabel{WSW,10}|. +% +% \begin{figure} +% \begin{centering} +% \tt +% \begin{tabular}{ccccc} +% NW & NNW & N & NNE & NE \\ +% WNW & & & & ENE \\ +% W & & $\otimes$ & & E \\ +% WSW & & & & ESE \\ +% SW & SSW & S & SSE & SE \\ +% \end{tabular} +% \caption{Directions for label movements from the center position.} +% \label{rosette} +% \end{centering} +% \end{figure} +% +% Since v1.2 intuitive \emph{x/y}-values can be used to define the +% new position besides the method described above. An example would +% be: |\moveinsidelabel{10,-37}| which moves the label 10 units to +% the right and 37 units down. +% +% The standard width of the membrane is one residue +% symbol broader than the extension of the N- and C-termini. If +% the termini are flipped to the inside, the calculation of the +% width is based on the transmembrane domains. In order the change +% the width manually use the command \label{mbroadenmembrane} +% |\broadenmembrane{|\meta{left/right}|}{|\meta{length}|}|. The +% first parameter selects which end of the membrane is to be changed. +% The \meta{length} is an integer value which tells \TeXtopo{} +% by how much the width should be changed. One unit represents +% again $1/5$th of the residue symbol. Negativ values are permitted +% to shorten the membrane, e.\,g. |\broadenmembrane{left}{-20}|. +% Analogous to broadening the membrane the thickness can be changed +% by \label{mthickenmembrane} +% |\thickenmembrane{|\meta{top/bottom}|}{|\meta{length}|}|. +% +% |\hidemembrane| \label{mhidemembrane} makes the membrane totally +% disappear, whereas |\showmembrane| \label{mshowmembrane} brings +% it back again. +% +% +% \subsection{Putting labels on the plot} +% +% \subsubsection{Labeling loops and membrane domains} +% +% By default transmembrane domains are labeled with upper case +% roman numerals. This is achieved by using the command +% |\labelTMs{|\meta{style}|}|\label{mlabelTMs} with +% \meta{style} = |\Romancount| in the standard settings. All available +% \meta{style} options are shown in the table below: +% +% \begin{center} +% \begin{tabular}{ll} +% \emph{counter} & \emph{display} \\[2mm] +% \label{mnumcount}|\numcount| & 1, 2, 3 \ldots \\ +% \label{malphacount}|\alphacount| & a, b, c \ldots \\ +% \label{mAlphacount}|\Alphacount| & A, B, C \ldots \\ +% \label{mromancount}|\romancount| & i, ii, iii \ldots \\ +% \label{mRomancount}|\Romancount| & I, II, III \ldots \\ +% \end{tabular} +% \end{center} +% +% Mind the backslash! This option is actually a command which is +% executed in the very moment the label is printed. One can +% also use combinations of text and a counter, e.\,g. +% |\labelTMs{TM\numcount}|. +% In order to set a label for one particular transmembrane +% domain use +% |\labelTM[|\meta{direction,distance} or \meta{x,y}|]{|\meta{num}|}{|\meta{label}|}| +% \label{mlabelTM} (singular! no `s'). \meta{num} indicates the +% number of the TM which is to be labeled with the text in +% \meta{label}. The optional parameter can be used as +% described before [\ref{mmoveinsidelabel}]. Here, +% \emph{x/y}-values also work. +% +% One can move individual transmembrane domain labels without +% having to take care of the label text by applying +% the command \label{mmoveTMlabel} +% |\moveTMlabel{|\meta{num}|}{|\meta{direction,distance} or \meta{x,y}|}|. +% The first parameter \meta{num} refers to the domain number, the next +% pair of parameters corresponds to the ones described above. The +% color of the labels is set by \label{mTMlabelcolor} +% |\TMlabelcolor{|\meta{color}|}|. +% For a description of the color codes see section÷\ref{colors}. +% The font styles are also adjustable, see section÷\ref{fonthandling}. +% One final command concerning transmembrane domain labels is the +% self-explanatory |\hideTMlabels|\label{mhideTMlabels}. +% +% Labels for the extra- and intracellular loops are handled exactly +% in the same way as the transmembrane domain labels by the +% following set of commands: +% \medskip +% +% \quad|\labelloops{|\meta{style}|}|\label{mlabelloops} +% +% \quad|\labelloop[|\meta{direction,distance} or \meta{x,y}|]{|\meta{num}|}{|\meta{label}|}| +% \label{mlabelloop} +% +% \quad|\movelooplabel{|\meta{num}|}{|\meta{direction,distance} or \meta{x,y}|}| +% \label{mmovelooplabel} +% +% \quad|\looplabelcolor{|\meta{color}|}|\label{mlooplabelcolor} +% +% \quad|\hidelooplabels|\label{mhidelooplabels} +% \medskip +% +% Two pairs of special commands show or hide the extensions +% (\textsf{\small H$_{\mathsf{2}}$N--} and \textsf{\small --COOH}) at +% the N- and C-termini; these are \label{mshowNterm}\label{mhideNterm} +% \label{mshowCterm} \label{mhideCterm} +% |\showNterm|, |\hideNterm|, |\showCterm| and |\hideCterm|. +% +% +% \subsubsection{Shading and labeling sequence features} +% +% The first thing to do before a certain residue or a sequence +% domain can be labeled is to define an appropriate shading style for +% this sequence stretch. Use the command \label{mlabelstyle} +% |\labelstyle{|\meta{name}|}{|\meta{shape}|}{|\meta{frame +% color}|}{|\meta{background color}|}{|\meta{char color}|}{|\meta{legend +% text}|}| to set all necessary informations which are +% needed to define the shading. The first parameter \meta{name} is +% an `identification' of this specific label style. This is needed +% to be able to refer to it. Then, +% the \meta{shape} (|circ|, |box| or |diamond|) and the colors +% for the symbol's rim, its background and the character in the center are +% set. The available colors are described in section÷\ref{colors}. +% Finally, \meta{legend text} contains the text which is displayed +% in the figure legend [\ref{mshowlegend}]. +% \medskip +% +% \vbox{% +% Example: |\labelstyle{BlueDiamond}{diamond}| +% +% \hfill|{Black}{Blue}{Yellow}{Example}|} +% \medskip +% +% This new definition can be used from now on to shade and label one +% or several single residues or sequence regions. It is a good +% idea to store a collection of style definitions in a parameter +% file (section÷\ref{paramfilestruc}) to have them at hand whenever +% needed in future projects. The next command attaches +% the label to the positions to be labeled: \label{mlabelregion} +% |\labelregion[|\meta{direction,distance} or \meta{x,y}|]{|\meta{list of +% regions}|}{|\meta{style name}|}{|\meta{label text}|}|. +% +% This command is more complex than it seems at first sight. The +% optional parameter |[|\meta{direction,distance}|]| can be +% used to move the label to a new position. The usage is as in +% |\moveinsidelabel| [\ref{mmoveinsidelabel}]. +% The third parameter \meta{style name} calls the style +% definitions, i.\,e.\ for the example above it would be +% |{BlueDiamond}|. The complexity lies is the second and +% especially the fourth parameter. The \meta{list of +% regions} has a similar syntax as the list in the |\MRs| +% [\ref{mMRs}] command. But here, the definition of both, the start +% and the stop position of each region can be followed by an optional +% \meta{direction} parameter, i.\,e.\ +% \medskip +% +% \vbox{% +% |{|\meta{start1|[|\meta{direction}|]|..stop1|[|\meta{direction}|]|},\ldots, +% +% \hfill\meta{start n|[|\meta{direction}|]|..stop n|[|\meta{direction}|]|}|}|.} +% \medskip +% +% It happens sometimes---especially in the bends of loops---that the +% residue number is being printed over another residue. In such a case +% the \meta{direction} parameter lets one choose a new direction in which +% the number will be displayed. All direction definitions +% shown in Fig.÷\ref{rosette} are permitted. Note that here no +% setting of the distance is needed. If an asterisk is used as +% parameter the number will not be displayed at all. This might be +% useful when positions are being labeled where not enough space is +% available for the number, e.\,g.\ within the dense +% packing of a helical domain. +% +% Now, for the actual label text. The easiest way is to use plain +% text as label. Then an example would simply be |{not fancy}|. If +% one wants to add colors this has to be declared by an optional +% parameter right after the text, e.\,g.\ |{not fancy but red[Red]}|. +% This text can further be boxed by extending the argument like +% this: |{box:not fancy but red[Red]}|. A white box with a black frame +% will be printed. Maybe colors would be nicer; an optional extension +% does the job: |{box[Blue,Yellow]:not fancy but red[Red]}|. This will +% produce a blue framed yellow box around the red text ``not fancy +% but red'' which is quite fancy now. If the box frame and background +% are supposed to have the same color it is enough to indicate this only +% once, e.\,g.\ |{box[yellow]: ...}|. In addition to framed boxes two +% more symbols are at hand: |{circ[col1,col2]: ...}| and +% |{diamond[col1,col2]: ...}|. There is only space for +% one letter in a circle or a diamond. If longer text is used it +% will be printed over the rims of the symbol which looks rather +% ugly. An appropriate application might be an encircled `P' to +% indicate a phosphorylation site. A last symbol |{tree}| does +% not accept any text; it is meant to indicate glycosylation sites. +% +% The following example uses the previously defined shading style +% `BlueDiamond' for the residues and prints a red colored text in a +% blue framed yellow box to label the sequence stretch from position 20 to +% 30 and the single residue 76. Further, the labels are moved +% westwards by 10 units (= 2 residue diameters) and the first position +% number is hidden, the second is displayed beneath the residue, +% whereas the third is not altered. +% \medskip +% +% \vbox{% +% \quad |\labelregion[W,10]{20[*]..30[S],76..76}{BlueDiamond}| +% +% \hfill |{box[Blue,Yellow]:red plain text[Red]}|} +% \medskip +% +% It should be mentioned that there are already two +% shading styles predefined in \TeXtopo{} called |standard| +% and |noshade|. The former style uses the definitions of the +% standard residues for the labeled positions, the latter +% style can be used to attach a label to a certain residue or +% domain without influencing the residues. Such kinds of labels +% are handy when using calculated shading [\ref{mapplyshading}] +% that should not be depended on any kind of labels. +% +% It is also possible to make almost all these settings directly +% in the |\sequence| [\ref{msequence}] definition similar to the +% declaration of the membraneous domains [\ref{align}] without +% knowing the position numbers. However, the command structure +% will get rather complex and makes the readability of the +% sequence worse the more optional parameters are defined. The +% following example uses the settings as the example above. +% \medskip +% +% \vbox{% +% |\sequence{MLNLFMISLDRYCAVMDPL| +% +% |([W,10]BlueDiamond[box[Blue,Yellow]:red plain text[Red]]=| +% +% |YPVLVTPVRVA)ISLVLIWVISITLSFLSIHLGWNSRNETSKGNHTTSKCKVQVNEV| +% +% |([W,10]BlueDiamond[box[Blue,Yellow]:red plain text[Red]]=| +% +% |G)LVDGLVTFYLPLLIMCITYYRIFKVARDQAKRINHISSW ...}|} +% \medskip +% +% As I said, it gets complex. One might figure out how to use +% this shading definition from the shown example. There is +% one restriction of this method: the printing direction of the +% position numbers relative to the residue can not be +% influenced. Nevertheless, this +% kind of labeling might be useful for brief plain labels. For more +% complex labels one better takes one extra step to figure out the +% exact position numbers by using `|*|'s in the |\sequence| command +% [\ref{msequence}] in order to set the label afterwards with +% |\labelregion|. +% +% Two often occuring modifications can be labeled using some kind +% of `short-cut' commands, i.\,e.\ \label{mphosphorylation} +% |\phosphorylation{|\meta{list of positions}|}| and +% \label{mglycosylation} +% |\glycosylation{|\meta{list of positions}|}|. +% \medskip +% +% Example: |\phosphorylation{10,45,99} \glycosylation{123}| +% \medskip +% +% Minor alterations concern the color of the residue number which +% can be changed by |\countercolor{|\meta{color}|}| +% \label{mcountercolor} (again, for +% colors see section÷\ref{colors}), and the thickness of the line +% that connects the label with the residue \label{mrulethickness} +% (|\rulethickness{|\meta{thickness}|}|. Two examples: +% \medskip +% +% \quad |\countercolor{Blue} \rulethickness{2pt}| +% \medskip +% +% +% \subsubsection{Placing additional labels} +% +% All kinds of labels discussed before are attached or related to +% some protein segments. The command \label{mplace} +% |\place[|\meta{num}|]{|\meta{x\%}|,|\meta{y\%}|}{|\meta{label}|}| +% allows one to place any kind of text to any position in +% the figure. The optional parameter \meta{num} is only +% necessary when plotting helical wheels [\ref{helwheel}]. +% The second parameter lets one set the position of the label. +% The system underlying the position calculation differs from +% that described in the previous commands. Here, the x- and +% y-positions are expressed as percentages (\textit{x\%} +% and \textit{y\%}) of the total width and height of the +% plot with the origin in the lower left corner. So, |{0,0}| +% places the label in this corner, |{0,100}| in the upper +% left, |{100,0}| in the lower right, |{100,100}| in the +% upper right corner and |{50,50}| in the center of the figure. +% Of course, any other setting is also permitted. \meta{label} +% finally, holds the label text which can further contain any +% desired \LaTeX{} style modification command. +% \medskip +% +% Example: |\place{10,90}{\textbf{\Large Topology example}}| +% \medskip +% +% +% \subsubsection{Adding protein tags and changing the numbering} +% +% In some cases the protein which is plotted contains artificial +% tags for affinity purification, e.\,g.\ a oligo-His-tag, for +% antibody detection, e.\,g.\ a myc-tag, or for other purposes, +% e.\,g.\ a GFP-fusion etc. Using \TeXtopo{} one can attach +% those tags to the termini of the protein without altering its +% numbering, i.\,e.\ the sequence tagged to the N-terminus will +% be numbered with negative digits so that the original +% start-methionine will still be number one. The syntax of the +% commands for adding tags to the N- and C-terminus is very similar +% to the |\labelregion| command [\ref{mlabelregion}]: +% \label{maddtagtoNterm}\label{maddtagtoCterm} +% \medskip +% +% \vbox{% +% \quad|\addtagtoNterm[|\meta{direction,distance} or \meta{x,y}|]{|\meta{tag sequence}|}| +% +% \hfill|{|\meta{style name}|}{|\meta{label text}|}|} +% +% \vbox{% +% \quad|\addtagtoCterm[|\meta{direction,distance} or \meta{x,y}|]{|\meta{tag sequence}|}| +% +% \hfill|{|\meta{style name}|}{|\meta{label text}|}|} +% +% \medskip +% +% In contrast to |\labelregion| no definition of the positions is +% necessary because the location is clear anyway (N- or C-terminus). +% Instead of that the sequence of the tag needs to be entered as the +% second parameter. Everything else is identical to |\labelregion|. +% \medskip +% +% Example: |\addtagtoNterm[N,8]{MEQKLISEEDAAA}{myc}{myc-tag}| +% \medskip +% +% This attaches a myc-tag and a spacer of three alanines to the +% N-terminus, shades the tag with a style named |myc| and prints +% the label text |myc-tag| which is moved to the North by eight +% units. The following original start-methionine still is no.÷1, whereas +% the new start-methionine of the myc-tag is no.÷$-13$, then +% counting up to $-1$ for the last of the three alanines. +% +% Another possibility to change the residue numbering is the command +% \label{mseqstart}|\seqstart{|\meta{num}|}|. This lets one set +% any number---except 0---as the sequence start. One application +% would be proteins with pro-peptides. Here, the pro-peptide could +% be negatively numbered ending up with no.÷1 at the starting position +% of the mature protein. +% +% +% \subsubsection{Applying calculated shading} +% \label{appshad} +% +% As already pointed out in section÷\ref{ts}, +% a special feature of \TeXtopo{} is its ability to communicate +% with \TeXshade{} and use the shading calculated by this +% comprehensive alignment shading programm in a topology +% plot to indicate residue conservation or functional aspects, +% see examples in Fig.\ \ref{figshad} and \ref{figwheelshad}. +% +% In order to use \TeXshade{}'s calculated residue shading in +% to\-po\-lo\-gy plots +% the package must be loaded in the document header by +% |\usepackage[|\meta{option}|]{texshade}|. This command must be given \emph{before} +% loading the \TeXtopo{} package! This is due to some +% re-definitions \TeXtopo{} does on \TeXshade{} commands. So, +% the document header must contain the following two commands: +% \medskip +% +% \vbox{% +% \quad|\usepackage[|\meta{option}|]{texshade}| +% +% \quad|\usepackage[|\meta{option}|]{textopo}|} +% \medskip +% +% A safer possibility is to load both biological packages by declaring +% \label{mbiotex}|\usepackage[|\meta{option}|]{biotex}| instead of the commands above. +% \BioTeX{} does not provide new command definitions; it only +% organizes the loading of the packages (so far \TeXshade{} and +% \TeXtopo{} are available---but the collection is going to be +% extended) in the correct order and checks for the appropriate +% version numbers. The \BioTeX{} style has been produced automatically +% when \TeXtopo{} was extracted from the docstrip archive. Keep +% this file in a directory searched by \TeX, e.\,g.\ together +% with your \TeXtopo{} files. +% +% At this point +% it is refered to the \TeXshade{} manual for an extensive +% description of the different shading modes. Here, only +% a basic overview will be given. +% +% \begin{description} +% \item[Identity mode:] +% This basic type of shading is provided by almost any alignment +% program. All identical residues at a position are shaded if the +% number of matching residues is higher than a given threshold +% percentage. +% \medskip +% +% +% \item[Similarity mode:] +% Consider an alignment position where three out of five residues are basic +% arginines and two more residues are also basic lysines. +% In similarity mode \TeXshade{} shades similar residues in a different +% color to distinguish them from the consensus residue. Even when +% none of the residues alone reaches the +% threshold but a group of similar residues does these are shaded +% in the `similarity' color. This case is given for instance +% when at a position in a five sequence alignment two aliphatic +% valines and two also aliphatic isoleucins are present and the +% threshold is set to 50\%. Neither residue exceeds this percentage +% but as a group of similars they do. +% +% \item[Functionality modes:] +% Displaying functional peptide similarities is one of \TeXshade's +% strong capabilities. Six functional shading modes are predefined, +% see references [4--7]; +% further user specific modes can easily be created. +% +% \begin{itemize} +% \item |charge|: residues which are charged at physiological pH +% (7.4) are shaded if their number at a position +% is higher than the threshold +% +% \item |hydropathy|: discrimination between acidic and +% basic, polar uncharged and hydrophobic nonpolar residues +% +% \item |structure|: displays the potential +% localization within the tertiary structure of +% the protein +% +% \item |chemical|: residues are shaded due to chemical +% properties of +% their functional groups +% +% +% \item |standard area|: this shading displays the surface +% area sizes +% of the different amino acid's sidechains +% +% \item |accessible area|: +% here, the surface area which can +% be accessed by solvent molecules is used as a +% basis for shading; low accessibility means +% hydrophobic (i.\,e.\ strongly buried +% residues), whereas highly accessible +% sidechains are hydrophilic (compare to +% |hydropathy| and |structure|) +% \end{itemize} +% \end{description} +% +% For the first two modes (|identical|, |similar|) an +% alignment file containing the sequence to be plotted is needed +% on which the shading calculation will be based. The syntax +% is as follows: +% \medskip +% +% \label{mapplyshading} +% \quad|\applyshading[|\meta{num}|]{|\meta{mode}|}{|\meta{filename}|}| +% \medskip +% +% The optional \meta{num} tells \TeXtopo{} which sequence number within +% the alignment corresponds to the sequence to be plotted. If no +% \meta{num} is indicated the top sequence will be taken (no.÷1). +% The second parameter \meta{mode} selects the shading mode. Options +% are |identical| and |similar|. Finally, the file name of the +% alignment is the argument of the third parameter. For the +% alignment file formats see the \TeXshade{} manual and the example +% files |AQPpro.MSF| and |AQP2spec.ALN| or \ref{align}. +% +% All \TeXshade{} commands +% are applicable to obtain the desired shading, e.\,g.\ +% \label{mthreshold}|\threshold|, \label{mshadingcolors}|\shadingcolors| or +% \label{mallmatchspecial}|\allmatchspecial|. The function of these +% commands is to set the threshold percentage for the consensus, e.\,g.\ +% |\threshold{50}|, select another colorscheme (see section÷\ref{colused}), +% e.\,g.\ |\shadingcolors{greens}|, or use a special color +% for positions where all residues match. The counterpart of +% |\allmatchspecial| is \label{mallmatchspecialoff}|\allmatchspecialoff|. +% \medskip +% +% \quad|\applyshading[3]{similar}{file.MSF} \allmatchspecial| +% \medskip +% +% This example calculates shading for the third sequence of the alignment +% file |file.MSF| and shades all similar and conserved positions plus the +% positions with 100\% identity in different colors. See also the +% example on page \pageref{tsexample}. +% +% The colors for each matching quality are changeable by the next +% four commands: +% \label{mstandardresidues} +% \label{msimilarpositions} +% \label{mconservedpositions} +% \label{minvariablepositions} +% \medskip +% +% \quad|\standardresidues{|\meta{style}|}{|\meta{frame}|}{|\meta{background}|}{|\meta{char}|}| +% +% \quad|\similarpositions{|\meta{style}|}{|\meta{frame}|}{|\meta{background}|}{|\meta{char}|}| +% +% \quad|\conservedpositions{|\meta{style}|}{|\meta{frame}|}{|\meta{background}|}{|\meta{char}|}| +% +% \quad|\invariablepositions{|\meta{style}|}{|\meta{frame}|}{|\meta{background}|}{|\meta{char}|}| +% +% \medskip +% +% The \meta{style} options are: |circ|, |box|, and |diamond|. The +% next three parameters are color definitions for the symbol +% \meta{frame}, its \meta{background}, and the residue \meta{char}. +% \medskip +% +% Example: |\conservedpositions{circ}{Black}{Blue}{White}| +% \medskip +% +% +% +% Mostly, in alignments the starting methionine is shaded with the +% color for highly conserved residues, simply because every protein +% starts out with a methionine, except for the cases where some +% kind of maturation takes place. Anyway, this methionine has +% usually no particular function in the protein. Hence, the +% shading for it is deactivated by default in \TeXtopo{} by the +% command \label{mdonotshadestartMet}|\donotshadestartMet| in +% the standard settings. To re-active the shading use +% \label{mshadestartMet}|\shadestartMet|. +% +% The third group of functional shading modes is calculated on the +% topology sequence itself. Hence, no alignment file must be +% loaded which changes the |\applyshading| command somewhat: +% \medskip +% +% \quad|\applyshading[|\meta{parameterfile}|]{|\meta{mode}|}{|\meta{group}|}| +% +% \medskip +% +% Here, \meta{mode} is |functional| and \meta{group} is one of the +% amino acid groupings described above (|charge|, |hydropathy|, +% |structure|, |chemical|, |sidechain area|, and |accessible area|). +% The optional parameter loads a \TeXshade{} parameter file. This +% allows one to apply shading modes from a user-defined collection without +% any hassles. +% \medskip +% +% Example: |\applyshading{functional}{charge}| +% \medskip +% +% This shades all charged residues in the topology plot according +% to the color definitions of the functional shading mode +% |charge|, see section÷\ref{colused}. +% +% Again, it is refered to the \TeXshade{} manual for an extensive +% exploitation of the given possibilities. +% +% +% \subsubsection{The figure legend} +% +% Legends are automatically printed when necessary, i.\,e.\ when +% labels are used [\ref{mlabelstyle}] or calculated shading is +% applied [\ref{mapplyshading}]. Then, an example residue is +% shown and the explanation of the shading behind it, as +% defined in |\labelstyle| or in the shading mode. The output of +% the legend can be suppressed by \label{mhidelegend}|\hidelegend|, +% or if needed turned on again by \label{mshowlegend}|\showlegend|. +% If the position of the legend below the figure is not satisfying +% one can move it using the command \label{mmovelegend} +% |\movelegend{|\meta{x-offset}|}{|\meta{y-offset}|}|. The two +% parameters are \TeX{} lengths, e.\,g. |\movelegend{5cm}{-3cm}| +% moves the legend 5\,cm to the right and 3\,cm up. +% +% +% \subsection{Plotting helical wheels} +% \label{helwheel} +% +% Almost everything that has been said before is also true for +% using the |helical wheel| environment [\ref{wheelenv}]. One can +% load and label the sequence exactly as described before. There is one +% minor restriction to the labeling: in helical wheels no label +% text will be displayed. But the |\place| [\ref{mplace}] command is +% fully functional. Here, the optional parameter refers to the wheel, +% i.\,e.\ the number of the transmembrane domain, in which the +% label is to be placed. The \meta{x\%} and \meta{y\%} values +% are now according to the dimensions of one wheel rather than the +% whole figure. +% +% The style of the helix (perspective, flat wheel or net) can be +% set by the command |\helixstyle{|\meta{style}|}| +% \label{mhelixstyle} with |perspective|, |wheel| or |net| as +% \meta{style}. The different outputs are shown in Figure +% \ref{figstyle}. +% +% +% \begin{figure} +% \begin{minipage}[t]{7cm} +% {\LARGE\sf A} +% \vspace*{-1,5cm} +% \begin{helicalwheel}{1} +% \getsequence{PHD}{AQP1.PHD} +% \applyshading{functional}{chemical} \hidelegend +% \showmoment +% \end{helicalwheel} +% \end{minipage} +% \begin{minipage}[t]{7cm} +% {\LARGE\sf B} +% \vspace*{-5,1cm} +% \begin{helicalwheel}{1} +% \getsequence{PHD}{AQP1.PHD} +% \applyshading{functional}{chemical} \hidelegend +% \helixstyle{net} +% \end{helicalwheel} +% \end{minipage} +% \begin{minipage}[t]{7cm} +% {\LARGE\sf C} +% \vspace*{-1,5cm} +% \begin{helicalwheel}{1} +% \getsequence{PHD}{AQP1.PHD} +% \applyshading{functional}{chemical} \hidelegend +% \helixstyle{wheel} +% \showmoment +% \end{helicalwheel} +% \end{minipage} +% \caption{The different helical wheel styles \texttt{perspective} (A), +% \texttt{net} (B) and \texttt{wheel} (C) with indication of the +% hydrophobic moment.} \label{figstyle} +% \end{figure} +% +% In the |net| display the optional parameter +% which can follow the wheel number in the |\begin{helicalwheel}| +% call (see \ref{wheelenv}) does not represent an angle but defines +% where to start the net plot. Numbers from 1--7 are allowed here. +% This can be handy if a certain viewing angle on the helix should +% be displayed in order to show e.g. a hydrophobic core. +% Figure \ref{netstart} examplary shows all possible starting points +% of the same helical sequence. +% +% \begin{figure} +% \begin{minipage}[t]{4cm} +% {\LARGE\sf 1} +% \vspace*{-5,1cm} +% \begin{helicalwheel}{1[1]} +% \getsequence{PHD}{AQP1.PHD} +% \applyshading{functional}{chemical} \hidelegend +% \helixstyle{net} +% \end{helicalwheel} +% \end{minipage} +% \begin{minipage}[t]{4cm} +% {\LARGE\sf 2} +% \vspace*{-5,1cm} +% \begin{helicalwheel}{1[2]} +% \getsequence{PHD}{AQP1.PHD} +% \applyshading{functional}{chemical} \hidelegend +% \helixstyle{net} +% \end{helicalwheel} +% \end{minipage} +% \begin{minipage}[t]{4cm} +% {\LARGE\sf 3} +% \vspace*{-5,1cm} +% \begin{helicalwheel}{1[3]} +% \getsequence{PHD}{AQP1.PHD} +% \applyshading{functional}{chemical} \hidelegend +% \helixstyle{net} +% \end{helicalwheel} +% \end{minipage} +% +% \vspace*{1cm} +% \begin{minipage}[t]{4cm} +% {\LARGE\sf 4} +% \vspace*{-5,1cm} +% \begin{helicalwheel}{1[4]} +% \getsequence{PHD}{AQP1.PHD} +% \applyshading{functional}{chemical} \hidelegend +% \helixstyle{net} +% \end{helicalwheel} +% \end{minipage} +% \begin{minipage}[t]{4cm} +% {\LARGE\sf 5} +% \vspace*{-5,1cm} +% \begin{helicalwheel}{1[5]} +% \getsequence{PHD}{AQP1.PHD} +% \applyshading{functional}{chemical} \hidelegend +% \helixstyle{net} +% \end{helicalwheel} +% \end{minipage} +% \begin{minipage}[t]{4cm} +% {\LARGE\sf 6} +% \vspace*{-5,1cm} +% \begin{helicalwheel}{1[7]} +% \getsequence{PHD}{AQP1.PHD} +% \applyshading{functional}{chemical} \hidelegend +% \helixstyle{net} +% \end{helicalwheel} +% \end{minipage} +% +% \vspace*{1cm} +% \begin{minipage}[t]{4cm} +% {\LARGE\sf 7} +% \vspace*{-5,1cm} +% \begin{helicalwheel}{1[7]} +% \getsequence{PHD}{AQP1.PHD} +% \applyshading{functional}{chemical} \hidelegend +% \helixstyle{net} +% \end{helicalwheel} +% \end{minipage} +% \caption{Net starting points 1--7 of the same sequence. In the +% first net the hydrophilic residues are at the sides, whereas +% net \#3 shows them in the center.} \label{netstart} +% \end{figure} +% +% The size of the wheels can be changed by the +% |\scalewheel{|\meta{scale\%}|}|\label{mscalewheel} command. +% The wheel's original diameter is multiplied by the given +% percentage to increase (\meta{scale\%} $>100$) or decrease +% (\meta{scale\%} $<100$) the +% output. +% \medskip +% +% Example: |\scalewheel{50}| reduces the diameter to 50\% +% \medskip +% +% The size of the residue symbols can then be adjusted by +% the command \label{msymbolsize}|\symbolsize{|\meta{size}|}|. Three +% \meta{size}s are applicable: |small|, |medium| and |large|. +% +% Depending on the diameter of the wheel \TeXtopo{} calculates +% the highest possible number of wheels which can be printed +% in one row without colliding with the text width settings. If +% the number of wheels per line should be altered the command +% \label{mwheelsperline}|\wheelsperline{|\meta{num}|}| will +% help. Changing the calculated amount of wheels per line will +% most probably result in \TeX{} run-time warnings due to +% |overful hbox|es. +% +% One can choose the viewing direction on the helical wheels by +% \label{mviewfromextra}|\viewfromextra| and +% \label{mviewfromintra}|\viewfromintra|. The first setting +% will show the helices as if viewed from the extracellular space +% onto the cell membrane (recognizable by the residue numbering) +% and vice versa for the second case. +% +% In the perspective and the wheel display the hydrophobic moment +% according to \textsc{David Eisenberg} of the helix can be shown as a line +% with a square at the end. +% The direction of the line depicts the angle and the area of the +% square the moment. To turn this on use |\showmoment| +% \label{mshowmoment} and |\hidemoment| \label{mhidemoment} turns it +% off again. Different values obtained from the calculation can +% be printed for every helix by the following commands with +% \meta{helixnum} refering to the helix in question. These commands +% can only be used outside the |helicalwheel| environment or in the +% caption. +% \medskip +% +% \begin{centering} +% \begin{tabular}{ll} +% |\Hmean{|\meta{helixnum}|}| & hydrophobicity per residue \\ +% |\muH{|\meta{helixnum}|}| & ($\mu$H) hydrophobic moment \\ +% |\muHmean{|\meta{helixnum}|}| & hydrophobic moment per residue \\ +% |\mudelta{|\meta{helixnum}|}| & angle of the hydrophobic moment \\ +% \label{mHmean} \label{mmuH} \label{mmuHmean} \label{mmudelta} +% \end{tabular} +% \end{centering} +% +% The color of the moment indicator can be changed by +% the command \label{mmomentcolor} +% |\momentcolor{|\meta{color}|}|. The length of the line can be +% scaled by \label{mscalemoment} |\scalemomemt{|\meta{scale\%}|}| +% just like in the |\scalewheel| command mentioned before. +% +% +% Finally, two command pairs show or hide the residue numbering +% and the bonds between the residue symbols: +% \medskip +% +% \quad\label{mshowwheelnumbering}|\showwheelnumbering| +% +% \quad\label{mhidewheelnumbering}|\hidewheelnumbering| +% +% \quad\label{mshowbonds}|\showbonds| +% +% \quad\label{mhidebonds}|\hidebonds| +% +% +% +% +% \subsection{Changing font styles} +% \label{fonthandling} +% +% \label{msetfamily}\label{msetseries} +% \label{msetshape}\label{msetsize} +% The font styles for the legends, and the loop-, TM- and +% residue labels can be changed by several commands. +% \medskip +% +% \quad|\setfamily{|\meta{text}|}{|\meta{family}|}| +% +% \quad|\setseries{|\meta{text}|}{|\meta{series}|}| +% +% \quad|\setshape{|\meta{text}|}{|\meta{shape}|}| +% +% \quad|\setsize{|\meta{text}|}{|\meta{size}|}| +% \medskip +% +% The first parameter selects the text whose style is to be +% changed. Possible first parameters are +% |legend|, |labels|, |looplabels| and |TMlabels|. +% \medskip +% +% The style is set by the second parameter: +% +% \begin{center} +% \begin{tabular}{lll} +% command & \meta{2. parameter} & \\ +% \hline +% |\setfamily| & |rm| & modern roman font family \\ +% & |sf| & sans serif font family \\ +% & |tt| & typewriter font family \\ \hline +% |\setseries| & |bf| & bold face series \\ +% & |md| & normal series \\ \hline +% |\setshape| & |it| & italics shape \\ +% & |sl| & slanted shape \\ +% & |sc| & small capitals shape \\ +% & |up| & upright shape \\ \hline +% |\setsize| & |tiny| & the known \TeX{} sizes \\ +% & |scriptsize| & \\ +% & |footnotesize| & \\ +% & |small| & \\ +% & |normalsize| & \\ +% & |large| & \\ +% & |Large| & \\ +% & |LARGE| & \\ +% & |huge| & \\ +% & |Huge| & \\ \hline +% \end{tabular} +% \end{center} +% +% Example: |\setfamily{labels}{it} \setseries{labels}{bf}| +% \medskip +% +% \label{msetfont} +% With the command +% \medskip +% +% \quad|\setfont{|\meta{text}|}{|\meta{family}|}{|\meta{series}|}{|\meta{shape}|}{|\meta{size}|}| +% \medskip +% +% all four font attributes of one \meta{text} can be changed +% simultaneously. The order of the parameters is as indicated. +% \medskip +% +% Example: |\setfont{labels}{rm}{it}{bf}{normalsize}| +% \medskip +% +% Further, short commands are provided to change single font +% attributes quickly. The following commands show examplary +% how to change the settings for labels. +% \medskip +% \enlargethispage{\baselineskip} +% +% \quad |\labelsrm| \quad |\labelstiny| \label{mlabelsrm} +% +% \quad |\labelssf| \quad |\labelsscriptsize| +% +% \quad |\labelstt| \quad |\labelsfootnotesize| +% +% \quad |\labelsbf| \quad |\labelssmall| +% +% \quad |\labelsmd| \quad |\labelsnormalsize| +% +% \quad |\labelsit| \quad |\labelslarge| +% +% \quad |\labelssl| \quad |\labelsLarge| +% +% \quad |\labelssc| \quad |\labelsLARGE| +% +% \quad |\labelsup| \quad |\labelshuge| +% +% \quad | | \quad |\labelsHuge| +% \medskip +% +% Corresponding sets are provided for +% loop labels (|\looplabelsrm| etc.), TM labels +% (|\TMlabelsrm| etc.) and legend texts (|legendrm| etc.). +% +% +% +% \section{The DVIPS color selection scheme} +% \label{colors} +% +% \textsc{PostScript} provides 64 standard colors. All these +% colors are predefined in the |dvips| package. Each color +% has a pictorial name such as |Bittersweet| and a distinct +% composition, e.\,g.\ 0\% cyan + 75\% magenta + 100\% yellow + +% 24\% black---the so-called CMYK scheme. \TeXtopo{} enhances this +% color scheme by gray scales in 5\% steps. +% The following colors and grays can be used in \TeXtopo{} by +% simply declaring the name of the color in the respective +% command, e.\,g.\ |\membranecolors|: +% +% +% \begin{tabbing} +% \emph{name}\hspace{2.1cm}\= \emph{CMYK}\hspace{1.8cm} +% \=\emph{name}\hspace{2.1cm}\= \emph{CMYK}\\ +% +% GreenYellow \>{0.15,0,0.69,0}\>Yellow \>{0,0,1,0}\\ +% Goldenrod \>{0,0.10,0.84,0}\>Dandelion \>{0,0.29,0.84,0}\\ +% Apricot \>{0,0.32,0.52,0}\> Peach \>{0,0.50,0.70,0}\\ +% Melon \>{0,0.46,0.50,0}\> YellowOrange \>{0,0.42,1,0}\\ +% Orange \>{0,0.61,0.87,0}\>BurntOrange \>{0,0.51,1,0}\\ +% Bittersweet \>{0,0.75,1,0.24}\> RedOrange \>{0,0.77,0.87,0}\\ +% Mahagony \>{0,0.85,0.87,0.35}\>Maroon \>{0,0.87,0.68,0.32}\\ +% BrickRed \>{0,0.89,0.94,0.28}\> Red \>{0,1,1,0}\\ +% OrangeRed \>{0,1,0.50,0}\> RubineRed \>{0,1,0.13,0}\\ +% WildStrawberry\>{0,0.96,0.39,0}\> Salmon \>{0,0.53,0.38,0}\\ +% CarnationPink \>{0,0.63,0,0}\> Magenta \>{0,1,0,0}\\ +% VioletRed \>{0,0.81,0,0}\> Rhodamine \>{0,0.82,0,0}\\ +% Mulberry \>{0.34,0.90,0,0.02}\> RedViolet \>{0.07,0.90,0,0.34}\\ +% Fuchsia \>{0.47,0.91,0,0.08}\>Lavender \>{0,0.48,0,0}\\ +% Thistle \>{0.12,0.59,0,0}\>Orchid \>{0.32,0.64,0,0}\\ +% DarkOrchid \>{0.40,0.80,0.20,0}\> Purple \>{0.45,0.86,0,0}\\ +% Plum \>{0.50,1,0,0}\>Violet \>{0.79,0.88,0,0}\\ +% RoyalPurple \>{0.75,0.90,0,0}\>BlueViolet \>{0.86,0.91,0,0.04}\\ +% Periwinkle \>{0.57,0.55,0,0}\> CadetBlue \>{0.62,0.57,0.23,0}\\ +% CornflowerBlue\>{0.65,0.13,0,0}\>MidnightBlue \>{0.98,0.13,0,0.43}\\ +% NavyBlue \>{0.94,0.54,0,0}\>RoyalBlue \>{1,0.50,0,0}\\ +% Blue \>{1,1,0,0}\>Cerulean \>{0.94,0.11,0,0}\\ +% Cyan \>{1,0,0,0}\> ProcessBlue \>{0.96,0,0,0}\\ +% SkyBlue \>{0.62,0,0.12,0}\>Turquoise \>{0.85,0,0.20,0}\\ +% TealBlue \>{0.86,0,0.34,0.02}\>Aquamarine \>{0.82,0,0.30,0}\\ +% BlueGreen \>{0.85,0,0.33,0}\> Emerald \>{1,0,0.50,0}\\ +% JungleGreen \>{0.99,0,0.52,0}\>SeaGreen \>{0.69,0,0.50,0}\\ +% Green \>{1,0,1,0}\>ForestGreen \>{0.91,0,0.88,0.12}\\ +% PineGreen \>{0.92,0,0.59,0.25}\> LimeGreen \>{0.50,0,1,0}\\ +% YellowGreen \>{0.44,0,0.74,0}\>SpringGreen \>{0.26,0,0.76,0}\\ +% OliveGreen \>{0.64,0,0.95,0.40}\>RawSienna \>{0,0.72,1,0.45}\\ +% Sepia \>{0,0.83,1,0.70}\>Brown \>{0,0.81,1,0.60}\\ +% Tan \>{0.14,0.42,0.56,0}\>\>\\ +% White (Gray0) \>{0,0,0,0}\>Black (Gray100) \>{0,0,0,1}\\ +% Gray5 \>{0,0,0,0.05}\>Gray10 \>{0,0,0,0.10}\\ +% Gray15 \>{0,0,0,0.15}\>Gray20 \>{0,0,0,0.20}\\ +% Gray25 \>{0,0,0,0.25}\> Gray30 \>{0,0,0,0.30}\\ +% LightGray \>{0,0,0,0.33}\> Gray35 \>{0,0,0,0.35}\\ +% Gray40 \>{0,0,0,0.40}\>Gray45 \>{0,0,0,0.45}\\ +% Gray50 \>{0,0,0,0.50}\> Gray \>{0,0,0,0.50}\\ +% Gray55 \>{0,0,0,0.55}\> Gray60 \>{0,0,0,0.60}\\ +% Gray65 \>{0,0,0,0.65}\> DarkGray \>{0,0,0,0.66}\\ +% Gray70 \>{0,0,0,0.70}\> Gray75 \>{0,0,0,0.75}\\ +% Gray80 \>{0,0,0,0.80}\>Gray85 \>{0,0,0,0.85}\\ +% Gray90 \>{0,0,0,0.90}\> Gray95 \>{0,0,0,0.95}\\ +% \end{tabbing} +% +% Type the color names with the upper case letters exactly as described above. +% For the definition of new colors use the |dvips| command in the +% document header section: +% \medskip +% +% \quad|\DefineNamedColor{named}{|\meta{name}|}{cmyk}{|\meta{C,M,Y,K}|}| +% \medskip +% +% The \meta{name} can be chosen freely, the values for the color +% composition must be in the range 0--1, i\,e.\ 0--100\% of the +% respective component (`C' -- cyan, `M' -- magenta, `Y' -- yellow, +% `K' -- black) separated by commas. +% \medskip +% +% Example: +% \medskip +% +% |\DefineNamedColor{named}{Salmon}{cmyk}{0,0.53,0.38,0}| +% +% \section{Colors used in the different shading modes} +% \label{colused} +% +% \vspace{5mm} +% +% \vbox{% +% Color scheme \emph{blues}: +% \medskip +% +% \begin{tabbing} +% \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\ +% \>Black \> White \> no match \\ +% \>Black \> Magenta \> similar \\ +% \>White \> RoyalBlue \> identical \\ +% \>Goldenrod \> RoyalPurple \> all match\\ +% \end{tabbing}} +% \medskip +% +% \vbox{% +% Color scheme \emph{greens}: +% \medskip +% +% \begin{tabbing} +% \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\ +% \>Black \> White \> no match \\ +% \>Black \> GreenYellow \> similar \\ +% \>White \> PineGreen \> identical \\ +% \>YellowOrange \> OliveGreen \> all match\\ +% \end{tabbing}} +% \medskip +% +% \vbox{% +% Color scheme \emph{reds}: +% \medskip +% +% \begin{tabbing} +% \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\ +% \>Black \> White \> no match \\ +% \>Black \> YellowOrange \> similar \\ +% \>White \> BrickRed \> identical \\ +% \>YellowGreen \> Mahagony \> all match\\ +% \end{tabbing}} +% \medskip +% +% \vbox{% +% Color scheme \emph{grays}: +% \medskip +% +% \begin{tabbing} +% \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\ +% \>Black \> White \> no match \\ +% \>Black \> LightGray \> similar \\ +% \>White \> DarkGray \> identical \\ +% \>White \> Black \> all match\\ +% \end{tabbing}} +% \medskip +% +% \vbox{% +% Color scheme \emph{black}: +% \medskip +% +% \begin{tabbing} +% \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\ +% \>Black \> White \> no match \\ +% \>Black \> White \> similar \\ +% \>White \> Black \> identical \\ +% \>White \> Black \> all match\\ +% \end{tabbing}} +% \medskip +% +% \vbox{% +% Functional mode \emph{charge}: +% \medskip +% +% \begin{tabbing} +% \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\ +% \>Black \> White \> no match \\ +% \>White \> Red \> acidic \\ +% \>White \> Blue \> basic \\ +% \end{tabbing}} +% \medskip +% +% \vbox{% +% Functional mode \emph{hydropathy}: +% \medskip +% +% \begin{tabbing} +% \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\ +% \>Black \> White \> no match \\ +% \>White \> Red \> acidic \\ +% \>White \> Blue \> basic \\ +% \>Black \> Yellow \> polar uncharged \\ +% \>White \> Green \> hydrophobic nonpolar \\ +% \end{tabbing}} +% \medskip +% +% \vbox{% +% Functional mode \emph{chemical}: +% \medskip +% +% \begin{tabbing} +% \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\ +% \>Black \> White \> no match \\ +% \>White \> Red \> acidic \\ +% \>White \> Black \> aliphatic \\ +% \>White \> Green \> amide \\ +% \>White \> Brown \> aromatic \\ +% \>White \> Blue \> basic \\ +% \>Black \> Magenta \> hydroxyl \\ +% \>Black \> Orange \> imino \\ +% \>Black \> Yellow \> sulfur \\ +% \end{tabbing}} +% \medskip +% +% \vbox{% +% Functional mode \emph{structure}: +% \medskip +% +% \begin{tabbing} +% \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\ +% \>Black \> White \> no match \\ +% \>Black \> Orange \> external \\ +% \>Black \> Yellow \> ambivalent \\ +% \>White \> Green \> internal \\ +% \end{tabbing}} +% \medskip +% +% \vbox{% +% Functional mode \emph{standard area}: +% \medskip +% +% \begin{tabbing} +% \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\ +% \>Black \> White \> no match \\ +% \>Black \> BrickRed \> G\\ +% \>Black \> Orange \> A, S\\ +% \>Black \> Yellow \> C, P \\ +% \>Black \> YellowGreen \> T, D, V, N \\ +% \>White \> PineGreen \> I, E \\ +% \>Black \> SkyBlue \> L, Q, H, M \\ +% \>White \> RoyalPurple \> F, K \\ +% \>White \> RedViolet \> Y \\ +% \>White \> Black \> R, W \\ +% \end{tabbing}} +% \medskip +% +% \vbox{% +% Functional mode \emph{accessible area}: +% \medskip +% +% \begin{tabbing} +% \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\ +% \>Black \> White \> no match \\ +% \>Black \> BrickRed \> C \\ +% \>Black \> Orange \> I, V, G \\ +% \>Black \> Yellow \> F, L, M, A \\ +% \>Black \> YellowGreen \> W, S, T, H \\ +% \>White \> PineGreen \> P \\ +% \>Black \> SkyBlue \> Y, D, N \\ +% \>White \> RoyalPurple \> E, Q \\ +% \>White \> RedViolet \> R \\ +% \>White \> Black \> K \\ +% \end{tabbing}} +% \medskip +% +% \newpage +% \section{Quick Reference} +% +% \textbf{The logos} +% \medskip +% +% \quad |\TeXtopo| \qquad|\TeXshade| \qquad|\BioTeX| +% +% \vspace{1.5\baselineskip} +% +% \textbf{The \TeXtopo{} environments} (\pageref{tsenvironment}\,ff.) +% \medskip +% +% \vbox{% +% \begin{quote} +% |\begin{textopo}[|\meta{optional parameterfile}|]| +% +% \quad\emph{further \emph{\TeXtopo} commands} +% +% |\end{textopo}| +% \end{quote}} +% \medskip +% +% \vbox{% +% \begin{quote} +% |\begin{helicalwheel}[|\meta{parameterfile}|]{|\meta{helixlist}|}| +% +% \quad\emph{further \emph{\TeXtopo} commands} +% +% |\end{helicalwheel}| +% \end{quote}} +% \bigskip +% +% \textbf{Sequence and topology sources} +% \medskip +% +% \quad|\getsequence[make new]{PHD}{|\meta{PHD-file}|}| \hfill[\pageref{PHD}] +% +% \quad|\getsequence[make new]{HMMTOP}{|\meta{HMMTOP-file}|}| \hfill[\pageref{HMMTOP}] +% +% \quad|\getsequence[make new]{SwissProt}{|\meta{SwissProt-file}|}| \hfill[\pageref{SwissProt}] +% +% \quad|\getsequence{alignment}{|\meta{alignment-file}|}| \hfill[\pageref{align}] +% +% \quad|\MRs{|\meta{start1..stop1,start2..stop2,\ldots,start n..stop n}|}| +% \hfill[\pageref{mMRs}] +% +% \quad|\Nterm{|\meta{location}|}| \hfill[\pageref{mNterm}] +% +% \quad|\sequence{|\meta{Amino acid sequence}|}| \hfill[\pageref{msequence}] +% +% \bigskip +% +% \textbf{Structure modifications} +% \medskip +% +% \textit{Output size} +% \medskip +% +% \quad|\scaletopo{|\meta{fixed or relative size}|}| +% \hfill[\pageref{mscaletopo}] +% +% \medskip +% +% \textit{Loop modifications} +% \medskip +% +% \quad|\loopextent[|\meta{loop}|]{|\meta{extent}|[|\meta{distance}|]}| +% \hfill[\pageref{mloopextent}] +% +% \quad|\loopfoot{|\meta{loop}|}{|\meta{direction}|[|\meta{neck}|]}| +% \hfill[\pageref{mloopfoot}] +% +% \quad|\flipNterm| \hfill[\pageref{mflipNterm}] +% +% \quad|\flipCterm| \hfill[\pageref{mflipCterm}] +% +% \medskip +% +% \textit{Membrane domains} +% \medskip +% +% \quad|\clearMRs| \hfill[\pageref{mclearMRs}] +% +% \quad|\anchor{|\meta{pos}|}| \hfill[\pageref{manchor}] +% +% \medskip +% +% \textit{Cosmetics on the membrane} +% \medskip +% +% \quad|\membranecolors{|\meta{border}|}{|\meta{interior}|}| +% \hfill[\pageref{mmembranecolors}] +% +% \quad|\borderthickness{|\meta{length}|}| \hfill[\pageref{mborderthickness}] +% +% \quad|\labeloutside[|\meta{pos}|]{|\meta{text}|}| \hfill[\pageref{mlabeloutside}] +% +% \quad|\labelinside[|\meta{pos}|]{|\meta{text}|}| \hfill[\pageref{mlabelinside}] +% +% \quad|\moveoutsidelabel{|\meta{direction,distance} or \meta{x,y}|}| \hfill[\pageref{mmoveoutsidelabel}] +% +% \quad|\moveinsidelabel{|\meta{direction,distance} or \meta{x,y}|}| \hfill[\pageref{mmoveinsidelabel}] +% +% \quad|\broadenmembrane{|\meta{left/right}|}{|\meta{length}|}| +% \hfill[\pageref{mbroadenmembrane}] +% +% \quad|\thickenmembrane{|\meta{top/bottom}|}{|\meta{length}|}| +% \hfill[\pageref{mthickenmembrane}] +% +% \quad|\hidemembrane| \hfill[\pageref{mhidemembrane}] +% +% \quad|\showmembrane| \hfill[\pageref{mshowmembrane}] +% +% \bigskip +% +% \textbf{Putting labels on the plot} +% \medskip +% +% \textit{Labeling loops and membrane domains} +% \medskip +% +% \quad|\labelTMs{|\meta{style}|}| \hfill[\pageref{mlabelTMs}] +% +% \qquad|\numcount| \hfill[\pageref{mnumcount}] +% +% \qquad|\alphacount| \hfill[\pageref{malphacount}] +% +% \qquad|\Alphacount| \hfill[\pageref{mAlphacount}] +% +% \qquad|\romancount| \hfill[\pageref{mromancount}] +% +% \qquad|\Romancount| \hfill[\pageref{mRomancount}] +% +% \medskip +% +% \quad|\labelTM[|\meta{direction,distance} or \meta{x,y}|]{|\meta{num}|}{|\meta{label}|}| +% \hfill[\pageref{mlabelTM}] +% +% \quad|\moveTMlabel{|\meta{num}|}{|\meta{direction,distance} or \meta{x,y}|}| +% \hfill[\pageref{mmoveTMlabel}] +% +% \quad|\TMlabelcolor{|\meta{color}|}| \hfill[\pageref{mTMlabelcolor}] +% +% \quad|\hideTMlabels| \hfill[\pageref{mhideTMlabels}] +% +% \medskip +% +% \quad|\labelloops{|\meta{style}|}| \hfill[\pageref{mlabelloops}] +% +% \quad|\labelloop[|\meta{direction,distance} or \meta{x,y}|]{|\meta{num}|}{|\meta{label}|}| +% \hfill[\pageref{mlabelloop}] +% +% \quad|\movelooplabel{|\meta{num}|}{|\meta{direction,distance} or \meta{x,y}|}| +% \hfill[\pageref{mmovelooplabel}] +% +% \quad|\looplabelcolor{|\meta{color}|}|\hfill[\pageref{mlooplabelcolor}] +% +% \quad|\hidelooplabels|\hfill[\pageref{mhidelooplabels}] +% +% \medskip +% +% \textit{Shading and labeling sequence features} +% \medskip +% +% +% \quad|\labelstyle{|\meta{name}|}{|\meta{shape}|}{|\meta{frame color}|}| +% +% \qquad|{|\meta{background color}|}{|\meta{char color}|}{|\meta{legend text}|}| +% \hfill[\pageref{mlabelstyle}] +% +% \quad|\labelregion[|\meta{direction,distance} or \meta{x,y}|]| +% +% \qquad|{|\meta{list of regions}|}{|\meta{style name}|}{|\meta{label text}|}| +% \hfill[\pageref{mlabelregion}] +% +% \medskip +% +% \quad|\phosphorylation{|\meta{list of positions}|}| +% \hfill[\pageref{mphosphorylation}] +% +% \quad|\glycosylation{|\meta{list of positions}|}| +% \hfill[\pageref{mglycosylation}] +% +% \quad|\countercolor{|\meta{color}|}| \hfill[\pageref{mcountercolor}] +% +% \quad|\rulethickness{|\meta{thickness}|}| \hfill[\pageref{mrulethickness}] +% +% \medskip +% +% \textit{Placing additional labels} +% \medskip +% +% \quad|\place[|\meta{num}|]{|\meta{x\%}|,|\meta{y\%}|}{|\meta{label}|}| +% \hfill[\pageref{mplace}] +% +% \medskip +% +% \textit{Adding protein tags and changing the numbering} +% \medskip +% +% \vbox{% +% \quad|\addtagtoNterm[|\meta{direction,distance} or \meta{x,y}|]{|\meta{tag sequence}|}| +% +% \qquad|{|\meta{style name}|}{|\meta{label text}|}| +% \hfill[\pageref{maddtagtoNterm}]} +% +% \vbox{% +% \quad|\addtagtoCterm[|\meta{direction,distance} or \meta{x,y}|]{|\meta{tag sequence}|}| +% +% \qquad|{|\meta{style name}|}{|\meta{label text}|}| +% \hfill[\pageref{maddtagtoCterm}]} +% +% \quad|\seqstart{|\meta{num}|}| \hfill[\pageref{mseqstart}] +% +% \medskip +% +% \textit{Applying calculated shading} +% \medskip +% +% \quad|\applyshading[|\meta{num}|]{|\meta{mode}|}{|\meta{filename}|}| +% \hfill[\pageref{mapplyshading}] +% +% \medskip +% +% \quad|\threshold| \hfill[\pageref{mthreshold}] +% +% \quad|\shadingcolors{|\meta{colorscheme}|}| \hfill[\pageref{mshadingcolors}] +% +% \quad|\allmatchspecial| \hfill[\pageref{mallmatchspecial}] +% +% \quad|\allmatchspecialoff| \hfill[\pageref{mallmatchspecialoff}] +% +% \medskip +% +% \vbox{% +% \quad|\standardresidues{|\meta{style}|}{|\meta{frame}|}| +% +% \qquad|{|\meta{background}|}{|\meta{char}|}|\hfill[\pageref{mstandardresidues}]} +% +% \vbox{% +% \quad|\similarpositions{|\meta{style}|}{|\meta{frame}|}| +% +% \qquad|{|\meta{background}|}{|\meta{char}|}|\hfill[\pageref{msimilarpositions}]} +% +% \vbox{% +% \quad|\conservedpositions{|\meta{style}|}{|\meta{frame}|}| +% +% \qquad|{|\meta{background}|}{|\meta{char}|}|\hfill[\pageref{mconservedpositions}]} +% +% \vbox{% +% \quad|\invariablepositions{|\meta{style}|}{|\meta{frame}|}| +% +% \qquad|{|\meta{background}|}{|\meta{char}|}|\hfill[\pageref{minvariablepositions}]} +% +% \medskip +% +% \quad|\donotshadestartMet| \hfill[\pageref{mdonotshadestartMet}] +% +% \quad|\shadestartMet| \hfill[\pageref{mshadestartMet}] +% +% \medskip +% +% \textit{The figure legend} +% \medskip +% +% \quad|\hidelegend| \hfill[\pageref{mhidelegend}] +% +% \quad|\showlegend| \hfill[\pageref{mshowlegend}] +% +% \quad|\movelegend{|\meta{x-offset}|}{|\meta{y-offset}|}| +% \hfill[\pageref{mmovelegend}] +% +% \bigskip +% +% \textbf{Plotting helical wheels} +% \medskip +% +% \quad|\helixstyle{|\meta{style}|}| \hfill(|perspective|, +% |wheel|, |net|) [\pageref{mhelixstyle}] +% +% \quad|\scalewheel{|\meta{scale\%}|}| \hfill[\pageref{mscalewheel}] +% +% \quad|\symbolsize{|\meta{size}|}| \hfill(|small|, |medium|, +% |large|) [\pageref{msymbolsize}] +% +% \quad|\wheelsperline{|\meta{num}|}| \hfill[\pageref{mwheelsperline}] +% +% \medskip +% +% \quad|\viewfromextra| \hfill[\pageref{mviewfromextra}] +% +% \quad|\viewfromintra| \hfill[\pageref{mviewfromintra}] +% +% \medskip +% +% \quad|\showmoment| \hfill[\pageref{mshowmoment}] +% +% \quad|\hidemoment| \hfill[\pageref{mhidemoment}] +% +% \quad|\Hmean{|\meta{helixnum}|}| \hfill[\pageref{mHmean}] +% +% \quad|\muH{|\meta{helixnum}|}| \hfill[\pageref{mmuH}] +% +% \quad|\muHmean{|\meta{helixnum}|}| \hfill[\pageref{mmuHmean}] +% +% \quad|\mudelta{|\meta{helixnum}|}| \hfill[\pageref{mmudelta}] +% +% \quad|\momentcolor{|\meta{color}|}| \hfill[\pageref{mmomentcolor}] +% +% \quad|\scalemoment{|\meta{scale\%}|}| \hfill[\pageref{mscalemoment}] +% +% \medskip +% +% \quad|\showwheelnumbering| \hfill[\pageref{mshowwheelnumbering}] +% +% \quad|\hidewheelnumbering| \hfill[\pageref{mhidewheelnumbering}] +% +% \quad|\showbonds| \hfill[\pageref{mshowbonds}] +% +% \quad|\hidebonds| \hfill[\pageref{mhidebonds}] +% +% \bigskip +% +% \textbf{Changing font styles} +% \medskip +% +% \quad|\setfamily{|\meta{text}|}{|\meta{family}|}| +% \hfill[\pageref{msetfamily}] +% +% \quad|\setseries{|\meta{text}|}{|\meta{series}|}| +% \hfill[\pageref{msetseries}] +% +% \quad|\setshape{|\meta{text}|}{|\meta{shape}|}| +% \hfill[\pageref{msetshape}] +% +% \quad|\setsize{|\meta{text}|}{|\meta{size}|}| +% \hfill[\pageref{msetsize}] +% +% \quad|\setfont{|\meta{text}|}{|\meta{family}|}{|\meta{series}|}{|\meta{shape}|}{|\meta{size}|}| +% \hfill[\pageref{msetfont}] +% +% \medskip +% +% \quad |\labelsrm| \quad |\labelstiny| \hfill[\pageref{mlabelsrm}] +% +% \quad |\labelssf| \quad |\labelsscriptsize| +% +% \quad |\labelstt| \quad |\labelsfootnotesize| +% +% \quad |\labelsbf| \quad |\labelssmall| +% +% \quad |\labelsmd| \quad |\labelsnormalsize| +% +% \quad |\labelsit| \quad |\labelslarge| +% +% \quad |\labelssl| \quad |\labelsLarge| +% +% \quad |\labelssc| \quad |\labelsLARGE| +% +% \quad |\labelsup| \quad |\labelshuge| +% +% \quad | | \quad |\labelsHuge| +% \medskip +% +% Corresponding sets are provided for +% loop labels (|\looplabelsrm| etc.), TM labels +% (|\TMlabelsrm| etc.) and legend texts (|legendrm| etc.). +% +% +% +% +% \StopEventually{% +% \newpage +% \section*{References} +% [1] \textsc{Carlisle, D.} The Standard \LaTeX{} `Graphics +% Bundle', |color.sty|. +% +% [2] \textsc{Beitz, E.} (2000) \TeX{}shade: shading and labeling +% multiple sequence alignments using \LaTeXe. +% \newblock \textit{Bioinformatics}: \textbf{16}, +% 135--139. +% +% [3] \textsc{Rost, B.; Sander, C.} (1994) +% Combining evolutionary information and neural networks to predict +% protein secondary structure. +% \newblock \textit{Proteins: structure, function and +% genetics}: \textbf{19}, 55--72. +% +% [4] \textsc{Karlin, S.; Ghandour, G.} (1985) Multiple-alphabet +% amino acid sequence comparisons of the immunoglobulin +% $\kappa$-chain constant domain. +% \newblock \textit{Proc. Natl. Acad. Sci. USA}: \textbf{82}, +% 8597--8601. +% +% [5] \textsc{Kyte, J.; Doolittle, R. F.} (1982) A simple +% method for displaying the hydropathic character of a +% protein. +% \newblock \textit{J. Mol. Biol.}: \textbf{157}, 105--132. +% +% [6] \textsc{Rose, G. D.; Geselowitz, A. R.; Lesser, G. J.; +% Lee, R. H.; Zehfus, M. H.} (1985) Hydrophobicity of amino +% acid residues in globular proteins. +% \newblock \textit{Science}: \textbf{229}, 835--838. +% +% [7] \textsc{Lesser, G. J.; Rose, G. D.} (1990) Hydrophobicity +% of amino acid subgroups in proteins. +% \newblock \textit{Proteins: structure, function and +% genetics}: \textbf{8}, 6--13. +% +% [8] \textsc{Tusnady, G.E.; Simon, I.} (2001) +% The HMMTOP transmembrane topology prediction server. +% \newblock \textit{Bioinformatics}: \textbf{17}, 849-850. +% +% } +% \section*{Implementation} +% \subsection*{Documentation Driver} +% \begin{macrocode} +%<*driver> +\documentclass[12pt,a4paper]{ltxdoc} +\usepackage{textopo} +\catcode`\@=11 + \def\BioTeX{\mbox{\textsc{Bio}\kern-0.5ex\TeX}} + \def\TeXshade{% + \setbox1=\hbox{\texttt{H}}% + \def\logo@rule{\vrule depth0.25\ht1 height1.25\ht1 width\wd1}% + \TeX% + \logo@rule\kern-\wd1\textcolor{White}{\texttt{s}}% + \logo@rule\kern-\wd1\textcolor{White}{\texttt{h}}% + \texttt{a}% + \logo@rule\kern-\wd1\textcolor{White}{\texttt{d}}% + \texttt{e}} + \def\geneticcode#1{% + \xdef\first@{#1} + \xdef\temp@{standard} + \ifx\first@\temp@ + \c@d@ns + \else + \input{#1.cod} + \fi} + \openin\in@file = hyperref.sty + \ifeof\in@file + \else + \usepackage[colorlinks]{hyperref} + \fi + \closein\in@file +\def\group@get#1,#2@{% + \def\group@set{\expandafter\residue@get\second@ + \ifx\first@\ampers@nd + \else \expandafter\xdef\csname \prfx grp\first@\endcsname{\the\loopcount} + \xdef\second@{\csname sequence\the\loopcount\endcsname} \group@set + \fi} + \xdef\second@{#1 &@} \xdef\third@{#2&,@} \group@set} +\def\residue@get#1#2@{\xdef\first@{#1} + \ifnum`#1>96 \make@upper \fi + \expandafter\xdef\csname res\the\loopcount\endcsname{\first@} + \expandafter\xdef\csname sequence\the\loopcount\endcsname{#2@}} +\newif\ifgerm@n \germ@nfalse +\def\clear@groups{% + \expandafter\xdef\csname \prfx grpA\endcsname{ -1} + \expandafter\xdef\csname \prfx grpB\endcsname{ -2} + \expandafter\xdef\csname \prfx grpC\endcsname{ -3} + \expandafter\xdef\csname \prfx grpD\endcsname{ -4} + \expandafter\xdef\csname \prfx grpE\endcsname{ -5} + \expandafter\xdef\csname \prfx grpF\endcsname{ -6} + \expandafter\xdef\csname \prfx grpG\endcsname{ -7} + \expandafter\xdef\csname \prfx grpH\endcsname{ -8} + \expandafter\xdef\csname \prfx grpI\endcsname{ -9} + \expandafter\xdef\csname \prfx grpJ\endcsname{-10} + \expandafter\xdef\csname \prfx grpK\endcsname{-11} + \expandafter\xdef\csname \prfx grpL\endcsname{-12} + \expandafter\xdef\csname \prfx grpM\endcsname{-13} + \expandafter\xdef\csname \prfx grpN\endcsname{-14} + \expandafter\xdef\csname \prfx grpO\endcsname{-15} + \expandafter\xdef\csname \prfx grpP\endcsname{-16} + \expandafter\xdef\csname \prfx grpQ\endcsname{-17} + \expandafter\xdef\csname \prfx grpR\endcsname{-18} + \expandafter\xdef\csname \prfx grpS\endcsname{-19} + \expandafter\xdef\csname \prfx grpT\endcsname{-20} + \expandafter\xdef\csname \prfx grpU\endcsname{-21} + \expandafter\xdef\csname \prfx grpV\endcsname{-22} + \expandafter\xdef\csname \prfx grpW\endcsname{-23} + \expandafter\xdef\csname \prfx grpX\endcsname{-24} + \expandafter\xdef\csname \prfx grpY\endcsname{-25} + \expandafter\xdef\csname \prfx grpZ\endcsname{-26} + \expandafter\xdef\csname \prfx grp.\endcsname{-999} +} +\def\clearfuncgroups{\xdef\prfx{func} \clear@groups \xdef\fgroup@num{0}} +\clearfuncgroups +\def\func@shading#1{% + \clearfuncgroups + \xdef\temp@{#1} + \xdef\second@{charge} + \ifx\temp@\second@ + \ifgerm@n + \funcgroup{sauer ($-$)}{DE}{White}{Red}{upper}{up} + \funcgroup{basisch ($+$)}{KRH}{White}{Blue}{upper}{up} + \else + \funcgroup{acidic ($-$)}{DE}{White}{Red}{upper}{up} + \funcgroup{basic ($+$)}{KRH}{White}{Blue}{upper}{up} + \fi + \else + \xdef\second@{hydropathy} + \ifx\temp@\second@ + \ifgerm@n + \funcgroup{sauer ($-$)}{DE}{White}{Red}{upper}{up} + \funcgroup{basisch ($+$)}{KRH}{White}{Blue}{upper}{up} + \funcgroup{polar ungeladen}{YSTGNQC}{Black}{Yellow}{upper}{up} + \funcgroup{hydrophob unpolar}{AFPMWVIL}{White}{Green}{upper}{up} + \else + \funcgroup{acidic ($-$)}{DE}{White}{Red}{upper}{up} + \funcgroup{basic ($+$)}{KRH}{White}{Blue}{upper}{up} + \funcgroup{polar uncharged}{YSTGNQC}{Black}{Yellow}{upper}{up} + \funcgroup{hydrophobic nonpolar}{AFPMWVIL}{White}{Green}{upper}{up} + \fi + \else + \xdef\second@{chemical} + \ifx\temp@\second@ + \ifgerm@n + \funcgroup{sauer ($-$)}{DE}{White}{Red}{upper}{up} + \funcgroup{aliphatisch}{AGVIL}{White}{Black}{upper}{up} + \funcgroup{Amid}{NQ}{White}{Green}{upper}{up} + \funcgroup{aromatisch}{FYW}{White}{Brown}{upper}{up} + \funcgroup{basisch (+)}{KRH}{White}{Blue}{upper}{up} + \funcgroup{Hydroxyl}{ST}{Black}{Magenta}{upper}{up} + \funcgroup{Imin}{P}{Black}{Orange}{upper}{up} + \funcgroup{Schwefel}{CM}{Black}{Yellow}{upper}{up} + \else + \funcgroup{acidic ($-$)}{DE}{White}{Red}{upper}{up} + \funcgroup{aliphatic}{AGVIL}{White}{Black}{upper}{up} + \funcgroup{amide}{NQ}{White}{Green}{upper}{up} + \funcgroup{aromatic}{FYW}{White}{Brown}{upper}{up} + \funcgroup{basic ($+$)}{KRH}{White}{Blue}{upper}{up} + \funcgroup{hydroxyl}{ST}{Black}{Magenta}{upper}{up} + \funcgroup{imino}{P}{Black}{Orange}{upper}{up} + \funcgroup{sulfur}{CM}{Black}{Yellow}{upper}{up} + \fi + \else + \xdef\second@{structure} + \ifx\temp@\second@ + \ifgerm@n + \funcgroup{extern}{DEHKNQR}{Black}{Orange}{upper}{up} + \funcgroup{ambivalent}{ACGPSTWY}{Black}{Yellow}{upper}{up} + \funcgroup{intern}{FILMV}{White}{Green}{upper}{up} + \else + \funcgroup{external}{DEHKNQR}{Black}{Orange}{upper}{up} + \funcgroup{ambivalent}{ACGPSTWY}{Black}{Yellow}{upper}{up} + \funcgroup{internal}{FILMV}{White}{Green}{upper}{up} + \fi + \else + \xdef\second@{standard area} + \ifx\temp@\second@ + \ifgerm@n + \funcgroup{\ 88,1 (G); Standard Seitenkettenfl\"ache (\AA$^2$)}% + {G}{Black}{BrickRed}{upper}{up} + \funcgroup{118,2 (A); 129,8 (S)}{AS}{Black}{Orange}{upper}{up} + \funcgroup{146,1 (C); 146,8 (P)}% + {SCP}{Black}{Yellow}{upper}{up} + \funcgroup{152,5 (T); 158,7 (D); 164,5 (V); 165,5 (N)}% + {TDVN}{Black}{YellowGreen}{upper}{up} + \funcgroup{181,0 (I); 186,2 (E)}{IE}{White}{PineGreen}{upper}{up} + \funcgroup{193,1 (L); 193,2 (Q); 202,5 (H); 203,3 (M)}% + {LQHM}{Black}{SkyBlue}{upper}{up} + \funcgroup{222,8 (F); 225,8 (K)}{FK}{White}{RoyalPurple}{upper}{up} + \funcgroup{238,8 (Y)}{Y}{White}{RedViolet}{upper}{up} + \funcgroup{256,0 (R); 266,2 (W)}{RW}{White}{Black}{upper}{up} + \else + \funcgroup{\ 88.1 (G); Standard sidechain area (\AA$^2$)}% + {G}{Black}{BrickRed}{upper}{up} + \funcgroup{118.2 (A); 129.8 (S)}{AS}{Black}{Orange}{upper}{up} + \funcgroup{146.1 (C); 146.8 (P)}% + {SCP}{Black}{Yellow}{upper}{up} + \funcgroup{152.5 (T); 158.7 (D); 164.5 (V); 165.5 (N)}% + {TDVN}{Black}{YellowGreen}{upper}{up} + \funcgroup{181.0 (I); 186.2 (E)}{IE}{White}{PineGreen}{upper}{up} + \funcgroup{193.1 (L); 193.2 (Q); 202.5 (H); 203.3 (M)}% + {LQHM}{Black}{SkyBlue}{upper}{up} + \funcgroup{222.8 (F); 225.8 (K)}{FK}{White}{RoyalPurple}{upper}{up} + \funcgroup{238.8 (Y)}{Y}{White}{RedViolet}{upper}{up} + \funcgroup{256.0 (R); 266.2 (W)}{RW}{White}{Black}{upper}{up} + \fi + \else + \xdef\second@{accessible area} + \ifx\temp@\second@ + \ifgerm@n + \funcgroup{\ 13,9 (C); Zug\"angliche Seitenkettenfl\"ache (\AA$^2$)}% + {CIV}{Black}{BrickRed}{upper}{up} + \funcgroup{\ 23,0 (I); 23,5 (V); 25,2 (G)}% + {IVG}{Black}{Orange}{upper}{up} + \funcgroup{\ 28,7 (F); 29,0 (L); 30,5 (M); 31,5 (A)}% + {FLMA}{Black}{Yellow}{upper}{up} + \funcgroup{\ 41,7 (W); 44,2 (S); 46,0 (T); 46,7 (H)}% + {WSTH}{Black}{YellowGreen}{upper}{up} + \funcgroup{\ 53,7 (P)}{P}{White}{PineGreen}{upper}{up} + \funcgroup{\ 59,1 (Y); 60,9 (D); 62,2 (N)}% + {YDN}{Black}{SkyBlue}{upper}{up} + \funcgroup{\ 72,3 (E); 74,0 (Q)}{EQ}{White}{RoyalPurple}{upper}{up} + \funcgroup{\ 93,8 (R)}{R}{White}{RedViolet}{upper}{up} + \funcgroup{110,3 (K)}{K}{White}{Black}{upper}{up} + \else + \funcgroup{\ 13.9 (C); Accessible sidechain area (\AA$^2$)}% + {CIV}{Black}{BrickRed}{upper}{up} + \funcgroup{\ 23.0 (I); 23.5 (V); 25.2 (G)}% + {IVG}{Black}{Orange}{upper}{up} + \funcgroup{\ 28.7 (F); 29.0 (L); 30.5 (M); 31.5 (A)}% + {FLMA}{Black}{Yellow}{upper}{up} + \funcgroup{\ 41.7 (W); 44.2 (S); 46.0 (T); 46.7 (H)}% + {WSTH}{Black}{YellowGreen}{upper}{up} + \funcgroup{\ 53.7 (P)}{P}{White}{PineGreen}{upper}{up} + \funcgroup{\ 59.1 (Y); 60.9 (D); 62.2 (N)}% + {YDN}{Black}{SkyBlue}{upper}{up} + \funcgroup{\ 72.3 (E); 74.0 (Q)}{EQ}{White}{RoyalPurple}{upper}{up} + \funcgroup{\ 93.8 (R)}{R}{White}{RedViolet}{upper}{up} + \funcgroup{110.3 (K)}{K}{White}{Black}{upper}{up} + \fi + \else \message{} + \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{} + \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} +% +% \end{macrocode} +% \subsection*{\texttt{textopo.sty}---no comments} +% \begin{macrocode} +%<*textpo> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{textopo}[2001/03/09 LaTeX TeXtopo (v1.4)] +\message{Package `textopo', Version 1.4 of 05/02/14.} + +\PassOptionsToPackage{dvips}{color} +\PassOptionsToPackage{dvips}{graphicx} +\DeclareOption*{% + \PassOptionsToPackage{\CurrentOption}{color}% + \PassOptionsToPackage{\CurrentOption}{graphicx}% +} +\ProcessOptions +\RequirePackage{color,graphics} + +\catcode`\@=11 + +\expandafter\ifx\csname TeXtopo\endcsname\relax \else \endinput \fi + + +\newread\structure@file \newwrite\feature@file +\newread\in@file + +\newcount\x@pos +\newcount\y@pos +\newcount\x@p@s +\newcount\y@p@s +\newcount\x@offset +\newcount\y@offset +\newcount\x@min +\newcount\y@min +\newcount\x@max +\newcount\mem@max +\newcount\y@max +\newcount\pos@count +\newcount\pos@@count +\newcount\loopcount +\newcount\innerloopcount +\newcount\iloopcount +\newcount\temp@count +\newcount\temp@@count +\newcount\TM@@count +\newcount\loop@@count +\newcount\loop@calc +\newcount\sincos +\newcount\wheel@count + +\newlength\res@diam +\newlength\res@@diam +\newlength\unit@length +\newlength\hor@offset +\newlength\temp@length +\newlength\bond@thickness +\newlength\scale@factor +\newlength\vspace@@legend +\newlength\hspace@@legend +\newlength\b@rder + +\newif\ifanalyze +\newif\iffr@me +\newif\ifmembr@ne +\newif\ifshade +\newif\ifall@shade +\newif\ifsimilar@shade +\newif\ifletter +\newif\iffuncmode +\newif\ifloop@label +\newif\ifloop@series +\newif\ifloopgo@ +\newif\ifTM@label +\newif\ifTM@series +\newif\ifTMgo@ +\newif\iflegend@ +\newif\iflegend@@ +\newif\ifshadelegend@@ +\newif\ifhelix@ +\newif\ifdo@it +\newif\ifno@start@met +\newif\ifinsert@ +\newif\ifwheel@numbers +\newif\ifmu@H +\newif\if@helix@pers +\newif\if@net + +\def\ampers@nd{&} +\def\@t{@} +\def\y@{y} +\def\n@{n} +\def\s@{sp} +\def\intr@{intra} +\def\down@@{down} +\def\up@@{up} +\xdef\@pen{[} +\xdef\cl@se{]} +\xdef\br@cket@t{][@]} +\xdef\st@r{*} +\xdef\start@label{(} +\xdef\stop@label{)} +\def\n@me{Name:} +\def\he@derend{//} +\xdef\par@{\expandafter\string\par} +\xdef\label@num{0} +\xdef\amp@com@t{&,@} +\xdef\center@{center} + +\expandafter\def\csname Mio-14\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[E;6],% +2/5[W;6],7/6[E;6],% +4/10[W;6],9/11[E;6],% +1/14[W;6],6/15[E;6],% +3/19[W;6],8/20[E;6],% +0/23[W;6],5/24[NNW;8],10/25[ESE;6],% +11/30[E;6],@} +\expandafter\def\csname Mio-15\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[E;6],% +2/5[W;6],7/6[E;6],% +4/10[W;6],9/11[E;6],% +1/14[W;6],6/15[WNW;12],11/16[E;6],% +3/19[W;6],8/20[E;6],% +0/23[W;6],5/24[NNW;6],10/25[ESE;6],% +11/30[E;6],@} +\expandafter\def\csname Mio-16\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[E;6],% +2/5[W;6],7/6[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[E;6],% +1/14[W;6],6/15[WNW;12],11/16[E;6],% +3/19[W;6],8/20[E;6],% +0/23[W;6],5/24[NNW;8],10/25[ESE;6],% +11/30[E;6],@} +\expandafter\def\csname Mio-17\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[E;6],% +2/5[W;6],7/6[WNW;12],12/7[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[E;6],% +1/14[W;6],6/15[WNW;12],11/16[E;6],% +3/19[W;6],8/20[E;6],% +0/23[W;6],5/24[NNW;8],10/25[ESE;6],% +11/30[E;6],@} +\expandafter\def\csname Mio-18\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[E;6],% +2/5[W;6],7/6[WNW;12],12/7[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[E;6],% +1/14[W;6],6/15[WNW;12],11/16[E;6],% +-2/18[W;6],3/19[WNW;12],8/20[E;6],% +0/23[W;6],5/24[NNW;8],10/25[ESE;6],% +11/30[E;6],@} +\expandafter\def\csname Mio-19\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[E;6],% +2/5[W;6],7/6[WNW;1o],12/7[E;6],% +4/10[W;6],9/11[WNW;12],14/12[E;6],% +1/14[W;6],6/15[WNW;12],11/16[E;6],% +3/19[W;6],8/20[WNW;12],13/21[E;6],% +5/24[W;6],10/25[NNW;8],15/26[ESE;6],% +16/31[E;6],@} +\expandafter\def\csname Mio-20\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[E;6],% +2/5[W;6],7/6[WNW;12],12/7[E;6],% +4/10[W;6],9/11[WNW;12],14/12[E;6],% +1/14[W;6],6/15[WNW;12],11/16[E;6],% +3/19[W;6],8/20[WNW;12],13/21[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[ESE;6],% +16/31[E;6],@} +\expandafter\def\csname Mio-21\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[E;6],% +2/5[W;6],7/6[WNW;12],12/7[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[ENE;12],14/12[E;6],% +1/14[W;6],6/15[WNW;12],11/16[E;6],% +3/19[W;6],8/20[WNW;12],13/21[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[ESE;6],% +16/31[E;6],@} +\expandafter\def\csname Mio-22\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[E;6],% +2/5[W;6],7/6[WNW;12],12/7[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[ENE;12],14/12[E;6],% +1/14[W;6],6/15[WNW;12],11/16[ENE;12],16/17[E;6],% +3/19[W;6],8/20[WNW;12],13/21[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[ESE;6],% +16/31[E;6],@} +\expandafter\def\csname Mio-23\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[E;6],% +2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],% +4/10[W;6],9/11[WNW;12],14/12[ENE;12],19/13[E;6],% +6/15[W;6],11/16[WNW;12],16/17[E;6],% +3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],% +5/24[W;6],10/25[NNW;8],15/26[NNW;9],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-24\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],% +2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],% +4/10[W;6],9/11[WNW;12],14/12[ENE;12],19/13[E;6],% +6/15[W;6],11/16[WNW;12],16/17[E;6],% +3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],% +5/24[W;6],10/25[NNW;8],15/26[NNW;9],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-25\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[W;6],20/4[SSE;12],% +2/5[E;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],% +4/10[W;6],9/11[WNW;12],14/12[ENE;12],19/13[E;6],% +1/14[W;6],6/15[WNW;12],11/16[ENE;12],16/17[E;6],% +3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],% +5/24[W;6],10/25[NNW;8],15/26[NNW;9],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-26\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],% +2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],% +4/10[W;6],9/11[WNW;12],14/12[ENE;12],19/13[E;6],% +1/14[W;6],6/15[WNW;12],11/16[ENE;12],16/17[E;6],% +3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-27\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],% +2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],% +4/10[W;6],9/11[WNW;12],14/12[ENE;12],19/13[E;6],% +1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],% +3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-28\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],% +2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],% +1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],% +3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-29\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],% +2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],% +1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],% +3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-30\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],% +2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],% +1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],% +3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-31\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],% +2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],% +1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],% +-2/18[W;6],3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-32\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],% +2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],24/14[E;6],% +1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],% +-2/18[W;6],3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-33\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],% +-3/4[W;6],2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],24/14[E;6],% +1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],% +-2/18[W;6],3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-34\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],% +-3/4[W;6],2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],24/14[E;6],% +-4/13[W;6],1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],% +-2/18[W;6],3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-35\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],25/5[E;6],% +-3/4[W;6],2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],24/14[E;6],% +-4/13[W;6],1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],% +-2/18[W;6],3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],% +0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],% +21/32[E;6],@} +\expandafter\def\csname Mio-36\endcsname{% +0/0[W;6],5/1[SSE;8],10/2[SSE;9],15/3[SSE;12],20/4[E;6],20/4[E;6],% +-3/4[W;6],2/5[W;6],7/6[WNW;12],12/7[ENE;12],17/8[E;6],22/9[E;6],% +-1/9[W;6],4/10[WNW;12],9/11[WNW;15],14/12[ENE;12],19/13[E;6],24/14[E;6],% +-4/13[W;6],1/14[W;6],6/15[WNW;12],11/16[WNW;15],16/17[ENE;12],21/18[E;6],% +-2/18[W;6],3/19[W;6],8/20[WNW;12],13/21[ENE;12],18/22[E;6],23/23[E;6],% +-5/22[W;6],0/23[W;6],5/24[NNW;8],10/25[NNW;9],15/26[NNW;12],20/27[ESE;6],% +21/32[E;6],@} + +\expandafter\def\csname Moi-14\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[E;6],% +-4/-5[W;6],-9/-6[E;6],% +-6/-10[W;6],-11/-11[E;6],% +-3/-14[W;6],-8/-15[E;6],% +-5/-19[W;6],-10/-20[E;6],% +-2/-23[W;6],-7/-24[SSW;6],-12/-25[E;6],% +-13/-30[E;6],@} +\expandafter\def\csname Moi-15\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[E;6],% +-4/-5[W;6],-9/-6[E;6],% +-6/-10[W;6],-11/-11[E;6],% +-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],% +-5/-19[W;6],-10/-20[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[E;6],% +-13/-30[E;6],@} +\expandafter\def\csname Moi-16\endcsname{% +-2/0[W;6],-7/-1[NNW;8],-12/-2[E;6],% +-4/-5[W;6],-9/-6[E;6],% +-1/-9[W;6],-6/-10[ESE;12],-11/-11[E;6],% +-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],% +-5/-19[W;6],-10/-20[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[E;6],% +-13/-30[E;6],@} +\expandafter\def\csname Moi-17\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[E;6],% +-4/-5[W;6],-9/-6[ESE;12],-14/-7[E;6],% +-1/-9[W;6],-6/-10[ESE;12],-11/-11[E;6],% +-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],% +-5/-19[W;6],-10/-20[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[E;6],% +-13/-30[E;6],@} +\expandafter\def\csname Moi-18\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[E;6],% +-4/-5[W;6],-9/-6[ESE;12],-14/-7[E;6],% +-1/-9[W;6],-6/-10[ESE;12],-11/-11[E;6],% +-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],% +0/-18[W;6],-5/-19[ESE;12],-10/-20[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[E;6],% +-13/-30[E;6],@} +\expandafter\def\csname Moi-19\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[E;6],% +-4/-5[W;6],-9/-6[ESE;12],-14/-7[E;6],% +-6/-10[W;6],-11/-11[ESE;12],-16/-12[E;6],% +-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],% +-5/-19[W;6],-10/-20[ESE;12],-15/-21[5;6],% +-7/-24[W;6],-12/-25[SSW;8],-17/-26[E;6],% +-18/-31[E;6],@} +\expandafter\def\csname Moi-20\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[E;6],% +-4/-5[W;6],-9/-6[ESE;12],-14/-7[E;6],% +-6/-10[W;6],-11/-11[ESE;12],-16/-12[E;6],% +-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],% +-5/-19[W;6],-10/-20[ESE;12],-15/-21[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[E;6],% +-18/-31[E;6],@} +\expandafter\def\csname Moi-21\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[E;6],% +-4/-5[W;6],-9/-6[ESE;12],-14/-7[E;6],% +-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;12],-16/-12[E;6],% +-3/-14[W;6],-8/-15[ESE;12],-13/-16[E;6],% +-5/-19[W;6],-10/-20[ESE;12],-15/-21[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[E;6],% +-18/-31[E;6],@} +\expandafter\def\csname Moi-22\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[E;6],% +-4/-5[W;6],-9/-6[ESE;12],-14/-7[E;6],% +-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;12],-16/-12[E;6],% +-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;12],-18/-17[E;6],% +-5/-19[W;6],-10/-20[ESE;12],-15/-21[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[E;6],% +-18/-31[E;6],@} +\expandafter\def\csname Moi-23\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[E;6],% +-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],% +-6/-10[W;6],-11/-11[WSW;12],-16/-12[ESE;12],-21/-13[E;6],% +-8/-15[W;6],-13/-16[ESE;12],-18/-17[E;6],% +-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],% +-7/-24[W;6],-12/-25[SSW;8],-17/-26[SSW;9],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-24\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],% +-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],% +-6/-10[W;6],-11/-11[WSW;12],-16/-12[ESE;12],-21/-13[E;6],% +-8/-15[W;6],-13/-16[ESE;12],-18/-17[E;6],% +-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],% +-7/-24[W;6],-12/-25[SSW;8],-17/-26[SSW;9],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-25\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],% +-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],% +-6/-10[W;6],-11/-11[WSW;12],-16/-12[ESE;12],-21/-13[E;6],% +-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;12],-18/-17[E;6],% +-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],% +-7/-24[W;6],-12/-25[SSW;8],-17/-26[SSW;9],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-26\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],% +-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],% +-6/-10[W;6],-11/-11[WSW;12],-16/-12[ESE;12],-21/-13[E;6],% +-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;12],-18/-17[E;6],% +-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-27\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],% +-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],% +-6/-10[W;6],-11/-11[WSW;12],-16/-12[ESE;12],-21/-13[E;6],% +-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],% +-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-28\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],% +-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],% +-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],% +-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],% +-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-29\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],% +-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],% +-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],% +-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],% +-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-30\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],% +-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],% +-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],% +-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],% +-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-31\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],% +-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],% +-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],-26/-14[E;6],% +-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],% +-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-32\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],% +-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],% +-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],-26/-14[E;6],% +-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],% +0/-18[W;6],-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-33\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],% +-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],% +-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],-26/-14[E;6],% +2/-13[W;6],-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],% +0/-18[W;6],-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-34\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],% +1/-4[W;6],-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],% +-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],-26/-14[E;6],% +2/-13[W;6],-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],% +0/-18[W;6],-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-35\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],-27/-5[E;6],% +1/-4[W;6],-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],% +-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],-26/-14[E;6],% +2/-13[W;6],-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],% +0/-18[W;6],-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],% +-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],% +-23/-32[E;6],@} +\expandafter\def\csname Moi-36\endcsname{% +-2/0[W;6],-7/-1[NNE;8],-12/-2[NNE;9],-17/-3[NNE;12],-22/-4[E;6],-27/-5[E;6],% +1/-4[W;6],-4/-5[W;6],-9/-6[WSW;12],-14/-7[ESE;12],-19/-8[E;6],-24/-9[E;6],% +-1/-9[W;6],-6/-10[WSW;12],-11/-11[ESE;15],-16/-12[ESE;12],-21/-13[E;6],-26/-14[E;6],% +2/-13[W;6],-3/-14[W;6],-8/-15[WSW;12],-13/-16[ESE;15],-18/-17[ESE;12],-23/-18[E;6],% +0/-18[W;6],-5/-19[W;6],-10/-20[WSW;12],-15/-21[ESE;12],-20/-22[E;6],-25/-23[E;6],% +3/-22[W;6],-2/-23[W;6],-7/-24[SSW;8],-12/-25[SSW;9],-17/-26[SSW;12],-22/-27[E;6],% +-23/-32[E;6],@} + +\expandafter\def\csname oloop-1\endcsname{2/-1[N;6],5/-5[NE;6],@} +\expandafter\def\csname oloop-2\endcsname{2/-1[NW;6],7/-1[NE;6],10/-5[NE;6],@} +\expandafter\def\csname oloop-3\endcsname{0/0[NW;6],4/3[N;6],8/0[NE;6],9/-5[ENE;6],@} +\expandafter\def\csname oloop-4\endcsname{0/0[NW;6],3/4[NNW;6],8/4[NNE;6],11/0[NE;6],12/-5[W;6],@} +\expandafter\def\csname oloop-5\endcsname{0/0[WNW;6],2/5[NW;6],6/8[N;6],10/5[NE;6],12/0[ENE;6],13/-5[W;6],@} +\expandafter\def\csname oloop-6\endcsname{-1/0[NW;6],0/5[NW;6],3/9[NNW;6],% +8/9[NNE;6],11/5[NE;6],12/0[NE;6],12/-5[W;6],@} +\expandafter\def\csname oloop-7\endcsname{-1/0[WNW;6],0/5[NW;6],2/10[NW;6],6/13[NW;6],% +10/10[N;6],12/5[NE;6],13/0[ENE;6],13/-5[W;6],@} + +\expandafter\def\csname iloop-1\endcsname{2/1[S;6],5/5[W;6],@} +\expandafter\def\csname iloop-2\endcsname{2/1[SW;6],7/1[SE;6],10/5[W;6],@} +\expandafter\def\csname iloop-3\endcsname{0/0[SW;6],4/-3[S;6],8/0[SE;6],9/5[W;6],@} +\expandafter\def\csname iloop-4\endcsname{0/0[SW;6],3/-4[SSW;6],8/-4[SSE;6],11/0[SE;6],12/5[W;6],@} +\expandafter\def\csname iloop-5\endcsname{0/0[WSW;6],2/-5[SW;6],6/-8[S;6],10/-5[SE;6],12/0[ESE;6],13/5[W;6],@} +\expandafter\def\csname iloop-6\endcsname{-1/0[SW;6],0/-5[SW;6],3/-9[SSW;6],% +8/-9[SSE;6],11/-5[SE;6],12/0[SE;6],12/5[W;6],@} +\expandafter\def\csname iloop-7\endcsname{-1/0[WSW;6],0/-5[SW;6],2/-10[S;6],6/-13[S;6],% +10/-10[SE;6],12/-5[SE;6],13/0[ESE;6],13/5[W;6],@} + +\expandafter\def\csname iTMloop-1\endcsname{17/3[S;6],27/5[W;6],@} +\expandafter\def\csname iTMloop-2\endcsname{14/2[SW;6],21/2[SE;6],27/5[W;6],@} +\expandafter\def\csname iTMloop-3\endcsname{13/2[SW;6],18/0[S;6],23/1[SE;6],% +27/5[W;6],@} +\expandafter\def\csname iTMloop-4\endcsname{8/1[SW;6],13/0[SSW;6],18/0[SSE;6],% +23/1[SE;6],27/5[W;6],@} +\expandafter\def\csname iTMloop-5\endcsname{5/1[WSW;6],10/-1[SW;6],15/-2[S;6],% +20/-1[SE;6],25/1[ESE;6],28/5[W;6],@} +\expandafter\def\csname iTMloop-6\endcsname{2/1[SW;6],6/-2[SW;6],11/-3[SSW;6],% +16/-3[SSE;6],21/-2[SE;6],25/1[SE;6],28/5[W;6],@} +\expandafter\def\csname iTMloop-7\endcsname{0/0[WSW;6],3/-4[SW;6],8/-6[S;6],13/-7[S;6],% +18/-6[SE;6],23/-4[SE;6],26/0[ESE;6],27/5[W;6],@} + +\expandafter\def\csname oTMloop-1\endcsname{9/-2[N;6],27/-5[NE;6],@} +\expandafter\def\csname oTMloop-2\endcsname{6/-2[NW;6],13/-2[NE;6],27/-5[NE;6],@} +\expandafter\def\csname oTMloop-3\endcsname{4/-2[NW;6],9/0[N;6],14/-2[NE;6],% +28/-5[ENE;6],@} +\expandafter\def\csname oTMloop-4\endcsname{3/-1[NW;6],8/0[NNW;6],13/0[NNE;6],% +18/-2[NE;6],28/-5[W;6],@} +\expandafter\def\csname oTMloop-5\endcsname{3/-1[WNW;6],8/1[NW;6],13/2[N;6],% +18/1[NE;6],23/-1[ENE;6],28/-5[W;6],@} +\expandafter\def\csname oTMloop-6\endcsname{2/-1[NW;6],6/2[NW;6],11/3[NNW;6],% +16/3[NNE;6],21/2[NE;6],25/-1[NE;6],28/-5[W;6],@} +\expandafter\def\csname oTMloop-7\endcsname{0/0[WNW;6],3/4[NW;6],8/6[NW;6],13/7[NW;6],% +18/6[N;6],23/4[NE;6],26/0[ENE;6],27/-5[W;6],@} + +\expandafter\def\csname iNterm-1\endcsname{0/0[SSE;6],1/5[W;6],@} +\expandafter\def\csname iNterm-2\endcsname{0/0[SSE;6],3/4[SE;6],4/9[W;6],@} +\expandafter\def\csname iNterm-3\endcsname{0/0[SSE;6],4/3[SE;6],6/8[ESE;6],7/13[W;6],@} + +\expandafter\def\csname oNterm-1\endcsname{0/0[NNE;6],1/-5[W;6],@} +\expandafter\def\csname oNterm-2\endcsname{0/0[NNE;6],3/-4[NE;6],4/-9[W;6],@} +\expandafter\def\csname oNterm-3\endcsname{0/0[NNE;6],4/-3[NE;6],6/-8[ENE;6],7/-13[W;6],@} + +\expandafter\def\csname iCterm-1\endcsname{0/0[SSW;6],4/-3[W;6],@} +\expandafter\def\csname iCterm-2\endcsname{0/0[SW;6],3/-4[SSW;6],7/-7[W;6],@} +\expandafter\def\csname iCterm-3\endcsname{0/0[WSW;6],2/-5[SW;6],6/-8[SSW;6],10/-11[W;6],@} + +\expandafter\def\csname oCterm-1\endcsname{0/0[NNW;6],4/3[W;6],@} +\expandafter\def\csname oCterm-2\endcsname{0/0[NW;6],3/4[NNW;6],7/7[W;6],@} +\expandafter\def\csname oCterm-3\endcsname{0/0[WNW;6],2/5[NW;6],6/8[NNW;6],10/11[W;6],@} + +\expandafter\def\csname ohalf-1\endcsname{3/2[N;6],7/5[W;6],@} +\expandafter\def\csname ohalf-2\endcsname{2/1[NNW;6],7/1[NNE;6],10/5[W;6],@} +\expandafter\def\csname ohalf-3\endcsname{0/0[NNW;6],4/-3[N;6],8/0[NNE;6],9/5[W;6],@} +\expandafter\def\csname ohalf-4\endcsname{0/0[NW;6],3/-4[NNW;6],8/-4[NNE;6],11/0[NE;6],12/5[W;6],@} +\expandafter\def\csname ohalf-5\endcsname{0/0[NW;6],2/-5[NNW;6],6/-8[N;6],% +10/-5[NNE;6],12/0[NE;6],13/5[W;6],@} +\expandafter\def\csname ohalf-6\endcsname{-1/0[WNW;6],0/-5[NW;6],3/-9[NNW;6],8/-9[NNE;6],11/-5[NE;6],12/0[ENE;6],12/5[W;6],@} + +\expandafter\def\csname ihalf-1\endcsname{3/-2[S;6],7/-5[W;6],@} +\expandafter\def\csname ihalf-2\endcsname{2/-1[SSW;6],7/-1[SSE;6],10/-5[W;6],@} +\expandafter\def\csname ihalf-3\endcsname{0/-0[SSW;6],4/3[S;6],8/0[SSE;6],9/-5[W;6],@} +\expandafter\def\csname ihalf-4\endcsname{0/0[SW;6],3/4[SSW;6],8/4[SSE;6],11/0[SE;6],12/-5[W;6],@} +\expandafter\def\csname ihalf-5\endcsname{0/0[SW;6],2/5[SSW;6],6/8[S;6],% +10/5[SSE;6],12/0[SE;6],13/-5[W;6],@} +\expandafter\def\csname ihalf-6\endcsname{-1/0[WSW;6],0/5[SW;6],3/9[SSW;6],8/9[SSE;6],11/5[SE;6],12/0[ESE;6],12/-5[W;6],@} + +\expandafter\xdef\csname H@R\endcsname{-25300} +\expandafter\xdef\csname H@K\endcsname{-15000} +\expandafter\xdef\csname H@D\endcsname{-9000} +\expandafter\xdef\csname H@Q\endcsname{-8500} +\expandafter\xdef\csname H@N\endcsname{-7800} +\expandafter\xdef\csname H@E\endcsname{-7400} +\expandafter\xdef\csname H@H\endcsname{-4000} +\expandafter\xdef\csname H@S\endcsname{-1800} +\expandafter\xdef\csname H@T\endcsname{-500} +\expandafter\xdef\csname H@P\endcsname{1200} +\expandafter\xdef\csname H@Y\endcsname{2600} +\expandafter\xdef\csname H@C\endcsname{2900} +\expandafter\xdef\csname H@G\endcsname{4800} +\expandafter\xdef\csname H@A\endcsname{6200} +\expandafter\xdef\csname H@M\endcsname{6400} +\expandafter\xdef\csname H@W\endcsname{8100} +\expandafter\xdef\csname H@L\endcsname{10600} +\expandafter\xdef\csname H@V\endcsname{10800} +\expandafter\xdef\csname H@F\endcsname{11900} +\expandafter\xdef\csname H@I\endcsname{13800} + +\def\directE{0} \def\cosE{10000} \def\sinE{0} +\def\directENE{22.5} \def\cosENE{9239} \def\sinENE{3827} +\def\directNE{45} \def\cosNE{7071} \def\sinNE{7071} +\def\directNNE{67.5} \def\cosNNE{3827} \def\sinNNE{9239} +\def\directN{90} \def\cosN{0} \def\sinN{10000} +\def\directNNW{112.5} \def\cosNNW{-3827} \def\sinNNW{9239} +\def\directNW{135} \def\cosNW{-7071} \def\sinNW{7071} +\def\directWNW{157.5} \def\cosWNW{-9239} \def\sinWNW{3827} +\def\directW{180} \def\cosW{-10000} \def\sinW{0} +\def\directWSW{202.5} \def\cosWSW{-9239} \def\sinWSW{-3827} +\def\directSW{225} \def\cosSW{-7071} \def\sinSW{-7071} +\def\directSSW{247.5} \def\cosSSW{-3827} \def\sinSSW{-9239} +\def\directS{270} \def\cosS{0} \def\sinS{-10000} +\def\directSSE{292.5} \def\cosSSE{3827} \def\sinSSE{-9239} +\def\directSE{315} \def\cosSE{7071} \def\sinSE{-7071} +\def\directESE{337.5} \def\cosESE{9239} \def\sinESE{-3827} + +\definecolor{GreenYellow} {cmyk}{0.15,0,0.69,0} +\definecolor{Yellow} {cmyk}{0,0,1,0} +\definecolor{Goldenrod} {cmyk}{0,0.10,0.84,0} +\definecolor{Dandelion} {cmyk}{0,0.29,0.84,0} +\definecolor{Apricot} {cmyk}{0,0.32,0.52,0} +\definecolor{Peach} {cmyk}{0,0.50,0.70,0} +\definecolor{Melon} {cmyk}{0,0.46,0.50,0} +\definecolor{YellowOrange} {cmyk}{0,0.42,1,0} +\definecolor{Orange} {cmyk}{0,0.61,0.87,0} +\definecolor{BurntOrange} {cmyk}{0,0.51,1,0} +\definecolor{Bittersweet} {cmyk}{0,0.75,1,0.24} +\definecolor{RedOrange} {cmyk}{0,0.77,0.87,0} +\definecolor{Mahagony} {cmyk}{0,0.85,0.87,0.35} +\definecolor{Maroon} {cmyk}{0,0.87,0.68,0.32} +\definecolor{BrickRed} {cmyk}{0,0.89,0.94,0.28} +\definecolor{Red} {cmyk}{0,1,1,0} +\definecolor{OrangeRed} {cmyk}{0,1,0.50,0} +\definecolor{RubineRed} {cmyk}{0,1,0.13,0} +\definecolor{WildStrawberry}{cmyk}{0,0.96,0.39,0} +\definecolor{Salmon} {cmyk}{0,0.53,0.38,0} +\definecolor{CarnationPink} {cmyk}{0,0.63,0,0} +\definecolor{Magenta} {cmyk}{0,1,0,0} +\definecolor{VioletRed} {cmyk}{0,0.81,0,0} +\definecolor{Rhodamine} {cmyk}{0,0.82,0,0} +\definecolor{Mulberry} {cmyk}{0.34,0.90,0,0.02} +\definecolor{RedViolet} {cmyk}{0.07,0.90,0,0.34} +\definecolor{Fuchsia} {cmyk}{0.47,0.91,0,0.08} +\definecolor{Lavender} {cmyk}{0,0.48,0,0} +\definecolor{Thistle} {cmyk}{0.12,0.59,0,0} +\definecolor{Orchid} {cmyk}{0.32,0.64,0,0} +\definecolor{DarkOrchid} {cmyk}{0.40,0.80,0.20,0} +\definecolor{Purple} {cmyk}{0.45,0.86,0,0} +\definecolor{Plum} {cmyk}{0.50,1,0,0} +\definecolor{Violet} {cmyk}{0.79,0.88,0,0} +\definecolor{RoyalPurple} {cmyk}{0.75,0.90,0,0} +\definecolor{BlueViolet} {cmyk}{0.86,0.91,0,0.04} +\definecolor{Periwinkle} {cmyk}{0.57,0.55,0,0} +\definecolor{CadetBlue} {cmyk}{0.62,0.57,0.23,0} +\definecolor{CornflowerBlue}{cmyk}{0.65,0.13,0,0} +\definecolor{MidnightBlue} {cmyk}{0.98,0.13,0,0.43} +\definecolor{NavyBlue} {cmyk}{0.94,0.54,0,0} +\definecolor{RoyalBlue} {cmyk}{1,0.50,0,0} +\definecolor{Blue} {cmyk}{1,1,0,0} +\definecolor{Cerulean} {cmyk}{0.94,0.11,0,0} +\definecolor{Cyan} {cmyk}{1,0,0,0} +\definecolor{ProcessBlue} {cmyk}{0.96,0,0,0} +\definecolor{SkyBlue} {cmyk}{0.62,0,0.12,0} +\definecolor{Turquoise} {cmyk}{0.85,0,0.20,0} +\definecolor{TealBlue} {cmyk}{0.86,0,0.34,0.02} +\definecolor{Aquamarine} {cmyk}{0.82,0,0.30,0} +\definecolor{BlueGreen} {cmyk}{0.85,0,0.33,0} +\definecolor{Emerald} {cmyk}{1,0,0.50,0} +\definecolor{JungleGreen} {cmyk}{0.99,0,0.52,0} +\definecolor{SeaGreen} {cmyk}{0.69,0,0.50,0} +\definecolor{Green} {cmyk}{1,0,1,0} +\definecolor{ForestGreen} {cmyk}{0.91,0,0.88,0.12} +\definecolor{PineGreen} {cmyk}{0.92,0,0.59,0.25} +\definecolor{LimeGreen} {cmyk}{0.50,0,1,0} +\definecolor{YellowGreen} {cmyk}{0.44,0,0.74,0} +\definecolor{SpringGreen} {cmyk}{0.26,0,0.76,0} +\definecolor{OliveGreen} {cmyk}{0.64,0,0.95,0.40} +\definecolor{RawSienna} {cmyk}{0,0.72,1,0.45} +\definecolor{Sepia} {cmyk}{0,0.83,1,0.70} +\definecolor{Brown} {cmyk}{0,0.81,1,0.60} +\definecolor{Tan} {cmyk}{0.14,0.42,0.56,0} +\definecolor{White} {cmyk}{0,0,0,0} +\definecolor{Gray0} {cmyk}{0,0,0,0} +\definecolor{Gray5} {cmyk}{0,0,0,0.05} +\definecolor{Gray10} {cmyk}{0,0,0,0.10} +\definecolor{Gray15} {cmyk}{0,0,0,0.15} +\definecolor{Gray20} {cmyk}{0,0,0,0.20} +\definecolor{Gray25} {cmyk}{0,0,0,0.25} +\definecolor{Gray30} {cmyk}{0,0,0,0.30} +\definecolor{LightGray} {cmyk}{0,0,0,0.33} +\definecolor{Gray35} {cmyk}{0,0,0,0.35} +\definecolor{Gray40} {cmyk}{0,0,0,0.40} +\definecolor{Gray45} {cmyk}{0,0,0,0.45} +\definecolor{Gray50} {cmyk}{0,0,0,0.50} +\definecolor{Gray} {cmyk}{0,0,0,0.50} +\definecolor{Gray55} {cmyk}{0,0,0,0.55} +\definecolor{Gray60} {cmyk}{0,0,0,0.60} +\definecolor{Gray65} {cmyk}{0,0,0,0.65} +\definecolor{DarkGray} {cmyk}{0,0,0,0.66} +\definecolor{Gray70} {cmyk}{0,0,0,0.70} +\definecolor{Gray75} {cmyk}{0,0,0,0.75} +\definecolor{Gray80} {cmyk}{0,0,0,0.80} +\definecolor{Gray85} {cmyk}{0,0,0,0.85} +\definecolor{Gray90} {cmyk}{0,0,0,0.90} +\definecolor{Gray95} {cmyk}{0,0,0,0.95} +\definecolor{Black} {cmyk}{0,0,0,1} +\definecolor{Gray100} {cmyk}{0,0,0,1} +\definecolor{LightGreenYellow} {cmyk}{0.08,0,0.35,0} +\definecolor{LightYellow} {cmyk}{0,0,0.50,0} +\definecolor{LightGoldenrod} {cmyk}{0,0.05,0.42,0} +\definecolor{LightDandelion} {cmyk}{0,0.15,0.42,0} +\definecolor{LightApricot} {cmyk}{0,0.16,0.26,0} +\definecolor{LightPeach} {cmyk}{0,0.25,0.35,0} +\definecolor{LightMelon} {cmyk}{0,0.23,0.25,0} +\definecolor{LightYellowOrange} {cmyk}{0,0.21,0.50,0} +\definecolor{LightOrange} {cmyk}{0,0.31,0.44,0} +\definecolor{LightBurntOrange} {cmyk}{0,0.26,0.50,0} +\definecolor{LightBittersweet} {cmyk}{0,0.38,0.50,0.12} +\definecolor{LightRedOrange} {cmyk}{0,0.39,0.44,0} +\definecolor{LightMahagony} {cmyk}{0,0.43,0.44,0.18} +\definecolor{LightMaroon} {cmyk}{0,0.44,0.34,0.16} +\definecolor{LightBrickRed} {cmyk}{0,0.45,0.47,0.14} +\definecolor{LightRed} {cmyk}{0,0.50,0.50,0} +\definecolor{LightOrangeRed} {cmyk}{0,0.50,0.25,0} +\definecolor{LightRubineRed} {cmyk}{0,0.50,0.07,0} +\definecolor{LightWildStrawberry}{cmyk}{0,0.48,0.20,0} +\definecolor{LightSalmon} {cmyk}{0,0.27,0.19,0} +\definecolor{LightCarnationPink} {cmyk}{0,0.32,0,0} +\definecolor{LightMagenta} {cmyk}{0,0.50,0,0} +\definecolor{LightVioletRed} {cmyk}{0,0.40,0,0} +\definecolor{LightRhodamine} {cmyk}{0,0.41,0,0} +\definecolor{LightMulberry} {cmyk}{0.17,0.45,0,0.01} +\definecolor{LightRedViolet} {cmyk}{0.04,0.45,0,0.17} +\definecolor{LightFuchsia} {cmyk}{0.24,0.46,0,0.04} +\definecolor{LightLavender} {cmyk}{0,0.24,0,0} +\definecolor{LightThistle} {cmyk}{0.06,0.30,0,0} +\definecolor{LightOrchid} {cmyk}{0.16,0.32,0,0} +\definecolor{LightDarkOrchid} {cmyk}{0.20,0.40,0.10,0} +\definecolor{LightPurple} {cmyk}{0.23,0.43,0,0} +\definecolor{LightPlum} {cmyk}{0.25,0.50,0,0} +\definecolor{LightViolet} {cmyk}{0.40,0.44,0,0} +\definecolor{LightRoyalPurple} {cmyk}{0.38,0.45,0,0} +\definecolor{LightBlueViolet} {cmyk}{0.43,0.46,0,0.02} +\definecolor{LightPeriwinkle} {cmyk}{0.29,0.28,0,0} +\definecolor{LightCadetBlue} {cmyk}{0.31,0.29,0.12,0} +\definecolor{LightCornflowerBlue}{cmyk}{0.33,0.07,0,0} +\definecolor{LightMidnightBlue} {cmyk}{0.49,0.07,0,0.22} +\definecolor{LightNavyBlue} {cmyk}{0.47,0.27,0,0} +\definecolor{LightRoyalBlue} {cmyk}{0.50,0.25,0,0} +\definecolor{LightBlue} {cmyk}{0.50,0.50,0,0} +\definecolor{LightCerulean} {cmyk}{0.47,0.06,0,0} +\definecolor{LightCyan} {cmyk}{0.50,0,0,0} +\definecolor{LightProcessBlue} {cmyk}{0.48,0,0,0} +\definecolor{LightSkyBlue} {cmyk}{0.31,0,0.06,0} +\definecolor{LightTurquoise} {cmyk}{0.43,0,0.10,0} +\definecolor{LightTealBlue} {cmyk}{0.43,0,0.17,0.01} +\definecolor{LightAquamarine} {cmyk}{0.41,0,0.15,0} +\definecolor{LightBlueGreen} {cmyk}{0.43,0,0.17,0} +\definecolor{LightEmerald} {cmyk}{0.50,0,0.25,0} +\definecolor{LightJungleGreen} {cmyk}{0.50,0,0.26,0} +\definecolor{LightSeaGreen} {cmyk}{0.35,0,0.25,0} +\definecolor{LightGreen} {cmyk}{0.50,0,0.50,0} +\definecolor{LightForestGreen} {cmyk}{0.46,0,0.44,0.06} +\definecolor{LightPineGreen} {cmyk}{0.46,0,0.30,0.13} +\definecolor{LightLimeGreen} {cmyk}{0.25,0,0.50,0} +\definecolor{LightYellowGreen} {cmyk}{0.22,0,0.37,0} +\definecolor{LightSpringGreen} {cmyk}{0.13,0,0.38,0} +\definecolor{LightOliveGreen} {cmyk}{0.32,0,0.48,0.20} +\definecolor{LightRawSienna} {cmyk}{0,0.36,0.50,0.23} +\definecolor{LightSepia} {cmyk}{0,0.44,0.50,0.35} +\definecolor{LightBrown} {cmyk}{0,0.41,0.50,0.30} +\definecolor{LightTan} {cmyk}{0.07,0.21,0.28,0} + +\def\rotopo#1{% + \Grot@setangle{#1}% + \setbox\z@\hbox\bgroup\ignorespaces} +\def\endrotopo{% + \unskip\egroup + \Grot@x\z@ + \Grot@y\z@ + \wd0\z@\dp0\z@\ht0\z@ + \Grot@box +} + +\def\load@fonts{% + \setlength\temp@length{\textwidth} + \ifnum\fix@length>10 + \divide\temp@length by \x@max + \loopcount=\x@max + \advance\loopcount by -20 + \multiply\temp@length by \loopcount + \divide\temp@length by \x@max + \ifdim\temp@length<0.92398pt \loopcount=0 + \else + \ifdim\temp@length<1.10878pt \loopcount=1 + \else + \ifdim\temp@length<1.33054pt \loopcount=2 + \else + \ifdim\temp@length<1.59695pt \loopcount=3 + \else + \loopcount=4 + \fi\fi\fi\fi + \ifnum\change@length=0 + \else + \advance\loopcount by \change@length\relax + \ifnum\loopcount<0 \loopcount=0 \fi + \ifnum\loopcount>10\loopcount=10\fi + \fi + \xdef\fix@length{\the\loopcount} + \fi + \ifcase\fix@length + \setlength\temp@length{0.9pt} + \or \setlength\temp@length{1.1pt} + \or \setlength\temp@length{1.3pt} + \or \setlength\temp@length{1.7pt} + \or \setlength\temp@length{1.9pt} + \or \setlength\temp@length{2.4pt} + \or \setlength\temp@length{2.9pt} + \or \setlength\temp@length{3.4pt} + \or \setlength\temp@length{3.9pt} + \or \setlength\temp@length{4.1pt} + \or \setlength\temp@length{4.8pt} + \else + \fi + \ifdim\temp@length<0.92398pt + \xdef\font@num{A} + \newfont{\bsymA}{cmsy10 scaled 833} + \newfont{\sfdcA}{cmssdc10 scaled 232} + \newfont{\squareA}{cmsy10 scaled 482} + \newfont{\lipoA}{cmtt10 scaled 482} + \newfont{\treeA}{cmssdc10 scaled 482} + \ifx\label@size\ampers@nd + \setsize{labels}{tiny} + \fi + \ifx\mem@label@size\ampers@nd + \setsize{membranelabels}{tiny} + \fi + \setsize{looplabels}{footnotesize} + \setsize{TMlabels}{footnotesize} + \else + \ifdim\temp@length<1.10878pt + \xdef\font@num{B} + \newfont{\bsymB}{cmsy10 scaled 1000} + \newfont{\sfdcB}{cmssdc10 scaled 279} + \newfont{\squareB}{cmsy10 scaled 578} + \newfont{\lipoB}{cmtt10 scaled 578} + \newfont{\treeB}{cmssdc10 scaled 578} + \ifx\label@size\ampers@nd + \setsize{labels}{tiny} + \fi + \ifx\mem@label@size\ampers@nd + \setsize{membranelabels}{tiny} + \fi + \setsize{looplabels}{footnotesize} + \setsize{TMlabels}{footnotesize} + \else + \ifdim\temp@length<1.33054pt + \xdef\font@num{C} + \newfont{\bsymC}{cmsy10 scaled 1200} + \newfont{\sfdcC}{cmssdc10 scaled 335} + \newfont{\squareC}{cmsy10 scaled 694} + \newfont{\lipoC}{cmtt10 scaled 694} + \newfont{\treeC}{cmssdc10 scaled 694} + \ifx\label@size\ampers@nd + \setsize{labels}{tiny} + \fi + \ifx\mem@label@size\ampers@nd + \setsize{membranelabels}{tiny} + \fi + \setsize{looplabels}{footnotesize} + \setsize{TMlabels}{footnotesize} + \else + \ifdim\temp@length<1.59695pt + \xdef\font@num{D} + \newfont{\bsymD}{cmsy10 scaled 1440} + \newfont{\sfdcD}{cmssdc10 scaled 402} + \newfont{\squareD}{cmsy10 scaled 833} + \newfont{\lipoD}{cmtt10 scaled 833} + \newfont{\treeD}{cmssdc10 scaled 833} + \ifx\label@size\ampers@nd + \setsize{labels}{tiny} + \fi + \ifx\mem@label@size\ampers@nd + \setsize{membranelabels}{tiny} + \fi + \setsize{looplabels}{footnotesize} + \setsize{TMlabels}{footnotesize} + \else + \ifdim\temp@length<1.91574pt + \xdef\font@num{E} + \newfont{\bsymE}{cmsy10 scaled 1728} + \newfont{\sfdcE}{cmssdc10 scaled 482} + \newfont{\squareE}{cmsy10 scaled 1000} + \newfont{\lipoE}{cmtt10 scaled 1000} + \newfont{\treeE}{cmssdc10 scaled 1000} + \ifx\label@size\ampers@nd + \setsize{labels}{scriptsize} + \fi + \ifx\mem@label@size\ampers@nd + \setsize{membranelabels}{scriptsize} + \fi + \setsize{looplabels}{smallsize} + \setsize{TMlabels}{smallsize} + \else + \ifdim\temp@length<2.2992pt + \xdef\font@num{F} + \newfont{\bsymF}{cmsy10 scaled 2074} + \newfont{\sfdcF}{cmssdc10 scaled 578} + \newfont{\squareF}{cmsy10 scaled 1200} + \newfont{\lipoF}{cmtt10 scaled 1200} + \newfont{\treeF}{cmssdc10 scaled 1200} + \ifx\label@size\ampers@nd + \setsize{labels}{footnotesize} + \fi + \ifx\mem@label@size\ampers@nd + \setsize{membranelabels}{footnotesize} + \fi + \setsize{looplabels}{normalsize} + \setsize{TMlabels}{normalsize} + \else + \ifdim\temp@length<2.75888pt + \xdef\font@num{G} + \newfont{\bsymG}{cmsy10 scaled 2488} + \newfont{\sfdcG}{cmssdc10 scaled 694} + \newfont{\squareG}{cmsy10 scaled 1440} + \newfont{\lipoG}{cmtt10 scaled 1440} + \newfont{\treeG}{cmssdc10 scaled 1440} + \ifx\label@size\ampers@nd + \setsize{labels}{small} + \fi + \ifx\mem@label@size\ampers@nd + \setsize{membranelabels}{small} + \fi + \setsize{looplabels}{large} + \setsize{TMlabels}{large} + \else + \ifdim\temp@length<3.31097pt + \xdef\font@num{H} + \newfont{\bsymH}{cmsy10 scaled 2986} + \newfont{\sfdcH}{cmssdc10 scaled 833} + \newfont{\squareH}{cmsy10 scaled 1728} + \newfont{\lipoH}{cmtt10 scaled 1728} + \newfont{\treeH}{cmssdc10 scaled 1728} + \ifx\label@size\ampers@nd + \setsize{labels}{normalsize} + \fi + \ifx\mem@label@size\ampers@nd + \setsize{membranelabels}{normalsize} + \fi + \setsize{looplabels}{Large} + \setsize{TMlabels}{Large} + \else + \ifdim\temp@length<3.97316pt + \xdef\font@num{I} + \newfont{\bsymI}{cmsy10 scaled 3583} + \newfont{\sfdcI}{cmssdc10 scaled 1000} + \newfont{\squareI}{cmsy10 scaled 2074} + \newfont{\lipoI}{cmtt10 scaled 2074} + \newfont{\treeI}{cmssdc10 scaled 2074} + \ifx\label@size\ampers@nd + \setsize{labels}{large} + \fi + \ifx\mem@label@size\ampers@nd + \setsize{membranelabels}{large} + \fi + \setsize{looplabels}{LARGE} + \setsize{TMlabels}{LARGE} + \else + \ifdim\temp@length<4.76779pt + \xdef\font@num{J} + \newfont{\bsymJ}{cmsy10 scaled 4300} + \newfont{\sfdcJ}{cmssdc10 scaled 1200} + \newfont{\squareJ}{cmsy10 scaled 2488} + \newfont{\lipoJ}{cmtt10 scaled 2488} + \newfont{\treeJ}{cmssdc10 scaled 2488} + \ifx\label@size\ampers@nd + \setsize{labels}{Large} + \fi + \ifx\mem@label@size\ampers@nd + \setsize{membranelabels}{Large} + \fi + \setsize{looplabels}{huge} + \setsize{TMlabels}{huge} + \else + \xdef\font@num{K} + \newfont{\bsymK}{cmsy10 scaled 5160} + \newfont{\sfdcK}{cmssdc10 scaled 1440} + \newfont{\squareK}{cmsy10 scaled 2986} + \newfont{\lipoK}{cmtt10 scaled 2986} + \newfont{\treeK}{cmssdc10 scaled 2986} + \ifx\label@size\ampers@nd + \setsize{labels}{LARGE} + \fi + \ifx\mem@label@size\ampers@nd + \setsize{membranelabels}{LARGE} + \fi + \setsize{looplabels}{Huge} + \setsize{TMlabels}{Huge} + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi +} + +\expandafter\def\csname sin0\endcsname{0} +\expandafter\def\csname sin1\endcsname{175} +\expandafter\def\csname sin2\endcsname{349} +\expandafter\def\csname sin3\endcsname{523} +\expandafter\def\csname sin4\endcsname{698} +\expandafter\def\csname sin5\endcsname{872} +\expandafter\def\csname sin6\endcsname{1045} +\expandafter\def\csname sin7\endcsname{1219} +\expandafter\def\csname sin8\endcsname{1392} +\expandafter\def\csname sin9\endcsname{1563} +\expandafter\def\csname sin10\endcsname{1736} +\expandafter\def\csname sin11\endcsname{1908} +\expandafter\def\csname sin12\endcsname{2079} +\expandafter\def\csname sin13\endcsname{2250} +\expandafter\def\csname sin14\endcsname{2419} +\expandafter\def\csname sin15\endcsname{2588} +\expandafter\def\csname sin16\endcsname{2756} +\expandafter\def\csname sin17\endcsname{2924} +\expandafter\def\csname sin18\endcsname{3090} +\expandafter\def\csname sin19\endcsname{3256} +\expandafter\def\csname sin20\endcsname{3420} +\expandafter\def\csname sin21\endcsname{3584} +\expandafter\def\csname sin22\endcsname{3746} +\expandafter\def\csname sin23\endcsname{3907} +\expandafter\def\csname sin24\endcsname{4067} +\expandafter\def\csname sin25\endcsname{4226} +\expandafter\def\csname sin26\endcsname{4384} +\expandafter\def\csname sin27\endcsname{4540} +\expandafter\def\csname sin28\endcsname{4695} +\expandafter\def\csname sin29\endcsname{4848} +\expandafter\def\csname sin30\endcsname{5000} +\expandafter\def\csname sin31\endcsname{5150} +\expandafter\def\csname sin32\endcsname{5299} +\expandafter\def\csname sin33\endcsname{5446} +\expandafter\def\csname sin34\endcsname{5592} +\expandafter\def\csname sin35\endcsname{5736} +\expandafter\def\csname sin36\endcsname{5878} +\expandafter\def\csname sin37\endcsname{6018} +\expandafter\def\csname sin38\endcsname{6157} +\expandafter\def\csname sin39\endcsname{6293} +\expandafter\def\csname sin40\endcsname{6428} +\expandafter\def\csname sin41\endcsname{6561} +\expandafter\def\csname sin42\endcsname{6691} +\expandafter\def\csname sin43\endcsname{6820} +\expandafter\def\csname sin44\endcsname{6947} +\expandafter\def\csname sin45\endcsname{7071} +\expandafter\def\csname sin46\endcsname{7193} +\expandafter\def\csname sin47\endcsname{7314} +\expandafter\def\csname sin48\endcsname{7431} +\expandafter\def\csname sin49\endcsname{7547} +\expandafter\def\csname sin50\endcsname{7660} +\expandafter\def\csname sin51\endcsname{7771} +\expandafter\def\csname sin52\endcsname{7880} +\expandafter\def\csname sin53\endcsname{7986} +\expandafter\def\csname sin54\endcsname{8090} +\expandafter\def\csname sin55\endcsname{8192} +\expandafter\def\csname sin56\endcsname{8290} +\expandafter\def\csname sin57\endcsname{8387} +\expandafter\def\csname sin58\endcsname{8480} +\expandafter\def\csname sin59\endcsname{8572} +\expandafter\def\csname sin60\endcsname{8660} +\expandafter\def\csname sin61\endcsname{8746} +\expandafter\def\csname sin62\endcsname{8829} +\expandafter\def\csname sin63\endcsname{8910} +\expandafter\def\csname sin64\endcsname{8989} +\expandafter\def\csname sin65\endcsname{9063} +\expandafter\def\csname sin66\endcsname{9135} +\expandafter\def\csname sin67\endcsname{9205} +\expandafter\def\csname sin68\endcsname{9272} +\expandafter\def\csname sin69\endcsname{9336} +\expandafter\def\csname sin70\endcsname{9397} +\expandafter\def\csname sin71\endcsname{9455} +\expandafter\def\csname sin72\endcsname{9511} +\expandafter\def\csname sin73\endcsname{9563} +\expandafter\def\csname sin74\endcsname{9613} +\expandafter\def\csname sin75\endcsname{9659} +\expandafter\def\csname sin76\endcsname{9703} +\expandafter\def\csname sin77\endcsname{9744} +\expandafter\def\csname sin78\endcsname{9781} +\expandafter\def\csname sin79\endcsname{9816} +\expandafter\def\csname sin80\endcsname{9848} +\expandafter\def\csname sin81\endcsname{9877} +\expandafter\def\csname sin82\endcsname{9903} +\expandafter\def\csname sin83\endcsname{9925} +\expandafter\def\csname sin84\endcsname{9945} +\expandafter\def\csname sin85\endcsname{9962} +\expandafter\def\csname sin86\endcsname{9976} +\expandafter\def\csname sin87\endcsname{9986} +\expandafter\def\csname sin88\endcsname{9994} +\expandafter\def\csname sin89\endcsname{9998} +\expandafter\def\csname sin90\endcsname{10000} + +\expandafter\def\csname invtan0\endcsname{0} +\expandafter\def\csname invtan1\endcsname{175} +\expandafter\def\csname invtan2\endcsname{349} +\expandafter\def\csname invtan3\endcsname{524} +\expandafter\def\csname invtan4\endcsname{699} +\expandafter\def\csname invtan5\endcsname{875} +\expandafter\def\csname invtan6\endcsname{1051} +\expandafter\def\csname invtan7\endcsname{1228} +\expandafter\def\csname invtan8\endcsname{1405} +\expandafter\def\csname invtan9\endcsname{1584} +\expandafter\def\csname invtan10\endcsname{1763} +\expandafter\def\csname invtan11\endcsname{1944} +\expandafter\def\csname invtan12\endcsname{2126} +\expandafter\def\csname invtan13\endcsname{2309} +\expandafter\def\csname invtan14\endcsname{2493} +\expandafter\def\csname invtan15\endcsname{2679} +\expandafter\def\csname invtan16\endcsname{2867} +\expandafter\def\csname invtan17\endcsname{3057} +\expandafter\def\csname invtan18\endcsname{3249} +\expandafter\def\csname invtan19\endcsname{3443} +\expandafter\def\csname invtan20\endcsname{3640} +\expandafter\def\csname invtan21\endcsname{3839} +\expandafter\def\csname invtan22\endcsname{4040} +\expandafter\def\csname invtan23\endcsname{4245} +\expandafter\def\csname invtan24\endcsname{4452} +\expandafter\def\csname invtan25\endcsname{4663} +\expandafter\def\csname invtan26\endcsname{4877} +\expandafter\def\csname invtan27\endcsname{5095} +\expandafter\def\csname invtan28\endcsname{5317} +\expandafter\def\csname invtan29\endcsname{5543} +\expandafter\def\csname invtan30\endcsname{5774} +\expandafter\def\csname invtan31\endcsname{6009} +\expandafter\def\csname invtan32\endcsname{6247} +\expandafter\def\csname invtan33\endcsname{6494} +\expandafter\def\csname invtan34\endcsname{6745} +\expandafter\def\csname invtan35\endcsname{7002} +\expandafter\def\csname invtan36\endcsname{7265} +\expandafter\def\csname invtan37\endcsname{7536} +\expandafter\def\csname invtan38\endcsname{7813} +\expandafter\def\csname invtan39\endcsname{8098} +\expandafter\def\csname invtan40\endcsname{8391} +\expandafter\def\csname invtan41\endcsname{8693} +\expandafter\def\csname invtan42\endcsname{9004} +\expandafter\def\csname invtan43\endcsname{9325} +\expandafter\def\csname invtan44\endcsname{9657} +\expandafter\def\csname invtan45\endcsname{10000} +\expandafter\def\csname invtan46\endcsname{10355} +\expandafter\def\csname invtan47\endcsname{10724} +\expandafter\def\csname invtan48\endcsname{11106} +\expandafter\def\csname invtan49\endcsname{11504} +\expandafter\def\csname invtan50\endcsname{11918} +\expandafter\def\csname invtan51\endcsname{12349} +\expandafter\def\csname invtan52\endcsname{12799} +\expandafter\def\csname invtan53\endcsname{13270} +\expandafter\def\csname invtan54\endcsname{13764} +\expandafter\def\csname invtan55\endcsname{14281} +\expandafter\def\csname invtan56\endcsname{14826} +\expandafter\def\csname invtan57\endcsname{15399} +\expandafter\def\csname invtan58\endcsname{16003} +\expandafter\def\csname invtan59\endcsname{16643} +\expandafter\def\csname invtan60\endcsname{17321} +\expandafter\def\csname invtan61\endcsname{18040} +\expandafter\def\csname invtan62\endcsname{18807} +\expandafter\def\csname invtan63\endcsname{19626} +\expandafter\def\csname invtan64\endcsname{20503} +\expandafter\def\csname invtan65\endcsname{21445} +\expandafter\def\csname invtan66\endcsname{22460} +\expandafter\def\csname invtan67\endcsname{23558} +\expandafter\def\csname invtan68\endcsname{24751} +\expandafter\def\csname invtan69\endcsname{26051} +\expandafter\def\csname invtan70\endcsname{27475} +\expandafter\def\csname invtan71\endcsname{29042} +\expandafter\def\csname invtan72\endcsname{30777} +\expandafter\def\csname invtan73\endcsname{32709} +\expandafter\def\csname invtan74\endcsname{34874} +\expandafter\def\csname invtan75\endcsname{37321} +\expandafter\def\csname invtan76\endcsname{40108} +\expandafter\def\csname invtan77\endcsname{43315} +\expandafter\def\csname invtan78\endcsname{47046} +\expandafter\def\csname invtan79\endcsname{51446} +\expandafter\def\csname invtan80\endcsname{56713} +\expandafter\def\csname invtan81\endcsname{63138} +\expandafter\def\csname invtan82\endcsname{71154} +\expandafter\def\csname invtan83\endcsname{81443} +\expandafter\def\csname invtan84\endcsname{95144} +\expandafter\def\csname invtan85\endcsname{114301} +\expandafter\def\csname invtan86\endcsname{143007} +\expandafter\def\csname invtan87\endcsname{190814} +\expandafter\def\csname invtan88\endcsname{286363} +\expandafter\def\csname invtan89\endcsname{572900} + +\def\sin@#1{% + \xdef\first@{#1} + \sincos=\first@ + \ifnum#1<0 + \multiply\sincos by -1 \xdef\first@{\the\sincos} + \fi + \divide\sincos by 360 + \ifnum\sincos>0 + \temp@count=360 \multiply\temp@count by \sincos + \sincos=\first@ \advance\sincos by -\temp@count + \else + \sincos=\first@\relax + \fi + \ifnum\sincos>270 + \advance\sincos by -360 + \multiply\sincos by -1 + \xdef\temp@{\csname sin\the\sincos\endcsname} + \sincos=\temp@\relax + \multiply\sincos by -1 + \else + \ifnum\sincos>180 + \advance\sincos by -180 + \xdef\temp@{\csname sin\the\sincos\endcsname} + \sincos=\temp@\relax + \multiply\sincos by -1 + \else + \ifnum\sincos>90 + \advance\sincos by -180 + \multiply\sincos by -1 + \xdef\temp@{\csname sin\the\sincos\endcsname} + \sincos=\temp@\relax + \else + \xdef\temp@{\csname sin\the\sincos\endcsname} + \sincos=\temp@\relax + \fi\fi\fi + \ifnum#1<0 \multiply\sincos by -1 \fi +} + +\def\cos@#1{% + \xdef\first@{#1} + \sincos=\first@ + \ifnum#1<0 + \multiply\sincos by -1 \xdef\first@{\the\sincos} + \fi + \divide\sincos by 360 + \ifnum\sincos>0 + \temp@count=360 \multiply\temp@count by \sincos + \sincos=\first@ \advance\sincos by -\temp@count + \else + \sincos=\first@\relax + \fi + \ifnum\sincos>270 + \advance\sincos by -270 + \xdef\temp@{\csname sin\the\sincos\endcsname} + \sincos=\temp@\relax + \else + \ifnum\sincos>180 + \advance\sincos by -270 + \multiply\sincos by -1 + \xdef\temp@{\csname sin\the\sincos\endcsname} + \sincos=\temp@\relax + \multiply\sincos by -1 + \else + \ifnum\sincos>90 + \advance\sincos by -90 + \xdef\temp@{\csname sin\the\sincos\endcsname} + \sincos=\temp@\relax + \multiply\sincos by -1 + \else + \advance\sincos by -90 + \multiply\sincos by -1 + \xdef\temp@{\csname sin\the\sincos\endcsname} + \sincos=\temp@\relax + \fi\fi\fi +} + +\def\tan@#1{% + \cos@{#1} + \ifnum\sincos=0 + \PackageError{TeXtopo} + {Undefined angle for tangens} + {The tangens is not defined for the angles\MessageBreak + ... -270, -90, 90, 270 ...\MessageBreak +} + \else + \xdef\last@{\the\sincos} + \sin@{#1} + \multiply\sincos by 10000 + \divide\sincos by \last@ + \fi +} + +\def\invtan@#1#2{% + \sincos=#2 + \multiply\sincos by 10000 + \divide\sincos by #1 + \ifnum\sincos<0 \multiply\sincos by -1\fi + \xdef\temp@{\the\sincos} + \sincos=-1 + \loop + \advance\sincos by 1 + \ifnum\sincos=90 \sincos=89 \xdef\temp@{-1} \fi + \expandafter\ifnum\csname invtan\the\sincos\endcsname<\temp@ \repeat + \ifnum\temp@=-1 \sincos=90 \fi + \ifnum#1>0 + \ifnum#2>0 + \else + \multiply\sincos by -1 + \advance\sincos by 360 + \fi + \else + \ifnum#2>0 + \multiply\sincos by -1 + \advance\sincos by 180 + \else + \advance\sincos by 180 + \fi + \fi +} + +\def\sqrt@#1{ + \xdef\third@{10000} + \temp@count=#1 + \ifnum#1>200000 \xdef\third@{1000} \divide\temp@count by 10\fi + \ifnum#1>2000000 \message{Root value too big! (>200)} + \else + \xdef\last@{\the\temp@count} + \xdef\first@{\third@} + \xdef\second@{\last@} + \temp@@count=0 + \loop + \advance\temp@@count by 1 + \temp@count = \first@ + \advance\temp@count by \second@ + \divide\temp@count by 2 + \xdef\first@{\the\temp@count} + \temp@count = \last@ + \multiply\temp@count by \third@ + \divide\temp@count by \first@ + \xdef\second@{\the\temp@count} + \ifnum\temp@@count=10 \else \repeat + \ifnum\third@=1000 + \temp@count=\first@ \multiply\temp@count by 10 + \xdef\first@{\the\temp@count} + \fi + \ifnum\third@=100 + \temp@count=\first@ \multiply\temp@count by 100 + \xdef\first@{\the\temp@count} + \fi + \ifnum\third@=10 + \temp@count=\first@ \multiply\temp@count by 1000 + \xdef\first@{\the\temp@count} + \fi + \fi + \xdef\r@@t{\first@} +} + +\def\put@normal#1#2{% + \ifdo@it + \xdef\first@{circ} + \ifx\symb@l@style\first@ + \put(#1,#2){\raisebox{-\res@@diam}{% + \textcolor{\symb@lc@l}{% + \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"0F\hss}}}} + \put(#1,#2){\raisebox{-\res@@diam}{% + \textcolor{\fr@mec@l}{% + \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"0E\hss}}% + \kern-\res@diam \raisebox{0.4\res@diam}{% + \raisebox{0.65\res@@diam}% + {\hbox to \res@diam{\hss\csname sfdc\font@num\endcsname% + \textcolor{\ch@rc@l}{\ch@r}\hss}}}}} + \else + \xdef\first@{diamond} + \ifx\symb@l@style\first@ + \put(#1,#2){\raisebox{-\res@@diam}{% + \textcolor{\symb@lc@l}{% + \kern0.12\res@@diam% + \begin{rotopo}{45}\rule[0.17\res@@diam]{1.2\res@@diam}% + {1.3\res@@diam}\end{rotopo}% + \kern3\unit@length% + \begin{rotopo}{45}\rule[0.085\res@diam]{0.75\res@diam}% + {0.85\res@diam}\end{rotopo}}}} + \put(#1,#2){\raisebox{-\res@@diam}{% + \textcolor{\fr@mec@l}{% + \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"05\hss}}% + \kern-0.9\res@diam \raisebox{0.4\res@diam}{% + \raisebox{0.65\res@@diam}% + {\hbox to 0.9\res@diam{\hss\csname sfdc\font@num\endcsname% + \textcolor{\ch@rc@l}{\ch@r}\hss}}}}} + \else + \xdef\first@{box} + \ifx\symb@l@style\first@ + \ifhelix@ + \put(#1,#2){\kern-\res@@diam\raisebox{-\res@@diam}{% + \textcolor{\fr@mec@l}{% + \rule[0.25\res@@diam]{1.5\res@@diam}{1.75\res@@diam}}}} + \put(#1,#2){\kern-0.85\res@@diam\raisebox{-0.8\res@@diam}{% + \textcolor{\symb@lc@l}{% + \rule[0.25\res@@diam]{1.2\res@@diam}{1.4\res@@diam} + \kern-1.45\res@@diam\raisebox{0.6\res@@diam}% + {\hbox to \res@@diam{\hss\csname sfdc\font@num\endcsname% + \textcolor{\ch@rc@l}{\ch@r}\hss}}}}} + \else + \put(#1,#2){\textcolor{\symb@lc@l}{\kern0.11\res@diam% + \rule[0.175\res@diam]{0.73\res@diam}{0.85\res@diam}}} + \put(#1,#2){\textcolor{\fr@mec@l}{\kern0.02\res@diam% + \raisebox{0.175\res@diam}% + {\hbox to \res@diam{\hss\csname square\font@num\endcsname% + \char'164\hss}\kern-\res@diam\hbox to \res@diam{% + \hss\csname square\font@num\endcsname\char'165\hss}}% + \kern-\res@diam \raisebox{0.4\res@diam}{% + \raisebox{0.65\res@@diam}% + {\hbox to \res@diam{\hss\csname sfdc\font@num\endcsname% + \textcolor{\ch@rc@l}{\ch@r}\hss}}}}} + \fi + \fi + \fi + \fi + \fi +} + +\def\opt@col#1[#2]#3&{\xdef\fourth@{#1}\xdef\l@color{#2}\xdef\fifth@{#3}} +\def\test@box#1:#2:#3&{% + \xdef\last@{#1[@]&}\expandafter\opt@col\last@ + \xdef\label@style{box} + \ifx\fourth@\label@style + \ifx\l@color\@t\xdef\back@color{White}\xdef\frame@color{Black} + \else + \xdef\l@color{\l@color,&@} + \expandafter\two@color\l@color + \fi + \xdef\first@{#2[@]&} + \expandafter\opt@col\first@ + \ifx\l@color\@t\xdef\l@color{Black}\fi + \xdef\l@bel{\fourth@&} + \ifx\l@bel\ampers@nd \xdef\l@bel{\,\,\,} \else \xdef\l@bel{\fourth@}\fi + \else + \xdef\label@style{circ} + \ifx\fourth@\label@style + \ifx\l@color\@t\xdef\back@color{White}\xdef\frame@color{Black} + \else + \xdef\l@color{\l@color,&@} + \expandafter\two@color\l@color + \fi + \xdef\first@{#2[@]&} + \expandafter\opt@col\first@ + \ifx\l@color\@t\xdef\l@color{Black}\fi + \xdef\l@bel{\fourth@&} + \ifx\l@bel\ampers@nd \xdef\l@bel{\,\,\,} \else \xdef\l@bel{\fourth@}\fi + \else + \xdef\label@style{diamond} + \ifx\fourth@\label@style + \ifx\l@color\@t\xdef\back@color{White}\xdef\frame@color{Black} + \else + \xdef\l@color{\l@color,&@} + \expandafter\two@color\l@color + \fi + \xdef\first@{#2[@]&} + \expandafter\opt@col\first@ + \ifx\l@color\@t\xdef\l@color{Black}\fi + \xdef\l@bel{\fourth@&} + \ifx\l@bel\ampers@nd \xdef\l@bel{\,\,\,} \else \xdef\l@bel{\fourth@}\fi + \else + \xdef\label@style{tree} + \ifx\fourth@\label@style + \ifx\l@color\@t\xdef\frame@color{Black} + \else + \xdef\l@color{\l@color,&@} + \expandafter\two@color\l@color + \fi + \xdef\l@bel{} + \else + \xdef\label@style{&} + \xdef\l@bel{\fourth@} + \fi\fi\fi\fi + \ifx\l@color\@t\xdef\l@color{Black}\xdef\frame@color{Black}\fi + } + +\def\put@label{% + \ifx\l@bel\ampers@nd + \else + \xdef\first@{\l@bel::&}\expandafter\test@box\first@ + \setlength\temp@length{\unit@length} + \multiply\temp@length by \length@ + \xdef\first@{tree} + \ifx\label@style\first@ + \temp@count=\x@x@ \advance\temp@count by -1 \xdef\x@x@{\the\temp@count} + \temp@count=\y@y@ \advance\temp@count by -1 \xdef\y@y@{\the\temp@count} + \put(\x@x@,\y@y@){\begin{rotopo}{\csname direct\v@rdirect\endcsname}% + \begin{rotopo}{270}% + {\textcolor{\frame@color}{% + \csname tree\font@num\endcsname\kern-0.18ex I% + \kern-1ex\raisebox{1.4ex}Y% + \kern-1.5ex\raisebox{2.15ex}% + {\begin{rotopo}{32}Y\end{rotopo}}% + \kern0.6ex\raisebox{2.9ex}% + {\begin{rotopo}{329}Y\end{rotopo}}}}% + \end{rotopo}\end{rotopo}} + \temp@count=\x@x@ \advance\temp@count by 1 \xdef\x@x@{\the\temp@count} + \temp@count=\y@y@ \advance\temp@count by 1 \xdef\y@y@{\the\temp@count} + \else + \xdef\first@{\v@rdirect @} + \expandafter\check@letter\first@ + \ifletter + \temp@count=\x@x@ + \expandafter\ifnum\csname cos\v@rdirect\endcsname<0 + \expandafter\ifnum\csname sin\v@rdirect\endcsname>-10000 + \advance\temp@count by -1\relax + \fi\fi + \put(\temp@count,\y@y@){\begin{rotopo}{\csname direct\v@rdirect\endcsname}% + \rule{\temp@length}{\rule@thickness}\end{rotopo}} + \else + \invtan@{\v@rdirect}{\length@} + \sin@{\the\sincos} + \temp@count=\length@ + \multiply\temp@count by 10000 + \divide\temp@count by \sincos + \advance\temp@count by 1 + \ifdim\temp@length<0pt \multiply\temp@length by -1 \fi + \xdef\first@{\the\temp@length} + \temp@count=\x@x@ + \expandafter\ifnum\v@rdirect<0 + \advance\temp@count by -1\relax + \fi + \invtan@{\v@rdirect}{\length@} + \put(\temp@count,\y@y@){\begin{rotopo}{\the\sincos}% + \rule{\first@}{\rule@thickness}\end{rotopo}} + \fi + \fi + \xdef\first@{\v@rdirect @} + \expandafter\check@letter\first@ + \ifletter + \temp@count=\length@ + \multiply\temp@count by \csname cos\v@rdirect\endcsname + \divide\temp@count by 10000 + \xdef\x@@x{\the\temp@count} + \temp@count=\length@ + \multiply\temp@count by \csname sin\v@rdirect\endcsname + \divide\temp@count by 10000 + \xdef\y@@y{\the\temp@count} + \else + \xdef\x@@x{\v@rdirect} + \xdef\y@@y{\length@} + \fi + \temp@count=\x@x@ \advance\temp@count by \x@@x \xdef\x@@@x{\the\temp@count} + \temp@count=\y@y@ \advance\temp@count by \y@@y \xdef\y@@@y{\the\temp@count} + \xdef\first@{box} + \setbox1=\hbox{\label@size{\,\l@bel\,}} + \ifnum\x@@x>0 + \xdef\width@{0pt} + \else + \xdef\width@{\the\wd1} + \fi + \ifnum\y@@y<0 + \setlength\temp@length{0.75\ht1} \xdef\height@{\the\temp@length} + \else + \setlength\temp@length{0.25\ht1} \xdef\height@{\the\temp@length} + \fi + \ifx\label@style\first@ + \ifx\frame@color\back@color + \else + \put(\x@@@x,\y@@@y){\kern-\width@% + \kern-0.5\unit@length% + \textcolor{\frame@color}% + {\raisebox{-0.5\unit@length}{% + \raisebox{-0.8\temp@length}{% + \rule[-\r@depth]{\wd1}{\r@height}}}}} + \put(\x@@@x,\y@@@y){\kern-\width@% + \kern0.5\unit@length% + \textcolor{\frame@color}% + {\raisebox{-0.5\unit@length}{% + \raisebox{-0.8\temp@length}{% + \rule[-\r@depth]{\wd1}{\r@height}}}}} + \put(\x@@@x,\y@@@y){\kern-\width@% + \kern-0.5\unit@length% + \textcolor{\frame@color}% + {\raisebox{0.5\unit@length}{% + \raisebox{-0.8\temp@length}{% + \rule[-\r@depth]{\wd1}{\r@height}}}}} + \put(\x@@@x,\y@@@y){\kern-\width@% + \kern0.5\unit@length% + \textcolor{\frame@color}% + {\raisebox{0.5\unit@length}{% + \raisebox{-0.8\temp@length}{% + \rule[-\r@depth]{\wd1}{\r@height}}}}} + \fi + \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\back@color}% + {\raisebox{-0.8\temp@length}{% + \rule[-\r@depth]{\wd1}{\r@height}}}} + \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\l@color}% + {\raisebox{-\height@}{\hbox to \wd1{% + \label@size{\,\hss\l@bel\,}}}}} + \else + \xdef\first@{circ} + \ifx\label@style\first@ + \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\back@color}{% + \raisebox{-\height@}{\raisebox{-2\unit@length}{\hbox to \res@diam{% + \hss\csname bsym\font@num\endcsname\char"0F\hss}}}}} + \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\frame@color}{% + \raisebox{-\height@}{\raisebox{-2\unit@length}{\hbox to \res@diam{% + \hss\csname bsym\font@num\endcsname\char"0E\hss}}}% + \kern-\res@diam \raisebox{0.4\res@diam}% + {\raisebox{-\height@}{\raisebox{-2\unit@length}{\hbox to \res@diam{% + \hss\csname sfdc\font@num\endcsname% + \textcolor{\l@color}{\l@bel}\hss}}}}}} + \else + \xdef\first@{diamond} + \ifx\label@style\first@ + \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\back@color}{% + \raisebox{-\height@}{\raisebox{-2.5\unit@length}{\kern3\unit@length% + \begin{rotopo}{45}\rule[0.085\res@diam]{0.75\res@diam}% + {0.85\res@diam}\end{rotopo}}}}} + \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\frame@color}{% + \raisebox{-\height@}{\raisebox{-2.5\unit@length}{\hbox to \res@diam{% + \hss\csname bsym\font@num\endcsname\char"05\hss}}}% + \kern-0.9\res@diam \raisebox{0.4\res@diam}% + {\raisebox{-\height@}{\raisebox{-2.5\unit@length}{\hbox to 0.9\res@diam{% + \hss\csname sfdc\font@num\endcsname% + \textcolor{\l@color}{\l@bel}\hss}}}}}} + \else + \xdef\first@{tree} + \ifx\label@style\first@ + \else + \put(\x@@@x,\y@@@y){\kern-\width@\textcolor{\l@color}% + {\raisebox{-\height@}{\hbox to \wd1{% + \label@size{\,\hss\l@bel\,}}}}} + \fi\fi\fi\fi + \fi + \ifx\num@\ampers@nd + \xdef\first@{&} + \expandafter\ifx\csname print\p@s\endcsname\ampers@nd + \xdef\first@{\v@rdirect @} + \expandafter\check@letter\first@ + \ifletter + \xdef\first@{NE} + \expandafter\ifnum\csname cos\v@rdirect\endcsname>3800 + \expandafter\ifnum\csname sin\v@rdirect\endcsname>-1 + \xdef\first@{NW} + \fi\fi + \else + \xdef\first@{NE} + \ifnum\v@rdirect>0 + \ifnum\length@>0 + \xdef\first@{NW} + \fi\fi + \fi + \fi + \expandafter\ifx\csname print\p@s\endcsname\n@ + \else + \ifx\first@\ampers@nd \xdef\first@{\csname print\p@s\endcsname} \fi + \get@num@direc + \temp@count=\x@x@ \advance\temp@count by \first@ + \xdef\x@@@x{\the\temp@count} + \temp@count=\y@y@ \advance\temp@count by \second@ + \xdef\y@@@y{\the\temp@count} + \temp@count=\p@s\relax + \advance\temp@count by \seq@start\relax + \advance\temp@count by -1\relax + \put(\x@@@x,\y@@@y){\textcolor{\c@untc@l}{\csname sfdc\font@num\endcsname% + \raisebox{\rule@thickness}{% + \hbox to 0pt{\third@}}}} + \fi + \fi +} + +\def\get@num@direc{% + \xdef\temp@{NNE} + \ifx\first@\temp@ + \xdef\first@{1}\xdef\second@{1} \def\third@{\the\temp@count\hss} + \else + \xdef\temp@{NE} + \ifx\first@\temp@ + \xdef\first@{2}\xdef\second@{0} \def\third@{\the\temp@count\hss} + \else + \xdef\temp@{ENE} + \ifx\first@\temp@ + \xdef\first@{2}\xdef\second@{-1} \def\third@{\the\temp@count\hss} + \else + \xdef\temp@{E} + \ifx\first@\temp@ + \xdef\first@{2}\xdef\second@{-1} \def\third@{\the\temp@count\hss} + \else + \xdef\temp@{ESE} + \ifx\first@\temp@ + \xdef\first@{2}\xdef\second@{-2} \def\third@{\the\temp@count\hss} + \else + \xdef\temp@{SE} + \ifx\first@\temp@ + \xdef\first@{2}\xdef\second@{-3} \def\third@{\the\temp@count\hss} + \else + \xdef\temp@{SSE} + \ifx\first@\temp@ + \xdef\first@{1}\xdef\second@{-4} \def\third@{\the\temp@count\hss} + \else + \xdef\temp@{S} + \ifx\first@\temp@ + \xdef\first@{-1}\xdef\second@{-6} \def\third@{\hss\,\the\temp@count\hss} + \else + \xdef\temp@{SSW} + \ifx\first@\temp@ + \xdef\first@{-3}\xdef\second@{-4} \def\third@{\hss\the\temp@count\,} + \else + \xdef\temp@{SW} + \ifx\first@\temp@ + \xdef\first@{-3}\xdef\second@{-3} \def\third@{\hss\the\temp@count\,} + \else + \xdef\temp@{WSW} + \ifx\first@\temp@ + \xdef\first@{-4}\xdef\second@{-2} \def\third@{\hss\the\temp@count} + \else + \xdef\temp@{W} + \ifx\first@\temp@ + \xdef\first@{-4}\xdef\second@{-1} \def\third@{\hss\the\temp@count} + \else + \xdef\temp@{WNW} + \ifx\first@\temp@ + \xdef\first@{-4}\xdef\second@{-1} \def\third@{\hss\the\temp@count} + \else + \xdef\temp@{NW} + \ifx\first@\temp@ + \xdef\first@{-3}\xdef\second@{0} \def\third@{\hss\the\temp@count\,} + \else + \xdef\temp@{NNW} + \ifx\first@\temp@ + \xdef\first@{-3}\xdef\second@{1} \def\third@{\hss\the\temp@count\,} + \else + \xdef\temp@{N} + \ifx\first@\temp@ + \xdef\first@{-1}\xdef\second@{3} \def\third@{\hss\,\the\temp@count\hss} + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi +} + +\def\put@special#1#2{% + \ifx#1\ampers@nd + \else + \temp@count=#1 \advance\temp@count by 3 \xdef\x@x@{\the\temp@count} + \temp@count=#2 \advance\temp@count by 3 \xdef\y@y@{\the\temp@count} + \put@label + \xdef\first@{circ} + \ifx\first@\style@c@l + \put(#1,#2){\textcolor{\b@ck}{% + \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"0F\hss}}} + \put(#1,#2){\textcolor{\fr@me}{% + \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"0E\hss}}% + \kern-\res@diam \raisebox{0.4\res@diam}% + {\hbox to \res@diam{\hss\csname sfdc\font@num\endcsname% + \textcolor{\f@nt}{\ch@r}\hss}}} + \else + \xdef\first@{diamond} + \ifx\first@\style@c@l + \put(#1,#2){\textcolor{\b@ck}{\kern3\unit@length% + \begin{rotopo}{45}\rule[0.085\res@diam]{0.75\res@diam}% + {0.85\res@diam}\end{rotopo}}} + \put(#1,#2){\textcolor{\fr@me}{% + \hbox to \res@diam{\hss\csname bsym\font@num\endcsname\char"05\hss}}% + \kern-0.9\res@diam \raisebox{0.4\res@diam}% + {\hbox to 0.9\res@diam{\hss\csname sfdc\font@num\endcsname% + \textcolor{\f@nt}{\ch@r}\hss}}} + \else + \xdef\first@{box} + \ifx\first@\style@c@l + \put(#1,#2){\textcolor{\b@ck}{\kern0.11\res@diam% + \rule[0.175\res@diam]{0.73\res@diam}{0.85\res@diam}}} + \put(#1,#2){\textcolor{\fr@me}{\kern0.02\res@diam% + \raisebox{0.175\res@diam}% + {\hbox to \res@diam{\hss\csname square\font@num\endcsname% + \char'164\hss}\kern-\res@diam\hbox to \res@diam{% + \hss\csname square\font@num\endcsname\char'165\hss}}% + \kern-\res@diam \raisebox{0.4\res@diam}% + {\hbox to \res@diam{\hss\csname sfdc\font@num\endcsname% + \textcolor{\f@nt}{\ch@r}\hss}}}} + \fi + \fi + \fi + \expandafter\get@spec@pos\label@stack + \expandafter\get@spec@lab\label@stack + \put@special{\x@x}{\y@y} + \fi +} + +\def\get@col#1#2@{\xdef\col@num{#1}\xdef\constopo@{#2@}} + +\def\put@res#1#2{% + \x@p@s=#1 \y@p@s=#2 + \advance\pos@count by 1\relax + \ifnum\pos@count=0 \pos@count=1 \fi + \expandafter\ifx\csname res@x@off\the\pos@count\endcsname\relax + \else + \advance\x@pos by \csname res@x@off\the\pos@count\endcsname + \expandafter\xdef\csname res@x@off\the\pos@count\endcsname{0} + \fi + \expandafter\ifx\csname res@y@off\the\pos@count\endcsname\relax + \else + \advance\y@pos by \csname res@y@off\the\pos@count\endcsname + \expandafter\xdef\csname res@y@off\the\pos@count\endcsname{0} + \fi + \expandafter\get@aa\sequence@ + \ifx\ch@r\ampers@nd \xdef\sequence@{&@} + \else + \ifshade + \ifnum\pos@count<\seq@start + \xdef\col@num{0} + \else + \expandafter\get@col\constopo@ + \fi + \ifx\col@num\ampers@nd \xdef\col@num{0}\xdef\constopo@{&@}\fi + \ifnum\pos@count=\start@met@num\relax + \ifno@start@met + \xdef\col@num{M} + \ifx\ch@r\col@num + \xdef\col@num{0} + \fi + \fi + \fi + \xdef\s@style{\csname sstyle\col@num\endcsname} + \xdef\s@col{\csname scol\col@num\endcsname} + \xdef\f@col{\csname fcol\col@num\endcsname} + \xdef\c@col{\csname ccol\col@num\endcsname} + \xdef\symb@l@style{\s@style} + \xdef\symb@lc@l{\s@col} + \xdef\fr@mec@l{\f@col} + \xdef\ch@rc@l{\c@col} + \else + \iffuncmode + \xdef\col@num{\csname funcgrp\ch@r\endcsname} + \ifnum\col@num<0 \xdef\col@num{0}\fi + \xdef\s@style{circ} + \xdef\s@col{\csname fg@color\col@num\endcsname} + \xdef\f@col{Black} + \xdef\c@col{\csname fg@textcolor\col@num\endcsname} + \xdef\symb@l@style{\s@style} + \xdef\symb@lc@l{\s@col} + \xdef\fr@mec@l{\f@col} + \xdef\ch@rc@l{\c@col} + \fi\fi + \ifx\start@\ampers@nd + \put@normal{\x@p@s}{\y@p@s} + \else + \ifnum\start@>\pos@count + \put@normal{\x@p@s}{\y@p@s} + \else + \ifnum\stop@<\pos@count + \getregion@fromlstack + \ifx\start@\ampers@nd + \ifshade + \xdef\symb@l@style{\s@style} + \xdef\symb@lc@l{\s@col} + \xdef\fr@mec@l{\f@col} + \xdef\ch@rc@l{\c@col} + \else + \iffuncmode + \xdef\symb@l@style{\s@style} + \xdef\symb@lc@l{\s@col} + \xdef\fr@mec@l{\f@col} + \xdef\ch@rc@l{\c@col} + \else + \xdef\symb@l@style{\symb@lstyle} + \xdef\symb@lc@l{\symb@lcol} + \xdef\fr@mec@l{\fr@mecol} + \xdef\ch@rc@l{\ch@rcol} + \fi\fi + \put@normal{\x@p@s}{\y@p@s} + \else + \ifnum\start@=\pos@count + \xdef\symb@l@style{\style@c@l} + \xdef\symb@lc@l{\b@ck} + \xdef\fr@mec@l{\fr@me} + \xdef\ch@rc@l{\f@nt} + \temp@count=\stretch@ + \advance\temp@count by -1\relax + \xdef\stretch@{\the\temp@count} + \ifhelix@ \put@normal{\x@p@s}{\y@p@s} + \else + \ifnum\temp@count=-1\relax + \xdef\num@{0} + \ifnum\start@=\pos@count \xdef\num@{&} \fi + \ifnum\stop@=\pos@count \xdef\num@{&} \fi + \ifx\directi@n\ampers@nd \else \xdef\v@rdirect{\directi@n} \fi + \ifx\length@\ampers@nd \else \xdef\v@rlength{\length@} \fi + \xdef\label@stack{\label@stack \the\x@p@s;\the\y@p@s;\style@c@l;\b@ck;% + \fr@me;\f@nt;\ch@r;\v@rdirect;\v@rlength;\l@bel;% + \num@;\label@pos;} + \else + \ifnum\start@=\pos@count + \xdef\label@stack{\label@stack \the\x@p@s;\the\y@p@s;\style@c@l;\b@ck;% + \fr@me;\f@nt;\ch@r;\v@rdirect;\v@rlength;&;% + &;\start@;} + \else + \ifnum\stop@=\pos@count + \xdef\label@stack{\label@stack \the\x@p@s;\the\y@p@s;\style@c@l;\b@ck;% + \fr@me;\f@nt;\ch@r;\v@rdirect;\v@rlength;&;% + &;\stop@;} + \else + \put@normal{\x@p@s}{\y@p@s} + \fi + \fi + \fi + \fi + \else + \ifshade + \xdef\symb@l@style{\s@style} + \xdef\symb@lc@l{\s@col} + \xdef\fr@mec@l{\f@col} + \xdef\ch@rc@l{\c@col} + \else + \iffuncmode + \xdef\symb@l@style{\s@style} + \xdef\symb@lc@l{\s@col} + \xdef\fr@mec@l{\f@col} + \xdef\ch@rc@l{\c@col} + \else + \xdef\symb@l@style{\symb@lstyle} + \xdef\symb@lc@l{\symb@lcol} + \xdef\fr@mec@l{\fr@mecol} + \xdef\ch@rc@l{\ch@rcol} + \fi\fi + \put@normal{\x@p@s}{\y@p@s} + \fi + \fi + \else + \xdef\symb@l@style{\style@c@l} + \xdef\symb@lc@l{\b@ck} + \xdef\fr@mec@l{\fr@me} + \xdef\ch@rc@l{\f@nt} + \temp@count=\stretch@ + \advance\temp@count by -1\relax + \xdef\stretch@{\the\temp@count} + \ifhelix@ \put@normal{\x@p@s}{\y@p@s} + \else + \ifnum\temp@count=-1\relax + \xdef\num@{0} + \ifnum\start@=\pos@count \xdef\num@{&} \fi + \ifnum\stop@=\pos@count \xdef\num@{&} \fi + \ifx\directi@n\ampers@nd \else \xdef\v@rdirect{\directi@n} \fi + \ifx\length@\ampers@nd \else \xdef\v@rlength{\length@} \fi + \xdef\label@stack{\label@stack \the\x@p@s;\the\y@p@s;\style@c@l;\b@ck;% + \fr@me;\f@nt;\ch@r;\v@rdirect;\v@rlength;\l@bel;% + \num@;\label@pos;} + \else + \ifnum\start@=\pos@count + \xdef\label@stack{\label@stack \the\x@p@s;\the\y@p@s;\style@c@l;\b@ck;% + \fr@me;\f@nt;\ch@r;\v@rdirect;\v@rlength;&;% + &;\start@;} + \else + \ifnum\stop@=\pos@count + \xdef\label@stack{\label@stack \the\x@p@s;\the\y@p@s;\style@c@l;\b@ck;% + \fr@me;\f@nt;\ch@r;\v@rdirect;\v@rlength;&;% + &;\stop@;} + \else + \put@normal{\x@p@s}{\y@p@s} + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi +} + +\def\get@aa#1#2@{\xdef\ch@r{#1}\xdef\sequence@{#2@}} + + +\def\do@offset{% + \advance\pos@count by 1\relax + \ifnum\pos@count=0 \pos@count=1 \fi + \expandafter\ifx\csname res@x@off\the\pos@count\endcsname\relax + \else + \advance\x@pos by \csname res@x@off\the\pos@count\endcsname + \fi + \expandafter\ifx\csname res@y@off\the\pos@count\endcsname\relax + \else + \advance\y@pos by \csname res@y@off\the\pos@count\endcsname + \fi +} + +\def\sort@m@d@stack{% + \expandafter\get@next@m@d\m@d@stack + \ifnum\temp@count=0 + \else + \advance\temp@count by 1 + \ifnum\temp@count=0 \temp@count=1 \fi + \fi + \ifnum\temp@count=0 + \xdef\temp@stack{\temp@stack,\m@d@stack@ori @} + \else + \ifnum\loopcount<\temp@count + \xdef\temp@stack{\temp@stack,\m@d@stack@ori,% + \the\temp@count:\m@d@x@offset/\m@d@y@offset,\m@d@stack} + \else + \xdef\temp@stack{\temp@stack,\the\temp@count:\m@d@x@offset/\m@d@y@offset} + \sort@m@d@stack + \fi + \fi +} + +\def\get@next@m@d#1:#2/#3,#4@{% + \temp@count=#1 + \ifnum\temp@count=0 + \else + \advance\temp@count by -1\relax + \ifnum\temp@count=0 \temp@count=-1 \fi + \fi + \xdef\next@m@d@pos{\the\temp@count} + \xdef\m@d@x@offset{#2} + \xdef\m@d@y@offset{#3} + \xdef\m@d@stack{#4@} +} + +\def\get@offset@m@d{% + \x@offset=0\relax + \advance\x@pos by \m@d@x@offset\relax + \y@offset=0\relax + \advance\y@pos by \m@d@y@offset\relax + \ifnum\next@m@d@pos=0 \else \expandafter\get@next@m@d\m@d@stack \fi +} + +\def\set@part#1{% + \def\which@part##1-##2@{\xdef\part@name{##1}\xdef\part@num{##2}} + \def\left@foot{% + \ifx\current@pos\intr@ + \xdef\v@rdirect{NW} + \else + \xdef\v@rdirect{SW} + \fi + \xdef\v@rlength{6} + \loop + \ifnum\pos@count=\next@m@d@pos + \get@offset@m@d + \ifanalyze \do@offset + \else + \put@res{\x@pos}{\y@pos} + \fi + \ifnum\pos@count=\next@m@d@pos + \else + \xdef\subtract@offset{y} + \get@offset@m@d + \fi + \else + \ifanalyze \do@offset + \else + \put@res{\x@pos}{\y@pos} + \fi + \advance\x@pos by -5 + \ifx\current@pos\intr@ + \advance\y@pos by -1 + \ifnum\loopcount=\part@num + \advance\y@pos by -1 + \fi + \else + \advance\y@pos by 1 + \ifnum\loopcount=\part@num + \advance\y@pos by 1 + \fi + \fi + \fi + \advance\loopcount by 1 + \ifnum\loopcount>\part@num \else\repeat + \ifnum\x@pos<\x@min \x@min=\x@pos \fi + \ifnum\x@pos>\x@max \x@max=\x@pos \fi + \ifnum\y@pos<\y@min \y@min=\y@pos \fi + \ifnum\y@pos>\y@max \y@max=\y@pos \fi + } + \def\right@foot{% + \ifx\current@pos\intr@ + \xdef\v@rdirect{NE} + \else + \xdef\v@rdirect{SE} + \fi + \xdef\v@rlength{6} + \loop + \ifnum\pos@count=\next@m@d@pos + \get@offset@m@d + \ifanalyze \do@offset + \else + \put@res{\x@pos}{\y@pos} + \fi + \ifnum\pos@count=\next@m@d@pos + \else + \xdef\subtract@offset{y} + \get@offset@m@d + \fi + \else + \ifanalyze \do@offset + \else + \put@res{\x@pos}{\y@pos} + \fi + \advance\x@pos by -5 + \ifx\current@pos\intr@ + \advance\y@pos by 1 + \ifnum\loopcount=1 + \advance\y@pos by 1 + \fi + \else + \advance\y@pos by -1 + \ifnum\loopcount=1 + \advance\y@pos by -1 + \fi + \fi + \fi + \advance\loopcount by 1 + \ifnum\loopcount>\part@num \else\repeat + \ifnum\x@pos<\x@min \x@min=\x@pos \fi + \ifnum\x@pos>\x@max \x@max=\x@pos \fi + \ifnum\y@pos<\y@min \y@min=\y@pos \fi + \ifnum\y@pos>\y@max \y@max=\y@pos \fi + } + \def\d@wn{% + \ifx\current@pos\intr@ + \xdef\v@rdirect{W} + \else + \xdef\v@rdirect{E} + \fi + \xdef\v@rlength{6} + \loop + \ifnum\pos@count=\next@m@d@pos + \get@offset@m@d + \ifanalyze \do@offset + \else + \put@res{\x@pos}{\y@pos} + \fi + \ifnum\pos@count=\next@m@d@pos + \else + \xdef\subtract@offset{y} + \get@offset@m@d + \fi + \else + \ifanalyze \do@offset + \else + \put@res{\x@pos}{\y@pos} + \fi + \advance\y@pos by -5 + \fi + \advance\loopcount by 1 + \ifnum\loopcount>\part@num \else\repeat + \ifx\loop@inverse\y@ + \advance\x@pos by -1 + \else + \advance\x@pos by 1 + \fi + \ifanalyze + \ifx\loop@inverse\y@ + \ifx\C@now\y@ + \else + \advance\mem@max by -6 + \ifnum\x@pos<\x@min \x@min=\x@pos \fi + \fi + \else + \advance\mem@max by 1 + \ifnum\x@pos>\x@max \x@max=\x@pos \fi + \fi + \ifnum\y@pos<\y@min \y@min=\y@pos \fi + \fi + } + \def\up@{% + \ifx\current@pos\intr@ + \xdef\v@rdirect{E} + \else + \xdef\v@rdirect{W} + \fi + \xdef\v@rlength{6} + \loop + \ifnum\pos@count=\next@m@d@pos + \get@offset@m@d + \ifanalyze \do@offset + \else + \put@res{\x@pos}{\y@pos} + \fi + \ifnum\pos@count=\next@m@d@pos + \else + \xdef\subtract@offset{y} + \get@offset@m@d + \fi + \else + \ifanalyze \do@offset + \else + \put@res{\x@pos}{\y@pos} + \fi + \advance\y@pos by 5 + \fi + \advance\loopcount by 1 + \ifnum\loopcount>\part@num \else\repeat + \ifx\loop@inverse\y@ + \advance\x@pos by -1 + \else + \advance\x@pos by 1 + \fi + \ifanalyze + \ifx\loop@inverse\y@ + \ifx\C@now\y@ + \else + \advance\mem@max by -6 + \ifnum\x@pos<\x@min \x@min=\x@pos \fi + \fi + \else + \advance\mem@max by 1 + \ifnum\x@pos>\x@max \x@max=\x@pos \fi + \fi + \ifnum\y@pos>\y@max \y@max=\y@pos \fi + \fi + } + \def\right@{% + \ifx\current@pos\intr@ \xdef\v@rdirect{S} \else \xdef\v@rdirect{N} \fi + \xdef\v@rlength{6} + \loop + \ifnum\pos@count=\next@m@d@pos + \get@offset@m@d + \ifanalyze \do@offset + \else + \put@res{\x@pos}{\y@pos} + \fi + \ifnum\pos@count=\next@m@d@pos + \else + \xdef\subtract@offset{y} + \get@offset@m@d + \fi + \else + \ifanalyze \do@offset + \else + \put@res{\x@pos}{\y@pos} + \fi + \advance\x@pos by 5 + \fi + \advance\loopcount by 1 + \ifnum\loopcount>\part@num \else\repeat + \ifanalyze + \ifnum\x@pos>\x@max \x@max=\x@pos \fi + \ifnum\y@pos>\y@max \y@max=\y@pos \fi + \ifnum\x@pos<\x@min \x@min=\x@pos \fi + \ifnum\y@pos<\y@max \y@min=\y@pos \fi + \mem@max=\x@max + \fi + } + \def\lip@down##1##2{% + \temp@count=\x@pos \advance\temp@count by 4 + \xdef\first@@{\the\temp@count} + \temp@count=\y@pos + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74} + \advance\temp@count by -2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'76} + \advance\temp@count by -2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74} + \advance\temp@count by -2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'76} + \advance\temp@count by -2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74} + \advance\temp@count by -2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'76} + \advance\temp@count by -2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74} + } + \def\lip@up##1##2{% + \temp@count=\x@pos \advance\temp@count by 4 + \xdef\first@@{\the\temp@count} + \temp@count=\y@pos + \advance\temp@count by 2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74} + \advance\temp@count by 2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'76} + \advance\temp@count by 2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74} + \advance\temp@count by 2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'76} + \advance\temp@count by 2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74} + \advance\temp@count by 2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'76} + \advance\temp@count by 2 + \put(\first@@,\temp@count){\csname lipo\font@num\endcsname\char'74} + } + \def\set@pos##1/##2[##3;##4],##5@{% + \xdef\v@rdirect{##3} \xdef\v@rlength{##4} + \xdef\first@{##1}\xdef\second@{##2}\xdef\third@{##5@} + \ifx\third@\@t + \ifnum\pos@count=\next@m@d@pos + \ifx\first@rem@del\y@ + \ifx\loop@inverse\y@ + \advance\x@pos by -\first@\relax + \else + \advance\x@pos by \first@ + \fi + \advance\y@pos by \second@ + \fi + \else + \ifx\loop@inverse\y@ + \advance\x@pos by -\first@\relax + \else + \advance\x@pos by \first@ + \fi + \advance\y@pos by \second@ + \fi + \ifanalyze + \ifnum\y@pos<\y@min \y@min=\y@pos \fi + \ifnum\y@pos>\y@max \y@max=\y@pos \fi + \ifx\C@now\y@ + \ifx\loop@inverse\y@ + \else + \mem@max=\x@pos + \ifnum\x@pos<\x@min \x@min=\x@pos \fi + \ifnum\x@pos>\x@max \x@max=\x@pos \fi + \fi + \else + \mem@max=\x@pos + \ifnum\x@pos<\x@min \x@min=\x@pos \fi + \ifnum\x@pos>\x@max \x@max=\x@pos \fi + \fi + \fi + \else + \ifx\loop@inverse\y@ + \x@offset=\first@\relax + \multiply\x@offset by -1 + \else + \x@offset=\first@ + \fi + \xdef\part@list{\third@} + \y@offset=\second@ + \ifx\subtract@offset\y@ + \xdef\subtract@offset{n} + \multiply\x@offset by -1 + \advance\x@pos by \x@offset + \multiply\x@offset by -1 + \multiply\y@offset by -1 + \advance\y@pos by \y@offset + \multiply\y@offset by -1 + \fi + \ifnum\pos@count=\next@m@d@pos + \ifx\first@rem@del\y@ + \advance\x@pos by \x@offset + \advance\y@pos by \y@offset + \xdef\first@rem@del{n} + \fi + \get@offset@m@d + \fi + \advance\x@offset by \x@pos + \advance\y@offset by \y@pos + \ifanalyze + \do@offset + \ifx\first@rem@del\y@ + \else + \ifnum\pos@count=\next@m@d@pos + \else + \xdef\first@rem@del{y} + \xdef\subtract@offset{y} + \get@offset@m@d + \fi + \fi + \ifnum\y@offset<\y@min \y@min=\y@offset \fi + \ifnum\y@offset>\y@max \y@max=\y@offset \fi + \ifx\C@now\y@ + \ifx\loop@inverse\y@ + \else + \mem@max=\x@offset + \ifnum\x@offset<\x@min \x@min=\x@offset \fi + \ifnum\x@offset>\x@max \x@max=\x@offset \fi + \fi + \else + \mem@max=\x@offset + \ifnum\x@offset<\x@min \x@min=\x@offset \fi + \ifnum\x@offset>\x@max \x@max=\x@offset \fi + \fi + \else + \ifx\lip@\ampers@nd + \else + \ifx\lip@\down@@ \lip@down{\first@}{\second@} + \fi + \ifx\lip@\up@@ \lip@up{\first@}{\second@} + \fi + \fi + \put@res{\x@offset}{\y@offset} + \ifx\first@rem@del\y@ + \else + \ifnum\pos@count=\next@m@d@pos + \else + \xdef\first@rem@del{y} + \xdef\subtract@offset{y} + \get@offset@m@d + \fi + \fi + \fi + \expandafter\set@pos\part@list + \fi + } + \xdef\part@name{#1@} + \expandafter\which@part\part@name + \xdef\first@{down} + \loopcount=1 + \ifx\part@name\first@ \d@wn + \else + \xdef\first@{up} + \ifx\part@name\first@ \up@ + \else + \xdef\first@{right} + \ifx\part@name\first@ \right@ + \else + \xdef\first@{leftfoot} + \ifx\part@name\first@ \left@foot + \else + \xdef\first@{rightfoot} + \ifx\part@name\first@ \right@foot + \else + \xdef\lip@{&} + \ifnum\part@num=1 + \expandafter\ifx\csname lip@\the\pos@count\endcsname\y@ + \ifx\current@pos\intr@ \xdef\lip@{up} + \else \xdef\lip@{down} + \fi + \fi + \fi + \xdef\part@list{\csname #1\endcsname} + \expandafter\set@pos\part@list + \fi + \fi + \fi + \fi + \fi +} + +\def\MR@#1{% + \ifx\current@pos\intr@ + \xdef\tr@ns{io} + \xdef\current@pos{extra} + \else + \xdef\tr@ns{oi} + \xdef\current@pos{intra} + \fi + \expandafter\set@part{M\tr@ns-#1} + \xdef\prev@TM{y} + \ifnum\mem@low=-99999 \xdef\mem@low{\the\y@min} \fi + \ifnum\mem@high=-99999 \xdef\mem@high{\the\y@max} \fi + \ifanalyze\else + \advance\TM@@count by 1 + \message{- TM\the\TM@@count} + \advance\TM@@count by -1 + \fi +} + +\def\do@firstloops{% + \ifnum\iloopcount=\middle@loop + \else + \advance\iloopcount by 1 + \ifx\current@pos\intr@ + \advance\x@pos by 1 + \advance\y@pos by 3 + \set@part{iNterm-2} + \else + \advance\x@pos by 1 + \advance\y@pos by -3 + \set@part{oNterm-2} + \fi + \advance\x@pos by 1 + \expandafter\h@lf{\length@loops} + \advance\x@pos by 1 + \ifx\current@pos\intr@ + \set@part{iCterm-2} + \else + \set@part{oCterm-2} + \fi + \do@firstloops + \fi +} + +\def\do@secloops{% + \ifnum\iloopcount>\num@loops + \else + \advance\iloopcount by 1 + \ifx\current@pos\intr@ + \advance\x@pos by 1 + \advance\y@pos by 3 + \set@part{iNterm-2} + \else + \advance\x@pos by 1 + \advance\y@pos by -3 + \set@part{oNterm-2} + \fi + \advance\x@pos by 1 + \expandafter\h@lf{\length@loops} + \advance\x@pos by 1 + \ifx\current@pos\intr@ + \set@part{iCterm-2} + \else + \set@part{oCterm-2} + \fi + \do@secloops + \fi +} + +\def\calc@mult@loop{% + \temp@count=\first@ + \advance\temp@count by -\outer@loop + \xdef\inner@loops{\the\temp@count} + \loopcount=\temp@count + \advance\loopcount by -1 + \divide\loopcount by \inner@loop\relax + \divide\temp@count by \inner@loop\relax + \ifnum\loopcount=\temp@count \advance\temp@count by 1 \fi + \ifnum\old@loops>0 \temp@count=\old@loops\relax \fi + \xdef\num@loops{\the\temp@count} %%% number of inner loops + \temp@count=\inner@loops + \divide\temp@count by \num@loops + \xdef\length@loops{\the\temp@count} %%% length of inner loops with extraloop + \temp@count=\num@loops + \loopcount=\temp@count + \advance\loopcount by -1\relax + \divide\loopcount by 2\relax + \divide\temp@count by 2\relax + \ifnum\loopcount=\temp@count \advance\temp@count by 1 \fi + \xdef\middle@loop{\the\temp@count} %%% middle loop number + \temp@count=\num@loops + \advance\temp@count by -1 + \multiply\temp@count by -\length@loops\relax + \loopcount=\first@ + \advance\loopcount by -\outer@loop + \advance\loopcount by \temp@count + \advance\loopcount by -4 + \xdef\middle@length{\the\loopcount} %%% length of middle loop + \temp@count=\length@loops + \advance\temp@count by -4 + \xdef\length@loops{\the\temp@count} %%% length of inner loops +} + +\def\mult@loop#1{% + \xdef\first@{#1} + \calc@mult@loop + \ifx\current@pos\intr@ + \expandafter\set@part{down-\outer@straight} + \set@part{iCterm-2} + \else + \expandafter\set@part{up-\outer@straight} + \set@part{oCterm-2} + \fi + \iloopcount=1 + \ifnum\middle@loop>1 \do@firstloops \fi + \ifnum\middle@length>0 + \ifx\current@pos\intr@ + \advance\x@pos by 1 + \advance\y@pos by 3 + \set@part{iNterm-2} + \else + \advance\x@pos by 1 + \advance\y@pos by -3 + \set@part{oNterm-2} + \fi + \advance\x@pos by 1 + \expandafter\h@lf{\middle@length} + \advance\x@pos by 1 + \ifx\current@pos\intr@ + \set@part{iCterm-2} + \else + \set@part{oCterm-2} + \fi + \else + \loopcount=\middle@length + \advance\loopcount by 4 + \xdef\updown@num{\the\loopcount} + \expandafter\set@part{right-\updown@num} + \advance\x@pos by -2 + \fi + \advance\iloopcount by 1 + \do@secloops + \ifx\current@pos\intr@ + \advance\x@pos by 1 + \advance\y@pos by 3 + \set@part{iNterm-2} + \expandafter\set@part{up-\outer@straight} + \else + \advance\x@pos by 1 + \advance\y@pos by -3 + \set@part{oNterm-2} + \expandafter\set@part{down-\outer@straight} + \fi +} + +\def\do@Ntermloops{% + \ifx\current@pos\intr@ + \set@part{oloop-4} + \expandafter\set@part{down-\inner@straight} + \xdef\current@pos{extra} + \else + \set@part{iloop-4} + \expandafter\set@part{up-\inner@straight} + \xdef\current@pos{intra} + \fi + \advance\iloopcount by 1 + \ifnum\iloopcount>\num@loops\else\do@Ntermloops\fi +} + +\def\mult@Nterm#1{% + \xdef\hold@pos{\current@pos} + \temp@count=#1 + \advance\temp@count by -\outer@length + \advance\temp@count by -2 + \xdef\inner@loops{\the\temp@count} + \loopcount=\inner@straight + \advance\loopcount by 4 + \divide\temp@count by \loopcount\relax + \xdef\num@loops{\the\temp@count} %%% number of inner loops + \multiply\loopcount by -\num@loops + \temp@count=\inner@loops + \advance\temp@count by \loopcount + \xdef\last@loop{\the\temp@count} + \ifodd\num@loops + \else + \ifx\current@pos\intr@ + \xdef\current@pos{extra} + \else + \xdef\current@pos{intra} + \fi + \fi + \ifnum\last@loop<4 + \ifx\current@pos\intr@ + \ifnum\last@loop<1 + \else + \expandafter\set@part{iNterm-\last@loop} + \fi + \else + \ifnum\last@loop<1 + \else + \expandafter\set@part{oNterm-\last@loop} + \fi + \fi + \else + \loopcount=\last@loop + \advance\loopcount by -3 + \xdef\updown@num{\the\loopcount} + \ifx\current@pos\intr@ + \set@part{iNterm-3} + \expandafter\set@part{up-\updown@num} + \else + \set@part{oNterm-3} + \expandafter\set@part{down-\updown@num} + \fi + \fi + \ifnum\num@loops>0 \iloopcount=1 \do@Ntermloops \fi + \ifx\current@pos\intr@ + \ifnum\last@loop<0 + \set@part{oloop-3} + \else + \set@part{oloop-4} + \fi + \expandafter\set@part{down-\outer@straight} + \xdef\current@pos{extra} + \else + \ifnum\last@loop<0 + \set@part{iloop-3} + \else + \set@part{iloop-4} + \fi + \expandafter\set@part{up-\outer@straight} + \xdef\current@pos{intra} + \fi + \xdef\current@pos{\hold@pos} + \ifx\current@pos\intr@ + \xdef\mem@low{\the\y@max} + \xdef\mem@high{-99999} + \else + \xdef\mem@high{\the\y@min} + \xdef\mem@low{-99999} + \fi +} + +\def\do@Ctermloops{% + \ifx\current@pos\intr@ + \expandafter\set@part{down-\inner@straight} + \set@part{iloop-4} + \xdef\current@pos{extra} + \else + \expandafter\set@part{up-\inner@straight} + \set@part{oloop-4} + \xdef\current@pos{intra} + \fi + \advance\iloopcount by 1 + \ifnum\iloopcount>\num@loops\else\do@Ctermloops\fi +} + +\def\mult@Cterm#1{% + \xdef\hold@pos{\current@pos} + \temp@count=#1 + \advance\temp@count by -\outer@length + \advance\temp@count by -2 + \xdef\inner@loops{\the\temp@count} + \loopcount=\inner@straight + \advance\loopcount by 4 + \divide\temp@count by \loopcount\relax + \xdef\num@loops{\the\temp@count} %%% number of inner loops + \multiply\loopcount by -\num@loops + \temp@count=\inner@loops + \advance\temp@count by \loopcount + \xdef\last@loop{\the\temp@count} + \ifx\current@pos\intr@ + \expandafter\set@part{down-\outer@straight} + \set@part{iloop-4} + \xdef\current@pos{extra} + \else + \expandafter\set@part{up-\outer@straight} + \set@part{oloop-4} + \xdef\current@pos{intra} + \fi + \ifnum\num@loops>0 \iloopcount=1 \do@Ctermloops \fi + \ifnum\last@loop<4 + \ifx\current@pos\intr@ + \ifnum\last@loop<1 + \else + \expandafter\set@part{iCterm-\last@loop} + \fi + \else + \ifnum\last@loop<1 + \else + \expandafter\set@part{oCterm-\last@loop} + \fi + \fi + \else + \loopcount=\last@loop + \advance\loopcount by -3 + \xdef\updown@num{\the\loopcount} + \ifx\current@pos\intr@ + \expandafter\set@part{down-\updown@num} + \set@part{iCterm-3} + \else + \expandafter\set@part{up-\updown@num} + \set@part{oCterm-3} + \fi + \fi + \xdef\Cterm@up{\current@pos} + \xdef\current@pos{\hold@pos} +} + +\def\do@footed@loop#1{% + \xdef\first@{left} + \ifx\foot@direct\first@ + \loopcount=\neck@length\relax + \divide\loopcount by -2\relax + \xdef\first@{\the\loopcount} + \ifx\current@pos\intr@ + \expandafter\set@part{down-\first@} + \advance\y@pos by 1\relax + \else + \expandafter\set@part{up-\first@} + \advance\y@pos by -1\relax + \fi + \advance\x@pos by -4\relax + \loopcount=-3\relax + \innerloopcount=\num@loops\relax + \multiply\innerloopcount by 5\relax + \advance\loopcount by \innerloopcount\relax + \xdef\first@{\the\loopcount} + \expandafter\set@part{leftfoot-\first@} + \advance\x@pos by 2\relax + \ifx\current@pos\intr@ + \advance\y@pos by -3\relax + \else + \advance\y@pos by 3\relax + \fi + \expandafter\mult@loop{\updown@num} + \loopcount=\neck@length\relax + \divide\loopcount by -2\relax + \advance\loopcount by \num@loops\relax + \xdef\first@{\the\loopcount} + \advance\x@pos by -1\relax + \ifx\current@pos\intr@ + \expandafter\set@part{up-\first@} + \else + \expandafter\set@part{down-\first@} + \fi + \else + \xdef\first@{right} + \ifx\foot@direct\first@ + \loopcount=\neck@length\relax + \divide\loopcount by -2\relax + \advance\loopcount by \old@loops\relax + \xdef\first@{\the\loopcount} + \ifx\current@pos\intr@ + \expandafter\set@part{down-\first@} + \else + \expandafter\set@part{up-\first@} + \fi + \advance\x@pos by -1\relax + \expandafter\mult@loop{\updown@num} + \advance\x@pos by -3\relax + \ifx\current@pos\intr@ + \advance\y@pos by -1\relax + \else + \advance\y@pos by 1\relax + \fi + \loopcount=-3\relax + \innerloopcount=\num@loops\relax + \multiply\innerloopcount by 5\relax + \advance\loopcount by \innerloopcount\relax + \xdef\first@{\the\loopcount} + \expandafter\set@part{rightfoot-\first@} + \advance\x@pos by 2\relax + \ifx\current@pos\intr@ + \advance\y@pos by 3\relax + \else + \advance\y@pos by -3\relax + \fi + \loopcount=\neck@length\relax + \divide\loopcount by -2\relax + \xdef\first@{\the\loopcount} + \ifx\current@pos\intr@ + \expandafter\set@part{up-\first@} + \else + \expandafter\set@part{down-\first@} + \fi + \else + \loopcount=\neck@length\relax + \divide\loopcount by -2\relax + \xdef\first@{\the\loopcount} + \ifx\current@pos\intr@ + \expandafter\set@part{down-\first@} + \else + \expandafter\set@part{up-\first@} + \fi + \advance\x@pos by -3\relax + \xdef\first@{0} + \innerloopcount=#1\relax + \advance\innerloopcount by \neck@length\relax + \ifodd\innerloopcount \xdef\first@{1} \fi + \divide\innerloopcount by 2 + \xdef\f@@ting{\the\innerloopcount} + \advance\innerloopcount by \first@\relax + \xdef\first@{\the\innerloopcount} + \expandafter\set@part{leftfoot-\first@} + \advance\x@pos by 1\relax + \ifodd\f@@ting + \ifx\current@pos\intr@ + \advance\y@pos by -2\relax + \else + \advance\y@pos by 2\relax + \fi + \else + \ifx\current@pos\intr@ + \advance\y@pos by -3\relax + \else + \advance\y@pos by 3\relax + \fi + \fi + \expandafter\mult@loop{\updown@num} + \advance\x@pos by -3\relax + \expandafter\set@part{rightfoot-\f@@ting} + \advance\x@pos by 2\relax + \ifx\current@pos\intr@ + \advance\y@pos by 3\relax + \else + \advance\y@pos by -3\relax + \fi + \loopcount=\neck@length\relax + \divide\loopcount by -2\relax + \xdef\first@{\the\loopcount} + \ifx\current@pos\intr@ + \expandafter\set@part{up-\first@} + \else + \expandafter\set@part{down-\first@} + \fi + \fi\fi +} + +\def\l@@p#1{% + \xdef\old@loops{0} + \loopcount=#1 \xdef\res@loop{\the\loopcount} + \ifnum\loopcount<8 + \ifnum\loopcount<3 + \loopcount=\pos@count + \advance\loopcount by -1 + \expandafter\ifx\csname lip@\the\loopcount\endcsname\y@ + \advance\x@pos by -1 + \fi + \fi + \ifx\current@pos\intr@ + \ifx\prev@TM\n@ + \expandafter\set@part{iloop-#1} + \else + \ifnum#1>5 \advance\x@pos by 1 \fi + \expandafter\set@part{iTMloop-#1} + \fi + \else + \ifx\next@TM\n@ + \expandafter\set@part{oloop-#1} + \else + \ifnum#1>5 \advance\x@pos by 1 \fi + \expandafter\set@part{oTMloop-#1} + \fi + \fi + \else + \ifnum\loopcount>\outer@loop + \xdef\updown@num{\the\loopcount} + \ifx\foot@\y@ + \ifanalyze + \else + \expandafter\xdef\csname foot@\the\TM@@count\endcsname{} + \fi + \ifx\foot@direct\center@ + \advance\loopcount by -2\relax + \else + \advance\loopcount by -3\relax + \fi + \advance\loopcount by \neck@length\relax + \xdef\first@{\the\loopcount} + \ifnum\first@>\outer@loop + \loopcount=\outer@loop\relax + \advance\loopcount by -4\relax + \xdef\inner@loop{\the\loopcount} + \loopcount=\outer@length\relax + \advance\loopcount by -2\relax + \xdef\inner@length{\the\loopcount} + \loopcount=\outer@straight\relax + \advance\loopcount by -2\relax + \xdef\inner@straight{\the\loopcount} + \calc@mult@loop + \loopcount=\first@\relax + \innerloopcount=\num@loops\relax + \advance\innerloopcount by -1\relax + \ifx\foot@direct\center@ + \multiply\innerloopcount by -5\relax + \else + \multiply\innerloopcount by -6\relax + \fi + \advance\loopcount by \innerloopcount\relax + \xdef\first@{\the\loopcount} + \calc@mult@loop + \xdef\old@loops{\num@loops} + \loopcount=\first@\relax + \ifx\foot@direct\center@ + \advance\loopcount by 5\relax + \else + \advance\loopcount by 6\relax + \fi + \xdef\first@{\the\loopcount} + \innerloopcount=\num@loops\relax + \advance\innerloopcount by -1\relax + \ifx\foot@direct\center@ + \multiply\innerloopcount by -5\relax + \else + \multiply\innerloopcount by -6\relax + \fi + \calc@mult@loop + \ifx\foot@direct\center@ + \advance\innerloopcount by -2\relax + \else + \advance\innerloopcount by -3\relax + \fi + \advance\innerloopcount by \neck@length\relax + \multiply\innerloopcount by -1 + \ifnum\old@loops<\num@loops + \loopcount=\inner@loop\relax + \advance\loopcount by 4\relax + \xdef\inner@loop{\the\loopcount} + \loopcount=\inner@length\relax + \advance\loopcount by 2\relax + \xdef\inner@length{\the\loopcount} + \loopcount=\inner@straight\relax + \advance\loopcount by 2\relax + \xdef\inner@straight{\the\loopcount} + \fi + \loopcount=\updown@num\relax + \advance\loopcount by -\innerloopcount\relax + \xdef\updown@num{\the\loopcount} + \expandafter\do@footed@loop{\the\innerloopcount} + \xdef\old@loops{0} + \else + \loopcount=\updown@num + \expandafter\mult@loop{\updown@num} + \fi + \else + \loopcount=\updown@num + \expandafter\mult@loop{\updown@num} + \fi + \else + \ifodd\loopcount + \advance\loopcount by -7\relax + \divide\loopcount by 2\relax + \xdef\updown@num{\the\loopcount} + \ifx\current@pos\intr@ + \expandafter\set@part{down-\updown@num} + \ifx\prev@TM\n@ + \expandafter\set@part{iloop-7} + \else + \expandafter\set@part{iTMloop-7} + \fi + \expandafter\set@part{up-\updown@num} + \else + \expandafter\set@part{up-\updown@num} + \ifx\next@TM\n@ + \expandafter\set@part{oloop-7} + \else + \expandafter\set@part{oTMloop-7} + \fi + \expandafter\set@part{down-\updown@num} + \fi + \else + \advance\loopcount by -6\relax + \divide\loopcount by 2\relax + \xdef\updown@num{\the\loopcount} + \ifx\current@pos\intr@ + \expandafter\set@part{down-\updown@num} + \ifx\prev@TM\n@ + \expandafter\set@part{iloop-6} + \else + \expandafter\set@part{iTMloop-6} + \fi + \expandafter\set@part{up-\updown@num} + \else + \expandafter\set@part{up-\updown@num} + \ifx\next@TM\n@ + \expandafter\set@part{oloop-6} + \else + \expandafter\set@part{oTMloop-6} + \fi + \expandafter\set@part{down-\updown@num} + \fi + \fi + \fi + \fi +} + +\def\h@lf#1{% + \loopcount=#1 + \ifnum\loopcount<7 + \ifx\current@pos\intr@ + \expandafter\set@part{ihalf-#1} + \else + \expandafter\set@part{ohalf-#1} + \fi + \else + \temp@count=#1 \divide\temp@count by 2 + \advance\loopcount by 1 \divide\loopcount by 2 + \advance\x@pos by -1 + \ifnum\loopcount=\temp@count + \loopcount=#1 + \advance\loopcount by -6 + \divide\loopcount by 2 + \xdef\updown@num{\the\loopcount} + \ifx\current@pos\intr@ + \expandafter\set@part{up-\updown@num} + \set@part{ihalf-6} + \expandafter\set@part{down-\updown@num} + \else + \expandafter\set@part{down-\updown@num} + \set@part{ohalf-6} + \expandafter\set@part{up-\updown@num} + \fi + \else + \loopcount=#1 + \advance\loopcount by -5 + \divide\loopcount by 2\relax + \xdef\updown@num{\the\loopcount} + \ifx\current@pos\intr@ + \expandafter\set@part{up-\updown@num} + \set@part{ihalf-5} + \expandafter\set@part{down-\updown@num} + \else + \expandafter\set@part{down-\updown@num} + \set@part{ohalf-5} + \expandafter\set@part{up-\updown@num} + \fi + \fi + \advance\x@pos by -1 + \fi +} + +\def\N@term#1{% + \loopcount=#1 + \xdef\mem@low{0} \xdef\mem@high{0} + \ifnum\loopcount<4 + \ifx\current@pos\intr@ + \ifnum\loopcount<1 + \xdef\mem@low{0} + \xdef\mem@high{-99999} + \else + \expandafter\set@part{iNterm-#1} + \xdef\mem@low{\the\y@max} + \xdef\mem@high{-99999} + \fi + \else + \ifnum\loopcount<1 + \xdef\mem@high{0} + \xdef\mem@low{-99999} + \else + \expandafter\set@part{oNterm-#1} + \temp@count=\y@min \advance\temp@count by -5 + \xdef\mem@high{\the\temp@count} + \xdef\mem@low{-99999} + \fi + \fi + \else + \advance\loopcount by -3 + \xdef\updown@num{\the\loopcount} + \ifx\current@pos\intr@ + \set@part{iNterm-3} + \expandafter\set@part{up-\updown@num} + \xdef\mem@low{\the\y@max} + \xdef\mem@high{-99999} + \else + \set@part{oNterm-3} + \expandafter\set@part{down-\updown@num} + \xdef\mem@high{\the\y@min} + \xdef\mem@low{-99999} + \fi + \fi +} + +\def\C@term#1{% + \loopcount=#1 + \ifnum\loopcount<4 + \ifx\current@pos\intr@ + \expandafter\set@part{iCterm-#1} + \xdef\Cterm@up{intra} + \else + \expandafter\set@part{oCterm-#1} + \xdef\Cterm@up{extra} + \fi + \else + \advance\loopcount by -3 + \xdef\updown@num{\the\loopcount} + \ifx\current@pos\intr@ + \expandafter\set@part{down-\updown@num} + \set@part{iCterm-3} + \xdef\Cterm@up{intra} + \else + \expandafter\set@part{up-\updown@num} + \set@part{oCterm-3} + \xdef\Cterm@up{extra} + \fi + \fi +} + +\def\get@@fromstack#1;#2;#3@{% + \xdef\first@{#1} \xdef\second@{#2}\xdef\last@{#3@} +} + +\def\sort@Mstack{% + \expandafter\get@@fromstack\last@ + \ifx\first@\ampers@nd + \xdef\tmpstack{\tmpstack\st@rt;\st@p;&;&;@} + \else + \ifnum\st@rt<\second@ + \xdef\tmpstack{\tmpstack\st@rt;\st@p;\first@;\second@;\last@} + \else + \xdef\tmpstack{\tmpstack\first@;\second@;} + \sort@Mstack + \fi\fi +} + +\def\get@Mregions#1..#2,#3@{% + \xdef\st@rt{#1} \xdef\st@p{#2} \xdef\list@{#3} + \loopcount=\st@p\relax \advance\loopcount by -\st@rt\relax + \ifnum\loopcount>12 \xdef\TM{y} \fi + \ifnum\loopcount>35 + \advance\loopcount by 1 + \PackageError{TeXtopo} + {Transmembrane domain > 36aa (\st@rt..\st@p\space= \the\loopcount)} + {\MessageBreak + The length of the membrane regions must be in the\MessageBreak + range between 14-36 residues for TMs or below 14\MessageBreak + for half loops. \MessageBreak + I have set your range definition to 36 residues\MessageBreak + in order to be able to finish the topology plot.\MessageBreak + Hit to proceed with the new setting or\MessageBreak + Type X 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 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. @{\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 to proceed. \MessageBreak + Type X 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 to proceed. \MessageBreak + Type X 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 to proceed. \MessageBreak + Type X 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 to proceed. \MessageBreak + Type X 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{} + \xdef\angle@{0} + \fi + \ifnum\angle@<-360 + \message{} + \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{ 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 \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 \the\innerloopcount\endcsname{\the\x@offset} + \invtan@{\the\x@pos}{\the\y@pos} + \expandafter\xdef\csname mudelta\the\innerloopcount\endcsname{\the\sincos} + \dimen@=\x@pos\s@ + \@tempdima=0.1\dimen@ + \multiply\dimen@\@tempdima + \dimen@0.65536\dimen@ + \xdef\first@{\expandafter\noPT\the\dimen@ @} + \expandafter\get@numnum\first@ + \x@pos=\first@ + \dimen@=\y@pos\s@ + \@tempdima=0.1\dimen@ + \multiply\dimen@\@tempdima + \dimen@0.65536\dimen@ + \xdef\first@{\expandafter\noPT\the\dimen@ @} + \expandafter\get@numnum\first@ + \y@pos=\first@\relax + \advance\x@pos by \y@pos\relax + \sqrt@{\the\x@pos} + \expandafter\xdef\csname muH\the\innerloopcount\endcsname{\r@@t} + \x@pos=\r@@t + \divide\x@pos by \iloopcount + \expandafter\xdef\csname \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 to quit. \MessageBreak +} + \else + \message{(\alignname)} + \xdef\he@der{no} + \xdef\temp@@@{#1} \xdef\temp@{existing} + \ifx\temp@@@\temp@ + \xdef\temp@@@{1} + \message{} + \fi + \loopcount=0 \innerloopcount=0 + \loop + \read\in@file to \readline + \xdef\test@{\expandafter\string\readline} + \ifx\test@\par@ \innerloopcount=0 + \else + \xdef\msfline{\readline & & & & & & & & &@} + \expandafter\struc@get\msfline + \ifx\first@\n@me \advance\loopcount by 1\relax + \ifnum\loopcount=\temp@@@\relax \xdef\msf@name{\second@} \fi + \fi + \ifx\first@\he@derend + \ifnum\loopcount>0 \xdef\he@der{yes} \fi + \fi + \xdef\temp@{\first@} + \xdef\first@{\first@ @} + \expandafter\check@letter\first@ + \ifletter + \advance\innerloopcount by 1\relax + \ifnum\innerloopcount=\temp@@@\relax \xdef\aln@name{\temp@} \fi + \fi + \fi + \ifeof\in@file \else\repeat + \closein\in@file + \xdef\first@{no} + \ifx\he@der\first@ + \xdef\sequence@name{\aln@name} + \else + \xdef\sequence@name{\msf@name} + \fi + \xdef\sequence@{} + \openin\in@file = #3 \readseq@loop \closein\in@file + \expandafter\sequence{\sequence@} + \fi + \else + \PackageError{TeXtopo} + {Undefined file type demanded} + {\MessageBreak + The type of file you demanded is undefined or you have \MessageBreak + misspelled it. Currently `PHD', `SwissProt' and `alignment'\MessageBreak + are known to TeXtopo.\MessageBreak\MessageBreak + Stop here, otherwise you're likely getting in trouble. \MessageBreak + Type X 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 #1\endcsname} +\def\muH#1{\csname muH#1\endcsname} +\def\muHmean#1{\csname #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{} + \xdef\sym@size{medium} + \fi\fi\fi +} + +\def\helixstyle#1{% + \xdef\first@{#1} + \xdef\second@{perspective} + \ifx\first@\second@ + \@helix@perstrue + \@netfalse + \else + \xdef\second@{net} + \ifx\first@\second@ + \@nettrue + \@helix@persfalse + \else + \xdef\second@{wheel} + \ifx\first@\second@ + \@helix@persfalse + \@netfalse + \else + \message{Undefined \noexpand\helixstyle. Using `perspective'.} + \@helix@perstrue + \@netfalse + \fi + \fi + \fi +} + +\newcommand{\place}[3][1]{% + \insert@true + \loopcount=\insert@num + \advance\loopcount by 1 + \xdef\insert@num{\the\loopcount} + \xdef\first@{#2@} + \expandafter\get@direction\first@ + \expandafter\xdef\csname ins@n\insert@num\endcsname{#1} + \expandafter\xdef\csname ins@x\insert@num\endcsname{\directi@n} + \expandafter\xdef\csname ins@y\insert@num\endcsname{\length@} + \expandafter\xdef\csname ins@z\insert@num\endcsname{#3} +} + +\def\remodel#1#2{% + \loopcount=#1 + \xdef\last@{#2,&@} + \xdef\temp@stack{} + \x@pos=0 \y@pos=0 + \xdef\l@st@element{n} + \expandafter\get@element\last@ + \ifx\m@d@stack@ori\ampers@nd + \else + + \message{temp:\temp@stack||ori:\m@d@stack@ori} + + \xdef\m@d@stack{\m@d@stack@ori,0:0/0,0@} + \expandafter\get@m@d@stack@ori\temp@stack + \xdef\temp@stack{} + \sort@m@d@stack + \fi + \expandafter\get@m@d@stack@ori\temp@stack + + \message{newori:\m@d@stack@ori} + +} + +\def\newelement#1#2{% + \expandafter\ifx\csname #1\endcsname\relax + \else + \PackageError{TeXtopo} + {Element `#1' already defined} + {\MessageBreak + An element with the same name is already defined. \MessageBreak + If you want to overwrite the definitions proceed \MessageBreak + by hitting `Enter', if not quit now by typing `X'.\MessageBreak +} + \fi + \expandafter\xdef\csname #1\endcsname{#2,&@} +} + +\newcommand{\showgrid}[1][5]{\xdef\grid@mesh{#1}} + +\def\hidegrid{\xdef\grid@mesh{0}} + + +%%%%% Redef'ed and extended TeXshade definitions + +\def\allmatchspecial{\all@shadetrue} +\def\allmatchspecialoff{\all@shadefalse} + +\def\showlegend{\legend@true} +\def\hidelegend{\legend@false} +\def\movelegend#1#2{% + \expandafter\ifx\csname TeXshade\endcsname\relax + \else + \setlength\hspace@legend{#1} + \setlength\vspace@legend{#2} + \fi + \setlength\hspace@@legend{#1} + \setlength\vspace@@legend{#2} +} + +\def\numcount{\the\loopcount} +\def\Alphacount{\@Alph\loopcount} +\def\alphacount{\@alph\loopcount} +\def\romancount{\@roman\loopcount} +\def\Romancount{\@Roman\loopcount} + +\def\setfamily#1#2{% + \xdef\second@{#2&} + \ifx\second@\ampers@nd + \else + \xdef\first@{#1} + \xdef\second@{#2} + \xdef\temp@{rm} + \ifx\second@\temp@ + \xdef\third@{\rmdefault} + \else + \xdef\temp@{sf} + \ifx\second@\temp@ + \xdef\third@{\sfdefault} + \else + \xdef\temp@{tt} + \ifx\second@\temp@ + \xdef\third@{\ttdefault} + \else + \xdef\third@{\second@} + \fi\fi\fi + \xdef\temp@{features} + \ifx\first@\temp@ \xdef\featuretext@family{\third@} + \else + \xdef\temp@{featurestyles} + \ifx\first@\temp@ \xdef\featurestyles@family{\third@} + \else + \xdef\temp@{numbering} + \ifx\first@\temp@ \xdef\numbertext@family{\third@} + \else + \xdef\temp@{names} + \ifx\first@\temp@ \xdef\namestext@family{\third@} + \else + \xdef\temp@{residues} + \ifx\first@\temp@ \xdef\residues@family{\third@} + \else + \xdef\temp@{legend} + \ifx\first@\temp@ \xdef\legend@family{\third@} \xdef\l@fam{\third@} + \else + \xdef\temp@{labels} + \ifx\first@\temp@ \xdef\label@family{\third@} + \else + \xdef\temp@{membranelabels} + \ifx\first@\temp@ \xdef\mem@label@family{\third@} + \else + \xdef\temp@{looplabels} + \ifx\first@\temp@ \xdef\looplabel@family{\third@} + \else + \xdef\temp@{TMlabels} + \ifx\first@\temp@ \xdef\TMlabel@family{\third@} + \else + \xdef\temp@{all} + \ifx\first@\temp@ + \xdef\featuretext@family{\third@} + \xdef\featurestyles@family{\third@} + \xdef\numbertext@family{\third@} + \xdef\namestext@family{\third@} + \xdef\residues@family{\third@} + \xdef\legend@family{\third@} \xdef\l@fam{\third@} + \xdef\label@family{\third@} + \xdef\looplabel@family{\third@} + \xdef\TMlabel@family{\third@} + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \fi +} +\def\setseries#1#2{% + \xdef\second@{#2&} + \ifx\second@\ampers@nd + \else + \xdef\first@{#1} + \xdef\second@{#2} + \xdef\temp@{bf} + \ifx\second@\temp@ + \xdef\third@{\bfdefault} + \else + \xdef\temp@{md} + \ifx\second@\temp@ + \xdef\third@{\mddefault} + \else + \xdef\third@{\second@} + \fi\fi + \xdef\temp@{features} + \ifx\first@\temp@ \xdef\featuretext@series{\third@} + \else + \xdef\temp@{featurestyles} + \ifx\first@\temp@ \xdef\featurestyles@series{\third@} + \else + \xdef\temp@{numbering} + \ifx\first@\temp@ \xdef\numbertext@series{\third@} + \else + \xdef\temp@{names} + \ifx\first@\temp@ \xdef\namestext@series{\third@} + \else + \xdef\temp@{residues} + \ifx\first@\temp@ \xdef\residues@series{\third@} + \else + \xdef\temp@{legend} + \ifx\first@\temp@ \xdef\legend@series{\third@} \xdef\l@ser{\third@} + \else + \xdef\temp@{labels} + \ifx\first@\temp@ \xdef\label@series{\third@} + \else + \xdef\temp@{membranelabels} + \ifx\first@\temp@ \xdef\mem@label@series{\third@} + \else + \xdef\temp@{looplabels} + \ifx\first@\temp@ \xdef\looplabel@series{\third@} + \else + \xdef\temp@{TMlabels} + \ifx\first@\temp@ \xdef\TMlabel@series{\third@} + \else + \xdef\temp@{all} + \ifx\first@\temp@ + \xdef\featuretext@series{\third@} + \xdef\featurestyles@series{\third@} + \xdef\numbertext@series{\third@} + \xdef\namestext@series{\third@} + \xdef\residues@series{\third@} + \xdef\legend@series{\third@} \xdef\l@ser{\third@} + \xdef\label@series{\third@} + \xdef\looplabel@series{\third@} + \xdef\TMlabel@series{\third@} + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \fi +} +\def\setshape#1#2{% + \xdef\second@{#2&} + \ifx\second@\ampers@nd + \else + \xdef\first@{#1} + \xdef\second@{#2} + \xdef\temp@{it} + \ifx\second@\temp@ + \xdef\third@{\itdefault} + \else + \xdef\temp@{sl} + \ifx\second@\temp@ + \xdef\third@{\sldefault} + \else + \xdef\temp@{sc} + \ifx\second@\temp@ + \xdef\third@{\scdefault} + \else + \xdef\temp@{up} + \ifx\second@\temp@ + \xdef\third@{\updefault} + \else + \xdef\third@{\second@} + \fi\fi\fi\fi + \xdef\temp@{features} + \ifx\first@\temp@ \xdef\featuretext@shape{\third@} + \else + \xdef\temp@{featurestyles} + \ifx\first@\temp@ \xdef\featurestyles@shape{\third@} + \else + \xdef\temp@{numbering} + \ifx\first@\temp@ \xdef\numbertext@shape{\third@} + \else + \xdef\temp@{names} + \ifx\first@\temp@ \xdef\namestext@shape{\third@} + \else + \xdef\temp@{residues} + \ifx\first@\temp@ \xdef\residues@shape{\third@} + \else + \xdef\temp@{legend} + \ifx\first@\temp@ \xdef\legend@shape{\third@} \xdef\l@shap{\third@} + \else + \xdef\temp@{labels} + \ifx\first@\temp@ \xdef\label@shape{\third@} + \else + \xdef\temp@{membranelabels} + \ifx\first@\temp@ \xdef\mem@label@shape{\third@} + \else + \xdef\temp@{looplabels} + \ifx\first@\temp@ \xdef\looplabel@shape{\third@} + \else + \xdef\temp@{TMlabels} + \ifx\first@\temp@ \xdef\TMlabel@shape{\third@} + \else + \xdef\temp@{all} + \ifx\first@\temp@ + \xdef\featuretext@shape{\third@} + \xdef\featurestyles@shape{\third@} + \xdef\numbertext@shape{\third@} + \xdef\namestext@shape{\third@} + \xdef\residues@shape{\third@} + \xdef\legend@shape{\third@} \xdef\l@shap{\third@} + \xdef\label@shape{\third@} + \xdef\looplabel@shape{\third@} + \xdef\TMlabel@shape{\third@} + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \fi +} +\def\setsize#1#2{% + \xdef\second@{#2&} + \ifx\second@\ampers@nd + \else + \xdef\first@{#1} + \xdef\temp@{features} + \ifx\first@\temp@ + \def\featuretext@size{\csname #2\endcsname} + \else + \xdef\temp@{featurestyles} + \ifx\first@\temp@ + \def\featurestyles@size{\csname #2\endcsname} + \else + \xdef\temp@{numbering} + \ifx\first@\temp@ + \def\numbertext@size{\csname #2\endcsname} + \else + \xdef\temp@{names} + \ifx\first@\temp@ + \def\namestext@size{\csname #2\endcsname} + \else + \xdef\temp@{legend} + \ifx\first@\temp@ + \def\legend@size{\csname #2\endcsname} \xdef\l@size{#2} + \else + \xdef\temp@{labels} + \ifx\first@\temp@ + \def\label@size{\csname #2\endcsname} + \else + \xdef\temp@{membranelabels} + \ifx\first@\temp@ + \def\mem@label@size{\csname #2\endcsname} + \else + \xdef\temp@{looplabels} + \ifx\first@\temp@ + \def\looplabel@size{\csname #2\endcsname} + \else + \xdef\temp@{TMlabels} + \ifx\first@\temp@ + \def\TMlabel@size{\csname #2\endcsname} + \else + \xdef\temp@{residues} + \ifx\first@\temp@ + \def\residues@size{\csname #2\endcsname} + \xdef\res@size{#2} + \else + \xdef\temp@{all} + \ifx\first@\temp@ + \def\featuretext@size{\csname #2\endcsname} + \def\featurestyles@size{\csname #2\endcsname} + \def\numbertext@size{\csname #2\endcsname} + \def\namestext@size{\csname #2\endcsname} + \def\legend@size{\csname #2\endcsname} \def\l@size{#2} + \def\label@size{\csname #2\endcsname} + \def\looplabel@size{\csname #2\endcsname} + \def\TMlabel@size{\csname #2\endcsname} + \def\residues@size{\csname #2\endcsname} + \xdef\res@size{#2} + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \xdef\temp@{Huge} + \ifx\temp@\res@size + \def\bottomruler@size{\csname Large\endcsname} + \else + \xdef\temp@{huge} + \ifx\temp@\res@size + \def\bottomruler@size{\csname large\endcsname} + \else + \xdef\temp@{LARGE} + \ifx\temp@\res@size + \def\bottomruler@size{\csname normalsize\endcsname} + \else + \xdef\temp@{Large} + \ifx\temp@\res@size + \def\bottomruler@size{\csname small\endcsname} + \else + \xdef\temp@{large} + \ifx\temp@\res@size + \def\bottomruler@size{\csname footnotesize\endcsname} + \else + \xdef\temp@{normalsize} + \ifx\temp@\res@size + \def\bottomruler@size{\csname scriptsize\endcsname} + \else + \def\bottomruler@size{\csname tiny\endcsname} + \fi\fi\fi\fi\fi\fi + \fi +} +\def\setfont#1#2#3#4#5{% + \setfamily{#1}{#2}\setseries{#1}{#3} + \setshape{#1}{#4}\setsize{#1}{#5}} + +\def\labelsrm{\setfamily{labels}{rm}} +\def\labelssf{\setfamily{labels}{sf}} +\def\labelstt{\setfamily{labels}{tt}} +\def\labelsmd{\setseries{labels}{md}} +\def\labelsbf{\setseries{labels}{bf}} +\def\labelsup{\setshape {labels}{up}} +\def\labelsit{\setshape {labels}{it}} +\def\labelssl{\setshape {labels}{sl}} +\def\labelssc{\setshape {labels}{sc}} +\def\labelstiny {\setsize{labels}{tiny}} +\def\labelsscriptsize {\setsize{labels}{scriptsize}} +\def\labelsfootnotesize{\setsize{labels}{footnotesize}} +\def\labelssmall {\setsize{labels}{small}} +\def\labelsnormalsize {\setsize{labels}{normalsize}} +\def\labelslarge {\setsize{labels}{large}} +\def\labelsLarge {\setsize{labels}{Large}} +\def\labelsLARGE {\setsize{labels}{LARGE}} +\def\labelshuge {\setsize{labels}{huge}} +\def\labelsHuge {\setsize{labels}{Huge}} + +\def\membranelabelsrm{\setfamily{membranelabels}{rm}} +\def\membranelabelssf{\setfamily{membranelabels}{sf}} +\def\membranelabelstt{\setfamily{membranelabels}{tt}} +\def\membranelabelsmd{\setseries{membranelabels}{md}} +\def\membranelabelsbf{\setseries{membranelabels}{bf}} +\def\membranelabelsup{\setshape {membranelabels}{up}} +\def\membranelabelsit{\setshape {membranelabels}{it}} +\def\membranelabelssl{\setshape {membranelabels}{sl}} +\def\membranelabelssc{\setshape {membranelabels}{sc}} +\def\membranelabelstiny {\setsize{membranelabels}{tiny}} +\def\membranelabelsscriptsize {\setsize{membranelabels}{scriptsize}} +\def\membranelabelsfootnotesize{\setsize{membranelabels}{footnotesize}} +\def\membranelabelssmall {\setsize{membranelabels}{small}} +\def\membranelabelsnormalsize {\setsize{membranelabels}{normalsize}} +\def\membranelabelslarge {\setsize{membranelabels}{large}} +\def\membranelabelsLarge {\setsize{membranelabels}{Large}} +\def\membranelabelsLARGE {\setsize{membranelabels}{LARGE}} +\def\membranelabelshuge {\setsize{membranelabels}{huge}} +\def\membranelabelsHuge {\setsize{membranelabels}{Huge}} + +\def\looplabelsrm{\setfamily{looplabels}{rm}} +\def\looplabelssf{\setfamily{looplabels}{sf}} +\def\looplabelstt{\setfamily{looplabels}{tt}} +\def\looplabelsmd{\setseries{looplabels}{md}} +\def\looplabelsbf{\setseries{looplabels}{bf}} +\def\looplabelsup{\setshape {looplabels}{up}} +\def\looplabelsit{\setshape {looplabels}{it}} +\def\looplabelssl{\setshape {looplabels}{sl}} +\def\looplabelssc{\setshape {looplabels}{sc}} +\def\looplabelstiny {\setsize{looplabels}{tiny}} +\def\looplabelsscriptsize {\setsize{looplabels}{scriptsize}} +\def\looplabelsfootnotesize{\setsize{looplabels}{footnotesize}} +\def\looplabelssmall {\setsize{looplabels}{small}} +\def\looplabelsnormalsize {\setsize{looplabels}{normalsize}} +\def\looplabelslarge {\setsize{looplabels}{large}} +\def\looplabelsLarge {\setsize{looplabels}{Large}} +\def\looplabelsLARGE {\setsize{looplabels}{LARGE}} +\def\looplabelshuge {\setsize{looplabels}{huge}} +\def\looplabelsHuge {\setsize{looplabels}{Huge}} + +\def\TMlabelsrm{\setfamily{TMlabels}{rm}} +\def\TMlabelssf{\setfamily{TMlabels}{sf}} +\def\TMlabelstt{\setfamily{TMlabels}{tt}} +\def\TMlabelsmd{\setseries{TMlabels}{md}} +\def\TMlabelsbf{\setseries{TMlabels}{bf}} +\def\TMlabelsup{\setshape {TMlabels}{up}} +\def\TMlabelsit{\setshape {TMlabels}{it}} +\def\TMlabelssl{\setshape {TMlabels}{sl}} +\def\TMlabelssc{\setshape {TMlabels}{sc}} +\def\TMlabelstiny {\setsize{TMlabels}{tiny}} +\def\TMlabelsscriptsize {\setsize{TMlabels}{scriptsize}} +\def\TMlabelsfootnotesize{\setsize{TMlabels}{footnotesize}} +\def\TMlabelssmall {\setsize{TMlabels}{small}} +\def\TMlabelsnormalsize {\setsize{TMlabels}{normalsize}} +\def\TMlabelslarge {\setsize{TMlabels}{large}} +\def\TMlabelsLarge {\setsize{TMlabels}{Large}} +\def\TMlabelsLARGE {\setsize{TMlabels}{LARGE}} +\def\TMlabelshuge {\setsize{TMlabels}{huge}} +\def\TMlabelsHuge {\setsize{TMlabels}{Huge}} + +\def\standardresidues#1#2#3#4{% + \xdef\symb@lstyle{#1} + \xdef\fr@mecol{#2} + \xdef\symb@lcol{#3} + \xdef\ch@rcol{#4} + \labelstyle{standard}{#1}{#2}{#3}{#4}{standard residues} + \expandafter\xdef\csname sstyle0\endcsname{#1} + \expandafter\xdef\csname fcol0\endcsname{#2} + \expandafter\xdef\csname scol0\endcsname{#3} + \expandafter\xdef\csname ccol0\endcsname{#4} +} + +\def\similarpositions#1#2#3#4{% + \expandafter\xdef\csname sstyle1\endcsname{#1} + \expandafter\xdef\csname fcol1\endcsname{#2} + \expandafter\xdef\csname scol1\endcsname{#3} + \expandafter\xdef\csname ccol1\endcsname{#4} + \loopcount=\shade@num + \advance\loopcount by 1 + \xdef\shade@num{\the\loopcount} + \expandafter\xdef\csname shadename@\shade@num\endcsname{sim@pos} + \expandafter\xdef\csname shadenum@sim@pos\endcsname{\shade@num} + \expandafter\xdef\csname show@shade\shade@num\endcsname{y} + \expandafter\xdef\csname sim@posstyle\endcsname{#1} + \expandafter\xdef\csname sim@posframe\endcsname{#2} + \expandafter\xdef\csname sim@posback\endcsname{#3} + \expandafter\xdef\csname sim@posfont\endcsname{#4} + \expandafter\xdef\csname sim@poslegendtext\endcsname{similar positions} +} +\def\conservedpositions#1#2#3#4{% + \expandafter\xdef\csname sstyle2\endcsname{#1} + \expandafter\xdef\csname fcol2\endcsname{#2} + \expandafter\xdef\csname scol2\endcsname{#3} + \expandafter\xdef\csname ccol2\endcsname{#4} + \loopcount=\shade@num + \advance\loopcount by 1 + \xdef\shade@num{\the\loopcount} + \expandafter\xdef\csname shadename@\shade@num\endcsname{cons@pos} + \expandafter\xdef\csname shadenum@cons@pos\endcsname{\shade@num} + \expandafter\xdef\csname show@shade\shade@num\endcsname{y} + \expandafter\xdef\csname cons@posstyle\endcsname{#1} + \expandafter\xdef\csname cons@posframe\endcsname{#2} + \expandafter\xdef\csname cons@posback\endcsname{#3} + \expandafter\xdef\csname cons@posfont\endcsname{#4} + \expandafter\xdef\csname cons@poslegendtext\endcsname{conserved positions} +} +\def\invariablepositions#1#2#3#4{% + \expandafter\xdef\csname sstyle3\endcsname{#1} + \expandafter\xdef\csname fcol3\endcsname{#2} + \expandafter\xdef\csname scol3\endcsname{#3} + \expandafter\xdef\csname ccol3\endcsname{#4} + \loopcount=\shade@num + \advance\loopcount by 1 + \xdef\shade@num{\the\loopcount} + \expandafter\xdef\csname shadename@\shade@num\endcsname{inv@pos} + \expandafter\xdef\csname shadenum@inv@pos\endcsname{\shade@num} + \expandafter\xdef\csname show@shade\shade@num\endcsname{y} + \expandafter\xdef\csname inv@posstyle\endcsname{#1} + \expandafter\xdef\csname inv@posframe\endcsname{#2} + \expandafter\xdef\csname inv@posback\endcsname{#3} + \expandafter\xdef\csname inv@posfont\endcsname{#4} + \expandafter\xdef\csname inv@poslegendtext\endcsname{invariable positions} +} + +\def\shadingcolors#1{% + \xdef\shade@num{0} + \gapcolors{Black}{White} + \nomatchresidues{Black}{White}{upper}{up} + \standardresidues{circ}{Black}{White}{Black} + \xdef\first@{#1} \xdef\second@{blues} + \ifx\first@\second@ + \xdef\c@l@rscheme{\first@} + \similarresidues{Black}{Magenta}{upper}{up} + \conservedresidues{White}{RoyalBlue}{upper}{up} + \allmatchresidues{Goldenrod}{RoyalPurple}{upper}{up} + \similarpositions{circ}{Black}{Magenta}{Black} + \conservedpositions{circ}{Black}{RoyalBlue}{White} + \invariablepositions{circ}{Black}{RoyalPurple}{Goldenrod} + \else \xdef\second@{greens} + \ifx\first@\second@ + \xdef\c@l@rscheme{\first@} + \similarresidues{Black}{GreenYellow}{upper}{up} + \conservedresidues{White}{PineGreen}{upper}{up} + \allmatchresidues{YellowOrange}{OliveGreen}{upper}{up} + \similarpositions{circ}{Black}{GreenYellow}{Black} + \conservedpositions{circ}{Black}{PineGreen}{White} + \invariablepositions{circ}{Black}{OliveGreen}{YellowOrange} + \else \xdef\second@{reds} + \ifx\first@\second@ + \xdef\c@l@rscheme{\first@} + \similarresidues{Black}{YellowOrange}{upper}{up} + \conservedresidues{White}{BrickRed}{upper}{up} + \allmatchresidues{YellowGreen}{Mahagony}{upper}{up} + \similarpositions{circ}{Black}{YellowOrange}{Black} + \conservedpositions{circ}{Black}{BrickRed}{White} + \invariablepositions{circ}{Black}{Mahagony}{YellowGreen} + \else \xdef\second@{black} + \ifx\first@\second@ + \xdef\c@l@rscheme{\first@} + \similarresidues{Black}{White}{upper}{sl} + \conservedresidues{White}{Black}{upper}{up} + \allmatchresidues{White}{Black}{upper}{sl} + \similarpositions{box}{Black}{White}{Black} + \conservedpositions{diamond}{Black}{White}{Black} + \invariablepositions{circ}{Black}{Black}{White} + \else \xdef\second@{grays} + \ifx\first@\second@ + \else \message{} \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 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 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} % +} +% +% \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} % +% +% \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} +% +% \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} +% +% \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............................. + +% +% \end{macrocode} +% \begin{macrocode} +%<*AQPshd> +\xdef\constopo{20000000000100123221001022001220100000000000000001010 +21222010000000201322303232211101000100010102112301320110102001000000 +00000000000000001001211020021201020120100000000000121010200211100220 +01332300202100002000201210301200210111011100000000000000000000000000 +000000000000} +% +% \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 + +% +% \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 +// +% +% \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 +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") --- +----------------------------------------------------------------------------- +% +% \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 +% +% \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 or stop by typing X . \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 or stop by typing X . \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 or stop by typing X . \MessageBreak +} + \else \RequirePackage{textopo} \fi + \closein\in@file +\fi + +\catcode`\@=12 + +\endinput +% +% \end{macrocode} +% \Finale +\endinput + diff --git a/Master/texmf-dist/source/latex/textopo/textopo.ins b/Master/texmf-dist/source/latex/textopo/textopo.ins new file mode 100644 index 00000000000..4a3d310cf02 --- /dev/null +++ b/Master/texmf-dist/source/latex/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{**************************************************************} -- cgit v1.2.3