% \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