diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:03:17 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:03:17 +0000 |
commit | ecf966f305f6aeff2bbdf42c82d8425921aa9eda (patch) | |
tree | db606a57e3619610e4c35cae849d41cf4e0937d5 /Master/texmf-dist/source/latex/texshade | |
parent | ac3c55a3216b5988f0e48ba9414ddb059f19a699 (diff) |
source 1
git-svn-id: svn://tug.org/texlive/trunk@105 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/texshade')
-rw-r--r-- | Master/texmf-dist/source/latex/texshade/texshade.dtx | 15315 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/texshade/texshade.ins | 72 |
2 files changed, 15387 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/texshade/texshade.dtx b/Master/texmf-dist/source/latex/texshade/texshade.dtx new file mode 100644 index 00000000000..d36d37f4aae --- /dev/null +++ b/Master/texmf-dist/source/latex/texshade/texshade.dtx @@ -0,0 +1,15315 @@ +% \iffalse +% +% texshade.dtx +% Docstrip archive, to extract documentation run twice through +% LaTeX. +% To successfully extract the documentation it is necessary to +% first run the file `texshade.ins' through LaTeX. This produces +% the needed style file `texshade.sty' and the parameter file +% `texshade.def' as well as several example files. See the file +% `texshade.txt' for further information! +% +% +% Copyright (C) 1999-2005 Eric Beitz +% See the file texshade.txt +% +% \fi +% +% \changes{1.0}{1999-5-12}{First release} +% \changes{1.1}{1999-5-26}{% +% Corrections: `emphregion' is not extending to the next +% alignment any more; +% `namecolor' & `numbercolor' are now correctly +% reordered; +% sequence gaps at the beginning or the end are +% now treated correctly, i.e. no symbols are shown. +% Introduction: `seqlength' +% `gapcolors' +% `rulersteps' +% `hideresidues' +% `showresidues' +% `fingerprint'.} +% \changes{1.2}{1999-6-12}{% +% Corrections: functional shading error in funcgroup no. 8. +% Introduction: `includeDSSP' +% `includeSTRIDE' +% `includePHDsec' +% `includePHDtopo' +% `appearance' +% `numcount' +% `alphacount' +% `Alphacount' +% `showonDSSP' +% `hideonDSSP' +% `showonSTRIDE' +% `hideonSTRIDE' +% `showonPHDsec' +% `hideonPHDsec' +% `showonPHDtopo' +% `hideonPHDtopo'.} +% \changes{1.2a}{1999-6-24}{% +% Corrections: `namecolor' & `numbercolor' are now really +% correctly reordered; +% in sequence names ( and ) are now allowed; +% option `case' in `funcshadingstyle' works now.} +% \changes{1.3}{2000-3-3}{% +% Corrections: features in the ttop row do not produce line +% scrambling any more; +% `language' replaced by `germanlanguage' +% and `englishlanguage' due to +% incompatibilities with babel; +% incompatibility with amsmath's text command fixed. +% Introduction: new feature option `translate' +% `codon' +% `geneticcode' +% `backtranslabel' +% `backtranstext' +% `romancount' +% `Romancount' +% TeXtopo compatibility.} +% \changes{1.3a}{2000-7-28}{% +% Introduction: `showleadinggaps' +% `hideleadinggaps' to hide or show gap symbols +% before the actual seq start.} +% \changes{1.3b}{2000-7-30}{% +% Corrections: `showleadinggaps' +% `hideleadinggaps' were extended to `ending' gaps; +% sequence names input routine now accepts special +% characters.} +% +% \changes{1.4}{2000-9-12}{% +% Introduction: `movelegend' allows one to move the legend; +% series of sequence numbers, e.g. in `orderseqs', +% can now be written with a dash, e.g. {1-3,6-4,7} instead +% of {1,2,3,6,5,4,7}.} +% +% \changes{1.4a}{2000-10-3}{Documentation and FAQ additions} +% +% \changes{1.5}{2001-02-22}{% +% Corrections: `X's in the alignment lead to a run-time error; +% Introduction: `ttopspace' +% `topspace' +% `bottomspace' +% `bbottomspace' for controlling vertical space +% between feature lines. +% `showcaption' for adding a caption to the alignment. +% the sequence lengths are now stored in the .aux +% in order to have correct gap breaks after the seqs.} +% +% \changes{1.5a}{2001-03-08}{% +% Corrections: Eckhart Guth\"orlein noticed a sorting problem +% when in addition some sequences where `killed' and +% the consensus was set to a particular sequence. +% This update fixes this problem.} +% +% \changes{1.6}{2002-03-26}{% +% Corrections: There is no restriction to `dvips' anymore. One +% can add an option to the \usepackage{texshade} +% call which is passed to color.sty, e.g. `dvipdf'; +% `noblockskip' led to over-printing of lines; +% `namecolor' and `numbercolor' did not support +% sequence lists - fixed (thanks to Denys Bashtovyy). +% Introduction: The FASTA file format is now supported; +% references to sequences can be made by name in +% addition to number; +% sequences can be refered to by their name in +% addition to their number in the input file +% (suggested by Christoph Gille); +% `flexblockspace' optimizes the space between +% sequence blocks to be minimal (is +% default as before); +% `fixblockspace' leads to an equal separation of +% sequence blocks independent of +% feature lines; +% `firstcolumnDSSP' lets you choose the first numbering +% column in DSSP input files and +% `secondcolumnDSSP' the second column.} +% +% \changes{1.7}{2004-01-05}{% +% Corrections: Several bugs were fixed. +% In gaps the wrong character was plotted in `donotshade' +% mode. Gaps were colored incorrectly when a single +% sequence was set as consensus. (thanks to Jeferson J. +% Arenzon). Another `donotshade' problem was solved +% which led to a halt of the LaTeX run (thanks go to +% Naomi Siew). The gap and match labels in diverse +% mode were switched (`-' in gaps; `.' at matching +% positions) in order to follow convention. +% Introduction: Spanish labels (contributed by Mikel Egana Aranguren); +% New feature label `helix'.} +% +% \changes{1.8}{2004-08-26}{% +% Corrections: Minor bugs were fixed. +% Introduction: Definition of "light" versions of all colors; +% Definition of three color ramps: +% Red-Blue, Green-Red and Cold-Hot; +% New feature labels `bar' and `color'.} +% +% \changes{1.9}{2005-02-08}{% +% Corrections: Fixed TeXtopo incompatibility introduced with v1.8. +% (Thanks to Meike Schmedt) +% Introduction: Implementation of HMMTOP topology prediction. +% `includeHMMTOP' +% `showonHMMTOP' +% `hideonHMMTOP' +% new `appearance' option {HMMTOP} with {internal} +% {external} +% {TM}; +% new arrow look with scalable line thickness; +% new arrow option `ball'; +% `frameblock' colored frame around sequence block; +% `shortcaption' allows one to define short caption +% versions for the List of Figures.} +% +% \changes{1.10}{2005-03-29}{% +% Corrections: Sped up drawing of color scales and bar graphs by +% by more than 10fold! +% (Thanks, Christoph Gille, for asking for it) +% Introduction: Definition of even lighter versions of all colors; +% implementation of a new labeling mode 'tint': +% `tintregion' +% `tintblock' +% `tintdefault'; +% new `feature' option {restriction} for putting a +% triangle label pointing between two residues; +% data files for color scales and bar graphs can +% now contain 'NaN' (not a number) values +% (Also requested by Christoph Gille.)} +% +% \changes{1.11}{2005-04-13}{% +% Corrections: Frames were drawn with the wrong height when +% separation lines were used. Fixed. +% Spacing between bar graph feature line and +% sequence block was wrong after `bargraphstretch'. +% Introduction: Additional optional parameter for feature rule +% thickness; +% additional optional parameters for feature box +% frame color and frame thickness; +% definition of three more color scales: +% {RedBlue}, {RedGreen}, and {HotCold}; +% plotting of amino acid features as bar graphs +% or color scales: +% `hydrophobicity' +% `molweight' +% `charge'; +% plotting of protein sequence conservation as +% bar graph or color scale: +% `conservation'; +% separate command for stretching color scales: +% `colorscalestretch'; +% color scales on consensus sequence according +% to sequence conservation. +% } +% +% \changes{1.12}{2005-09-20}{% +% Corrections: Combination of 'setends' with regional labeling +% using 'shaderegion', 'frameblock', 'emphregion' +% or 'tintregion' produced incorrect output +% (thanks to Chris Page). Fixed. +% Introduction: Optional colors for `showconsensus' foreground +% and background. +% } +% +% +% \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 \~} +% +% +% \newsavebox{\mybox} +% \newenvironment{fmpage}[1][0.975\textwidth]{% +% \begin{lrbox}{\mybox}\begin{minipage}{#1}} +% {\end{minipage}\end{lrbox}\fbox{\usebox{\mybox}}} +% +% \parindent0mm +% +% +% \title{The \TeXshade{} package\footnote{Please cite: Eric Beitz (2000), +% \TeX{}shade: +% shading and labeling multiple sequence alignments using \LaTeXe. +% \textit{Bioinformatics}: \textbf{16}, 135--139.}\\[2mm] \large +% Typesetting \\ nucleotide and peptide alignments} +% \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.12; 2005/09/20\\} +% \maketitle +% \begin{abstract} +% Setting alignments of nucleotides and peptides for publication +% or presentation purposes is usually a time consuming two-step process. +% First, a scientific software is used for the calculation of the +% alignment. This +% is done in a few minutes. Then, in order to highlight special sequence +% relationships and to label positions and regions of interest a +% second software with high quality output capability is needed. +% Manipulating sequence alignments with standard word processing +% or graphics programs takes its time---often several hours---and +% simple layout changes such as +% re-breaking lines, say from 50 to 40 residues per line, +% elongate the working time considerably. +% +% \TeXshade{} is an alignment shading software +% written in \TeX/\LaTeX{} which can process +% multiple sequence alignments in the MSF, ALN +% and FASTA file format. +% It provides in addition to common shading algorithms special +% shading modes featuring functional aspects, e.\,g.\ charge or +% hydropathy, and a plenitude of commands for handling +% shading colors, text styles, labels, legends and even allows +% the user to define completely new shading modes. \TeXshade{} +% combines highest flexibility and the habitual \TeX{} output +% quality---with reasonable time expenditure. +% +% \end{abstract} +% +% \thispagestyle{empty} +% +% \tableofcontents +% \newpage +% +% \section{Package Overview} +% +% \label{over} +% +% After |texshade.ins| is run through \TeX{} the following files +% should appear in the directory: +% +% \begin{tabbing} +% \quad|texshade.sty|\quad\= the style file with all \TeXshade{} +% commands\\ +% \quad|texshade.def|\> an example parameter file with the +% standard \\ +% \> parameter settings\\ +% \quad|AQPDNA.MSF| \> an example nucleotide alignment +% (MSF-format)\\ +% \quad|AQPpro.MSF| \> an example protein alignment +% (MSF-format)\\ +% \quad|AQP2spec.ALN|\> a further protein alignment +% (minimal ALN-file)\\ +% \quad|AQP1.phd|\> secondary structure information +% (PHD-format)\\ +% \quad|AQP1.top|\> topology data extracted +% from |AQP1.phd|\\ +% \quad|AQP1_HMM.sgl|\> topology information (single line, +% HMMTOP-format)\\ +% \quad|AQP1_HMM.ext|\> topology information (extended, +% HMMTOP-format)\\ +% \quad|standard.cod|\> standard genetic code definitions\\ +% \quad|ciliate.cod|\> ciliate macronuclear genetic code\\ +% \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 on the capabilities of +% the \TeXshade{} package. All commands are described in detail +% later on. +% +% +% \subsection{Version History} +% +% \textbf{v1.12 2005/09/20} +% \medskip +% +% \emph{Corrections:} When regional labeling with |\shaderegion|, +% |\emphregion|, |\tintregion|, or |\frameblock| was combined with +% |\setends| incorrect output was produced lacking the +% labeling.\footnote{Discovered by Chris Page.} Other minor fixes. +% +% \emph{Introductions:} An additional optional parameter for setting +% consensus colors was implemented in the |\showconsensus| command +% (p.\pageref{Lshowconsensus}). This even allows one to use color +% scales illustrating sequence conservation in the consensus line. +% \bigskip +% +% \textbf{v1.11 2005/04/13} +% \medskip +% +% \emph{Corrections:} Bounding boxes with |\framebox| had a wrong +% height when |\separationline|s were used. Other minor fixes. +% +% \emph{Introductions:} (a) An additional parameter for setting +% individual bar and arrow thicknesses in feature lines has been +% introduced. (b) Additional parameters for setting the frame color +% and thickness of boxes in feature lines have been implemented. (c) +% Three more color scales have been defined: |RedBlue|, |RedGreen|, +% and |HotCold|. (d) Plotting of amino acid features (|hydrophobicity|, +% |molweight|, |charge|) as bar graphs or color scales. (e) Plotting +% of protein sequence |conservation| as bar graph or color +% scale\footnote{Ahmad Mirza asked for (e) and (f), great suggestion!}. +% (f) Color scales can be used for shading the consensus sequence +% according to protein sequence conservation. +% (g) Separate command for stretching color scales |\colorscalestretch|. +% \bigskip +% +% \textbf{v1.10 2005/03/29} +% \medskip +% +% \emph{Corrections:} Plotting of color scales and bar graphs has +% been sped up by more than a factor of 10.\footnote{This and (d) +% I owe again to Christoph Gille.} +% +% \emph{Introductions:} (a) More colors have been introduced, i.e. +% even lighter versions of the existing PostScript colors +% `LightLight' plus color name and `LightLightLight' plus color +% name. (b) Sequence stretches and blocks can be tinted for +% labeling purposes |\tintreqion|, |\tintblock| and |\tintdefault|. +% (c) A new feature label style |{restriction}| has been introduced. +% (d) Java-typical `NaN' values are now allowed in data files for +% bar graphs and color scales. +% \bigskip +% +% \textbf{v1.9 2005/02/08} +% \medskip +% +% \emph{Corrections:} \TeXshade{} version 1.8 introduced an +% incompatibility with \TeXtopo{}. This problem was identified +% by Meike Schmedt and has been fixed. +% +% \emph{Introductions:} (a) A short version of the figure caption +% can now be defined for display in the list of figures\footnote{% +% Meike, here you go \dots} |\shortcaption{|\meta{text}|}|. (b) A +% colored frame can be drawn around a sequence block for labeling +% purposes with the command |\frameblock|.\footnote{Alan Robinson, +% this is for you.} (c) A new look for feature arrows has been +% implemented with scalable line thickness and a new end style +% `ball'. (d) HMMTOP topology predictions can +% now be included for plotting feature lines with information on +% the location of the transmembrane domains.\footnote{Implemented +% after a request by Steffen Moeller.} +% \bigskip +% +% \textbf{v1.8 2004/08/26} +% \medskip +% +% \emph{Corrections:} Only minor bugs were fixed. +% +% \emph{Introductions:} (a) More colors have been designed, i.e. +% `light' versions of the existing PostScript colors. (b) +% Three color ramps in 5\% steps have been introduced: +% i) Blue-Red, ii) Green-Red and iii) Cold-Hot. +% (c) Two new feature label styles |bar| and |color| have been +% introduced which allow one to display number +% values as bar graphs or color scales along the +% alignment\footnote{Inspired by Christoph Gille's {\tt STRAP}}. +% \bigskip +% +% \newpage +% +% \textbf{v1.7 2004/01/05} +% \medskip +% +% \emph{Corrections:} Several bugs were fixed. +% In gaps the wrong character was plotted in `donotshade' +% mode. Gaps were colored incorrectly when a single +% sequence was set as consensus. Another `donotshade' problem was +% solved which led to a halt of the LaTeX +% run\footnote{Thanks to Jeferson J.\ Arenzon and Naomi Siew}. +% Due to several requests, the gap and match labels in |diverse| +% mode were switched (`|-|' in gaps; `|.|' at matching +% positions) in order to follow convention. +% +% \emph{Introduction:} \TeXshade{} speaks spanish (|\spanishlanguage|). +% Necessary translations were contributed by Mikel Ega\~na Aranguren. +% A new feature label style |helix| has been introduced. +% \bigskip +% +% \textbf{v1.6 2002/03/26} +% \medskip +% +% \emph{Corrections:} 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{texshade}| call +% and is then passed to the |color| package. The `|\namecolor|' and +% `|\numbercolor|' commands do now support sequence +% lists.\footnote{Thanks to Denys Bashtovyy.} +% +% \emph{Introductions:} (a) The FASTA file format is supported by +% \TeXshade{} as alignment inputs. (b) Two commands set the space +% between sequence blocks either to be flexible (as so far) +% `|\flexblockspace|' or the be fixed `|\fixblockspace|'. (c) One +% can now refer to sequences by their name in addition to the number +% in the input file. (d) Using +% `|\firstcolumnDSSP|' and `|\secondcolumnDSSP|' one can choose +% which of the first to columns should refer to the sequence numbering +% (the second column remains default setting)\footnote{c and d were +% suggested by Christoph Gille.}. +% \bigskip +% +% \textbf{v1.5a 2001/03/08} +% \medskip +% +% \emph{Corrections:} `X's in the alignment file caused a run-time +% error. Fixed. +% +% \emph{Introductions:} (a) The vertical space between feature +% lines can be controlled by four new commands: |\ttopspace|, +% |\topspace|, |\bottomspace| and +% |\bbottomspace|\footnote{Suggested by Ulrike Folkers.}. (b) It is +% now easily possible to add a caption to the alignment with +% the |\showcaption| command. (c) \TeXshade{} stores the +% sequence lengths in the |.aux| file in order to have correct +% breaks of the gaps after the sequences. +% \bigskip +% +% \newpage +% +% \textbf{v1.4\&4a 2000/9/12 \& 2000/10/3} +% \medskip +% +% \emph{Introductions:} (a) The alignment legend can now be moved +% by the command `|\movelegend|'. (b) In commands with parameters +% that contain series of sequence numbers, e.\,g. |\orderseqs|, a +% dash can be used, e.\,g. |{1-3,6-4,7}| instead of +% |{1,2,3,6,5,4,7}|. +% \bigskip +% +% \textbf{v1.3a\&b 2000/7/28 \& 2000/7/30} +% \medskip +% +% \emph{Introductions:} (a) It is now possible to force \TeXshade{} to +% display gap symbols before and after the actual sequence +% by the commands `|\showleadinggaps|' and `|\hideleadinggaps|' +% (\ref{Lshowleadinggaps}). +% (b) The sequence names input routine is now more tolerant concerning +% special characters. +% \bigskip +% +% \textbf{v1.3 2000/3/3} +% \medskip +% +% \emph{Corrections:} Line scrambling occured when features where +% set in the |ttop| row without a feature in the |top| row. Fixed. +% The incompatible command `|\language|' with the |babel| package has been +% replaced by `|\germanlanguage|' and `|\englishlanguage|'\footnote% +% {Thanks to Eckhart Guth\"ohrlein.}. +% +% \emph{Introductions:} (a) Now, translations of sequence stretches +% are possible. Either nucleotide or amino acid sources can be +% translated. This is done by the new |{translate}| option for the +% feature command. (b) The codons are defined by the new command +% `|\codon|'. Complete codon sets can be loaded by `|\geneticcode|'. +% (c) Further, the size and style of the nucleotide triplets of +% backtranslations can be set by `|\backtranslabel|' and +% `|\backtranstext|'. (d) Two more feature counter styles were introduced: +% `|\Romancount|' and `|\romancount|'. (e) \TeXshade{} is now +% compatible with \TeXtopo, a new \TeX{} software +% for drawing and shading topology plots of membrane proteins. +% \bigskip +% +% \textbf{v1.2a 1999/6/24 (not released)} +% \medskip +% +% \emph{Minor corrections:} `|\namecolor|' and `|\numbercolor|' are +% now really correctly reordered. Brackets ( and ) are now allowed +% in sequence names. The option |{case}| in `|\funcshadingstyle|' +% works now. +% \bigskip +% +% \textbf{v1.2 1999/6/12} +% \medskip +% +% \emph{Corrections:} (a) Functional group definitions of more than +% seven groups produced an error when displaying group number +% eight. These residues where skipped in the alignment. Fixed. +% +% \emph{Introductions:} (a) Protein secondary structure files in the DSSP, +% STRIDE and PHD format can be included and displayed auto\-matically +% within the alignment by `|\includeDSSP|' (and similar commands for +% STRIDE, PHDsec and PHDtopo, \ref{structure}). +% (b) Which types of secondary structures are to be included or +% skipped in the alignment is chosen by `|\showonDSSP|' and +% `|\hideonDSSP|' (and respective commands for STRIDE, PHDsec and PHDtopo). +% (c) The appearance of the labels is defined by `|\appearance|'. +% (d) Internal counters for repeatedly occuring structure types +% can be activated by `|\numcount|', `|\alphacount|' and +% `|\Alphacount|'. All commands are described in \ref{structure}. +% \bigskip +% +% \textbf{v1.1 1999/5/26} +% \medskip +% +% \emph{Corrections:} (a) The activation of `|emphregion|' lead to +% an em\-pha\-sized following alignment. This has been +% corrected. (b) `|\namecolor|' and `|\numbercolor|' were not +% reordered with the command `|orderseqs|'. Fixed. (c) Sequence +% gaps at the beginning or the end of a sequence, i.\,e. before +% the first and after the last residue where labeled with the +% gap symbol. Now these positions are left blank. +% +% \emph{Introductions:} (a) In order to treat the preceeding and +% sequence following gaps correctly, \TeXshade{} needs to know the +% length of the sequences. Therefore, the command `|\seqlength|' was +% introduced (\ref{seqlines}). (b) With `|\gapcolors|' (also +% \ref{seqlines}) the +% color selection for gap symbols is independent from non conserved +% residues. (c) The divisions of the ruler where so far fixed to +% 10. Now, this value is changeable by `|\rulersteps|' (again +% \ref{seqlines}). (d) `|\hideresidues|' and `|\showresidues|' turn +% off or on the residue names, i.\,e. one can choose between a +% display of shaded boxes only or with letters in the boxes +% (\ref{kill}). (e) The changes (c) through (d) were necessary +% for the introduction of `|\fingerprint|'. This command allows one to +% display the complete sequence in one line for an easy survey of +% the alignment (\ref{fingerprint}). +% \bigskip +% +% \textbf{v1.0 1999/5/12} +% \medskip +% +% First release. +% \bigskip +% +% +% \subsection{\LaTeX{} basics} +% +% \subsubsection{Typesetting documents using \LaTeX} +% +% In order to use any of the macros provided by the +% \BioTeX-project +% (\TeXshade/\TeXtopo) 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 |ftp://ftp.dante.de/pub/tex/documentation/lshort/|, +% in many different languages and formats besides \LaTeX{}, such +% as \textsc{PostScript} and on-line viewable PDF. +% I also put a link from the \BioTeX{} (\TeXshade/\TeXtopo) homepage +% to the document collection +% (|http://homepages.uni-tuebingen.de/beitz/biotex.html|). +% +% +% \subsubsection{Memory shortness when using \TeX{}shade} +% +% If you are using \TeXshade{} to align several large sequences (about 1000 +% residues/sequence), LaTeX will probably stop compiling and quit with one +% of the following messages: +% +% |!\ TeX capacity exceeded, sorry [main memory size=384000]| +% +% or +% +% |!\ TeX capacity exceeded, sorry [stack size=300]|. +% +% \TeX{} allocates space for different kinds of internal variables. +% Setting alignments 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 projects. This manifests +% in \TeX{} error messages about insufficient memory +% 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 the FAQ-list to \TeXshade{} 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 |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 alignments. 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.\ +% |mem_min|, |mem_max|, |buf_size|, |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} +% +% \TeXshade{} requires \LaTeXe{} and |color.sty| for shading. +% David Carlisle's |color.sty| is part of the Standard \LaTeX{} +% `Graphics Bundle' [1]. This package can be downloaded from any +% \TeX{} archive, e.g.\ |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 \TeXshade{} 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. +% \bigskip +% +% \subsection{The \texttt{texshade} environment} +% +% \label{tsenvironment} +% +% The commands provided by the \TeXshade{} package are enabled by +% the following command in the document header section: +% \medskip +% +% \quad |\usepackage[|\meta{option}|]{texshade}| +% +% \medskip +% Make sure that the file `|texshade.sty|' is present in a directory +% searched by \TeX{} (see the installation notes in the file +% `|texshade.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 \TeXshade{} package provides only one single new environment: +% |texshade|. This environment has one mandatory and +% one optional argument, both of them designating file names which +% must be present in a directory searched by \TeX. The +% required file \meta{alignmentfile} contains the aligned nucleotide +% or peptide sequences +% (see section~\ref{alignfilestruc}). This file is needed, because +% \TeXshade{} does no alignment by +% itself, it has to take a preprocessed alignment as input. +% The optional file is a parameter file (section~\ref{paramfilestruc}) +% with definitions for the +% customized calculation of the consensus, special sequence features +% or labels etc. In this parameter file all \TeXshade{} commands +% which are allowed in the |texshade| environment can be used and are +% fully functional. +% Within the environment further \TeXshade{} commands can be given +% to replace or complete settings from the parameter file. +% +% Thus, setting an alignment with \TeXshade{} is as simple as +% this: +% +% \begin{quote} +% |\begin{texshade}[|\meta{parameterfile}|]| +% |{|\meta{alignmentfile}|}| +% +% \quad\emph{further \emph{\TeXshade} commands, if needed} +% +% |\end{texshade}| +% \end{quote} +% +% \subsection{Shading modes predefined in this package} +% +% \subsubsection{Identity mode} +% +% \label{ident} +% +% 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. +% +% \begin{texshade}{AQPpro.MSF} +% \setends{1}{80..112} +% \hideconsensus +% \end{texshade} +% +% If you like, positions where all residues are identical can be +% shaded in a special color and the consensus can be shown with +% or without shading according to the degree of conservation:\label{shadecons} +% +% \begin{texshade}{AQPpro.MSF} +% \allmatchspecial +% \setends{1}{80..112} +% \showconsensus[ColdHot]{bottom} +% \defconsensus{.}{lower}{upper} +% \end{texshade} +% +% \subsubsection{Similarity mode} +% +% \label{similar} +% +% In many cases it is expedient---mostly when comparing protein +% sequences---to shade also residues +% which are not identical but similar to the consensus sequence. +% Consider a position where three out of five residues are basic +% arginines and two more residues are also basic but 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. +% +% In grayscale printouts some colors of the following alignment may appear +% undistinguishable. Don't worry if you usually use grayscale---all +% colors/grays can be selected freely (see \ref{colors}). +% \medskip +% +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[allmatchspecial]{similar} +% \setends{1}{80..112} +% \hideconsensus +% \feature{top}{1}{93..93}{fill:$\downarrow$}{first case (see text)} +% \feature{bottom}{1}{98..98}{fill:$\uparrow$}{second case (see text)} +% \end{texshade} +% +% Probably you know +% this kind of shading from the VMS/Unix and DOS public domain program +% |BoxShade| +% by \textsc{Kay Hofmann} or from the Macintosh version +% |MacBoxShade| by \textsc{Michael D. Barron}. \TeXshade{} +% provides the same functionality---and goes truly beyond---for the +% \TeX{} community. +% +% +% \subsubsection{Diversity mode} +% +% \label{diverse} +% +% Contrary to the above described modes this shading style displays +% sequence differences. Thus, it is most suitable for comparing very +% similar sequences, e.\,g.\ species variants of a protein. +% +% One sequence is used as consensus. +% Matching residues in other sequences are blanked out, +% mismatches are shown in lowercase. +% \medskip +% +% \begin{texshade}{AQP2spec.ALN} +% \seqtype{P} +% \shadingmode{diverse} +% \setends{1}{77..109} +% \featureslarge +% \feature{top}{1}{77..109}{}{AQP2 species variants} +% \namesrm\namesit +% \hidenumbering\showruler{top}{1} +% \shownames{left} +% \nameseq{1}{Bos taurus} +% \nameseq{2}{Canis familiaris} +% \nameseq{3}{Dugong dugong} +% \nameseq{4}{Equus caballus} +% \nameseq{5}{Elephas maximus} +% \frameblock{1}{82..82,106..106}{Red[1pt]} +% \end{texshade}\label{frame} +% +% +% \subsubsection{Functionality modes} +% +% \label{func} +% +% Displaying functional peptide similarities is one of \TeXshade's +% strong capabilities. Six functional shading modes are predefined; +% further user specific modes can easily be created. The examples +% may not look very impressive when printed in grayscale. Enjoy +% them on your screen or use color printouts. As mentioned before, +% all colors can be changed to others or to grays without restrictions +% (see chapter \ref{colors}). +% +% \begin{itemize} +% \item [\textbf{charge}:] residues which are charged at physiological pH +% (7.4) are shaded if their number at a position +% is higher than the threshold \label{charge} +% +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[charge]{functional} +% \setends{1}{138..170} +% \feature{top}{3}{153..165}{bar[-50,50]:-50,-45,-40,-30,-20,-10,0,10,20,30,% +% 40,45,50}{} +% \feature{top}{3}{167..186}{color:5,10,15,20,25,30,35,40,45,50,55,% +% 60,65,70,75,80,85,90,95,100[ColdHot]}{} +% \showlegend +% \end{texshade} +% +% \item [\textbf{hydropathy}:] discrimination between acidic and +% basic, polar uncharged and hydrophobic nonpolar residues +% \label{hydro} +% +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[hydropathy]{functional} +% \feature{top}{1}{158..163}{brace}{tinted} +% \tintblock{1}{158..163} +% \setends{1}{138..170} +% \showlegend +% \end{texshade} +% +% +% \item [\textbf{structure}:] displays the potential +% localization within the tertiary structure of +% the protein \label{struc} +% +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[structure]{functional} +% \setends{1}{138..170} +% \feature{top}{1}{138..157}{box[Blue,Red][0.5pt]: % +% $\alpha$-helix[Yellow]}{transmembrane domain 4} +% \feature{top}{1}{158..163}{translate[Blue]}{} +% \backtranslabel{oblique} +% \feature{bottom}{1}{158..163}{brace[Blue]}{loop D [Blue]} +% \feature{top}{1}{164..170}{o->[Red]}{trans. dom. 5} +% \showlegend +% \end{texshade} +% +% +% \item [\textbf{chemical}:] residues are shaded due to chemical +% properties of +% their functional groups \label{chem} +% +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[chemical]{functional} +% \setends{1}{138..170} +% \showlegend +% \end{texshade} +% +% With |\shadeallresidues| \label{Lshadeallresidues} the +% threshold is ignored and +% all residues are shaded due to their group assignment. +% This is \emph{not} identical to a threshold of 0\% +% where only the majority group would be shaded. See the +% difference: +% +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[chemical]{functional} +% \setends{1}{138..170} +% \shadeallresidues +% \end{texshade} +% +% +% \item [\textbf{standard area}:] this shading displays the +% differences in the surface +% area \label{starea} +% of the different amino acid's sidechains +% +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[standard area]{functional} +% \setends{1}{138..170} +% \showlegend +% \shadeallresidues +% \end{texshade} +% +% \item [\textbf{accessible area}:] \label{accarea} +% 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 +% \textbf{hydropathy} and \textbf{structure}) +% +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[accessible area]{functional} +% \setends{1}{138..170} +% \showlegend +% \feature{top}{1}{138..157,164..170}{helix}{membr.} +% \feature{top}{1}{158..163}{---}{loop} +% \featurerule{1mm} +% \shadeallresidues +% \end{texshade} +% \end{itemize} +% +% +% +% \subsection{Bar graphs and color scales} +% +% \label{graphs} +% +% Amino acid properties, such as hydrophobicity, molecular weight, +% or charge can be shown as bar graphs or color scales along the +% alignment. Further, the degree of protein sequence conservation +% can be indicated. As an example, in the following +% aquaporin alignment plots of residue conservation (bars, top), +% are shown as well as properties of the AQP1 sequence: charge (scale, top), +% molecular weight are shown (scale, bottom), and hydrophobicity (bars, bottom). +% +% +% \begin{texshade}{AQPpro.MSF} +% \setends{1}{138..170} +% \feature{ttop}{1}{138..170}{bar:conservation}{} +% \ttopspace{-\baselineskip} +% \feature{top}{1}{138..170}{color:charge}{} +% \feature{bottom}{1}{138..170}{color:molweight[ColdHot]}{} +% \bbottomspace{-\baselineskip} +% \feature{bbottom}{1}{138..170}{bar:hydrophobicity[Red,Gray10]}{} +% \hideconsensus +% \end{texshade} +% +% +% +% \subsection{Secondary structures} +% +% \label{sec} +% +% Predicted protein secondary structures in the DSSP, STRIDE +% PHD or HMMTOP file format can be included and displayed in the +% alignment. As an example, the following few commands show an +% aquaporin alignment with the PHD topology data for aquaporin +% type 1 (top sequence). +% +% \vbox{% +% \begin{verbatim} +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[allmatchspecial]{similar} +% \includePHDtopo{1}{AQP1.phd} +% \end{texshade} +% \end{verbatim} +% } +% +% Abbr.: \emph{int.} -- internal; \emph{ext.} -- external; \emph{TM} -- +% transmembrane domain +% +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[allmatchspecial]{similar} +% \includePHDtopo{1}{AQP1.phd} +% \end{texshade} +% +% \subsection{Sequence fingerprints} +% +% \label{finger} +% +% To gain a quick overview of sequence similarities or properties +% the |\fingerprint| command has been implemented. It can depict the +% complete sequence in one single line. The residues are presented +% as colored vertical lines. The implementation of this kind of output +% was inspired by the publication of \textsc{Kai-Uwe Fr\"ohlich} [6]. +% \medskip +% +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[allmatchspecial]{similar} +% \shadingcolors{grays} +% \fingerprint{360} +% \showlegend +% \feature{top}{1}{13..36,51..68,94..112,138..156,165..185,211..232}{,-,}{TM} +% \end{texshade} +% +% The higher the similarity the darker the vertical lines. In this +% overview it becomes obvious that the transmembrane regions of the +% aquaporin isoforms are most conserved. +% +% +% \medskip +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[charge]{functional} +% \shadeallresidues +% \fingerprint{360} +% \gapchar{rule} +% \showlegend +% \end{texshade} +% +% A fingerprint of charge distribution on different aquaporins. +% Sequence gaps can be left blank (first example) or drawn as lines +% between the sequence blocks (shown here). +% +% +% +% \subsection{Customization of alignment outputs} +% +% Extensive possibilities are given to the user to customize +% the final output of an alignment. Thus, all parameters defining the +% appearance of letters can be changed individually for sequence +% residues, names and numbering or the describing feature texts. +% Additional manual shading can be applied to any region or +% block of residues. Sequences are easily re-ordered, separated, hidden +% or blanked out without recalculation of the entire alignment; +% sections of the alignment can also be shown. +% Numbering and rulers can be displayed and set to any value. +% A powerful tool is the |\feature| +% command which allows one to label stretches of residues with bars, +% arrows, braces or any fill character and describing text. +% Legends are set automatically if desired, but user commands +% are also provided to build individual legends. +% +% +% \newpage +% \section{Format of alignment input files} +% +% \label{alignfilestruc} +% +% \TeXshade{} can handle two common alignment input formats, i.\,e.\ +% the MSF format (\underline{m}ultiple \underline{s}equence +% \underline{f}ormat) and the ALN format +% (\underline{al}ig\underline{n}ment format). The MSF +% format is used by |PILEUP| of the Unix GCG sequence +% analysis package\footnote{For a description see +% |http://gene.md.huji.ac.il/Computer/GCG9doc|}. Files in the +% ALN format are produced by |CLUSTAL| which is +% available for free for Unix, DOS and Macintosh. Further, upon +% request, the FASTA format is supported since version 1.6. +% In addition to the mentioned software many alignment programs have +% export filters for the MSF, ALN or FASTA +% format, e.\,g.\ |MACAW| produces ALN files. If +% you are not sure whether your favorite sequence aligner +% produces one of the required formats compare its output to +% the following examples. \TeXshade{} determines the format from +% the internal file structure, thus extensions like MSF, ALN +% or FASTA +% are not required. If you can choose the alignment format +% MSF is recommended, because this format gives information +% about the sequence type, i.\,e.\ peptide or nucleotide sequences, +% and length (for the correct setting of gaps at the sequence end). +% +% \subsection{The MSF file format} +% Files of this type are divided into a header section and the +% multiple sequence alignment. The header may contain the +% following components: +% +% +% \begin{itemize} +% \item[\textbf{File Type}:] (optional) The first header line +% reads for nucleic acids alignments +% |!!NA_MULTIPLE_ALIGNMENT 1.0| and for amino acid sequences +% |!!AA_MULTIPLE_ALIGNMENT 1.0| (all uppercase). +% \item[\textbf{Description}:] (optional) Informative text +% describing what is in the file. +% \item[\textbf{Dividing line}:] (required!) Must include the +% following attributes: +% \begin{itemize} +% \item[|MSF|:] Displays the number of bases or residues in +% the multiple sequence alignment. +% \item[|Type|:] Displays the sequence type, `P' for a peptide +% and `N' for a nucleotide alignment. +% \item[|Checksum|:] Displays an integer value that +% characterizes the contents of the file. +% \item[|..|] The two periods act as a divider between the +% descriptive information and the following +% sequence information. +% \end{itemize} +% \item[\textbf{Name/Weight}:] (required!) Must include the name of +% each sequence included in the alignment, as well as its +% length, checksum and weight. +% \item[\textbf{Two slashes} (|//|):] (required!) This separating +% line divides the name/weight information from the +% sequence alignment +% \end{itemize} +% +% The alignment section consists of sequence blocks divided by an +% empty line. Each sequence line starts out with the sequence name. +% An example file is shown here: +% \medskip +% +% \parindent-1mm +% \begin{fmpage} +% \begin{verbatim} +% +% AQP.MSF MSF: 87 Type: P May 1st, 1998 Check: 2586 .. +% Name: AQP1.PRO Len: 66 Check: 1367 Weight: 1.00 +% Name: AQP2.PRO Len: 58 Check: 2176 Weight: 1.00 +% Name: AQP3.PRO Len: 83 Check: 1893 Weight: 1.00 +% Name: AQP4.PRO Len: 63 Check: 3737 Weight: 1.00 +% Name: AQP5.PRO Len: 59 Check: 3413 Weight: 1.00 +% // +% 1 45 +% AQP1.PRO MAS........................EIKKKLFWRAVVAEFLAM +% AQP2.PRO MW.........................ELRSIAFSRAVLAEFLAT +% AQP3.PRO M.........NRCG.....EMLHIRYR......LLRQALAECLGT +% AQP4.PRO MSDGAAARRWGKCGPPCSRESIMVAFKGVWTQAFWKAVTAEFLAM +% AQP5.PRO MK........................KEVCSLAFFKAVFAEFLAT +% +% 45 87 +% AQP1.PRO TLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSIATL +% AQP2.PRO LLFVFFGLGSALQWA...SS....PPSVLQIAVAFGLGIGIL +% AQP3.PRO LILVMFGCGSVAQVVLSRGTHGGF....LTINLAFGFAVTLA +% AQP4.PRO LIFVLLSVGSTINWG...GSENPLPVDMVLISLCFGLSIATM +% AQP5.PRO LIFVFFGLGSALKWP...SA....LPTILQISIAFGLAIGTL +% \end{verbatim} +% \end{fmpage} +% \bigskip +% +% \parindent0mm +% \TeXshade{} extracts only the information from the file it +% really needs. So, do not mind all the checksums listed +% in the file---\TeXshade{} does not either. The same is true +% for |Weight|. Required are the string |MSF:| +% for the identification of the file format and |Type:| for the +% determination of the sequence type (both in the dividing line), +% further all |Name:| definitions and finally |//|. The MSF format +% allows one to comment out sequences. This is done +% by putting an exclamation point directly infront of the respective +% |Name|. These sequences are neither displayed nor used for the +% calculation of the consensus. This works for \TeXshade, too. +% To comment out sequences without changing +% the input file use the \TeXshade{} command +% |\killseq{|\meta{seqref}|}| (\ref{kill}). +% \medskip +% +% \parindent-1mm +% \begin{fmpage}\label{commout} +% \begin{verbatim} +% +% AQP.MSF MSF: 87 Type: P May 1st, 1998 Check: 2586 .. +% Name: AQP1.PRO Len: 66 Check: 1367 Weight: 1.00 +% !Name: AQP2.PRO Len: 58 Check: 2176 Weight: 1.00 +% !Name: AQP3.PRO Len: 83 Check: 1893 Weight: 1.00 +% Name: AQP4.PRO Len: 63 Check: 3737 Weight: 1.00 +% Name: AQP5.PRO Len: 59 Check: 3413 Weight: 1.00 +% // +% 1 45 +% AQP1.PRO MAS........................EIKKKLFWRAVVAEFLAM +% AQP2.PRO MW.........................ELRSIAFSRAVLAEFLAT +% AQP3.PRO M.........NRCG.....EMLHIRYR......LLRQALAECLGT +% AQP4.PRO MSDGAAARRWGKCGPPCSRESIMVAFKGVWTQAFWKAVTAEFLAM +% AQP5.PRO MK........................KEVCSLAFFKAVFAEFLAT +% +% 45 87 +% AQP1.PRO TLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSIATL +% AQP2.PRO LLFVFFGLGSALQWA...SS....PPSVLQIAVAFGLGIGIL +% AQP3.PRO LILVMFGCGSVAQVVLSRGTHGGF....LTINLAFGFAVTLA +% AQP4.PRO LIFVLLSVGSTINWG...GSENPLPVDMVLISLCFGLSIATM +% AQP5.PRO LIFVFFGLGSALKWP...SA....LPTILQISIAFGLAIGTL +% \end{verbatim} +% \end{fmpage} +% \parindent0mm +% \bigskip +% +% The sequence lengths given after |Len:| are not used by +% \TeXshade. Due to the fact that most alignment programms calculate the +% sequence length by summing up residues and additionally gaps which +% is not really correct. In order to have the sequence break right +% after the last residue without printing further gap symbols +% \TeXshade{} counts the number of residues by itself. You can +% also use the command |\seqlength| in the \TeXshade{} +% environment to set the values manually if you do not trust a machine. +% +% \subsection{The ALN file format} +% ALN files are quite similar to the above described MSF files. +% They simply lack a defined header section. Nevertheless, +% describing text is allowed before the alignment part. \TeXshade{} +% determines the number of sequences and their names from the last +% sequence block---so, no further text lines are allowed after this block! +% Due to a lacking declaration in the file the sequence type has +% to be set in the |texshade| environment by |\seqtype{|\meta{type}|}| +% \label{Lseqtype} with `P' for peptide and `N' for nucleotide sequences; +% for the example below: |\seqtype{P}|. If no |\seqtype| command +% is used \TeXshade{} assumes a nucleotide sequence. +% \bigskip +% +% \parindent-1mm +% \begin{fmpage} +% \begin{verbatim} +% +% profalign May 1st, 1998, 16:58 +% +% of AQPpro.MSF{} +% +% Muliple alignment parameter: +% +% Gap Penalty (fixed): 10.00 +% Gap Penalty (varying): .05 +% Gap separation penalty range: 8 +% Percent. identity for delay: 0% +% List of hydrophilic residue: GPSNDQEKRH +% Protein Weight Matrix: blosom +% +% 10 20 30 40 +% . . . . +% AQP1.PRO MAS........................EIKKKLFWRAVVAEFLAM +% AQP2.PRO MW.........................ELRSIAFSRAVLAEFLAT +% AQP3.PRO M.........NRCG.....EMLHIRYR......LLRQALAECLGT +% AQP4.PRO MSDGAAARRWGKCGPPCSRESIMVAFKGVWTQAFWKAVTAEFLAM +% AQP5.PRO MK........................KEVCSLAFFKAVFAEFLAT +% * . ** *. +% +% AQP1.PRO TLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSIATL +% AQP2.PRO LLFVFFGLGSALQWA...SS....PPSVLQIAVAFGLGIGIL +% AQP3.PRO LILVMFGCGSVAQVVLSRGTHGGF....LTINLAFGFAVTLA +% AQP4.PRO LIFVLLSVGSTINWG...GSENPLPVDMVLISLCFGLSIATM +% AQP5.PRO LIFVFFGLGSALKWP...SA....LPTILQISIAFGLAIGTL +% .. * .** . ** . +% \end{verbatim} +% \end{fmpage} +% \bigskip +% +% The minimal contents of an ALN file are shown below; this +% is fully sufficient. Many sequence alignment programs can +% produce such an output. Have a look at |seqpup| by +% \textsc{Don Gilbert} if you need a comprehensive conversion +% program\footnote{Sorry, |seqpup| is much more!}. +% \bigskip +% +% \parindent-1mm +% \begin{fmpage} +% \begin{verbatim} +% +% AQP1.PRO MAS........................EIKKKLFWRAVVAEFLAM +% AQP2.PRO MW.........................ELRSIAFSRAVLAEFLAT +% AQP3.PRO M.........NRCG.....EMLHIRYR......LLRQALAECLGT +% AQP4.PRO MSDGAAARRWGKCGPPCSRESIMVAFKGVWTQAFWKAVTAEFLAM +% AQP5.PRO MK........................KEVCSLAFFKAVFAEFLAT +% +% AQP1.PRO TLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSIATL +% AQP2.PRO LLFVFFGLGSALQWA...SS....PPSVLQIAVAFGLGIGIL +% AQP3.PRO LILVMFGCGSVAQVVLSRGTHGGF....LTINLAFGFAVTLA +% AQP4.PRO LIFVLLSVGSTINWG...GSENPLPVDMVLISLCFGLSIATM +% AQP5.PRO LIFVFFGLGSALKWP...SA....LPTILQISIAFGLAIGTL +% \end{verbatim} +% \end{fmpage} +% \bigskip +% +% \subsection{The FASTA file format} +% In FASTA files each sequence is led +% by a single description line starting with a `|>|'. \TeXshade{} uses +% the first word delimited by the leading `|>|' and a space as +% the sequence name. If no descriptive text is present \TeXshade{} +% generates a sequence name consisting of `|seq|' plus a consecutive +% number. The lines following the description line +% contain the sequence. +% \bigskip +% +% \begin{fmpage} +% \begin{verbatim} +% +% >AQP1.PRO +% MAS........................EIKKKLFWRAVVAEFLAM +% TLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSIATL +% +% >AQP2.PRO +% MW.........................ELRSIAFSRAVLAEFLAT +% LLFVFFGLGSALQWA...SS....PPSVLQIAVAFGLGIGIL +% +% >AQP3.PRO +% M.........NRCG.....EMLHIRYR......LLRQALAECLGT +% LILVMFGCGSVAQVVLSRGTHGGF....LTINLAFGFAVTLA +% +% >AQP4.PRO +% MSDGAAARRWGKCGPPCSRESIMVAFKGVWTQAFWKAVTAEFLAM +% LIFVLLSVGSTINWG...GSENPLPVDMVLISLCFGLSIATM +% +% >AQP5.PRO +% MK........................KEVCSLAFFKAVFAEFLAT +% LIFVFFGLGSALKWP...SA....LPTILQISIAFGLAIGTL +% \end{verbatim} +% \end{fmpage} +% \bigskip +% +% +% \parindent0mm +% \newpage +% \section{Use of a \TeX{}shade 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 \TeXshade{} +% distribution to make them available for all interested users. +% +% No special file format is required for parameter +% files. \TeXshade{} 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 \TeXshade{} called |texshade.def|. This file can be +% changed freely and can be used as a template for the creation of +% personal parameter files. +% +% Five steps are executed by \TeXshade{} when +% processing the |texshade| environment: +% +% \bigskip +% \begin{minipage}{12cm} +% |\begin{texshade}[|\meta{parameterfile}|]{|\meta{alignmentfile}|}| +% +% \begin{enumerate} +% \item Analysis of the \meta{alignmentfile}; determination of +% the number of sequences and sequence names +% +% \item Setting parameters to default +% +% \item Setting parameters to the definitions of the +% \meta{parameterfile}, if existent +% +% \item Execution of further \TeXshade{} commands within the +% evironment, if existent +% +% \parindent-1cm +% \medskip +% |\end{texshade}| +% +% \parindent0cm +% \item Loading and setting the alignment on a line by line basis +% \end{enumerate} +% \end{minipage} +% +% \newpage +% \section{\texttt{texshade} user commands} +% +% The \TeXshade{} package must be loaded by the |\usepackage| +% command in the document header section. +% \medskip +% +% \quad|\usepackage[|\meta{option}|]{texshade}| +% \medskip +% +% Then, the |texshade| environment is 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 \TeXshade{} (except |\molweight|, +% |\charge| [\ref{molcharge}] and |\shadebox| [\ref{Lshadebox}]) must +% be used within the |texshade| environment. +% +% +% +% \subsection{Using predefined shading modes} +% +% \label{predef} +% +% \label{Lshadingmode} +% If no |\shadingmode| command is given in the |texshade| +% environment the default shading mode (\emph{identical}, see +% \ref{ident}) is active. For the selection of one of the other +% predefined shading modes the following command is provided. +% \bigskip +% +% \quad |\shadingmode[|\meta{option}|]{|\meta{mode}|}| +% \bigskip +% +% You can choose from four shading modes and declare one option +% which depends on the selected mode. +% +% \begin{enumerate} +% +% \item |\shadingmode[|\meta{allmatchspecial}|]{identical}| +% +% There is not much to explain here (see \ref{ident}). Use the +% option |allmatchspecial| to shade positions with a special color +% where all residues are identical. +% \label{Lallmatchspecial}|\allmatchspecial| can also be +% used as a command. As both, option or command +% |allmatchspecial| is only active in the \emph{identical} and +% \emph{similar} shading modes. +% +% \label{Lshadingcolors} +% One can choose from five predefined shading color schemes with +% the command +% |\shadingcolors{|\meta{scheme}|}|. The sets are named `blues' +% (used in the example, \ref{ident}), `reds', `greens', +% `grays' and `black'. Default is |\shadingcolors{blues}|. Further, the colors +% for the non matching, the +% conserved and all matching residues can be set individually +% plus the letter case (lower or upper) or any character +% can be chosen: \label{Lnomatchresidues} +% \label{Lconservedresidues} +% \label{Lallmatchresidues} +% \bigskip +% +% |\nomatchresidues{|\meta{res.col.}|}{|\meta{shad.col.}|}{|\meta{case}|}{|\meta{style}|}| +% +% |\conservedresidues{|\meta{res.col.}|}{|\meta{shad.col.}|}{|\meta{case}|}{|\meta{style}|}| +% +% |\allmatchresidues{|\meta{res.col.}|}{|\meta{shad.col.}|}{|\meta{case}|}{|\meta{style}|}| +% \bigskip +% +% For how to handle colors for the foreground \meta{res.col.} and +% the background \meta{shad.col.} see section \ref{colors}. +% The third parameter \meta{case} tells \TeXshade{} to print the +% corresponding residue as a lowercase or an uppercase letter or +% even to print any other character. Finally, the \meta{style} +% parameter tells \TeXshade{} which shape to use for the letters. +% Use one of the following styles +% for \meta{style}. +% +% \begin{center} +% \begin{tabular}{cl} +% \meta{style} & \emph{effect} \\ \hline +% |bf| & bold face series\\ +% |md| & normal series \\ +% |up| & upright shape (normal shape)\\ +% |it| & italics shape \\ +% |sl| & slanted shape \\ +% |rm| & modern roman family \\ +% |sf| & sans serif family \\ +% |tt| & typewriter family \\ +% \end{tabular} +% \end{center} +% \medskip +% +% In order to change only some +% of the parameters it is sufficient to declare these +% and use empty braces for the others. Examples: +% \bigskip +% +% \quad|\conservedresidues{White}{Blue}{upper}{bf}|: the conserved +% residues are printed as bold face white uppercase letters on blue. +% \bigskip +% +% \quad|\nomatchresidues{}{}{{$\bullet$}}{}|: instead of the non +% matching residues a `$\bullet$' is printed. The colors and style +% are not changed. +% Note the double curly braces which make \TeXshade{} +% interpret this complex symbol description as one single +% character. +% \bigskip +% +% +% \item |\shadingmode[|\meta{allmatchspecial}|]{similar}| +% +% \label{Lsimilarresidues} +% See \ref{similar} for an example output and an explanation +% of the shading. In addition to the described commands +% for changing shading colors this shading mode provides +% the command |\similarresidues|. +% Use it in analogy to the commands above. +% +% \label{Lpepsims}\label{Lpepgroups} +% \label{LDNAsims}\label{LDNAgroups} +% How does \TeXshade{} know which residues are +% considered to be similar? These definitions are set by two command +% couples, i.\,e.\ +% |\pepsims|,|\pepgroups| for peptides and +% |\DNAsims|,|\DNAgroups| for nucleotides. With |\pepsims| and +% |\DNAsims| residues are defined which are similar to the +% consensus residue. Examples: +% +% \quad |\pepsims{S}{TA}|\quad If a serine is the consensus +% residue then all threonins and alanines at this +% position are shaded in the color for similars. This +% definition does \emph{not} imply that threonine and +% alanine are similar to each other! This becomes +% obvious when you inspect the next definition: +% +% \quad |\pepsims{T}{S}|\quad Serine but not alanine is declared +% to be similar to threonine. +% +% What happens if there is no consensus residue? How does +% \TeXshade{} decide if a group of similars is greater than +% the threshold? Therefore groups are pre-defined: +% +% \quad |\pepgroups{FYW,ILVM,RK,DE,GA,ST,NQ}| This command allows +% one to set up to nine groups of similars, separated by commas. +% Each residue can belong to only one group. If one residue +% is assigned to several groups only the last assignment is +% carried out. +% +% \quad |\DNAgroups{GAR,CTY}| This command is used in analogy to +% the amino acid groups. Here, two ambiguity codes (`R' for +% pu\underline{r}ine base and `Y' for p\underline{y}rimidine +% base) are assigned in addition. +% +% Residues which do not appear in any of the four commands are +% considered not to belong to a group. The default +% settings for similars are listed below: +% \bigskip +% +% \begin{verbatim} +% \pepgroups{FYW,ILVM,RK,DE,GA,ST,NQ} +% +% \pepsims{F}{YW} % Y and W are similar to F +% \pepsims{Y}{WF} % W and F are similar to Y +% \pepsims{W}{YF} % Y and F are similar to W +% +% \pepsims{I}{LVM} % L, V and M are similar to I +% \pepsims{L}{VMI} % V, M and I are similar to L +% \pepsims{V}{MIL} % M, I and L are similar to V +% +% \pepsims{R}{KH} % K and H are similar to R +% \pepsims{K}{HR} % H and R are similar to K +% \pepsims{H}{RK} % R and K are similar to H +% +% \pepsims{A}{GS} % G and S are similar to A +% \pepsims{G}{A} % A (but not S) is similar to G +% +% \pepsims{S}{TA} % T and A are similar to S +% \pepsims{T}{S} % S (but not A) is similar to T +% +% \pepsims{D}{EN} % E and N (but not Q) are similar to D +% \pepsims{E}{DQ} % D and Q (but not N) are similar to E +% \pepsims{N}{QD} % Q and D (but not E) are similar to N +% \pepsims{Q}{NE} % N and E (but not D) are similar to Q +% +% \DNAgroups{GAR,CTY} +% +% \DNAsims{A}{GR} % G and R are similar to A +% \DNAsims{G}{AR} % A and R are similar to G +% \DNAsims{R}{AG} % A and G are similar to R +% +% \DNAsims{C}{TY} % T and Y are similar to C +% \DNAsims{T}{CY} % C and Y are similar to T +% \DNAsims{Y}{CT} % C and T are similar to Y +% \end{verbatim} +% +% +% \item |\shadingmode[|\meta{seqref}|]{diverse}| +% +% \ref{diverse} depicts an example alignment. Choose the +% number or the name of the sequence \meta{seqref} which will be treated +% as the consensus and to which the other sequences are compared. +% If no \meta{seqref} is declared the first sequence is set as +% consensus (\meta{seqref} = 1). +% +% Standard definitions for |diverse| +% mode are: +% +% \begin{verbatim} +% \nomatchresidues{Black}{White}{lower}{up} +% \similarresidues{Black}{White}{lower}{up} +% \conservedresidues{Black}{White}{{.}}{up} +% \allmatchresidues{Black}{White}{{.}}{up} +% \gapchar{-} +% \end{verbatim} +% +% After calling |\shadingmode{diverse}| these commands can be +% used to redefine the |diverse| mode settings (mind the double +% curly braces around the dot-symbol!). +% +% \item |\shadingmode[|\meta{type}|]{functional}| +% There are six different functional shading modes available for +% peptide sequences; nucleotide sequences can not be shaded due +% to functional aspects. Four of \TeXshade's functional modes +% correspond to the four `alphabets' employed by \textsc{Karlin} +% and \textsc{Ghandour} for peptide alignments [2]. Additional +% `alphabets' to the standard 20-letter array of amino acids +% can highlight peptide similarities which were otherwise not visible. +% For the `alphabet' definitions see below: +% +% \begin{itemize} +% \item \meta{type} = |charge|\quad Acidic (D, E) and basic (H, +% K, R). +% +% \item \meta{type} = |hydropathy|\quad Acidic and basic (as +% above), polar uncharged (C, G, N, Q, S, +% T, Y) and hydrophobic nonpolar (A, F, I, L, M, +% P, V, W), see also \textsc{Kyte} and +% \textsc{Doolittle} [3]. +% +% \item \meta{type} = |structure|\quad External (D, E, H, K, N, Q, R), +% internal (F, I, L, M, V) and ambivalent (A, C, +% G, P, S, T, W, Y). +% +% \item \meta{type} = |chemical|\quad Acidic (D, E), aliphatic +% (A, G, I, L, V), amide (N, Q), aromatic +% (F, W, Y), basic (H, K, R), hydroxyl +% (S, T), imino (P) and sulfur (C, M). +% +% \end{itemize} +% +% The two modes described below highlight sidechain sizes and +% hydrophobicity, respectively, according to \textsc{Rose} +% \emph{et al.}\ [4,5]. Standard area stands for the surface area +% of the residue in \AA$^2$, i.\,e. it is a measure for the size +% of a residue's sidechain. The accessible area value (also in +% \AA$^2$) gives information about the size of the surface area +% which is accessible by solvent molecules within the folded +% protein. A very small area means that the residue is +% strongly buried and is thus very hydrophobic. Hydrophilic +% residues in turn possess large accessible areas due +% to their prefered location at the protein surface. Therefore, +% this kind of shading provides another method, in addition +% to |hydropathy| and |structure|, for the +% visualization of structural protein properties. +% +% \begin{itemize} +% +% \item \meta{type} = |standard area|\quad for the area values +% see legend of the alignment in \ref{starea} +% +% \item \meta{type} = |accessible area|\quad for values see +% \ref{accarea} +% +% \end{itemize} +% +% \label{Lclearfuncgroups} +% If no \meta{type} or an unknown \meta{type} is designated as option +% all functional groups and shading colors are cleared. This is +% also achieved by the command +% |\clearfuncgroups|. With all groups cleared one can start to +% build new shading modes from scratch. How to do this is explained +% in the next section. +% +% \label{Lfuncshadingstyle} +% In order to exchange the colors but to keep the group definitions +% and descriptions the command +% |\funcshadingstyle| can be +% employed. Usage: +% \medskip +% +% \quad|\funcshadingstyle{|\meta{residue}|}{|\meta{res.col.}|}{|\meta{shad.col.}|}| +% +% \hfill|{|\meta{case}|}{|\meta{style}|}| +% \medskip +% +% \meta{residue} is one representative of the whole amino acid group. The +% colors which are declared by the next four parameters are used +% for all residues in this group. \meta{case} and \meta{style} are +% as described for example in |\nomatchresidues|. +% \end{enumerate} +% +% \subsection{Creating new functional shading modes} +% +% The grouping of amino acids due to other properties can make sense as +% suggested by \textsc{Karlin} and \textsc{Ghandour} [2], e.\,g.\ +% physical properties (molecular weight, shape), kinetic properties +% (reaction velocity, Michaelis-Menton constant), or structure +% ($\alpha$-helices, $\beta$-sheets, turns). +% +% \label{Lfuncgroup} +% New amino acid groups are defined with the +% |\funcgroup| command. This command needs six parameters: +% \medskip +% +% \quad|\funcgroup{|\meta{descr}|}{|\meta{residues}|}{|\meta{res.col.}|}{|\meta{shad.col.}|}| +% +% \hfill|{|\meta{case}|}{|\meta{style}|}| +% \medskip +% +% \meta{descr} contains descriptive text which is displayed in the legend. +% The second parameter \meta{residues} holds the amino acids to be +% grouped. The colors for the foreground and background are set +% with the following two parameters, the case and style is declared by the +% last parameters. The example below defines a +% funcional group named `acidic ($-$)' containing the amino acids +% aspartic and glutamic acid with white letters on a red background: +% \bigskip +% +% \quad|\funcgroup{acidic ($-$)}{DE}{White}{Red}{upper}{up}| +% \bigskip +% +% For the usage of colors see section \ref{colors}. Up to nine +% individual groups can be defined. New groups are simply added to the +% already existing groups, i.\,e.\ if an extension of the group +% definitions of an existing shading mode is desired there is +% no need to clear these groups und re-define them again. Just +% add the new groups with the |\funcgroup| command. To create +% completely new modes use the command +% |\shadingmode{functional}| without an option +% \emph{before} setting the new groups. The new definitions are active +% only in the functional shading mode---so be sure to +% have it switched on before setting the new groups. +% Remember, |\shadingmode{functional}| without an optional parameter +% clears all groups defined before, see above. The following example +% shows the definitions needed to produce an output which is identical +% to the functional mode `charge': +% \bigskip +% +% \quad|\begin{texshade}{|\meta{alignmentfile}|}| +% \medskip +% +% \quad\quad |\shadingmode{functional}| +% +% \quad\quad |\funcgroup{acidic ($-$)}{DE}{White}{Red}{upper}{up}| +% +% \quad\quad |\funcgroup{basic ($+$)}{HKR}{White}{Blue}{upper}{up}| +% \medskip +% +% \quad|\end{texshade}| +% +% +% \subsection{Appearance of the consensus line} +% +% \label{Lthreshold} +% An important parameter for the calculation of the consensus is the +% threshold percentage. Default setting is 50\%, i.\,e.\ to become +% the consensus residue more than half of the residues at this +% position must be identical or similar, depending on the shading +% mode. Any percentage between 0 and 100 is allowed and can be +% set with +% |\threshold{|\meta{percentage}|}|, e.\,g.\ |\threshold{50}|. +% +% \label{Lconstosingleseq} +% Another possibility is to set one sequence of the alignment +% as consensus and +% compare the other sequences to this one. Therefore, the +% command +% |\constosingleseq{|\meta{seqref}|}| is provided. The +% \meta{seqref} selects the sequence to be used as consensus +% (numbering according to the appearance in the alignment file; +% top sequence is number~1, or use the sequence name). +% Nevertheless, the threshold percentage is also taken into +% account, i.\,e.\ with a threshold of 50\% half +% of the sequences must be identical or similar compared to the +% specified consensus sequence in order to be shaded. +% \label{Lconstoallseqs} With |\constoallseqs| the +% consensus is calculated considering all sequences (the case +% described in the paragraph above). +% +% \label{Lshowconsensus}\label{Lhideconsensus} +% \label{Lnameconsensus} +% Consensus lines are displayed either on the top or at the bottom +% of the alignment by calling +% \medskip +% +% |\showconsensus[|\meta{color/scale}|[,|\meta{color/scale}|]]{|\meta{position}|}| +% \medskip +% +% with +% \meta{scale} |Gray|, |BlueRed|, |RedBlue|, |GreenRed|, |RedGreen|, +% |ColdHot| (recommended) or |HotCold| and \meta{position} |top| +% or |bottom|. +% +% The first color defines the foreground, i.e. the letters, the +% second color---if specified---defines the background. +% If a color scale is named the consensus will be shaded according +% to the level of sequence conservation. For an example see page +% \pageref{shadecons}. You can find more information on color scales +% on page \pageref{Lgraphs}. +% +% To hide the consensus use +% |\hideconsensus|. The consensus +% line is named `consensus' in english texts, `consenso' in spanish +% or `Konsensus' if the |german.sty| is used. With +% |\nameconsensus{|\meta{name}|}| any name can be set. +% +% \label{Ldefconsensus} +% You can tell \TeXshade{} which symbols or letters to use in +% the consensus line for different matching qualities by +% \bigskip +% +% \quad|\defconsensus{|\meta{symbol1}|}{|\meta{symbol2}|}{|\meta{symbol3}|}|. +% \bigskip +% +% The following parameters are allowed for symobols 1--3: +% +% \begin{enumerate} +% +% \item \meta{symbol1} = no match symbol (if below threshold) +% +% \begin{itemize} +% \item any character or letter +% \item |{}| (empty braces) for blank space +% \end{itemize} +% +% \item \meta{symbol2} = conserved symbol (if threshold is exceeded) +% +% \begin{itemize} +% \item |upper| (prints the consensus residue in uppercase) +% \item |lower| (prints the consensus residue in lowercase) +% \item any character or letter +% \item |{}| (empty braces) for blank space +% \end{itemize} +% +% \item \meta{symbol3} = all match symbol (if all residues match and +% \hfill |\allmatchspecial| is active) +% +% \begin{itemize} +% \item see \meta{symbol2} +% \end{itemize} +% +% \end{enumerate} +% +% Example: |\defconsensus{{}}{*}{upper}| does not show non matching +% residues in the consensus line, marks conserved residues +% with `|*|', and displays the uppercase letter of the consensus +% residue at positions where all residues match. +% +% +% \label{Lconsensuscolors} +% Finally, the colors of the above defined symbols are adjustable +% by the command: +% +% \begin{tabbing} +% \quad|\consensuscolors|\=|{|\meta{res.col.1}|}{|\meta{shad.col.1}|}|\\ +% +% \>|{|\meta{res.col.2}|}{|\meta{shad.col.2}|}|\\ +% +% \>|{|\meta{res.col.3}|}{|\meta{shad.col.3}|}|\\ +% \end{tabbing} +% +% The color definitions are in the same order as in the +% |\defconsensus| command: +% +% \begin{enumerate} +% +% \item \meta{res.col.1} = no match residue color (if below threshold) +% +% \meta{shad.col.1} = no match background color +% +% \item \meta{res.col.2} = conserved residue color (if threshold is exceeded) +% +% \meta{shad.col.2} = conserved background color +% +% \item \meta{res.col.3} = all match residue color (if all residues match and +% \hfill |\allmatchspecial| is active) +% +% \meta{shad.col.3} = all match background color +% +% \end{enumerate} +% +% For colors which are not to be changed empty braces can be used. +% +% Example:\medskip +% +% \quad|\consensuscolors{}{}{Blue}{White}{Red}{Green}| +% \medskip +% +% Non matching symbol colors are not changed, +% conserved residues are displayed blue on white and where all residues +% match red symbols on green ground are displayed in the +% consensus line. +% +% \subsection{Appearance of the sequence lines} +% +% \label{seqlines} +% +% \subsubsection{Names, numbers and gaps} +% \label{Lshownames}\label{Lshownumbering} +% Many parameters that influence the appearance of the actual sequence +% lines can be changed for customization. +% Thus, the sequence names and +% numbering can be shown and placed either left or right by +% \medskip +% +% \quad|\shownames{|\meta{position}|}| +% \medskip +% +% \quad|\shownumbering{|\meta{position}|}| +% \medskip +% +% with \meta{position} set to |left| or |right|. Both, names and +% numbering can be displayed on the same side. +% +% \label{Lnameseq} +% \TeXshade{} uses the sequence names from the +% alignment input file. This can cause some +% problems during the \TeX-run when special characters are present +% in those names! \TeXshade{} does not accept the following characters +% in sequence names: |\ { } @| spaces and the tilde. Those have to be replaced in +% the input file. The characters |#| and |%| can only be used with a +% leading backslash, e.\,g. |\#|. This must also be changed in the +% input file. All other special characters should be displayed +% properly. +% +% Sequence names that are accepted by \TeXshade{} can further be +% changed in the |texshade| environment: +% \medskip +% +% \quad|\nameseq{|\meta{seqref}|}{|\meta{name}|}| +% \medskip +% +% \meta{seqref} selects the sequence whose name is to be changed. +% The basis for the \meta{seqref} is the appearance in +% the alignment input file with the top sequence = 1, or the old +% name. +% \label{Lnamescolor}\label{Lnumberingcolor} +% The colors are set by |\namescolor{|\meta{color}|}| and +% |\numberingcolor{|\meta{color}|}|, respectively. +% \label{Lnamecolor}\label{Lnumbercolor} +% In order to change the colors only of some sequence names or numbers +% the commands +% |\namecolor{|\meta{seq1}|, ... ,|\meta{seq n}|}{|\meta{color}|}| and +% |\numbercolor{|\meta{seq1}|, ... ,|\meta{seq n}|}{|\meta{color}|}| +% are provided. +% +% \label{Lhidenames}\label{Lhidename} +% \label{Lhidenumbering}\label{Lhidenumber} +% In order to hide all names or the numbering use the command +% |\hidenames| or |\hidenumbering|. If only the names or numbers of +% some sequences should be hidden apply +% +% |\hidename{|\meta{seq1}|, ... ,|\meta{seq n}|}| or +% +% |\hidenumber{|\meta{seq1}|, ... ,|\meta{seq n}|}|, respectively. +% +% \label{Lstartnumber} +% In some situations, e.\,g.\ when only sections of sequences are +% displayed, one +% may not want to have the residue numbering start out with number~1. +% The command +% |\startnumber{|\meta{seqref}|}{|\meta{first residue number}|}| +% allows one to set the starting number of any sequence to any value +% incl.\ negative values but except `0' which is not used in +% sequence numbering (the transition from negative to positive +% values is like this: \ldots\ $-2$, $-1$, 1, 2 \ldots). +% +% \label{Lseqlength} +% \TeXshade{} needs to know the correct length of the sequences +% to be able to break them right after the last residue. If +% MSF files are used as an input the length is already given +% but the calculation is usually wrong because the gaps are +% also counted. Thus, \TeXshade{} counts the number of residues +% during each run by itself and stores the values in the |.aux| file. That +% means that it needs two runs to get the numbers right. Again, +% this is only important if the gap symbol after the sequence end +% should be suppressed, see below (|\hideleadinggaps|). +% +% If you know the correct length of the sequences you can use the +% command +% \medskip +% +% \quad|\seqlength{|\meta{seqref}|}{|\meta{length}|}| +% \medskip +% +% in order to set the values by hand and have the gaps break +% properly already in the first \TeX{} run. +% \medskip +% +% Example: |\seqlength{1}{346}| means that sequence no.~1 is 346 +% residues long. +% +% +% \label{Lsetends} +% \TeXshade{} can display a section of the complete alignment +% without the need to edit the alignment input file or even +% to re-calculate +% the entire alignment. This allows one to use one single +% alignment of the full length proteins or open reading frames for +% multiple visualizations of different sections in a document as +% done in this manual. Thus, the file |AQPpro.MSF| contains +% the full-length multiple protein alignment of five aquaporins but +% only sections are displayed as examples in +% \ref{ident} through \ref{accarea}. The definition of a section +% is done by +% \medskip +% +% \quad|\setends{|\meta{seqref}|}{|\meta{startnumber}|..|\meta{stopnumber}|}|. +% \medskip +% +% Again, \meta{seqref} is the sequence number based on the +% appearance in the alignment file, or the name; further, in order to use +% the consensus as a measure for the sequence section the +% string `|consensus|' as \meta{seqref} is accepted. The +% specified sequence is truncated at +% positions \meta{startnumber} and \meta{stopnumber}. All other +% sequences are cut accordingly. If the number of the first +% residue in the sequence is set to a new value with the +% |\startnumber| command (s.\,a.) this is taken into account. Some examples: +% \medskip +% +% \quad a) |\setends{1}{20..100}| +% \medskip +% +% \quad b) |\startnumber{1}{15} \setends{1}{35..115}| +% \medskip +% +% Both commands select the same section from the alignment but the +% numbering for sequence 1 starts at position~20 in the first example and at +% position~35 in the latter. +% \medskip +% +% \quad c) |\setends{consensus}{20..100}| +% \medskip +% +% This may describe a completely different section of the multiple +% sequence alignment. +% +% \label{Lshowruler}\label{Lhideruler} +% \label{Lrulersteps}\label{Lrulercolor} +% Another possibility to label sequence positions is to switch +% on a ruler on the top or at the bottom of the sequence block +% using \label{ruler} +% |\showruler{|\meta{position}|}{|\meta{seqref}|}|. +% The residue ruler of one sequence \meta{seqref} or the consensus +% (declare `|consensus|' as \meta{seqref}) can be +% displayed at \meta{position} |top| or |bottom|. +% The ruler is hidden with |\hideruler|. The steps between two +% numbers are set by |\rulersteps{|\meta{number}|}|. In order to change the +% color which is used for the ruler write +% |\rulercolor{|\meta{color}|}|. +% +% \label{Lgapchar}\label{Lgaprule} +% \label{Lgapcolors}\label{gapchar} +% Further, the symbol which is displayed in sequence gaps is freely +% selectable with +% |\gapchar{|\meta{symbol}|}|. \meta{symbol} can be any character +% or symbol. If math symbols are to be used math mode must be +% activated by |$| characters, i.\,e. |\gapchar{{$\triangle$}}|. +% Note the double curly braces in the last command. Everytime a +% `complex' character is used, i.\,e. a character definition consisting +% of more than one letter, it must be braced in order to be interpreted as one +% character. One exception is |\gapchar{rule}|; with this +% parameter lines are drawn in the sequence gaps with a certain +% thickness defined by |\gaprule{|\meta{thickness}|}|, e.\,g. +% |\gaprule{1.5pt}|. The colors of the gaps and gap symbols are set by +% |\gapcolors{|\meta{symbol color}|}{|\meta{background color}|}|. +% +% There are some discussions whether or not to display gap symbols before +% and after the actual sequence. Since v1.3a one can control the +% appearance of those gap symbols by the commands +% \label{Lshowleadinggaps} \label{Lhideleadinggaps} +% |\showleadinggaps| and |\hideleadinggaps|. By default, leading +% gaps are indicated by symbols despite my personal +% thinking that it could suggest that +% there are some not displayed residues upstream resp.\ downstream of the +% gap. +% +% +% +% \subsubsection{Hiding, killing, separating and ordering} +% +% \label{kill} +% +% \label{Lhideseq}\label{Lkillseq} +% If one or more sequences from the alignment input file should be used for +% the calculation of the consensus but it is desired not to +% display these sequences in the final output use the command +% |\hideseq{|\meta{seq1}|,|\meta{seq2}|,|\ldots|,|\meta{seq n}|}|. +% For consecutive sequence numbers a dash can be used, e.\,g. +% |\hideseq{1-3}| instead of |\hideseq{1,2,3}|. Decending series +% are also permitted, e.\,g. |\hideseq{3-1}|. +% This command allows one for example to hide +% the sequence which has been defined as the consensus sequence +% with |\constosingleseq|. In order to completely exclude +% sequences the command +% |\killseq{|\meta{seq1}|,|\meta{seq2}|,|\ldots|,|\meta{seq n}|}| is +% provided. Again, for number series the dash can be used (s.\,a.). The +% designated sequences are neither displayed nor +% considered for the calculation of the consensus. This is +% another possibility to comment out sequences in addition +% to the use of an exclamation point infront of the |Name:| +% definition in an MSF-file (see figure on page \pageref{commout}). +% +% \label{Ldonotshade} +% The command +% |\donotshade{|\meta{seq1}|,|\meta{seq2}\ldots|,|\meta{seq n}|}| +% makes +% one or more sequences (remember the dash, s.\,a.) appear unshaded +% in black letters on white background. +% This does not influence any other sequences or the consensus +% calculation. +% +% \label{Lhideresidues}\label{Lshowresidues} +% If a very graphical output of the sequences is desired, the +% residue symbols or letters can be blanked out by +% |\hideresidues|. Now, only the shaded boxes are printed. +% In combination with |\gapchar{rule}| one obtains alignments +% in a style \`a la Mondrian. +% The residues reappear with |\showresidues|. +% +% \label{Lseparationline}\label{Lsmallsep} +% \label{Lmedsep}\label{Lbigsep} +% \label{Lvsepspace} +% If an alignment contains members of several subgroups of a +% protein or a gene family it may be rather helpful to visualize the group +% divisions by a separation line. Therefore, the command +% |\separationline{|\meta{seqref}|}| is applicable. This +% command inserts vertical space after the sequence which is +% refered to by \meta{seqref}. How much space is inserted +% is defined by one of the following commands: +% |\smallsep|, |\medsep| (default) or |\bigsep|. These lengths +% correspond to the known |\small|-, |\med|- and |\bigskip| commands. +% With |\vsepspace{|\meta{length}|}| any length with any +% \TeX{} unit can be assigned, e.\,g. |\vsepspace{2mm}|. +% +% \label{Lorderseqs} +% The sequence order given by the alignment input file is easily +% reorganized by +% |\orderseqs{|\meta{seq1}|,|\meta{seq2}|,|\ldots|,|\meta{seq n}|}| +% without the need for editing the alignment input file (which +% would be a big copy'n'paste job). +% Make sure that all sequences are assigned in this +% command. If there are more sequences present than numbers or names in the +% command an error message will occur. Here also, the dash can be +% used for sequence number series. Example: |\orderseqs{1-3,6-4,7}| +% is equivalent to |\orderseqs{1,2,3,6,5,4,7}|. +% Reordering of sequences only changes the output; all commands using +% the parameter \meta{seqref} are not influenced, because \meta{seqref} +% always corresponds to the appearance in the alignment file. Thus, +% to completely reverse the order of a five sequence alignment simply type +% |\orderseqs{5-1}|. +% +% +% \subsubsection{Residues per line and further settings} +% +% \label{Lresiduesperline}\label{Lresiduesperline*} +% By default \TeXshade{} puts the highest possible by five +% divisible number of residues in one line depending on the +% |\textwidth|. With |\residuesperline{|\meta{number}|}| a new +% value can be set. If this value exceeds the highest possible +% number of residues per line it is ignored; lower values are +% accepted of course. But also in the latter case the number +% of residues printed per line is rounded such to be divisible by five. +% To force \TeXshade{} +% to set lines with exactly the desired number of residues use +% the asterisk-extended command |\residuesperline*{|\meta{number}|}|. +% Expect multiple +% \emph{overfull hbox} errors after this command, because in this +% mode \TeXshade{} does not check the length of the lines any +% more. +% +% \label{Lcharstretch}\label{Llinestretch} +% \TeXshade{} calculates the dimensions of a shaded box from +% the width and height of the uppercase letter `M' and the depth of +% the lowercase `g'. Depending on the font used for the +% sequence residues the box dimensions might not be fully +% satisfactory. With |\charstretch{|\meta{factor}|}| and +% |\linestretch{|\meta{factor}|}| the width and height/depth, +% respectively, of the boxes can be multiplied individually by a +% \meta{factor} to stretch ($>1$) or shrink ($<1$) the dimensions. +% +% \label{Lnumberingwidth} +% The reserved space for the sequence numbering is set by the +% command |\numberingwidth{|\meta{n digits}|}|. Here, the default setting +% is four-digit numbering, i.\,e.\ $-999$ through 9999. If this range +% is to be changed assign the desired number as parameter +% \meta{n digits}, e.\,g.\ |\numberingwidth{111111}| reserves +% space for 6 digit numbering. +% +% The vertical space between the sequence blocks can be controlled +% by the commands |\smallblockskip|, |\medblockskip| (default +% setting), +% \label{Lsmallblockskip}\label{Lmedblockskip} +% \label{Lbigblockskip}\label{Lnoblockskip} +% \label{Lvblockspace} +% |\bigblockskip| or |\noblockskip|. Further, the command +% |\vblockspace{|\meta{length}|}| allows one to set a defined space +% length using any \TeX{} unit, e.\,g.\ |\vblockspace{0.4in}|. +% +% Two more commands set the space between the sequence blocks to be +% \label{Lflexblockspace}\label{Lfixblockspace} +% flexible (|\flexblockspace|) (default) or fixed (|\fixblockspace|). +% Flexible means, that only the vertical white space between the +% blocks is kept to the settings by +% e.\,g. |\medblockskip|. This results in flexible space between +% the actual blocks depending on the presence of feature lines. When +% switching to fixed space the distance of the blocks is kept constant +% by using more white space between blocks without feature lines. +% Thus, a difference between flexible and fixed space will only be +% noticeable when features are used. +% +% \label{Lalignment} +% The position of the output can be aligned left, right +% or centered on the page by |\alignment{|\meta{position}|}| +% with the \meta{position} parameter |left|, |center| or +% |right|. +% +% +% +% \subsubsection{Fingerprinting} +% +% \label{fingerprint} +% +% \label{Lfingerprint} +% An easy way to gain an overview on complete alignments is +% provided by displaying a so called alignment `fingerprint'. +% In this style the whole sequence can be shown in one line. Due to +% the lacking space the residue names are hidden and the shaded +% boxes are reduced to thin vertical colored lines. The command +% |\fingerprint{|\meta{res. per line}|}| takes one argument stating +% the desired number of residues per line, e.\,g. |\fingerprint{1000}|. +% All \TeXshade{} commands are compatible with |\fingerprint|, +% i.\,e. all shading modes are applicable for displaying overviews +% on similarity or every functional aspect. Also, all kinds of +% labeling---as described in the following---work with this +% command. +% +% +% \subsection{Individual shading and labeling of sequence stretches} +% +% Computer calculated alignment shading is informative---but +% even more information can be visualized by manual labeling +% of positions and regions of interest with different colors, +% text styles or graphical marks and descriptive text. All this +% is provided by easy to handle \TeXshade{} commands. +% +% +% \subsubsection{Manual shading of regions and blocks} +% \label{shaderegion} +% +% \label{Lshaderegion} +% Besides the shading calculated by \TeXshade{} any region can be +% shaded manually with a color specified by the user. This is very +% useful to highlight secondary protein modification +% sites such as phosphorylation or glycosylation sites or longer +% motifs for example protein/protein interaction sites. +% This is done by the use of the following command: +% \medskip +% +% \quad|\shaderegion{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}{|\meta{res.col.}|}{|\meta{shad.col.}|}| +% \medskip +% +% Example: in order to shade residue number 13 and the region +% 20--30 of sequence number 1 in red letters on green ground +% type the following command: +% \medskip +% +% \quad|\shaderegion{1}{13..13,20..30}{Red}{Green}| +% \medskip +% +% If the consensus is to be shaded use |consensus| as +% \meta{seqref}. +% +% \label{Lshadeblock} +% In analogy to |\shaderegion| which is restricted to one single +% sequence |\shadeblock| shades the corresponding region in all +% other sequences as well +% except the consensus. If also the consensus is to be shaded +% define the region using |consensus| as \meta{seqref}. +% \medskip +% +% \quad|\shadeblock{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}{|\meta{res.col.}|}{|\meta{shad.col.}|}| +% \medskip +% +% +% \subsubsection{Emphasizing and tinting regions and blocks} +% +% \label{Lemphregion}\label{Lemphblock} +% If it is prefered to keep the calculated shading colors +% but distinct regions or blocks are yet to be emphasized one +% can use the following commands to change the font style of +% such regions: +% \medskip +% +% \quad|\emphregion{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}| +% \medskip +% +% and +% \medskip +% +% \quad|\emphblock{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}| +% \medskip +% +% \label{Lemphdefault} +% Which style \TeXshade{} uses for emphasizing regions is defined by +% |\emphdefault{|\meta{style}|}|. Default setting is the +% \emph{italics} font shape (set by |\emphdefault{it}|). In order to change +% this setting choose one of the styles |bf, md, up, it, sl, rm, sf, tt|. +% +% Example: |\emphdefault{bf}| +% \medskip +% +% \label{Ltintregion}\label{Ltintblock} +% Further, it is possible to tint the region or block in question +% by using the commands (for example see hydropathy-figure on page +% \pageref{hydro}): +% \medskip +% +% \quad|\tintregion{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}| +% \medskip +% +% and +% \medskip +% +% \quad|\tintblock{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}| +% \medskip +% +% \label{Ltintdefault} +% The level of tinting in the region in question can be set by +% |\tintdefault{|\meta{level}|}| with |weak|, |normal|, and +% |strong| as possible \meta{level}s. +% +% Another option is to draw a bounding box around the sequence block +% in question (for an example see diversity mode-figure on page +% \pageref{frame}) with the +% command:\footnote{Thanks to Alan Robinson for inspiration.} +% \medskip\label{Lframeblock} +% +% \quad|\frameblock{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}{|\meta{color}|[|\meta{length}|]}| +% \medskip +% +% With the optional parameter the default line thickness of the frame can +% be changed, example: |\frameblock{1}{10..20,50..70}{Red[2pt]}| +% +% \subsubsection{Graphical labeling of sequence features} +% +% \label{feature} +% +% \label{Lfeature} +% The |\feature| command is designed to fulfill most needs for the +% graphical labeling of sequence stretches and the setting of descriptive +% text. It needs five parameters: +% \medskip +% +% \quad|\feature{|\meta{position}|}{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,| +% +% \quad\quad\meta{start2}..\meta{stop2}|,|\ldots|,|\meta{start n}..\meta{stop n}|}{|\meta{labelstyle}|}{|\meta{text}|}| +% \medskip +% +% In the following paragraphs all possible parameter settings of +% this rather complex but mighty command are discussed in detail. +% The parameter \meta{position} tells \TeXshade{} where to display +% the feature label, i.\,e. on the top of the alignment (|top|), +% or at the bottom (|bottom|). Further, there can be a feature line +% ontop of the top feature line (|ttop|) or below the bottom +% feature line (|bbottom|). Thus, up to four features +% overlapping in four different lines may be displayed. +% Depending on the content of the feature lines the gaps between +% them might be not satisfactory. +% \label{Ltopspace}\label{Lttopspace} +% \label{Lbottomspace}\label{Lbbottomspace} +% Therefore, four separate commands can be employed to change the +% space between |ttop| and |top| +% (|\ttopspace{|\meta{length}|}|), between |top| and the alignment +% (|\topspace{|\meta{length}|}|), between the alignment and +% |bottom| (|\bottomspace{|\meta{length}|}|) and between |bottom| +% and |bbottom| (|\bbottomspace{|\meta{length}|}|). Use positive +% values to further separate the lines, e.\,g. +% |\ttopspace{3mm}| or negative values to reduce the space, e.\,g. +% |\bottomspace{-0.1in}|. +% +% The argument \meta{seqref} and the third +% parameter containing the definitions of the specified regions +% are identical to the ones described before in several commands, e.\,g. +% |\ruler| (\ref{ruler}) or |\shaderegion| (\ref{shaderegion}). +% +% New is the fourth parameter for the definition of the label style. +% There are many possibilities like braces, helices, boxes, arrows, bars, any +% fill character, bar graphs, color scales or even translations of the +% specified regions. +% \medskip +% +% \textbf{Braces:}\\ +% In order to display an over- or underbrace as +% a label use the parameter |{brace}|. Depending on the +% \meta{position} (|ttop|, |top|, |bottom| or |bbottom|) the respective brace is +% displayed. The standard color of braces is +% black. It can be changed by an optional parameter directly after +% the definition of the symbol, e.\,g. |{brace[Red]}|. +% \medskip +% +% \textbf{Protein $\alpha$-Helices:}\\ +% The parameter |{helix}| will plot a symbolized $\alpha$-helix +% as a label. The standard color of the helix spiral is +% black. It can be changed by an optional parameter directly after +% the definition of the symbol, e.\,g. |{helix[Red]}|. +% \medskip +% +% \textbf{Filling a stretch with a symbol:}\\ +% A region can be filled with any character for +% labeling purposes using the parameter |{fill:|\meta{symbol}|}|. +% The \meta{symbol} is freely selectable; the usage is like +% in |\gapchar| (\ref{gapchar}). Do not use spaces before or after +% the expression \meta{symbol}; this will shift the symbols to the +% respective direction. The standard color of the fill symbol is +% black. It can be changed by an optional parameter directly after +% the definition of the symbol, e.\,g. |{fill:$\bullet$[Red]}|. +% +% The |\feature| command does not like special characters in +% text mode, e.\,g. |\dag|. One has to use the math version of +% those symbols between |$|-signs. The following quite common +% text symbols have also a math equivalent\footnote{Thanks to +% Darrell Conklin for giving notice to me about this problem}: +% +% \begin{center} +% \begin{tabular}{cll} +% \emph{symbol} & \emph{command} & \emph{description} \\ \hline +% $\dagger$ & |$\dagger$| & dagger\\ +% $\ddagger$ & |$\ddagger$| & double dagger\\ +% $\mathparagraph$ & |$\mathparagraph$| & paragraph mark\\ +% $\mathsection$ & |$\mathsection$| & section mark\\ +% $\mathdollar$ & |$\mathdollar$| & dollar\\ +% $\lbrace$ & |$\lbrace$| & left brace\\ +% $\rbrace$ & |$\rbrace$| & right brace\\ +% \end{tabular} +% \end{center} +% \medskip +% +% \textbf{Labeling restriction or protease cutting sites:}\\ +% If a label is needed that points between two residues, e.\,g. +% for showing restriction sites, simply use the feature style +% |{restriction[|\meta{color}|]}|. This will show a filled +% triangle with the tip right between the residues to be labeled, +% e.\,g. |\feature{top}{1}{25..26}{restriction[Blue]}{EcoR I}|. +% +% \medskip +% +% \textbf{Boxes:}\\ +% Boxed text is printed using the parameter |{box:|\meta{text}|}|. +% By default black letters in a white framed box are displayed. In +% order to change these colors optional parameters can be included +% in the argument: +% \medskip +% +% \quad|{box[|\meta{framecolor,boxcolor}|][|\meta{length}|]:|\meta{text}|[|\meta{textcolor}|]}|. +% \medskip +% +% If the box frame and fill colors are the same it is sufficient to +% use only this one color as an argument in the command. The optional +% parameter \meta{length} defines the thickness of the box frame. If +% this parameter is not set in the command the value from the +% |\featurerule{|\meta{length}|}| command (see below) is used. +% \medskip +% +% Examples: +% \medskip +% +% \quad|{box[Blue]:$\alpha$~helix[Yellow]}| +% \smallskip +% +% \quad|{box[Blue,Red]:$\alpha$~helix[Yellow]}| +% \smallskip +% +% \quad|{box[Blue,Red][2pt]:$\alpha$~helix[Yellow]}| +% \medskip +% +% \medskip +% +% \textbf{Horizontal bars and arrows:}\\ +% For displaying bars and arrows a simple selection scheme +% consisting of three consecutive characters is +% used as the \meta{labelstyle} parameter. Each bar or arrow is +% defined by its left end, the middle part, and the right end. +% The following table gives some examples for the construction +% of arrows and bars. +% +% \begin{center} +% \begin{tabular}{cl} +% middle & \\ +% \hbox to 1.6cm{\hss left end} \raisebox{1mm}{$\downarrow$} \hbox to 1.6cm{right end} & \\ \hline +% |---|& plain bar \\ +% |===|& double bar \\ +% |-->|& right arrow \\ +% |'->|& right arrow with up hook \\ +% |<-|$\vert$ & left \emph{maps to} arrow \\ +% |<-o| & left arrow with ball at right end\\ +% |<=>|& double arrow, two heads \\ +% |,-,|& plain bar with down hooks\\ +% $\vert$|=|$\vert$ & double bar with vertical ends\\ +% \end{tabular} +% \end{center} +% +% All combinations of the left-end-characters +% (|-=<',|$\vert$o), the middle-characters (|-=|), +% and the right-end-characters (|-=>',|$\vert$o) are +% allowed and produce the desired arrow or bar. +% The color is changed as described above. +% \label{Lfeaturerule} The thickness can be generally +% set by the separate command |\featurerule{|\meta{length}|}| +% with any \TeX{} measure as \meta{length}, e.\,g.\ |\featurerule{3pt}|. +% This value is then used for all arrows, bars, and boxes (see above) +% throughout the alignment. If an individual thickness for a +% particular arrow should be set one can add an optional +% parameter to the \meta{labelstyle} parameter, e.g. +% |{o->[Red][1mm]}|. +% +% In \TeXshade{} versions before v1.9, the original \LaTeX{}-arrows +% were used. These have now been replaced by the more modern looking +% arrows with scalable line thickness. If the classical look is +% requested, use |v| instead of |<| or |>| in the arrow definition, +% e.\,g.\, |{--v}|, to get them back. The new arrow style makes use of +% of the AMS math symbol font (amssymb.sty). Thus, in order to +% display the arrow heads correctly make sure that this style is +% present on your system (usually it is in a common \LaTeX{} installation). +% \medskip +% +% \textbf{Sequence translations:}\\ +% With the option |{translate}|, sequence stretches can be +% translated from nucleotide to peptide sequences as well as +% backtranslations from peptide to nucleotide sequences are +% possible. Default setting for the translations is the standard +% genetic code. Of course, the codons can be re-defined by the +% user. The command \label{Lcodon} +% |\codon{|\meta{amino acid}|}{|\meta{triplet1, \ldots, triplet n}|}| +% has been implemented for this issue. The usage is simple. Replace +% \meta{amino acid} by the single letter code of the amino acid +% to be defined and add a list of triplets for this residue. +% Example definition for the amino acid \emph{alanine}: +% \medskip +% +% \quad |\codon{A}{GCA,GCG,GCC,GCT,GCU,GCN}| +% \medskip +% +% Note the last triplet in the list. It contains an ambiguity code +% |N| which stands for \emph{any} nucleotide. This triplet has been +% added at the last position because the last triplet is used +% for the generation of the backtranslated nucleotide sequence from +% a peptide. Two files are included in the \TeXshade{} +% distribution as examples (|standard.cod, ciliate.cod|). If you +% want to define a new genetic code store your commands in a file +% like the examples. Such files with the suffix |.cod| can be +% loaded in the \TeXshade{} environment by \label{Lgeneticcode} +% |\geneticcode{|\meta{filename}|}|, e.\,g. |\geneticcode{ciliate}|. +% Do not designate the suffix |.cod| in \meta{filename}. Please +% note, when inspecting the example files, that only the exchanges +% compared to the standard code need to be defined in a new genetic code file. +% +% When DNA sequences are translated to protein the resulting amino +% acids are aligned to the second nucleotide of each triplet. +% It is more difficult to produce a satisfactory display of +% backtranslated nucleotide sequences due to the lack of space. +% You need thrice as much space than the original peptide sequence, +% because single letter amino acid code is translated to a triplet +% code. Therefore, the user can choose from five display styles +% for backtranslations depending on personal preferences: +% \medskip\label{Lbacktranslabel} +% +% \quad |\backtranslabel[|\meta{size}|]{|\meta{style}|}|, with +% \medskip +% +% \begin{tabbing} +% \qquad\qquad|{|\meta{style}|}|\ \= = |{horizontal}|\\ +% \> = |{alternating}|\\ +% \> = |{zigzag}|\\ +% \> = |{oblique}|\\ +% \> = |{vertical}| +% \end{tabbing} +% +% \meta{size} can be any \TeX{} size from |tiny| up to |Huge|, but +% |tiny| is recommended (and default setting). Translations +% can be colored as all other labels, see above. +% \medskip +% +% \textbf{Bar graphs and color scales:}\label{Lgraphs}\\ +% Sequence related numeral data, such as hydropathy or solvent +% accessibility data etc., can be shown in a feature line as bar graphs +% or color scales. The data are (a) pre-defined or calculated by +% \TeXshade{} due to amino acid properties or conservation, (b) are +% provided in a separate file or (c) may be entered by hand in the +% |\feature| command. +% +% (a) Currently, three different +% properties can be plotted, i.e. |hydrophobicity|, |molweight|, and +% |charge|. Further, the level of sequence conservation at the given +% protein sequence stretch can be shown (|conservation|). +% +% (b) The format of a data file is simple: every value must +% appear in a separate line. Numbers and the Java-typical `NaN' for +% `Not a Number' are permitted. Comments are allowed, because \TeXshade{} +% ignores all lines starting with a letter except `NaN' lines (avoid +% `|-|' as the first +% character of a comment line as this is interpreted as a negative number). +% Make sure that there are as many values as positions defined as the +% sequence stretch in the feature command. +% \TeXshade{} will read this file and determine the minimal and maximal +% values. These data are then normalized for plotting. +% Due to \TeX's limited calculation capabilities no values above 10\,737 +% are allowed and the difference between minimum and maximum must not +% exceed this very number. Values below 0.001 may be susceptible to major +% rounding errors. Thus, try to provide your data already normalized to +% moderate scales, e.g. 0.0\,--\,1.0 or -100\,--\,100. + +% (c) Data which is +% directly entered in the |\feature| command must be normalized to integer +% values with a maximal difference of 100 between the highest and lowest +% value, e.g. -50\,--\,50 or 0\,--\,100. +% +% For (b) and (c), the range to be plotted can be set by hand as an optional parameter +% in the |\feature| command. This can be necessary when the data file +% contains values between e.g. $-0.44$ and $0.87$. Without help \TeXshade{} +% will assume $-0.44$ as minimum and $0.87$ as maximum. But if the actual +% range to be plotted should be $-1.0$\,--\,$1.0$ this needs to be set +% manually, see examples below. Be aware of the fact, that if you +% define a scale by hand, which is more narrow than the values of the +% input, this will stretch the bars accordingly. It is NOT recommended +% to use this method for stretching bars vertically. Instead another +% command has been introduced. +% \label{Lbargraphstretch}\label{Lcolorscalestretch} +% The plotted bars can be stretched by a factor if the appearance is +% not as desired: |\bargraphstretch{|\meta{factor}|}|. Here, the factor +% is multiplied with the bar length, e.g |\bargraphstretch{2}| will double +% the bar height, |\bargraphstretch{0.5}| will make them half as high. +% Similarly, color scales can be stretched vertically with +% |\colorscalestretch{|\meta{factor}|}|. +% +% The default color of bar graphs is gray and can be changed by an +% optional parameter at the end of the |label| definition. Further, an optional +% background color can be chosen for the bars. Doing so will visualize +% the maximal bar extension. +% +% Default for +% color scales is a 5\% gray scale from very light gray to black (|Gray|). +% More colorful scales have been implemented, i.e. |BlueRed|, |RedBlue|, |GreenRed|, +% |RedGreen|, |ColdHot| and |HotCold|, the latter two being particularly +% useful for ranges from negative to positive values. +% +% The general format of this feature label definition for bar graphs is: +% \medskip +% +% \quad |{bar[|\meta{min}|,|\meta{max}|]:|\meta{properties/file/data}|[|\meta{color(,bgcolor)}|]}| +% \medskip +% +% and for color scales: +% \medskip +% +% \quad|{color[|\meta{min}|,|\meta{max}|]:|\meta{properties/file/data}|[|\meta{scale}|]}| +% \medskip +% +% Some examples: +% \medskip +% +% \qquad |{bar:conservation}| +% \medskip +% +% \qquad |{bar:hydrophobicity}| +% \medskip +% +% \qquad |{bar:charge[Red]}| +% \medskip +% +% \qquad |{bar:molweight[Red,Gray10]}| +% \medskip +% +% \qquad |{bar:10,20,30,40,50[Red]}| +% \medskip +% +% \qquad |{bar[-20,40]:-10,0,10,20,30[Red,Gray10]}| +% \medskip +% +% \qquad |{bar:data.txt}| +% \medskip +% +% \qquad |{bar[-10,10]:data.txt[Red,Gray10]}| +% \medskip +% +% \qquad |{color:conservation[BlueRed]}| +% \medskip +% +% \qquad |{color:hydrophobicity[GreenRed]}| +% \medskip +% +% \qquad |{color:charge}| +% \medskip +% +% \qquad |{color:molweight}| +% \medskip +% +% \qquad |{color[-10,10]:data.txt[ColdHot]}| +% \medskip +% +% \qquad |{color[-0.1,0.1]:otherdata.txt[ColdHot]}| +% \medskip +% +% See also the example output in section \ref{graphs} on page +% \pageref{graphs}. +% +% \medskip +% +% \textbf{No graphical label, only text:}\\ +% If no graphical label is +% wanted the fourth parameter of |\feature| can be empty +% braces. +% \medskip +% +% Finally, the fifth parameter of the |\feature| command contains +% the descriptive text +% for the labeled region. Type whatever you want incl. symbols and +% math chars. The text field can also contain sequence translations. +% In this case just set \meta{text} = |{translate}|. There is a +% command for setting the size and style of backtranslated sequences +% in the feature \meta{text} which corresponds to the one +% described above: \label{Lbacktranstext} +% \medskip +% +% \quad |\backtranstext[|\meta{size}|]{|\meta{style}|}| +% \medskip +% +% Again, the color can be set by an +% optional parameter appended to the text. For how to change the +% font size of text or symbols in the feature style line +% (|featurestyles|) or the in descriptive text line (|features|) +% see section \ref{Lsetsize}, page \pageref{Lsetsize}. +% +% +% Examples for the appearance of features are given in the +% overview section (\ref{over}), see: +% \medskip +% +% \emph{similarity mode} (\ref{similar}): fill-character; here, only +% one position is labeled. It is also possible to label a longer +% stretch, then, the character is printed several times to +% fill the specified region. +% +% \quad|\feature{top}{1}{93..93}{fill:$\downarrow$}{first...}| +% +% \quad|\feature{bottom}{1}{98..98}{fill:$\uparrow$}{second...}| +% \medskip +% +% \emph{diversity mode} (\ref{diverse}): frames, text only +% +% \quad|\feature{top}{1}{77..109}{}{AQP2 species variants}| +% +% \quad|\frameblock{1}{82..82,106..106}{Red[1pt]}| +% \medskip +% +% \emph{functional mode} (\ref{func}): bar graph, color scale, tinting, box, arrow, +% translation, brace, helix +% +% \quad|\feature{top}{3}{153..165}| +% +% \quad\quad\quad\quad\quad|{bar[-50,50]:-50,-45,-40,...,40,45,50}{}| +% \medskip +% +% \quad|\feature{top}{3}{167..186}| +% +% \quad\quad\quad\quad\quad|{color:5,10,15,...,90,95,100[ColdHot]}{}| +% \medskip +% +% \quad |\feature{top}{1}{158..163}{brace}{tinted}| +% +% \quad|\tintblock{1}{158..163}| +% \medskip +% +% \quad|\feature{top}{1}{138..157}| +% +% \quad\quad\quad\quad\quad|{box[Blue,Red][0.5pt]:$\alpha$~helix[Yellow]}| +% +% \quad\quad\quad\quad\quad|{transmembrane domain 4}| +% +% \quad|\feature{top}{1}{164..170}{o->[Red]}{trans. dom. 5}| +% +% \quad|\feature{top}{1}{158..163}{translate[Blue]}{}| +% +% \quad|\backtranslabel{oblique}| +% +% \quad|\feature{bottom}{1}{158..163}| +% +% \quad\quad\quad\quad\quad|{brace[Blue]}{loop D[Blue]}| +% \medskip +% +% \quad|\feature{top}{1}{138..157,164..170}{helix}{membr.}| +% +% \quad|\feature{top}{1}{158..163}{---}{loop}| +% +% \quad|\featurerule{1mm}| +% \medskip +% +% \emph{bar graphs and color scales} (\ref{graphs}): sequence conservation, +% charge, molecular weight, hydrophobicity +% +% \quad|\feature{ttop}{1}{138..170}{bar:conservation}{}| +% +% \quad|\feature{top}{1}{138..170}{color:charge}{}| +% +% \quad|\feature{bottom}{1}{138..170}| +% +% \quad\quad\quad\quad\quad|{color:molweight[ColdHot]}{}| +% +% \quad|\feature{bbottom}{1}{138..170}| +% +% \quad\quad\quad\quad\quad|{bar:hydrophobicity[Red,Gray10]}{}| +% \medskip +% +% \subsubsection{Including secondary structure information} +% +% \label{structure} +% +% \label{LincludeDSSP} +% \label{LincludeSTRIDE} +% \label{LincludePHDsec} +% \label{LincludePHDtopo} +% \label{LincludeHMMTOP} +% The DSSP [7], STRIDE [8], PHD [9] and HMMTOP [10] algorithms produce +% secondary protein structure predictions. PHD files contain both, +% secondary structure information and topology data. This information can be +% displayed in an alignment by one of the commands: +% \bigskip +% +% \begin{tabular}{ll} +% |\includeDSSP| & sec. structure calculated by DSSP\\ +% +% |\includeSTRIDE| & sec. structure calculated by STRIDE \\ +% +% |\includePHDsec| & sec. structure calculated by PHD \\ +% +% |\includePHDtopo| & topology data calculated by PHD \\ +% +% |\includeHMMTOP| & topology data calculated by HMMTOP \\ +% \end{tabular} +% \bigskip +% +% The syntax is |\includeDSSP{|\meta{seqref}|}{|\meta{filename}|}|, +% with |seqref| indicating the number or name of the sequence for which +% the secondary structure data is calculated and |filename| designating the +% corresponding structure file to be included. +% +% Several types of secondary structures are predicted by these +% programs; in order to designate them in \TeXshade{} use the names +% from the right column: +% +% \begin{center} +% \begin{tabular}{ll} +% secondary structure & designation\\[3mm] +% \emph{DSSP and STRIDE} & \\[2mm] +% 4-helix ($\alpha$-helix) & |alpha| \\ +% isolated $\beta$-bridge & |bridge| \\ +% extended strand ($\beta$-strand) & |beta| \\ +% 3-helix (3$_{10}$-helix) & |3-10| \\ +% 5-helix ($\pi$-helix) & |pi| \\ +% H-bonded turn & |turn| \\[3mm] +% \emph{PHDsec} & \\[2mm] +% helix & |alpha| \\ +% sheet & |beta| \\[3mm] +% \emph{PHDtopo and HMMTOP} & \\[2mm] +% internal region & |internal| \\ +% external region & |external| \\ +% transmembrane domain & |TM| \\ +% \end{tabular} +% \end{center} +% +% \label{LshowonDSSP} +% \label{LshowonSTRIDE} +% \label{LshowonPHDsec} +% \label{LshowonPHDtopo} +% \label{LshowonHMMTOP} +% \label{LhideonDSSP} +% \label{LhideonSTRIDE} +% \label{LhideonPHDsec} +% \label{LhideonPHDtopo} +% \label{LhideonHMMTOP} +% By default all three types of helices and the strands are +% displayed whereas turns and bridges are skipped. If it is +% desired to shown them as well, call for example |\shownonDSSP{bridge,turn}|. +% In analogy to this example all structure features can be activated +% in DSSP, STRIDE, PHDsec, PHDtopo and HMMTOP. In order to hide +% certain structure types use for example |\hideonDSSP{3-10,pi}|. +% +% The DSSP format has two columns of sequence numberings. The first +% column is consecutive, whereas the second column contains the +% actual sequence numbering. This can be different from the first +% column when sequence parts are missing in the DSSP file. One can +% choose which column will be read by \TeXshade{} by +% \label{LfirstcolumnDSSP} \label{LsecondcolumnDSSP} +% `|\firstcolumnDSSP|' and |\secondcolumnDSSP|'. The second column +% is still default. +% +% The HMMTOP algorithm can present its results as plain text or +% as HTML---plain text needs to be selected here. Further, the +% output can be formatted in a single line or in an extended form +% (see the HMMTOP documentation). Both can be read and interpreted +% by \TeXshade{}. Importantly, HMMTOP files can contain topology +% predictions of multiple sequences. \TeXshade{} tries to find +% the correct data based on the respective sequence name. If the +% sequence name is not found in the file, the first topology data +% is used. Using an optional parameter (number of the prediction +% in the file or name) one can define which data from the file is +% to be used: +% \medskip +% +% |\includeHMMTOP{|\meta{seqref in texshade}|[|\meta{seqref in file}|]{|\meta{filename}|}| +% \medskip +% +% PHD predictions: when starting the PHD software do not +% restrict the prediction to secondary structure or topology alone. +% This leads to changes in the PHD output file which are not +% correctly interpretable by \TeXshade{} due to ambiguities. There +% is no way around it---thus, run the full prediction. +% +% Now, some information on how \TeXshade{} extracts and displays +% secondary structure features. In short, it is a two step process. +% First, \TeXshade{} analyzes the secondary structure file and +% extracts all necessary data. This data is converted into a +% format which is readable and processable by \TeXshade{} using the +% |feature| command (see \ref{feature}). This command allows one to +% label sequence stretches graphically. For a detailed explanation +% see the indicated reference. A list of feature commands is saved +% in a file with the ending `|.sec|' for DSSP, STRIDE and PHDsec +% or `|.top|' for PHDtopo. Then, in a second step, this file is loaded +% again and executed. When \TeXshade{} encouters this file a +% second time, i.\,e. in a second \TeX{} run, it uses the already +% existing file for the output. The great advantage of this method +% is its flexibility. Due to the simple reason that the feature +% file can be edited in the meantime. Thus, the user has the +% ability to change the computer generated file according to his +% personal needs. On the other hand, one can force \TeXshade{} to +% write a new file every time by the optional argument |[make new]| in the +% include command, e.\,g. |\includePHDsec[make new]{1}{AQP.phd}|. +% +% \label{Lappearance} +% Finally, the appearance of the feature labels can be assigned by +% the command +% +% |\appearance{|\meta{filetype}|}{|\meta{type}|}{|\meta{position}|}{|\meta{labelstyle}|}{|\meta{text}|}|. +% +% Here, \meta{filetype} stands for one of the following secondary structure +% file types: |DSSP|, |STRIDE|, |PHDsec|, |PHDtopo| or |HMMTOP| and +% \meta{type} designates the secondary structure type as shown in +% the right column of the table above. The other +% arguments \meta{position}, \meta{labelstyle} and \meta{text} +% are almost as described in \ref{feature}. +% \label{Lnumcount} +% \label{Lalphacount} +% \label{LAlphacount} +% \label{Lromancount} +% \label{LRomancount} +% One further possibility +% is to include internal counters for each secondary structure type. +% Just add one of the following commands +% to the text in the feature description. +% +% \begin{center} +% \begin{tabular}{ll} +% \emph{counter} & \emph{display} \\[2mm] +% |\numcount| & 1, 2, 3 \ldots \\ +% |\alphacount| & a, b, c \ldots \\ +% |\Alphacount| & A, B, C \ldots \\ +% |\romancount| & i, ii, iii \ldots \\ +% |\Romancount| & I, II, III \ldots \\ +% \end{tabular} +% \end{center} +% +% Examples: +% +% \quad|\appearance{DSSP}{alpha}{ttop}| +% +% \quad\quad\quad\quad\quad\quad\quad|{-->}{$\alpha$-helix~\Alphacount}| +% +% \quad|\appearance{PHDtopo}{TM}{bottom}| +% +% \quad\quad\quad\quad\quad\quad\quad|{box[Blue]:TM\numcount[Yellow]}{}| +% +% +% \subsection{Displaying and building legends} +% +% \label{Lshowlegend}\label{Lhidelegend}\label{Lmovelegend} +% \label{Lgermanlanguage}\label{Lenglishlanguage}\label{Llegendcolor} +% \label{Lspanishlanguage} +% For each predefined shading mode \TeXshade{} can print an appropriate +% legend to explain the used +% shading colors. The commands |\showlegend| and |\hidelegend| +% display or clear the legend at the end of the alignment. +% The legend is displayed by default beneath the first residue +% of the last alignment line. The location can be changed by +% |\movelegend{|\meta{x-offset}|}{|\meta{y-offset}|}|. Both +% parameters require a \TeX{} length, e.\,g. |\movelegend{5cm}{-2cm}| +% moves the legend 5\,cm to the right and 2\,cm up. +% +% The language for the descriptions is english by default; +% if the |\german.sty| package is active legend texts are in +% german. So far, german, spanish and english are implemented. With the +% commands |\germanlanguage|, |\spanishlanguage| and |\englishlanguage| +% switching between the languages +% is made possible. For the addition of other languages contact me. +% Finally, the color of the describing legend texts can be set +% with the command |\legendcolor{|\meta{color}|}|. +% +% User defined legends are easily built with the following command +% \label{Lshadebox}|\shadebox{|\meta{color}|}|. Use this command outside +% the \TeXshade{} environment, e.\,g. in the text or in the caption. As +% \meta{color} any color can be designated (see section \ref{colors}) or +% one of the following parameters: +% +% \begin{itemize} +% \item |nomatch| = the color used for nonmatching residues +% +% \item |similar| = the color used for similar residues +% +% \item |conserved| = the color used for conserved residues +% +% \item |allmatch| = the color used for the case that all residues +% match (if |\allmatchspecial| is active) +% +% \end{itemize} +% +% The command simply prints a shaded box in the specified color +% then a describing text can be appended. Examples: +% \medskip +% +% \quad|\shadebox{nomatch}---nonmatching residues| +% +% \quad|\shadebox{similar}: similar residues| +% +% \quad|\shadebox{conserved}~conserved residues| +% +% \quad|\shadebox{Yellow}\quad PKA phosphorylation sites| +% +% +% +% \subsection{Adding captions to the alignment} +% +% Since \TeXshade{} v1.5 captions can be added to the alignment. +% So far, captions were difficult to use when the alignment was +% bigger than one page and therefore did not fit into a +% figure environment. The \TeXshade{} captions behave exactly as +% normal figure captions. They +% adopt their style, use the figure counter number and appear in +% the list of figures as any other figure. +% +% The usage is slightly different from normal captions but +% intuitive: \label{Lshowcaption} +% \medskip +% +% \quad |\showcaption[|\meta{position}|]{|\meta{text}|}| +% \medskip +% +% The optional \meta{position} tells \TeXshade{} to put the caption on +% |top| or at the |bottom| of the alignment. If nothing is stated here +% the caption will appear at the bottom. The parameter +% \meta{text} just holds the caption text as in the normal |\caption|. +% The command can be used at any position within the |texshade| +% environment. A simple example would be: +% \medskip +% +% \quad |\showcaption{A beautiful \TeXshade{} alignment.}| +% \medskip +% +% \label{Lshortcaption} +% In order to show a short version of the caption in the +% "List of Figures" the |\shortcaption{|\meta{short caption text}|}| +% command can be used. +% +% \subsection{Font handling} +% +% \subsubsection{Changing font styles} +% +% \label{Lsetfamily}\label{Lsetseries} +% \label{Lsetshape}\label{Lsetsize} +% The font styles for the numbering, the sequence names, +% the sequence residues, the descriptive feature texts +% and the legends 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 +% |numbering|, |names|, |residues|, |features|, |featurestyles| and |legend|. +% \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{features}{it} \setseries{features}{bf}| +% \medskip +% +% \label{Lsetfont} +% 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{features}{rm}{it}{bf}{normalsize}| +% \medskip +% +% Further, short commands are provided to change single font +% attributes quickly. The following commands set attributes +% of feature texts. +% \medskip +% \enlargethispage{\baselineskip} +% +% \quad |\featuresrm| \quad |\featurestiny| \label{Lfeaturesrm} +% +% \quad |\featuressf| \quad |\featuresscriptsize| +% +% \quad |\featurestt| \quad |\featuresfootnotesize| +% +% \quad |\featuresbf| \quad |\featuressmall| +% +% \quad |\featuresmd| \quad |\featuresnormalsize| +% +% \quad |\featuresit| \quad |\featureslarge| +% +% \quad |\featuressl| \quad |\featuresLarge| +% +% \quad |\featuressc| \quad |\featuresLARGE| +% +% \quad |\featuresup| \quad |\featureshuge| +% +% \quad | | \quad |\featuresHuge| +% \medskip +% +% Corresponding sets are provided for the +% numbering (|\numberingrm| etc.), +% featurestyles (|featurestylesrm| etc.), names (|\namesrm| etc.), +% residues (|\residuesrm| etc.) and +% legend texts (|legendrm| etc.). +% +% +% \subsubsection{Using PostScript fonts} +% +% As already mentioned \TeXshade{} makes intensive use of +% \textsc{PostScript} for shading. Now, that +% \textsc{PostScript} output is active anyway, including \textsc{PostScript} +% fonts is very easy. Just declare in the document header +% \medskip +% +% \quad |\usepackage{|\meta{PS-font}|}|. +% \medskip +% +% +% The typewriter font of \TeX{} is always a topic of discussions. +% By including the package |\usepackage{courier}| \TeX's +% typewriter font is replaced by the widely accepted \textsc{Courier}. +% Have a look into the directory |..texinputs:latex:psnfss|; there, +% some styles are located which exchange the common \TeX{} fonts by +% \textsc{PostScript} fonts, e.\,g.\ |avant.sty|, |bookman.sty|, +% |chancery.sty|, |courier.sty|, |helvet.sty| or |utopia.sty|. +% Depending on the style used the |\rmdefault|-, |\sfdefault|-, +% and |\ttdefault| fonts are substituted partly or completely. +% Thus, |courier.sty| for instance exchanges only the typewriter font, +% whereas |bookman.sty| sets \textsc{Bookman} as |\rmdefault|, +% \textsc{Avantgarde} as |\sfdefault| and \textsc{Courier} as +% |\ttdefault|. +% +% For further information see \textsc{Tomas Rokicki}'s +% |dvips| manual [11]. +% +% +% +% +% \subsection{Goodies---molweight and charge} +% +% \label{molcharge} +% +% \label{Lmolweight}\label{Lcharge} +% During the process of sequence setting \TeXshade{} +% sums up the molecular weight and charge of the +% aligned proteins. This data can be accessed by the +% following two commands. +% \medskip +% +% \quad|\molweight{|\meta{seqref}|}{|\meta{Da/kDa}|}| +% +% \quad|\charge{|\meta{seqref}|}{|\meta{i/o/N/C}|}| +% \medskip +% +% The first parameter \meta{seqref} selects the sequence. The +% second parameter in the |\molweight| command allows one to +% switch the units between Dalton (|Da|) and kilo-Dalton +% (|kDa|). The |\charge| command needs the second parameter +% for the correct consideration of the charged protein termini. +% Thus, `|i|' refers to internal sequences, `|o|' to the +% overall charge, `|N|' to N-terminal sequence parts, and +% `|C|' to the C-terminal end of a protein. +% \medskip +% +% Example: \quad Charge: |\charge{1}{o}|; Weight: |\molweight{1}{Da}| +% +% +% \newpage +% \section{The PostScript color selection scheme} +% +% \label{colors} +% +% \textsc{PostScript} provides 64 standard colors. All these +% colors are predefined in the |color.sty|. 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. \TeXshade{} enhances this +% color scheme by gray scales in 5\% steps. +% The following colors and grays can be used in \TeXshade{} by +% simply declaring the name of the color in the respective +% command, e.\,g.\ |\consensuscolors|: +% +% +% \begin{footnotesize} +% \begin{tabbing} +% \emph{name}\hspace{2.5cm}\= \emph{CMYK}\hspace{1.8cm} +% \=\emph{name}\hspace{2.5cm}\= \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}\\ +% LightGreenYellow\>{0.08,0,0.35,0}\> LightYellow \>{0,0,0.50,0}\\ +% LightGoldenrod \>{0,0.05,0.42,0}\> LightDandelion\> {0,0.15,0.42,0}\\ +% LightApricot \>{0,0.16,0.26,0}\> LightPeach \>{0,0.25,0.35,0}\\ +% LightMelon \>{0,0.23,0.25,0}\> LightYellowOrange \>{0,0.21,0.50,0}\\ +% LightOrange \>{0,0.31,0.44,0}\> LightBurntOrange \>{0,0.26,0.50,0}\\ +% LightBittersweet\>{0,0.38,0.50,0.12}\> LightRedOrange\>{0,0.39,0.44,0}\\ +% LightMahagony \>{0,0.43,0.44,0.18}\> LightMaroon \>{0,0.44,0.34,0.16}\\ +% LightBrickRed \>{0,0.45,0.47,0.14}\> LightRed \>{0,0.50,0.50,0}\\ +% LightOrangeRed \>{0,0.50,0.25,0}\> LightRubineRed \>{0,0.50,0.07,0}\\ +% LightWildStrawberry\>{0,0.48,0.20,0}\> LightSalmon \>{0,0.27,0.19,0}\\ +% LightCarnationPink \>{0,0.32,0,0} \> LightMagenta \>{0,0.50,0,0}\\ +% LightVioletRed \>{0,0.40,0,0} \> LightRhodamine \>{0,0.41,0,0}\\ +% LightMulberry \>{0.17,0.45,0,0.01}\> LightRedViolet \>{0.04,0.45,0,0.17}\\ +% LightFuchsia \>{0.24,0.46,0,0.04}\> LightLavender \> {0,0.24,0,0}\\ +% LightThistle \>{0.06,0.30,0,0} \> LightOrchid \>{0.16,0.32,0,0}\\ +% LightDarkOrchid \>{0.20,0.40,0.10,0}\> LightPurple \>{0.23,0.43,0,0}\\ +% LightPlum \>{0.25,0.50,0,0} \> LightViolet \>{0.40,0.44,0,0}\\ +% LightRoyalPurple\>{0.38,0.45,0,0} \> LightBlueViolet \>{0.43,0.46,0,0.02}\\ +% LightPeriwinkle \>{0.29,0.28,0,0} \> LightCadetBlue \> {0.31,0.29,0.12,0}\\ +% LightCornflowerBlue\>{0.33,0.07,0,0}\>LightMidnightBlue\>{0.49,0.07,0,0.22}\\ +% LightNavyBlue \>{0.47,0.27,0,0} \> LightRoyalBlue \> {0.50,0.25,0,0}\\ +% LightBlue \>{0.50,0.50,0,0} \> LightCerulean \> {0.47,0.06,0,0}\\ +% LightCyan \>{0.50,0,0,0} \> LightProcessBlue \> {0.48,0,0,0}\\ +% LightSkyBlue \>{0.31,0,0.06,0} \> LightTurquoise \>{0.43,0,0.10,0}\\ +% LightTealBlue \>{0.43,0,0.17,0.01}\> LightAquamarine \>{0.41,0,0.15,0}\\ +% LightBlueGreen \>{0.43,0,0.17,0}\> LightEmerald \>{0.50,0,0.25,0}\\ +% LightJungleGreen\>{0.50,0,0.26,0} \> LightSeaGreen \>{0.35,0,0.25,0}\\ +% LightGreen \>{0.50,0,0.50,0} \> LightForestGreen\>{0.46,0,0.44,0.06}\\ +% LightPineGreen \>{0.46,0,0.30,0.13}\> LightLimeGreen\>{0.25,0,0.50,0}\\ +% LightYellowGreen\>{0.22,0,0.37,0} \> LightSpringGreen \>{0.13,0,0.38,0}\\ +% LightOliveGreen \>{0.32,0,0.48,0.20} \> LightRawSienna\>{0,0.36,0.50,0.23}\\ +% LightSepia \>{0,0.44,0.50,0.35} \> LightBrown \>{0,0.41,0.50,0.30}\\ +% LightTan \>{0.07,0.21,0.28,0}\\ +% LightLight- and LightLightLight-versions were derived by dividing all values\\ +% from Light-color definitions by 2 and 4, respectively. +% \end{tabbing} +% +% \begin{tabbing} +% \emph{name}\hspace{2.5cm}\= \emph{RGB\quad}\hspace{1.8cm} +% \=\emph{name}\hspace{2.5cm}\= \emph{RGB\quad}\\ +% +% BlueRed5 \>{0.15,0.17,0.55} \> BlueRed10 \> {0.20,0.23,0.57}\\ +% BlueRed15 \> {0.24,0.29,0.60} \>BlueRed20 \> {0.33,0.35,0.64}\\ +% BlueRed25 \> {0.43,0.43,0.68} \>BlueRed30 \> {0.52,0.52,0.73}\\ +% BlueRed35 \> {0.60,0.60,0.78} \>BlueRed40 \> {0.70,0.70,0.84}\\ +% BlueRed45 \> {0.80,0.80,0.85} \>BlueRed50 \> {0.86,0.82,0.82}\\ +% BlueRed55 \> {0.87,0.73,0.73} \>BlueRed60 \> {0.89,0.64,0.64}\\ +% BlueRed65 \> {0.90,0.55,0.55} \>BlueRed70 \> {0.91,0.47,0.46}\\ +% BlueRed75 \> {0.91,0.39,0.37} \>BlueRed80 \> {0.90,0.33,0.28}\\ +% BlueRed85 \> {0.89,0.25,0.20} \>BlueRed90 \> {0.88,0.23,0.14}\\ +% BlueRed95 \> {0.87,0.21,0.09} \>BlueRed100\> {0.87,0.16,0.04}\\ +% GreenRed5 \> {0,1,0} \>GreenRed10\> {0.05,0.95,0}\\ +% GreenRed15 \> {0.10,0.90,0} \>GreenRed20\> {0.15,0.85,0}\\ +% GreenRed25 \> {0.20,0.80,0} \>GreenRed30\> {0.25,0.75,0}\\ +% GreenRed35 \> {0.30,0.70,0} \>GreenRed40\> {0.35,0.65,0}\\ +% GreenRed45 \> {0.40,0.60,0} \>GreenRed50\> {0.45,0.55,0}\\ +% GreenRed55 \> {0.50,0.50,0} \>GreenRed60\> {0.55,0.45,0}\\ +% GreenRed65 \> {0.60,0.40,0} \>GreenRed70\> {0.65,0.35,0}\\ +% GreenRed75 \> {0.70,0.30,0} \>GreenRed80\> {0.75,0.25,0}\\ +% GreenRed85 \> {0.80,0.20,0} \>GreenRed90\> {0.85,0.15,0}\\ +% GreenRed95 \> {0.90,0.10,0} \>GreenRed100\> {0.95,0.05,0}\\ +% ColdHot5 \> {0,0.08,1} \>ColdHot10 \> {0,0.29,1}\\ +% ColdHot15 \> {0,0.49,1} \>ColdHot20 \> {0,0.70,1}\\ +% ColdHot25 \> {0,0.90,1} \>ColdHot30 \> {0,1,0.87}\\ +% ColdHot35 \> {0,1,0.68} \>ColdHot40 \> {0,1,0.46}\\ +% ColdHot45 \> {0,1,0.25} \>ColdHot50 \> {0,1,0.04}\\ +% ColdHot55 \> {0.16,1,0} \>ColdHot60 \> {0.35,1,0}\\ +% ColdHot65 \> {0.56,1,0} \>ColdHot70 \> {0.79,1,0}\\ +% ColdHot75 \> {0.98,1,0} \>ColdHot80 \> {1,0.82,0}\\ +% ColdHot85 \> {1,0.60,0} \>ColdHot90 \> {1,0.40,0}\\ +% ColdHot95 \> {1,0.20,0} \>ColdHot100\> {0.91,0,0}\\ +% and reverse definitions: |RedBlue|, |RedGreen|, |HotCold|.\\ +% \end{tabbing} +% \end{footnotesize} +% +% Type the color names with the upper case letters exactly as described above. +% For the definition of new colors use one of the |color.sty| commands: +% \medskip +% +% \quad|\definecolor{|\meta{name}|}{cmyk}{|\meta{C,M,Y,K}|}| +% \medskip +% +% \quad|\definecolor{|\meta{name}|}{rgb}{|\meta{R,G,B}|}| +% \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; or `R' -- red, `G' -- green, `Blue' -- blue) separated by +% commas. +% \medskip +% +% Examples: +% \medskip +% +% |\definecolor{Salmon}{cmyk}{0,0.53,0.38,0}| +% \medskip +% +% |\definecolor{ColdHot15}{rgb}{0,0.49,1}| +% \medskip +% +% \newpage +% \section{Listing of the \texttt{texshade} default settings} +% +% \subsection{Standard definitions} +% +% The file |texshade.def| mirrors all commands which are +% carried out at the beginning of the |texshade| environment. +% Short comments are also included, thus, it is refered to +% this file for further information. +% +% \subsection{Colors used in the different shading modes} +% +% \vspace{5mm} +% +% 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 +% +% 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 +% +% 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 +% +% \newpage +% 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 +% +% 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 +% +% 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 +% +% 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 +% +% \newpage +% 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 +% +% 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 +% +% 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 +% +% \newpage +% 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 \TeXshade{} logo} +% \medskip +% +% \quad |\TeXshade| +% +% \vspace{1.5\baselineskip} +% +% \textbf{The \TeXshade{} environment} (\pageref{tsenvironment}\,ff.) +% \medskip +% +% \begin{quote} +% |\begin{texshade}[|\meta{parameterfile}|]| +% |{|\meta{alignmentfile}|}| +% +% \quad\emph{further \emph{\TeXshade} commands, if needed} +% +% |\end{texshade}| +% \end{quote} +% \bigskip +% +% \textbf{Predefined shading modes} +% \medskip +% +% \quad|\seqtype{|\meta{type}|}| +% \hfill(|P| -- peptide, |N| -- nucleotide) \hfill[\pageref{Lseqtype}] +% +% \medskip +% +% \quad|\shadingmode[|\meta{option}|]{|\meta{mode}|}| +% \hfill[\pageref{Lshadingmode}] +% +% \medskip +% +% \begin{center} +% \begin{tabular}{lll} +% \meta{mode} & \meta{option} &\\ \hline +% |identical| & |allmatchspecial| &\\ +% |similar| & |allmatchspecial| &\\ +% |diverse| & \meta{seqref} &\\ +% |functional|& \meta{type} & |charge| \\ +% & & |hydropathy| \\ +% & & |structure| \\ +% & & |chemical| \\ +% & & |standard area| \\ +% & & |accessible area| \\ \hline +% \end{tabular} +% \end{center} +% \medskip +% +% \quad|\shadeallresidues| +% \hfill[\pageref{Lshadeallresidues}] +% +% \vspace{1.5\baselineskip} +% +% \textbf{Shading colors} (\pageref{Lshadingcolors}\,ff.) +% \medskip +% +% \quad|\shadingcolors{|\meta{scheme}|}| \,\, (|blues|, |reds|, +% |greens|, |grays|, |black|) +% +% \quad|\nomatchresidues{|\meta{res.col.}|}{|\meta{shad.col.}|}{|\meta{case}|}{|\meta{style}|}| +% +% \quad|\similarresidues{|\meta{res.col.}|}{|\meta{shad.col.}|}{|\meta{case}|}{|\meta{style}|}| +% +% \quad|\conservedresidues{|\meta{res.col.}|}{|\meta{shad.col.}|}{|\meta{case}|}{|\meta{style}|}| +% +% \quad|\allmatchresidues{|\meta{res.col.}|}{|\meta{shad.col.}|}{|\meta{case}|}{|\meta{style}|}| +% +% \quad|\funcshadingstyle{|\meta{residue}|}{|\meta{res.col.}|}{|\meta{shad.color}|}| +% +% \hfill|{|\meta{case}|}{|\meta{style}|}| [\pageref{Lfuncshadingstyle}] +% +% \vspace{1.5\baselineskip} +% +% \newpage +% \textbf{Residue grouping} +% \medskip +% +% \quad|\pepsims{|\meta{residue}|}{|\meta{similars}|}| +% \hfill[\pageref{Lpepsims}] +% +% \quad|\pepgroups{|\meta{group1}|,|\meta{group2}|, ... , |\meta{groupn}|}| +% \hfill[\pageref{Lpepgroups}] +% +% \quad|\DNAsims{|\meta{residue}|}{|\meta{similars}|}| +% \hfill[\pageref{LDNAsims}] +% +% \quad|\DNAgroups{|\meta{group1}|,|\meta{group2}|, ... , |\meta{groupn}|}| +% \hfill[\pageref{LDNAgroups}] +% +% \vspace{1.5\baselineskip} +% +% \textbf{Definition of new functional shading modes} +% \medskip +% +% \quad|\clearfuncgroups| \hfill [\pageref{Lclearfuncgroups}] +% +% \quad|\funcgroup{|\meta{descr}|}{|\meta{residues}|}{|\meta{res.col.}|}{|\meta{shad.col.}|}| +% +% \hfill|{|\meta{case}|}{|\meta{style}|}| +% \hfill[\pageref{Lfuncgroup}] +% +% \vspace{1.5\baselineskip} +% +% \textbf{Appearance of the consensus line} +% \medskip +% +% \quad|\threshold{|\meta{percentage}|}| +% \hfill[\pageref{Lthreshold}] +% +% \quad|\constosingleseq{|\meta{seqref}|}| +% \hfill[\pageref{Lconstosingleseq}] +% +% \quad|\showconsensus[|\meta{color/scale}|[,|\meta{color/scale}|]]{|\meta{position}|}| +% \hfill[\pageref{Lshowconsensus}] +% +% \quad|\hideconsensus| +% \hfill[\pageref{Lhideconsensus}] +% +% \quad|\nameconsensus{|\meta{name}|}| +% \hfill[\pageref{Lnameconsensus}] +% +% \quad|\defconsensus{|\meta{symbol1}|}{|\meta{symbol2}|}{|\meta{symbol3}|}| +% \hfill[\pageref{Ldefconsensus}] +% +% \vspace*{-\baselineskip} +% +% \begin{tabbing} +% \quad|\consensuscolors|\=|{|\meta{res.col.1}|}{|\meta{shad.col.1}|}|\\ +% +% \>|{|\meta{res.col.2}|}{|\meta{shad.col.2}|}|\\ +% +% \>|{|\meta{res.col.3}|}{|\meta{shad.col.3}|}| +% \hspace{1.2in}[\pageref{Lconsensuscolors}]\\ +% \end{tabbing} +% +% \textbf{Appearance of the sequence lines} +% \medskip +% +% \quad|\shownames{|\meta{position}|}| +% \hfill[\pageref{Lshownames}] +% +% \quad|\shownumbering{|\meta{position}|}| +% \hfill[\pageref{Lshownumbering}] +% +% \quad|\nameseq{|\meta{seqref}|}{|\meta{name}|}| +% \hfill[\pageref{Lnameseq}] +% +% \quad|\namescolor{|\meta{color}|}| +% \hfill[\pageref{Lnamescolor}] +% +% \quad|\namecolor{|\meta{seq1}|, ... ,|\meta{seq n}|}{|\meta{color}|}| +% \hfill[\pageref{Lnamecolor}] +% +% \quad|\hidenames| +% \hfill[\pageref{Lhidenames}] +% +% \quad|\hidename{|\meta{seq1}|, ... ,|\meta{seq n}|}| +% \hfill[\pageref{Lhidename}] +% +% \quad|\numberingcolor{|\meta{color}|}| +% \hfill[\pageref{Lnumberingcolor}] +% +% \quad|\numbercolor{|\meta{seq1}|, ... ,|\meta{seq n}|}{|\meta{color}|}| +% \hfill[\pageref{Lnumbercolor}] +% +% \quad|\hidenumbering| +% \hfill[\pageref{Lhidenumbering}] +% +% \quad|\hidenumber{|\meta{seq1}|, ... ,|\meta{seq n}|}| +% \hfill[\pageref{Lhidenumber}] +% +% \quad|\hideresidues| +% \hfill[\pageref{Lhideresidues}] +% +% \quad|\showresidues| +% \hfill[\pageref{Lshowresidues}] +% +% \quad|\startnumber{|\meta{seqref}|}{|\meta{first residue number}|}| +% \hfill[\pageref{Lstartnumber}] +% +% \quad|\seqlength{|\meta{seqref}|}{|\meta{length}|}| +% \hfill[\pageref{Lseqlength}] +% +% \quad|\setends{|\meta{seqref}|}{|\meta{startnumber}|..|\meta{stopnumber}|}| +% \hfill[\pageref{Lsetends}] +% +% \quad|\showruler{|\meta{position}|}{|\meta{seqref}|}| +% \hfill[\pageref{Lshowruler}] +% +% \quad|\rulersteps{|\meta{number}|}| +% \hfill[\pageref{Lrulersteps}] +% +% \quad|\rulercolor{|\meta{color}|}| +% \hfill[\pageref{Lrulercolor}] +% +% \quad|\hideruler| +% \hfill[\pageref{Lhideruler}] +% +% \quad|\gapchar{|\meta{symbol}|}| +% \qquad (incl. |rule|) \hfill [\pageref{Lgapchar}] +% +% \quad|\gapcolors{|\meta{symbol color}|}{|\meta{background color}|}| +% \hfill[\pageref{Lgapcolors}] +% +% \quad|\showleadinggaps| +% \hfill[\pageref{Lshowleadinggaps}] +% +% \quad|\hideleadinggaps| +% \hfill[\pageref{Lhideleadinggaps}] +% +% \quad|\fingerprint{|\meta{res. per line}|}| +% \hfill[\pageref{Lfingerprint}] +% +% \vspace{1.5\baselineskip} +% +% \textbf{Hiding, killing, separating and ordering} +% \medskip\enlargethispage{20pt} +% +% \quad|\hideseq{|\meta{seq1}|,|\meta{seq2}|,|\ldots|,|\meta{seq n}|}| +% \hfill[\pageref{Lhideseq}] +% +% \quad|\killseq{|\meta{seq1}|,|\meta{seq2}|,|\ldots|,|\meta{seq n}|}| +% \hfill[\pageref{Lkillseq}] +% +% \quad|\donotshade{|\meta{seq1}|,|\meta{seq2},\ldots|,|\meta{seq n}|}| +% \hfill[\pageref{Ldonotshade}] +% +% \quad|\separationline{|\meta{seqref}|}| +% \hfill[\pageref{Lseparationline}] +% +% \quad|\smallsep| +% \hfill[\pageref{Lsmallsep}] +% +% \quad|\medsep| +% \hfill[\pageref{Lmedsep}] +% +% \quad|\bigsep| +% \hfill[\pageref{Lbigsep}] +% +% \quad|\vsepspace{|\meta{length}|}| +% \hfill[\pageref{Lvsepspace}] +% +% \quad|\orderseqs{|\meta{seq1}|,|\meta{seq2}|,|\ldots|,|\meta{seq n}|}| +% \hfill[\pageref{Lorderseqs}] +% +% \vspace{1.5\baselineskip} +% +% \textbf{Residues per line and further settings} +% \medskip +% +% \quad|\residuesperline{|\meta{number}|}| +% \hfill[\pageref{Lresiduesperline}] +% +% \quad|\residuesperline*{|\meta{number}|}| +% \hfill[\pageref{Lresiduesperline*}] +% +% \quad|\charstretch{|\meta{factor}|}| +% \hfill[\pageref{Lcharstretch}] +% +% \quad|\linestretch{|\meta{factor}|}| +% \hfill[\pageref{Llinestretch}] +% +% \quad|\numberingwidth{|\meta{n digits}|}| +% \hfill[\pageref{Lnumberingwidth}] +% +% \quad|\smallblockskip| +% \hfill[\pageref{Lsmallblockskip}] +% +% \quad|\medblockskip| +% \hfill[\pageref{Lmedblockskip}] +% +% \quad|\bigblockskip| +% \hfill[\pageref{Lbigblockskip}] +% +% \quad|\noblockskip| +% \hfill[\pageref{Lnoblockskip}] +% +% \quad|\vblockspace{|\meta{length}|}| +% \hfill[\pageref{Lvblockspace}] +% +% \quad|\flexblockspace| +% \hfill[\pageref{Lflexblockspace}] +% +% \quad|\fixblockspace| +% \hfill[\pageref{Lfixblockspace}] +% +% \quad|\alignment{|\meta{position}|}| +% \hfill[\pageref{Lalignment}] +% +% \vspace{1.5\baselineskip} +% +% +% \newpage +% \textbf{Individual shading and labeling of sequence stretches} +% \medskip +% +% \quad|\shaderegion{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}{|\meta{res.col.}|}{|\meta{shad.col.}|}| +% [\pageref{Lshaderegion}] +% +% \quad|\shadeblock{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}{|\meta{res.col.}|}{|\meta{shad.col.}|}| +% [\pageref{Lshadeblock}] +% +% \quad|\emphregion{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}| +% [\pageref{Lemphregion}] +% +% \quad|\emphblock{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}| +% [\pageref{Lemphblock}] +% +% \quad|\emphdefault{|\meta{style}|}| +% \hfill[\pageref{Lemphdefault}] +% +% \quad|\tintregion{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}| +% [\pageref{Ltintregion}] +% +% \quad|\tintblock{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}| +% [\pageref{Ltintblock}] +% +% \quad|\tintdefault{|\meta{effect}|}| \qquad\qquad|weak, normal, strong| +% \hfill[\pageref{Ltintdefault}] +% +% \quad|\frameblock{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,|\meta{start2}..\meta{stop2}|,| +% +% \hfill\ldots|,|\meta{start n}..\meta{stop n}|}{|\meta{color}|[|\meta{length}|]}| +% [\pageref{Lframeblock}] +% +% \quad|\feature{|\meta{position}|}{|\meta{seqref}|}{|\meta{start1}..\meta{stop1}|,| +% +% \hfill\meta{start2}..\meta{stop2}|,|\ldots|,|\meta{start n}..\meta{stop n}|}{|\meta{labelstyle}|}{|\meta{text}|}| +% [\pageref{Lfeature}] +% +% \begin{tabbing} +% \quad\quad\quad|{|\meta{labelstyle}|}|\ \= = |{brace[|\meta{color}|]}|\\ +% \> = |{fill:|\meta{symbol}|[|\meta{textcolor}|]}|\\ +% \> = |{restriction[|\meta{color}|]}|\\ +% \> = |{helix[|\meta{helixcolor}|]}|\\ +% \> = |{box[|\meta{framecolor,boxcolor}|][|\meta{length}|]:|\\ +% \hspace{8.7cm}\meta{text}|[|\meta{textcolor}|]}|\\ +% \> = arrows and bars (|-=<',|$\vert$|o|)(|-=|)(|-=>',|$\vert$|o|)\\ +% \> = |{translate[|\meta{color}|]}|\\ +% \> = |{bar[|\meta{min}|,|\meta{max}|]:|\\ +% \hspace{5cm}\meta{properties/file/data}|[|\meta{color(,bgcolor)}|]}|\\ +% \> = |{color[|\meta{min}|,|\meta{max}|]:|\\ +% \hspace{5cm}\meta{properties/file/data}|[|\meta{scale}|]}|\\ +% \hspace{5cm}\meta{properties}: |hydrophobicity|, |charge|,\\ +% \hspace{7.4cm}|molweight|, |conservation|\\ +% \end{tabbing} +% +% \quad|\ttopspace{|\meta{length}|}| +% \hfill[\pageref{Lttopspace}] +% +% \quad|\topspace{|\meta{length}|}| +% \hfill[\pageref{Ltopspace}] +% +% \quad|\bottomspace{|\meta{length}|}| +% \hfill[\pageref{Lbottomspace}] +% +% \quad|\bbottomspace{|\meta{length}|}| +% \hfill[\pageref{Lbottomspace}] +% +% \quad|\featurerule{|\meta{length}|}| +% \hfill[\pageref{Lfeaturerule}] +% +% \quad|\bargraphstretch{|\meta{factor}|}| +% \hfill[\pageref{Lbargraphstretch}] +% +% \quad|\colorscalestretch{|\meta{factor}|}| +% \hfill[\pageref{Lcolorgrahstretch}] +% +% \quad|\codon{|\meta{amino acid}|}{|\meta{triplet1,\ldots, triplet n}|}| +% \hfill[\pageref{Lcodon}] +% +% \quad|\geneticcode{|\meta{filename}|}| +% \hfill[\pageref{Lgeneticcode}] +% +% \quad|\backtranslabel[|\meta{size}|]{|\meta{style}|}| +% \hfill[\pageref{Lbacktranslabel}] +% +% \quad|\backtranstext[|\meta{size}|]{|\meta{style}|}| +% \hfill[\pageref{Lbacktranstext}] +% +% \begin{tabbing} +% \quad\quad\quad|{|\meta{style}|}|\ \= = |{horizontal}|\\ +% \> = |{alternating}|\\ +% \> = |{zigzag}|\\ +% \> = |{oblique}|\\ +% \> = |{vertical}| +% \end{tabbing} +% +% \vspace{1.5\baselineskip} +% +% +% \textbf{Including secondary structure information} +% \medskip +% +% \quad|\includeDSSP[make new]{|\meta{seqref}|}{|\meta{filename}|}| +% \hfill[\pageref{LincludeDSSP}] +% +% \quad|\includeSTRIDE[make new]{|\meta{seqref}|}{|\meta{filename}|}| +% \hfill[\pageref{LincludeSTRIDE}] +% +% \quad|\includePHDsec[make new]{|\meta{seqref}|}{|\meta{filename}|}| +% \hfill[\pageref{LincludePHDsec}] +% +% \quad|\includePHDtopo[make new]{|\meta{seqref}|}{|\meta{filename}|}| +% \hfill[\pageref{LincludePHDtopo}] +% +% \quad|\includeHMMTOP[make new]{|\meta{seqref}|[|\meta{seqref}|]}{|\meta{filename}|}| +% \hfill[\pageref{LincludeHMMTOP}] +% +% \quad|\showonDSSP{|\meta{structures}|}| +% \hfill[\pageref{LshowonDSSP}] +% +% \quad|\showonSTRIDE{|\meta{structures}|}| +% \hfill[\pageref{LshowonSTRIDE}] +% +% \quad|\showonPHDsec{|\meta{structures}|}| +% \hfill[\pageref{LshowonPHDsec}] +% +% \quad|\showonPHDtopo{|\meta{structures}|}| +% \hfill[\pageref{LshowonPHDtopo}] +% +% \quad|\showonHMMTOP{|\meta{structures}|}| +% \hfill[\pageref{LshowonHMMTOP}] +% +% \quad|\hideonDSSP{|\meta{structures}|}| +% \hfill[\pageref{LhideonDSSP}] +% +% \quad|\hideonSTRIDE{|\meta{structures}|}| +% \hfill[\pageref{LhideonSTRIDE}] +% +% \quad|\hideonPHDsec{|\meta{structures}|}| +% \hfill[\pageref{LhideonPHDsec}] +% +% \quad|\hideonPHDtopo{|\meta{structures}|}| +% \hfill[\pageref{LhideonPHDtopo}] +% +% \quad|\hideonHMMTOP{|\meta{structures}|}| +% \hfill[\pageref{LhideonHMMTOP}] +% +% \quad|\appearance{|\meta{type}|}{|\meta{position}|}{|\meta{labelstyle}|}{|\meta{text}|}| +% \hfill[\pageref{Lappearance}] +% +% \quad|\numcount| +% \hfill[\pageref{Lnumcount}] +% +% \quad|\alphacount| +% \hfill[\pageref{Lalphacount}] +% +% \quad|\Alphacount| +% \hfill[\pageref{LAlphacount}] +% +% \quad|\romancount| +% \hfill[\pageref{Lromancount}] +% +% \quad|\Romancount| +% \hfill[\pageref{LRomancount}] +% +% \quad|\firstcolumnDSSP| +% \hfill[\pageref{LfirstcolumnDSSP}] +% +% \quad|\secondcolumnDSSP| +% \hfill[\pageref{LsecondcolumnDSSP}] +% +% \vspace{1.5\baselineskip} +% +% \newpage +% +% \textbf{Displaying and building legends} +% \medskip +% +% \quad|\showlegend| +% \hfill[\pageref{Lshowlegend}] +% +% \quad|\hidelegend| +% \hfill[\pageref{Lhidelegend}] +% +% \quad|\movelegend{|\meta{x-offset}|}{|\meta{y-offset}|}| +% \hfill[\pageref{Lmovelegend}] +% +% \quad|\germanlanguage|, |\spanishlanguage|, |\englishlanguage| +% \hfill[\pageref{Lgermanlanguage}] +% +% \quad|\legendcolor{|\meta{color}|}| +% \hfill[\pageref{Llegendcolor}] +% +% \quad|\shadebox{|\meta{color}|}| +% \hfill[\pageref{Lshadebox}] +% +% \vspace{1.5\baselineskip} +% +% +% \textbf{Adding captions to the alignment} +% \medskip +% +% \quad|\showcaption[|\meta{position}|]{|\meta{text}|}| +% \hfill[\pageref{Lshowcaption}] +% +% \quad|\shortcaption{|\meta{text}|}| +% \hfill[\pageref{Lshortcaption}] +% +% \vspace{1.5\baselineskip} +% +% \textbf{Font handling} +% \medskip +% +% \quad|\setfamily{|\meta{text}|}{|\meta{family}|}| +% \hfill[\pageref{Lsetfamily}] +% +% \quad|\setseries{|\meta{text}|}{|\meta{series}|}| +% \hfill[\pageref{Lsetseries}] +% +% \quad|\setshape{|\meta{text}|}{|\meta{shape}|}| +% \hfill[\pageref{Lsetshape}] +% +% \quad|\setsize{|\meta{text}|}{|\meta{size}|}| +% \hfill[\pageref{Lsetsize}] +% +% \quad|\setfont{|\meta{text}|}{|\meta{family}|}{|\meta{series}|}{|\meta{shape}|}{|\meta{size}|}| +% \hfill[\pageref{Lsetfont}] +% +% \medskip +% +% \quad |\featuresrm| \quad |\featurestiny| \hfill[\pageref{Lfeaturesrm}] +% +% \quad |\featuressf| \quad |\featuresscriptsize| +% +% \quad |\featurestt| \quad |\featuresfootnotesize| +% +% \quad |\featuresbf| \quad |\featuressmall| +% +% \quad |\featuresmd| \quad |\featuresnormalsize| +% +% \quad |\featuresit| \quad |\featureslarge| +% +% \quad |\featuressl| \quad |\featuresLarge| +% +% \quad |\featuressc| \quad |\featuresLARGE| +% +% \quad |\featuresup| \quad |\featureshuge| +% +% \quad | | \quad |\featuresHuge| +% \medskip +% +% Corresponding sets are provided for the +% numbering (|\numberingrm| etc.), +% featurestyles (|featurestylesrm| etc.), names (|\namesrm| etc.), +% residues (|\residuesrm| etc.) and +% legend texts (|legendrm| etc.). +% \bigskip +% +% \textbf{Goodies---molweight and charge} +% \medskip +% +% \quad|\molweight{|\meta{seqref}|}{|\meta{Da/kDa}|}| +% \hfill[\pageref{Lmolweight}] +% +% \quad|\charge{|\meta{seqref}|}{|\meta{i/o/N/C}|}| +% \hfill[\pageref{Lcharge}] +% +% +% \StopEventually{% +% \newpage +% \section{References} +% [1] \textsc{Carlisle, D.} The Standard \LaTeX{} `Graphics +% Bundle', |color.sty|. +% +% [2] \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. +% +% [3] \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. +% +% [4] \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. +% +% [5] \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. +% +% [6] \textsc{Fr\"ohlich, K.-U.} (1994) Sequence similarity +% presenter: a tool for the graphic display of similarities +% of long sequences for use in presentations. +% \newblock \textit{Comput. Applic. Biosci.}: +% \textbf{10}, 179--183. +% +% [7] \textsc{Kabsch, W.; Sander, C.} (1983) Dictionary of +% protein secondary structure: pattern recognition of +% hydrogen-bonded and geometrical features. +% \newblock \textit{Biopolymers}: \textbf{22}, 2577--2637. +% +% [8] \textsc{Frishman, D.; Argos, P.} (1995) Knowledge-based +% protein secondary structure assignment. +% \newblock \textit{Proteins: structure, function and +% genetics}: \textbf{23}, 566--579. +% +% [9] \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. +% +% [10] \textsc{Tusnady, G.E.; Simon, I.} (2001) +% The HMMTOP transmembrane topology prediction server. +% \newblock \textit{Bioinformatics}: \textbf{17}, 849-850. +% +% [11] \textsc{Rokicki, T.} DVIPS: A \TeX{} driver. +% +% } +% \section{Implementation} +% \subsection{Documentation Driver} +% \begin{macrocode} +%<*driver> +\documentclass[12pt,a4paper]{ltxdoc} +\usepackage{texshade} +\openin\structurefile = hyperref.sty +\ifeof\structurefile + \else + \usepackage[colorlinks]{hyperref} + \fi +\closein\structurefile +\DisableCrossrefs +\sloppy +\def\BioTeX{\textsc{Bio}\kern-0.5ex\TeX} +\def\TeXtopo{\mbox{\TeX\textsf{topo}}} +\begin{document} + \OnlyDescription + \DocInput{texshade.dtx} +\end{document} +%</driver> +% \end{macrocode} +% \subsection{\texttt{texshade.sty}---no comments} +% \begin{macrocode} +%<*texshade> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{texshade}[2005/04/13 LaTeX TeXshade (v1.12)] +\message{Package `texshade', Version 1.12 of 2005/09/20.} + +\PassOptionsToPackage{dvips}{color} +\DeclareOption*{% + \PassOptionsToPackage{\CurrentOption}{color}% +} +\ProcessOptions +\RequirePackage{color} + +\expandafter\ifx\csname TeXshade\endcsname\relax \else \endinput \fi + +\expandafter\ifx\csname TeXtopo\endcsname\relax \else + \PackageError{TeXtopo} + {TeXtopo loaded before TeXshade} + {\MessageBreak + For the proper function of the TeXtopo/TeXshade combo the \MessageBreak + TeXshade package must be loaded before the TeXtopo package.\MessageBreak + Please change the order of the \noexpand\usepackage commands in your + \MessageBreak + document header section or use the `biotex.sty'.\MessageBreak\MessageBreak + Quit here by typing \space X <return>. \MessageBreak +} +\fi + +\catcode`\@11 + +\newread\structurefile \newwrite\featurefile +\newread\alignfile + +\expandafter\ifx\csname blacktriangleright\endcsname\relax + \openin\structurefile = amssymb.sty + \ifeof\structurefile + \message{<AMS symbol style `amssymb.sty' not installed - using round heads>} + \def\blacktriangleright{% + \rule[\width@tmp]{0.65ex}{\temp@@length}\kern-0.55ex\ensuremath{\bullet}% + } + \def\blacktriangleleft{% + \ensuremath{\bullet}\kern-0.55ex\rule[\width@tmp]{0.65ex}{\temp@@length}% + } + \else \RequirePackage[]{amssymb} \fi + \closein\structurefile +\fi + +\newcount\loopcount \newcount\innerloopcount \newcount\outerloopcount +\newcount\seq@count \newcount\killseq@count +\newcount\seq@percent \newcount\res@count +\newcount\seq@pointer \newcount\pos@count +\newcount\res@perline \newcount\end@count +\newcount\cons@count \expandafter\newcount\csname res@count0\endcsname +\newcount\temp@count \newcount\triple@count + +\newlength\box@width \newlength\name@width +\newlength\box@depth \newlength\width@tmp +\newlength\box@height \newlength\number@width +\newlength\char@stretch \newlength\line@stretch +\newlength\center@fill \newlength\arrow@width +\newlength\arrow@height \newlength\rule@thick +\newlength\arrow@thick +\newlength\equal@width \newlength\equal@tmp +\newlength\equal@height \newlength\temp@@length +\newlength\vspace@legend +\newlength\hspace@legend + +\newif\ifletter \newif\ifnumber +\newif\ifnewres \newif\ifall@shade +\newif\ifnames@right \newif\ifnumbers@left +\newif\ifhide@cons \newif\ifshow@cons +\newif\iffuncmode \newif\iflegend@ +\newif\ifnumbers@ \newif\ifnames@ +\newif\ifgerm@n \newif\ifsp@nish +\newif\ifrpl@fix +\newif\ifnosh@de \newif\ifregionalshade +\newif\ifstart@ \newif\ifstop@ +\newif\iftopfeature \newif\ifbottomfeature +\newif\ifttopfeature \newif\ifbbottomfeature +\newif\ifall@fshade \newif\ifregionalemph +\newif\ifframe@ \newif\ifregionaltint +\newif\ifhidechar \newif\ifsh@wg@ps +\newif\ifsimmode +\newif\ifregionaltintnow +\newif\ifregionalemphnow +\newif\ifregionalshadenow +\newif\iftopfeaturenow +\newif\ifttopfeaturenow +\newif\ifbottomfeaturenow +\newif\ifbbottomfeaturenow +\newif\ifframenow +\newif\iffix@ + +\expandafter\ifx\csname mdqon\endcsname\relax + \germ@nfalse \sp@nishfalse \def\cons@name{consensus} +\else \germ@ntrue \sp@nishfalse \def\cons@name{Konsensus} \fi + +\def\n@me{Name:} \def\@msf{MSF:} \def\he@derend{//} \def\ampers@nd{&} +\def\comm@{,} \def\@loc{LOC} \def\@asg{ASG} \def\@t{@} \def\@HP{>HP:} +\def\gre@ter{>} \def\sm@ller{<} \def\N@{N} \def\equ@l{=} \def\H@{H} +\def\gap@char{.} \def\yes{yes} \def\y@{y} \def\n@{n} \def\o@{o} \def\d@t{.} +\def\gap@rule{\rule[0.3\box@height]{\box@width}{\gap@rulethick}} +\def\fgroup@num{0} \def\max@seqnumber{0} \def\@lign@count{0} +\def\resn@m@tch{upper} \def\ressimm@tch{upper} +\def\resm@tch{upper} \def\res@llm@tch{upper} +\def\tr@ns{translate} \def\gr@ydef@ult{GrayDefault} +\xdef\par@{\expandafter\string\par} +\expandafter\def\csname fg@textcolor/\endcsname{White} +\expandafter\def\csname fg@color/\endcsname{White} +\expandafter\def\csname func@style/\endcsname{\csname textup\endcsname} +\expandafter\def\csname func@style*\endcsname{\csname textup\endcsname} +\expandafter\def\csname funcm@tch/\endcsname{upper} +\expandafter\def\csname funcm@tch*\endcsname{upper} + +\setlength\hspace@legend{0pt} \setlength\vspace@legend{0pt} +\triple@count=0 \cons@count=0 + +\def\clear@sims{% + \expandafter\xdef\csname \prfx simA\endcsname{(1)A} + \expandafter\xdef\csname \prfx simB\endcsname{(1)B} + \expandafter\xdef\csname \prfx simC\endcsname{(1)C} + \expandafter\xdef\csname \prfx simD\endcsname{(1)D} + \expandafter\xdef\csname \prfx simE\endcsname{(1)E} + \expandafter\xdef\csname \prfx simF\endcsname{(1)F} + \expandafter\xdef\csname \prfx simG\endcsname{(1)G} + \expandafter\xdef\csname \prfx simH\endcsname{(1)H} + \expandafter\xdef\csname \prfx simI\endcsname{(1)I} + \expandafter\xdef\csname \prfx simJ\endcsname{(1)J} + \expandafter\xdef\csname \prfx simK\endcsname{(1)K} + \expandafter\xdef\csname \prfx simL\endcsname{(1)L} + \expandafter\xdef\csname \prfx simM\endcsname{(1)M} + \expandafter\xdef\csname \prfx simN\endcsname{(1)N} + \expandafter\xdef\csname \prfx simO\endcsname{(1)O} + \expandafter\xdef\csname \prfx simP\endcsname{(1)P} + \expandafter\xdef\csname \prfx simQ\endcsname{(1)Q} + \expandafter\xdef\csname \prfx simR\endcsname{(1)R} + \expandafter\xdef\csname \prfx simS\endcsname{(1)S} + \expandafter\xdef\csname \prfx simT\endcsname{(1)T} + \expandafter\xdef\csname \prfx simU\endcsname{(1)U} + \expandafter\xdef\csname \prfx simV\endcsname{(1)V} + \expandafter\xdef\csname \prfx simW\endcsname{(1)W} + \expandafter\xdef\csname \prfx simX\endcsname{(1)X} + \expandafter\xdef\csname \prfx simY\endcsname{(1)Y} + \expandafter\xdef\csname \prfx simZ\endcsname{(1)Z} +} + +\xdef\pepmwA{711} \xdef\pepmwB{1146} \xdef\pepmwC{1032} +\xdef\pepmwD{1151} \xdef\pepmwE{1291} \xdef\pepmwF{1472} +\xdef\pepmwG{571} \xdef\pepmwH{1372} \xdef\pepmwI{1132} +\xdef\pepmwJ{0} \xdef\pepmwK{1282} \xdef\pepmwL{1132} +\xdef\pepmwM{1312} \xdef\pepmwN{1141} \xdef\pepmwO{0} +\xdef\pepmwP{971} \xdef\pepmwQ{1281} \xdef\pepmwR{1562} +\xdef\pepmwS{871} \xdef\pepmwT{1011} \xdef\pepmwU{0} +\xdef\pepmwV{991} \xdef\pepmwW{1862} \xdef\pepmwX{1282} +\xdef\pepmwY{1632} \xdef\pepmwZ{1286} + +\xdef\DNAmwA{3462} \xdef\DNAmwB{0} \xdef\DNAmwC{3222} +\xdef\DNAmwD{0} \xdef\DNAmwE{0} \xdef\DNAmwF{0} +\xdef\DNAmwG{3622} \xdef\DNAmwH{0} \xdef\DNAmwI{0} +\xdef\DNAmwJ{0} \xdef\DNAmwK{0} \xdef\DNAmwL{0} +\xdef\DNAmwM{0} \xdef\DNAmwN{0} \xdef\DNAmwO{0} +\xdef\DNAmwP{0} \xdef\DNAmwQ{0} \xdef\DNAmwR{0} +\xdef\DNAmwS{0} \xdef\DNAmwT{3372} \xdef\DNAmwU{3232} +\xdef\DNAmwV{0} \xdef\DNAmwW{0} \xdef\DNAmwX{0} +\xdef\DNAmwY{0} \xdef\DNAmwZ{0} + +\xdef\pepchargeA{0} \xdef\pepchargeB{0} \xdef\pepchargeC{-30} +\xdef\pepchargeD{-1000} \xdef\pepchargeE{-1000} \xdef\pepchargeF{0} +\xdef\pepchargeG{0} \xdef\pepchargeH{165} \xdef\pepchargeI{0} +\xdef\pepchargeJ{0} \xdef\pepchargeK{1000} \xdef\pepchargeL{0} +\xdef\pepchargeM{0} \xdef\pepchargeN{0} \xdef\pepchargeO{0} +\xdef\pepchargeP{0} \xdef\pepchargeQ{0} \xdef\pepchargeR{1000} +\xdef\pepchargeS{0} \xdef\pepchargeT{0} \xdef\pepchargeU{0} +\xdef\pepchargeV{0} \xdef\pepchargeW{0} \xdef\pepchargeX{0} +\xdef\pepchargeY{0} \xdef\pepchargeZ{0} +\xdef\chargeNterm{910} \xdef\chargeCterm{-1000} + +\xdef\chargeA{0} \xdef\chargeB{0} \xdef\chargeC{0} +\xdef\chargeD{-50} \xdef\chargeE{-50} \xdef\chargeF{0} +\xdef\chargeG{0} \xdef\chargeH{30} \xdef\chargeI{0} +\xdef\chargeJ{0} \xdef\chargeK{50} \xdef\chargeL{0} +\xdef\chargeM{0} \xdef\chargeN{0} \xdef\chargeO{0} +\xdef\chargeP{0} \xdef\chargeQ{0} \xdef\chargeR{50} +\xdef\chargeS{0} \xdef\chargeT{0} \xdef\chargeU{0} +\xdef\chargeV{0} \xdef\chargeW{0} \xdef\chargeX{0} +\xdef\chargeY{0} \xdef\chargeZ{0} + +\xdef\molwA{11} \xdef\molwB{45} \xdef\molwC{36} +\xdef\molwD{45} \xdef\molwE{66} \xdef\molwF{70} +\xdef\molwG{1} \xdef\molwH{62} \xdef\molwI{44} +\xdef\molwJ{N} \xdef\molwK{55} \xdef\molwL{44} +\xdef\molwM{58} \xdef\molwN{44} \xdef\molwO{N} +\xdef\molwP{31} \xdef\molwQ{55} \xdef\molwR{77} +\xdef\molwS{19} \xdef\molwT{34} \xdef\molwU{N} +\xdef\molwV{33} \xdef\molwW{100} \xdef\molwX{55} +\xdef\molwY{82} \xdef\molwZ{66} + +\xdef\HydroA{21} \xdef\HydroB{N} \xdef\HydroC{10} +\xdef\HydroD{-31} \xdef\HydroE{-25} \xdef\HydroF{41} +\xdef\HydroG{16} \xdef\HydroH{-14} \xdef\HydroI{47} +\xdef\HydroJ{N} \xdef\HydroK{-52} \xdef\HydroL{36} +\xdef\HydroM{22} \xdef\HydroN{-27} \xdef\HydroO{N} +\xdef\HydroP{4} \xdef\HydroQ{-29} \xdef\HydroR{-53} +\xdef\HydroS{-6} \xdef\HydroT{-2} \xdef\HydroU{N} +\xdef\HydroV{37} \xdef\HydroW{28} \xdef\HydroX{N} +\xdef\HydroY{9} \xdef\HydroZ{N} + +\xdef\consCC{100} \xdef\consCS{67} \xdef\consCT{33} \xdef\consCP{33} \xdef\consCA{33} +\xdef\consCG{50} \xdef\consCN{33} \xdef\consCD{17} \xdef\consCE{0} \xdef\consCQ{17} +\xdef\consCH{33} \xdef\consCR{33} \xdef\consCK{0} \xdef\consCM{33} \xdef\consCI{33} +\xdef\consCL{33} \xdef\consCV{33} \xdef\consCF{50} \xdef\consCY{50} \xdef\consCW{50} +\expandafter\xdef\csname consC.\endcsname{0} + +\xdef\consSC{67} \xdef\consSS{100} \xdef\consST{83} \xdef\consSP{67} \xdef\consSA{83} +\xdef\consSG{83} \xdef\consSN{83} \xdef\consSD{67} \xdef\consSE{50} \xdef\consSQ{50} +\xdef\consSH{50} \xdef\consSR{50} \xdef\consSK{50} \xdef\consSM{33} \xdef\consSI{33} +\xdef\consSL{33} \xdef\consSV{67} \xdef\consSF{50} \xdef\consSY{50} \xdef\consSW{33} +\expandafter\xdef\csname consS.\endcsname{0} + +\xdef\consTC{33} \xdef\consTS{83} \xdef\consTT{100} \xdef\consTP{67} \xdef\consTA{83} +\xdef\consTG{67} \xdef\consTN{67} \xdef\consTD{50} \xdef\consTE{50} \xdef\consTQ{50} +\xdef\consTH{33} \xdef\consTR{50} \xdef\consTK{67} \xdef\consTM{50} \xdef\consTI{50} +\xdef\consTL{33} \xdef\consTV{67} \xdef\consTF{33} \xdef\consTY{33} \xdef\consTW{17} +\expandafter\xdef\csname consT.\endcsname{0} + +\xdef\consPC{33} \xdef\consPS{67} \xdef\consPT{67} \xdef\consPP{100} \xdef\consPA{83} +\xdef\consPG{67} \xdef\consPN{33} \xdef\consPD{50} \xdef\consPE{50} \xdef\consPQ{50} +\xdef\consPH{50} \xdef\consPR{50} \xdef\consPK{33} \xdef\consPM{33} \xdef\consPI{33} +\xdef\consPL{50} \xdef\consPV{67} \xdef\consPF{50} \xdef\consPY{33} \xdef\consPW{33} +\expandafter\xdef\csname consP.\endcsname{0} + +\xdef\consAC{33} \xdef\consAS{83} \xdef\consAT{83} \xdef\consAP{83} \xdef\consAA{100} +\xdef\consAG{83} \xdef\consAN{50} \xdef\consAD{67} \xdef\consAE{67} \xdef\consAQ{50} +\xdef\consAH{33} \xdef\consAR{33} \xdef\consAK{50} \xdef\consAM{50} \xdef\consAI{33} +\xdef\consAL{33} \xdef\consAV{83} \xdef\consAF{50} \xdef\consAY{33} \xdef\consAW{33} +\expandafter\xdef\csname consA.\endcsname{0} + +\xdef\consGC{50} \xdef\consGS{83} \xdef\consGT{67} \xdef\consGP{67} \xdef\consGA{83} +\xdef\consGG{100} \xdef\consGN{50} \xdef\consGD{67} \xdef\consGE{67} \xdef\consGQ{33} +\xdef\consGH{17} \xdef\consGR{50} \xdef\consGK{33} \xdef\consGM{17} \xdef\consGI{33} +\xdef\consGL{33} \xdef\consGV{67} \xdef\consGF{33} \xdef\consGY{33} \xdef\consGW{50} +\expandafter\xdef\csname consG.\endcsname{0} + +\xdef\consNC{33} \xdef\consNS{83} \xdef\consNT{67} \xdef\consNP{33} \xdef\consNA{50} +\xdef\consNG{50} \xdef\consNN{100} \xdef\consND{83} \xdef\consNE{67} \xdef\consNQ{50} +\xdef\consNH{67} \xdef\consNR{50} \xdef\consNK{67} \xdef\consNM{17} \xdef\consNI{33} +\xdef\consNL{17} \xdef\consNV{33} \xdef\consNF{33} \xdef\consNY{50} \xdef\consNW{0} +\expandafter\xdef\csname consN.\endcsname{0} + +\xdef\consDC{17} \xdef\consDS{67} \xdef\consDT{50} \xdef\consDP{50} \xdef\consDA{67} +\xdef\consDG{67} \xdef\consDN{83} \xdef\consDD{100} \xdef\consDE{83} \xdef\consDQ{67} +\xdef\consDH{50} \xdef\consDR{33} \xdef\consDK{50} \xdef\consDM{33} \xdef\consDI{17} +\xdef\consDL{17} \xdef\consDV{50} \xdef\consDF{17} \xdef\consDY{33} \xdef\consDW{0} +\expandafter\xdef\csname consD.\endcsname{0} + +\xdef\consEC{0} \xdef\consES{50} \xdef\consET{50} \xdef\consEP{50} \xdef\consEA{67} +\xdef\consEG{67} \xdef\consEN{67} \xdef\consED{83} \xdef\consEE{100} \xdef\consEQ{67} +\xdef\consEH{33} \xdef\consER{50} \xdef\consEK{67} \xdef\consEM{33} \xdef\consEI{17} +\xdef\consEL{17} \xdef\consEV{67} \xdef\consEF{33} \xdef\consEY{17} \xdef\consEW{17} +\expandafter\xdef\csname consE.\endcsname{0} + +\xdef\consQC{17} \xdef\consQS{50} \xdef\consQT{50} \xdef\consQP{50} \xdef\consQA{50} +\xdef\consQG{33} \xdef\consQN{50} \xdef\consQD{67} \xdef\consQE{67} \xdef\consQQ{100} +\xdef\consQH{67} \xdef\consQR{50} \xdef\consQK{67} \xdef\consQM{33} \xdef\consQI{17} +\xdef\consQL{33} \xdef\consQV{33} \xdef\consQF{17} \xdef\consQY{33} \xdef\consQW{17} +\expandafter\xdef\csname consQ.\endcsname{0} + +\xdef\consHC{33} \xdef\consHS{50} \xdef\consHT{33} \xdef\consHP{50} \xdef\consHA{33} +\xdef\consHG{17} \xdef\consHN{67} \xdef\consHD{50} \xdef\consHE{33} \xdef\consHQ{67} +\xdef\consHH{100} \xdef\consHR{67} \xdef\consHK{50} \xdef\consHM{33} \xdef\consHI{33} +\xdef\consHL{50} \xdef\consHV{17} \xdef\consHF{33} \xdef\consHY{50} \xdef\consHW{17} +\expandafter\xdef\csname consH.\endcsname{0} + +\xdef\consRC{33} \xdef\consRS{50} \xdef\consRT{50} \xdef\consRP{50} \xdef\consRA{33} +\xdef\consRG{50} \xdef\consRN{50} \xdef\consRD{33} \xdef\consRE{50} \xdef\consRQ{50} +\xdef\consRH{67} \xdef\consRR{100} \xdef\consRK{83} \xdef\consRM{33} \xdef\consRI{33} +\xdef\consRL{33} \xdef\consRV{33} \xdef\consRF{17} \xdef\consRY{17} \xdef\consRW{33} +\expandafter\xdef\csname consR.\endcsname{0} + +\xdef\consKC{0} \xdef\consKS{50} \xdef\consKT{67} \xdef\consKP{33} \xdef\consKA{50} +\xdef\consKG{33} \xdef\consKN{67} \xdef\consKD{50} \xdef\consKE{67} \xdef\consKQ{67} +\xdef\consKH{50} \xdef\consKR{83} \xdef\consKK{100} \xdef\consKM{33} \xdef\consKI{33} +\xdef\consKL{33} \xdef\consKV{50} \xdef\consKF{17} \xdef\consKY{17} \xdef\consKW{17} +\expandafter\xdef\csname consK.\endcsname{0} + +\xdef\consMC{33} \xdef\consMS{50} \xdef\consMT{50} \xdef\consMP{33} \xdef\consMA{50} +\xdef\consMG{17} \xdef\consMN{17} \xdef\consMD{33} \xdef\consME{33} \xdef\consMQ{33} +\xdef\consMH{33} \xdef\consMR{33} \xdef\consMK{33} \xdef\consMM{100} \xdef\consMI{67} +\xdef\consML{83} \xdef\consMV{67} \xdef\consMF{50} \xdef\consMY{33} \xdef\consMW{50} +\expandafter\xdef\csname consM.\endcsname{0} + +\xdef\consIC{33} \xdef\consIS{33} \xdef\consIT{50} \xdef\consIP{33} \xdef\consIA{33} +\xdef\consIG{33} \xdef\consIN{33} \xdef\consID{17} \xdef\consIE{17} \xdef\consIQ{17} +\xdef\consIH{33} \xdef\consIR{33} \xdef\consIK{33} \xdef\consIM{67} \xdef\consII{100} +\xdef\consIL{83} \xdef\consIV{33} \xdef\consIF{67} \xdef\consIY{50} \xdef\consIW{50} +\expandafter\xdef\csname consI.\endcsname{0} + +\xdef\consLC{33} \xdef\consLS{33} \xdef\consLT{33} \xdef\consLP{50} \xdef\consLA{33} +\xdef\consLG{33} \xdef\consLN{17} \xdef\consLD{17} \xdef\consLE{17} \xdef\consLQ{33} +\xdef\consLH{50} \xdef\consLR{33} \xdef\consLK{33} \xdef\consLM{83} \xdef\consLI{83} +\xdef\consLL{100} \xdef\consLV{33} \xdef\consLF{67} \xdef\consLY{50} \xdef\consLW{67} +\expandafter\xdef\csname consL.\endcsname{0} + +\xdef\consVC{33} \xdef\consVS{67} \xdef\consVT{67} \xdef\consVP{67} \xdef\consVA{83} +\xdef\consVG{67} \xdef\consVN{33} \xdef\consVD{50} \xdef\consVE{67} \xdef\consVQ{33} +\xdef\consVH{17} \xdef\consVR{33} \xdef\consVK{50} \xdef\consVM{67} \xdef\consVI{33} +\xdef\consVL{33} \xdef\consVV{100} \xdef\consVF{67} \xdef\consVY{50} \xdef\consVW{50} +\expandafter\xdef\csname consV.\endcsname{0} + +\xdef\consFC{50} \xdef\consFS{50} \xdef\consFT{33} \xdef\consFP{50} \xdef\consFA{50} +\xdef\consFG{33} \xdef\consFN{33} \xdef\consFD{17} \xdef\consFE{33} \xdef\consFQ{17} +\xdef\consFH{33} \xdef\consFR{17} \xdef\consFK{17} \xdef\consFM{50} \xdef\consFI{67} +\xdef\consFL{67} \xdef\consFV{67} \xdef\consFF{100} \xdef\consFY{83} \xdef\consFW{50} +\expandafter\xdef\csname consF.\endcsname{0} + +\xdef\consYC{50} \xdef\consYS{50} \xdef\consYT{33} \xdef\consYP{33} \xdef\consYA{33} +\xdef\consYG{33} \xdef\consYN{50} \xdef\consYD{33} \xdef\consYE{17} \xdef\consYQ{33} +\xdef\consYH{50} \xdef\consYR{17} \xdef\consYK{17} \xdef\consYM{33} \xdef\consYI{50} +\xdef\consYL{50} \xdef\consYV{50} \xdef\consYF{83} \xdef\consYY{100} \xdef\consYW{50} +\expandafter\xdef\csname consY.\endcsname{0} + +\xdef\consWC{50} \xdef\consWS{33} \xdef\consWT{17} \xdef\consWP{33} \xdef\consWA{33} +\xdef\consWG{50} \xdef\consWN{0} \xdef\consWD{0} \xdef\consWE{17} \xdef\consWQ{17} +\xdef\consWH{17} \xdef\consWR{33} \xdef\consWK{17} \xdef\consWM{50} \xdef\consWI{50} +\xdef\consWL{67} \xdef\consWV{50} \xdef\consWF{50} \xdef\consWY{50} \xdef\consWW{100} +\expandafter\xdef\csname consW.\endcsname{0} + +\expandafter\xdef\csname cons.C\endcsname{0} +\expandafter\xdef\csname cons.S\endcsname{0} +\expandafter\xdef\csname cons.T\endcsname{0} +\expandafter\xdef\csname cons.P\endcsname{0} +\expandafter\xdef\csname cons.A\endcsname{0} +\expandafter\xdef\csname cons.G\endcsname{0} +\expandafter\xdef\csname cons.N\endcsname{0} +\expandafter\xdef\csname cons.D\endcsname{0} +\expandafter\xdef\csname cons.E\endcsname{0} +\expandafter\xdef\csname cons.Q\endcsname{0} +\expandafter\xdef\csname cons.H\endcsname{0} +\expandafter\xdef\csname cons.R\endcsname{0} +\expandafter\xdef\csname cons.K\endcsname{0} +\expandafter\xdef\csname cons.M\endcsname{0} +\expandafter\xdef\csname cons.I\endcsname{0} +\expandafter\xdef\csname cons.L\endcsname{0} +\expandafter\xdef\csname cons.V\endcsname{0} +\expandafter\xdef\csname cons.F\endcsname{0} +\expandafter\xdef\csname cons.Y\endcsname{0} +\expandafter\xdef\csname cons.W\endcsname{0} +\expandafter\xdef\csname cons..\endcsname{0} + +\def\c@d@ns{% +\codon{A}{GCA,GCG,GCC,GCT,GCU,GCN} +\codon{B}{---} +\codon{C}{TGC,TGT,UGC,UGU,TGY} +\codon{D}{GAC,GAT,GAU,GAY} +\codon{E}{GAA,GAG,GAR} +\codon{F}{TTC,TTT,UUC,UUU,TTY} +\codon{G}{GGA,GGG,GGC,GGT,GGU,GGN} +\codon{H}{CAC,CAT,CAY} +\codon{I}{ATA,ATC,ATT,AUA,AUC,AUU,ATH} +\codon{J}{---} +\codon{K}{AAA,AAG,AAG,AAR} +\codon{L}{CTA,CTG,CTC,CTT,TTA,TTG,CUG,CUG,CUC,CUU,UUA,UUG,YTN} +\codon{M}{ATG,AUG,ATG} +\codon{N}{AAC,AAT,AAU,AAY} +\codon{O}{---} +\codon{P}{CCA,CCG,CCC,CCT,CCU,CCN} +\codon{Q}{CAA,CAG,CAR} +\codon{R}{AGA,AGG,CGA,CGG,CGC,CGT,CGU,MGN} +\codon{S}{TCT,TCC,TCG,TCA,AGT,AGC,UCU,UCC,UCG,UCA,AGU,WSN} +\codon{T}{ACT,ACC,ACG,ACA,ACU,ACN} +\codon{U}{---} +\codon{V}{GTA,GTG,GTC,GTT,GUA,GUG,GUC,GUU,GTN} +\codon{W}{TGG,UGG,TGG} +\codon{X}{---} +\codon{Y}{TAC,TAT,UAC,UAU,TAY} +\codon{Z}{---} +\codon{.}{TAA,TAG,TGA,UAA,UAG,UGA,TRR} +} + +\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{TurquoisQ} {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{GrayDefault} {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} +\definecolor{LightWhite} {cmyk}{0,0,0,0} +\definecolor{LightGray0} {cmyk}{0,0,0,0} +\definecolor{LightGray5} {cmyk}{0,0,0,0.02} +\definecolor{LightGray10} {cmyk}{0,0,0,0.05} +\definecolor{LightGray15} {cmyk}{0,0,0,0.07} +\definecolor{LightGray20} {cmyk}{0,0,0,0.10} +\definecolor{LightGray25} {cmyk}{0,0,0,0.12} +\definecolor{LightGray30} {cmyk}{0,0,0,0.15} +\definecolor{LightLightGray} {cmyk}{0,0,0,0.16} +\definecolor{LightGray35} {cmyk}{0,0,0,0.17} +\definecolor{LightGray40} {cmyk}{0,0,0,0.20} +\definecolor{LightGray45} {cmyk}{0,0,0,0.22} +\definecolor{LightGray50} {cmyk}{0,0,0,0.25} +\definecolor{LightGray} {cmyk}{0,0,0,0.25} +\definecolor{LightGray55} {cmyk}{0,0,0,0.27} +\definecolor{LightGray60} {cmyk}{0,0,0,0.30} +\definecolor{LightGray65} {cmyk}{0,0,0,0.32} +\definecolor{LightDarkGray} {cmyk}{0,0,0,0.33} +\definecolor{LightGray70} {cmyk}{0,0,0,0.35} +\definecolor{LightGray75} {cmyk}{0,0,0,0.37} +\definecolor{LightGray80} {cmyk}{0,0,0,0.40} +\definecolor{LightGray85} {cmyk}{0,0,0,0.42} +\definecolor{LightGray90} {cmyk}{0,0,0,0.45} +\definecolor{LightGray95} {cmyk}{0,0,0,0.47} +\definecolor{LightBlack} {cmyk}{0,0,0,0.50} +\definecolor{LightGray100} {cmyk}{0,0,0,0.50} +\definecolor{LightLightGreenYellow} {cmyk}{0.04,0,0.17,0} +\definecolor{LightLightYellow} {cmyk}{0,0,0.25,0} +\definecolor{LightLightGoldenrod} {cmyk}{0,0.02,0.21,0} +\definecolor{LightLightDandelion} {cmyk}{0,0.07,0.21,0} +\definecolor{LightLightApricot} {cmyk}{0,0.08,0.13,0} +\definecolor{LightLightPeach} {cmyk}{0,0.12,0.17,0} +\definecolor{LightLightMelon} {cmyk}{0,0.11,0.12,0} +\definecolor{LightLightYellowOrange} {cmyk}{0,0.10,0.25,0} +\definecolor{LightLightOrange} {cmyk}{0,0.15,0.22,0} +\definecolor{LightLightBurntOrange} {cmyk}{0,0.13,0.25,0} +\definecolor{LightLightBittersweet} {cmyk}{0,0.19,0.25,0.06} +\definecolor{LightLightRedOrange} {cmyk}{0,0.14,0.22,0} +\definecolor{LightLightMahagony} {cmyk}{0,0.21,0.22,0.09} +\definecolor{LightLightMaroon} {cmyk}{0,0.22,0.17,0.08} +\definecolor{LightLightBrickRed} {cmyk}{0,0.22,0.23,0.07} +\definecolor{LightLightRed} {cmyk}{0,0.25,0.25,0} +\definecolor{LightLightOrangeRed} {cmyk}{0,0.25,0.12,0} +\definecolor{LightLightRubineRed} {cmyk}{0,0.25,0.03,0} +\definecolor{LightLightWildStrawberry}{cmyk}{0,0.24,0.10,0} +\definecolor{LightLightSalmon} {cmyk}{0,0.13,0.09,0} +\definecolor{LightLightCarnationPink} {cmyk}{0,0.16,0,0} +\definecolor{LightLightMagenta} {cmyk}{0,0.25,0,0} +\definecolor{LightLightVioletRed} {cmyk}{0,0.20,0,0} +\definecolor{LightLightRhodamine} {cmyk}{0,0.20,0,0} +\definecolor{LightLightMulberry} {cmyk}{0.08,0.22,0,0.005} +\definecolor{LightLightRedViolet} {cmyk}{0.02,0.22,0,0.08} +\definecolor{LightLightFuchsia} {cmyk}{0.12,0.23,0,0.02} +\definecolor{LightLightLavender} {cmyk}{0,0.12,0,0} +\definecolor{LightLightThistle} {cmyk}{0.03,0.15,0,0} +\definecolor{LightLightOrchid} {cmyk}{0.08,0.16,0,0} +\definecolor{LightLightDarkOrchid} {cmyk}{0.10,0.20,0.05,0} +\definecolor{LightLightPurple} {cmyk}{0.11,0.21,0,0} +\definecolor{LightLightPlum} {cmyk}{0.12,0.25,0,0} +\definecolor{LightLightViolet} {cmyk}{0.20,0.22,0,0} +\definecolor{LightLightRoyalPurple} {cmyk}{0.19,0.22,0,0} +\definecolor{LightLightBlueViolet} {cmyk}{0.21,0.23,0,0.01} +\definecolor{LightLightPeriwinkle} {cmyk}{0.14,0.14,0,0} +\definecolor{LightLightCadetBlue} {cmyk}{0.15,0.14,0.06,0} +\definecolor{LightLightCornflowerBlue}{cmyk}{0.16,0.03,0,0} +\definecolor{LightLightMidnightBlue} {cmyk}{0.24,0.03,0,0.11} +\definecolor{LightLightNavyBlue} {cmyk}{0.23,0.13,0,0} +\definecolor{LightLightRoyalBlue} {cmyk}{0.25,0.12,0,0} +\definecolor{LightLightBlue} {cmyk}{0.25,0.25,0,0} +\definecolor{LightLightCerulean} {cmyk}{0.23,0.03,0,0} +\definecolor{LightLightCyan} {cmyk}{0.25,0,0,0} +\definecolor{LightLightProcessBlue} {cmyk}{0.24,0,0,0} +\definecolor{LightLightSkyBlue} {cmyk}{0.15,0,0.03,0} +\definecolor{LightLightTurquoise} {cmyk}{0.21,0,0.05,0} +\definecolor{LightLightTealBlue} {cmyk}{0.21,0,0.08,0.005} +\definecolor{LightLightAquamarine} {cmyk}{0.20,0,0.07,0} +\definecolor{LightLightBlueGreen} {cmyk}{0.21,0,0.08,0} +\definecolor{LightLightEmerald} {cmyk}{0.25,0,0.12,0} +\definecolor{LightLightJungleGreen} {cmyk}{0.25,0,0.13,0} +\definecolor{LightLightSeaGreen} {cmyk}{0.17,0,0.12,0} +\definecolor{LightLightGreen} {cmyk}{0.25,0,0.25,0} +\definecolor{LightLightForestGreen} {cmyk}{0.23,0,0.22,0.03} +\definecolor{LightLightPineGreen} {cmyk}{0.23,0,0.15,0.06} +\definecolor{LightLightLimeGreen} {cmyk}{0.12,0,0.25,0} +\definecolor{LightLightYellowGreen} {cmyk}{0.11,0,0.18,0} +\definecolor{LightLightSpringGreen} {cmyk}{0.06,0,0.19,0} +\definecolor{LightLightOliveGreen} {cmyk}{0.16,0,0.24,0.10} +\definecolor{LightLightRawSienna} {cmyk}{0,0.18,0.25,0.11} +\definecolor{LightLightSepia} {cmyk}{0,0.22,0.25,0.17} +\definecolor{LightLightBrown} {cmyk}{0,0.20,0.25,0.15} +\definecolor{LightLightTan} {cmyk}{0.03,0.10,0.14,0} +\definecolor{LightLightWhite} {cmyk}{0,0,0,0} +\definecolor{LightLightGray0} {cmyk}{0,0,0,0} +\definecolor{LightLightGray5} {cmyk}{0,0,0,0.01} +\definecolor{LightLightGray10} {cmyk}{0,0,0,0.02} +\definecolor{LightLightGray15} {cmyk}{0,0,0,0.03} +\definecolor{LightLightGray20} {cmyk}{0,0,0,0.05} +\definecolor{LightLightGray25} {cmyk}{0,0,0,0.06} +\definecolor{LightLightGray30} {cmyk}{0,0,0,0.07} +\definecolor{LightLightLightGray} {cmyk}{0,0,0,0.08} +\definecolor{LightLightGray35} {cmyk}{0,0,0,0.09} +\definecolor{LightLightGray40} {cmyk}{0,0,0,0.10} +\definecolor{LightLightGray45} {cmyk}{0,0,0,0.11} +\definecolor{LightLightGray50} {cmyk}{0,0,0,0.12} +\definecolor{LightLightGray} {cmyk}{0,0,0,0.13} +\definecolor{LightLightGray55} {cmyk}{0,0,0,0.14} +\definecolor{LightLightGray60} {cmyk}{0,0,0,0.15} +\definecolor{LightLightGray65} {cmyk}{0,0,0,0.16} +\definecolor{LightLightDarkGray} {cmyk}{0,0,0,0.17} +\definecolor{LightLightGray70} {cmyk}{0,0,0,0.18} +\definecolor{LightLightGray75} {cmyk}{0,0,0,0.19} +\definecolor{LightLightGray80} {cmyk}{0,0,0,0.20} +\definecolor{LightLightGray85} {cmyk}{0,0,0,0.21} +\definecolor{LightLightGray90} {cmyk}{0,0,0,0.22} +\definecolor{LightLightGray95} {cmyk}{0,0,0,0.23} +\definecolor{LightLightBlack} {cmyk}{0,0,0,0.25} +\definecolor{LightLightGray100} {cmyk}{0,0,0,0.25} +\definecolor{LightLightLightGreenYellow} {cmyk}{0.02,0,0.08,0} +\definecolor{LightLightLightYellow} {cmyk}{0,0,0.12,0} +\definecolor{LightLightLightGoldenrod} {cmyk}{0,0.01,0.10,0} +\definecolor{LightLightLightDandelion} {cmyk}{0,0.03,0.10,0} +\definecolor{LightLightLightApricot} {cmyk}{0,0.04,0.06,0} +\definecolor{LightLightLightPeach} {cmyk}{0,0.06,0.08,0} +\definecolor{LightLightLightMelon} {cmyk}{0,0.05,0.06,0} +\definecolor{LightLightLightYellowOrange} {cmyk}{0,0.05,0.12,0} +\definecolor{LightLightLightOrange} {cmyk}{0,0.07,0.11,0} +\definecolor{LightLightLightBurntOrange} {cmyk}{0,0.06,0.12,0} +\definecolor{LightLightLightBittersweet} {cmyk}{0,0.09,0.12,0.03} +\definecolor{LightLightLightRedOrange} {cmyk}{0,0.07,0.11,0} +\definecolor{LightLightLightMahagony} {cmyk}{0,0.10,0.11,0.04} +\definecolor{LightLightLightMaroon} {cmyk}{0,0.11,0.08,0.04} +\definecolor{LightLightLightBrickRed} {cmyk}{0,0.11,0.11,0.03} +\definecolor{LightLightLightRed} {cmyk}{0,0.12,0.12,0} +\definecolor{LightLightLightOrangeRed} {cmyk}{0,0.12,0.06,0} +\definecolor{LightLightLightRubineRed} {cmyk}{0,0.12,0.01,0} +\definecolor{LightLightLightWildStrawberry}{cmyk}{0,0.12,0.05,0} +\definecolor{LightLightLightSalmon} {cmyk}{0,0.06,0.04,0} +\definecolor{LightLightLightCarnationPink} {cmyk}{0,0.08,0,0} +\definecolor{LightLightLightMagenta} {cmyk}{0,0.12,0,0} +\definecolor{LightLightLightVioletRed} {cmyk}{0,0.10,0,0} +\definecolor{LightLightLightRhodamine} {cmyk}{0,0.10,0,0} +\definecolor{LightLightLightMulberry} {cmyk}{0.04,0.11,0,0.002} +\definecolor{LightLightLightRedViolet} {cmyk}{0.01,0.11,0,0.04} +\definecolor{LightLightLightFuchsia} {cmyk}{0.06,0.11,0,0.01} +\definecolor{LightLightLightLavender} {cmyk}{0,0.06,0,0} +\definecolor{LightLightLightThistle} {cmyk}{0.01,0.07,0,0} +\definecolor{LightLightLightOrchid} {cmyk}{0.04,0.08,0,0} +\definecolor{LightLightLightDarkOrchid} {cmyk}{0.05,0.10,0.02,0} +\definecolor{LightLightLightPurple} {cmyk}{0.05,0.10,0,0} +\definecolor{LightLightLightPlum} {cmyk}{0.06,0.12,0,0} +\definecolor{LightLightLightViolet} {cmyk}{0.10,0.11,0,0} +\definecolor{LightLightLightRoyalPurple} {cmyk}{0.09,0.11,0,0} +\definecolor{LightLightLightBlueViolet} {cmyk}{0.10,0.11,0,0.005} +\definecolor{LightLightLightPeriwinkle} {cmyk}{0.07,0.07,0,0} +\definecolor{LightLightLightCadetBlue} {cmyk}{0.07,0.07,0.03,0} +\definecolor{LightLightLightCornflowerBlue}{cmyk}{0.08,0.01,0,0} +\definecolor{LightLightLightMidnightBlue} {cmyk}{0.12,0.01,0,0.05} +\definecolor{LightLightLightNavyBlue} {cmyk}{0.11,0.06,0,0} +\definecolor{LightLightLightRoyalBlue} {cmyk}{0.12,0.06,0,0} +\definecolor{LightLightLightBlue} {cmyk}{0.12,0.12,0,0} +\definecolor{LightLightLightCerulean} {cmyk}{0.11,0.01,0,0} +\definecolor{LightLightLightCyan} {cmyk}{0.12,0,0,0} +\definecolor{LightLightLightProcessBlue} {cmyk}{0.12,0,0,0} +\definecolor{LightLightLightSkyBlue} {cmyk}{0.07,0,0.01,0} +\definecolor{LightLightLightTurquoise} {cmyk}{0.10,0,0.02,0} +\definecolor{LightLightLightTealBlue} {cmyk}{0.10,0,0.04,0.002} +\definecolor{LightLightLightAquamarine} {cmyk}{0.10,0,0.03,0} +\definecolor{LightLightLightBlueGreen} {cmyk}{0.10,0,0.04,0} +\definecolor{LightLightLightEmerald} {cmyk}{0.12,0,0.06,0} +\definecolor{LightLightLightJungleGreen} {cmyk}{0.12,0,0.06,0} +\definecolor{LightLightLightSeaGreen} {cmyk}{0.08,0,0.06,0} +\definecolor{LightLightLightGreen} {cmyk}{0.12,0,0.12,0} +\definecolor{LightLightLightForestGreen} {cmyk}{0.11,0,0.11,0.01} +\definecolor{LightLightLightPineGreen} {cmyk}{0.11,0,0.07,0.03} +\definecolor{LightLightLightLimeGreen} {cmyk}{0.06,0,0.12,0} +\definecolor{LightLightLightYellowGreen} {cmyk}{0.05,0,0.09,0} +\definecolor{LightLightLightSpringGreen} {cmyk}{0.03,0,0.09,0} +\definecolor{LightLightLightOliveGreen} {cmyk}{0.08,0,0.12,0.05} +\definecolor{LightLightLightRawSienna} {cmyk}{0,0.09,0.12,0.05} +\definecolor{LightLightLightSepia} {cmyk}{0,0.11,0.12,0.06} +\definecolor{LightLightLightBrown} {cmyk}{0,0.10,0.12,0.07} +\definecolor{LightLightLightTan} {cmyk}{0.01,0.05,0.07,0} +\definecolor{LightLightLightWhite} {cmyk}{0,0,0,0} +\definecolor{LightLightLightGray0} {cmyk}{0,0,0,0} +\definecolor{LightLightLightGray5} {cmyk}{0,0,0,0.005} +\definecolor{LightLightLightGray10} {cmyk}{0,0,0,0.01} +\definecolor{LightLightLightGray15} {cmyk}{0,0,0,0.015} +\definecolor{LightLightLightGray20} {cmyk}{0,0,0,0.025} +\definecolor{LightLightLightGray25} {cmyk}{0,0,0,0.03} +\definecolor{LightLightLightGray30} {cmyk}{0,0,0,0.035} +\definecolor{LightLightLightLightGray} {cmyk}{0,0,0,0.04} +\definecolor{LightLightLightGray35} {cmyk}{0,0,0,0.045} +\definecolor{LightLightLightGray40} {cmyk}{0,0,0,0.05} +\definecolor{LightLightLightGray45} {cmyk}{0,0,0,0.055} +\definecolor{LightLightLightGray50} {cmyk}{0,0,0,0.06} +\definecolor{LightLightLightGray} {cmyk}{0,0,0,0.065} +\definecolor{LightLightLightGray55} {cmyk}{0,0,0,0.07} +\definecolor{LightLightLightGray60} {cmyk}{0,0,0,0.075} +\definecolor{LightLightLightGray65} {cmyk}{0,0,0,0.08} +\definecolor{LightLightLightDarkGray} {cmyk}{0,0,0,0.085} +\definecolor{LightLightLightGray70} {cmyk}{0,0,0,0.09} +\definecolor{LightLightLightGray75} {cmyk}{0,0,0,0.095} +\definecolor{LightLightLightGray80} {cmyk}{0,0,0,0.10} +\definecolor{LightLightLightGray85} {cmyk}{0,0,0,0.105} +\definecolor{LightLightLightGray90} {cmyk}{0,0,0,0.11} +\definecolor{LightLightLightGray95} {cmyk}{0,0,0,0.115} +\definecolor{LightLightLightBlack} {cmyk}{0,0,0,0.12} +\definecolor{LightLightLightGray100} {cmyk}{0,0,0,0.125} +\definecolor{BlueRed5} {rgb} {0.15,0.17,0.55} +\definecolor{BlueRed10} {rgb} {0.20,0.23,0.57} +\definecolor{BlueRed15} {rgb} {0.24,0.29,0.60} +\definecolor{BlueRed20} {rgb} {0.33,0.35,0.64} +\definecolor{BlueRed25} {rgb} {0.43,0.43,0.68} +\definecolor{BlueRed30} {rgb} {0.52,0.52,0.73} +\definecolor{BlueRed35} {rgb} {0.60,0.60,0.78} +\definecolor{BlueRed40} {rgb} {0.70,0.70,0.84} +\definecolor{BlueRed45} {rgb} {0.80,0.80,0.85} +\definecolor{BlueRed50} {rgb} {0.86,0.82,0.82} +\definecolor{BlueRed55} {rgb} {0.87,0.73,0.73} +\definecolor{BlueRed60} {rgb} {0.89,0.64,0.64} +\definecolor{BlueRed65} {rgb} {0.90,0.55,0.55} +\definecolor{BlueRed70} {rgb} {0.91,0.47,0.46} +\definecolor{BlueRed75} {rgb} {0.91,0.39,0.37} +\definecolor{BlueRed80} {rgb} {0.90,0.33,0.28} +\definecolor{BlueRed85} {rgb} {0.89,0.25,0.20} +\definecolor{BlueRed90} {rgb} {0.88,0.23,0.14} +\definecolor{BlueRed95} {rgb} {0.87,0.21,0.09} +\definecolor{BlueRed100} {rgb} {0.87,0.16,0.04} +\definecolor{RedBlue100} {rgb} {0.15,0.17,0.55} +\definecolor{RedBlue95} {rgb} {0.15,0.17,0.55} +\definecolor{RedBlue90} {rgb} {0.20,0.23,0.57} +\definecolor{RedBlue85} {rgb} {0.24,0.29,0.60} +\definecolor{RedBlue80} {rgb} {0.33,0.35,0.64} +\definecolor{RedBlue75} {rgb} {0.43,0.43,0.68} +\definecolor{RedBlue70} {rgb} {0.52,0.52,0.73} +\definecolor{RedBlue65} {rgb} {0.60,0.60,0.78} +\definecolor{RedBlue60} {rgb} {0.70,0.70,0.84} +\definecolor{RedBlue55} {rgb} {0.80,0.80,0.85} +\definecolor{RedBlue50} {rgb} {0.86,0.82,0.82} +\definecolor{RedBlue45} {rgb} {0.87,0.73,0.73} +\definecolor{RedBlue40} {rgb} {0.89,0.64,0.64} +\definecolor{RedBlue35} {rgb} {0.90,0.55,0.55} +\definecolor{RedBlue30} {rgb} {0.91,0.47,0.46} +\definecolor{RedBlue25} {rgb} {0.91,0.39,0.37} +\definecolor{RedBlue20} {rgb} {0.90,0.33,0.28} +\definecolor{RedBlue15} {rgb} {0.89,0.25,0.20} +\definecolor{RedBlue10} {rgb} {0.88,0.23,0.14} +\definecolor{RedBlue5} {rgb} {0.87,0.21,0.09} +\definecolor{GreenRed5} {rgb} {0,1,0} +\definecolor{GreenRed10} {rgb} {0.05,0.95,0} +\definecolor{GreenRed15} {rgb} {0.10,0.90,0} +\definecolor{GreenRed20} {rgb} {0.15,0.85,0} +\definecolor{GreenRed25} {rgb} {0.20,0.80,0} +\definecolor{GreenRed30} {rgb} {0.25,0.75,0} +\definecolor{GreenRed35} {rgb} {0.30,0.70,0} +\definecolor{GreenRed40} {rgb} {0.35,0.65,0} +\definecolor{GreenRed45} {rgb} {0.40,0.60,0} +\definecolor{GreenRed50} {rgb} {0.45,0.55,0} +\definecolor{GreenRed55} {rgb} {0.50,0.50,0} +\definecolor{GreenRed60} {rgb} {0.55,0.45,0} +\definecolor{GreenRed65} {rgb} {0.60,0.40,0} +\definecolor{GreenRed70} {rgb} {0.65,0.35,0} +\definecolor{GreenRed75} {rgb} {0.70,0.30,0} +\definecolor{GreenRed80} {rgb} {0.75,0.25,0} +\definecolor{GreenRed85} {rgb} {0.80,0.20,0} +\definecolor{GreenRed90} {rgb} {0.85,0.15,0} +\definecolor{GreenRed95} {rgb} {0.90,0.10,0} +\definecolor{GreenRed100} {rgb} {0.95,0.05,0} +\definecolor{RedGreen100} {rgb} {0.05,0.95,0} +\definecolor{RedGreen95} {rgb} {0.10,0.90,0} +\definecolor{RedGreen90} {rgb} {0.15,0.85,0} +\definecolor{RedGreen85} {rgb} {0.20,0.80,0} +\definecolor{RedGreen80} {rgb} {0.25,0.75,0} +\definecolor{RedGreen75} {rgb} {0.30,0.70,0} +\definecolor{RedGreen70} {rgb} {0.35,0.65,0} +\definecolor{RedGreen65} {rgb} {0.40,0.60,0} +\definecolor{RedGreen60} {rgb} {0.45,0.55,0} +\definecolor{RedGreen55} {rgb} {0.50,0.50,0} +\definecolor{RedGreen50} {rgb} {0.55,0.45,0} +\definecolor{RedGreen45} {rgb} {0.60,0.40,0} +\definecolor{RedGreen40} {rgb} {0.65,0.35,0} +\definecolor{RedGreen35} {rgb} {0.70,0.30,0} +\definecolor{RedGreen30} {rgb} {0.75,0.25,0} +\definecolor{RedGreen25} {rgb} {0.80,0.20,0} +\definecolor{RedGreen20} {rgb} {0.85,0.15,0} +\definecolor{RedGreen15} {rgb} {0.90,0.10,0} +\definecolor{RedGreen10} {rgb} {0.95,0.05,0} +\definecolor{RedGreen5} {rgb} {1,0,0} +\definecolor{ColdHot5} {rgb} {0,0.08,1} +\definecolor{ColdHot10} {rgb} {0,0.29,1} +\definecolor{ColdHot15} {rgb} {0,0.49,1} +\definecolor{ColdHot20} {rgb} {0,0.70,1} +\definecolor{ColdHot25} {rgb} {0,0.90,1} +\definecolor{ColdHot30} {rgb} {0,1,0.87} +\definecolor{ColdHot35} {rgb} {0,1,0.68} +\definecolor{ColdHot40} {rgb} {0,1,0.46} +\definecolor{ColdHot45} {rgb} {0,1,0.25} +\definecolor{ColdHot50} {rgb} {0,1,0.04} +\definecolor{ColdHot55} {rgb} {0.16,1,0} +\definecolor{ColdHot60} {rgb} {0.35,1,0} +\definecolor{ColdHot65} {rgb} {0.56,1,0} +\definecolor{ColdHot70} {rgb} {0.79,1,0} +\definecolor{ColdHot75} {rgb} {0.98,1,0} +\definecolor{ColdHot80} {rgb} {1,0.82,0} +\definecolor{ColdHot85} {rgb} {1,0.60,0} +\definecolor{ColdHot90} {rgb} {1,0.40,0} +\definecolor{ColdHot95} {rgb} {1,0.20,0} +\definecolor{ColdHot100} {rgb} {0.91,0,0} +\definecolor{HotCold100} {rgb} {0,0.08,1} +\definecolor{HotCold95} {rgb} {0,0.29,1} +\definecolor{HotCold90} {rgb} {0,0.49,1} +\definecolor{HotCold85} {rgb} {0,0.70,1} +\definecolor{HotCold80} {rgb} {0,0.90,1} +\definecolor{HotCold75} {rgb} {0,1,0.87} +\definecolor{HotCold70} {rgb} {0,1,0.68} +\definecolor{HotCold65} {rgb} {0,1,0.46} +\definecolor{HotCold60} {rgb} {0,1,0.25} +\definecolor{HotCold55} {rgb} {0,1,0.04} +\definecolor{HotCold50} {rgb} {0.16,1,0} +\definecolor{HotCold45} {rgb} {0.35,1,0} +\definecolor{HotCold40} {rgb} {0.56,1,0} +\definecolor{HotCold35} {rgb} {0.79,1,0} +\definecolor{HotCold30} {rgb} {0.98,1,0} +\definecolor{HotCold25} {rgb} {1,0.82,0} +\definecolor{HotCold20} {rgb} {1,0.60,0} +\definecolor{HotCold15} {rgb} {1,0.40,0} +\definecolor{HotCold10} {rgb} {1,0.20,0} +\definecolor{HotCold5} {rgb} {0.91,0,0} + + +\def\make@lower{% +\if\first@ A\xdef\first@{a}\else \if\first@ B\xdef\first@{b}\else +\if\first@ C\xdef\first@{c}\else \if\first@ D\xdef\first@{d}\else +\if\first@ E\xdef\first@{e}\else \if\first@ F\xdef\first@{f}\else +\if\first@ G\xdef\first@{g}\else \if\first@ H\xdef\first@{h}\else +\if\first@ I\xdef\first@{i}\else \if\first@ J\xdef\first@{j}\else +\if\first@ K\xdef\first@{k}\else \if\first@ L\xdef\first@{l}\else +\if\first@ M\xdef\first@{m}\else \if\first@ N\xdef\first@{n}\else +\if\first@ O\xdef\first@{o}\else \if\first@ P\xdef\first@{p}\else +\if\first@ Q\xdef\first@{q}\else \if\first@ R\xdef\first@{r}\else +\if\first@ S\xdef\first@{s}\else \if\first@ T\xdef\first@{t}\else +\if\first@ U\xdef\first@{u}\else \if\first@ V\xdef\first@{v}\else +\if\first@ W\xdef\first@{w}\else \if\first@ X\xdef\first@{x}\else +\if\first@ Y\xdef\first@{y}\else \if\first@ Z\xdef\first@{z}\else +\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} + +\def\make@upper{% +\if\first@ a\xdef\first@{A}\else \if\first@ b\xdef\first@{B}\else +\if\first@ c\xdef\first@{C}\else \if\first@ d\xdef\first@{D}\else +\if\first@ e\xdef\first@{E}\else \if\first@ f\xdef\first@{F}\else +\if\first@ g\xdef\first@{G}\else \if\first@ h\xdef\first@{H}\else +\if\first@ i\xdef\first@{I}\else \if\first@ j\xdef\first@{J}\else +\if\first@ k\xdef\first@{K}\else \if\first@ l\xdef\first@{L}\else +\if\first@ m\xdef\first@{M}\else \if\first@ n\xdef\first@{N}\else +\if\first@ o\xdef\first@{O}\else \if\first@ p\xdef\first@{P}\else +\if\first@ q\xdef\first@{Q}\else \if\first@ r\xdef\first@{R}\else +\if\first@ s\xdef\first@{S}\else \if\first@ t\xdef\first@{T}\else +\if\first@ u\xdef\first@{U}\else \if\first@ v\xdef\first@{V}\else +\if\first@ w\xdef\first@{W}\else \if\first@ x\xdef\first@{X}\else +\if\first@ y\xdef\first@{Y}\else \if\first@ z\xdef\first@{Z}\else +\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} + +\def\type@get#1 MSF: #2 Type: #3 #4@{\def\seq@type{#3}} +\def\inf@@get#1 #2 #3 #4 #5 #6@{% + \def\first@{#1} + \def\second@{#2} + \def\third@{#3} + \xdef\fourth@{#4 @} + \expandafter\check@letter\fourth@ + \ifnumber + \def\fourth@{#4} + \else + \xdef\fourth@{#5 @} + \expandafter\check@letter\fourth@ + \ifnumber + \def\fourth@{#5} + \else + \def\fourth@{99999999} + \fi + \fi + \def\fifth@{#5} + \def\last@{#6}} +\def\check@char#1{\letterfalse \ifnum\catcode`#1=11 \lettertrue \fi + \numberfalse \ifnum\catcode`#1=12 \numbertrue \fi + \xdef\code@num{\the\catcode`#1}} +\def\check@letter#1#2@{\letterfalse \ifnum\catcode`#1=11 \lettertrue \fi + \numberfalse \ifnum\catcode`#1=12 \numbertrue \fi} +\def\seq@get#1 #2@{\def\first@{#1} \def\seq@line{#2}} +\def\res@get#1#2@{\def\first@{#1} \def\seq@line{#2&@}} +\def\firstchar@get#1#2@{\def\first@{#1} \def\third@{#2@}} +\def\residue@get#1#2@{\xdef\first@{#1} + \ifnum`#1>96 \make@upper \fi + \ifnum`#1=45 \xdef\first@{\d@t} \fi + \expandafter\xdef\csname res\the\loopcount\endcsname{\first@} + \expandafter\xdef\csname sequence\the\loopcount\endcsname{#2@}} +\def\remove@fromseq#1@{\expandafter\xdef\csname sequence\the\loopcount\endcsname{#1}} +\def\re@write#1,#2@{% + \xdef\third@{#2,@} + \xdef\first@{\csname hide@@@seq#1\endcsname} + \ifx\first@\last@ + \else + \xdef\first@{#1&} + \ifx\first@\ampers@nd \else \advance\innerloopcount by 1 \fi + \if\second@ e \xdef\second@{\csname @rd#1\endcsname} + \else \xdef\second@{\second@,\csname @rd#1\endcsname}\fi + \fi + } +\def\order@set#1,#2@{% + \xdef\second@{#2,@} + \expandafter\xdef\csname @rd#1\endcsname{\the\loopcount} + \csname res@count\the\loopcount\endcsname=% + \csname pos#1\endcsname + \expandafter\xdef\csname hide@seq\the\loopcount\endcsname{% + \csname hide@@seq#1\endcsname} + \expandafter\xdef\csname hide@name\the\loopcount\endcsname{% + \csname hide@@name#1\endcsname} + \expandafter\xdef\csname hide@number\the\loopcount\endcsname{% + \csname hide@@number#1\endcsname} + \expandafter\xdef\csname seq@start\the\loopcount\endcsname{% + \csname seq@@start#1\endcsname} + \expandafter\xdef\csname seq@len\the\loopcount\endcsname{% + \csname seq@@len#1\endcsname} + \expandafter\xdef\csname seqname\the\loopcount\endcsname{% + \csname seq@name#1\endcsname} + \expandafter\xdef\csname newseqname\the\loopcount\endcsname{% + \csname newseq@name#1\endcsname} + \expandafter\xdef\csname seq@gap\the\loopcount\endcsname{% + \csname seq@@gap#1\endcsname} + \expandafter\xdef\csname name@col\the\loopcount\endcsname{% + \csname name@@col#1\endcsname} + \expandafter\xdef\csname number@col\the\loopcount\endcsname{% + \csname number@@col#1\endcsname} + \expandafter\xdef\csname stack@reg\the\loopcount\endcsname{% + \csname stack@@reg#1\endcsname} + \expandafter\xdef\csname stack@tintreg\the\loopcount\endcsname{% + \csname stack@@tintreg#1\endcsname} + \expandafter\xdef\csname stack@emphreg\the\loopcount\endcsname{% + \csname stack@@emphreg#1\endcsname} + \expandafter\xdef\csname stack@framereg\the\loopcount\endcsname{% + \csname stack@@framereg#1\endcsname} + \expandafter\xdef\csname stack@top\the\loopcount\endcsname{% + \csname stack@@top#1\endcsname} + \expandafter\xdef\csname stack@ttop\the\loopcount\endcsname{% + \csname stack@@ttop#1\endcsname} + \expandafter\xdef\csname stack@bottom\the\loopcount\endcsname{% + \csname stack@@bottom#1\endcsname} + \expandafter\xdef\csname stack@bbottom\the\loopcount\endcsname{% + \csname stack@@bbottom#1\endcsname} +} +\def\reorder@seqs#1{% + \loopcount=0 + \loop + \advance\loopcount by 1 + \csname pos\the\loopcount\endcsname=% + \csname res@count\the\loopcount\endcsname + \expandafter\xdef\csname hide@@seq\the\loopcount\endcsname{% + \csname hide@seq\the\loopcount\endcsname} + \expandafter\xdef\csname hide@@name\the\loopcount\endcsname{% + \csname hide@name\the\loopcount\endcsname} + \expandafter\xdef\csname hide@@number\the\loopcount\endcsname{% + \csname hide@number\the\loopcount\endcsname} + \expandafter\xdef\csname seq@@start\the\loopcount\endcsname{% + \csname seq@start\the\loopcount\endcsname} + \expandafter\xdef\csname seq@@len\the\loopcount\endcsname{% + \csname seq@len\the\loopcount\endcsname} + \expandafter\xdef\csname seq@name\the\loopcount\endcsname{% + \csname seqname\the\loopcount\endcsname} + \expandafter\xdef\csname newseq@name\the\loopcount\endcsname{% + \csname newseqname\the\loopcount\endcsname} + \expandafter\xdef\csname seq@@gap\the\loopcount\endcsname{% + \csname seq@gap\the\loopcount\endcsname} + \expandafter\xdef\csname name@@col\the\loopcount\endcsname{% + \csname name@col\the\loopcount\endcsname} + \expandafter\xdef\csname number@@col\the\loopcount\endcsname{% + \csname number@col\the\loopcount\endcsname} + \expandafter\xdef\csname stack@@reg\the\loopcount\endcsname{% + \csname stack@reg\the\loopcount\endcsname} + \expandafter\xdef\csname stack@@tintreg\the\loopcount\endcsname{% + \csname stack@tintreg\the\loopcount\endcsname} + \expandafter\xdef\csname stack@@emphreg\the\loopcount\endcsname{% + \csname stack@emphreg\the\loopcount\endcsname} + \expandafter\xdef\csname stack@@framereg\the\loopcount\endcsname{% + \csname stack@framereg\the\loopcount\endcsname} + \expandafter\xdef\csname stack@@top\the\loopcount\endcsname{% + \csname stack@top\the\loopcount\endcsname} + \expandafter\xdef\csname stack@@ttop\the\loopcount\endcsname{% + \csname stack@ttop\the\loopcount\endcsname} + \expandafter\xdef\csname stack@@bottom\the\loopcount\endcsname{% + \csname stack@bottom\the\loopcount\endcsname} + \expandafter\xdef\csname stack@@bbottom\the\loopcount\endcsname{% + \csname stack@bbottom\the\loopcount\endcsname} + \ifnum\loopcount<\killseq@count \repeat + \xdef\third@{#1} + \loopcount=0 \innerloopcount=0 \xdef\last@{kill} \xdef\second@{e} + \loop + \advance\loopcount by 1 + \expandafter\re@write\third@ + \ifnum\loopcount<\seq@count \repeat + \ifnum\innerloopcount<\killseq@count + \@latex@error{Not enough sequences specified in `orderseqs' + (\the\innerloopcount/\the\killseq@count)}\@ehc + \fi + \loopcount=0 \xdef\second@{\second@,@} + \loop + \advance\loopcount by 1 + \expandafter\order@set\second@ + \ifnum\loopcount<\killseq@count \repeat + \ifnum\cons@num>0 \xdef\cons@num{\csname @rd\cons@num\endcsname} \fi + \ifnum\rule@num>0 \xdef\rule@num{\csname @rd\rule@num\endcsname} \fi + \loopcount=0 + \loop + \advance\loopcount by 1 + \csname pos\the\loopcount\endcsname=0 + \ifnum\loopcount<\killseq@count \repeat +} +\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\get@item#1,#2@{\xdef\first@{#2@}\xdef\first@@{#2}\xdef\fourth@{#1}} +\def\get@first@@#1-#2@{\xdef\first@@{#1}} +\def\get@digit#1,#2@{% + \def\check@series##1-##2##3@{% + \xdef\first@@{##2}\xdef\fourth@{##1}\xdef\fourth@@{##3}} + \xdef\first@{#2@} + \xdef\fourth@{#1-&@} + \expandafter\check@series\fourth@ + \ifx\first@@\ampers@nd + \else + \xdef\first@@{\first@@\fourth@@-&@} + \expandafter\get@first@@\first@@ + \loopcount=\fourth@ + \ifnum\first@@>\fourth@ + \advance\loopcount by 1 + \xdef\first@{\the\loopcount-\first@@,#2@} + \else + \ifnum\first@@<\fourth@ + \advance\loopcount by -1 + \xdef\first@{\the\loopcount-\first@@,#2@} + \fi + \fi + \fi +} +\def\donot@shade{% + \expandafter\check@letter\first@ + \ifletter + \expandafter\get@item\first@ + \xdef\first@{\fourth@} + \get@name@number + \xdef\third@{\csname hide@seq\first@\endcsname} \xdef\second@{kill} + \ifx\third@\second@ + \else + \expandafter\xdef\csname hide@seq\first@\endcsname{noshade} + \fi + \xdef\first@{\first@@ @} + \donot@shade + \else + \expandafter\get@digit\first@ + \ifx\fourth@\ampers@nd + \else + \xdef\third@{\csname hide@seq\fourth@\endcsname} \xdef\second@{kill} + \ifx\third@\second@ + \else + \expandafter\xdef\csname hide@seq\fourth@\endcsname{noshade} + \fi + \donot@shade + \fi + \fi} +\def\hideseq@{% + \expandafter\check@letter\first@ + \ifletter + \expandafter\get@item\first@ + \xdef\first@{\fourth@} + \get@name@number + \xdef\third@{\csname hide@seq\first@\endcsname} \xdef\second@{kill} + \ifx\third@\second@ + \else + \expandafter\xdef\csname hide@seq\first@\endcsname{true} + \fi + \xdef\first@{\first@@ @} + \hideseq@ + \else + \expandafter\get@digit\first@ + \ifx\fourth@\ampers@nd + \else + \xdef\third@{\csname hide@seq\fourth@\endcsname} \xdef\second@{kill} + \ifx\third@\second@ + \else + \expandafter\xdef\csname hide@seq\fourth@\endcsname{true} + \fi + \hideseq@ + \fi + \fi} +\def\hidename@{% + \expandafter\check@letter\first@ + \ifletter + \expandafter\get@item\first@ + \xdef\first@{\fourth@} + \get@name@number + \expandafter\xdef\csname hide@name\first@\endcsname{yes} + \xdef\first@{\first@@ @} + \hidename@ + \else + \expandafter\get@digit\first@ + \ifx\fourth@\ampers@nd + \else + \expandafter\xdef\csname hide@name\fourth@\endcsname{yes} + \hidename@ + \fi + \fi} +\def\hidenumber@{% + \expandafter\check@letter\first@ + \ifletter + \expandafter\get@item\first@ + \xdef\first@{\fourth@} + \get@name@number + \expandafter\xdef\csname hide@number\first@\endcsname{yes} + \xdef\first@{\first@@ @} + \hidenumber@ + \else + \expandafter\get@digit\first@ + \ifx\fourth@\ampers@nd + \else + \expandafter\xdef\csname hide@number\fourth@\endcsname{yes} + \hidenumber@ + \fi + \fi} +\def\namecolor@{% + \expandafter\check@letter\first@ + \ifletter + \expandafter\get@item\first@ + \xdef\first@{\fourth@} + \get@name@number + \expandafter\xdef\csname name@col\first@\endcsname{\third@} + \xdef\first@{\first@@ @} + \namecolor@ + \else + \expandafter\get@digit\first@ + \ifx\fourth@\ampers@nd + \else + \expandafter\xdef\csname name@col\fourth@\endcsname{\third@} + \namecolor@ + \fi + \fi} +\def\numbercolor@{% + \expandafter\check@letter\first@ + \ifletter + \expandafter\get@item\first@ + \xdef\first@{\fourth@} + \get@name@number + \expandafter\xdef\csname number@col\first@\endcsname{\third@} + \xdef\first@{\first@@ @} + \numbercolor@ + \else + \expandafter\get@digit\first@ + \ifx\fourth@\ampers@nd + \else + \expandafter\xdef\csname number@col\fourth@\endcsname{\third@} + \numbercolor@ + \fi + \fi} +\def\killseq@{% + \expandafter\check@letter\first@ + \ifletter + \expandafter\get@item\first@ + \xdef\first@{\fourth@} + \get@name@number + \ifnum\first@>\seq@count + \else + \ifnum\killseq@count>1 + \xdef\third@{\csname hide@seq\first@\endcsname} \xdef\second@{kill} + \ifx\third@\second@ + \else + \expandafter\xdef\csname hide@seq\first@\endcsname{kill} + \expandafter\xdef\csname hide@@@seq\first@\endcsname{kill} + \ifnum\first@=\cons@num \xdef\cons@num{0} \fi + \advance\killseq@count by -1 + \seq@percent=100 \divide\seq@percent by \killseq@count + \fi + \fi\fi + \xdef\first@{\first@@ @} + \killseq@ + \else + \expandafter\get@digit\first@ + \ifx\fourth@\ampers@nd + \else + \ifnum\fourth@>\seq@count + \else + \ifnum\killseq@count>1 + \xdef\third@{\csname hide@seq\fourth@\endcsname} \xdef\second@{kill} + \ifx\third@\second@ + \else + \expandafter\xdef\csname hide@seq\fourth@\endcsname{kill} + \expandafter\xdef\csname hide@@@seq\fourth@\endcsname{kill} + \ifnum\fourth@=\cons@num \xdef\cons@num{0} \fi + \advance\killseq@count by -1 + \seq@percent=100 \divide\seq@percent by \killseq@count + \fi + \fi\fi + \killseq@ + \fi + \fi} +\def\kill@loop{% + \advance\innerloopcount by 1 + \xdef\first@{\csname hide@seq\the\innerloopcount\endcsname} + \ifx\first@\second@ \kill@loop \fi} +\def\kill@seqnow{% + \xdef\first@{\csname hide@seq\the\loopcount\endcsname} \xdef\second@{kill} + \innerloopcount=\loopcount + \ifx\first@\second@ + \kill@loop + \expandafter\xdef\csname hide@seq\the\loopcount\endcsname{% + \csname hide@seq\the\innerloopcount\endcsname} + \expandafter\xdef\csname seqname\the\loopcount\endcsname{% + \csname seqname\the\innerloopcount\endcsname} + \expandafter\xdef\csname newseqname\the\loopcount\endcsname{% + \csname newseqname\the\innerloopcount\endcsname} + \expandafter\xdef\csname seq@gap\the\loopcount\endcsname{% + \csname seq@gap\the\innerloopcount\endcsname} + \expandafter\xdef\csname stack@reg\the\loopcount\endcsname{% + \csname stack@reg\the\innerloopcount\endcsname} + \expandafter\xdef\csname stack@tintreg\the\loopcount\endcsname{% + \csname stack@tintreg\the\innerloopcount\endcsname} + \expandafter\xdef\csname stack@emphreg\the\loopcount\endcsname{% + \csname stack@emphreg\the\innerloopcount\endcsname} + \expandafter\xdef\csname stack@framereg\the\loopcount\endcsname{% + \csname stack@framereg\the\innerloopcount\endcsname} + \expandafter\xdef\csname stack@top\the\loopcount\endcsname{% + \csname stack@top\the\innerloopcount\endcsname} + \expandafter\xdef\csname stack@ttop\the\loopcount\endcsname{% + \csname stack@ttop\the\innerloopcount\endcsname} + \expandafter\xdef\csname stack@bottom\the\loopcount\endcsname{% + \csname stack@bottom\the\innerloopcount\endcsname} + \expandafter\xdef\csname stack@bbottom\the\loopcount\endcsname{% + \csname stack@bbottom\the\innerloopcount\endcsname} + \csname res@count\the\loopcount\endcsname=% + \csname res@count\the\innerloopcount\endcsname + \expandafter\xdef\csname hide@seq\the\innerloopcount\endcsname{kill} + \ifnum\loopcount=\rule@num \hideruler \fi + \fi + \expandafter\xdef\csname @rd\the\innerloopcount\endcsname{\the\loopcount} + \advance\loopcount by 1 + \ifnum\loopcount>\killseq@count + \ifnum\rule@num>0\xdef\rule@num{\csname @rd\rule@num\endcsname}\fi + \ifnum\cons@num>0\xdef\cons@num{\csname @rd\cons@num\endcsname}\fi + \else + \kill@seqnow + \fi} +\def\set@maxseqnumber#1{% + \ifnum#1>\max@seqnumber + \loopcount=\max@seqnumber \xdef\max@seqnumber{\the #1} + \loop + \advance\loopcount by 1 + \expandafter\newcount\csname pos\the\loopcount\endcsname + \expandafter\newcount\csname res@count\the\loopcount\endcsname + \ifnum\loopcount<\max@seqnumber \repeat + \fi} +\def\get@sim#1#2@{\xdef\sim@char{#1} \xdef\last@{#2 &@}} +\def\getsim@char{% + \advance\innerloopcount by 1 + \ifnum\innerloopcount>\m@x + \else + \expandafter\get@sim\last@ + \ifx\second@\sim@char \xdef\third@{2} \innerloopcount=\m@x \fi + \getsim@char + \fi} +\def\get@count(#1)#2@{\xdef\last@{#2 &@} \xdef\m@x{#1}} +\def\get@nums#1..#2@{\xdef\first@{#1} \xdef\second@{#2}} +\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 + \ifsp@nish + \funcgroup{\'acido ($-$)}{DE}{White}{Red}{upper}{up} + \funcgroup{b\'asico ($+$)}{KRH}{White}{Blue}{upper}{up} + \else + \funcgroup{acidic ($-$)}{DE}{White}{Red}{upper}{up} + \funcgroup{basic ($+$)}{KRH}{White}{Blue}{upper}{up} + \fi + \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 + \ifsp@nish + \funcgroup{\'acido ($-$)}{DE}{White}{Red}{upper}{up} + \funcgroup{b\'asico ($+$)}{KRH}{White}{Blue}{upper}{up} + \funcgroup{polar sin carga}{YSTGNQC}{Black}{Yellow}{upper}{up} + \funcgroup{hidrof\'obico no polar}{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 + \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 + \ifsp@nish + \funcgroup{\'acido ($-$)}{DE}{White}{Red}{upper}{up} + \funcgroup{alif\'atico}{AGVIL}{White}{Black}{upper}{up} + \funcgroup{amida}{NQ}{White}{Green}{upper}{up} + \funcgroup{arom\'atico}{FYW}{White}{Brown}{upper}{up} + \funcgroup{b\'asico ($+$)}{KRH}{White}{Blue}{upper}{up} + \funcgroup{hidr\'oxido}{ST}{Black}{Magenta}{upper}{up} + \funcgroup{imino}{P}{Black}{Orange}{upper}{up} + \funcgroup{azufre}{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 + \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 + \ifsp@nish + \funcgroup{externo}{DEHKNQR}{Black}{Orange}{upper}{up} + \funcgroup{ambivalente}{ACGPSTWY}{Black}{Yellow}{upper}{up} + \funcgroup{interno}{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 + \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)}% + {CP}{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 + \ifsp@nish + \funcgroup{\ 88.1 (G); Superficie est\'andar de la cadena lateral (\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)}% + {CP}{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)}% + {CP}{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 + \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 + \ifsp@nish + \funcgroup{\ 13.9 (C); Superficie accesible de la cadena lateral (\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 + \fi + \else \message{<Unknown shading mode. Clearing `funcgroups'>} + \fi\fi\fi\fi\fi\fi +} +\def\shadeallresidues{\all@fshadetrue} +\def\get@fromstack#1;#2;#3;#4;#5@{% + \xdef\first@{#1} \xdef\second@{#2} + \xdef\third@{#3} \xdef\fourth@{#4} \xdef\last@{#5@} +} +\def\getregion@fromstack#1{% + \xdef\temp@{#1} + \xdef\first@{\csname stack@reg\temp@\endcsname} + \expandafter\get@fromstack\first@ + \expandafter\xdef\csname style\temp@\endcsname{\first@} + \expandafter\xdef\csname start\temp@\endcsname{\second@} + \expandafter\xdef\csname stop\temp@\endcsname{\third@} + \expandafter\xdef\csname all\temp@\endcsname{\fourth@} + \expandafter\xdef\csname stack@reg\temp@\endcsname{\last@} +} +\def\sort@stack{% + \expandafter\get@fromstack\last@ + \ifx\first@\ampers@nd + \xdef\tmpstack{\tmpstack\the\loopcount;\st@rt;\st@p;\@ll;&;&;&;&;@} + \else + \ifnum\st@rt<\second@ + \xdef\tmpstack{\tmpstack\the\loopcount;\st@rt;\st@p;\@ll;% + \first@;\second@;\third@;\fourth@;\last@} + \else + \xdef\tmpstack{\tmpstack\first@;\second@;\third@;\fourth@;} \sort@stack + \fi\fi +} +\def\get@regions#1..#2,#3@{% + \xdef\st@rt{#1} \xdef\st@p{#2} \xdef\list@{#3} + \xdef\last@{\csname stack@reg\seq@\endcsname} + \xdef\tmpstack{} + \sort@stack + \expandafter\xdef\csname stack@reg\seq@\endcsname{\tmpstack} +} +\def\get@fromemphstack#1;#2;#3;#4@{% + \xdef\first@{#1} \xdef\second@{#2} + \xdef\third@{#3} \xdef\last@{#4@} +} +\def\getregion@fromemphstack#1{% + \xdef\temp@{#1} + \xdef\first@{\csname stack@emphreg\temp@\endcsname} + \expandafter\get@fromemphstack\first@ + \expandafter\xdef\csname emphstart\temp@\endcsname{\first@} + \expandafter\xdef\csname emphstop\temp@\endcsname{\second@} + \expandafter\xdef\csname emphall\temp@\endcsname{\third@} + \expandafter\xdef\csname stack@emphreg\temp@\endcsname{\last@} +} +\def\sort@emphstack{% + \expandafter\get@fromemphstack\last@ + \ifx\first@\ampers@nd + \xdef\tmpstack{\tmpstack\st@rt;\st@p;\@ll;&;&;&;@} + \else + \ifnum\st@rt<\second@ + \xdef\tmpstack{\tmpstack\st@rt;\st@p;\@ll;\first@;\second@;\third@;\last@} + \else + \xdef\tmpstack{\tmpstack\first@;\second@;\third@;} \sort@emphstack + \fi\fi +} +\def\get@emphregions#1..#2,#3@{% + \regionalemphtrue + \xdef\st@rt{#1} \xdef\st@p{#2} \xdef\list@{#3} + \xdef\last@{\csname stack@emphreg\seq@\endcsname} + \xdef\tmpstack{} + \sort@emphstack + \expandafter\xdef\csname stack@emphreg\seq@\endcsname{\tmpstack} +} +\def\getregion@fromtintstack#1{% + \xdef\temp@{#1} + \xdef\first@{\csname stack@tintreg\temp@\endcsname} + \expandafter\get@fromemphstack\first@ + \expandafter\xdef\csname tintstart\temp@\endcsname{\first@} + \expandafter\xdef\csname tintstop\temp@\endcsname{\second@} + \expandafter\xdef\csname tintall\temp@\endcsname{\third@} + \expandafter\xdef\csname stack@tintreg\temp@\endcsname{\last@} +} +\def\sort@tintstack{% + \expandafter\get@fromemphstack\last@ + \ifx\first@\ampers@nd + \xdef\tmpstack{\tmpstack\st@rt;\st@p;\@ll;&;&;&;@} + \else + \ifnum\st@rt<\second@ + \xdef\tmpstack{\tmpstack\st@rt;\st@p;\@ll;\first@;\second@;\third@;\last@} + \else + \xdef\tmpstack{\tmpstack\first@;\second@;\third@;} \sort@tintstack + \fi\fi +} +\def\get@tintregions#1..#2,#3@{% + \regionaltinttrue + \xdef\st@rt{#1} \xdef\st@p{#2} \xdef\list@{#3} + \xdef\last@{\csname stack@tintreg\seq@\endcsname} + \xdef\tmpstack{} + \sort@tintstack + \expandafter\xdef\csname stack@tintreg\seq@\endcsname{\tmpstack} +} +\def\getregion@fromframestack#1{% + \xdef\temp@{#1} + \xdef\first@{\csname stack@framereg\temp@\endcsname} + \expandafter\get@fromemphstack\first@ + \expandafter\xdef\csname framestart\temp@\endcsname{\first@} + \expandafter\xdef\csname framestop\temp@\endcsname{\second@} + \expandafter\xdef\csname framestyle\temp@\endcsname{\third@} + \expandafter\xdef\csname stack@framereg\temp@\endcsname{\last@} +} +\def\get@frameregions#1..#2,#3@{% + \frame@true + \xdef\st@rt{#1} \xdef\st@p{#2} \xdef\list@{#3} + \xdef\last@{\csname stack@framereg\seq@\endcsname} + \xdef\tmpstack{} + \sort@emphstack + \expandafter\xdef\csname stack@framereg\seq@\endcsname{\tmpstack} +} +\def\getregion@fromfstack#1{% + \xdef\temp@{#1} + \xdef\first@{\csname stack@\bottop@\temp@\endcsname} + \expandafter\get@fromstack\first@ + \expandafter\xdef\csname text\bottop@\temp@\endcsname{\first@} + \expandafter\xdef\csname start\bottop@\temp@\endcsname{\second@} + \expandafter\xdef\csname stop\bottop@\temp@\endcsname{\third@} + \ifx\fourth@\ampers@nd \xdef\fourth@{///} \fi + \expandafter\xdef\csname style\bottop@\temp@\endcsname{\fourth@} + \expandafter\xdef\csname stack@\bottop@\temp@\endcsname{\last@} +} +\def\sort@fstack{% + \expandafter\get@fromstack\last@ + \ifx\first@\ampers@nd + \xdef\tmpstack{\tmpstack\f@text@;\st@rt;\st@p;\style@;&;&;&;&;@} + \else + \ifnum\st@rt<\second@ + \xdef\tmpstack{\tmpstack\f@text@;\st@rt;\st@p;\style@;% + \first@;\second@;\third@;\fourth@;\last@} + \else + \xdef\tmpstack{\tmpstack\first@;\second@;\third@;\fourth@;} + \sort@fstack + \fi\fi +} +\def\get@fregions#1..#2,#3@{% + \xdef\st@rt{#1} + \ifx\temp@\y@ + \xdef\st@p{#1} + \else + \xdef\st@p{#2} + \fi + \xdef\list@{#3} + \xdef\last@{\csname stack@\bottop@\seq@\endcsname} + \xdef\tmpstack{} + \sort@fstack + \expandafter\xdef\csname stack@\bottop@\seq@\endcsname{\tmpstack} +} +\def\getarrow@shape#1#2#3#4&{% + \xdef\first@@{#1}\xdef\second@@{#2}\xdef\third@@{#3} + \if\first@@ v + \if\second@@ = + \else \xdef\style@{\first@@ v\third@@#4} \fi + \else + \if\first@@ v + \if\second@@ = + \else \xdef\style@{\first@@ v\third@@#4} \fi + \else + \if\third@@ v + \if\second@@ = + \else \xdef\style@{\first@@ v\third@@#4} \fi + \else + \if\third@@ v + \if\second@@ = + \else \xdef\style@{\first@@ v\third@@#4} \fi + \fi\fi\fi\fi +} +\def\get@shape#1#2#3{% + \xdef\first@@{#1}\xdef\second@@{#2}\xdef\third@@{#3}% + \if\second@@ v \xdef\second@@{arrow}% + \fi% + \if\second@@ = \xdef\second@@{doublearrow}% + \fi% +} +\def\getstyle@left#1#2#3#4@{% + \ifstop@ + \xdef\style@@{\csname fstyle\bottop@\the\loopcount\endcsname} + \else + \xdef\style@@{#2} + \xdef\temp@{-} + \ifx\style@@\temp@ \xdef\style@@{#1#2-#4} + \else + \xdef\temp@{v} + \ifx\style@@\temp@ \xdef\style@@{#1#2-#4} + \else + \xdef\temp@{=} + \ifx\style@@\temp@ \xdef\style@@{#1#2=#4} + \else + \xdef\style@@{\csname fstyle\bottop@\the\loopcount\endcsname} + \fi\fi\fi\fi +} +\def\getstyle@right#1#2#3#4@{% + \xdef\style@@{#2} + \xdef\temp@{-} + \ifx\style@@\temp@ + \expandafter\xdef\csname fstyle\bottop@\the\loopcount\endcsname{-#2#3#4} + \fi + \xdef\temp@{v} + \ifx\style@@\temp@ + \expandafter\xdef\csname fstyle\bottop@\the\loopcount\endcsname{-#2#3#4} + \fi + \xdef\temp@{=} + \ifx\style@@\temp@ + \expandafter\xdef\csname fstyle\bottop@\the\loopcount\endcsname{=#2#3#4} + \fi +} +\def\opt@color#1[#2]#3&{\xdef\fourth@{#1}\xdef\f@color{#2}} +\def\graph@opt@color#1[#2]:#3[#4][#5]#6&{% + \xdef\fourth@{#1} + \xdef\f@color{#2} + \xdef\ffourth@{#3} + \xdef\ff@color{#4} + \xdef\fffourth@{#5}} +\def\arrow@col@width#1[#2][#3]#4&{\xdef\fourth@{#1}\xdef\f@color{#2}\xdef\rule@@thick{#3}} +\def\second@color#1,&{\xdef\back@color{#1}} +\def\two@opt@color#1,#2@{% + \xdef\sixth@{#1}% + \xdef\seventh@{#2}% + \ifx\first@\ampers@nd% + \else% + \xdef\frame@color{#1}% + \ifx\seventh@\ampers@nd% + \xdef\back@color{#1}% + \else% + \expandafter\second@color\seventh@% + \fi% + \fi% +} +\def\test@fill#1:#2:#3&{% + \xdef\last@{#1[,][,]&}\expandafter\arrow@col@width\last@% + \xdef\second@@{\fourth@}% + \xdef\last@{///}% + \ifx\fourth@\last@% + \xdef\second@@{empty}% + \else + \xdef\last@{translate}% + \ifx\fourth@\last@% + \xdef\second@@{translate}% + \xdef\fill@char{#2[,]&}% + \expandafter\opt@color\fill@char% + \xdef\fill@char{\fourth@}% + \else + \xdef\last@{fill}% + \ifx\fourth@\last@ + \xdef\second@@{fill}% + \xdef\fill@char{#2[,]&}% + \expandafter\opt@color\fill@char% + \xdef\fill@char{\fourth@}% + \else + \xdef\last@{bar}% + \ifx\fourth@\last@ + \xdef\second@@{bar}% + \xdef\b@r{bar}% + \ifx\f@color\comm@ + \xdef\g@min{,}\xdef\g@max{,}% + \else + \xdef\f@color{\f@color @}% + \expandafter\get@item\f@color% + \xdef\g@min{\fourth@} \xdef\g@max{\first@@}% + \xdef\pm@shift{\fourth@}% + \fi% + \xdef\fill@char{#2[,]&}% + \expandafter\opt@color\fill@char% + \ifx\f@color\comm@\xdef\f@color{GrayDefault}\fi% + \xdef\fill@char{\fourth@}% + \xdef\box@color{\f@color,&@}% + \expandafter\two@opt@color\box@color% + \else + \xdef\last@{color}% + \ifx\fourth@\last@ + \xdef\second@@{color}% + \ifx\f@color\comm@ + \xdef\g@min{,}\xdef\g@max{,}% + \else + \xdef\f@color{\f@color @}% + \expandafter\get@item\f@color% + \xdef\g@min{\fourth@} \xdef\g@max{\first@@}% + \fi% + \xdef\fill@char{#2[,]&}% + \expandafter\opt@color\fill@char% + \ifx\f@color\comm@\xdef\f@color{GrayDefault}\fi% + \xdef\fill@char{\fourth@}% + \else + \xdef\last@{box}% + \ifx\fourth@\last@% + \xdef\second@@{box}% + \ifx\f@color\comm@\xdef\f@color{White}\fi% + \xdef\seventh@{\f@color @}\expandafter\check@letter\seventh@% + \ifnumber% + \ifx\rule@@thick\comm@% + \xdef\rule@@thick{\f@color}% + \xdef\box@color{White,&@}% + \else% + \xdef\seventh@{\rule@@thick}% + \xdef\rule@@thick{\f@color}% + \xdef\box@color{\seventh@,&@}% + \fi% + \else% + \xdef\box@color{\f@color,&@}% + \fi% + \expandafter\two@opt@color\box@color% + \xdef\fill@char{#2[,]&}% + \expandafter\opt@color\fill@char% + \xdef\fill@char{\fourth@}% + \else + \xdef\last@{plotcolor}% + \ifx\fourth@\last@% + \xdef\second@@{plotcolor}% + \ifx\f@color\comm@% + \xdef\pm@shift{0}% + \else% + \xdef\pm@shift{\f@color}% + \fi% + \xdef\fill@char{#2[,]&}% + \expandafter\opt@color\fill@char% + \xdef\fill@char{\fourth@}% + \else + \xdef\last@{plotbar}% + \ifx\fourth@\last@% + \xdef\second@@{plotbar}% + \xdef\b@r{bar}% + \ifx\f@color\comm@ + \xdef\pm@shift{0}% + \else + \xdef\pm@shift{\f@color}% + \fi% + \xdef\fill@char{#2[,]&}% + \expandafter\opt@color\fill@char% + \ifx\f@color\comm@\xdef\f@color{GrayDefault}\fi% + \xdef\fill@char{\fourth@}% + \xdef\box@color{\f@color,&@}% + \expandafter\two@opt@color\box@color% + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \xdef\seventh@{\f@color @}\expandafter\check@letter\seventh@% + \ifnumber% + \ifx\rule@@thick\comm@% + \xdef\rule@@thick{\f@color}% + \xdef\f@color{Black}% + \else% + \xdef\seventh@{\rule@@thick}% + \xdef\rule@@thick{\f@color}% + \xdef\f@color{\seventh@}% + \fi% + \fi% + \ifx\rule@@thick\comm@\xdef\rule@@thick{\the\rule@thick}\fi% + \ifx\f@color\comm@\xdef\f@color{Black}\fi} +\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} + \expandafter\xdef\csname \prfx grp.\endcsname{-999} +} +\def\inactivate@chars{% + \catcode`\#=12 + \catcode`\"=12 + \catcode`\~=12 + \catcode`\^=12 + \catcode`\_=12 + } +\def\numcount{\the\loopcount} +\def\Alphacount{\@Alph\loopcount} +\def\alphacount{\@alph\loopcount} +\def\romancount{\@roman\loopcount} +\def\Romancount{\@Roman\loopcount} +\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}} +\def\get@PHD#1|#2|#3@{\xdef\PHD@line{\PHD@line #2}} +\def\write@PHDsec{% + \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 H + \ifx\show@Hsec\yes + \loopcount=\first@ + \advance\loopcount by 1 + \xdef\first@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Hsec}{\begin@..\end@}% + {\label@Hsec}{\text@Hsec}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Hsec}{\st@rt}{\begin@..\end@}% + {\label@Hsec}{\text@Hsec}}\fi + \fi + \else + \if\c@mp E + \ifx\show@Esec\yes + \loopcount=\second@ + \advance\loopcount by 1 + \xdef\second@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Esec}{\begin@..\end@}% + {\label@Esec}{\text@Esec}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Esec}{\st@rt}{\begin@..\end@}% + {\label@Esec}{\text@Esec}}\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@PHDsec\fi +} +\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 + \ifx\show@TMtop\yes + \loopcount=\first@ + \advance\loopcount by 1 + \xdef\first@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@TMtop}{\begin@..\end@}% + {\label@TMtop}{\text@TMtop}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@TMtop}{\st@rt}{\begin@..\end@}% + {\label@TMtop}{\text@TMtop}}\fi + \fi + \else + \if\c@mp i + \ifx\show@itop\yes + \loopcount=\second@ + \advance\loopcount by 1 + \xdef\second@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@itop}{\begin@..\end@}% + {\label@itop}{\text@itop}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@itop}{\st@rt}{\begin@..\end@}% + {\label@itop}{\text@itop}}\fi + \fi + \else + \if\c@mp o + \ifx\show@etop\yes + \loopcount=\second@ + \advance\loopcount by 1 + \xdef\second@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@etop}{\begin@..\end@}% + {\label@etop}{\text@etop}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@etop}{\st@rt}{\begin@..\end@}% + {\label@etop}{\text@etop}}\fi + \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@DSSP{% + \xdef\first@{\csname optiondssp\the\loopcount\endcsname} + \xdef\bottop@{\csname bottopdssp\the\loopcount\endcsname} + \xdef\st@rt{\csname doseqdssp\the\loopcount\endcsname} + \xdef\structurefilename{\csname filenamedssp\the\loopcount\endcsname} + \bgroup + \xdef\file@n@me{\structurefilename .@} + \expandafter\cut@name\file@n@me + \xdef\file@n@me{\file@n@me.sec} + \ifx\first@\file@n@me + \else + \immediate\openin\alignfile = \file@n@me\relax + \ifeof\alignfile \xdef\first@{make new} \fi + \immediate\closein\alignfile + \fi + \xdef\temp@{make new} + \ifx\first@\temp@ + \def\par{} + \inactivate@chars + \immediate\openin\structurefile = \structurefilename\relax + \ifeof\structurefile + \PackageError{TeXshade} + {File `\structurefilename' not found} + {\MessageBreak + The `DSSP' file you specified is missing or you have \MessageBreak + misspelled it. \MessageBreak\MessageBreak + No labels for secondary structures will be displayed. \MessageBreak + Type <return> to proceed. \MessageBreak + Type X <return> to quit. \MessageBreak +} + \immediate\closein\structurefile\egroup + \else + \message{[\structurefilename] ->} + \xdef\second@{} \xdef\temp@{RESIDUE} + \loop + \read\structurefile to \readline + \xdef\test@{\expandafter\string\readline} + \xdef\structureline{\readline & & & & & & & & &@} + \expandafter\struc@get\structureline + \ifx\second@\temp@ \xdef\temp@{AA}\fi + \ifx\third@\temp@ \else\repeat + \immediate\openout\featurefile = \file@n@me + \xdef\c@mp{+} + \xdef\begin@{\csname seq@start\st@rt\endcsname} + \xdef\end@{\csname seq@start\st@rt\endcsname} + \xdef\st@rt@{\begin@} + \expandafter\innerloopcount=\csname seq@start\st@rt\endcsname + \advance\innerloopcount by -1 + \xdef\first@@{0} \xdef\second@@{0} \xdef\third@@{0} + \xdef\fourth@@{0} \xdef\fifth@@{0} \xdef\sixth@@{0} + \xdef\seventh@@{0} + \loop + \read\structurefile to \readline + \xdef\test@{\expandafter\string\readline} + \ifx\test@\par@ + \else + \xdef\structureline{\readline & & & & & & & & &@} + \expandafter\struc@get\structureline + \if\c@mp + \xdef\c@mp{\fifth@}\fi + \ifx\fifth@\c@mp + \ifx\fc@DSSP\y@ + \temp@count=\first@ + \else + \temp@count=\second@ + \fi + \advance\temp@count by \st@rt@ + \advance\temp@count by -1 + \xdef\end@{\the\temp@count} + \else + \ifnum\begin@>0 + \ifnum\end@<\begin@ \xdef\end@{\begin@}\fi + \if\c@mp C + \else + \if\c@mp H + \ifx\show@Hdssp\yes + \loopcount=\first@@ + \advance\loopcount by 1 + \xdef\first@@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Hdssp}{\begin@..\end@}% + {\label@Hdssp}{\text@Hdssp}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Hdssp}{\st@rt}{\begin@..\end@}% + {\label@Hdssp}{\text@Hdssp}}\fi + \fi + \else + \if\c@mp G + \ifx\show@Gdssp\yes + \loopcount=\second@@ + \advance\loopcount by 1 + \xdef\second@@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Gdssp}{\begin@..\end@}% + {\label@Gdssp}{\text@Gdssp}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Gdssp}{\st@rt}{\begin@..\end@}% + {\label@Gdssp}{\text@Gdssp}}\fi + \fi + \else + \if\c@mp I + \ifx\show@Idssp\yes + \loopcount=\third@@ + \advance\loopcount by 1 + \xdef\third@@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Idssp}{\begin@..\end@}% + {\label@Idssp}{\text@Idssp}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Idssp}{\st@rt}{\begin@..\end@}% + {\label@Idssp}{\text@Idssp}}\fi + \fi + \else + \if\c@mp E + \ifx\show@Edssp\yes + \loopcount=\fourth@@ + \advance\loopcount by 1 + \xdef\fourth@@{\the\loopcount} + \advance\innerloopcount by 1 + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Edssp}{\begin@..\end@}% + {\label@Edssp}{\text@Edssp}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Edssp}{\st@rt}{\begin@..\end@}% + {\label@Edssp}{\text@Edssp}}\fi + \fi + \else + \if\c@mp B + \ifx\show@Bdssp\yes + \loopcount=\fifth@@ + \advance\loopcount by 1 + \xdef\fifth@@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Bdssp}{\begin@..\end@}% + {\label@Bdssp}{\text@Bdssp}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Bdssp}{\st@rt}{\begin@..\end@}% + {\label@Bdssp}{\text@Bdssp}}\fi + \fi + \else + \if\c@mp T + \ifx\show@Tdssp\yes + \loopcount=\sixth@@ + \advance\loopcount by 1 + \xdef\sixth@@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Tdssp}{\begin@..\end@}% + {\label@Tdssp}{\text@Tdssp}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Tdssp}{\st@rt}{\begin@..\end@}% + {\label@Tdssp}{\text@Tdssp}}\fi + \fi + \else + \if\c@mp S + \ifx\show@Sdssp\yes + \loopcount=\seventh@@ + \advance\loopcount by 1 + \xdef\seventh@@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Sdssp}{\begin@..\end@}% + {\label@Sdssp}{\text@Sdssp}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Sdssp}{\st@rt}{\begin@..\end@}% + {\label@Sdssp}{\text@Sdssp}}\fi + \fi + \fi\fi\fi\fi\fi\fi\fi\fi + \fi + \xdef\c@mp{\fifth@} + \ifx\fc@DSSP\y@ + \temp@count=\first@ + \else + \temp@count=\second@ + \fi + \advance\temp@count by \st@rt@ + \advance\temp@count by -1 + \xdef\begin@{\the\temp@count} + \fi + \fi + \ifeof\structurefile \else\repeat + \closein\structurefile + \immediate\closeout\featurefile + \egroup + \input{\file@n@me} + \fi + \else + \egroup + \message{using existing file:} + \input{\file@n@me} + \fi + } + +\def\include@HMMTOP{% + \def\get@HMMTOP@TMs##1-##2 ##3@{% + \xdef\temp@@{\temp@@\fourth@@##1\fourth@@##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\bottop@{\csname bottopHMMTOP\the\loopcount\endcsname} + \xdef\st@rt{\csname doseqHMMTOP\the\loopcount\endcsname} + \xdef\first@{\csname optionHMMTOP\the\loopcount\endcsname} + \xdef\structurefilename{\csname filenameHMMTOP\the\loopcount\endcsname} + \bgroup + \xdef\file@n@me{\structurefilename .@} + \expandafter\cut@name\file@n@me + \xdef\file@n@me{\file@n@me.top} + \ifx\first@\file@n@me + \else + \immediate\openin\alignfile = \file@n@me\relax + \ifeof\alignfile \xdef\first@{make new} \fi + \immediate\closein\alignfile + \fi + \xdef\temp@{make new} + \ifx\first@\temp@ + \def\par{} + \inactivate@chars + \immediate\openin\structurefile = \structurefilename\relax + \ifeof\structurefile + \PackageError{TeXshade} + {File `\structurefilename' not found} + {\MessageBreak + The `HMMTOP' file you specified is missing or you have \MessageBreak + misspelled it. \MessageBreak\MessageBreak + No labels for secondary structures will be displayed. \MessageBreak + Type <return> to proceed. \MessageBreak + Type X <return> to quit. \MessageBreak +} + \immediate\closein\structurefile\egroup + \else + \message{[\structurefilename] ->} + \immediate\openout\featurefile = \file@n@me + + \xdef\first@{\csname fileseqHMMTOP\the\loopcount\endcsname @} + \expandafter\check@letter\first@ + \ifletter + \xdef\st@p{\csname fileseqHMMTOP\the\loopcount\endcsname} + \else + \xdef\first@{\csname fileseqHMMTOP\the\loopcount\endcsname} + \ifnum\first@=0 + \xdef\st@p{0} + \else + \xdef\st@p{\csname fileseqHMMTOP\the\loopcount\endcsname} + \fi + \fi + \xdef\temp@{yes} \innerloopcount=0 + \loop + \read\structurefile to \readline + \xdef\test@{\expandafter\string\readline} + \ifx\test@\par@ + \else + \xdef\structureline{\readline & & & & & & & & &@} + \expandafter\struc@get\structureline + \ifx\first@\@HP + \ifx\temp@\yes \xdef\temp@{\readline} \fi + \ifletter + \ifx\st@p\third@ \xdef\temp@{\readline} \fi + \else + \ifnum\st@p=0 + \expandafter\ifx\csname seqname\st@rt\endcsname\third@ + \xdef\temp@{\readline} \xdef\st@p{-1} + \else + \expandafter\ifx\csname newseqname\st@rt\endcsname\third@ + \xdef\temp@{\readline} \xdef\st@p{-1} + \fi + \fi + \else + \advance\innerloopcount by 1 + \ifnum\st@p=\innerloopcount \xdef\temp@{\readline} \fi + \fi + \fi + \else + \xdef\first@@{Protein:} + \ifx\first@\first@@ + \xdef\second@@{\second@} + \xdef\temp@@{>HP:} \xdef\fourth@@{ } + \read\structurefile to \readline + \xdef\structureline{\readline & & & & & & & & &@} + \expandafter\struc@get\structureline + \xdef\temp@@{\temp@@\fourth@@\second@\fourth@@\second@@} + \read\structurefile to \readline + \xdef\structureline{\readline & & & & & & & & &@} + \expandafter\struc@get\structureline + \xdef\temp@@{\temp@@\fourth@@\second@} + \read\structurefile to \readline + \xdef\structureline{\readline & & & & & & & & &@} + \expandafter\struc@get\structureline + \xdef\temp@@{\temp@@\fourth@@\fifth@} + \read\structurefile to \readline + \xdef\structureline{\readline @} + \expandafter\rem@ve@TM@info\structureline + \xdef\temp@@{\temp@@\fourth@@} + \ifx\temp@\yes \xdef\temp@{\temp@@} \fi + \ifletter + \ifx\st@p\third@ \xdef\temp@{\temp@@} \fi + \else + \ifnum\st@p=0 + \expandafter\ifx\csname seqname\st@rt\endcsname\second@@ + \xdef\temp@{\temp@@} + \else + \expandafter\ifx\csname newseqname\st@rt\endcsname\second@@ + \xdef\temp@{\temp@@} + \fi + \fi + \else + \advance\innerloopcount by 1 + \ifnum\st@p=\innerloopcount \xdef\temp@{\temp@@} \fi + \fi + \fi + \fi + \fi + \fi + \ifeof\structurefile \else\repeat + \xdef\seq@line{\temp@ @} + \innerloopcount=0 + \loop + \advance\innerloopcount by 1 + \expandafter\seq@get\seq@line + \xdef\seq@line{\seq@line @} + \ifnum\innerloopcount=4 \xdef\c@mp{\first@} \fi + \ifnum\innerloopcount=5 \xdef\st@p{\first@} \else \repeat + \xdef\first@{IN} + \ifx\c@mp\first@ \xdef\c@mp{i} \else \xdef\c@mp{e} \fi + \xdef\begin@{1} \xdef\first@@{0} \xdef\second@@{0} + \innerloopcount=0 + \loop + \advance\innerloopcount by 1 + \expandafter\seq@get\seq@line + \xdef\seq@line{\seq@line @} + \temp@count=\first@ + \advance\temp@count by -1 + \xdef\end@{\the\temp@count} + \loopcount=\second@@ + \advance\loopcount by 1 + \xdef\second@@{\the\loopcount} + \if\c@mp i + \ifx\show@i@HMMTOP\yes + \immediate\write\featurefile{% + \string\feature{\bottop@i@HMMTOP}{\st@rt}{\begin@..\end@}% + {\label@i@HMMTOP}{\text@i@HMMTOP}}\fi + \xdef\c@mp{e} + \else + \ifx\show@e@HMMTOP\yes + \immediate\write\featurefile{% + \string\feature{\bottop@e@HMMTOP}{\st@rt}{\begin@..\end@}% + {\label@e@HMMTOP}{\text@e@HMMTOP}}\fi + \xdef\c@mp{i} + \fi + \advance\temp@count by 1 + \xdef\begin@{\the\temp@count} + \expandafter\seq@get\seq@line + \xdef\seq@line{\seq@line @} + \xdef\end@{\first@} + \loopcount=\first@@ + \advance\loopcount by 1 + \xdef\first@@{\the\loopcount} + \ifx\show@TM@HMMTOP\yes + \immediate\write\featurefile{% + \string\feature{\bottop@TM@HMMTOP}{\st@rt}{\begin@..\end@}% + {\label@TM@HMMTOP}{\text@TM@HMMTOP}}\fi + \temp@count=\end@ \advance\temp@count by 1 \xdef\begin@{\the\temp@count} + \ifnum\innerloopcount=\st@p\else\repeat + \closein\structurefile + \immediate\closeout\featurefile + \egroup + + \input{\file@n@me} + \fi + \else + \egroup + \message{using existing file:} + \input{\file@n@me} + \fi + } + +\def\include@stride{% + \xdef\first@{\csname optionstride\the\loopcount\endcsname} + \xdef\bottop@{\csname bottopstride\the\loopcount\endcsname} + \xdef\st@rt{\csname doseqstride\the\loopcount\endcsname} + \xdef\structurefilename{\csname filenamestride\the\loopcount\endcsname} + \bgroup + \xdef\file@n@me{\structurefilename .@} + \expandafter\cut@name\file@n@me + \xdef\file@n@me{\file@n@me.sec} + \ifx\first@\file@n@me + \else + \immediate\openin\alignfile = \file@n@me\relax + \ifeof\alignfile \xdef\first@{make new} \fi + \immediate\closein\alignfile + \fi + \xdef\temp@{make new} + \ifx\first@\temp@ + \def\par{} + \inactivate@chars + \immediate\openin\structurefile = \structurefilename\relax + \ifeof\structurefile + \PackageError{TeXshade} + {File `\structurefilename' not found} + {\MessageBreak + The `STRIDE' file you specified is missing or you have \MessageBreak + misspelled it. \MessageBreak\MessageBreak + No labels for secondary structures will be displayed. \MessageBreak + Type <return> to proceed. \MessageBreak + Type X <return> to quit. \MessageBreak +} + \immediate\closein\structurefile\egroup + \else + \message{[\structurefilename] ->} + \immediate\openout\featurefile = \file@n@me + \xdef\c@mp{+} + \xdef\begin@{\csname seq@start\st@rt\endcsname} + \xdef\end@{\csname seq@start\st@rt\endcsname} + \xdef\st@rt@{\begin@} + \expandafter\innerloopcount=\csname seq@start\st@rt\endcsname + \advance\innerloopcount by -1 + \xdef\first@@{0} \xdef\second@@{0} \xdef\third@@{0} + \xdef\fourth@@{0} \xdef\fifth@@{0} \xdef\sixth@@{0} + \loop + \read\structurefile to \readline + \xdef\test@{\expandafter\string\readline} + \ifx\test@\par@ + \else + \xdef\structureline{\readline & & & & & & & & &@} + \expandafter\struc@get\structureline + \ifx\first@\@asg + \if\c@mp + \xdef\c@mp{\sixth@}\fi + \ifx\sixth@\c@mp + \temp@count=\fifth@ + \advance\temp@count by \st@rt@ + \advance\temp@count by -1 + \xdef\end@{\the\temp@count} + \else + \ifnum\begin@>0 + \ifnum\end@<\begin@ \xdef\end@{\begin@}\fi + \if\c@mp C + \else + \if\c@mp H + \ifx\show@Hstride\yes + \loopcount=\first@@ + \advance\loopcount by 1 + \xdef\first@@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Hstride}{\begin@..\end@}% + {\label@Hstride}{\text@Hstride}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Hstride}{\st@rt}{\begin@..\end@}% + {\label@Hstride}{\text@Hstride}}\fi + \fi + \else + \if\c@mp G + \ifx\show@Gstride\yes + \loopcount=\second@@ + \advance\loopcount by 1 + \xdef\second@@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Gstride}{\begin@..\end@}% + {\label@Gstride}{\text@Gstride}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Gstride}{\st@rt}{\begin@..\end@}% + {\label@Gstride}{\text@Gstride}}\fi + \fi + \else + \if\c@mp I + \ifx\show@Istride\yes + \loopcount=\third@@ + \advance\loopcount by 1 + \xdef\third@@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Istride}{\begin@..\end@}% + {\label@Istride}{\text@Istride}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Istride}{\st@rt}{\begin@..\end@}% + {\label@Istride}{\text@Istride}}\fi + \fi + \else + \if\c@mp E + \ifx\show@Estride\yes + \loopcount=\fourth@@ + \advance\loopcount by 1 + \xdef\fourth@@{\the\loopcount} + \advance\innerloopcount by 1 + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Estride}{\begin@..\end@}% + {\label@Estride}{\text@Estride}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Estride}{\st@rt}{\begin@..\end@}% + {\label@Estride}{\text@Estride}}\fi + \fi + \else + \if\c@mp B + \ifx\show@Bstride\yes + \loopcount=\fifth@@ + \advance\loopcount by 1 + \xdef\fifth@@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Bstride}{\begin@..\end@}% + {\label@Bstride}{\text@Bstride}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Bstride}{\st@rt}{\begin@..\end@}% + {\label@Bstride}{\text@Bstride}}\fi + \fi + \else + \if\c@mp T + \ifx\show@Tstride\yes + \loopcount=\sixth@@ + \advance\loopcount by 1 + \xdef\sixth@@{\the\loopcount} + \ifx\m@p\yes + \immediate\write\featurefile{% + \string\feature{\bottop@Tstride}{\begin@..\end@}% + {\label@Tstride}{\text@Tstride}} + \else + \immediate\write\featurefile{% + \string\feature{\bottop@Tstride}{\st@rt}{\begin@..\end@}% + {\label@Tstride}{\text@Tstride}}\fi + \fi + \fi\fi\fi\fi\fi\fi\fi + \fi + \xdef\c@mp{\sixth@} + \temp@count=\fifth@ + \advance\temp@count by \st@rt@ + \advance\temp@count by -1 + \xdef\begin@{\the\temp@count} + \fi + \fi + \fi + \ifeof\structurefile \else\repeat + \closein\structurefile + \immediate\closeout\featurefile + \egroup + \input{\file@n@me} + \fi + \else + \egroup + \message{using existing file:} + \input{\file@n@me} + \fi + } +\def\include@PHD{% + \xdef\first@{\csname optionphd\the\loopcount\endcsname} + \xdef\bottop@{\csname bottopphd\the\loopcount\endcsname} + \xdef\st@rt{\csname doseqphd\the\loopcount\endcsname} + \xdef\m@de{\csname modephd\the\loopcount\endcsname} + \xdef\structurefilename{\csname filenamephd\the\loopcount\endcsname} + \bgroup + \xdef\file@n@me{\structurefilename .@} + \expandafter\cut@name\file@n@me + \xdef\temp@{structure} + \ifx\m@de\temp@ + \xdef\temp@{\file@n@me .sec} + \immediate\openin\alignfile = \temp@\relax + \ifeof\alignfile \xdef\first@{make new} \fi + \immediate\closein\alignfile + \else + \xdef\temp@{topology} + \ifx\m@de\temp@ + \xdef\temp@{\file@n@me .top} + \immediate\openin\alignfile = \temp@\relax + \ifeof\alignfile \xdef\first@{make new} \fi + \immediate\closein\alignfile + \else + \message{<Unknown type. Ignoring \noexpand\includePHD>} + \xdef\first@{ignore} + \fi\fi + \xdef\temp@{make new} + \ifx\first@\temp@ + \def\par{} + \xdef\PHD@line{} + \inactivate@chars + \immediate\openin\structurefile=\structurefilename\relax + \ifeof\structurefile + \PackageError{TeXshade}% + {File `\structurefilename' not found}% + {\MessageBreak + The `PHD' file you specified is missing or you have \MessageBreak + misspelled it. \MessageBreak\MessageBreak + No labels for secondary structures will be displayed. \MessageBreak + Type <return> to proceed. \MessageBreak + Type X <return> to quit. \MessageBreak +} + \immediate\closein\structurefile\egroup + \else + \message{[\structurefilename] ->} + \loop + \read\structurefile to \readline + \xdef\structureline{\readline & & & & & & & & &@} + \expandafter\struc@get\structureline + \xdef\temp@{structure} + \ifx\m@de\temp@ + \xdef\temp@{SUB} + \ifx\temp@\first@ + \xdef\temp@{sec} + \ifx\temp@\second@ + \xdef\third@{\third@ @} + \expandafter\get@PHD\third@ + \fi + \else + \ifx\temp@\second@ + \xdef\temp@{sec} + \ifx\temp@\third@ + \xdef\fourth@{\fourth@ @} + \expandafter\get@PHD\fourth@ + \fi + \fi + \fi + \else + \xdef\temp@{topology} + \ifx\m@de\temp@ + \xdef\temp@{PHDThtm} + \ifx\temp@\first@ + \xdef\second@{\second@ @} + \expandafter\get@PHD\second@ + \fi + \fi\fi + \ifeof\structurefile \else\repeat + \closein\structurefile + \xdef\c@mp{+} + \xdef\begin@{\csname seq@start\st@rt\endcsname} + \xdef\end@{\csname seq@start\st@rt\endcsname} + \expandafter\innerloopcount=\csname seq@start\st@rt\endcsname + \advance\innerloopcount by -1 + \xdef\first@{0} \xdef\second@{0} \xdef\third@{0} + \xdef\fourth@{0} \xdef\fifth@{0} \xdef\sixth@{0} + \xdef\last@{\PHD@line &@} + \xdef\temp@{structure} + \ifx\temp@\m@de + \xdef\file@n@me{\file@n@me .sec} + \immediate\openout\featurefile = \file@n@me\relax + \write@PHDsec + \fi + \xdef\temp@{topology} + \ifx\temp@\m@de + \xdef\file@n@me{\file@n@me .top} + \immediate\openout\featurefile = \file@n@me\relax + \write@PHDtopo + \fi + \immediate\closeout\featurefile + \egroup + \input{\file@n@me} + \fi + \else + \egroup + \xdef\temp@{ignore} + \ifx\temp@\first@ + \else + \message{using existing file:} + \xdef\temp@{structure} + \ifx\temp@\m@de \xdef\file@n@me{\file@n@me .sec} \fi + \xdef\temp@{topology} + \ifx\temp@\m@de \xdef\file@n@me{\file@n@me .top} \fi + \input{\file@n@me} + \fi + \fi} +\def\show@DSSP{% + \expandafter\get@item\first@ + \ifx\fourth@\ampers@nd + \else + \xdef\temp@{alpha} + \ifx\fourth@\temp@ \xdef\show@Hdssp{\second@}\fi + \xdef\temp@{3-10} + \ifx\fourth@\temp@ \xdef\show@Gdssp{\second@}\fi + \xdef\temp@{pi} + \ifx\fourth@\temp@ \xdef\show@Idssp{\second@}\fi + \xdef\temp@{beta} + \ifx\fourth@\temp@ \xdef\show@Edssp{\second@}\fi + \xdef\temp@{bridge} + \ifx\fourth@\temp@ \xdef\show@Bdssp{\second@}\fi + \xdef\temp@{turn} + \ifx\fourth@\temp@ \xdef\show@Tdssp{\second@}\fi + \xdef\temp@{bend} + \ifx\fourth@\temp@ \xdef\show@Sdssp{\second@}\fi + \show@DSSP + \fi} +\def\show@HMMTOP{% + \expandafter\get@item\first@ + \ifx\fourth@\ampers@nd + \else + \xdef\temp@{internal} + \ifx\fourth@\temp@ \xdef\show@i@HMMTOP{\second@}\fi + \xdef\temp@{external} + \ifx\fourth@\temp@ \xdef\show@e@HMMTOP{\second@}\fi + \xdef\temp@{TM} + \ifx\fourth@\temp@ \xdef\show@TM@HMMTOP{\second@}\fi + \show@HMMTOP + \fi} +\def\show@STRIDE{% + \expandafter\get@item\first@ + \ifx\fourth@\ampers@nd + \else + \xdef\temp@{alpha} + \ifx\fourth@\temp@ \xdef\show@Hstride{\second@}\fi + \xdef\temp@{3-10} + \ifx\fourth@\temp@ \xdef\show@Gstride{\second@}\fi + \xdef\temp@{pi} + \ifx\fourth@\temp@ \xdef\show@Istride{\second@}\fi + \xdef\temp@{beta} + \ifx\fourth@\temp@ \xdef\show@Estride{\second@}\fi + \xdef\temp@{bridge} + \ifx\fourth@\temp@ \xdef\show@Bstride{\second@}\fi + \xdef\temp@{turn} + \ifx\fourth@\temp@ \xdef\show@Tstride{\second@}\fi + \show@STRIDE + \fi} +\def\show@PHDtopo{% + \expandafter\get@item\first@ + \ifx\fourth@\ampers@nd + \else + \xdef\temp@{internal} + \ifx\fourth@\temp@ \xdef\show@itop{\second@}\fi + \xdef\temp@{external} + \ifx\fourth@\temp@ \xdef\show@etop{\second@}\fi + \xdef\temp@{TM} + \ifx\fourth@\temp@ \xdef\show@TMtop{\second@}\fi + \show@PHDtopo + \fi} +\def\show@PHDsec{% + \expandafter\get@item\first@ + \ifx\fourth@\ampers@nd + \else + \xdef\temp@{alpha} + \ifx\fourth@\temp@ \xdef\show@Hsec{\second@}\fi + \xdef\temp@{beta} + \ifx\fourth@\temp@ \xdef\show@Esec{\second@}\fi + \show@PHDsec + \fi} +\def\get@triplet#1,#2@{% + \xdef\third@{#1} + \ifx\third@\ampers@nd + \else + \expandafter\xdef\csname @\third@\endcsname{\first@} + \expandafter\xdef\csname rev@\first@\endcsname{\third@} + \xdef\fourth@{#2,&,@} + \expandafter\get@triplet\fourth@ + \fi} + +\def\get@name@number{% + \xdef\second@{n} + \loopcount=0 + \loop + \advance\loopcount by 1 + \expandafter\ifx\csname newseqname\the\loopcount\endcsname\first@ + \xdef\first@{\the\loopcount} \loopcount=\seq@count + \xdef\second@{y} + \fi + \ifnum\loopcount=\seq@count \else \repeat + \ifx\second@\n@ + \message{<Sequence name `\first@' was not found, using first sequence.>} + \xdef\first@{1} + \fi +} + + +%%%%% Definition of user commands + +\def\clearfuncgroups{\xdef\prfx{func} \clear@groups \xdef\fgroup@num{0}} +\clearfuncgroups +\def\germanlanguage{\germ@ntrue \sp@nishfalse \def\cons@name{Konsensus}} +\def\spanishlanguage{\germ@nfalse \sp@nishtrue \def\cons@name{consenso}} +\def\englishlanguage{\germ@nfalse \sp@nishfalse \def\cons@name{consensus}} +\def\showlegend{\legend@true} +\def\hidelegend{\legend@false} +\def\movelegend#1#2{% + \setlength\hspace@legend{#1} + \setlength\vspace@legend{#2} +} +\newcommand{\showcaption}[2][bottom]{\def\cap@pos{#1}\def\c@p{#2}} +\def\shortcaption#1{\def\c@pshort{#1}} +\def\funcgroup#1#2#3#4#5#6{% + \xdef\first@{#1} + \loopcount=0 \innerloopcount=0 + \loop + \advance\loopcount by 1 + \ifx\csname fgroup@name\the\loopcount\endcsname\first@ + \innerloopcount=\loopcount \loopcount=\fgroup@num + \fi + \ifnum\loopcount<\fgroup@num \repeat + \ifnum\innerloopcount=0 + \ifnum\fgroup@num<9 + \innerloopcount=\fgroup@num + \advance\innerloopcount by 1 \xdef\fgroup@num{\the\innerloopcount} + \else \message{<Too many \noexpand\funcgroups>} + \fi + \fi + \ifnum\innerloopcount>0 + \expandafter\xdef\csname fgroup@name\the\innerloopcount\endcsname{\first@} + \expandafter\xdef\csname fg@textcolor\the\innerloopcount\endcsname{#3} + \expandafter\xdef\csname fg@color\the\innerloopcount\endcsname{#4} + \expandafter\xdef\csname funcm@tch\the\innerloopcount\endcsname{#5} + \expandafter\def\csname func@style\the\innerloopcount\endcsname{% + \csname text#6\endcsname} + \xdef\prfx{func} + \xdef\third@{#2&,@} \loopcount=\innerloopcount + \expandafter\group@get\third@ + \fi} +\def\pepgroups#1{% + \xdef\prfx{pep} + \clear@groups + \xdef\third@{#1&,@} \loopcount=0 + \loop \expandafter\group@get\third@ \advance\loopcount by 1 + \ifnum\loopcount<10 \repeat} +\def\DNAgroups#1{% + \xdef\prfx{DNA} + \clear@groups + \xdef\third@{#1&,@} \loopcount=0 + \loop \expandafter\group@get\third@ \advance\loopcount by 1 + \ifnum\loopcount<10 \repeat} +\def\pepsims#1#2{\xdef\prfx{pep} + \def\sim@set{\expandafter\residue@get\second@ + \ifx\first@\ampers@nd + \else \advance\innerloopcount by 1 + \xdef\second@{\csname sequence\the\loopcount\endcsname} \sim@set + \fi} + \xdef\first@{#1} \make@upper \xdef\third@{\first@} + \xdef\last@{#2} \xdef\second@{#2 &@} \innerloopcount=0 \sim@set + \expandafter\xdef\csname \prfx sim\third@\endcsname{% + (\the\innerloopcount)\last@}} +\def\DNAsims#1#2{\xdef\prfx{DNA} + \def\sim@set{\expandafter\residue@get\second@ + \ifx\first@\ampers@nd + \else \advance\innerloopcount by 1 + \xdef\second@{\csname sequence\the\loopcount\endcsname} \sim@set + \fi} + \xdef\first@{#1} \make@upper \xdef\third@{\first@} + \xdef\last@{#2} \xdef\second@{#2 &@} \innerloopcount=0 \sim@set + \expandafter\xdef\csname \prfx sim\third@\endcsname{% + (\the\innerloopcount)\last@}} +\def\fingerprint#1{% + \ifnum #1 >0 + \residuesperline*{#1} + \def\finger@linenum{#1} + \shownames{left} + \hidenumbering + \rulersteps{100} + \nomatchresidues{}{Gray10}{}{} + \loopcount=0 + \loop + \advance\loopcount by 1 + \separationline{\the\loopcount} + \ifnum\loopcount<\seq@count\repeat + \fi} +\def\shaderegion#1#2#3#4{% + \regionalshadetrue + \xdef\seq@{#1} + \xdef\temp@{consensus} \ifx\seq@\temp@ \xdef\seq@{0} \fi + \xdef\first@{\seq@ @} \expandafter\check@letter\first@ + \xdef\first@{\seq@} + \ifletter \get@name@number \xdef\seq@{\first@} \fi + \ifnum\seq@>\seq@count + \message{<Ignored `\seq@' in \noexpand\shaderegion or \noexpand\shadeblock>} + \else + \ifx\@ll\yes \xdef\@ll{y}\else \xdef\@ll{n}\fi + \loopcount=\seq@regions + \advance\loopcount by 1 + \xdef\seq@regions{\the\loopcount} + \expandafter\xdef\csname fgseqregion\the\loopcount\endcsname{#3} + \expandafter\xdef\csname bgseqregion\the\loopcount\endcsname{#4} + \xdef\list@{#2,&} + \loop + \xdef\list@{\list@ @} + \expandafter\get@regions\list@ + \ifx\list@\ampers@nd\else\repeat + \fi +} +\def\shadeblock#1#2#3#4{% + \xdef\seq@{#1} + \xdef\@ll{yes} + \shaderegion{#1}{#2}{#3}{#4} + \xdef\@ll{} +} +\def\tintregion#1#2{% + \xdef\seq@{#1} + \xdef\temp@{consensus} \ifx\seq@\temp@ \xdef\seq@{0} \fi + \xdef\first@{\seq@ @} \expandafter\check@letter\first@ + \xdef\first@{\seq@} + \ifletter \get@name@number \xdef\seq@{\first@} \fi + \ifnum\seq@>\seq@count + \message{<Ignored seq `\seq@' in \noexpand\tintregion or \noexpand\tintblock>} + \else + \ifx\@ll\yes \xdef\@ll{y}\else \xdef\@ll{n}\fi + \xdef\list@{#2,&} + \loop + \xdef\list@{\list@ @} + \expandafter\get@tintregions\list@ + \ifx\list@\ampers@nd\else\repeat + \fi +} +\def\tintblock#1#2{% + \xdef\seq@{#1} + \xdef\@ll{yes} + \tintregion{#1}{#2} + \xdef\@ll{} +} +\def\tintdefault#1{% + \xdef\first@{#1} + \xdef\second@{strong} + \ifx\first@\second@ + \xdef\light@{LightLightLight} + \else + \xdef\second@{medium} + \ifx\first@\second@ + \xdef\light@{LightLight} + \else + \xdef\second@{weak} + \ifx\first@\second@ + \xdef\light@{Light} + \else + \xdef\light@{LightLight} + \fi\fi\fi +} +\def\emphregion#1#2{% + \xdef\seq@{#1} + \xdef\temp@{consensus} \ifx\seq@\temp@ \xdef\seq@{0} \fi + \xdef\first@{\seq@ @} \expandafter\check@letter\first@ + \xdef\first@{\seq@} + \ifletter \get@name@number \xdef\seq@{\first@} \fi + \ifnum\seq@>\seq@count + \message{<Ignored seq `\seq@' in \noexpand\emphregion or \noexpand\emphblock>} + \else + \ifx\@ll\yes \xdef\@ll{y}\else \xdef\@ll{n}\fi + \xdef\list@{#2,&} + \loop + \xdef\list@{\list@ @} + \expandafter\get@emphregions\list@ + \ifx\list@\ampers@nd\else\repeat + \fi +} +\def\emphblock#1#2{% + \xdef\seq@{#1} + \xdef\@ll{yes} + \emphregion{#1}{#2} + \xdef\@ll{} +} +\def\emphdefault#1{\def\res@style{\csname text#1\endcsname}} +\def\frameblock#1#2#3{% + \xdef\seq@{#1} + \xdef\temp@{consensus} \ifx\seq@\temp@ \xdef\seq@{0} \fi + \xdef\first@{\seq@ @} \expandafter\check@letter\first@ + \xdef\first@{\seq@} + \ifletter \get@name@number \xdef\seq@{\first@} \fi + \ifnum\seq@>\seq@count + \message{<Ignored seq `\seq@' in \noexpand\frameblock>} + \else + \xdef\@ll{#3} + \xdef\list@{#2,&} + \loop + \xdef\list@{\list@ @} + \expandafter\get@frameregions\list@ + \ifx\list@\ampers@nd\else\repeat + \fi +} +\def\bargraphstretch#1{\def\b@r@stretch{#1}} +\def\colorscalestretch#1{\def\sc@le@stretch{#1}} +\def\rm@@measure#1#2@{% + \xdef\test@{#1} + \ifx\test@\ampers@nd + \else + \expandafter\check@char\test@ + \ifnumber\xdef\first@{\first@ #1} + \xdef\second@{#2 &@} + \expandafter\rm@@measure\second@ + \fi + \fi +} +\def\rm@measure#1.#2@{\xdef\first@{#1.}\xdef\second@{#2 @}\xdef\third@{#1}\expandafter\rm@@measure\second@} +\def\pm@calc{% + \temp@@length=100000sp + \temp@@length=\g@min\temp@@length + \innerloopcount=\temp@@length + \xdef\min@{\the\innerloopcount} + \arrow@height=\temp@@length + \temp@@length=100000sp + \temp@@length=\g@max\temp@@length + \advance\temp@@length by -\arrow@height + \innerloopcount=\temp@@length + \divide\innerloopcount by 100 + \ifnum\innerloopcount=0 \innerloopcount=1 \fi + \xdef\m@x{\the\innerloopcount} + \xdef\test@{\g@min pt} + \setlength\arrow@width{\test@} + \xdef\test@{\g@max pt} + \setlength\arrow@height{\test@} + \advance\arrow@height by -\arrow@width + \ifdim\arrow@width<0pt\temp@@length=-\arrow@width\xdef\test@{y}\else\temp@@length=\arrow@width\xdef\test@{n}\fi + \ifdim\arrow@height>0pt + \ifx\test@\n@ \xdef\test@{y} \else \xdef\test@{n} \fi + \ifdim\temp@@length<\arrow@height\temp@@length=\arrow@height\fi + \else + \ifdim\temp@@length>-\arrow@height\temp@@length=\arrow@height\fi + \fi + \ifdim\temp@@length<100pt\arrow@width=100\arrow@width\arrow@height=100\arrow@height\else + \ifdim\temp@@length<10pt\arrow@width=1000\arrow@width\arrow@height=1000\arrow@height\else + \ifdim\temp@@length<1pt\arrow@width=10000\arrow@width\arrow@height=10000\arrow@height\else + \ifdim\temp@@length<0.1pt\arrow@width=100000\arrow@width\arrow@height=100000\arrow@height\else + \ifdim\temp@@length<0.01pt\arrow@width=1000000\arrow@width \arrow@height=1000000\arrow@height\else + \ifdim\temp@@length<0.001pt\arrow@width=10000000\arrow@width \arrow@height=10000000\arrow@height\else + \ifdim\temp@@length<0.0001pt\arrow@width=100000000\arrow@width \arrow@height=100000000\arrow@height\else + \ifdim\temp@@length<0.00001pt\arrow@width=1000000000\arrow@width \arrow@height=1000000000\arrow@height + \fi\fi\fi\fi\fi\fi\fi\fi + \ifx\test@\y@ + \xdef\pm@{0} + \else + \xdef\test@{-\the\arrow@height @} + \expandafter\rm@measure\test@ + \divide\arrow@width by \third@ + \xdef\pm@{\the\arrow@width @} + \expandafter\rm@measure\pm@ + \xdef\pm@{\first@} + \fi +} +\def\read@graph{% + \bgroup + \immediate\openin\structurefile = \fill@char\relax + \ifeof\structurefile + \PackageError{TeXshade} + {File `\fill@char' not found} + {\MessageBreak + The file you specified is missing or you have \MessageBreak + misspelled it. \MessageBreak\MessageBreak + No feature graph will be displayed. \MessageBreak + Type <return> to proceed. \MessageBreak + Type X <return> to quit. \MessageBreak +} + \immediate\closein\structurefile\egroup + \else + \ifx\g@min\comm@ + \def\par@{} + \xdef\g@min{,} \xdef\g@max{,} + \loop + \read\structurefile to \readline + \xdef\test@{\expandafter\string\readline} + \ifx\test@\par@ + \else + \xdef\second@{\test@ @} + \expandafter\check@letter\second@ + \ifletter + \xdef\second@{\expandafter\string\readline} + \xdef\second@{\second@ @} + \expandafter\firstchar@get\second@ + \if\first@ - \numbertrue\fi + \fi + \ifnumber + \temp@@length=1pt + \temp@@length=\test@\temp@@length + \innerloopcount=\temp@@length + \ifx\g@min\comm@ \xdef\min@{\test@ pt} \xdef\g@min{\test@} + \else + \ifdim\temp@@length<\min@\relax \xdef\min@{\the\temp@@length} \xdef\g@min{\test@} \fi\fi% + \ifx\g@max\comm@ \xdef\m@x{\test@ pt} \xdef\g@max{\test@} + \else + \ifdim\temp@@length>\m@x\relax \xdef\m@x{\the\temp@@length} \xdef\g@max{\test@} \fi\fi% + \fi + \fi + \ifeof\structurefile\else\repeat + \fi + \immediate\closein\structurefile + \pm@calc + \expandafter\temp@count=\csname seq@start\seq@\endcsname + \advance\temp@count by -1 + \xdef\temp@@@{n} + \immediate\openin\structurefile = \fill@char\relax + \loop + \read\structurefile to \readline + \xdef\test@{\expandafter\string\readline} + \ifx\test@\par@ + \else + \xdef\second@{\test@ @} + \expandafter\check@letter\second@ + \ifletter + \xdef\second@{\expandafter\string\readline} + \xdef\second@{\second@ @} + \expandafter\firstchar@get\second@ + \if\first@ - \numbertrue + \else + \if\first@ N + \expandafter\firstchar@get\third@ + \if\first@ a + \expandafter\firstchar@get\third@ + \if\first@ N + \advance\temp@count by 1 + \ifnum\temp@count=0 \temp@count=1 \fi + \ifnum\temp@count<\st@rt + \else + \ifnum\temp@count>\st@p + \else + \ifx\temp@@@\n@ + \xdef\temp@@@{N} + \else + \xdef\temp@@@{\temp@@@,N} + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \ifnumber + \advance\temp@count by 1 + \ifnum\temp@count=0 \temp@count=1 \fi + \ifnum\temp@count<\st@rt + \else + \ifnum\temp@count>\st@p + \else + \temp@@length=100000sp + \temp@@length=\test@\temp@@length + \innerloopcount=\temp@@length + \advance\innerloopcount by 1 + \xdef\test@{\pm@ pt} + \ifdim\test@=0pt + \advance\innerloopcount by -\min@ + \else + \ifx\b@r\n@ + \advance\innerloopcount by -\min@ + \fi + \fi + \divide\innerloopcount by \m@x + \ifx\temp@@@\n@ + \xdef\temp@@@{\the\innerloopcount} + \else + \xdef\temp@@@{\temp@@@,\the\innerloopcount} + \fi + \fi + \fi + \fi + \fi + \ifeof\structurefile\else\repeat + \immediate\closein\structurefile + \xdef\temp@@@{\temp@@@,@} \xdef\temp@@{y} + \fi + \egroup +} +\def\sort@gstack{% + \expandafter\get@fromstack\last@ + \ifx\first@\ampers@nd + \xdef\tmpstack{\tmpstack\f@text@&;&;&;&;@} + \else + \ifnum\loopcount<\second@ + \xdef\tmpstack{\tmpstack\f@text@\first@;\second@;\third@;\fourth@;\last@} + \else + \xdef\tmpstack{\tmpstack\first@;\second@;\third@;\fourth@;} + \sort@gstack + \fi\fi +} +\def\get@gregion#1..#2,#3&{% + \xdef\st@rt{#1} \xdef\st@p{#2} \xdef\list@{#3} +} +\def\do@bargraph{% + \expandafter\get@gregion\list@ + \expandafter\ifnum\csname seq@start\seq@\endcsname>\st@rt + \else + \xdef\temp@@{n} + \xdef\b@r{y} + \xdef\pm@{0} + \xdef\temp@@@{\fill@char,@} + \expandafter\check@letter\temp@@@ + \ifletter + \read@graph + \else + \ifx\g@min\comm@ \xdef\g@min{0} \fi + \ifx\g@max\comm@ \xdef\g@max{100} \fi + \pm@calc + \xdef\temp@@@{\fill@char,@} + \xdef\temp@@{y} + \fi + \ifx\temp@@\y@ + \loopcount=\st@rt + \xdef\tmpstack{} + \loop + \expandafter\get@item\temp@@@ + \xdef\temp@@@{\first@} + \xdef\style@{bar[\pm@,0]:\fourth@[\f@color]} + \xdef\tmpstack{\tmpstack\f@text@;\the\loopcount;\the\loopcount;\style@;} + \advance\loopcount by 1 + \ifnum\loopcount=0 \loopcount=1 \fi + \ifnum\loopcount>\st@p + \else\repeat + \xdef\f@text@{\tmpstack} \xdef\tmpstack{} + \xdef\last@{\csname stack@\bottop@\seq@\endcsname} + \sort@gstack + \expandafter\xdef\csname stack@\bottop@\seq@\endcsname{\tmpstack} + \fi + \fi + \xdef\list@{\list@ &} + \ifx\list@\ampers@nd\else\do@bargraph\fi +} +\def\do@colorgraph{% + \expandafter\get@gregion\list@ + \expandafter\ifnum\csname seq@start\seq@\endcsname>\st@rt + \else + \xdef\temp@@{n} + \xdef\b@r{n} + \xdef\pm@{0} + \xdef\temp@@@{\fill@char,@} + \expandafter\check@letter\temp@@@ + \ifletter + \read@graph + \else + \ifx\g@min\comm@ \xdef\g@min{0} \fi + \ifx\g@max\comm@ \xdef\g@max{100} \fi + \pm@calc + \xdef\temp@@@{\fill@char,@} + \xdef\temp@@{y} + \fi + \ifx\temp@@\y@ + \loopcount=\st@rt + \xdef\tmpstack{} + \loop + \xdef\last@{\csname stack@\bottop@\seq@\endcsname} + \expandafter\get@item\temp@@@ + \xdef\temp@@@{\first@} + \ifx\fourth@\N@ + \xdef\style@{color:50[White]} + \else + \ifnum\fourth@<1 \xdef\fourth@{1} \fi + \innerloopcount=\fourth@ + \advance\innerloopcount by 4 + \divide\innerloopcount by 5 + \multiply\innerloopcount by 5 + \ifnum\innerloopcount>100 \innerloopcount=100 \fi + \xdef\style@{color:50[\f@color\the\innerloopcount]} + \fi + \xdef\tmpstack{\tmpstack\f@text@;\the\loopcount;\the\loopcount;\style@;} + \advance\loopcount by 1 + \ifnum\loopcount=0 \loopcount=1 \fi + \ifnum\loopcount>\st@p + \else\repeat + \xdef\f@text@{\tmpstack} \xdef\tmpstack{} + \xdef\last@{\csname stack@\bottop@\seq@\endcsname} + \sort@gstack + \expandafter\xdef\csname stack@\bottop@\seq@\endcsname{\tmpstack} + \fi + \fi + \xdef\list@{\list@ &} + \ifx\list@\ampers@nd\else\do@colorgraph\fi +} +\def\feature#1#2#3#4#5{% + \xdef\bottop@{#1} + \xdef\temp@{top} + \ifx\bottop@\temp@ \topfeaturetrue\fi + \xdef\temp@{ttop} + \ifx\bottop@\temp@ \ttopfeaturetrue\fi + \xdef\temp@{bottom} + \ifx\bottop@\temp@ \bottomfeaturetrue\fi + \xdef\temp@{bbottom} + \ifx\bottop@\temp@ \bbottomfeaturetrue\fi + \xdef\seq@{#2} + \xdef\temp@{consensus} \ifx\seq@\temp@ \xdef\seq@{0} \fi + \xdef\first@{\seq@ @} \expandafter\check@letter\first@ + \xdef\first@{\seq@} + \ifletter \get@name@number \xdef\seq@{\first@} \fi + \ifnum\seq@>\seq@count + \message{<Ignored seq `\seq@' in \noexpand\feature>} + \else + \ifnum\seq@>-1 + \xdef\temp@{#4::&}\expandafter\test@fill\temp@ + \xdef\last@{bar} + \ifx\second@@\last@ + \xdef\last@{hydrophobicity} + \ifx\last@\fourth@ + \xdef\second@@{bh} + \else + \xdef\last@{molweight} + \ifx\last@\fourth@ + \xdef\second@@{bm} + \else + \xdef\last@{charge} + \ifx\last@\fourth@ + \xdef\second@@{bc} + \else + \xdef\last@{conservation} + \ifx\last@\fourth@ + \xdef\second@@{bcons} + \fi + \fi + \fi + \fi + \fi + \xdef\last@{color} + \ifx\second@@\last@ + \xdef\last@{hydrophobicity} + \ifx\last@\fourth@ + \xdef\second@@{ch} + \else + \xdef\last@{molweight} + \ifx\last@\fourth@ + \xdef\second@@{cm} + \else + \xdef\last@{charge} + \ifx\last@\fourth@ + \xdef\second@@{cc} + \else + \xdef\last@{conservation} + \ifx\last@\fourth@ + \xdef\second@@{ccons} + \fi + \fi + \fi + \fi + \fi + \xdef\last@{bar} + \ifx\second@@\last@ + \xdef\list@{#3,&} + \xdef\style@{#4} + \xdef\f@text@{#5} + \do@bargraph + \xdef\temp@{bottom} + \ifx\bottop@\temp@ \xdef\bottom@stretch{y}\fi + \xdef\temp@{bbottom} + \ifx\bottop@\temp@ \xdef\bbottom@stretch{y}\fi + \else + \xdef\last@{color} + \ifx\second@@\last@ + \xdef\list@{#3,&} + \xdef\style@{#4} + \xdef\f@text@{#5} + \do@colorgraph + \else + \xdef\f@text@{#5} + \xdef\list@{#3,&} + \xdef\temp@{#4&} + \ifx\temp@\ampers@nd + \xdef\style@{&} + \else + \xdef\last@{restriction} + \ifx\second@@\last@ + \xdef\temp@{\bottop@ @} + \expandafter\firstchar@get\temp@ + \xdef\temp@{y} + \if\first@ t + \xdef\style@{fill:\kern0.9\box@width$\blacktriangledown$[\f@color]} + \else + \xdef\style@{fill:\kern0.9\box@width$\blacktriangle$[\f@color]} + \fi + \xdef\f@text@{\kern0.9\box@width#5} + \else + \xdef\last@{bh} + \ifx\second@@\last@ + \ifx\f@color\gr@ydef@ult\xdef\f@color{Gray50}\fi + \xdef\style@{plot[bar]:Hydro[\f@color][-53]} + \else + \xdef\last@{bm} + \ifx\second@@\last@ + \ifx\f@color\gr@ydef@ult\xdef\f@color{Gray50}\fi + \xdef\style@{plot[bar]:molw[\f@color][0]} + \else + \xdef\last@{bc} + \ifx\second@@\last@ + \ifx\f@color\gr@ydef@ult\xdef\f@color{Gray50}\fi + \xdef\style@{plot[bar]:charge[\f@color][-50]} + \else + \xdef\last@{bcons} + \ifx\second@@\last@ + \ifx\f@color\gr@ydef@ult\xdef\f@color{Gray50}\fi + \xdef\style@{cons[bar]:cons[\f@color][0]} + \else + \xdef\last@{ch} + \ifx\second@@\last@ + \ifx\f@color\gr@ydef@ult\xdef\f@color{RedGreen}\fi + \xdef\style@{plot[color]:Hydro[\f@color][-53]} + \else + \xdef\last@{cm} + \ifx\second@@\last@ + \ifx\f@color\gr@ydef@ult\xdef\f@color{Gray}\fi + \xdef\style@{plot[color]:molw[\f@color][0]} + \else + \xdef\last@{cc} + \ifx\second@@\last@ + \ifx\f@color\gr@ydef@ult\xdef\f@color{RedBlue}\fi + \xdef\style@{plot[color]:charge[\f@color][-50]} + \else + \xdef\last@{ccons} + \ifx\second@@\last@ + \ifx\f@color\gr@ydef@ult\xdef\f@color{ColdHot}\fi + \xdef\style@{cons[color]:cons[\f@color][0]} + \else + \xdef\style@{#4} \expandafter\getarrow@shape\temp@ + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \loop + \xdef\list@{\list@ @} + \expandafter\get@fregions\list@ + \ifx\list@\ampers@nd\else\repeat + \fi\fi\fi + \fi +} +\def\seqtype#1{\xdef\seq@type{#1} + \if\seq@type P \xdef\prefix@{pep} + \else \if\seq@type p \xdef\seq@type{P} \xdef\prefix@{pep} + \else \xdef\seq@type{N} \xdef\prefix@{DNA} \fi\fi} +\def\nameseq#1#2{% + \xdef\first@{#1 @} \expandafter\check@letter\first@ + \xdef\first@{#1} \ifletter \get@name@number \fi + \expandafter\xdef\csname newseqname\first@\endcsname{#2} +} +\def\threshold#1{\xdef\thresh@ld{#1}} +\def\constosingleseq#1{% + \xdef\first@{#1 @} \expandafter\check@letter\first@ + \xdef\first@{#1} \ifletter \get@name@number \fi + \ifnum\first@>\seq@count + \message{<Ignored seq `#1' in \noexpand\constosingleseq>} + \else + \ifnum\first@>0 \xdef\cons@num{\first@} \hideconsensus\fi\fi +} +\def\constoallseqs{\xdef\cons@num{0}} +\def\residuesperline{% + \def\@rplfix*##1{% + \res@perline=##1 + \ifnum\res@perline<1 \res@perline=1\fi \rpl@fixtrue} + \def\@rplvar ##1{% + \res@perline=##1 + \ifnum\res@perline<5 \res@perline=5\fi \rpl@fixfalse} + \def\decide@{\ifx\l@@k * \let\next\@rplfix \else \let\next\@rplvar \fi \next} + \futurelet\l@@k\decide@} +\def\numberingwidth#1{\def\num@width{#1}} +\def\charstretch#1{\def\char@stretch{#1}} +\def\linestretch#1{\def\line@stretch{#1}} +\def\noblockskip{\def\block@skip{\vspace{0pt}}} +\def\smallblockskip{\def\block@skip{\vspace{\baselineskip}}} +\def\medblockskip{\def\block@skip{\vspace{1.5\baselineskip}}} +\def\bigblockskip{\def\block@skip{\vspace{2\baselineskip}}} +\def\vblockspace#1{\def\block@skip{\vspace{#1}}} +\def\topspace#1{\def\t@sp@ce{#1}} +\def\ttopspace#1{\def\tt@sp@ce{#1}} +\def\bottomspace#1{\def\b@sp@ce{#1}} +\def\bbottomspace#1{\def\bb@sp@ce{#1}} +\def\fixblockspace{\fix@true} +\def\flexblockspace{\fix@false} +\def\nosepline{\def\seq@skip{\relax}} +\def\smallsepline{\def\seq@skip{\vspace{3pt}}\def\sep@space{3pt}} +\def\medsepline{\def\seq@skip{\vspace{6pt}}\def\sep@space{6pt}} +\def\bigsepline{\def\seq@skip{\vspace{12pt}}\def\sep@space{12pt}} +\def\vsepspace#1{\def\seq@skip{\vspace{#1}}\xdef\sep@space{#1}} +\def\separationline#1{% + \xdef\start@seq{#1} + \xdef\first@{#1 @} \expandafter\check@letter\first@ + \xdef\first@{#1} + \ifletter \get@name@number \xdef\start@seq{\first@} \fi + \ifnum\start@seq>\seq@count \xdef\start@seq{1} + \else + \ifnum\start@seq<0 \xdef\start@seq{1} + \else + \expandafter\def\csname seq@gap\start@seq\endcsname{yes} + \loopcount=\seq@gap@num + \advance\loopcount by 1 + \xdef\seq@gap@num{\the\loopcount} + \fi + \fi} +\newcommand{\shadingmode}[2][1]{% + \xdef\last@{#2} + \xdef\first@{identical} + \all@shadefalse + \ifx\first@\last@ + \simmodefalse \funcmodefalse + \xdef\last@{#1} \xdef\second@{allmatchspecial} + \ifx\second@\last@ \all@shadetrue \fi + \else + \xdef\first@{similar} + \ifx\first@\last@ + \simmodetrue \funcmodefalse + \xdef\last@{#1} \xdef\second@{allmatchspecial} + \ifx\second@\last@ \all@shadetrue \fi + \else + \xdef\first@{functional} + \ifx\first@\last@ + \if\seq@type P \simmodefalse \funcmodetrue \func@shading{#1} + \else \message{<No functional shading on DNA sequences>} \fi + \else + \xdef\first@{diverse} + \ifx\first@\last@ + \xdef\last@{#1} + \ifnum\last@>\seq@count \xdef\last@{1}\fi + \ifnum\last@<1 \xdef\last@{1}\fi + \simmodetrue \funcmodefalse + \threshold{0} + \donotshade{\last@} \constosingleseq{\last@} + \nomatchresidues{Black}{White}{lower}{up} + \similarresidues{Black}{White}{lower}{up} + \conservedresidues{Black}{White}{{.}}{up} + \allmatchresidues{Black}{White}{{.}}{up} + \gapchar{-} + \hideconsensus + \else + \message{<Unknown shading mode. Using `similar'>} + \simmodetrue \funcmodefalse + \fi\fi\fi\fi} +\def\allmatchspecial{\all@shadetrue} +\def\allmatchspecialoff{\all@shadefalse} +\def\gapchar#1{% + \xdef\first@{rule}\xdef\second@{#1} + \ifx\first@\second@\def\gap@char{o} + \else\def\gap@char{#1}\fi} +\def\gaprule#1{\def\gap@rulethick{#1}} +\def\setends#1#2{% + \xdef\start@seq{#1} + \xdef\temp@{consensus} + \ifx\start@seq\temp@ \xdef\start@seq{0} \fi + \xdef\first@{\start@seq @} \expandafter\check@letter\first@ + \xdef\first@{\start@seq} + \ifletter \get@name@number \xdef\start@seq{\first@} \fi + \ifnum\start@seq>\seq@count \xdef\start@seq{1} + \else + \ifnum\start@seq<0 \xdef\start@seq{1} + \else + \xdef\second@{#2@} \expandafter\get@nums\second@ + \xdef\start@num{\first@} \xdef\end@num{\second@} + \start@false + \fi + \fi} +\def\startnumber#1#2{% + \xdef\first@{#1 @} \expandafter\check@letter\first@ + \xdef\first@{#1} \ifletter \get@name@number \fi + \ifnum\first@>\seq@count \message{<Ignored seq `#1' in \noexpand\startnumber>} + \else + \xdef\second@{#2} \ifnum\second@=0 \xdef\second@{1} \fi + \expandafter\xdef\csname seq@start\first@\endcsname{\second@} + \csname res@count\first@\endcsname=\second@ + \advance\csname res@count\first@\endcsname by -1 + \fi} +\def\seqlength#1#2{% + \xdef\first@{#1 @} \expandafter\check@letter\first@ + \xdef\first@{#1} \ifletter \get@name@number \fi + \ifnum\first@>\seq@count \message{<Ignored seq `#1' in \noexpand\seqlength>} + \else + \xdef\second@{#2} \ifnum\second@<0 \xdef\second@{1} \fi + \expandafter\xdef\csname seq@len\first@\endcsname{\second@} + \fi} +\def\shownumbering#1{% + \xdef\first@{#1} \xdef\second@{right} + \ifx\first@\second@ \numbers@leftfalse \else \numbers@lefttrue \fi + \numbers@true} +\def\hidenumbering{\numbers@false} +\def\hidenumber#1{\xdef\first@{#1,&,@} \hidenumber@} +\def\shownames#1{% + \xdef\first@{#1} \xdef\second@{left} + \ifx\first@\second@ \names@rightfalse \else \names@righttrue \fi + \names@true} +\def\hidenames{\names@false} +\def\hidename#1{\xdef\first@{#1,&,@} \hidename@} +\def\hideresidues{\hidechartrue} +\def\showresidues{\hidecharfalse} +\def\alignment#1{% + \xdef\first@{#1} + \xdef\temp@{left} + \ifx\first@\temp@ \xdef\c@factor{0} + \else + \xdef\temp@{center} + \ifx\first@\temp@ \xdef\c@factor{0.5} + \else + \xdef\temp@{right} + \ifx\first@\temp@ \xdef\c@factor{1} + \fi\fi\fi} +\def\donotshade#1{% + \xdef\temp@{consensus} + \xdef\first@{#1} + \ifx\first@\temp@ + \consensuscolors{Black}{White}{Black}{White}{Black}{White} + \else + \xdef\first@{#1,&,@} \donot@shade + \fi} +\def\hideseq#1{\xdef\first@{#1,&,@} \hideseq@} +\def\killseq#1{\xdef\first@{#1,&,@} \killseq@} +\newcommand\showconsensus[2][n]{% + \xdef\text@scale{n} + \xdef\box@scale{n} + \xdef\first@{#1} + \ifx\first@\n@ + \xdef\collect@cons@colors{no} + \else + \xdef\first@{#1,&,@} + \expandafter\get@item\first@ + \xdef\c@nsc@l{\fourth@} + \xdef\first@@{Gray} + \ifx\c@nsc@l\first@@\xdef\text@scale{y}\else + \xdef\first@@{RedBlue} + \ifx\c@nsc@l\first@@\xdef\text@scale{y}\else + \xdef\first@@{BlueRed} + \ifx\c@nsc@l\first@@\xdef\text@scale{y}\else + \xdef\first@@{RedGreen} + \ifx\c@nsc@l\first@@\xdef\text@scale{y}\else + \xdef\first@@{GreenRed} + \ifx\c@nsc@l\first@@\xdef\text@scale{y}\else + \xdef\first@@{ColdHot} + \ifx\c@nsc@l\first@@\xdef\text@scale{y}\else + \xdef\first@@{HotCold} + \ifx\c@nsc@l\first@@\xdef\text@scale{y} + \fi\fi\fi\fi\fi\fi\fi + \expandafter\get@item\first@ + \ifx\fourth@\ampers@nd + \xdef\c@nssc@le{White} + \else + \xdef\c@nssc@le{\fourth@} + \xdef\first@{Gray} + \ifx\c@nssc@le\first@\xdef\box@scale{y}\else + \xdef\first@{RedBlue} + \ifx\c@nssc@le\first@\xdef\box@scale{y}\else + \xdef\first@{BlueRed} + \ifx\c@nssc@le\first@\xdef\box@scale{y}\else + \xdef\first@{RedGreen} + \ifx\c@nssc@le\first@\xdef\box@scale{y}\else + \xdef\first@{GreenRed} + \ifx\c@nssc@le\first@\xdef\box@scale{y}\else + \xdef\first@{ColdHot} + \ifx\c@nssc@le\first@\xdef\box@scale{y}\else + \xdef\first@{HotCold} + \ifx\c@nssc@le\first@\xdef\box@scale{y}\else + \fi\fi\fi\fi\fi\fi\fi + \fi + \xdef\collect@cons@colors{y} + \fi + \xdef\first@{#2} \xdef\last@{top} + \ifx\first@\last@\xdef\cons@top{0}\else\xdef\cons@top{1}\fi + \show@construe} +\def\consensuscolors#1#2#3#4#5#6{% + \xdef\last@{\ampers@nd} + \xdef\first@{#1&}\xdef\second@{#2&} + \ifx\first@\last@\else\def\ConsTextNomatch{#1}\fi + \ifx\second@\last@\else\def\ConsNomatch{#2}\fi + \xdef\first@{#3&}\xdef\second@{#4&} + \ifx\first@\last@\else\def\ConsTextMatch{#3}\fi + \ifx\second@\last@\else\def\ConsMatch{#4}\fi + \xdef\first@{#5&}\xdef\second@{#6&} + \ifx\first@\last@\else\def\ConsTextAllmatch{#5}\fi + \ifx\second@\last@\else\def\ConsAllmatch{#6}\fi +} +\def\defconsensus#1#2#3{% + \xdef\second@{#1&} + \ifx\second@\ampers@nd \else \def\n@m@tch{#1}\fi + \xdef\second@{#2&} + \ifx\second@\ampers@nd \else \def\m@tch{#2}\fi + \xdef\second@{#3&} + \ifx\second@\ampers@nd \else \def\@llm@tch{#3}\fi} +\def\hideconsensus{\show@consfalse} +\def\nameconsensus#1{\def\cons@name{#1}} +\def\hideleadinggaps{\sh@wg@psfalse} +\def\showleadinggaps{\sh@wg@pstrue} +\def\showruler#1#2{% + \xdef\first@{consensus} \xdef\second@{#2} + \xdef\third@{bottom} \xdef\fourth@{#1} + \ifx\third@\fourth@ \xdef\rule@top{1}\else\xdef\rule@top{0}\fi + \ifx\first@\second@ \xdef\rule@num{0} + \else + \xdef\first@{#2 @} \expandafter\check@letter\first@ + \xdef\first@{#2} \ifletter \get@name@number \fi + \ifnum\first@>\seq@count + \else + \ifnum\first@>0 + \xdef\rule@num{\first@} + \fi + \fi + \fi + \xdef\ruler@{}} +\def\hideruler{\xdef\rule@num{-1}} +\def\rulersteps#1{\xdef\ruler@step{#1}} +\def\featurerule#1{\setlength\rule@thick{#1}} +\def\orderseqs#1{% + \def\order@loop{% + \expandafter\check@letter\first@ + \ifletter + \expandafter\get@item\first@ + \xdef\first@{\fourth@} + \get@name@number + \xdef\seq@order{\seq@order,\first@} + \xdef\first@{\first@@ @} + \order@loop + \else + \expandafter\get@digit\first@ + \ifx\fourth@\ampers@nd + \else + \xdef\seq@order{\seq@order,\fourth@} + \order@loop + \fi + \fi} + \xdef\first@{#1,&,@} + \xdef\seq@order{} + \order@loop + \xdef\seq@order{\seq@order @} + \expandafter\get@item\seq@order + \xdef\seq@order{\first@@,@} +} +\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@} + \else + \xdef\temp@{labels} + \ifx\first@\temp@ \xdef\label@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\label@family{\third@} + \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@} + \else + \xdef\temp@{labels} + \ifx\first@\temp@ \xdef\label@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\label@series{\third@} + \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@} + \else + \xdef\temp@{labels} + \ifx\first@\temp@ \xdef\label@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\label@shape{\third@} + \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} + \else + \xdef\temp@{labels} + \ifx\first@\temp@ + \def\label@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\label@size{\csname #2\endcsname} + \def\residues@size{\csname #2\endcsname} + \xdef\res@size{#2} + \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\featuresrm{\setfamily{features}{rm}} +\def\featuressf{\setfamily{features}{sf}} +\def\featurestt{\setfamily{features}{tt}} +\def\featuresmd{\setseries{features}{md}} +\def\featuresbf{\setseries{features}{bf}} +\def\featuresup{\setshape {features}{up}} +\def\featuresit{\setshape {features}{it}} +\def\featuressl{\setshape {features}{sl}} +\def\featuressc{\setshape {features}{sc}} +\def\featurestiny {\setsize{features}{tiny}} +\def\featuresscriptsize {\setsize{features}{scriptsize}} +\def\featuresfootnotesize{\setsize{features}{footnotesize}} +\def\featuressmall {\setsize{features}{small}} +\def\featuresnormalsize {\setsize{features}{normalsize}} +\def\featureslarge {\setsize{features}{large}} +\def\featuresLarge {\setsize{features}{Large}} +\def\featuresLARGE {\setsize{features}{LARGE}} +\def\featureshuge {\setsize{features}{huge}} +\def\featuresHuge {\setsize{features}{Huge}} +\def\featurestylesrm{\setfamily{featurestyles}{rm}} +\def\featurestylessf{\setfamily{featurestyles}{sf}} +\def\featurestylestt{\setfamily{featurestyles}{tt}} +\def\featurestylesmd{\setseries{featurestyles}{md}} +\def\featurestylesbf{\setseries{featurestyles}{bf}} +\def\featurestylesup{\setshape {featurestyles}{up}} +\def\featurestylesit{\setshape {featurestyles}{it}} +\def\featurestylessl{\setshape {featurestyles}{sl}} +\def\featurestylessc{\setshape {featurestyles}{sc}} +\def\featurestylestiny {\setsize{featurestyles}{tiny}} +\def\featurestylesscriptsize {\setsize{featurestyles}{scriptsize}} +\def\featurestylesfootnotesize{\setsize{featurestyles}{footnotesize}} +\def\featurestylessmall {\setsize{featurestyles}{small}} +\def\featurestylesnormalsize {\setsize{featurestyles}{normalsize}} +\def\featurestyleslarge {\setsize{featurestyles}{large}} +\def\featurestylesLarge {\setsize{featurestyles}{Large}} +\def\featurestylesLARGE {\setsize{featurestyles}{LARGE}} +\def\featurestyleshuge {\setsize{featurestyles}{huge}} +\def\featurestylesHuge {\setsize{featurestyles}{Huge}} +\def\numberingrm{\setfamily{numbering}{rm}} +\def\numberingsf{\setfamily{numbering}{sf}} +\def\numberingtt{\setfamily{numbering}{tt}} +\def\numberingmd{\setseries{numbering}{md}} +\def\numberingbf{\setseries{numbering}{bf}} +\def\numberingup{\setshape {numbering}{up}} +\def\numberingit{\setshape {numbering}{it}} +\def\numberingsl{\setshape {numbering}{sl}} +\def\numberingsc{\setshape {numbering}{sc}} +\def\numberingtiny {\setsize{numbering}{tiny}} +\def\numberingscriptsize {\setsize{numbering}{scriptsize}} +\def\numberingfootnotesize{\setsize{numbering}{footnotesize}} +\def\numberingsmall {\setsize{numbering}{small}} +\def\numberingnormalsize {\setsize{numbering}{normalsize}} +\def\numberinglarge {\setsize{numbering}{large}} +\def\numberingLarge {\setsize{numbering}{Large}} +\def\numberingLARGE {\setsize{numbering}{LARGE}} +\def\numberinghuge {\setsize{numbering}{huge}} +\def\numberingHuge {\setsize{numbering}{Huge}} +\def\namesrm{\setfamily{names}{rm}} +\def\namessf{\setfamily{names}{sf}} +\def\namestt{\setfamily{names}{tt}} +\def\namesmd{\setseries{names}{md}} +\def\namesbf{\setseries{names}{bf}} +\def\namesup{\setshape {names}{up}} +\def\namesit{\setshape {names}{it}} +\def\namessl{\setshape {names}{sl}} +\def\namessc{\setshape {names}{sc}} +\def\namestiny {\setsize{names}{tiny}} +\def\namesscriptsize {\setsize{names}{scriptsize}} +\def\namesfootnotesize{\setsize{names}{footnotesize}} +\def\namessmall {\setsize{names}{small}} +\def\namesnormalsize {\setsize{names}{normalsize}} +\def\nameslarge {\setsize{names}{large}} +\def\namesLarge {\setsize{names}{Large}} +\def\namesLARGE {\setsize{names}{LARGE}} +\def\nameshuge {\setsize{names}{huge}} +\def\namesHuge {\setsize{names}{Huge}} +\def\residuesrm{\setfamily{residues}{rm}} +\def\residuessf{\setfamily{residues}{sf}} +\def\residuestt{\setfamily{residues}{tt}} +\def\residuesmd{\setseries{residues}{md}} +\def\residuesbf{\setseries{residues}{bf}} +\def\residuesup{\setshape {residues}{up}} +\def\residuesit{\setshape {residues}{it}} +\def\residuessl{\setshape {residues}{sl}} +\def\residuessc{\setshape {residues}{sc}} +\def\residuestiny {\setsize{residues}{tiny}} +\def\residuesscriptsize {\setsize{residues}{scriptsize}} +\def\residuesfootnotesize{\setsize{residues}{footnotesize}} +\def\residuessmall {\setsize{residues}{small}} +\def\residuesnormalsize {\setsize{residues}{normalsize}} +\def\residueslarge {\setsize{residues}{large}} +\def\residuesLarge {\setsize{residues}{Large}} +\def\residuesLARGE {\setsize{residues}{LARGE}} +\def\residueshuge {\setsize{residues}{huge}} +\def\residuesHuge {\setsize{residues}{Huge}} +\def\legendrm{\setfamily{legend}{rm}} +\def\legendsf{\setfamily{legend}{sf}} +\def\legendtt{\setfamily{legend}{tt}} +\def\legendmd{\setseries{legend}{md}} +\def\legendbf{\setseries{legend}{bf}} +\def\legendup{\setshape {legend}{up}} +\def\legendit{\setshape {legend}{it}} +\def\legendsl{\setshape {legend}{sl}} +\def\legendsc{\setshape {legend}{sc}} +\def\legendtiny {\setsize{legend}{tiny}} +\def\legendscriptsize {\setsize{legend}{scriptsize}} +\def\legendfootnotesize{\setsize{legend}{footnotesize}} +\def\legendsmall {\setsize{legend}{small}} +\def\legendnormalsize {\setsize{legend}{normalsize}} +\def\legendlarge {\setsize{legend}{large}} +\def\legendLarge {\setsize{legend}{Large}} +\def\legendLARGE {\setsize{legend}{LARGE}} +\def\legendhuge {\setsize{legend}{huge}} +\def\legendHuge {\setsize{legend}{Huge}} +\def\funcshadingstyle#1#2#3#4#5{% + \xdef\temp@{nomatch} \xdef\first@{#1} + \ifx\temp@\first@ + \xdef\first@{0} + \else + \xdef\first@{\csname funcgrp#1\endcsname} + \fi + \ifnum\first@>-1 + \expandafter\xdef\csname fg@textcolor\first@\endcsname{#2} + \expandafter\xdef\csname fg@color\first@\endcsname{#3} + \expandafter\xdef\csname funcm@tch\first@\endcsname{#4} + \expandafter\def\csname func@style\first@\endcsname{\csname text#5\endcsname} + \fi} +\def\shadingcolors#1{% + \gapcolors{Black}{White} + \nomatchresidues{Black}{White}{upper}{up} + \xdef\first@{#1} \xdef\second@{blues} + \ifx\first@\second@ + \similarresidues{Black}{Magenta}{upper}{up} + \conservedresidues{White}{RoyalBlue}{upper}{up} + \allmatchresidues{Goldenrod}{RoyalPurple}{upper}{up} + \else \xdef\second@{greens} + \ifx\first@\second@ + \similarresidues{Black}{GreenYellow}{upper}{up} + \conservedresidues{White}{PineGreen}{upper}{up} + \allmatchresidues{YellowOrange}{OliveGreen}{upper}{up} + \else \xdef\second@{reds} + \ifx\first@\second@ + \similarresidues{Black}{YellowOrange}{upper}{up} + \conservedresidues{White}{BrickRed}{upper}{up} + \allmatchresidues{YellowGreen}{Mahagony}{upper}{up} + \else \xdef\second@{black} + \ifx\first@\second@ + \similarresidues{Black}{White}{upper}{sl} + \conservedresidues{White}{Black}{upper}{up} + \allmatchresidues{White}{Black}{upper}{sl} + \else \xdef\second@{grays} + \ifx\first@\second@ + \else \message{<Undefined color set. Using `grays'>} \xdef\first@{grays}\fi + \ifx\first@\second@ + \similarresidues{Black}{LightGray}{upper}{up} + \conservedresidues{White}{DarkGray}{upper}{up} + \allmatchresidues{White}{Black}{upper}{up} + \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\shadebox#1{% + \xdef\first@{White}% + \xdef\third@{#1}% + \xdef\second@{nomatch}% + \ifx\second@\third@ + \ifx\Nomatch\first@\white@box\else\textcolor{\Nomatch}{\box@rule}\fi% + \else + \xdef\second@{similar}% + \ifx\second@\third@ + \ifx\Similar\first@\white@box\else\textcolor{\Similar}{\box@rule}\fi% + \else + \xdef\second@{conserved}% + \ifx\second@\third@ + \ifx\Identical\first@\white@box\else\textcolor{\Identical}{\box@rule}\fi% + \else + \xdef\second@{allmatch}% + \ifx\second@\third@ + \ifx\Allmatch\first@\white@box\else\textcolor{\Allmatch}{\box@rule}\fi% + \else + \ifx\third@\first@\white@box\else\textcolor{\third@}{\box@rule}\fi + \fi\fi\fi\fi} +\def\namescolor#1{\xdef\names@fg{#1}} +\def\namecolor#1#2{% + \xdef\first@{consensus} \xdef\second@{#1} + \ifx\first@\second@ + \expandafter\xdef\csname name@col0\endcsname{#2} + \else + \xdef\first@{#1,&,@} \xdef\third@{#2} \namecolor@ + \fi +} +\def\numberingcolor#1{\xdef\numbering@fg{#1}} +\def\numbercolor#1#2{% + \xdef\first@{consensus} \xdef\second@{#1} + \ifx\first@\second@ + \expandafter\xdef\csname number@col0\endcsname{#2} + \else + \xdef\first@{#1,&,@} \xdef\third@{#2} \numbercolor@ + \fi +} +\def\legendcolor#1{\xdef\legend@fg{#1}} +\def\rulercolor#1{\xdef\ruler@fg{#1}} +\def\molweight#1#2{% + \xdef\temp@{Da}% + \xdef\second@{#2}% + \ifx\second@\temp@\xdef\third@{Da}\else\xdef\third@{kDa}\fi% + \xdef\first@{#1 @} \expandafter\check@letter\first@ + \xdef\first@{#1} \ifletter \get@name@number \fi + \xdef\first@{\csname @rd\first@\endcsname}% + \loopcount=\csname mol@weight\first@\endcsname% + \divide\loopcount by 10\relax% + \innerloopcount=\loopcount% + \hbox{% + \ifnum\loopcount>1000% + \divide\loopcount by 1000\relax% + \pos@count=\loopcount% + \multiply\loopcount by 1000\relax% + \advance\innerloopcount by -\loopcount% + \loopcount=\innerloopcount% + \ifnum\loopcount>949\advance\pos@count by 1\relax\fi% + \the\pos@count% + \ifx\temp@\second@\ifgerm@n .\else {,}\fi\fi% + \else% + \ifx\second@\temp@ \else 0\fi% + \fi% + \ifx\second@\temp@% + \the\loopcount% + \loopcount=\csname mol@weight\first@\endcsname% + \innerloopcount=\loopcount% + \divide\loopcount by 10\relax% + \multiply\loopcount by 10\relax% + \advance\innerloopcount by -\loopcount\relax% + \else% + \divide\innerloopcount by 10\relax% + \advance\innerloopcount by 5\relax% + \divide\innerloopcount by 10\relax% + \fi% + \ifnum\innerloopcount>9\relax\innerloopcount=0\relax\fi% + \ifgerm@n {,}\else .\fi% + \the\innerloopcount~\third@}} +\newcommand\charge[2][o]{% + \xdef\temp@{pep}% + \ifx\prefix@\temp@% + \xdef\first@{#2 @} \expandafter\check@letter\first@ + \xdef\first@{#2} \ifletter \get@name@number \fi + \xdef\second@{\csname @rd\first@\endcsname}% + \loopcount=\csname ch@rge\second@\endcsname% + \xdef\first@{#1}\make@lower% + \if\first@ i\fi% + \if\first@ o\advance\loopcount by \chargeNterm% + \advance\loopcount by \chargeCterm\fi% + \if\first@ n\advance\loopcount by \chargeNterm\fi% + \if\first@ c\advance\loopcount by \chargeCterm\fi% + \hbox{\ensuremath{% + \ifnum\loopcount>0 +% + \else\ifnum\loopcount=0 \pm% + \else -\multiply\loopcount by -1\relax% + \fi\fi% + \innerloopcount=\loopcount% + \divide\loopcount by 1000\relax% + \the\loopcount% + \multiply\loopcount by 1000\relax% + \advance\innerloopcount by -\loopcount\relax% + \divide\innerloopcount by 10\relax% + \ifnum\innerloopcount=0% + \else% + \ifgerm@n {,}\else .\fi% + \ifnum\innerloopcount<10 0\fi% + \the\innerloopcount% + \fi}}% + \fi} +\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\firstcolumnDSSP{\xdef\fc@DSSP{y}} +\def\secondcolumnDSSP{\xdef\fc@DSSP{n}} + +\newcommand{\includeDSSP}[3][existing]{% + \temp@count=\dssp@num + \advance\temp@count by 1 + \xdef\dssp@num{\the\temp@count} + \xdef\first@{#1} \xdef\temp@{existing} + \ifx\first@\temp@ \else\xdef\first@{make new}\fi + \expandafter\xdef\csname optiondssp\the\temp@count\endcsname{\first@} + \xdef\first@{#2 @} \expandafter\check@letter\first@ + \xdef\first@{#2} \ifletter \get@name@number \fi + \expandafter\xdef\csname doseqdssp\the\temp@count\endcsname{\first@} + \expandafter\xdef\csname filenamedssp\the\temp@count\endcsname{#3} + \expandafter\ifnum\csname doseqdssp\the\temp@count\endcsname>\seq@count + \message{<Ignoring `#2' in \noexpand\includeDSSP>} + \advance\temp@count by -1 + \xdef\dssp@num{\the\temp@count} + \fi +} + +\newcommand{\includeHMMTOP}[3][existing]{% + \temp@count=\HMMTOP@num + \advance\temp@count by 1 + \xdef\HMMTOP@num{\the\temp@count} + \xdef\first@{#1} \xdef\temp@{existing} + \ifx\first@\temp@ \else\xdef\first@{make new}\fi + \expandafter\xdef\csname optionHMMTOP\the\temp@count\endcsname{\first@} + \xdef\first@{#2[,]&}\expandafter\opt@color\first@ + \ifx\f@color\comm@ + \expandafter\xdef\csname fileseqHMMTOP\the\temp@count\endcsname{0} + \else + \expandafter\xdef\csname fileseqHMMTOP\the\temp@count\endcsname{\f@color} + \fi + \xdef\first@{\fourth@ @} \expandafter\check@letter\first@ + \xdef\first@{\fourth@} \ifletter \get@name@number \fi + \expandafter\xdef\csname doseqHMMTOP\the\temp@count\endcsname{\first@} + \expandafter\xdef\csname filenameHMMTOP\the\temp@count\endcsname{#3} + \expandafter\ifnum\csname doseqHMMTOP\the\temp@count\endcsname>\seq@count + \message{<Ignoring `#2' in \noexpand\includeHMMTOP>} + \advance\temp@count by -1 + \xdef\HMMTOP@num{\the\temp@count} + \fi +} + +\newcommand{\includeSTRIDE}[3][existing]{% + \temp@count=\stride@num + \advance\temp@count by 1 + \xdef\stride@num{\the\temp@count} + \xdef\first@{#1} \xdef\temp@{existing} + \ifx\first@\temp@ \else\xdef\first@{make new}\fi + \expandafter\xdef\csname optionstride\the\temp@count\endcsname{\first@} + \xdef\first@{#2 @} \expandafter\check@letter\first@ + \xdef\first@{#2} \ifletter \get@name@number \fi + \expandafter\xdef\csname doseqstride\the\temp@count\endcsname{\first@} + \expandafter\xdef\csname filenamestride\the\temp@count\endcsname{#3} + \expandafter\ifnum\csname doseqstride\the\temp@count\endcsname>\seq@count + \message{<Ignoring `#2' in \noexpand\includeSTRIDE>} + \advance\temp@count by -1 + \xdef\stride@num{\the\temp@count} + \fi +} +\newcommand{\includePHDsec}[3][existing]{% + \temp@count=\PHD@num + \advance\temp@count by 1 + \xdef\PHD@num{\the\temp@count} + \xdef\first@{#1} \xdef\temp@{existing} + \ifx\first@\temp@ \else\xdef\first@{make new}\fi + \expandafter\xdef\csname optionphd\the\temp@count\endcsname{\first@} + \xdef\first@{#2 @} \expandafter\check@letter\first@ + \xdef\first@{#2} \ifletter \get@name@number \fi + \expandafter\xdef\csname doseqphd\the\temp@count\endcsname{\first@} + \expandafter\xdef\csname modephd\the\temp@count\endcsname{structure} + \expandafter\xdef\csname filenamephd\the\temp@count\endcsname{#3} + \expandafter\ifnum\csname doseqphd\the\temp@count\endcsname>\seq@count + \message{<Ignoring `#2' in \noexpand\includePHDsec>} + \advance\temp@count by -1 + \xdef\PHD@num{\the\temp@count} + \fi +} +\newcommand{\includePHDtopo}[3][existing]{% + \temp@count=\PHD@num + \advance\temp@count by 1 + \xdef\PHD@num{\the\temp@count} + \xdef\first@{#1} \xdef\temp@{existing} + \ifx\first@\temp@ \else\xdef\first@{make new}\fi + \expandafter\xdef\csname optionphd\the\temp@count\endcsname{\first@} + \xdef\first@{#2 @} \expandafter\check@letter\first@ + \xdef\first@{#2} \ifletter \get@name@number \fi + \expandafter\xdef\csname doseqphd\the\temp@count\endcsname{\first@} + \expandafter\xdef\csname modephd\the\temp@count\endcsname{topology} + \expandafter\xdef\csname filenamephd\the\temp@count\endcsname{#3} + \expandafter\ifnum\csname doseqphd\the\temp@count\endcsname>\seq@count + \message{<Ignoring `#2' in \noexpand\includePHDtopo>} + \advance\temp@count by -1 + \xdef\PHD@num{\the\temp@count} + \fi +} +\def\appearance#1#2#3#4#5{% + \xdef\first@{#1} \xdef\second@{#2} + \xdef\temp@{PHDsec} + \ifx\temp@\first@ + \xdef\temp@{alpha} + \ifx\second@\temp@ + \def\bottop@Hsec{#3} + \def\label@Hsec{#4} + \def\text@Hsec{#5} + \else + \xdef\temp@{beta} + \ifx\second@\temp@ + \def\bottop@Esec{#3} + \def\label@Esec{#4} + \def\text@Esec{#5} + \fi\fi + \else + \xdef\temp@{PHDtopo} + \ifx\temp@\first@ + \xdef\temp@{internal} + \ifx\second@\temp@ + \def\bottop@itop{#3} + \def\label@itop{#4} + \def\text@itop{#5} + \else + \xdef\temp@{external} + \ifx\second@\temp@ + \def\bottop@etop{#3} + \def\label@etop{#4} + \def\text@etop{#5} + \else + \xdef\temp@{TM} + \ifx\second@\temp@ + \def\bottop@TMtop{#3} + \def\label@TMtop{#4} + \def\text@TMtop{#5} + \fi\fi\fi + \else + \xdef\temp@{STRIDE} + \ifx\temp@\first@ + \xdef\temp@{alpha} + \ifx\second@\temp@ + \def\bottop@Hstride{#3} + \def\label@Hstride{#4} + \def\text@Hstride{#5} + \else + \xdef\temp@{3-10} + \ifx\second@\temp@ + \def\bottop@Gstride{#3} + \def\label@Gstride{#4} + \def\text@Gstride{#5} + \else + \xdef\temp@{pi} + \ifx\second@\temp@ + \def\bottop@Istride{#3} + \def\label@Istride{#4} + \def\text@Istride{#5} + \else + \xdef\temp@{beta} + \ifx\second@\temp@ + \def\bottop@Estride{#3} + \def\label@Estride{#4} + \def\text@Estride{#5} + \else + \xdef\temp@{bridge} + \ifx\second@\temp@ + \def\bottop@Bstride{#3} + \def\label@Bstride{#4} + \def\text@Bstride{#5} + \else + \xdef\temp@{turn} + \ifx\second@\temp@ + \def\bottop@Tstride{#3} + \def\label@Tstride{#4} + \def\text@Tstride{#5} + \fi\fi\fi\fi\fi\fi + \else + \xdef\temp@{DSSP} + \ifx\temp@\first@ + \xdef\temp@{alpha} + \ifx\second@\temp@ + \def\bottop@Hdssp{#3} + \def\label@Hdssp{#4} + \def\text@Hdssp{#5} + \else + \xdef\temp@{3-10} + \ifx\second@\temp@ + \def\bottop@Gdssp{#3} + \def\label@Gdssp{#4} + \def\text@Gdssp{#5} + \else + \xdef\temp@{pi} + \ifx\second@\temp@ + \def\bottop@Idssp{#3} + \def\label@Idssp{#4} + \def\text@Idssp{#5} + \else + \xdef\temp@{beta} + \ifx\second@\temp@ + \def\bottop@Edssp{#3} + \def\label@Edssp{#4} + \def\text@Edssp{#5} + \else + \xdef\temp@{bridge} + \ifx\second@\temp@ + \def\bottop@Bdssp{#3} + \def\label@Bdssp{#4} + \def\text@Bdssp{#5} + \else + \xdef\temp@{turn} + \ifx\second@\temp@ + \def\bottop@Tdssp{#3} + \def\label@Tdssp{#4} + \def\text@Tdssp{#5} + \else + \xdef\temp@{bend} + \ifx\second@\temp@ + \def\bottop@Sdssp{#3} + \def\label@Sdssp{#4} + \def\text@Sdssp{#5} + \fi\fi\fi\fi\fi\fi\fi + \else + \xdef\temp@{HMMTOP} + \ifx\temp@\first@ + \xdef\temp@{internal} + \ifx\second@\temp@ + \def\bottop@i@HMMTOP{#3} + \def\label@i@HMMTOP{#4} + \def\text@i@HMMTOP{#5} + \else + \xdef\temp@{external} + \ifx\second@\temp@ + \def\bottop@e@HMMTOP{#3} + \def\label@e@HMMTOP{#4} + \def\text@e@HMMTOP{#5} + \else + \xdef\temp@{TM} + \ifx\second@\temp@ + \def\bottop@TM@HMMTOP{#3} + \def\label@TM@HMMTOP{#4} + \def\text@TM@HMMTOP{#5} + \fi\fi\fi + \fi\fi\fi\fi\fi +} + +\def\showonDSSP#1{% + \xdef\first@{#1,&,@} \xdef\second@{yes} \show@DSSP} +\def\hideonDSSP#1{% + \xdef\first@{#1,&,@} \xdef\second@{no} \show@DSSP} + +\def\showonSTRIDE#1{% + \xdef\first@{#1,&,@} \xdef\second@{yes} \show@STRIDE} +\def\hideonSTRIDE#1{% + \xdef\first@{#1,&,@} \xdef\second@{no} \show@STRIDE} + +\def\showonPHDtopo#1{% + \xdef\first@{#1,&,@} \xdef\second@{yes} \show@PHDtopo} +\def\hideonPHDtopo#1{% + \xdef\first@{#1,&,@} \xdef\second@{no} \show@PHDtopo} + +\def\showonPHDsec#1{% + \xdef\first@{#1,&,@} \xdef\second@{yes} \show@PHDsec} +\def\hideonPHDsec#1{% + \xdef\first@{#1,&,@} \xdef\second@{no} \show@PHDsec} + +\def\showonHMMTOP#1{% + \xdef\first@{#1,&,@} \xdef\second@{yes} \show@HMMTOP} +\def\hideonHMMTOP#1{% + \xdef\first@{#1,&,@} \xdef\second@{no} \show@HMMTOP} + +\def\codon#1#2{% + \xdef\first@{#1} + \xdef\second@{#2,&,@} + \expandafter\get@triplet\second@} +\def\geneticcode#1{% + \xdef\first@{#1} + \xdef\temp@{standard} + \ifx\first@\temp@ + \c@d@ns + \else + \input{#1.cod} + \fi} +\newcommand{\backtranslabel}[2][tiny]{% + \def\trans@size{\csname #1\endcsname} + \xdef\first@{#2} + \xdef\temp@{horizontal} + \ifx\temp@\first@ \xdef\tr@nsstyle{0}\fi + \xdef\temp@{zigzag} + \ifx\temp@\first@ \xdef\tr@nsstyle{1}\fi + \xdef\temp@{alternating} + \ifx\temp@\first@ \xdef\tr@nsstyle{2}\fi + \xdef\temp@{oblique} + \ifx\temp@\first@ \xdef\tr@nsstyle{3}\fi + \xdef\temp@{vertical} + \ifx\temp@\first@ \xdef\tr@nsstyle{4}\fi +} +\newcommand{\backtranstext}[2][tiny]{% + \def\transtext@size{\csname #1\endcsname} + \xdef\first@{#2} + \xdef\temp@{horizontal} + \ifx\temp@\first@ \xdef\tr@nstextstyle{0}\fi + \xdef\temp@{zigzag} + \ifx\temp@\first@ \xdef\tr@nstextstyle{1}\fi + \xdef\temp@{alternating} + \ifx\temp@\first@ \xdef\tr@nstextstyle{2}\fi + \xdef\temp@{oblique} + \ifx\temp@\first@ \xdef\tr@nstextstyle{3}\fi + \xdef\temp@{vertical} + \ifx\temp@\first@ \xdef\tr@nstextstyle{4}\fi +} + +%%%%% Calculate consensus + +\def\check@sim{% + \xdef\first@{\csname res\the\loopcount\endcsname} + \xdef\first@{\csname \prefix@ grp\first@\endcsname} + \newrestrue + \ifnum\first@<0 \newresfalse + \else + \innerloopcount=\loopcount + \ifnum\loopcount=\cons@num \innerloopcount=\seq@count \fi + \ifnum\innerloopcount<\seq@count + \loop + \advance\innerloopcount by 1 + \xdef\second@{\csname res\the\innerloopcount\endcsname} + \expandafter\ifx\csname \prefix@ grp\second@\endcsname\first@ + \newresfalse \innerloopcount=\seq@count \fi + \ifnum\innerloopcount<\seq@count \repeat + \fi + \fi + + \ifnewres + \expandafter\csname pos\the\loopcount\endcsname=0 + \innerloopcount=0 + \loop + \advance\innerloopcount by 1 + \xdef\second@{\csname res\the\innerloopcount\endcsname} + \expandafter\ifx\csname \prefix@ grp\second@\endcsname\first@ + \expandafter\advance\csname pos\the\loopcount\endcsname by 1 \fi + \ifnum\innerloopcount<\seq@count \repeat + + \expandafter\multiply\csname pos\the\loopcount\endcsname by \seq@percent + \expandafter\ifnum\csname pos\the\loopcount\endcsname<\thresh@ld + \else + \expandafter\ifnum\csname pos\the\loopcount\endcsname>\m@x + \xdef\m@x{\the\csname pos\the\loopcount\endcsname} + \xdef\cons@seq{\the\loopcount} \xdef\match@case{\c@se} + \xdef\simgroup@{\first@} + \else + \expandafter\ifnum\csname pos\the\loopcount\endcsname=\m@x + \xdef\match@case{0} + \fi + \fi + \fi + \fi + + \ifnum\loopcount=\cons@num \loopcount=1 \fi + \advance\loopcount by -1 + \ifnum\loopcount>0 \check@sim \fi} + +\def\check@ident{% + \xdef\first@{\csname res\the\loopcount\endcsname} + \newrestrue \expandafter\check@char\first@ + \ifletter + \innerloopcount=\loopcount + \ifnum\loopcount=\cons@num \innerloopcount=\seq@count \fi + \ifnum\innerloopcount<\seq@count + \loop + \advance\innerloopcount by 1 + \expandafter\ifx\csname res\the\innerloopcount\endcsname\first@ + \newresfalse \innerloopcount=\seq@count \fi + \ifnum\innerloopcount<\seq@count \repeat + \fi + \else + \newresfalse + \expandafter\xdef\csname res\the\loopcount\endcsname{\d@t} + \fi + + \ifnewres + \expandafter\csname pos\the\loopcount\endcsname=0 + \innerloopcount=0 + \loop + \advance\innerloopcount by 1 + \expandafter\ifx\csname res\the\innerloopcount\endcsname\first@ + \expandafter\advance\csname pos\the\loopcount\endcsname by 1 \fi + \ifnum\innerloopcount<\seq@count \repeat + + \expandafter\ifnum\csname pos\the\loopcount\endcsname=\seq@count + \xdef\cons@seq{\the\loopcount} \xdef\match@case{2} \loopcount=1 + \else + \expandafter\multiply\csname pos\the\loopcount\endcsname by \seq@percent + \expandafter\ifnum\csname pos\the\loopcount\endcsname<\thresh@ld + \else + \expandafter\ifnum\csname pos\the\loopcount\endcsname>\m@x + \xdef\m@x{\the\csname pos\the\loopcount\endcsname} + \xdef\cons@seq{\the\loopcount} \xdef\match@case{1} + \else + \expandafter\ifnum\csname pos\the\loopcount\endcsname=\m@x + \xdef\match@case{0} + \fi + \fi + \fi + \fi + \fi + + \ifnum\loopcount=\cons@num \loopcount=1 \fi + \advance\loopcount by -1 + \ifnum\loopcount>0 \check@ident \fi} + +\def\get@simchar{% + \xdef\first@{\csname res\the\loopcount\endcsname} + \newrestrue \expandafter\check@char\first@ + \ifletter + \innerloopcount=\loopcount + \ifnum\loopcount=\cons@num \innerloopcount=\seq@count \fi + \ifnum\innerloopcount<\seq@count + \loop + \advance\innerloopcount by 1 + \expandafter\ifx\csname res\the\innerloopcount\endcsname\first@ + \newresfalse \innerloopcount=\seq@count \fi + \ifnum\innerloopcount<\seq@count \repeat + \fi + \else + \newresfalse + \fi + + \ifnewres + \expandafter\csname pos\the\loopcount\endcsname=0 + \innerloopcount=0 + \loop + \advance\innerloopcount by 1 + \expandafter\ifx\csname res\the\innerloopcount\endcsname\first@ + \xdef\second@{\csname res\the\innerloopcount\endcsname} + \expandafter\ifx\csname \prefix@ grp\second@\endcsname\simgroup@ + \expandafter\advance\csname pos\the\loopcount\endcsname by 1 \fi + \fi + \ifnum\innerloopcount<\seq@count \repeat + + \expandafter\ifnum\csname pos\the\loopcount\endcsname>\m@x + \xdef\m@x{\the\csname pos\the\loopcount\endcsname} + \xdef\cons@seq{\the\loopcount} + \fi + \fi + + \ifnum\loopcount=\cons@num \loopcount=1 \fi + \advance\loopcount by -1 + \ifnum\loopcount>0 \get@simchar \fi} + +\def\unc@nserved{% + \ifsimmode + \ifnum\cons@num>0 \loopcount=\cons@num \else \loopcount=\seq@count \fi + \xdef\match@case{0} \xdef\m@x{1} \check@sim + \ifnum\match@case=0 + \loopcount=0 + \loop + \advance\loopcount by 1 + \xdef\first@{noshade} + \expandafter\ifx\csname hide@seq\the\loopcount\endcsname\first@ + \expandafter\ifx\csname res\the\loopcount\endcsname\d@t + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname3\gap@char} + \else + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + 3\csname res\the\loopcount\endcsname} + \fi + \else + \xdef\first@{\csname res\the\loopcount\endcsname} + \ifx\first@\d@t + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@start\the\loopcount\endcsname + \ifsh@wg@ps + \def\first@{\gap@char}\def\third@{7} + \else + \def\first@{{}} \def\third@{8} + \fi + \else + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@len\the\loopcount\endcsname + \def\third@{7}\def\first@{\gap@char} + \else + \ifsh@wg@ps + \def\first@{\gap@char}\def\third@{7} + \else + \def\first@{{}} \def\third@{8} + \fi + \fi + \fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname\third@\first@} + \else + \xdef\low@up{lower} \ifx\resn@m@tch\low@up \make@lower \else + \xdef\low@up{upper} \ifx\resn@m@tch\low@up + \else \xdef\first@{\resn@m@tch} \fi\fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname3\first@} + \fi + \fi + \ifnum\loopcount<\seq@count \repeat + \xdef\low@up{lower} \ifx\n@m@tch\low@up \xdef\first@{{ }} \else + \xdef\low@up{upper} \ifx\n@m@tch\low@up \xdef\first@{{ }} + \else \xdef\first@{\n@m@tch} \fi\fi + \expandafter\ifx\csname tint@seq0\endcsname\y@ + \expandafter\xdef\csname tint@seq0\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq0\endcsname\y@ + \expandafter\xdef\csname emph@seq0\endcsname{n} + \xdef\first@{,\first@}\fi + \xdef\consensus{\consensus 4\first@} + \expandafter\ifx\csname res\cons@num\endcsname\d@t + \else\xdef\constopo{\constopo 0}\fi + \else + \ifnum\cons@num>0 + \xdef\tmp@{\csname res\cons@num\endcsname} + \else + \xdef\m@x{0} \loopcount=\seq@count \get@simchar + \xdef\tmp@{\csname res\cons@seq\endcsname} + \fi + \xdef\second@{\csname \prefix@ grp\tmp@\endcsname} + \loopcount=0 + \loop + \advance\loopcount by 1 + \xdef\first@{noshade} + \expandafter\ifx\csname hide@seq\the\loopcount\endcsname\first@ + \xdef\first@{\csname res\the\loopcount\endcsname} + \ifx\first@\d@t\def\first@{\gap@char}\fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + 3\first@} + \else + \xdef\first@{\csname res\the\loopcount\endcsname} + \xdef\last@{\csname res\the\loopcount\endcsname} + \expandafter\ifnum\csname \prefix@ grp\last@\endcsname=\second@ + \xdef\third@{2} + \xdef\low@up{lower} \ifx\ressimm@tch\low@up \make@lower \else + \xdef\low@up{upper} \ifx\ressimm@tch\low@up + \else \xdef\first@{\ressimm@tch} \fi\fi + \else + \ifx\first@\d@t + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@start\the\loopcount\endcsname + \ifsh@wg@ps + \def\first@{\gap@char}\def\third@{7} + \else + \def\first@{{}} \def\third@{8} + \fi + \else + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@len\the\loopcount\endcsname + \def\third@{7}\def\first@{\gap@char} + \else + \ifsh@wg@ps + \def\first@{\gap@char}\def\third@{7} + \else + \def\first@{{}} \def\third@{8} + \fi + \fi + \fi + \else + \xdef\third@{3} + \xdef\low@up{lower} \ifx\resn@m@tch\low@up \make@lower \else + \xdef\low@up{upper} \ifx\resn@m@tch\low@up + \else \xdef\first@{\resn@m@tch} \fi\fi + \fi + \fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname\third@\first@} + \fi + \ifnum\loopcount<\seq@count \repeat + \xdef\first@{\tmp@} + \xdef\low@up{lower} \ifx\m@tch\low@up \make@lower \else + \xdef\low@up{upper} \ifx\m@tch\low@up + \else \xdef\first@{\m@tch} \fi\fi + \expandafter\ifx\csname tint@seq0\endcsname\y@ + \expandafter\xdef\csname tint@seq0\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq0\endcsname\y@ + \expandafter\xdef\csname emph@seq0\endcsname{n} + \xdef\first@{,\first@}\fi + \xdef\consensus{\consensus5\first@} + \xdef\constopo{\constopo 1} + \fi + \else + \iffuncmode + \loopcount=0 + \loop + \advance\loopcount by 1 + \xdef\first@{\csname res\the\loopcount\endcsname} + \ifx\first@\d@t + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@start\the\loopcount\endcsname + \ifsh@wg@ps + \def\first@{\gap@char}\def\third@{*} + \else + \def\first@{{}} \def\third@{/} + \fi + \else + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@len\the\loopcount\endcsname + \def\first@{\gap@char}\def\third@{*} + \else + \ifsh@wg@ps + \def\first@{\gap@char}\def\third@{*} + \else + \def\first@{{}} \def\third@{/} + \fi + \fi + \fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname\third@\first@} + \else + \xdef\low@up{lower} \ifx\resn@m@tch\low@up \make@lower \else + \xdef\low@up{upper} \ifx\resn@m@tch\low@up + \else \xdef\first@{\resn@m@tch} \fi\fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname0\first@} + \fi + \ifnum\loopcount<\seq@count \repeat + \else + \loopcount=0 + \loop + \advance\loopcount by 1 + \xdef\first@{noshade} + \expandafter\ifx\csname hide@seq\the\loopcount\endcsname\first@ + \xdef\first@{\csname res\the\loopcount\endcsname} + \ifx\first@\d@t\def\first@{\gap@char}\fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + 3\first@} + \else + \xdef\first@{\csname res\the\loopcount\endcsname} + \ifx\first@\d@t + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@start\the\loopcount\endcsname + \ifsh@wg@ps + \def\first@{\gap@char}\def\third@{7} + \else + \def\first@{{}} \def\third@{8} + \fi + \else + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@len\the\loopcount\endcsname + \def\third@{7}\def\first@{\gap@char} + \else + \ifsh@wg@ps + \def\first@{\gap@char}\def\third@{7} + \else + \def\first@{{}} \def\third@{8} + \fi + \fi + \fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname\third@\first@} + \else + \xdef\low@up{lower} \ifx\resn@m@tch\low@up \make@lower \else + \xdef\low@up{upper} \ifx\resn@m@tch\low@up + \else \xdef\first@{\resn@m@tch} \fi\fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname3\first@} + \fi + \fi + \ifnum\loopcount<\seq@count \repeat + \xdef\low@up{lower} \ifx\n@m@tch\low@up \xdef\first@{{ }} \else + \xdef\low@up{upper} \ifx\n@m@tch\low@up \xdef\first@{{ }} + \else \xdef\first@{\n@m@tch} \fi\fi + \expandafter\ifx\csname tint@seq0\endcsname\y@ + \expandafter\xdef\csname tint@seq0\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq0\endcsname\y@ + \expandafter\xdef\csname emph@seq0\endcsname{n} + \xdef\first@{,\first@}\fi + \xdef\consensus{\consensus 4\first@} + \xdef\constopo{\constopo 0} + \fi\fi} + +\def\c@nserved{% + \xdef\tmp@{\csname res\cons@seq\endcsname} + \loopcount=0 + \loop + \advance\loopcount by 1 + \xdef\first@{noshade} + \expandafter\ifx\csname hide@seq\the\loopcount\endcsname\first@ + \xdef\first@{\csname res\the\loopcount\endcsname} + \ifx\first@\d@t\def\first@{\gap@char}\fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + 3\first@} + \else + \xdef\second@{\csname res\the\loopcount\endcsname} + \ifx\tmp@\second@ + \xdef\third@{1} + \else + \xdef\third@{3} + \ifsimmode + \xdef\last@{\csname \prefix@ sim\tmp@\endcsname &@} + \expandafter\get@count\last@ + \innerloopcount=0 \getsim@char + \fi + \fi + \xdef\first@{\csname res\the\loopcount\endcsname} + \ifcase\third@ \or + \xdef\low@up{lower} \ifx\resm@tch\low@up \make@lower \else + \xdef\low@up{upper} \ifx\resm@tch\low@up + \else \xdef\first@{\resm@tch} \fi\fi + \or + \xdef\low@up{lower} \ifx\ressimm@tch\low@up \make@lower \else + \xdef\low@up{upper} \ifx\ressimm@tch\low@up + \else \xdef\first@{\ressimm@tch} \fi\fi + \else + \xdef\low@up{lower} \ifx\resn@m@tch\low@up \make@lower \else + \xdef\low@up{upper} \ifx\resn@m@tch\low@up + \else \xdef\first@{\resn@m@tch} \fi\fi + \fi + \ifx\first@\d@t + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@start\the\loopcount\endcsname + \ifsh@wg@ps + \def\first@{\gap@char}\def\third@{7} + \else + \def\first@{{}} \def\third@{8} + \fi + \else + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@len\the\loopcount\endcsname + \def\third@{7}\def\first@{\gap@char} + \else + \ifsh@wg@ps + \def\first@{\gap@char}\def\third@{7} + \else + \def\first@{{}} \def\third@{8} + \fi + \fi + \fi + \fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname\third@\first@} + \fi + \ifnum\loopcount<\seq@count \repeat + \xdef\first@{\csname res\cons@seq\endcsname} + \xdef\second@{lower} \ifx\m@tch\second@ \make@lower \else + \xdef\second@{upper} \ifx\m@tch\second@ + \else \xdef\first@{\m@tch} \fi\fi + \expandafter\ifx\csname tint@seq0\endcsname\y@ + \expandafter\xdef\csname tint@seq0\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq0\endcsname\y@ + \expandafter\xdef\csname emph@seq0\endcsname{n} + \xdef\first@{,\first@}\fi + \xdef\consensus{\consensus 5\first@} + \xdef\constopo{\constopo 2}} + +\def\allm@tch{% + \ifall@shade \xdef\third@{0} \else \xdef\third@{1} \fi + \loopcount=0 + \loop + \advance\loopcount by 1 + \xdef\first@{noshade} + \expandafter\ifx\csname hide@seq\the\loopcount\endcsname\first@ + \xdef\first@{\csname res\the\loopcount\endcsname} + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + 3\first@} + \else + \xdef\first@{\csname res\the\loopcount\endcsname} + \xdef\low@up{lower} \ifx\res@llm@tch\low@up \make@lower \else + \xdef\low@up{upper} \ifx\res@llm@tch\low@up + \else \xdef\first@{\res@llm@tch} \fi\fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname\third@\first@} + \fi + \ifnum\loopcount<\seq@count \repeat + \xdef\first@{\csname res\cons@seq\endcsname} + \xdef\second@{lower} \ifx\@llm@tch\second@ \make@lower \else + \xdef\second@{upper} \ifx\@llm@tch\second@ + \else \xdef\first@{\@llm@tch} \fi\fi + \expandafter\ifx\csname tint@seq0\endcsname\y@ + \expandafter\xdef\csname tint@seq0\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq0\endcsname\y@ + \expandafter\xdef\csname emph@seq0\endcsname{n} + \xdef\first@{,\first@}\fi + \xdef\consensus{\consensus 6\first@} + \xdef\constopo{\constopo 3}} + +\def\functi@nal{% + \ifnum\cons@num>0 + \xdef\first@{\csname res\cons@num\endcsname} + \else + \xdef\first@{\csname res\cons@seq\endcsname} + \fi + \xdef\second@{\csname funcgrp\first@\endcsname} + \loopcount=0 + \loop + \advance\loopcount by 1 + \xdef\third@{noshade} + \expandafter\ifx\csname hide@seq\the\loopcount\endcsname\third@ + \xdef\first@{\csname res\the\loopcount\endcsname} + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + 0\first@} + \else + \xdef\first@{\csname res\the\loopcount\endcsname} + \ifx\first@\d@t + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@start\the\loopcount\endcsname + \ifsh@wg@ps + \def\first@{\gap@char}\def\third@{*} + \else + \def\first@{{}} \def\third@{/} + \fi + \else + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@len\the\loopcount\endcsname + \def\first@{\gap@char}\def\third@{*} + \else + \ifsh@wg@ps + \def\first@{\gap@char}\def\third@{*} + \else + \def\first@{{}} \def\third@{/} + \fi + \fi + \fi + \else + \expandafter\ifnum\csname funcgrp\first@\endcsname=\second@ + \xdef\low@up{lower} + \expandafter\ifx\csname funcm@tch\second@\endcsname\low@up + \make@lower \fi + \xdef\third@{\second@} + \else \xdef\third@{0} + \xdef\low@up{lower} \ifx\resn@m@tch\low@up \make@lower \else + \xdef\low@up{upper} \ifx\resn@m@tch\low@up + \else \xdef\first@{\resn@m@tch} \fi\fi + \fi + \fi + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname\third@\first@} + \fi + \ifnum\loopcount<\seq@count \repeat} + +\def\all@funcshade{% + \loopcount=0 + \loop + \advance\loopcount by 1 + \xdef\first@{\csname res\the\loopcount\endcsname} + \xdef\second@{\csname funcgrp\first@\endcsname} + \ifnum\second@<0 \xdef\second@{0} \fi + \ifx\first@\d@t + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@start\the\loopcount\endcsname + \ifsh@wg@ps + \def\first@{\gap@char}\def\second@{*} + \else + \def\first@{{}} \def\second@{/} + \fi + \else + \expandafter\ifnum\csname res@count\the\loopcount\endcsname% + <\csname seq@len\the\loopcount\endcsname + \def\first@{\gap@char}\def\second@{*} + \else + \ifsh@wg@ps + \def\first@{\gap@char}\def\second@{*} + \else + \def\first@{{}} \def\second@{/} + \fi + \fi + \fi + \fi + \xdef\low@up{lower} + \expandafter\ifx\csname funcm@tch\second@\endcsname\low@up + \make@lower \fi + \xdef\third@{noshade} + \expandafter\ifx\csname hide@seq\the\loopcount\endcsname\third@ + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + 0\first@} + \else + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \xdef\first@{=\first@}\fi + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \xdef\first@{,\first@}\fi + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + \second@\first@} + \fi + \ifnum\loopcount<\seq@count \repeat} + +\def\getregion@fromstack@first{% + \expandafter\getregion@fromstack{\the\loopcount} + \expandafter\ifx\csname start\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname stop\the\loopcount\endcsname<\first@@ + \getregion@fromstack@first + \else + \expandafter\ifx\csname all\the\loopcount\endcsname\y@ + \innerloopcount=\csname style\the\loopcount\endcsname + \fi + \expandafter\xdef\csname shade@style\the\loopcount\endcsname{% + \csname style\the\loopcount\endcsname} + \fi + \fi +} + +\def\calc@regshade{% + \loopcount=-1 \innerloopcount=0 + \loop + \advance\loopcount by 1 + \expandafter\xdef\csname shade@style\the\loopcount\endcsname{y} + \ifnum\loopcount=0 \xdef\first@@{\the\cons@count} + \else \xdef\first@@{\the\csname res@count\the\loopcount\endcsname} \fi + \expandafter\ifx\csname start\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname start\the\loopcount\endcsname>\first@@ + \else + \expandafter\ifnum\csname stop\the\loopcount\endcsname<\first@@ + \getregion@fromstack@first + \else + \expandafter\ifx\csname all\the\loopcount\endcsname\y@ + \innerloopcount=\csname style\the\loopcount\endcsname + \fi + \expandafter\xdef\csname shade@style\the\loopcount\endcsname{% + \csname style\the\loopcount\endcsname} + \expandafter\ifnum\csname stop\the\loopcount\endcsname=\first@@ + \expandafter\getregion@fromstack{\the\loopcount} + \fi + \fi + \fi\fi + \ifnum\loopcount<\seq@count \repeat + \loopcount=0 + \expandafter\ifx\csname shade@style\the\loopcount\endcsname\y@ + \else + \xdef\consensus{\consensus&\csname shade@style\the\loopcount\endcsname)} + \fi + \loop + \advance\loopcount by 1 + \expandafter\ifx\csname shade@style\the\loopcount\endcsname\y@ + \ifnum\innerloopcount>0 + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + &\the\innerloopcount)} + \fi + \else + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + &\csname shade@style\the\loopcount\endcsname)} + \fi + \ifnum\loopcount<\seq@count \repeat +} + +\def\getregion@fromemphstack@first{% + \expandafter\getregion@fromemphstack{\the\loopcount} + \expandafter\ifx\csname emphstart\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname emphstop\the\loopcount\endcsname<\first@@ + \getregion@fromemphstack@first + \else + \expandafter\ifx\csname emphall\the\loopcount\endcsname\y@ + \innerloopcount=1 + \fi + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{y} + \fi + \fi +} + +\def\calc@regemph{% + \loopcount=-1 \innerloopcount=0 + \loop + \advance\loopcount by 1 + \ifnum\loopcount=0 \xdef\first@@{\the\cons@count} + \else \xdef\first@@{\the\csname res@count\the\loopcount\endcsname} \fi + \expandafter\ifx\csname emphstart\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname emphstart\the\loopcount\endcsname>\first@@ + \else + \expandafter\ifnum\csname emphstop\the\loopcount\endcsname<\first@@ + \getregion@fromemphstack@first + \else + \expandafter\ifx\csname emphall\the\loopcount\endcsname\y@ + \innerloopcount=1 + \fi + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{y} + \expandafter\ifnum\csname emphstop\the\loopcount\endcsname=\first@@ + \expandafter\getregion@fromemphstack{\the\loopcount} + \fi + \fi + \fi\fi + \ifnum\loopcount<\seq@count \repeat + \loopcount=0 + \expandafter\ifx\csname emph@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{y} + \fi + \ifnum\innerloopcount>0 + \loop + \advance\loopcount by 1 + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{y} + \ifnum\loopcount<\seq@count \repeat + \fi +} + +\def\getregion@fromtintstack@first{% + \expandafter\getregion@fromtintstack{\the\loopcount} + \expandafter\ifx\csname tintstart\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname tintstop\the\loopcount\endcsname<\first@@ + \getregion@fromtintstack@first + \else + \expandafter\ifx\csname tintall\the\loopcount\endcsname\y@ + \innerloopcount=1 + \fi + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{y} + \fi + \fi +} + +\def\calc@regtint{% + \loopcount=-1 \innerloopcount=0 + \loop + \advance\loopcount by 1 + \ifnum\loopcount=0 \xdef\first@@{\the\cons@count} + \else \xdef\first@@{\the\csname res@count\the\loopcount\endcsname} \fi + \expandafter\ifx\csname tintstart\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname tintstart\the\loopcount\endcsname>\first@@ + \else + \expandafter\ifnum\csname tintstop\the\loopcount\endcsname<\first@@ + \getregion@fromtintstack@first + \else + \expandafter\ifx\csname tintall\the\loopcount\endcsname\y@ + \innerloopcount=1 + \fi + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{y} + \expandafter\ifnum\csname tintstop\the\loopcount\endcsname=\first@@ + \expandafter\getregion@fromtintstack{\the\loopcount} + \fi + \fi + \fi\fi + \ifnum\loopcount<\seq@count \repeat + \loopcount=0 + \expandafter\ifx\csname tint@seq\the\loopcount\endcsname\y@ + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{y} + \fi + \ifnum\innerloopcount>0 + \loop + \advance\loopcount by 1 + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{y} + \ifnum\loopcount<\seq@count \repeat + \fi +} + +\def\getregion@fromframestack@first{% + \expandafter\getregion@fromframestack{\the\loopcount} + \expandafter\ifx\csname framestart\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname framestop\the\loopcount\endcsname<\first@@ + \getregion@fromframestack@first + \else + \ifnum\frame@on=0 + \xdef\frame@on{1} + \xdef\frame@{1} + \expandafter\xdef\csname fr@style\the\loopcount\endcsname{% + \csname framestyle\the\loopcount\endcsname} + \innerloopcount=\pos@count + \advance\innerloopcount by -\frame@pos + \xdef\styleframe{\styleframe&\the\innerloopcount;&;} + \xdef\frame@pos{\the\pos@count} + \fi + \expandafter\ifnum\csname framestop\the\loopcount\endcsname=\first@@ + \expandafter\getregion@fromframestack{\the\loopcount} + \ifnum\frame@on=1 + \xdef\frame@on{0} + \innerloopcount=\pos@count \advance\innerloopcount by 1 + \advance\innerloopcount by -\frame@pos + \xdef\styleframe{\styleframe&\the\innerloopcount;% + \csname fr@style\the\loopcount\endcsname;} + \innerloopcount=\pos@count \advance\innerloopcount by 1 + \xdef\frame@pos{\the\innerloopcount} + \fi + \fi + \ifnum\pos@count=\res@perline + \ifnum\frame@on=1 + \innerloopcount=\pos@count + \advance\innerloopcount by 1 + \advance\innerloopcount by -\frame@pos + \xdef\styleframe{\styleframe&\the\innerloopcount;% + \csname fr@style\the\loopcount\endcsname;} + \innerloopcount=\pos@count \advance\innerloopcount by 1 + \xdef\frame@pos{\the\innerloopcount} + \fi + \fi + \expandafter\ifnum\csname res@count\the\loopcount\endcsname=\end@num\relax + \ifnum\frame@on=1 + \innerloopcount=\pos@count + \advance\innerloopcount by 1 + \advance\innerloopcount by -\frame@pos + \xdef\styleframe{\styleframe&\the\innerloopcount;% + \csname fr@style\the\loopcount\endcsname;} + \innerloopcount=\pos@count \advance\innerloopcount by 1 + \xdef\frame@pos{\the\innerloopcount} + \fi + \fi + \fi + \fi +} + +\def\calc@frame{% + \advance\pos@count by -1 + \loopcount=-1 \innerloopcount=0 + \loop + \advance\loopcount by 1 + \ifnum\loopcount=0 \xdef\first@@{\the\cons@count} + \else \xdef\first@@{\the\csname res@count\the\loopcount\endcsname} \fi + \expandafter\ifx\csname framestart\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname framestart\the\loopcount\endcsname>\first@@ + \else + \expandafter\ifnum\csname framestop\the\loopcount\endcsname<\first@@ + \getregion@fromframestack@first + \else + \ifnum\frame@on=0 + \xdef\frame@on{1} + \xdef\frame@{1} + \expandafter\xdef\csname fr@style\the\loopcount\endcsname{% + \csname framestyle\the\loopcount\endcsname} + \innerloopcount=\pos@count + \advance\innerloopcount by -\frame@pos + \xdef\styleframe{\styleframe&\the\innerloopcount;&;} + \xdef\frame@pos{\the\pos@count} + \fi + \expandafter\ifnum\csname framestop\the\loopcount\endcsname=\first@@ + \expandafter\getregion@fromframestack{\the\loopcount} + \ifnum\frame@on=1 + \xdef\frame@on{0} + \innerloopcount=\pos@count \advance\innerloopcount by 1 + \advance\innerloopcount by -\frame@pos + \xdef\styleframe{\styleframe&\the\innerloopcount;% + \csname fr@style\the\loopcount\endcsname;} + \innerloopcount=\pos@count \advance\innerloopcount by 1 + \xdef\frame@pos{\the\innerloopcount} + \fi + \fi + \ifnum\pos@count=\res@perline + \ifnum\frame@on=1 + \innerloopcount=\pos@count + \advance\innerloopcount by 1 + \advance\innerloopcount by -\frame@pos + \xdef\styleframe{\styleframe&\the\innerloopcount;% + \csname fr@style\the\loopcount\endcsname;} + \innerloopcount=\pos@count \advance\innerloopcount by 1 + \xdef\frame@pos{\the\innerloopcount} + \fi + \fi + \expandafter\ifnum\csname res@count\the\loopcount\endcsname=\end@num\relax + \ifnum\frame@on=1 + \innerloopcount=\pos@count + \advance\innerloopcount by 1 + \advance\innerloopcount by -\frame@pos + \xdef\styleframe{\styleframe&\the\innerloopcount;% + \csname fr@style\the\loopcount\endcsname;} + \innerloopcount=\pos@count \advance\innerloopcount by 1 + \xdef\frame@pos{\the\innerloopcount} + \fi + \fi + \fi + \fi\fi + \ifnum\loopcount<\seq@count \repeat + \advance\pos@count by 1 +} + +\def\get@nextres#1#2:{% + \xdef\first@{#1} + \xdef\temp@{#2:} + \ifnum`#1>96 \make@upper \fi + \ifx\first@\gap@char \expandafter\get@nextres\temp@ + \else + \if\first@ @ + \xdef\temp@{} + \else + \xdef\temp@{+\first@} + \expandafter\xdef\csname last@res\bottop@\endcsname{} + \fi + \fi} +\def\get@@nextres#1#2:{% + \xdef\first@{#1} + \xdef\temp@@{#2:} + \ifnum`#1>96 \make@upper \fi + \ifx\first@\gap@char \expandafter\get@@nextres\temp@@ + \else + \if\first@ @ + \xdef\temp@@{} + \else + \xdef\temp@@{+\first@} + \expandafter\xdef\csname last@res\bottop@\endcsname{} + \fi + \fi} + +\def\char@get#1#2@{\xdef\first@{#1} \xdef\tr@nsl@ted{#2@}} +\def\trans@now#1#2@{% + \xdef\first@{#1} + \xdef\tr@nsl@ted{#2@} + \ifx\first@\ampers@nd + \else + \expandafter\check@char\first@ + \ifletter + \xdef\triplet@{\triplet@\first@} + \advance\triple@count by 1 + \ifnum\triple@count=1 + \xdef\out@{\out@{-}} + \fi + \ifnum\triple@count=3 + \expandafter\ifx\csname @\triplet@\endcsname\relax + \expandafter\xdef\csname @\triplet@\endcsname{?} \fi + \xdef\out@{\out@\csname @\triplet@\endcsname\out@@{-}} + \triple@count=0 + \xdef\triplet@{} + \xdef\out@@{} + \fi + \fi + \if\first@ - + \ifnum\triple@count<2 + \xdef\out@{\out@{-}} + \else + \xdef\out@@{\out@@{-}} + \fi + \fi + \if\first@ + + \expandafter\char@get\tr@nsl@ted + \xdef\triplet@{\triplet@\first@} + \advance\triple@count by 1 + \ifnum\triple@count=3 + \expandafter\ifx\csname @\triplet@\endcsname\relax + \expandafter\xdef\csname @\triplet@\endcsname{?} \fi + \xdef\out@{\out@\csname @\triplet@\endcsname\out@@} + \triple@count=0 + \xdef\triplet@{} + \xdef\out@@{} + \fi + \fi + \if\first@ 2 + \loop + \expandafter\char@get\tr@nsl@ted + \ifx\first@\ampers@nd + \lettertrue + \xdef\tr@nsl@ted{&@} + \else + \expandafter\check@char\first@ + \fi + \ifletter\else\xdef\out@{\out@{-}}\repeat + \xdef\out@{\out@{-}} + \fi + \expandafter\trans@now\tr@nsl@ted + \fi +} + +\def\do@translation{% + \xdef\triplet@{} + \xdef\out@{} + \xdef\out@@{} + \xdef\tr@nsl@ted{\tr@nsl@ted &@} + \triple@count=0 + \expandafter\trans@now\tr@nsl@ted + \xdef\tr@nsl@ted{\out@} +} + +\def\trans@pep#1#2@{% + \xdef\first@{#1} + \xdef\tr@nsl@ted{#2@} + \ifx\first@\ampers@nd + \else + \expandafter\check@char\first@ + \ifletter + \xdef\out@{\out@\csname rev@\first@\endcsname} + \else + \xdef\out@{\out@{-}{-}{-}} + \fi + \expandafter\trans@pep\tr@nsl@ted + \fi +} + +\def\rev@translation{% + \xdef\out@{} + \xdef\tr@nsl@ted{\tr@nsl@ted &@} + \expandafter\trans@pep\tr@nsl@ted + \xdef\tr@nsl@ted{\out@} +} + +\def\sum@up{% + \advance\innerloopcount by 1 + \xdef\second@@@{\csname res\the\innerloopcount\endcsname} + \xdef\third@@@{\csname cons\first@@@\second@@@\endcsname} + \advance\temp@count by \third@@@ + \ifnum\innerloopcount<\seq@count\sum@up\fi +} + +\def\sum@up@cons{% + \innerloopcount=\outerloopcount + \xdef\first@@@{\csname res\the\outerloopcount\endcsname} + \sum@up + \advance\outerloopcount by 1\relax + \ifnum\outerloopcount<\seq@count + \sum@up@cons + \else + \innerloopcount=\seq@count + \advance\innerloopcount by -1 + \multiply\innerloopcount by \seq@count + \multiply\temp@count by 2 + \divide\temp@count by \innerloopcount + \xdef\cons@val{\the\temp@count} + \fi +} + +\def\collect@cons@res{% + \xdef\temp@{\temp@\csname res\the\innerloopcount\endcsname} + \advance\innerloopcount by 1 + \ifnum\innerloopcount>\seq@count\relax + \outerloopcount=1\relax + \temp@count=0\relax + \sum@up@cons + \else + \collect@cons@res + \fi +} + +\def\calc@feature{% + \advance\pos@count by -1 + \loopcount=-1 \innerloopcount=0 + \loop + \advance\loopcount by 1 + \ifnum\loopcount=0 \xdef\first@@{\the\cons@count} + \else \xdef\first@@{\the\csname res@count\the\loopcount\endcsname} \fi + \expandafter\ifx\csname start\bottop@\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname start\bottop@\the\loopcount\endcsname>\first@@ + \else + \expandafter\ifnum\csname stop\bottop@\the\loopcount\endcsname<\first@@ + \expandafter\getregion@fromfstack{\the\loopcount} + \else + \innerloopcount=\loopcount + \expandafter\ifnum\csname featureon\bottop@\endcsname=0 + \expandafter\xdef\csname featureon\bottop@\endcsname{1} + \expandafter\xdef\csname feature@\bottop@\endcsname{1} + \expandafter\xdef\csname ftext\bottop@\the\loopcount\endcsname{% + \csname text\bottop@\the\loopcount\endcsname} + \expandafter\xdef\csname fstyle\bottop@\the\loopcount\endcsname{% + \csname style\bottop@\the\loopcount\endcsname} + \innerloopcount=\pos@count + \advance\innerloopcount by -\csname featurepos\bottop@\endcsname + \expandafter\xdef\csname textfeature\bottop@\endcsname{% + \csname textfeature\bottop@\endcsname% + &\the\innerloopcount;{};} + \expandafter\xdef\csname stylefeature\bottop@\endcsname{% + \csname stylefeature\bottop@\endcsname% + &\the\innerloopcount;&;} + \expandafter\xdef\csname featurepos\bottop@\endcsname{\the\pos@count} + \xdef\temp@@@{n} + \xdef\fourth@{} + \xdef\temp@{\csname ftext\bottop@\the\loopcount\endcsname} + \xdef\temp@{\temp@[,]:[,][]&}\expandafter\graph@opt@color\temp@ + \ifx\fourth@\tr@ns \xdef\temp@@@{y} \fi + \xdef\fourth@{} + \xdef\temp@{\csname fstyle\bottop@\the\loopcount\endcsname} + \xdef\temp@{\temp@[,]:[,][]&}\expandafter\graph@opt@color\temp@ + \ifx\fourth@\tr@ns \xdef\temp@@@{y} \fi + \ifx\temp@@@\y@ + \ifnum\loopcount=0 + \message{<No translations of the consensus sequence>} + \expandafter\xdef\csname ftext\bottop@\the\loopcount\endcsname{% + No consensus translations!} + \expandafter\xdef\csname fstyle\bottop@\the\loopcount\endcsname{% + ///} + \else + \if\seq@type P + \expandafter\xdef\csname collect@res\bottop@\endcsname{yes} + \expandafter\xdef\csname tr@nsseq\bottop@\endcsname{\the\loopcount} + \expandafter\xdef\csname tr@nslate\bottop@\endcsname{% + \csname res\the\loopcount\endcsname} + \else + \expandafter\xdef\csname collect@res\bottop@\endcsname{yes} + \expandafter\xdef\csname tr@nsseq\bottop@\endcsname{\the\loopcount} + \expandafter\ifx\csname res\the\loopcount\endcsname\gap@char + \expandafter\xdef\csname triple@count\bottop@\endcsname{0} + \expandafter\xdef\csname tr@nslate\bottop@\endcsname{-} + \else + \expandafter\xdef\csname triple@count\bottop@\endcsname{1} + \expandafter\xdef\csname tr@nslate\bottop@\endcsname{% + \csname res\the\loopcount\endcsname} + \expandafter\xdef\csname last@@res\bottop@\endcsname{% + \csname res\the\loopcount\endcsname} + \fi + \fi + \fi + \fi + \xdef\temp@{plot} + \ifx\temp@\fourth@ + \ifnum\loopcount=0 + \message{<No bar graphs/scales with the consensus sequence>} + \expandafter\xdef\csname ftext\bottop@\the\loopcount\endcsname{} + \expandafter\xdef\csname fstyle\bottop@\the\loopcount\endcsname{% + ///} + \else + \expandafter\xdef\csname collect@val\bottop@\endcsname{yes} + \expandafter\xdef\csname v@lseq\bottop@\endcsname{\the\loopcount} + \expandafter\xdef\csname ffourth@\bottop@\endcsname{\ffourth@} + \xdef\temp@{\ffourth@\csname res\the\loopcount\endcsname} + \expandafter\xdef\csname v@l\bottop@\endcsname{\csname \temp@\endcsname} + \fi + \fi + \xdef\temp@{cons} + \ifx\temp@\fourth@ + \expandafter\xdef\csname collect@cons@graph\bottop@\endcsname{yes} + \expandafter\xdef\csname v@lseq\bottop@\endcsname{\the\loopcount} + \expandafter\xdef\csname ffourth@\bottop@\endcsname{\ffourth@} + \innerloopcount=1 + \collect@cons@res + \expandafter\xdef\csname v@l\bottop@\endcsname{\cons@val} + \fi + \else + \ifnum\pos@count=1\relax + \xdef\temp@{\csname fstyle\bottop@\the\loopcount\endcsname @} + \expandafter\getstyle@right\temp@ + \xdef\temp@@@{n} + \xdef\fourth@{} + \xdef\temp@{\csname ftext\bottop@\the\loopcount\endcsname} + \xdef\temp@{\temp@[,]:[,][]&}\expandafter\graph@opt@color\temp@ + \ifx\fourth@\tr@ns \xdef\temp@@@{y} \fi + \xdef\fourth@{} + \xdef\temp@{\csname fstyle\bottop@\the\loopcount\endcsname} + \xdef\temp@{\temp@[,]:[,][]&}\expandafter\graph@opt@color\temp@ + \ifx\fourth@\tr@ns \xdef\temp@@@{y} \fi + \ifx\temp@@@\y@ + \if\seq@type P + \expandafter\xdef\csname tr@nslate\bottop@\endcsname{% + \csname res\the\loopcount\endcsname} + \else + \expandafter\ifnum\csname triple@count\bottop@\endcsname=2 + \expandafter\ifx\csname res\the\loopcount\endcsname\gap@char + \else + \expandafter\xdef\csname tr@nslate\bottop@\endcsname{% + +\csname last@res\bottop@\endcsname% + \csname tr@nslate\bottop@\endcsname} + \fi + \fi + \expandafter\ifnum\csname triple@count\bottop@\endcsname=1 + \expandafter\xdef\csname last@res\bottop@\endcsname{% + \csname last@@res\bottop@\endcsname} + \expandafter\ifx\csname res\the\loopcount\endcsname\gap@char + \expandafter\xdef\csname tr@nslate\bottop@\endcsname{% + +\csname last@res\bottop@\endcsname% + \csname tr@nslate\bottop@\endcsname} + \fi + \fi + \fi + \fi + \xdef\temp@{plot} + \ifx\temp@\fourth@ + \expandafter\ifx\csname res\the\loopcount\endcsname\gap@char + \expandafter\xdef\csname v@l\bottop@\endcsname{N} + \else + \xdef\temp@{\ffourth@\csname res\the\loopcount\endcsname} + \expandafter\xdef\csname v@l\bottop@\endcsname{% + \csname \temp@\endcsname} + \fi + \fi + \xdef\temp@{cons} + \ifx\temp@\fourth@ + \innerloopcount=1 + \collect@cons@res + \expandafter\xdef\csname v@l\bottop@\endcsname{\cons@val} + \fi + \fi + \fi + \expandafter\ifnum\csname stop\bottop@\the\loopcount\endcsname=\first@@ + \expandafter\getregion@fromfstack{\the\loopcount} + \xdef\temp@@@{n} + \xdef\fourth@{} + \xdef\temp@{\csname ftext\bottop@\the\loopcount\endcsname} + \xdef\temp@{\temp@[,]:[,][]&}\expandafter\graph@opt@color\temp@ + \ifx\fourth@\tr@ns + \ifx\f@color\comm@ + \xdef\f@color{} \else \xdef\f@color{[\f@color]} + \fi + \xdef\tr@nsl@ted{\csname tr@nslate\bottop@\endcsname} + \if\seq@type N \do@translation \else \rev@translation \fi + \xdef\temp@{translate:\tr@nsl@ted\f@color} + \xdef\temp@@@{y} + \else + \xdef\temp@{\csname ftext\bottop@\the\loopcount\endcsname} + \fi + \xdef\fourth@{} + \xdef\temp@@{\csname fstyle\bottop@\the\loopcount\endcsname} + \xdef\temp@@{\temp@@[,]:[,][]&}\expandafter\graph@opt@color\temp@@ + \ifx\fourth@\tr@ns + \ifx\f@color\comm@ + \xdef\f@color{} \else \xdef\f@color{[\f@color]} + \fi + \xdef\tr@nsl@ted{\csname tr@nslate\bottop@\endcsname} + \if\seq@type N \do@translation \else \rev@translation \fi + \xdef\temp@@{translate:\tr@nsl@ted\f@color} + \xdef\temp@@@{y} + \else + \xdef\temp@@{plot} + \ifx\temp@@\fourth@ + \xdef\temp@@{plot\f@color[\fffourth@]:\csname v@l\bottop@\endcsname[\ff@color]} + \expandafter\xdef\csname collect@val\bottop@\endcsname{no} + \expandafter\xdef\csname v@l\bottop@\endcsname{} + \else + \xdef\temp@@{cons} + \ifx\temp@@\fourth@ + \xdef\temp@@{plot\f@color[\fffourth@]:\csname v@l\bottop@\endcsname[\ff@color]} + \expandafter\xdef\csname collect@cons@graph\bottop@\endcsname{no} + \expandafter\xdef\csname v@l\bottop@\endcsname{} + \else + \xdef\temp@@{\csname fstyle\bottop@\the\loopcount\endcsname} + \fi + \fi + \fi + \ifx\temp@@@\y@ + \expandafter\xdef\csname collect@res\bottop@\endcsname{no} + \expandafter\xdef\csname tr@nslate\bottop@\endcsname{} + \fi + \expandafter\ifnum\csname featureon\bottop@\endcsname=1 + \expandafter\xdef\csname featureon\bottop@\endcsname{0} + \innerloopcount=\pos@count \advance\innerloopcount by 1 + \advance\innerloopcount by -\csname featurepos\bottop@\endcsname + \expandafter\xdef\csname textfeature\bottop@\endcsname{% + \csname textfeature\bottop@\endcsname% + &\the\innerloopcount;\temp@;} + \expandafter\xdef\csname stylefeature\bottop@\endcsname{% + \csname stylefeature\bottop@\endcsname% + &\the\innerloopcount;\temp@@;} + \innerloopcount=\pos@count \advance\innerloopcount by 1 + \expandafter\xdef\csname % + featurepos\bottop@\endcsname{\the\innerloopcount} + \fi + \fi + \ifnum\pos@count=\res@perline + \expandafter\ifnum\csname featureon\bottop@\endcsname=1 + \innerloopcount=\pos@count + \advance\innerloopcount by 1 + \advance\innerloopcount by -\csname featurepos\bottop@\endcsname + \xdef\temp@{\csname fstyle\bottop@\the\loopcount\endcsname @} + \expandafter\getstyle@left\temp@ + \xdef\temp@@@{n} + \xdef\fourth@{} + \xdef\temp@{\csname ftext\bottop@\the\loopcount\endcsname} + \xdef\temp@{\temp@[,]:[,][]&}\expandafter\graph@opt@color\temp@ + \ifx\fourth@\tr@ns + \ifx\f@color\comm@ + \xdef\f@color{} \else \xdef\f@color{[\f@color]} + \fi + \expandafter\ifnum\csname triple@count\bottop@\endcsname=2 + \if\seq@type N + \xdef\temp@{\csname sequence\the\loopcount\endcsname:} + \expandafter\get@nextres\temp@ + \xdef\tr@nsl@ted{\csname tr@nslate\bottop@\endcsname\temp@} + \do@translation + \xdef\temp@@@{2} + \else + \xdef\tr@nsl@ted{\csname tr@nslate\bottop@\endcsname} + \rev@translation + \xdef\temp@@@{} + \fi + \xdef\temp@{translate:\tr@nsl@ted\f@color} + \else + \xdef\tr@nsl@ted{\csname tr@nslate\bottop@\endcsname} + \if\seq@type N \do@translation \else \rev@translation \fi + \xdef\temp@{translate:\tr@nsl@ted\f@color} + \xdef\temp@@@{} + \fi + \else \xdef\temp@{\csname ftext\bottop@\the\loopcount\endcsname} + \fi + \xdef\fourth@{} + \xdef\temp@@{\csname fstyle\bottop@\the\loopcount\endcsname} + \xdef\temp@@{\temp@@[,]:[,][]&}\expandafter\graph@opt@color\temp@@ + \ifx\fourth@\tr@ns + \ifx\f@color\comm@ + \xdef\f@color{} \else \xdef\f@color{[\f@color]} + \fi + \expandafter\ifnum\csname triple@count\bottop@\endcsname=2 + \if\seq@type N + \xdef\temp@@{\csname sequence\the\loopcount\endcsname:} + \expandafter\get@@nextres\temp@@ + \xdef\tr@nsl@ted{\csname tr@nslate\bottop@\endcsname\temp@@} + \do@translation + \xdef\temp@@@{2} + \else + \xdef\tr@nsl@ted{\csname tr@nslate\bottop@\endcsname} + \rev@translation + \xdef\temp@@@{} + \fi + \xdef\temp@@{translate:\tr@nsl@ted\f@color} + \else + \xdef\tr@nsl@ted{\csname tr@nslate\bottop@\endcsname} + \if\seq@type N \do@translation \else \rev@translation \fi + \xdef\temp@@{translate:\tr@nsl@ted\f@color} + \xdef\temp@@@{} + \fi + \else + \xdef\temp@@{plot} + \ifx\temp@@\fourth@ + \xdef\temp@@{plot\f@color[\fffourth@]:\csname v@l\bottop@\endcsname[\ff@color]} + \else + \xdef\temp@@{cons} + \ifx\temp@@\fourth@ + \xdef\temp@@{plot\f@color[\fffourth@]:\csname v@l\bottop@\endcsname[\ff@color]} + \else + \xdef\temp@@{\style@@} + \fi + \fi + \fi + \ifx\temp@@@\n@ + \else + \expandafter\xdef\csname tr@nslate\bottop@\endcsname{\temp@@@} + \fi + \expandafter\xdef\csname textfeature\bottop@\endcsname{% + \csname textfeature\bottop@\endcsname% + &\the\innerloopcount;\temp@;} + \expandafter\xdef\csname stylefeature\bottop@\endcsname{% + \csname stylefeature\bottop@\endcsname% + &\the\innerloopcount;\temp@@;} + \innerloopcount=\pos@count \advance\innerloopcount by 1 + \expandafter\xdef\csname % + featurepos\bottop@\endcsname{\the\innerloopcount} + \fi + \fi + \fi + \fi + \fi + \ifnum\loopcount<\seq@count \repeat + \advance\pos@count by 1 +} + +\def\c@nsensus{% + \ifnum\pos@count>\res@perline + \else + \loopcount=0 + \loop + \advance\loopcount by 1 + \xdef\seq@line{\csname sequence\the\loopcount\endcsname} + \expandafter\residue@get\seq@line + \xdef\first@{\csname res\the\loopcount\endcsname} + \expandafter\check@char\first@ + \ifletter + \global\advance\csname res@count\the\loopcount\endcsname by 1 + \expandafter\ifnum\csname res@count\the\loopcount\endcsname=0 + \global\advance\csname res@count\the\loopcount\endcsname by 1 + \fi + \ifnum\loopcount=\rule@num\relax + \expandafter\ifnum\csname res@count\rule@num\endcsname=\rule@tens + \xdef\ruler@{\ruler@ !<\rule@tens>} + \innerloopcount=\rule@tens \advance\innerloopcount by \ruler@step + \ifnum\innerloopcount=0 \innerloopcount=1 \fi + \advance\innerloopcount by -1 + \ifnum\innerloopcount=\ruler@step + \else \advance\innerloopcount by 1 \fi + \xdef\rule@tens{\the\innerloopcount} + \else + \xdef\ruler@{\ruler@ -} + \fi + \fi + \ifx\collect@valtop\yes + \ifnum\v@lseqtop=\loopcount + \xdef\v@ltop{\v@ltop,\csname \ffourth@top\first@\endcsname} + \fi\fi + \ifx\collect@valttop\yes + \ifnum\v@lseqttop=\loopcount + \xdef\v@lttop{\v@lttop,\csname \ffourth@ttop\first@\endcsname} + \fi\fi + \ifx\collect@valbottom\yes + \ifnum\v@lseqbottom=\loopcount + \xdef\v@lbottom{\v@lbottom,\csname \ffourth@bottom\first@\endcsname} + \fi\fi + \ifx\collect@valbbottom\yes + \ifnum\v@lseqbbottom=\loopcount + \xdef\v@lbbottom{\v@lbbottom,\csname \ffourth@bbottom\first@\endcsname} + \fi\fi + \ifx\collect@restop\yes + \ifnum\tr@nsseqtop=\loopcount + \xdef\last@restop{\last@@restop} + \xdef\tr@nslatetop{\tr@nslatetop\first@} + \xdef\last@@restop{\first@} + \innerloopcount=\triple@counttop + \advance\innerloopcount by 1 + \ifnum\innerloopcount>3 \innerloopcount=1 \fi + \xdef\triple@counttop{\the\innerloopcount} + \fi\fi + \ifx\collect@resttop\yes + \ifnum\tr@nsseqttop=\loopcount + \xdef\last@resttop{\last@@resttop} + \xdef\tr@nslatettop{\tr@nslatettop\first@} + \xdef\last@@resttop{\first@} + \innerloopcount=\triple@countttop + \advance\innerloopcount by 1 + \ifnum\innerloopcount>3 \innerloopcount=1 \fi + \xdef\triple@countttop{\the\innerloopcount} + \fi\fi + \ifx\collect@resbottom\yes + \ifnum\tr@nsseqbottom=\loopcount + \xdef\last@resbottom{\last@@resbottom} + \xdef\tr@nslatebottom{\tr@nslatebottom\first@} + \xdef\last@@resbottom{\first@} + \innerloopcount=\triple@countbottom + \advance\innerloopcount by 1 + \ifnum\innerloopcount>3 \innerloopcount=1 \fi + \xdef\triple@countbottom{\the\innerloopcount} + \fi\fi + \ifx\collect@resbbottom\yes + \ifnum\tr@nsseqbbottom=\loopcount + \xdef\last@resbbottom{\last@@resbbottom} + \xdef\tr@nslatebbottom{\tr@nslatebbottom\first@} + \xdef\last@@resbbottom{\first@} + \innerloopcount=\triple@countbbottom + \advance\innerloopcount by 1 + \ifnum\innerloopcount>3 \innerloopcount=1 \fi + \xdef\triple@countbbottom{\the\innerloopcount} + \fi\fi + \innerloopcount=\csname mol@weight\the\loopcount\endcsname + \advance\innerloopcount by \csname \prefix@ mw\first@\endcsname + \expandafter\xdef\csname mol@weight\the\loopcount\endcsname{% + \the\innerloopcount} + \innerloopcount=\csname ch@rge\the\loopcount\endcsname + \advance\innerloopcount by \csname pepcharge\first@\endcsname + \expandafter\xdef\csname ch@rge\the\loopcount\endcsname{% + \the\innerloopcount} + \else + \ifnum\loopcount=\rule@num \xdef\ruler@{\ruler@ -} \fi + \ifx\collect@valtop\yes + \ifnum\v@lseqtop=\loopcount + \xdef\v@ltop{\v@ltop,N} + \fi\fi + \ifx\collect@valttop\yes + \ifnum\v@lseqttop=\loopcount + \xdef\v@lttop{\v@lttop,N} + \fi\fi + \ifx\collect@valbottom\yes + \ifnum\v@lseqbottom=\loopcount + \xdef\v@lbottom{\v@lbottom,N} + \fi\fi + \ifx\collect@valbbottom\yes + \ifnum\v@lseqbbottom=\loopcount + \xdef\v@lbbottom{\v@lbbottom,N} + \fi\fi + \ifx\collect@restop\yes + \ifnum\tr@nsseqtop=\loopcount + \xdef\tr@nslatetop{\tr@nslatetop -} + \fi\fi + \ifx\collect@resttop\yes + \ifnum\tr@nsseqttop=\loopcount + \xdef\tr@nslatettop{\tr@nslatettop -} + \fi\fi + \ifx\collect@resbottom\yes + \ifnum\tr@nsseqbottom=\loopcount + \xdef\tr@nslatebottom{\tr@nslatebottom -} + \fi\fi + \ifx\collect@resbbottom\yes + \ifnum\tr@nsseqbbottom=\loopcount + \xdef\tr@nslatebbottom{\tr@nslatebbottom -} + \fi\fi + \fi + \ifnum\loopcount<\seq@count \repeat + \ifx\collect@cons@graphtop\yes + \outerloopcount=1\relax + \temp@count=0\relax + \sum@up@cons + \xdef\v@ltop{\v@ltop,\cons@val} + \fi + \ifx\collect@cons@graphttop\yes + \outerloopcount=1\relax + \temp@count=0\relax + \sum@up@cons + \xdef\v@lttop{\v@lttop,\cons@val} + \fi + \ifx\collect@cons@graphbottom\yes + \outerloopcount=1\relax + \temp@count=0\relax + \sum@up@cons + \xdef\v@lbottom{\v@lbottom,\cons@val} + \fi + \ifx\collect@cons@graphbbottom\yes + \outerloopcount=1\relax + \temp@count=0\relax + \sum@up@cons + \xdef\v@lbbottom{\v@lbbottom,\cons@val} + \fi + \ifx\collect@cons@colors\y@ + \outerloopcount=1\relax + \temp@count=0\relax + \sum@up@cons + \outerloopcount=\cons@val + \advance\outerloopcount by 4 + \divide\outerloopcount by 5 + \multiply\outerloopcount by 5 + \ifnum\outerloopcount<5\relax\outerloopcount=5\fi + \xdef\c@nscol{\c@nscol\the\outerloopcount,} + \fi + + \global\advance\cons@count by 1\relax + \global\csname res@count0\endcsname=\cons@count + \ifnum\rule@num=0 + \ifnum\cons@count=\rule@tens + \xdef\ruler@{\ruler@ !<\rule@tens>} + \innerloopcount=\rule@tens \advance\innerloopcount by \ruler@step + \ifnum\innerloopcount=0 \innerloopcount=1 \fi + \advance\innerloopcount by -1 + \ifnum\innerloopcount=\ruler@step + \else \advance\innerloopcount by 1 \fi + \xdef\rule@tens{\the\innerloopcount} + \else + \xdef\ruler@{\ruler@ -} + \fi + \fi + \advance\pos@count by 1 + \ifregionalshadenow \calc@regshade \fi + \ifregionaltintnow \calc@regtint \fi + \ifregionalemphnow \calc@regemph \fi + \ifframenow \calc@frame \fi + \iftopfeaturenow \xdef\bottop@{top} \calc@feature \fi + \ifttopfeaturenow \xdef\bottop@{ttop} \calc@feature \fi + \ifbottomfeaturenow \xdef\bottop@{bottom} \calc@feature \fi + \ifbbottomfeaturenow \xdef\bottop@{bbottom} \calc@feature \fi + \ifall@fshade \all@funcshade + \else + \ifnum\cons@num>0 \loopcount=\cons@num \else \loopcount=\seq@count \fi + \xdef\match@case{0} \xdef\m@x{1} + \iffuncmode + \xdef\prfx{\prefix@} \xdef\prefix@{func} \xdef\c@se{3} \check@sim + \xdef\prefix@{\prfx} + \else \xdef\c@se{1} \check@ident \fi + \ifcase\match@case \unc@nserved \or \c@nserved \or \allm@tch \else \functi@nal \fi + \fi + \expandafter\ifnum\csname res@count\start@seq\endcsname<\end@num\relax + \c@nsensus + \else + \global\stop@true + \loopcount=\pos@count \advance\loopcount by -1 \relax + \res@perline=\loopcount + \iftopfeature \xdef\bottop@{top} \calc@feature \fi + \ifttopfeature \xdef\bottop@{ttop} \calc@feature \fi + \ifbottomfeature \xdef\bottop@{bottom} \calc@feature \fi + \ifbbottomfeature \xdef\bottop@{bbottom} \calc@feature \fi + \pos@count=0 + \fi + \fi} + +\def\c@unt{% + \advance\loopcount by 1 + \xdef\seq@line{\csname sequence\the\loopcount\endcsname} + \expandafter\residue@get\seq@line + \xdef\first@{\csname res\the\loopcount\endcsname} + \expandafter\check@char\first@ + \ifletter + \global\advance\csname res@count\the\loopcount\endcsname by 1 + \expandafter\ifnum\csname res@count\the\loopcount\endcsname=0 + \global\advance\csname res@count\the\loopcount\endcsname by 1 + \fi + \ifnum\rule@num=\loopcount + \temp@count=\csname res@count\the\loopcount\endcsname + \divide\temp@count by \ruler@step + \multiply\temp@count by \ruler@step + \ifnum\temp@count<0 \else \advance\temp@count by \ruler@step \fi + \xdef\rule@tens{\the\temp@count} + \fi + \fi + \ifnum\loopcount<\seq@count \c@unt\fi} +\def\count@first{% + \advance\end@count by 1 + \ifnum\end@count<\start@number + \loopcount=0 + \c@unt + \count@first + \fi} +\def\findc@nsensus{% + \loopcount=0 + \loop + \advance\loopcount by 1 + \expandafter\xdef\csname sequence\the\loopcount\endcsname{% + \csname sequence\the\loopcount\endcsname @} + \ifnum\loopcount<\seq@count \repeat + \end@count=0 \count@first \end@count=0 \xdef\start@number{0} + \regionalshadenowfalse \regionalemphnowfalse \regionaltintnowfalse + \framenowfalse + \topfeaturenowfalse \bottomfeaturenowfalse + \ttopfeaturenowfalse \bbottomfeaturenowfalse + \innerloopcount=\cons@count + \advance\innerloopcount by \res@perline \advance\innerloopcount by 1 + \loopcount=0 + \ifregionalshade + \expandafter\ifx\csname start\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname start\the\loopcount\endcsname>% + \innerloopcount + \else + \regionalshadenowtrue + \fi + \fi + \fi + \ifregionaltint + \expandafter\ifx\csname tintstart\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname tintstart\the\loopcount\endcsname>% + \innerloopcount + \else + \regionaltintnowtrue + \fi + \fi + \fi + \ifregionalemph + \expandafter\ifx\csname emphstart\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname emphstart\the\loopcount\endcsname>% + \innerloopcount + \else + \regionalemphnowtrue + \fi + \fi + \fi + \ifframe@ + \expandafter\ifx\csname framestart\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname framestart\the\loopcount\endcsname>% + \innerloopcount + \else + \framenowtrue + \fi + \fi + \fi + \iftopfeature + \xdef\bottop@{top} + \expandafter\ifx\csname start\bottop@\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname start\bottop@\the\loopcount\endcsname>% + \innerloopcount + \else + \topfeaturenowtrue + \fi + \fi + \fi + \ifttopfeature + \xdef\bottop@{ttop} + \expandafter\ifx\csname start\bottop@\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname start\bottop@\the\loopcount\endcsname>% + \innerloopcount + \else + \ttopfeaturenowtrue + \fi + \fi + \fi + \ifbottomfeature + \xdef\bottop@{bottom} + \expandafter\ifx\csname start\bottop@\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname start\bottop@\the\loopcount\endcsname>% + \innerloopcount + \else + \bottomfeaturenowtrue + \fi + \fi + \fi + \ifbbottomfeature + \xdef\bottop@{bbottom} + \expandafter\ifx\csname start\bottop@\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname start\bottop@\the\loopcount\endcsname>% + \innerloopcount + \else + \bbottomfeaturenowtrue + \fi + \fi + \fi +\loop + \advance\loopcount by 1 + \ifnumbers@left + \innerloopcount=\csname seq@len\the\loopcount\endcsname + \expandafter\ifnum\csname res@count\the\loopcount\endcsname=% + \innerloopcount + \else + \global\advance\csname res@count\the\loopcount\endcsname by 1 + \expandafter\ifnum\csname res@count\the\loopcount\endcsname=0 + \global\advance\csname res@count\the\loopcount\endcsname by 1 + \fi + \fi + \ifnames@right + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \the\csname res@count\the\loopcount\endcsname)} + \else + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + <\csname newseqname\the\loopcount\endcsname> + \the\csname res@count\the\loopcount\endcsname)} + \fi + \expandafter\ifnum\csname res@count\the\loopcount\endcsname=% + \innerloopcount + \else + \global\advance\csname res@count\the\loopcount\endcsname by -1 + \expandafter\ifnum\csname res@count\the\loopcount\endcsname=0 + \global\advance\csname res@count\the\loopcount\endcsname by -1 + \fi + \fi + \else + \ifnames@right + \expandafter\xdef\csname seq\the\loopcount\endcsname{} + \else + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + <\csname newseqname\the\loopcount\endcsname>} + \fi + \fi + \innerloopcount=\csname res@count\the\loopcount\endcsname + \advance\innerloopcount by \res@perline \advance\innerloopcount by 1 + \ifregionalshade + \expandafter\ifx\csname start\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname start\the\loopcount\endcsname>% + \innerloopcount + \else + \regionalshadenowtrue + \fi + \fi + \fi + \ifregionaltint + \expandafter\ifx\csname tintstart\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname tintstart\the\loopcount\endcsname>% + \innerloopcount + \else + \regionaltintnowtrue + \fi + \fi + \fi + \ifregionalemph + \expandafter\ifx\csname emphstart\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname emphstart\the\loopcount\endcsname>% + \innerloopcount + \else + \regionalemphnowtrue + \fi + \fi + \fi + \ifframe@ + \expandafter\ifx\csname framestart\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname framestart\the\loopcount\endcsname>% + \innerloopcount + \else + \framenowtrue + \fi + \fi + \fi + \iftopfeature + \xdef\bottop@{top} + \expandafter\ifx\csname start\bottop@\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname start\bottop@\the\loopcount\endcsname>% + \innerloopcount + \else + \topfeaturenowtrue + \fi + \fi + \fi + \ifttopfeature + \xdef\bottop@{ttop} + \expandafter\ifx\csname start\bottop@\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname start\bottop@\the\loopcount\endcsname>% + \innerloopcount + \else + \ttopfeaturenowtrue + \fi + \fi + \fi + \ifbottomfeature + \xdef\bottop@{bottom} + \expandafter\ifx\csname start\bottop@\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname start\bottop@\the\loopcount\endcsname>% + \innerloopcount + \else + \bottomfeaturenowtrue + \fi + \fi + \fi + \ifbbottomfeature + \xdef\bottop@{bbottom} + \expandafter\ifx\csname start\bottop@\the\loopcount\endcsname\ampers@nd + \else + \expandafter\ifnum\csname start\bottop@\the\loopcount\endcsname>% + \innerloopcount + \else + \bbottomfeaturenowtrue + \fi + \fi + \fi +\ifnum\loopcount<\seq@count \repeat + \c@nsensus} + +%%%%% Output routines + +\def\white@box{% + \bgroup + \fboxsep-0.5pt\fboxrule0.5pt + \fcolorbox{Black}{White}{\box@hstrut\box@wstrut}\egroup} +\def\box@rule{\vrule depth\box@depth height\box@height width\box@width} +\def\box@hstrut{\vrule depth\box@depth height\box@height width 0pt} +\def\box@wstrut{\vrule depth 0pt height 0pt width\box@width} +\def\do@legend{% + \baselineskip=1.2\baselineskip + \xdef\first@{White} + \fontfamily{\legend@family}% + \fontseries{\legend@series}% + \fontshape{\legend@shape}% + \iffuncmode + \ifnum\fgroup@num>0 + \loopcount=0 + \loop + \advance\loopcount by 1 + \xdef\third@{\csname fg@color\the\loopcount\endcsname}% + \noindent% + \ifnames@\ifnames@right\else\hbox to \name@width{\hss}\fi\fi% + \ifnumbers@\ifnumbers@left\hbox to \number@width{\hss}\fi\fi% + \hbox to \hspace@legend{\hss}% + \ifx\third@\first@\white@box\else\textcolor{\third@}{\box@rule}\fi% + \xdef\third@{\csname fg@textcolor\the\loopcount\endcsname}% + \def\res@@style{\csname func@style\the\loopcount\endcsname}% + \def\temp@{X}\xdef\low@up{lower}% + \expandafter\ifx\csname funcm@tch\the\loopcount\endcsname\low@up% + \def\temp@{x}\fi% + \ifhidechar\xdef\temp@{}\fi% + \kern-\box@width\textcolor{\third@}{\hbox to \box@width{% + \res@@style{\hss\temp@\hss}}}% + \kern2ex\textcolor{\legend@fg}{% + \legend@size{\csname fgroup@name\the\loopcount\endcsname}} + \newline\hbox{}% + \ifnum\loopcount<\fgroup@num \repeat + \fi + \else + \noindent + \ifnames@\ifnames@right\else\hbox to \name@width{\hss}\fi\fi% + \ifnumbers@\ifnumbers@left \hbox to \number@width{\hss}\fi\fi% + \hbox to \hspace@legend{\hss}% + \ifx\Nomatch\first@\white@box\else\textcolor{\Nomatch}{\box@rule}\fi% + \def\res@@style{\csname no@style\endcsname}% + \def\temp@{X}\xdef\low@up{lower}\ifx\resn@m@tch\low@up\def\temp@{x}\fi% + \ifhidechar\xdef\temp@{}\fi% + \kern-\box@width\textcolor{\TextNomatch}{\hbox to \box@width{% + \res@@style{\hss\temp@\hss}}}% + \textcolor{\legend@fg}{% + \ifgerm@n\kern2ex\legend@size{nicht konserviert}% + \else\ifsp@nish\kern2ex\legend@size{no conservado}% + \else\kern2ex\legend@size{non conserved}\fi\fi} + \newline\hbox{}\noindent% + \ifsimmode% + \ifnames@\ifnames@right\else\hbox to \name@width{\hss}\fi\fi + \ifnumbers@\ifnumbers@left \hbox to \number@width{\hss}\fi\fi + \hbox to \hspace@legend{\hss}% + \ifx\Similar\first@\white@box\else\textcolor{\Similar}{\box@rule}\fi + \def\res@@style{\csname sim@style\endcsname}% + \def\temp@{X}\xdef\low@up{lower}\ifx\ressimm@tch\low@up\def\temp@{x}\fi% + \ifhidechar\xdef\temp@{}\fi% + \kern-\box@width\textcolor{\TextSimilar}{\hbox to \box@width{% + \res@@style{\hss\temp@\hss}}}% + \textcolor{\legend@fg}{% + \ifgerm@n\kern2ex\legend@size{\"ahnlich}% + \else\ifsp@nish\kern2ex\legend@size{similar}% + \else\kern2ex\legend@size{similar}\fi\fi} + \newline\hbox{}\noindent% + \fi% + \ifnames@\ifnames@right\else\hbox to \name@width{\hss}\fi\fi + \ifnumbers@\ifnumbers@left \hbox to \number@width{\hss}\fi\fi + \hbox to \hspace@legend{\hss}% + \ifx\Identical\first@\white@box\else\textcolor{\Identical}{\box@rule}\fi + \def\res@@style{\csname id@style\endcsname}% + \def\temp@{X}\xdef\low@up{lower}\ifx\resm@tch\low@up\def\temp@{x}\fi% + \ifhidechar\xdef\temp@{}\fi% + \kern-\box@width\textcolor{\TextIdentical}{\hbox to \box@width{% + \res@@style{\hss\temp@\hss}}}% + \textcolor{\legend@fg}{% + \ifgerm@n\kern2ex\legend@size{konserviert}% + \else\ifsp@nish\kern2ex\legend@size{conservado}% + \else\kern2ex\legend@size{conserved}\fi\fi} + \newline\hbox{}\noindent% + \ifall@shade% + \ifnames@\ifnames@right\else\hbox to \name@width{\hss}\fi\fi + \ifnumbers@\ifnumbers@left \hbox to \number@width{\hss}\fi\fi + \hbox to \hspace@legend{\hss}% + \ifx\Allmatch\first@\white@box\else\textcolor{\Allmatch}{\box@rule}\fi + \def\res@@style{\csname all@style\endcsname}% + \def\temp@{X}\xdef\low@up{lower}\ifx\res@llm@tch\low@up\def\temp@{x}\fi% + \ifhidechar\xdef\temp@{}\fi% + \kern-\box@width\textcolor{\TextAllmatch}{\hbox to \box@width{% + \res@@style{\hss\temp@\hss}}}% + \textcolor{\legend@fg}{% + \ifgerm@n\kern2ex\legend@size{alle identisch}% + \else\ifsp@nish\kern2ex\legend@size{todos id\'enticos}% + \else\kern2ex\legend@size{all match}\fi\fi} + \newline\hbox{}\noindent + \fi + \fi +} +\def\put@name<#1>#2@{% + \ifnames@% + \expandafter\ifx\csname hide@name\the\loopcount\endcsname\yes% + \xdef\temp@{}\else\xdef\temp@{#1}\fi% + \expandafter\ifx\csname name@col\the\loopcount\endcsname\yes% + \def\second@{\names@fg}% + \else\def\second@{\csname name@col\the\loopcount\endcsname}\fi% + \fontfamily{\namestext@family}% + \fontseries{\namestext@series}% + \fontshape{\namestext@shape}% + \selectfont% + \textcolor{\second@}{% + \hbox to \name@width{\@kern\namestext@size{\temp@}\hss}}\fi% + \xdef\first@{#2@}% +} +\def\put@number#1)#2@{% + \ifnumbers@% + \expandafter\ifx\csname hide@number\the\loopcount\endcsname\yes% + \xdef\temp@{}\else\xdef\temp@{#1}\fi% + \expandafter\ifx\csname number@col\the\loopcount\endcsname\yes% + \def\second@{\numbering@fg}% + \else\def\second@{\csname number@col\the\loopcount\endcsname}\fi% + \fontfamily{\numbertext@family}% + \fontseries{\numbertext@series}% + \fontshape{\numbertext@shape}% + \selectfont% + \textcolor{\second@}{% + \hbox to \number@width{\hss\numbertext@size{\temp@}\@kern}}\fi% + \xdef\first@{#2@}% +} +\def\special@shade#1)#2#3#4@{% + \xdef\second@{\second@#1}% + \xdef\boxc@l@r{\csname bgseqregion\second@\endcsname}% + \xdef\textc@l@r{\csname fgseqregion\second@\endcsname}% + \xdef\first@{#4@}% + \xdef\second@{#3}% + \def\res@@style{\csname relax\endcsname}% +} +\def\get@second@#1#2@{\xdef\second@{#1}\xdef\first@{#2@}} +\def\next@char#1#2#3@{% + \xdef\first@{#3@}% + \xdef\second@{#2}% + \xdef\last@{#1}% + \xdef\temp@@{}% + \ifx\last@\ampers@nd\def\last@{0}\expandafter\special@shade\first@% + \else% + \iffuncmode% + \xdef\boxc@l@r{\csname fg@color#1\endcsname}% + \xdef\textc@l@r{\csname fg@textcolor#1\endcsname}% + \def\res@@style{\csname func@style#1\endcsname}% + \if\last@ *\def\last@{0}\fi + \if\last@ /\def\last@{10}\fi + \else% + \ifcase#1\xdef\boxc@l@r{\Allmatch}\xdef\textc@l@r{\TextAllmatch}% + \def\res@@style{\all@style}% + \or\xdef\boxc@l@r{\Identical}\xdef\textc@l@r{\TextIdentical}% + \def\res@@style{\id@style}% + \or\xdef\boxc@l@r{\Similar}\xdef\textc@l@r{\TextSimilar}% + \def\res@@style{\sim@style}% + \or\xdef\boxc@l@r{\Nomatch}\xdef\textc@l@r{\TextNomatch}% + \def\res@@style{\no@style}% + \or\xdef\boxc@l@r{\ConsNomatch}\xdef\textc@l@r{\ConsTextNomatch}% + \def\res@@style{\csname relax\endcsname}% + \or\xdef\boxc@l@r{\ConsMatch}\xdef\textc@l@r{\ConsTextMatch}% + \def\res@@style{\csname relax\endcsname}% + \or\xdef\boxc@l@r{\ConsAllmatch}\xdef\textc@l@r{\ConsTextAllmatch}% + \def\res@@style{\csname relax\endcsname}% + \or\xdef\boxc@l@r{\gap@bg}\xdef\textc@l@r{\gap@fg}% + \def\res@@style{\csname relax\endcsname}% + \else\xdef\boxc@l@r{White}\xdef\textc@l@r{White}% + \def\res@@style{\csname relax\endcsname}% + \fi\fi\fi% + \ifx\second@\comm@% + \def\temp@{\res@style}% + \expandafter\get@second@\first@% + \else% + \def\temp@{\csname relax\endcsname}% + \fi% + \ifx\second@\equ@l% + \xdef\temp@@{\light@}% + \expandafter\get@second@\first@% + \fi% + \textcolor{\temp@@\boxc@l@r}{\box@rule}% + \ifhidechar% + \ifx\second@\o@% + \def\second@{\gap@rule}% + \hbox to -\box@width{\hss\textcolor{\temp@@\textc@l@r}% + {\residues@size{\res@@style{\temp@{\second@}}}}\hss}% + \kern\box@width% + \fi% + \else% + \ifx\second@\o@\def\second@{\gap@rule}\fi% + \hbox to -\box@width{\hss\textcolor{\temp@@\textc@l@r}% + {\residues@size{\res@@style{\temp@{\second@}}}}\hss}% + \kern\box@width\fi% +} +\def\put@char{% + \ifnum\innerloopcount>\res@perline + \else + \expandafter\next@char\first@ + \advance\innerloopcount by 1 + \put@char% + \fi} +\def\next@cons#1#2#3@{% + \xdef\last@{#1}% + \ifx\last@\ampers@nd\def\last@{0}\expandafter\special@shade\first@% + \else% + \ifx\collect@cons@colors\y@% + \expandafter\get@item\first@@@% + \xdef\first@@@{\first@}% + \ifx\box@scale\y@% + \xdef\boxc@l@r{\c@nssc@le\fourth@}% + \else% + \xdef\boxc@l@r{\c@nssc@le}% + \fi% + \ifx\text@scale\y@% + \xdef\textc@l@r{\c@nsc@l\fourth@}% + \else% + \xdef\textc@l@r{\c@nsc@l}% + \fi% + \def\res@@style{\csname relax\endcsname}% + \else% + \ifcase#1\xdef\boxc@l@r{\Allmatch}\xdef\textc@l@r{\TextAllmatch}% + \def\res@@style{\all@style}% + \or\xdef\boxc@l@r{\Identical}\xdef\textc@l@r{\TextIdentical}% + \def\res@@style{\id@style}% + \or\xdef\boxc@l@r{\Similar}\xdef\textc@l@r{\TextSimilar}% + \def\res@@style{\sim@style}% + \or\xdef\boxc@l@r{\Nomatch}\xdef\textc@l@r{\TextNomatch}% + \def\res@@style{\no@style}% + \or\xdef\boxc@l@r{\ConsNomatch}\xdef\textc@l@r{\ConsTextNomatch}% + \def\res@@style{\csname relax\endcsname}% + \or\xdef\boxc@l@r{\ConsMatch}\xdef\textc@l@r{\ConsTextMatch}% + \def\res@@style{\csname relax\endcsname}% + \or\xdef\boxc@l@r{\ConsAllmatch}\xdef\textc@l@r{\ConsTextAllmatch}% + \def\res@@style{\csname relax\endcsname}% + \or\xdef\boxc@l@r{\gap@bg}\xdef\textc@l@r{\gap@fg}% + \def\res@@style{\csname relax\endcsname}% + \else\xdef\boxc@l@r{White}\xdef\textc@l@r{White}% + \def\res@@style{\csname relax\endcsname}% + \fi\fi\fi% + \xdef\first@{#3@}% + \xdef\second@{#2}% + \ifx\second@\comm@% + \def\temp@{\res@style}% + \expandafter\get@second@\first@% + \else% + \def\temp@{\csname relax\endcsname}% + \fi% + \textcolor{\boxc@l@r}{\box@rule}% + \ifhidechar% + \ifx\second@\o@% + \def\second@{\gap@rule}% + \hbox to -\box@width{\hss\textcolor{\textc@l@r}% + {\residues@size{\res@@style{\temp@{\second@}}}}\hss}% + \kern\box@width% + \fi% + \else% + \ifx\second@\o@\def\second@{\gap@rule}\fi% + \hbox to -\box@width{\hss\textcolor{\textc@l@r}% + {\residues@size{\res@@style{\temp@{\second@}}}}\hss}% + \kern\box@width\fi% +} +\def\put@cons{% + \ifnum\innerloopcount>\res@perline + \else + \expandafter\next@cons\first@ + \advance\innerloopcount by 1 + \put@cons% + \fi} +\def\put@line{% + \ifnames@right\else\def\@kern{\kern0em}\expandafter\put@name\first@\fi + \ifnumbers@left\def\@kern{\kern1em}\expandafter\put@number\first@\fi + \fontfamily{\residues@family}% + \fontseries{\residues@series}% + \fontshape{\residues@shape}% + \selectfont% + \ifx\cons@now\y@% + \innerloopcount=1\relax\put@cons% + \else + \innerloopcount=1\relax\put@char% + \fi + \ifnumbers@left\else\def\@kern{\kern0em}\expandafter\put@number\first@\fi + \ifnames@right\def\@kern{\kern1em}\expandafter\put@name\first@\fi + \newline\hbox{}% +} + +\def\set@consensus{% + \ifnames@right + \ifnumbers@left + \xdef\consensus{)\consensus<\cons@name>}% + \else + \xdef\consensus{\consensus)<\cons@name>}% + \fi + \else + \ifnumbers@left + \xdef\consensus{<\cons@name>)\consensus}% + \else + \xdef\consensus{<\cons@name>\consensus)}% + \fi + \fi} + +\def\get@rulenum<#1>#2@{% + \xdef\first@{#2@}% + \ifcase\rule@top + \def\third@{\ensuremath{\,\stackrel{\mathtt{#1}}{.}}}% + \else + \def\third@{\bottomruler@size\ensuremath{\,\stackrel{.}{\mathtt{#1}}}}% + \fi} + +\def\next@rulechar#1#2@{% + \xdef\third@{#1}% + \xdef\first@{#2@}% + \xdef\second@{!}% + \ifx\third@\second@ \expandafter\get@rulenum\first@% + \else \xdef\third@{}\fi + \hbox to \box@width{\hss\third@\hss}% + } + +\def\put@rulechar{% + \ifnum\innerloopcount>\res@perline + \else + \expandafter\next@rulechar\first@ + \advance\innerloopcount by 1 + \put@rulechar% + \fi} + +\def\put@ruler{% + \ifnames@right + \ifnumbers@left \xdef\ruler@{)\ruler@<>}\else\xdef\ruler@{\ruler@)<>}\fi + \else + \ifnumbers@left \xdef\ruler@{<>)\ruler@}\else\xdef\ruler@{<>\ruler@)}\fi + \fi + \xdef\first@{\ruler@ @}% + \ifnames@right\else\def\@kern{\kern0em}\expandafter\put@name\first@\fi + \ifnumbers@left\def\@kern{\kern1em}\expandafter\put@number\first@\fi + \vspace{-0.25\baselineskip}% + \innerloopcount=1\relax\textcolor{\ruler@fg}{\put@rulechar}% + \newline\hbox{}% +} +\def\get@firstfill#1#2&{\xdef\second@@{#1}\xdef\fill@char{#2&}} +\def\get@firstv@l#1,#2&{\xdef\second@@{#1}\xdef\fill@char{#2&}} +\def\get@tripletfill#1#2#3#4&{% + \multiply\temp@count by -1% + \def\second@@{#1}\def\second@@@{#2}\def\second@@@@{#3}\def\fill@char{#4&}} +\def\putfeature@style#1{% + \residues@size% + \setbox1=\hbox{\ensuremath{\overrightarrow{\hbox{}}}}% + \arrow@height=\ht1% + \arrow@width=\wd1% + \xdef\second@@{#1}% + \xdef\last@{\second@@::&}\expandafter\test@fill\last@% + \xdef\last@{empty}% + \ifx\second@@\last@% + \hbox to \second@\box@width{\hss}% + \else% + \xdef\last@{translate}% + \ifx\second@@\last@% + \fontfamily{\featurestyles@family}% + \fontseries{\featurestyles@series}% + \fontshape{\featurestyles@shape}% + \selectfont% + \xdef\fill@char{\fill@char &}% + \if\seq@type N% + \loop% + \expandafter\get@firstfill\fill@char% + \if\second@@ -\def\second@@{\hss}\fi% + \hbox to \box@width{\hss\textcolor{\f@color}{\featurestyles@size{\second@@}}\hss}% + \ifx\fill@char\ampers@nd\else\repeat% + \else% + \temp@count=1% + \loop% + \expandafter\get@tripletfill\fill@char% + \if\second@@ -\ifnum\tr@nsstyle>0\hbox to \box@width{\hss}\fi% + \else% + \ifcase\tr@nsstyle% + \hbox{\trans@size\textcolor{\f@color}% + {\hss\second@@\second@@@\second@@@@\,\hss}}% + \or% + \ifnum\temp@count=1% + \vbox{\trans@size% + \hbox to \box@width{\textcolor{\f@color}{\second@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@@}}}% + \else% + \vbox{\trans@size% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@@}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\second@@\hss}}}% + \fi% + \or% + \ifnum\temp@count=1% + \vbox{\trans@size% + \hbox to \box@width{\textcolor{\f@color}% + {\hss\second@@\second@@@\second@@@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss}}}% + \else% + \vbox{\trans@size% + \hbox to \box@width{\textcolor{\f@color}{\hss}}% + \hbox to \box@width{\textcolor{\f@color}% + {\hss\second@@\second@@@\second@@@@\hss}}}% + \fi% + \or% + \vbox{\trans@size% + \hbox to \box@width{\textcolor{\f@color}{\second@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@@}}}% + \or% + \vbox{\trans@size% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@@\hss}}}% + \fi% + \fi% + \ifx\fill@char\ampers@nd\else\repeat% + \fi% + \else% + \xdef\last@{brace}% + \ifx\second@@\last@% + \xdef\last@{top}% + \textcolor{\f@color}{% + \ifx\bottop@\last@% + \ensuremath{\overbrace{\hbox to \second@\box@width{\hss% + \rule[0.2\arrow@height]{0pt}{0pt}\hss}}}% + \else% + \xdef\last@{ttop}% + \ifx\bottop@\last@% + \ensuremath{\overbrace{\hbox to \second@\box@width{\hss% + \rule[0.2\arrow@height]{0pt}{0pt}\hss}}}% + \else% + \raisebox{1.75\arrow@height}{\ensuremath{\underbrace{\hbox to % + \second@\box@width{}}}}% + \fi\fi}% + \else% + \xdef\last@{fill}% + \ifx\second@@\last@% + \fontfamily{\featurestyles@family}% + \fontseries{\featurestyles@series}% + \fontshape{\featurestyles@shape}% + \selectfont% + \ifx\bottop@\temp@\xdef\last@{0.35}\else\xdef\last@{0}\fi% + \kern0.15\box@width% + \loopcount=0\relax% + \loop% + \advance\loopcount by 1\relax% + \raisebox{\last@\arrow@height}{% + \hbox to \box@width{\hss{\textcolor{\f@color}{\featurestyles@size\fill@char}}\hss}}% + \ifnum\loopcount<\second@ \repeat% + \else% + \xdef\last@{bar}% + \ifx\second@@\last@% + \setlength\arrow@width{\pm@shift\box@height}% + \setlength\arrow@width{\b@r@stretch\arrow@width}% + \ifx\fill@char\N@% + \raisebox{\pm@shift\box@height}{\vrule width\box@width}% + \else% + \kern-0.6\box@width% + \ifx\frame@color\back@color% + \else% + \setlength\arrow@height{\box@height}% + \advance\arrow@height by -\pm@shift\box@height% + \setlength\arrow@height{\b@r@stretch\arrow@height}% + \raisebox{\arrow@width}{% + \hbox to \box@width{\hss{\textcolor{\back@color}{\vrule depth\arrow@width% + height\arrow@height width\box@width}}\hss}}% + \kern-\box@width% + \fi% + \setlength\arrow@height{\fill@char\box@height}% + \setlength\arrow@height{\b@r@stretch\arrow@height}% + \divide\arrow@height by 100\relax% + \ifdim\arrow@height<0pt% + \arrow@height=-\arrow@height% + \raisebox{\arrow@width}{% + \hbox to \box@width{\hss{\textcolor{\frame@color}{\vrule depth\arrow@height width0.8\box@width}}\hss}}% + \else% + \raisebox{\arrow@width}{% + \hbox to \box@width{\hss{\textcolor{\frame@color}{\vrule height\arrow@height width0.8\box@width}}\hss}}\fi% + \kern-\box@width% + \raisebox{\arrow@width}{\textcolor{Black}{\vrule height0.25pt depth0.25pt width\box@width}}% + \fi% + \else% + \xdef\last@{color}% + \ifx\second@@\last@% + \setlength\arrow@height{\fill@char\box@height}% + \setlength\arrow@height{\sc@le@stretch\arrow@height}% + \divide\arrow@height by 100\relax% + \raisebox{0.2\box@height}{% + \hbox to \box@width{\hss{\textcolor{\f@color}{\vrule height\arrow@height width\box@width}}\hss}}% + \else% + \xdef\last@{plotcolor}% + \ifx\second@@\last@% + \xdef\fill@char{\fill@char,&}% + \loop% + \expandafter\get@firstv@l\fill@char% + \ifx\second@@\N@\hbox to \box@width{\hss}% + \else + \loopcount=\second@@% + \advance\loopcount by -\pm@shift% + \advance\loopcount by 4% + \divide\loopcount by 5% + \multiply\loopcount by 5% + \ifnum\loopcount>100\loopcount=100\fi% + \ifnum\loopcount<5\loopcount=5\fi% + \setlength\arrow@height{50\box@height}% + \divide\arrow@height by 100\relax% + \setlength\arrow@height{\sc@le@stretch\arrow@height}% + \raisebox{0.2\box@height}{% + \hbox to \box@width{\hss{\textcolor{\f@color\the\loopcount}{\vrule height\arrow@height width\box@width}}\hss}}% + \fi + \ifx\fill@char\ampers@nd\else\repeat% + \else% + \xdef\last@{plotbar}% + \ifx\second@@\last@% + \xdef\fill@char{\fill@char,&}% + \ifnum\pm@shift>0% + \setlength\arrow@width{0pt}% + \else + \setlength\arrow@width{-\pm@shift\box@height}% + \divide\arrow@width by 100% + \setlength\arrow@width{\b@r@stretch\arrow@width}% + \fi% + \loop% + \expandafter\get@firstv@l\fill@char% + \ifx\second@@\N@\hbox to \box@width{\hss}% + \else\relax% + \ifx\frame@color\back@color% + \else% + \setlength\arrow@height{\b@r@stretch\box@height}% + \hbox to \box@width{\hss{\textcolor{\back@color}% + {\vrule height\arrow@height width\box@width}}\hss}% + \kern-\box@width% + \fi% + \setlength\arrow@height{\second@@\box@height}% + \divide\arrow@height by 100\relax% + \setlength\arrow@height{\b@r@stretch\arrow@height}% + \ifdim\arrow@height<0pt% + \arrow@height=-\arrow@height% + \raisebox{\arrow@width}{% + \hbox to \box@width{\hss{\textcolor{\frame@color}% + {\vrule depth\arrow@height width0.8\box@width}}\hss}}% + \else% + \raisebox{\arrow@width}{% + \hbox to \box@width{\hss{\textcolor{\frame@color}% + {\vrule height\arrow@height width0.8\box@width}}\hss}}\fi% + \kern-\box@width% + \raisebox{\arrow@width}{\textcolor{Black}% + {\vrule height0.25pt depth0.25pt width\box@width}}% + \fi + \ifx\fill@char\ampers@nd\else\repeat% + \else% + \xdef\last@{helix}% + \ifx\second@@\last@% + \fontfamily{\rmdefault}% + \fontseries{\mddefault}% + \fontshape{\itdefault}% + \selectfont% + \ifx\bottop@\temp@\xdef\last@{0.35}\else\xdef\last@{0}\fi% + \kern0.15\box@width% + \setbox1=\hbox{\ensuremath{\smile}\kern-1.13exo\kern-1.02ex}% + \arrow@width=\second@\box@width% + \divide\arrow@width by \wd1% + \arrow@width=2\wd1% + \loop% + \textcolor{\f@color}{\raisebox{-0.25ex}{\ensuremath{\smile}}% + \kern-1.13ex\raisebox{0.3ex}{o}}\kern-1.02ex% + \advance\arrow@width by \wd1\relax% + \ifdim\arrow@width<\second@\box@width \repeat% + \textcolor{\f@color}{\raisebox{-0.25ex}{\ensuremath{\smile}}}% + \else% + \xdef\last@{box}% + \ifx\second@@\last@% + \fontfamily{\featurestyles@family}% + \fontseries{\featurestyles@series}% + \fontshape{\featurestyles@shape}% + \selectfont% + \kern-\second@\box@width% + \bgroup% + \textcolor{\back@color}{% + \vrule width\second@\box@width height\box@height depth\box@depth}% + \kern-\second@\box@width% + \fboxsep-\rule@@thick\fboxrule\rule@@thick% + \textcolor{\frame@color}{% + \fbox{\makebox[\second@\box@width]% + {\vrule\@height\box@height\@depth\box@depth \@width\z@}}}% + \egroup% + \setbox1=\hbox{\residues@size{\fill@char}}% + \temp@count=\wd1 \xdef\wd@{\the\temp@count}% + \width@tmp=\second@\box@width% + \temp@count=\width@tmp% + \xdef\sb@{\the\temp@count}% + \ifnum\wd@>\sb@ \xdef\fill@char{}\fi% + \hbox to -\second@\box@width{\hss\textcolor{\f@color}% + {\residues@size{\fill@char}}\hss}% + \else% + \expandafter\get@shape\second@@% + \xdef\last@{arrow}% + \ifx\second@@\last@% + \kern-0.75\box@width% + \ifx\bottop@\temp@ \xdef\last@{0.35}\else\xdef\last@{-0.55}\fi% + \textcolor{\f@color}{% + \raisebox{\last@\arrow@height}{% + \if\first@@ ,% + \rule{0.1\arrow@height}{\arrow@height}\kern-0.35\arrow@height% + \else% + \if\first@@ |% + \rule{0.1\arrow@height}{2\arrow@height}\kern-0.35\arrow@height% + \else% + \if\first@@ `\xdef\first@@{'}\fi% + \if\first@@ '% + \rule[\arrow@height]% + {0.1\arrow@height}{\arrow@height}\kern-0.35\arrow@height% + \else% + \if\first@@ -% + \rule{0pt}{0pt}\kern-0.35\arrow@height% + \fi% + \fi% + \fi% + \fi% + \if\third@@ v% + \if\first@@ v% + \ensuremath{\overleftarrow{\hbox to % + \second@\box@width{\rule[0.4\arrow@height]{0pt}{0pt}\hss}}}% + \kern-\arrow@width% + \ensuremath{\overrightarrow{\hbox% + {\rule[0.4\arrow@height]{0pt}{0pt}\hss}}}% + \else% + \ensuremath{\overrightarrow{\hbox to % + \second@\box@width{\rule[0.4\arrow@height]{0pt}{0pt}\hss}}}% + \fi% + \else% + \if\first@@ v% + \ensuremath{\overleftarrow{\hbox to % + \second@\box@width{\rule[0.4\arrow@height]{0pt}{0pt}\hss}}}% + \else + \kern0.35\arrow@height% + \rule[0.9\arrow@height]{\second@\box@width}{0.1\arrow@height}% + \kern0.35\arrow@height% + \fi + \if\third@@ ,% + \kern-0.4\arrow@height\rule{0.1\arrow@height}{\arrow@height}% + \else% + \if\third@@ |% + \kern-0.4\arrow@height\rule{0.1\arrow@height}{2\arrow@height}% + \else% + \if\third@@ `\xdef\third@@{'}\fi% + \if\third@@ '% + \kern-0.4\arrow@height% + \rule[\arrow@height]{0.1\arrow@height}{\arrow@height}% + \fi% + \fi% + \fi% + \fi}}% + \else% + \xdef\last@{doublearrow}% + \ifx\second@@\last@% + \setbox1=\hbox{\ensuremath{\Rightarrow}}% + \arrow@height=\ht1% + \arrow@width=\wd1% + \setbox1=\hbox to \second@\box@width{}% + \width@tmp=\wd1% + \kern-0.75\box@width% + \xdef\temp@{top}% + \ifx\bottop@\temp@ \xdef\last@{0.25}% + \else% + \xdef\temp@{ttop}% + \ifx\bottop@\temp@ \xdef\last@{0.25}% + \else% + \xdef\last@{-0.25}\fi\fi% + \textcolor{\f@color}{% + \raisebox{\last@\arrow@height}{% + \if\first@@ ,% + \rule[-0.5\arrow@height]{0.1\arrow@height}{1.5\arrow@height}% + \kern-0.1\arrow@height% + \else% + \if\first@@ |% + \rule[-0.5\arrow@height]{0.1\arrow@height}{2.25\arrow@height}% + \kern-0.1\arrow@height% + \else% + \if\first@@ `\xdef\first@@{'}\fi% + \if\first@@ '% + \rule[0.4\arrow@height]% + {0.1\arrow@height}{1.5\arrow@height}% + \kern-0.1\arrow@height% + \else% + \if\first@@ <% + \ensuremath{\Leftarrow}\kern-0.5\arrow@width% + \advance\width@tmp by -0.5\arrow@width + \else + \rule{0pt}{0pt}% + \fi% + \fi% + \fi% + \fi% + \if\third@@ >% + \advance\width@tmp by -0.5\arrow@width% + \rule[0.37\arrow@height]{\width@tmp}{0.1\arrow@height}% + \kern-\width@tmp% + \rule[0.9\arrow@height]{\width@tmp}{0.1\arrow@height}% + \kern-0.5\arrow@width\ensuremath{\Rightarrow}% + \else% + \rule[0.37\arrow@height]{\width@tmp}{0.1\arrow@height}% + \kern-\width@tmp% + \rule[0.9\arrow@height]{\width@tmp}{0.1\arrow@height}% + \if\third@@ ,% + \kern-0.05\arrow@height% + \rule[-0.5\arrow@height]{0.1\arrow@height}{1.5\arrow@height}% + \else% + \if\third@@ |% + \kern-0.05\arrow@height% + \rule[-0.5\arrow@height]{0.1\arrow@height}{2.25\arrow@height}% + \else% + \if\third@@ `\xdef\third@@{'}\fi% + \if\third@@ '% + \kern-0.05\arrow@height% + \rule[0.4\arrow@height]{0.1\arrow@height}{1.5\arrow@height}% + \fi% + \fi% + \fi% + \fi}}% + \else + \loopcount=0\relax% + \width@tmp=\arrow@height% + \temp@@length=\rule@@thick% + \advance\width@tmp by -0.5\temp@@length% + \if\first@@ o\xdef\first@@{O}\fi% + \if\third@@ o\xdef\third@@{O}\fi% + \ifx\bottop@\temp@ \else \advance\width@tmp by -0.4\arrow@height\fi% + \textcolor{\f@color}{% + \if\first@@ ,% + \rule{\temp@@length}{\arrow@height}\kern-\temp@@length% + \else% + \if\first@@ |% + \rule{\temp@@length}{2\arrow@height}\kern-\temp@@length% + \else% + \if\first@@ O% + \raisebox{0.06ex}{\ensuremath{\bullet}}\kern-0.55ex% + \rule[\width@tmp]{0.65ex}{\temp@@length}% + \else% + \if\first@@ <% + \raisebox{0.06ex}{\ensuremath{\blacktriangleleft}}\kern-0.35ex% + \else + \if\first@@ `\xdef\first@@{'}\fi% + \if\first@@ '% + \advance\width@tmp by 0.5\temp@@length% + \rule[\width@tmp]{\temp@@length}{\arrow@height}\kern-\temp@@length% + \advance\width@tmp by -0.5\temp@@length% + \fi% + \fi% + \fi% + \fi% + \fi% + \loopcount=\second@% + \if\first@@ <\advance\loopcount by -1\relax\ifnum\loopcount<0 \loopcount=0\fi\fi% + \if\third@@ >\advance\loopcount by -1\relax\ifnum\loopcount<0 \loopcount=0\fi\fi% + \if\first@@ O\advance\loopcount by -1\relax\ifnum\loopcount<0 \loopcount=0\fi\fi% + \if\third@@ O\advance\loopcount by -1\relax\ifnum\loopcount<0 \loopcount=0\fi\fi% + \xdef\second@{\the\loopcount}% + \rule[\width@tmp]{\second@\box@width}{\temp@@length}% + \if\third@@ ,% + \kern-\temp@@length\rule{\temp@@length}{\arrow@height}% + \else% + \if\third@@ |% + \kern-\temp@@length\rule{\temp@@length}{2\arrow@height}% + \else% + \if\third@@ O% + \rule[\width@tmp]{0.65ex}{\temp@@length}% + \kern-0.55ex\raisebox{0.06ex}{\ensuremath{\bullet}}% + \else% + \if\third@@ >% + \kern-0.35ex\raisebox{0.06ex}{\ensuremath{\blacktriangleright}}% + \else + \if\third@@ `\xdef\third@@{'}\fi% + \if\third@@ '% + \advance\width@tmp by 0.5\temp@@length% + \kern-\temp@@length\rule[\width@tmp]{\temp@@length}{\arrow@height}% + \fi% + \fi% + \fi% + \fi + \fi}% + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi +} +\def\next@featuretext#2;#3@{% + \xdef\first@{#3@}% + \xdef\last@{#2::&}\expandafter\test@fill\last@% + \ifx\f@color\comm@\xdef\f@color{Black}\fi% + \fontfamily{\featuretext@family}% + \fontseries{\featuretext@series}% + \fontshape{\featuretext@shape}% + \selectfont% + \xdef\last@{translate}% + \ifx\last@\second@@% + \xdef\fill@char{\fill@char &}% + \if\seq@type N + \loop% + \expandafter\get@firstfill\fill@char% + \if\second@@ -\def\second@@{\hss}\fi% + \hbox to \box@width{\hss\textcolor{\f@color}{% + \featuretext@size{\strut\second@@}}\hss}% + \ifx\fill@char\ampers@nd\else\repeat% + \else + \hbox to #1\box@width{\hss% + \temp@count=1% + \loop% + \expandafter\get@tripletfill\fill@char% + \if\second@@ -\ifnum\tr@nstextstyle>0\hbox to \box@width{\hss}\fi% + \else% + \ifcase\tr@nstextstyle% + \hbox{\transtext@size\textcolor{\f@color}% + {\hss\second@@\second@@@\second@@@@\,\hss}}% + \or% + \ifnum\temp@count=1% + \vbox{\transtext@size% + \hbox to \box@width{\textcolor{\f@color}{\second@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@@}}}% + \else% + \vbox{\transtext@size% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@@}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\second@@\hss}}}% + \fi% + \or% + \ifnum\temp@count=1% + \vbox{\transtext@size% + \hbox to \box@width{\textcolor{\f@color}% + {\hss\second@@\second@@@\second@@@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss}}}% + \else% + \vbox{\transtext@size% + \hbox to \box@width{\textcolor{\f@color}{\hss}}% + \hbox to \box@width{\textcolor{\f@color}% + {\hss\second@@\second@@@\second@@@@\hss}}}% + \fi% + \or% + \vbox{\transtext@size% + \hbox to \box@width{\textcolor{\f@color}{\second@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@@}}}% + \or% + \vbox{\transtext@size% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@\hss}}% + \hbox to \box@width{\textcolor{\f@color}{\hss\second@@@@\hss}}}% + \fi% + \fi% + \ifx\fill@char\ampers@nd\else\repeat% + \hss} + \fi% + \else% + \textcolor{\f@color}{% + \hbox to #1\box@width{\hss\featuretext@size{\strut\fourth@}\hss}}% + \fi% +} +\def\put@featuretext{% + \if\first@ @% + \else + \expandafter\next@featuretext\first@% + \put@featuretext% + \fi} +\def\next@featurestyle#2;#3@{% + \xdef\first@{#2}% + \xdef\second@{#1}% + \ifx\first@\ampers@nd \hbox to \second@\box@width{\hss}% + \else% + \hbox to \second@\box@width% + {\hss\expandafter\putfeature@style{\first@}\hss}\fi% + \xdef\first@{#3@}% +} +\def\put@featurestyle{% + \if\first@ @% + \else + \expandafter\next@featurestyle\first@% + \put@featurestyle% + \fi +} +\def\put@feature{% + \vspace{-\baselineskip}% + \newline\hbox{}% + \ifnames@right\else\ifnames@\hbox to \name@width{\hss}\fi\fi% + \ifnumbers@left\ifnumbers@\hbox to \number@width{\hss}\fi\fi% + \xdef\temp@{ttop}% + \ifx\temp@\bottop@% + \xdef\first@{\csname textfeature\bottop@\endcsname @}% + \put@featuretext% + \else% + \xdef\temp@{top}% + \ifx\temp@\bottop@% + \xdef\first@{\csname textfeature\bottop@\endcsname @}% + \put@featuretext% + \else + \xdef\first@{\csname stylefeature\bottop@\endcsname @}% + \put@featurestyle% + \fi\fi% + \newline\hbox{}% + \ifnames@right\else\ifnames@\hbox to \name@width{\hss}\fi\fi% + \ifnumbers@left\ifnumbers@\hbox to \number@width{\hss}\fi\fi% + \ifx\temp@\bottop@% + \xdef\first@{\csname stylefeature\bottop@\endcsname @}% + \put@featurestyle% + \else% + \xdef\temp@{ttop}% + \ifx\temp@\bottop@% + \xdef\first@{\csname stylefeature\bottop@\endcsname @}% + \put@featurestyle% + \else + \xdef\first@{\csname textfeature\bottop@\endcsname @}% + \put@featuretext% + \fi\fi% + \newline\hbox{}% +} +\def\put@@@frame#1{% + \xdef\last@{#1[,]&}\expandafter\opt@color\last@% + \xdef\second@@{\fourth@}% + \ifx\f@color\comm@% + \xdef\third@@{0.2\box@width}% + \else% + \xdef\third@@{\f@color}% + \fi% + \setlength\arrow@width{\temp@@length}% + \advance\arrow@width by -\third@@% + \textcolor{\second@@}{% + \rule{\second@\box@width}{\third@@}% + \kern-\second@\box@width% + \rule{\third@@}{\arrow@width}% + \kern-\third@@% + \rule[\arrow@width]{\second@\box@width}{\third@@}% + \kern-\third@@% + \rule{\third@@}{\arrow@width}}% +} +\def\next@frame#2;#3@{% + \xdef\first@{#2}% + \xdef\second@{#1}% + \ifx\first@\ampers@nd \hbox to \second@\box@width{\hss}% + \else% + \expandafter\put@@@frame{\first@}% + \fi% + \xdef\first@{#3@}% +} +\def\put@@frame{% + \if\first@ @% + \else + \expandafter\next@frame\first@% + \put@@frame% + \fi% +} +\def\put@frame{% + \temp@count=\seq@count% + \setlength\temp@@length{\box@height}% + \advance\temp@@length by \box@depth% + \setlength\arrow@height{0.5\temp@@length}% + \setlength\temp@@length{\temp@count\temp@@length}% + \advance\temp@@length by \arrow@height% + \setlength\arrow@width{\sep@space}% + \setlength\arrow@width{\seq@gap@num\arrow@width}% + \advance\temp@@length by \arrow@width% + \vspace{\arrow@height}% + \vspace{-\temp@@length}% + \vspace{-\baselineskip}% + \ifshow@cons\ifnum\cons@top=1 \vspace{-\baselineskip}\fi\fi% + \newline\hbox{}% + \ifnames@right\else\ifnames@\hbox to \name@width{\hss}\fi\fi% + \ifnumbers@left\ifnumbers@\hbox to \number@width{\hss}\fi\fi% + \xdef\first@{\styleframe @}% + \put@@frame% + \vspace{-\arrow@height}% + \ifshow@cons\ifnum\cons@top=1 \vspace{\baselineskip}\fi\fi% + \newline\hbox{}% +} +\def\set@lines{% + \pos@count=1 + \xdef\frame@pos{1}% + \xdef\featurepostop{1}\xdef\featureposbottom{1}% + \xdef\featureposttop{1}\xdef\featureposbbottom{1}% + \findc@nsensus% + \noindent% + \ifnum\feature@ttop=1 + \ifnum\featureonttop=0 \xdef\feature@ttop{0} \fi + \xdef\bottop@{ttop}% + \put@feature% + \vspace{\tt@sp@ce}% + \vspace{-\baselineskip}% + \newline\hbox{}% + \else + \iffix@\ifttopfeature \vspace{\tt@sp@ce}\newline\hbox{}\newline\hbox{}\fi\fi + \fi + \ifnum\feature@top=1 + \ifnum\featureontop=0 \xdef\feature@top{0} \fi + \xdef\bottop@{top}% + \put@feature% + \vspace{\t@sp@ce}% + \vspace{-\baselineskip}% + \newline\hbox{}% + \else + \iffix@\iftopfeature \vspace{\t@sp@ce}\newline\hbox{}\newline\hbox{}\fi\fi + \fi + \ifnum\rule@num<0 \else \ifnum\rule@top=0 \loopcount=0 \put@ruler \fi\fi + \set@consensus + \ifshow@cons\ifnum\cons@top=0 + \xdef\cons@now{y}% + \xdef\first@{\consensus @}% + \xdef\first@@@{\c@nscol @}% + \loopcount=0\relax% + \put@line% + \xdef\c@nscol{}% + \xdef\cons@now{no}% + \fi\fi + \loopcount=0 + \loop + \advance\loopcount by 1 + \xdef\second@{\csname hide@seq\the\loopcount\endcsname}% + \xdef\first@{noshade}\nosh@defalse% + \ifx\second@\first@ \nosh@detrue \xdef\second@{false}\fi + \xdef\first@{false}% + \ifx\second@\first@ + \ifnames@right + \ifnumbers@left + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + <\csname newseqname\the\loopcount\endcsname>}% + \else + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + \the\csname res@count\the\loopcount\endcsname)% + <\csname newseqname\the\loopcount\endcsname>}% + \fi + \else + \ifnumbers@left + \else + \expandafter\xdef\csname seq\the\loopcount\endcsname{% + \csname seq\the\loopcount\endcsname% + \the\csname res@count\the\loopcount\endcsname)}% + \fi + \fi + \xdef\first@{\csname seq\the\loopcount\endcsname @}% + \expandafter\ifx\csname seq@gap\the\loopcount\endcsname\yes% + \ifnum\finger@linenum=0\seq@skip% + \else% + \ifnum\loopcount<\seq@count\seq@skip\fi% + \fi% + \fi% + \put@line% + \fi + \ifnum\loopcount<\seq@count\repeat + \ifshow@cons\ifnum\cons@top=1 + \xdef\cons@now{y}% + \xdef\first@{\consensus @}% + \xdef\first@@@{\c@nscol @}% + \loopcount=0\relax% + \put@line% + \xdef\c@nscol{}% + \xdef\cons@now{no}% + \fi\fi + \ifnum\frame@=1 + \ifnum\frame@on=0 \xdef\frame@{0}\fi + \put@frame + \fi + \ifnum\rule@num<0 + \else + \ifnum\rule@top=1 + \loopcount=0\relax% + \put@ruler% + \vspace{0.25\baselineskip}% + \fi + \fi + \ifnum\feature@bottom=1 + \ifnum\featureonbottom=0 \xdef\feature@bottom{0}\fi + \xdef\bottop@{bottom}% + \vspace{\b@sp@ce}% + \if\bottom@stretch y% + \vspace{-\box@height}% + \vspace{\b@r@stretch\box@height}% + \fi% + \put@feature + \else + \iffix@ + \if\bottom@stretch y% + \vspace{-\box@height}% + \vspace{\b@r@stretch\box@height}% + \fi% + \ifbottomfeature + \vspace{\b@sp@ce}\newline\hbox{}\newline\hbox{} + \fi + \fi + \fi + \ifnum\feature@bbottom=1 + \ifnum\featureonbbottom=0 \xdef\feature@bbottom{0}\fi + \xdef\bottop@{bbottom}% + \vspace{\bb@sp@ce}% + \if\bbottom@stretch y% + \vspace{-\box@height}% + \vspace{\b@r@stretch\box@height}% + \fi% + \put@feature + \else + \iffix@ + \if\bbottom@stretch y% + \vspace{-\box@height}% + \vspace{\b@r@stretch\box@height}% + \fi% + \ifbbottomfeature + \vspace{\bb@sp@ce}\newline\hbox{}\newline\hbox{} + \fi + \fi + \fi + \xdef\consensus{} \xdef\ruler@{} + \xdef\styleframe{} + \xdef\textfeaturetop{} \xdef\textfeaturebottom{} + \xdef\textfeaturettop{} \xdef\textfeaturebbottom{} + \xdef\stylefeaturetop{} \xdef\stylefeaturebottom{} + \xdef\stylefeaturettop{} \xdef\stylefeaturebbottom{} + \loopcount=0 + \loop + \advance\loopcount by 1 + \xdef\seq@line{\csname sequence\the\loopcount\endcsname} + \expandafter\remove@fromseq\seq@line + \ifnum\loopcount<\seq@count \repeat} + +\def\block@output{% + \expandafter\ifnum\csname res@count\start@seq\endcsname<\end@num\relax + \message{.} + \ifx\out@put\y@ + \vbox{\set@lines}\par + \block@skip + \else + \pos@count=1 + \findc@nsensus + \loopcount=0 + \loop + \advance\loopcount by 1\relax + \xdef\seq@line{\csname sequence\the\loopcount\endcsname} + \expandafter\remove@fromseq\seq@line + \ifnum\loopcount<\seq@count \repeat + \fi + \ifstop@ + \else + \advance\seq@pointer by -\res@perline + \ifnum\seq@pointer>\res@perline \block@output \fi + \fi + \fi} + +%%%%% Basic input routines + +\def\savedseqlength#1#2#3{% + \expandafter\xdef\csname savelength#1seq#2\endcsname{#3}} + +\def\set@savedseqlength{% + \loopcount=0 + \loop + \advance\loopcount by 1 + \expandafter\ifx% + \csname savelength\@lign@count seq\the\loopcount\endcsname\relax + \else + \expandafter\xdef\csname seq@len\the\loopcount\endcsname{% + \csname savelength\@lign@count seq\the\loopcount\endcsname} + \fi + \ifnum\loopcount<\seq@count\repeat +} + +\def\save@lengths{% + \loopcount=0 + \loop + \advance\loopcount by 1\relax + \immediate\write\@auxout{% + \string\savedseqlength{\@lign@count}{\the\loopcount}% + {\expandafter\the\csname res@count\the\loopcount\endcsname}} + \ifnum\loopcount<\seq@count \repeat +} + +\def\do@cleanup{% + \expandafter\firstchar@get\third@ + \expandafter\check@char\first@ + \ifletter + \xdef\second@{\second@\first@} + \else + \ifnumber + \ifx\first@\gre@ter + \xdef\second@{\second@{$>$}} + \else + \ifx\first@\sm@ller + \xdef\second@{\second@{$<$}} + \else + \xdef\second@{\second@\first@} + \fi\fi + \else + \ifnum\code@num=6 + \xdef\second@{\second@\#} + \else + \ifnum\code@num=14 + \xdef\second@{\second@\%} + \else + \xdef\second@{\second@\noexpand\string\first@} + \fi\fi + \fi + \fi + \ifx\third@\@t \else \do@cleanup \fi +} + +\def\cleanup@name{% + \xdef\third@{\csname seqname\the\loopcount\endcsname @} + \xdef\second@{} + \do@cleanup + \expandafter\xdef\csname newseqname\the\loopcount\endcsname{\second@} +} + +\def\clear@seq{% + \loopcount=0 + \loop + \advance\loopcount by 1 + \expandafter\def\csname sequence\the\loopcount\endcsname{} + \ifnum\loopcount<\seq@count \repeat + \xdef\consensus{} + \xdef\constopo{} + \xdef\frame@on{0} + \xdef\textfeaturetop{} \xdef\featureontop{0} + \xdef\textfeaturettop{} \xdef\featureonttop{0} + \xdef\textfeaturebottom{} \xdef\featureonbottom{0} + \xdef\textfeaturebbottom{}\xdef\featureonbbottom{0} + \xdef\styleframe{} + \xdef\stylefeaturetop{} + \xdef\stylefeaturettop{} + \xdef\stylefeaturebottom{} + \xdef\stylefeaturebbottom{}} +\def\do@count{% + \expandafter\res@get\seq@line + \if\first@\ampers@nd + \else + \advance\innerloopcount by 1 + \expandafter\check@char\first@ + \ifletter + \global\advance\csname res@count\the\loopcount\endcsname by 1 + \expandafter\ifnum\csname res@count\the\loopcount\endcsname=0 + \global\advance\csname res@count\the\loopcount\endcsname by 1 + \fi + \fi + \do@count + \fi} +\def\residue@@count{% + \xdef\seq@line{\csname sequence\the\loopcount\endcsname &@} + \innerloopcount=0 \do@count + \advance\loopcount by 1 + \ifnum\loopcount>\seq@count \else\residue@@count\fi} +\def\residue@count{% + \expandafter\res@get\seq@line + \if\first@\ampers@nd + \else + \advance\innerloopcount by 1 + \ifstart@ \advance\res@count by 1 + \else + \ifnum\start@seq=0 + \advance\end@count by 1 + \else + \expandafter\check@char\first@ + \ifletter \advance\end@count by 1 \fi + \fi + \ifnum\end@count=\start@num\relax + \xdef\start@number{\the\innerloopcount} + \ifnum\start@seq=0 + \cons@count=\start@number + \advance\cons@count by -1 + \fi + \start@true \res@count=1 + \fi + \fi + \residue@count + \fi} +\def\read@loop{% + \read\alignfile to \inline + \xdef\last@{\expandafter\string\inline} + \ifx\last@\par@ + \else + \xdef\inline{\inline @} + \expandafter\seq@get\inline + \ifstop@ + \else + \innerloopcount=\csname @rd\the\loopcount\endcsname\relax + \expandafter\ifx\csname seq@name\the\loopcount\endcsname\first@ + \expandafter\xdef\csname sequence\the\innerloopcount\endcsname{% + \csname sequence\the\innerloopcount\endcsname\seq@line} + \ifnum\start@seq=0 + \ifnum\loopcount=1 + \res@count=0 \innerloopcount=0 + \xdef\seq@line{\seq@line &@} \residue@count + \fi + \else + \ifnum\innerloopcount=\start@seq + \res@count=0 \innerloopcount=0 + \xdef\seq@line{\seq@line &@} \residue@count + \fi + \fi + \advance\loopcount by 1 + \ifnum\loopcount>\seq@count + \ifstart@ + \else + \loopcount=1\residue@@count\clear@seq + \fi + \advance\seq@pointer by \res@count + \ifnum\seq@pointer>\res@perline \block@output \fi + \loopcount=1 + \fi + \fi + \fi + \fi + \ifeof\alignfile \else \read@loop \fi} +\def\read@fasta{% + \read\alignfile to \inline + \xdef\last@{\expandafter\string\inline} + \ifx\last@\par@ + \else + \xdef\seq@line{\inline} + \xdef\inline{\inline @} + \expandafter\firstchar@get\inline + \ifstop@ + \else + \ifx\first@\gre@ter + \advance\loopcount by 1\relax + \expandafter\seq@get\third@ + \xdef\seq@name{\first@} + \xdef\second@{\first@ &} + \ifx\second@\ampers@nd \xdef\seq@name{seq\the\loopcount}\fi + \innerloopcount=\csname @rd\the\loopcount\endcsname\relax + \else + \expandafter\ifx\csname seq@name\the\loopcount\endcsname\seq@name + \expandafter\xdef\csname sequence\the\innerloopcount\endcsname{% + \csname sequence\the\innerloopcount\endcsname\seq@line} + \fi + \fi + \fi + \fi + \ifeof\alignfile + \ifnum\start@seq=0 + \xdef\seq@line{\csname sequence1\endcsname &@} + \else + \xdef\seq@line{\csname sequence\start@seq\endcsname &@} + \fi + \res@count=0 + \innerloopcount=0 + \residue@count + \advance\seq@pointer by \res@count + \ifnum\seq@pointer>\res@perline \block@output \fi + \else + \read@fasta + \fi} +\def\read@lines{% + \openin\alignfile = \alignfilename + \clear@seq + \ifnum\start@seq>0 + \xdef\start@seq{\csname @rd\start@seq\endcsname} \fi + \loopcount=\start@num + \advance\loopcount by -\csname res@count\start@seq\endcsname\relax + \expandafter\ifnum\csname res@count\start@seq\endcsname<\start@num\relax + \xdef\start@num{\the\loopcount} + \else \start@true \fi + \loopcount=\end@num + \advance\loopcount by -\csname res@count\start@seq\endcsname\relax + \res@count=0 \seq@pointer=0 \end@count=0 + \xdef\start@number{0} + \ifx\f@st@\y@ + \loopcount=0 + \read@fasta + \else + \loopcount=1 + \read@loop + \fi + \ifnum\seq@pointer>0 + \ifstop@ + \else + \res@count=\res@perline + \res@perline=\seq@pointer + \block@output + \fi + \fi + \message{)} + \closein\alignfile} + +%%%%% Read alignment, decide whether MSF or ALN, interpret + +\def\readalignfile#1{% + \def\alignfilename{#1} + \xdef\first@{byhand} + \ifx\alignfilename\first@ + \else + \openin\alignfile = #1 + \ifeof\alignfile + \PackageError{TeXshade} + {File `#1' not found} + {\MessageBreak + The alignment file you specified is missing or you have \MessageBreak + misspelled it. \MessageBreak\MessageBreak + Stop here, otherwise you're likely getting in trouble. \MessageBreak + Type X <return> to quit. \MessageBreak +} + \else + \message{(\alignfilename :} + \xdef\seq@type{} \xdef\he@der{no} \xdef\f@st@{no} + \xdef\first@line{y} + \seq@count=0 \loopcount=0 \innerloopcount=0 \temp@count=0 + \loop + \read\alignfile to \inline + \xdef\test@{\expandafter\string\inline} + \ifx\test@\par@ \innerloopcount=0 + \else + \xdef\msfline{\inline & & & & @} + \expandafter\inf@@get\msfline + \ifx\first@\@msf \expandafter\type@get\msfline \fi + \ifx\second@\@msf \expandafter\type@get\msfline \fi + \ifx\third@\@msf \expandafter\type@get\msfline \fi + \ifx\first@\n@me \advance\loopcount by 1\relax + \expandafter\xdef\csname seqname\the\loopcount\endcsname{\second@} + \expandafter\xdef\csname seq@len\the\loopcount\endcsname{\fourth@} + \fi + \ifx\first@\he@derend + \ifnum\loopcount>0 \xdef\he@der{yes} \fi + \fi + \xdef\alnline{\inline @} + \expandafter\check@letter\alnline + \ifletter + \expandafter\seq@get\alnline + \advance\innerloopcount by 1\relax + \seq@count=\innerloopcount + \expandafter\xdef\csname newseqname\the\seq@count\endcsname{\first@} + \else + \expandafter\firstchar@get\alnline + \ifx\first@\gre@ter + \ifx\first@line\y@ \xdef\f@st@{y}\fi + \expandafter\seq@get\third@ + \advance\temp@count by 1\relax + \xdef\second@{\first@ &} + \ifx\second@\ampers@nd \xdef\first@{seq\the\temp@count}\fi + \expandafter\xdef\csname seq@name\the\temp@count\endcsname{\first@} + \fi + \fi + \fi + \xdef\first@line{n} + \ifeof\alignfile \else\repeat + \closein\alignfile + \xdef\first@{no} + \ifx\he@der\first@ + \loopcount=0 + \ifx\f@st@\y@ + \seq@count=\temp@count \loopcount=0 + \loop + \advance\loopcount by 1 + \expandafter\xdef\csname seqname\the\loopcount\endcsname{% + \csname seq@name\the\loopcount\endcsname} + \expandafter\xdef\csname newseqname\the\loopcount\endcsname{% + \csname seq@name\the\loopcount\endcsname} + \expandafter\xdef\csname seq@len\the\loopcount\endcsname{99999999} + \ifnum\loopcount<\seq@count \repeat + \else + \loop + \advance\loopcount by 1 + \expandafter\xdef\csname seqname\the\loopcount\endcsname{% + \csname newseqname\the\loopcount\endcsname} + \expandafter\xdef\csname seq@len\the\loopcount\endcsname{99999999} + \ifnum\loopcount<\seq@count \repeat + \fi + \else + \seq@count=\loopcount \loopcount=0 \box@width=0pt + \loop + \advance\loopcount by 1 + \expandafter\xdef\csname newseqname\the\loopcount\endcsname{% + \csname seqname\the\loopcount\endcsname} + \ifnum\loopcount<\seq@count \repeat + \fi + \set@savedseqlength + \ifnum\seq@count>\max@seqnumber \set@maxseqnumber\seq@count \fi + \loopcount=0 \xdef\seq@order{} + \expandafter\xdef\csname stack@reg\the\loopcount\endcsname{&;&;&;&;@} + \expandafter\xdef\csname stack@tintreg\the\loopcount\endcsname{&;&;&;@} + \expandafter\xdef\csname stack@emphreg\the\loopcount\endcsname{&;&;&;@} + \expandafter\xdef\csname stack@framereg\the\loopcount\endcsname{&;&;&;@} + \expandafter\xdef\csname stack@top\the\loopcount\endcsname{&;&;&;&;@} + \expandafter\xdef\csname stack@ttop\the\loopcount\endcsname{&;&;&;&;@} + \expandafter\xdef\csname stack@bottom\the\loopcount\endcsname{&;&;&;&;@} + \expandafter\xdef\csname stack@bbottom\the\loopcount\endcsname{&;&;&;&;@} + \expandafter\xdef\csname seq@start\the\loopcount\endcsname{1} + \expandafter\xdef\csname name@col\the\loopcount\endcsname{yes} + \expandafter\xdef\csname number@col\the\loopcount\endcsname{yes} + \loop + \advance\loopcount by 1 + \expandafter\xdef\csname @rd\the\loopcount\endcsname{\the\loopcount} + \csname res@count\the\loopcount\endcsname=0 + \cleanup@name + \expandafter\xdef\csname tint@seq\the\loopcount\endcsname{n} + \expandafter\xdef\csname emph@seq\the\loopcount\endcsname{n} + \expandafter\xdef\csname hide@seq\the\loopcount\endcsname{false} + \expandafter\xdef\csname hide@name\the\loopcount\endcsname{no} + \expandafter\xdef\csname name@col\the\loopcount\endcsname{yes} + \expandafter\xdef\csname hide@number\the\loopcount\endcsname{no} + \expandafter\xdef\csname number@col\the\loopcount\endcsname{yes} + \expandafter\xdef\csname stack@reg\the\loopcount\endcsname{&;&;&;&;@} + \expandafter\xdef\csname stack@tintreg\the\loopcount\endcsname{&;&;&;@} + \expandafter\xdef\csname stack@emphreg\the\loopcount\endcsname{&;&;&;@} + \expandafter\xdef\csname stack@framereg\the\loopcount\endcsname{&;&;&;@} + \expandafter\xdef\csname stack@top\the\loopcount\endcsname{&;&;&;&;@} + \expandafter\xdef\csname stack@ttop\the\loopcount\endcsname{&;&;&;&;@} + \expandafter\xdef\csname stack@bottom\the\loopcount\endcsname{&;&;&;&;@} + \expandafter\xdef\csname stack@bbottom\the\loopcount\endcsname{&;&;&;&;@} + \expandafter\xdef\csname seq@gap\the\loopcount\endcsname{no} + \expandafter\xdef\csname seq@start\the\loopcount\endcsname{1} + \expandafter\xdef\csname mol@weight\the\loopcount\endcsname{0} + \expandafter\xdef\csname ch@rge\the\loopcount\endcsname{0} + \ifnum\loopcount=1 \xdef\seq@order{\the\loopcount} + \else \xdef\seq@order{\seq@order,\the\loopcount}\fi + \ifnum\loopcount<\seq@count \repeat + \xdef\seq@order{\seq@order,@} + \killseq@count=\seq@count + \seq@percent=100 + \ifnum\seq@count>0 \divide\seq@percent by \seq@count \fi + \if\seq@type P \xdef\prefix@{pep} + \else \if\seq@type p \xdef\prefix@{pep} \xdef\seq@type{P} + \else \seqtype{N} \xdef\prefix@{DNA} \fi\fi + \fi + \fi +} + +%%%%% TeXshade + +\def\calc@widths{% + \fontfamily{\residues@family} + \fontseries{\residues@series} + \fontshape{\residues@shape} + \selectfont + \setbox1=\hbox{\residues@size{W}}\box@width=\wd1 + \global\setlength\box@width{\char@stretch\box@width} + \box@height=1.2\ht1 + \setbox1=\hbox{\residues@size{g}}\box@depth=1.1\dp1 + \global\setlength\box@height{\line@stretch\box@height} + \global\setlength\box@depth{\line@stretch\box@depth} + \baselineskip=\box@height \advance\baselineskip by \box@depth + \lineskip=0pt + \ifshow@cons\setbox1=\hbox{\cons@name}\name@width=\wd1\else\name@width=0pt\fi + \loopcount=0 + \expandafter\getregion@fromstack{\the\loopcount} + \expandafter\getregion@fromtintstack{\the\loopcount} + \expandafter\getregion@fromemphstack{\the\loopcount} + \expandafter\getregion@fromframestack{\the\loopcount} + \xdef\bottop@{top} \expandafter\getregion@fromfstack{\the\loopcount} + \xdef\bottop@{ttop} \expandafter\getregion@fromfstack{\the\loopcount} + \xdef\bottop@{bottom} \expandafter\getregion@fromfstack{\the\loopcount} + \xdef\bottop@{bbottom}\expandafter\getregion@fromfstack{\the\loopcount} + \fontfamily{\namestext@family} + \fontseries{\namestext@series} + \fontshape{\namestext@shape} + \selectfont + \loopcount=1 + \loop + \setbox1=\hbox{\namestext@size\csname newseqname\the\loopcount\endcsname} + \ifnum\wd1>\name@width \name@width=\wd1 \fi + \ifnum\ht1>\box@height + \box@height=1.1\ht1 + \global\setlength\box@height{\line@stretch\box@height} + \baselineskip=\box@height \advance\baselineskip by \box@depth + \fi + \ifnum\dp1>\box@depth + \box@depth=1.1\dp1 + \global\setlength\box@depth{\line@stretch\box@depth} + \baselineskip=\box@height \advance\baselineskip by \box@depth + \fi + \expandafter\getregion@fromstack{\the\loopcount} + \expandafter\getregion@fromtintstack{\the\loopcount} + \expandafter\getregion@fromemphstack{\the\loopcount} + \expandafter\getregion@fromframestack{\the\loopcount} + \xdef\bottop@{top} \expandafter\getregion@fromfstack{\the\loopcount} + \xdef\bottop@{ttop} \expandafter\getregion@fromfstack{\the\loopcount} + \xdef\bottop@{bottom} \expandafter\getregion@fromfstack{\the\loopcount} + \xdef\bottop@{bbottom}\expandafter\getregion@fromfstack{\the\loopcount} + \innerloopcount = \csname seq@len\the\loopcount\endcsname + \advance\innerloopcount by \csname seq@start\the\loopcount\endcsname + \advance\innerloopcount by -1 + \expandafter\xdef\csname seq@len\the\loopcount\endcsname{\the\innerloopcount} + \ifsh@wg@ps + \expandafter\xdef\csname seq@len\the\loopcount\endcsname{99999999} + \fi + \advance\loopcount by 1 + \ifnum\loopcount>\seq@count \else \repeat + \advance\name@width by 1em + \fontfamily{\numbertext@family} + \fontseries{\numbertext@series} + \fontshape{\numbertext@shape} + \selectfont + \setbox1=\hbox{\numbertext@size\num@width} + \number@width=\wd1 + \advance\number@width by 1em + \loopcount=\textwidth + \ifnames@ \advance\loopcount by -\name@width \fi + \ifnumbers@ \advance\loopcount by -\number@width \fi + \divide\loopcount by \box@width + \divide\loopcount by 5 \multiply\loopcount by 5 + \ifrpl@fix\else + \ifnum\res@perline>\loopcount \res@perline=\loopcount\fi\fi + \ifnum\finger@linenum>0 + \width@tmp=\textwidth + \ifnames@ \advance\width@tmp by -\name@width \fi + \ifnumbers@ \advance\width@tmp by -\number@width \fi + \divide\width@tmp by \finger@linenum + \global\setlength\box@width{\width@tmp} + \fi + \center@fill=\textwidth + \ifnames@ \advance\center@fill by -\name@width \fi + \ifnumbers@ \advance\center@fill by -\number@width \fi + \width@tmp=\box@width \multiply\width@tmp by \res@perline + \advance\center@fill by -\width@tmp + \ifx\out@put\y@\leftskip\c@factor\center@fill\fi +} + +\def\multiple@dssp{% + \advance\loopcount by 1 + \include@DSSP + \ifnum\loopcount<\dssp@num\multiple@dssp\fi} + +\def\multiple@stride{% + \advance\loopcount by 1 + \include@stride + \ifnum\loopcount<\stride@num\multiple@stride\fi} + +\def\multiple@PHD{% + \advance\loopcount by 1 + \include@PHD + \ifnum\loopcount<\PHD@num\multiple@PHD\fi} + +\def\multiple@HMMTOP{% + \advance\loopcount by 1 + \include@HMMTOP + \ifnum\loopcount<\HMMTOP@num\multiple@HMMTOP\fi} + +\newenvironment{texshade}[2][&]% + {\standarddefinitions + \c@d@ns + \xdef\first@{#1}\ifx\first@\ampers@nd\else\input{#1}\fi + \readalignfile{#2} + }% + {\ifnum\seq@count>0 + \loopcount=0 + \ifnum\loopcount<\dssp@num \multiple@dssp\fi + \loopcount=0 + \ifnum\loopcount<\stride@num \multiple@stride\fi + \loopcount=0 + \ifnum\loopcount<\PHD@num \multiple@PHD\fi + \loopcount=0 + \ifnum\loopcount<\HMMTOP@num \multiple@HMMTOP\fi + \loopcount=1 \kill@seqnow + \reorder@seqs\seq@order \seq@count=\killseq@count + \ifnum\csname res@count\start@seq\endcsname<0 + \ifnum\start@num>0 + \loopcount=\start@num + \advance\loopcount by -1 + \xdef\start@num{\the\loopcount} + \fi + \fi + \ifnum\rule@num>0 + \loopcount=\csname res@count\rule@num\endcsname + \divide\loopcount by \ruler@step + \multiply\loopcount by \ruler@step + \ifnum\loopcount<0 \else \advance\loopcount by \ruler@step \fi + \xdef\rule@tens{\the\loopcount} + \else + \xdef\rule@tens{\ruler@step} + \fi + \xdef\first@{top} + \ifx\cap@pos\first@ + \xdef\@captype{figure} + \ifx\c@pshort\n@ + \caption{\c@p} + \else + \caption[\c@pshort]{\c@p} + \fi + \fi + \bgroup + \ifx\out@put\y@\bigskip\fi + \iffuncmode \show@consfalse \fi + \ifall@fshade \iffuncmode \else \all@fshadefalse \fi\fi + \ifnum\finger@linenum>0 + \show@consfalse + \hidechartrue + \message{<fingerprinting---please wait>} + \fi + \calc@widths + \read@lines + \save@lengths + \iflegend@ + \vspace{\vspace@legend} + \setbox1=\vbox{\do@legend} + \vbox{\do@legend}\par + \ifnum\ht1<-\vspace@legend + \vspace{-\ht1}\vspace{-\vspace@legend} + \fi + \fi + \egroup + \xdef\first@{bottom} + \ifx\cap@pos\first@ + \vspace{-\baselineskip} + \xdef\@captype{figure} + \ifx\c@pshort\n@ + \caption{\c@p} + \else + \caption[\c@pshort]{\c@p} + \fi + \fi + \fi} + +\def\standarddefinitions{% +\xdef\prfx{pep}\clear@groups\clear@sims +\xdef\prfx{DNA}\clear@groups\clear@sims +\clearfuncgroups +\loopcount=\@lign@count +\advance\loopcount by 1\relax +\xdef\@lign@count{\the\loopcount} +\start@true \xdef\start@num{1} \xdef\start@seq{0} +\stop@false \xdef\end@num{99999999} \xdef\seq@regions{0} +\cons@count=0 \csname res@count0\endcsname=0 +\regionalshadefalse\regionalemphfalse\regionaltintfalse +\frame@false +\topfeaturefalse\bottomfeaturefalse +\ttopfeaturefalse\bbottomfeaturefalse +\all@fshadefalse\hidecharfalse +\xdef\finger@linenum{0} +\xdef\dssp@num{0} \xdef\stride@num{0} \xdef\PHD@num{0} \xdef\HMMTOP@num{0} +\xdef\bottop@{top} \expandafter\xdef\csname feature@\bottop@\endcsname{0} +\xdef\bottop@{ttop} \expandafter\xdef\csname feature@\bottop@\endcsname{0} +\xdef\bottop@{bottom} \expandafter\xdef\csname feature@\bottop@\endcsname{0} +\xdef\bottop@{bbottom}\expandafter\xdef\csname feature@\bottop@\endcsname{0} +\xdef\frame@{0} +\xdef\show@Hdssp{no} \xdef\show@Gdssp{no} \xdef\show@Idssp{no} +\xdef\show@Edssp{no} \xdef\show@Bdssp{no} \xdef\show@Tdssp{no} +\xdef\show@Sdssp{no} +\xdef\show@Hstride{no} \xdef\show@Gstride{no} \xdef\show@Istride{no} +\xdef\show@Estride{no} \xdef\show@Bstride{no} \xdef\show@Tstride{no} +\xdef\show@itop{no} \xdef\show@etop{no} \xdef\show@TMtop{no} +\xdef\show@i@HMMTOP{no} \xdef\show@e@HMMTOP{no} \xdef\show@TM@HMMTOP{no} +\xdef\show@Hsec{no} \xdef\show@Esec{no} +\xdef\collect@restop{no} \xdef\collect@resttop{no} +\xdef\collect@resbottom{no} \xdef\collect@resbbottom{no} +\xdef\tr@nslatetop{} \xdef\tr@nslatettop{} +\xdef\tr@nslatebottom{} \xdef\tr@nslatebbottom{} +\xdef\tr@nsseqtop{0} \xdef\tr@nsseqttop{0} +\xdef\tr@nsseqbottom{0} \xdef\tr@nsseqbbottom{0} +\xdef\triple@counttop{0} \xdef\triple@countttop{0} +\xdef\triple@countbottom{0} \xdef\triple@countbbottom{0} +\xdef\last@@restop{} \xdef\last@@resttop{} +\xdef\last@@resbottom{} \xdef\last@@resbbottom{} +\xdef\out@put{y} \xdef\m@p{no} +\xdef\t@sp@ce{0mm} \xdef\tt@sp@ce{0mm} +\xdef\b@sp@ce{0mm} \xdef\bb@sp@ce{0mm} +\xdef\seq@gap@num{0} +\xdef\h@ndalign{no} \xdef\sep@space{0pt} +\xdef\c@pshort{n} +\xdef\bottom@stretch{n} \xdef\bbottom@stretch{n} +\xdef\c@nscol{} \xdef\c@nssc@le{ColdHot} +\xdef\collect@cons@colors{no} \xdef\cons@now{no} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% %%%%% +%%%%% Default parameter settings for the LaTeX ``TeXshade'' 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 `texshade' en- %%%%% +%%%%% vironment. The file `texshade.def' can be used as a template for %%%%% +%%%%% the new creation. See the manual for further help. %%%%% +%%%%% %%%%% +%%%%% THANK YOU !!! %%%%% +%%%%% %%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\shadingmode{identical} % Shade identical residues only +\shadingcolors{blues} % Select the blue color scheme for shading +\constoallseqs % Calculate consensus considering all seqs +\threshold{50} % Consensus threshold percentage is 50 +\residuesperline{999} % As many residues as possible per line +\numberingwidth{9999} % Assign space for 4 digit numbering +\charstretch{1.15} % Stretch character width 1.15fold +\linestretch{1} % Do not stretch lines +\gapchar{.} % . is printed in sequence gaps +\gaprule{0.3pt} % If a rule is printed in gaps use 0.3 pt +\gapcolors{Black}{White} % Gap symbols appear `Black on White' +\numberingcolor{Black} % Numbering color is `Black' +\shownumbering{left} % Show sequence numbering on the left +\namescolor{Black} % Names' color is `Black' +\shownames{right} % Show sequence names on the right +\consensuscolors{Black}{White} % All consensus symbols/letters + {Black}{White} % appear `Black on White' + {Black}{White} % +\showconsensus{bottom} % Show consensus line at bottom with +\defconsensus{{}}{*}{!} % Blank =no match; * =match; ! =all match +\showleadinggaps % Show gap symbols before sequence start +\rulercolor{Black} % Ruler's color is `Black' +\hideruler % Do not show the ruler +\rulersteps{10} % Ruler ticks every 10 residues +\legendcolor{Black} % Legend text color is `Black' +\hidelegend % Do not show the legend +\alignment{center} % Center alignment on page +\medsepline % Medium height if separation line is on +\medblockskip % Medium skip between sequence blocks +\flexblockspace % Use optimized space between blocks +\featurerule{0.5ex} % Set feature rule thickness to 1/2 ex +\bargraphstretch{1} % Do not stretch bars in feature graphs +\colorscalestretch{1} % Do not stretch color scales in features +\backtranstext{horizontal} % Horizontal triplets in feature texts +\backtranslabel{alternating} % Alternating triplets in feature styles +\setfamily{residues}{tt} % Use typewriter family for residues +\setseries{residues}{md} % Use normal series for residues +\setshape {residues}{up} % Use upright shape for residues +\setsize {residues}{normalsize} % Use normal size for residues +\setfamily{numbering}{tt} % Use typewriter family for numbering +\setseries{numbering}{md} % Use normal series for numbering +\setshape {numbering}{up} % Use upright shape for numbering +\setsize {numbering}{normalsize} % Use normal size for numbering +\setfamily{names}{tt} % Use typewriter family for names +\setseries{names}{md} % Use normal series for names +\setshape {names}{up} % Use upright shape for names +\setsize {names}{normalsize} % Use normal size for names +\setfamily{features}{rm} % Use roman family for feature texts +\setseries{features}{md} % Use normal series for feature texts +\setshape {features}{it} % Use italics shape for feature texts +\setsize {features}{normalsize} % Use normal size for feature texts +\setfamily{featurestyles}{tt} % Use typewriter family for feature styles +\setseries{featurestyles}{md} % Use normal series for feature styles +\setshape {featurestyles}{up} % Use upright shape for feature styles +\setsize {featurestyles}{normalsize}% Use normal size for feature styles +\setfamily{legend}{tt} % Use typewriter family 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 size for legend texts +\tintdefault{medium} % Use medium tint intensity +\emphdefault{it} % Use italics to emphasize regions +\showonPHDsec{alpha,beta} % Show helices and strands (PHD input) +\showonPHDtopo{internal,external,TM}% Show int., ext. and TM's (PHD input) +\showonHMMTOP{TM} % Show TM's (not int/ext on HMMTOP input) +\showonSTRIDE{alpha,3-10,pi,beta} % Show helices and strands (STRIDE input) +\showonDSSP{alpha,3-10,pi,beta} % Show helices and strands (DSSP input) +\secondcolumnDSSP % Use numbering from 2. column in DSSP +\appearance{PHDtopo}{internal} % \ + {bottom}{'-'} % \ + {int.\ \Alphacount} % | +\appearance{PHDtopo}{external} % | + {top}{,-,} % | + {ext.\ \Alphacount} % | +\appearance{PHDtopo}{TM}{top} % | + {box[LightGray]:TM\numcount}{} % | +\appearance{HMMTOP}{internal} % | + {bottom}{'-'} % | + {int.\ \Alphacount} % | +\appearance{HMMTOP}{external} % | + {top}{,-,} % | + {ext.\ \Alphacount} % | +\appearance{HMMTOP}{TM}{top} % | + {helix}{TM\numcount} % | +\appearance{PHDsec}{alpha}{top} % | + {box:$\alpha$\numcount}{} % | +\appearance{PHDsec}{beta}{top} % | + {-->}{$\beta$\numcount} % | +\appearance{STRIDE}{alpha}{top} % | + {box:$\alpha$\numcount}{} % | Definitions for the appearance of +\appearance{STRIDE}{3-10}{top} % \ + {fill:$\circ$}{3$_{10}$} % > secondary structures included from| +\appearance{STRIDE}{pi} % / + {top}{---}{$\pi$} % | PHD-, STRIDE-, or DSSP-files. +\appearance{STRIDE}{beta}{top} % | + {-->}{$\beta$\numcount} % | +\appearance{STRIDE}{bridge} % | + {top}{fill:$\uparrow$}{} % | +\appearance{STRIDE}{turn} % | + {top}{,-,}{turn} % | +\appearance{DSSP}{alpha}{top} % | + {box:$\alpha$\numcount}{} % | +\appearance{DSSP}{3-10}{top} % | + {fill:$\circ$}{3$_{10}$} % | +\appearance{DSSP}{pi} % | + {top}{---}{$\pi$} % | +\appearance{DSSP}{beta}{top} % | + {-->}{$\beta$\numcount} % | +\appearance{DSSP}{bridge} % | + {top}{fill:$\uparrow$}{} % | +\appearance{DSSP}{turn} % | + {top}{,-,}{turn} % | +\appearance{DSSP}{bend}{top} % / + {fill:$\diamond$}{} % / + +\pepgroups{FYW,ILVM,RK,DE,GA,ST,NQ} % Amino acid grouping due to similarity + +\pepsims{F}{YW} % Y and W are similar to F +\pepsims{Y}{WF} % W and F are similar to Y +\pepsims{W}{YF} % Y and F are similar to W + +\pepsims{I}{LVM} % L, V and M are similar to I +\pepsims{L}{VMI} % V, M and I are similar to L +\pepsims{V}{MIL} % M, I and L are similar to V + +\pepsims{R}{KH} % K and H are similar to R +\pepsims{K}{HR} % H and R are similar to K +\pepsims{H}{RK} % R and K are similar to H + +\pepsims{A}{GS} % G and S are similar to A +\pepsims{G}{A} % A (but not S) is similar to G + +\pepsims{S}{TA} % T and A are similar to S +\pepsims{T}{S} % S (but not A) is similar to T + +\pepsims{D}{EN} % E and N (but not Q) are similar to D +\pepsims{E}{DQ} % D and Q (but not N) are similar to E +\pepsims{N}{QD} % Q and D (but not E) are similar to N +\pepsims{Q}{NE} % N and E (but not D) are similar to Q + +\DNAgroups{GAR,CTY} % Nucleotide grouping due to similarity + +\DNAsims{A}{GR} % G and R are similar to A +\DNAsims{G}{AR} % A and R are similar to G +\DNAsims{R}{AG} % A and G are similar to R + +\DNAsims{C}{TY} % T and Y are similar to C +\DNAsims{T}{CY} % C and Y are similar to T +\DNAsims{Y}{CT} % C and T are similar to Y + +} +\catcode`\@=12 +%</texshade> +% \end{macrocode} +% \subsection{\file{texshade.def}} +% \begin{macrocode} +%<*definitions> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% %%%%% +%%%%% Default parameter settings for the LaTeX ``TeXshade'' package %%%%% +%%%%% %%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% %%%%% +%%%%% This example file contains all standard settings of the TeXshade %%%%% +%%%%% package. It can be used as a template for the creation of perso- %%%%% +%%%%% nal parameter files. All TeXshade user commands are allowed and %%%%% +%%%%% functional when specified here. %%%%% +%%%%% %%%%% +%%%%% To activate these settings for your alignment load this file by %%%%% +%%%%% naming it as optional parameter at the beginning of the texshade %%%%% +%%%%% environment, e.g. %%%%% +%%%%% %%%%% +%%%%% \begin{texshade}[myparameterfile]{alignmentfile} %%%%% +%%%%% . %%%%% +%%%%% . %%%%% +%%%%% \end{texshade} %%%%% +%%%%% %%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\shadingmode{identical} % Shade identical residues only +\shadingcolors{blues} % Select the blue color scheme for shading +\constoallseqs % Calculate consensus considering all seqs +\threshold{50} % Consensus threshold percentage is 50 +\residuesperline{999} % As many residues as possible per line +\numberingwidth{9999} % Assign space for 4 digit numbering +\charstretch{1.15} % Stretch character width 1.15fold +\linestretch{1} % Do not stretch lines +\gapchar{.} % . is printed in sequence gaps +\gaprule{0.3pt} % If a rule is printed in gaps use 0.3 pt +\gapcolors{Black}{White} % Gap symbols appear `Black on White' +\numberingcolor{Black} % Numbering color is `Black' +\shownumbering{left} % Show sequence numbering on the left +\namescolor{Black} % Names' color is `Black' +\shownames{right} % Show sequence names on the right +\consensuscolors{Black}{White} % All consensus symbols/letters + {Black}{White} % appear `Black on White' + {Black}{White} % +\showconsensus{bottom} % Show consensus line at bottom with +\defconsensus{{}}{*}{!} % Blank =no match; * =match; ! =all match +\rulercolor{Black} % Ruler's color is `Black' +\hideruler % Do not show the ruler +\showleadinggaps % Show gap symbols before sequence start +\rulersteps{10} % Ruler ticks every 10 residues +\legendcolor{Black} % Legend text color is `Black' +\hidelegend % Do not show the legend +\alignment{center} % Center alignment on page +\medsepline % Medium height if separation line is on +\medblockskip % Medium skip between sequence blocks +\flexblockspace % Use optimized space between blocks +\featurerule{0.5ex} % Set feature rule thickness to 1/5 ex +\bargraphstretch{1} % Do not stretch bars in feature graphs +\colorscalestretch{1} % Do not stretch color scales in features +\backtranstext{horizontal} % Horizontal triplets in feature texts +\backtranslabel{alternating} % Alternating triplets in feature styles +\setfamily{residues}{tt} % Use typewriter family for residues +\setseries{residues}{md} % Use normal series for residues +\setshape {residues}{up} % Use upright shape for residues +\setsize {residues}{normalsize} % Use normal size for residues +\setfamily{numbering}{tt} % Use typewriter family for numbering +\setseries{numbering}{md} % Use normal series for numbering +\setshape {numbering}{up} % Use upright shape for numbering +\setsize {numbering}{normalsize} % Use normal size for numbering +\setfamily{names}{tt} % Use typewriter family for names +\setseries{names}{md} % Use normal series for names +\setshape {names}{up} % Use upright shape for names +\setsize {names}{normalsize} % Use normal size for names +\setfamily{features}{rm} % Use roman family for feature texts +\setseries{features}{md} % Use normal series for feature texts +\setshape {features}{it} % Use italics shape for feature texts +\setsize {features}{normalsize} % Use normal size for feature texts +\setfamily{legend}{tt} % Use typewriter family 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 size for legend texts +\tintdefault{medium} % Use medium tint intensity +\emphdefault{it} % Use italics to emphasize regions +\showonPHDsec{alpha,beta} % Show helices and strands (PHD input) +\showonPHDtopo{internal,external,TM}% Show int., ext. and TM's (PHD input) +\showonHMMTOP{TM} % Show TM's (not int/ext on HMMTOP input) +\showonSTRIDE{alpha,3-10,pi,beta} % Show helices and strands (STRIDE input) +\showonDSSP{alpha,3-10,pi,beta} % Show helices and strands (DSSP input) +\secondcolumnDSSP % Use numbering from 2. column in DSSP +\appearance{PHDtopo}{internal} % \ + {bottom}{'-'} % \ + {int.\ \Alphacount} % | +\appearance{PHDtopo}{external} % | + {top}{,-,} % | + {ext.\ \Alphacount} % | +\appearance{PHDtopo}{TM}{top} % | + {box[LightGray]:TM\numcount}{} % | +\appearance{HMMTOP}{internal} % | + {bottom}{---} % | + {int.\ \Alphacount} % | +\appearance{HMMTOP}{external} % | + {top}{---} % | + {ext.\ \Alphacount} % | +\appearance{HMMTOP}{TM}{top} % | + {helix}{TM\numcount} % | +\appearance{PHDsec}{alpha}{top} % | + {box:$\alpha$\numcount}{} % | +\appearance{PHDsec}{beta}{top} % | + {-->}{$\beta$\numcount} % | +\appearance{STRIDE}{alpha}{top} % | + {box:$\alpha$\numcount}{} % | Definitions for the appearance of +\appearance{STRIDE}{3-10}{top} % \ + {fill:$\circ$}{3$_{10}$} % > secondary structures included from| +\appearance{STRIDE}{pi} % / + {top}{---}{$\pi$} % | PHD-, STRIDE-, or DSSP-files. +\appearance{STRIDE}{beta}{top} % | + {-->}{$\beta$\numcount} % | +\appearance{STRIDE}{bridge} % | + {top}{fill:$\uparrow$}{} % | +\appearance{STRIDE}{turn} % | + {top}{,-,}{turn} % | +\appearance{DSSP}{alpha}{top} % | + {box:$\alpha$\numcount}{} % | +\appearance{DSSP}{3-10}{top} % | + {fill:$\circ$}{3$_{10}$} % | +\appearance{DSSP}{pi} % | + {top}{---}{$\pi$} % | +\appearance{DSSP}{beta}{top} % | + {-->}{$\beta$\numcount} % | +\appearance{DSSP}{bridge} % | + {top}{fill:$\uparrow$}{} % | +\appearance{DSSP}{turn} % | + {top}{,-,}{turn} % | +\appearance{DSSP}{bend}{top} % / + {fill:$\diamond$}{} % / + + +\pepgroups{FYW,ILVM,RK,DE,GA,ST,NQ} % Amino acid grouping due to similarity + +\pepsims{F}{YW} % Y and W are similar to F +\pepsims{Y}{WF} % W and F are similar to Y +\pepsims{W}{YF} % Y and F are similar to W + +\pepsims{I}{LVM} % L, V and M are similar to I +\pepsims{L}{VMI} % V, M and I are similar to L +\pepsims{V}{MIL} % M, I and L are similar to V + +\pepsims{R}{KH} % K and H are similar to R +\pepsims{K}{HR} % H and R are similar to K +\pepsims{H}{RK} % R and K are similar to H + +\pepsims{A}{GS} % G and S are similar to A +\pepsims{G}{A} % A (but not S) is similar to G + +\pepsims{S}{TA} % T and A are similar to S +\pepsims{T}{S} % S (but not A) is similar to T + +\pepsims{D}{EN} % E and N (but not Q) are similar to D +\pepsims{E}{DQ} % D and Q (but not N) are similar to E +\pepsims{N}{QD} % Q and D (but not E) are similar to N +\pepsims{Q}{NE} % N and E (but not D) are similar to Q + + +\DNAgroups{GAR,CTY} % Nucleotide grouping due to similarity + +\DNAsims{A}{GR} % G and R are similar to A +\DNAsims{G}{AR} % A and R are similar to G +\DNAsims{R}{AG} % A and G are similar to R + +\DNAsims{C}{TY} % T and Y are similar to C +\DNAsims{T}{CY} % C and Y are similar to T +\DNAsims{Y}{CT} % C and T are similar to Y +%</definitions> +% \end{macrocode} +% \begin{macrocode} +%<*AQPDNA> +AQPDNA.MSF MSF: 979 Type: N Freitag, 12. Februar 1999 Check: 2594 .. +Name: AQP1nuc.SEQ Len: 807 Check: 8330 Weight: 1.00 +Name: AQP2nuc.SEQ Len: 813 Check: 7220 Weight: 1.00 +Name: AQP3nuc.SEQ Len: 855 Check: 7590 Weight: 1.00 +Name: AQP4nuc.SEQ Len: 960 Check: 8696 Weight: 1.00 +Name: AQP5nuc.SEQ Len: 795 Check: 758 Weight: 1.00 +// + 1 60 +AQP1nuc.SEQ ATGGCCAGCGAAATCAAGAAGAAGC.................TCTTCT........GGAG +AQP2nuc.SEQ ATGTG....GGAACTCAG.........................ATCCAT........... +AQP3nuc.SEQ ATG........AACC........GTTGCGGGG.AGATG.....CTCC............. +AQP4nuc.SEQ ATGAGTGACGGAGCTGCAGCGAGGCGGTGGGGTAAGTGTGGACCTCCCTGCAGCAGAGAG +AQP5nuc.SEQ ATGAAAAA.GGAGGTGTG.........................CTCCCT........... + + 61 120 +AQP1nuc.SEQ GGC..TGTGGTGGCT.....GAGTTCCTGGCCATGA.CCCTCTTCG.............. +AQP2nuc.SEQ ...................................AGCCTTCTCCCGAGCAGTGCTGGCT +AQP3nuc.SEQ .ACATCC.....GCTACCGG......CTG.........CTTCGCCA....GGCTCTGGCG +AQP4nuc.SEQ AGCATCATGGTGGCTTTCAAAGGCGTCTGGACTCAAGCCTTCTGGAAGGCGGTCACAGCA +AQP5nuc.SEQ ...................................TGCCTTCTTCAAGGCGGTGTTCGCA + + 121 180 +AQP1nuc.SEQ ....TCTTCATCAGCATCGGTTCTGCCCTA...GGCTT.....CAATTACCCACTGGAGA +AQP2nuc.SEQ GAGTTCTTGGCCACGCTCCTTTTTGTCTTCTTTGGCCTTGGCTCAGCCCTCCA.....GT +AQP3nuc.SEQ GAGTGCCTGGGGACCCTCATCCTTGTGATGTTCGGCTGTGGTTCCGTGGCTCAA.GTGGT +AQP4nuc.SEQ GAGTTCCTGGCCATGCTCATCTTTGTTCTGCTCAGCGTGGGATCCACCATTAACTGGGGT +AQP5nuc.SEQ GAGTTCCTGGCCACCCTCATCTTCGTCTTCTTTGGCCTGGGCTCAGCACTCAA.....GT + + 181 240 +AQP1nuc.SEQ GA...AACCAGACGCTGGTCCA.GGACAATGTGAAGGTGTCACTGGCCTTTGGTCTGAGC +AQP2nuc.SEQ GGGCCAGCT....CCCCACCCTC...TGTGCTCCAGATCGCCGTGGCCTTTGGTCTGGGC +AQP3nuc.SEQ GCTCAGCCGAGGGACCCATG.GTGG.CTTCCTCACCATCAACTTGGCTTTTGGCTTCGCT +AQP4nuc.SEQ GGCTCAGAGAACCCCCTACCTGTGGACATGGTCCTCATCTCCCTCTGCTTTGGACTCAGC +AQP5nuc.SEQ GGCCCTCGG....CTCTGCCCAC...CATTCTGCAAATCTCAATTGCCTTTGGCCTGGCC + + 241 300 +AQP1nuc.SEQ ATCGCTACTCTGGCCCAAAGTGTGGGTCACATCAGTGGTGCTCACTCCAACCCAGCGGTC +AQP2nuc.SEQ ATCGGCATCCTGGTTCAGGCTCTGGGCCATGTCAGCGGGGCACACATCAACCCCGCCGTG +AQP3nuc.SEQ GTCACCCTTGCCATCTTGGTGGCTGGCCAAGTGTCTGGAGCCCACTTGAACCCTGCTGTG +AQP4nuc.SEQ ATTGCCACCATGGTTCAGTGCTTCGGCCACATCAGCGGTGGCCACATCAACCCAGCGGTG +AQP5nuc.SEQ ATAGGTACCTTAGCCCAAGCTCTGGGACCTGTGAGTGGTGGCCACATCAATCCAGCCATT + + 301 360 +AQP1nuc.SEQ ACACTGGGGCTTCTGCTCAGCTGTCAGATCAGCATCCTCCGGGCTGTCA.TGTATATCAT +AQP2nuc.SEQ ACTGTGGCATGCCTGGTGGGTTGCCATGTCTCCTTCCTTCGAGCTGCCT.TCTATGTGGC +AQP3nuc.SEQ ACCTTTGCAATG.TGCTTCCTGGCACGAGAGCCCTGGATCAAGCTGCCCATCTACACACT +AQP4nuc.SEQ ACAGTGGCCATGGTGTGCACACGAAAGATCAGCATCGCCAAGTCTGTCT.TCTACATCAC +AQP5nuc.SEQ ACTCTGGCCCTCTTAATAGGAAACCAGATCTCGCTGCTCCGAGCTGTCT.TCTACGTGGC + + 361 420 +AQP1nuc.SEQ CGCCCAGTGTGTGGGAGCCATCGTTGCCTCCGCCATCCTCTCCGGCATCACCTCCTCCCT +AQP2nuc.SEQ TGCCCAGCTGCTGGGCGCCGTGGCTGGGGCTGCCATCCTCCATGAGATTAC.TCCAGTAG +AQP3nuc.SEQ GGCACAGACCCTCGGGGCCTTCTTGGGTGCTGGGATTGTTTTTGGGCT..CTACTA..TG +AQP4nuc.SEQ TGCGCAGTGCCTGGGGGCCATCATCGGAGCTGGGATCCTCTACCTGGTCAC.ACCCCCCA +AQP5nuc.SEQ AGCCCAGCTGGTGGGCGCCATTGCTGGGGCAGGCATCCTGTACTGGCTGGC.GCCACTCA + + 421 480 +AQP1nuc.SEQ GCTCGAGAACTCACTTGGCCGA.AATGACCTGGCTCGAGGTGTGAACTCCGGCCAGGGCC +AQP2nuc.SEQ AAATCCGTGGGGACCTGGCTGTCAATGCTCTCCACAACAACGCCACAGCTGGCCAGGCTG +AQP3nuc.SEQ ATGCAATCTGGGCCTTTGCTGGCAATGAGCT.........TGTTGTCTCCGGCC.....C +AQP4nuc.SEQ GCGTGGTGGGAGGATTGGGAGTCACCACGGTTCATGGAAACCTCACTGCTGGCCATGGGC +AQP5nuc.SEQ ATGCCCGGGGTAACCTGGCCGTCAATGCGCTGAACAACAACACAACGCCTGGCAAGGCCA + + 481 540 +AQP1nuc.SEQ TGGGCATTGAGATCATTGGCACCCTGCAGCTGGTGCTGTGCGT.TCTGGCTACCACTGAC +AQP2nuc.SEQ TGACTGTAGAGCTCTTCCTGACCATGCAGCTGGTGCTGTGCAT.CTTTGCCTCCACCGAC +AQP3nuc.SEQ CAATGGCACAGCTGGTATC..TTTGCCACCTATCCCTCTGGACACTTGGATATGGTCAAT +AQP4nuc.SEQ TCCTGGTGGAGCTAATAATCACTTTCCAGCTGGTATTCACCAT.TTTTGCCAGCTGTGAT +AQP5nuc.SEQ TGGTGGTGGAGTTAATCTTGACTTTCCAGCTAGCCCTCTGCAT.CTTCTCCTCCACCGAC + + 541 600 +AQP1nuc.SEQ CGGAGGCGCCGAGACTTAGGTGGCTCAGCCCCACTTGCCATTGGCTTGTCTGTGGCTCTT +AQP2nuc.SEQ GAGCGCCGCGGTGACAACCTGGGTAGCCCTGCCCTCTCCATTGGTTTCTCTGTTACCCTG +AQP3nuc.SEQ GGCTTCTTTGATCAGTTCATAGGCACAGCAGCCCTTATTGTGTGTGTGCTGGCCATTGTT +AQP4nuc.SEQ TCCAAACGGACTGATGTTACTGGTTCCGTTGCTTTAGCAATTGGGTTTTCCGTTGCAATT +AQP5nuc.SEQ TCTCGCCGAACCAGCCCTGTGGGCTCCCCAGCCTTATCCATTGGCTTGTCTGTCACACTG + + 601 660 +AQP1nuc.SEQ GGACACCTGCTGGCCATTGACTACACTGGCTGTGGGATCAACCCTGCCCGGTCATT.TGG +AQP2nuc.SEQ GGCCACCTCCTTGGGATCTATTTCACCGGTTGCTCCATGAATCCAGCCCGCTCCCT.GGC +AQP3nuc.SEQ GACC..CTTATAACAACCCTGTGCCCCGGGGCCTGGAGGCCTTCACTGTGGGCCTTGTGG +AQP4nuc.SEQ GGACATTTGTTTGCAATCAATTATACCGGAGCCAGCATGAATCCAGCTCGATCCTT.TGG +AQP5nuc.SEQ GGCCATCTTGTGGGGATCTACTTCACCGGCTGTTCCATGAACCCAGCCCGATCTTT.CGG + + 661 720 +AQP1nuc.SEQ CTCTGCTGTGCTCACCCGCAACTTCTCAAAC...CACTGGATTTTCTGGGTGGGACCATT +AQP2nuc.SEQ TCCAGCAGTTGTCACTGGCAAGTTTGATGA...TCACTGGGTCTTCTGGATCGGACCCCT +AQP3nuc.SEQ TCCTG.....GTCATTGGGACCTCCATGGGCTTCAATTCTGGCTATGCCGTCAACCCAGC +AQP4nuc.SEQ CCCTGCAGTTATCATGGGAAACTGGGAAAAC...CACTGGATATATTGGGTTGGACCAAT +AQP5nuc.SEQ CCCTGCGGTGGTCATGAACCGGTTCAGCCCCTCTCACTGGGTCTTCTGGGTAGGGCCTAT + + 721 780 +AQP1nuc.SEQ CATTGGGAGTGCCCTGGCAGTGCTGATCTATGACTTCATC..CTGGCCCCACGC..AGC. +AQP2nuc.SEQ GGTGGGCGCCATCATCGGCTCCCTCCTCTACAACTAC..CTGCTGTTC..........CC +AQP3nuc.SEQ T.....CGTGACTTTGG..ACCTCGCCTTTTCACTGCCCTGGCTGGC......TGGGGTT +AQP4nuc.SEQ CATAGGCGCTGTGCTGGCAGGTGCACTTTACGAGTATGTCTTCTGTCCTGACGTGGAGCT +AQP5nuc.SEQ TGTGGGGGCCATGCTGGCGGCCATCCTCTATTTCTAC..CTGCTCTTC..........CC + + 781 840 +AQP1nuc.SEQ ..AGCG.........................ACTTTACAG.............ACCGCAT +AQP2nuc.SEQ C.....TCGGCAAAG...AGCCTGCAGGAGCGCTTGGCAGTGCTCAAGGG.......CCT +AQP3nuc.SEQ CAGAAGTC.TTTACGACTGGCC...AGAACTGGTGGTGGGTACCCATCGTCTCTCCACTC +AQP4nuc.SEQ CAAACGTCGCCTAAAGGAAGCCTTCAGCAAAGCTGCACAGCAGACGAAAGGGAGCTACAT +AQP5nuc.SEQ C.....TCCTCTCTG...AGCCTCCATGATCGCGTGGCTGTCGTCAAAGG.......CAC + + 841 900 +AQP1nuc.SEQ GAAGGTGTGGACCAGT...GGCCAAGTGGA.....GGAGTATGACCTGGATGC....... +AQP2nuc.SEQ GGAGCCCGACACCGACTGGGA.......GGAACGTGAAGTGCGG..CGGCGGCAGTCGGT +AQP3nuc.SEQ CTGGGTTC.CATTGGTGGTGTCTTCGTGT.ACCAGCT..CATGAT.TGGCTGCCACC..T +AQP4nuc.SEQ GGAGGTGGAGGACAACCGGAGCCAAGTGGAGACAGAAGACTTGATCCTGAAGCCCGGGGT +AQP5nuc.SEQ ATA...TGA.GCCGG..AGGA.......GGACTGGGAAGATCAT..CGAGAGGAGAGGAA + + 901 960 +AQP1nuc.SEQ ........TGAT.GATATCAACTCCAGGGTGGAGATGAAG.................... +AQP2nuc.SEQ GGAGC......TC..CACTCTCCTCAGAG...................CCTGCCTCGCG. +AQP3nuc.SEQ GGAGCA.GCCCCCGCCTTCCACT..GAGGCAGAGAATGTGAAGCTGG.CCCACATGAAGC +AQP4nuc.SEQ GGTGCATGTGATCGACATTGACCGTGGAGACGAGAAGAAGGGGAAGGACTCGTCTGGAGA +AQP5nuc.SEQ GAAG............ACCATC....GAG........................CTGACG. + + 961 979 +AQP1nuc.SEQ ..........CCCAAATAG +AQP2nuc.SEQ .GCAGCAAGGCCTG....A +AQP3nuc.SEQ ACAAGGA..GCAGATCTGA +AQP4nuc.SEQ GGTATTATCTTCTGTATGA +AQP5nuc.SEQ .GCA.CA....CTG....A + +%</AQPDNA> +% \end{macrocode} +% \begin{macrocode} +%<*AQPpro> +AQPpro.MSF MSF: 356 Type: P Freitag, 12. Februar 1999 Check: 2586 .. +Name: AQP1.PRO Len: 269 Check: 5367 Weight: 1.00 +Name: AQP2.PRO Len: 271 Check: 6176 Weight: 1.00 +Name: AQP3.PRO Len: 285 Check: 2893 Weight: 1.00 +Name: AQP4.PRO Len: 323 Check: 9737 Weight: 1.00 +Name: AQP5.PRO Len: 265 Check: 8413 Weight: 1.00 +// + 1 60 +AQP1.PRO MAS........................EIKKKLFWRAVVAEFLAMTLFVFISIGSALGFN +AQP2.PRO MW.........................ELRSIAFSRAVLAEFLATLLFVFFGLGSALQWA +AQP3.PRO M.........NRCG.....EMLHIRYR......LLRQALAECLGTLILVMFGCGSVAQVV +AQP4.PRO MSDGAAARRWGKCGPPCSRESIMVAFKGVWTQAFWKAVTAEFLAMLIFVLLSVGSTINWG +AQP5.PRO MK........................KEVCSLAFFKAVFAEFLATLIFVFFGLGSALKWP + + 61 120 +AQP1.PRO YPLERNQTLVQDNVKVSLAFGLSIATLAQSVGHISGAHSNPAVTLGLLLSCQISILRAVM +AQP2.PRO ...SS....PPSVLQIAVAFGLGIGILVQALGHVSGAHINPAVTVACLVGCHVSFLRAAF +AQP3.PRO LSRGTHGGF....LTINLAFGFAVTLAILVAGQVSGAHLNPAVTFAMCFLAREPWIKLPI +AQP4.PRO ...GSENPLPVDMVLISLCFGLSIATMVQCFGHISGGHINPAVTVAMVCTRKISIAKSVF +AQP5.PRO ...SA....LPTILQISIAFGLAIGTLAQALGPVSGGHINPAITLALLIGNQISLLRAVF + + 121 180 +AQP1.PRO YIIAQCVGAIVASAILSGI..........TSSLLENSLGRNDLARGVNSGQ.....GLGI +AQP2.PRO YVAAQLLGAVAGAAILHEI..........TPVEIRGDLAVNALHNNATAGQ.....AVTV +AQP3.PRO YTLAQTLGAFLGAGIVFGLYYDAIWAFAGNELVVSGPNGTAGIFATYPSGHLDMVNGFFD +AQP4.PRO YITAQCLGAIIGAGILYLV..........TPPSVVGGLGVTTVHGNLTAGH.....GLLV +AQP5.PRO YVAAQLVGAIAGAGILYWL..........APLNARGNLAVNALNNNTTPGK.....AMVV + + 181 240 +AQP1.PRO EIIGTLQLVLCVLATTDR.RRRDLGGSAPLAIGLSV.ALGHLLAIDYTGCGINPARSFGS +AQP2.PRO ELFLTMQLVLCIFASTDE.RRGDNLGSPALSIGFSV.TLGHLLGIYFTGCSMNPARSLAP +AQP3.PRO QFIGTAALIVCVLAIVDPYNNPVPRGLEAFTVGLVVLVIGTSMGFN.SGYAVNPARDFGP +AQP4.PRO ELIITFQLVFTIFASCDS.KRTDVTGSVALAIGFSV.AIGHLFAINYTGASMNPARSFGP +AQP5.PRO ELILTFQLALCIFSSTDS.RRTSPVGSPALSIGLSV.TLGHLVGIYFTGCSMNPARSFGP + + 241 300 +AQP1.PRO AVLTR..NFS.N......HWIFWVGPFIGSALAVL..IYDFILAPRSSDFTDRMK..... +AQP2.PRO AVVTG..KFD.D......HWVFWIGPLVGAIIGSL..LYNYLLFPSAKSLQERL..AVLK +AQP3.PRO RLFTALAGWGSEVFTTGQNW..WWVPIVSPLLGSIGGVFVYQL................. +AQP4.PRO AVIMG..NWE.N......HWIYWVGPIIGAVLAGA..LYEYV.FCPDVELKRRLKEAFSK +AQP5.PRO AVVMN..RFSPS......HWVFWVGPIVGAMLAAI..LYFYLLFPSSLSLHDRV..AVVK + + 301 356 +AQP1.PRO .......VWTS.....GQVEEYDLDAD.......DINSRVEMKPK........... +AQP2.PRO G.LEPDTDWEEREVRRRQ..SVELHSPQSLPRG...................SKA. +AQP3.PRO ..................MIGCHLEQPPPSTEAENV.KLAHMKHKE.......QI. +AQP4.PRO AAQQTKGSYMEVEDNRSQVETEDLILKPGVVHVIDIDRGDEKKGKDSSGEVLSSV. +AQP5.PRO GTYEPEEDWEDHREERKK..TIELTAH............................. + +%</AQPpro> +% \end{macrocode} +% \begin{macrocode} +%<*AQP2spec> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% %%%%% +%%%%% 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 + +%</AQP2spec> +% \end{macrocode} +% \begin{macrocode} +%<*AQP1topo> +\feature{bottom}{1}{1..14}{'-'}{int.\ A} +\feature{top}{1}{15..32}{box[LightGray]:TM1}{} +\feature{top}{1}{33..49}{,-,}{ext.\ B} +\feature{top}{1}{50..68}{box[LightGray]:TM2}{} +\feature{bottom}{1}{69..81}{'-'}{int.\ C} +\feature{top}{1}{82..106}{box[LightGray]:TM3}{} +\feature{top}{1}{107..136}{,-,}{ext.\ D} +\feature{top}{1}{137..154}{box[LightGray]:TM4}{} +\feature{bottom}{1}{155..168}{'-'}{int.\ E} +\feature{top}{1}{169..186}{box[LightGray]:TM5}{} +\feature{top}{1}{187..211}{,-,}{ext.\ F} +\feature{top}{1}{212..230}{box[LightGray]:TM6}{} +\feature{bottom}{1}{231..269}{'-'}{int.\ G} +%</AQP1topo> +% \end{macrocode} +% \begin{macrocode} +%<*AQP1PHD> + +From phd@EMBL-Heidelberg.de Wed Nov 25 10:24:25 1998 +Date: Tue, 24 Nov 1998 17:45:25 +0100 +From: Protein Prediction <phd@EMBL-Heidelberg.de> +To: eric.beitz@uni-tuebingen.de +Subject: PredictProtein + + + + +The following information has been received by the server: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +________________________________________________________________________________ + +reference predict_h25873 (Tue Nov 24 17:43:21 MET 1998) +from eric.beitz@uni-tuebingen.de +password(###) +resp MAIL +orig HTML +prediction of: -secondary structure (PHDsec)-solvent accessibility (PHDacc)- +return msf format +# no description +MASEIKKKLFWRAVVAEFLAMTLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSIATLAQSVGHISGAHSNPAVT +LGLLLSCQISILRAVMYIIAQCVGAIVASAILSGITSSLLENSLGRNDLARGVNSGQGLGIEIIGTLQLVLCVLATTDRR +RRDLGGSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSAVLTRNFSNHWIFWVGPFIGSALAVLIYDFILAPRSSDFTD +RMKVWTSGQVEEYDLDADDINSRVEMKPK + +________________________________________________________________________________ + + + + + +Result of PROSITE search (Amos Bairoch): +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +please quote: A Bairoch, P Bucher & K Hofmann: The PROSITE database, +its status in 1997. Nucl. Acids Res., 1997, 25, 217-221. + +________________________________________________________________________________ + + +-------------------------------------------------------- + +-------------------------------------------------------- + +Pattern-ID: ASN_GLYCOSYLATION PS00001 PDOC00001 +Pattern-DE: N-glycosylation site +Pattern: N[^P][ST][^P] + 42 NQTL + 250 NFSN + +Pattern-ID: GLYCOSAMINOGLYCAN PS00002 PDOC00002 +Pattern-DE: Glycosaminoglycan attachment site +Pattern: SG.G + 135 SGQG + +Pattern-ID: PKC_PHOSPHO_SITE PS00005 PDOC00005 +Pattern-DE: Protein kinase C phosphorylation site +Pattern: [ST].[RK] + 157 TDR + 398 TDR + +Pattern-ID: CK2_PHOSPHO_SITE PS00006 PDOC00006 +Pattern-DE: Casein kinase II phosphorylation site +Pattern: [ST].{2}[DE] + 118 SLLE + 383 SRVE + +Pattern-ID: MYRISTYL PS00008 PDOC00008 +Pattern-DE: N-myristoylation site +Pattern: G[^EDRKHPFYW].{2}[STAGCN][^P] + 30 GSALGF + 92 GLSIAT + 179 GLLLSC + 288 GAIVAS + 407 GITSSL + 544 GVNSGQ + 722 GLSVAL + 917 GINPAR + 1141 GSALAV + +Pattern-ID: PROKAR_LIPOPROTEIN PS00013 PDOC00013 +Pattern-DE: Prokaryotic membrane lipoprotein lipid attachment site +Pattern: [^DERK]{6}[LIVMFWSTAG]{2}[LIVMFYSTAGCQ][AGS]C + 77 PAVTLGLLLSC + +Pattern-ID: MIP PS00221 PDOC00193 +Pattern-DE: MIP family signature +Pattern: [HNQA].NP[STA][LIVMF][ST][LIVMF][GSTAFY] + 74 HSNPAVTLG + + + + +________________________________________________________________________________ + + + + + +Result of ProDom domain search (Corpet, Gouzy, Kahn): +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- please quote: ELL Sonnhammer & D Kahn, Prot. Sci., 1994, 3, 482-492 + +________________________________________________________________________________ + + +--- ------------------------------------------------------------ +--- Results from running BLAST against PRODOM domains +--- +--- PLEASE quote: +--- F Corpet, J Gouzy, D Kahn (1998). The ProDom database +--- of protein domain families. Nucleic Ac Res 26:323-326. +--- +--- BEGIN of BLASTP output +BLASTP 1.4.7 [16-Oct-94] [Build 17:06:52 Oct 31 1994] + +Reference: Altschul, Stephen F., Warren Gish, Webb Miller, Eugene W. Myers, +and David J. Lipman (1990). Basic local alignment search tool. J. Mol. Biol. +215:403-10. + +Query= prot (#) ppOld, no description /home/phd/server/work/predict_h25873 + (269 letters) + +Database: /home/phd/ut/prodom/prodom_34_2 + 53,597 sequences; 6,740,067 total letters. +Searching..................................................done + + Smallest + Sum + High Probability +Sequences producing High-scoring Segment Pairs: Score P(N) N + + 390 p34.2 (45) MIP(6) AQP1(4) GLPF(4) // PROTEIN INTRIN... 270 2.0e-32 1 + 45663 p34.2 (1) AQPZ_ECOLI // AQUAPORIN Z. 90 3.2e-13 2 + 45611 p34.2 (1) AQP2_HUMAN // AQUAPORIN-CD (AQP-CD) (WAT... 136 6.0e-13 1 + 304 p34.2 (61) AQP2(10) GLPF(6) MIP(5) // PROTEIN CHANN... 121 9.2e-11 1 + 45607 p34.2 (1) PMIP_NICAL // POLLEN-SPECIFIC MEMBRANE I... 80 1.2e-07 2 + 45606 p34.2 (1) BIB_DROME // NEUROGENIC PROTEIN BIG BRAIN. 80 1.2e-05 2 + 2027 p34.2 (15) GLPF(9) AQP3(2) // PROTEIN FACILITATOR ... 60 3.4e-05 2 + 45615 p34.2 (1) GLPF_STRPN // GLYCEROL UPTAKE FACILITATO... 63 0.024 1 + 45638 p34.2 (1) AQP5_HUMAN // AQUAPORIN 5. 61 0.044 1 + + + +>390 p34.2 (45) MIP(6) AQP1(4) GLPF(4) // PROTEIN INTRINSIC CHANNEL WATER + AQUAPORIN TONOPLAST MEMBRANE FOR PLASMA LENS + Length = 88 + + Score = 270 (125.3 bits), Expect = 2.0e-32, P = 2.0e-32 + Identities = 47/67 (70%), Positives = 56/67 (83%) + +Query: 156 TTDRRRRDLGGSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSAVLTRNFSNHWIFWVG 215 + T D+RR +GGSAPL IG SVALGHL+ I YTGCG+NPARSFG AV+T NF+NHW++WVG +Sbjct: 22 TDDKRRGSVGGSAPLPIGFSVALGHLIGIPYTGCGMNPARSFGPAVVTGNFTNHWVYWVG 81 + +Query: 216 PFIGSAL 222 + P IG+ L +Sbjct: 82 PIIGAVL 88 + + Score = 95 (44.1 bits), Expect = 2.3e-06, P = 2.3e-06 + Identities = 20/33 (60%), Positives = 23/33 (69%) + +Query: 136 GQGLGIEIIGTLQLVLCVLATTDRRRRDLGGSA 168 + GQ L +EIIGT QLV CV ATTD +RR G + +Sbjct: 1 GQNLVVEIIGTFQLVYCVFATTDDKRRGSVGGS 33 + + +>45663 p34.2 (1) AQPZ_ECOLI // AQUAPORIN Z. + Length = 96 + + Score = 90 (41.8 bits), Expect = 3.2e-13, Sum P(2) = 3.2e-13 + Identities = 18/36 (50%), Positives = 25/36 (69%) + +Query: 166 GSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSAV 201 + G AP+AIGL++ L HL++I T +NPARS A+ +Sbjct: 25 GFAPIAIGLALTLIHLISIPVTNTSVNPARSTAVAI 60 + + Score = 63 (29.2 bits), Expect = 3.2e-13, Sum P(2) = 3.2e-13 + Identities = 11/25 (44%), Positives = 14/25 (56%) + +Query: 210 WIFWVGPFIGSALAVLIYDFILAPR 234 + W FWV P +G + LIY +L R +Sbjct: 71 WFFWVVPIVGGIIGGLIYRTLLEKR 95 + + +>45611 p34.2 (1) AQP2_HUMAN // AQUAPORIN-CD (AQP-CD) (WATER CHANNEL PROTEIN FOR + RENAL COLLECTING DUCT) (ADH WATER CHANNEL) (AQUAPORIN 2) (COLLECTING DUCT + WATER CHANNEL PROTEIN) (WCH-CD). + Length = 49 + + Score = 136 (63.1 bits), Expect = 6.0e-13, P = 6.0e-13 + Identities = 23/42 (54%), Positives = 34/42 (80%) + +Query: 50 VKVSLAFGLSIATLAQSVGHISGAHSNPAVTLGLLLSCQISI 91 + +++++AFGL I TL Q++GHISGAH NPAVT+ L+ C +S+ +Sbjct: 8 LQIAMAFGLGIGTLVQALGHISGAHINPAVTVACLVGCHVSV 49 + + +>304 p34.2 (61) AQP2(10) GLPF(6) MIP(5) // PROTEIN CHANNEL WATER AQUAPORIN + INTRINSIC DUCT COLLECTING FOR TONOPLAST WCH-CD + Length = 43 + + Score = 121 (56.1 bits), Expect = 9.2e-11, P = 9.2e-11 + Identities = 24/43 (55%), Positives = 31/43 (72%) + +Query: 70 ISGAHSNPAVTLGLLLSCQISILRAVMYIIAQCVGAIVASAIL 112 + ISG H NPAVT+GLL+ + LRAV YI AQ +GA+ +A+L +Sbjct: 1 ISGGHINPAVTIGLLIGGRFPFLRAVFYIAAQLLGAVAGAALL 43 + + +>45607 p34.2 (1) PMIP_NICAL // POLLEN-SPECIFIC MEMBRANE INTEGRAL PROTEIN. + Length = 69 + + Score = 80 (37.1 bits), Expect = 1.2e-07, Sum P(2) = 1.2e-07 + Identities = 17/54 (31%), Positives = 32/54 (59%) + +Query: 149 LVLCVLATTDRRRRDLGGSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSAVL 202 + L++ V++ R +G A +A+G+++ L +A +G +NPARS G A++ +Sbjct: 13 LLMFVISGVATDDRAIGQVAGIAVGMTITLNVFVAGPISGASMNPARSIGPAIV 66 + + Score = 34 (15.8 bits), Expect = 1.2e-07, Sum P(2) = 1.2e-07 + Identities = 8/18 (44%), Positives = 11/18 (61%) + +Query: 136 GQGLGIEIIGTLQLVLCV 153 + GQ L IEII + L+ + +Sbjct: 1 GQSLAIEIIISFLLMFVI 18 + + +>45606 p34.2 (1) BIB_DROME // NEUROGENIC PROTEIN BIG BRAIN. + Length = 119 + + Score = 80 (37.1 bits), Expect = 1.2e-05, Sum P(2) = 1.2e-05 + Identities = 15/34 (44%), Positives = 24/34 (70%) + +Query: 1 MASEIKKKLFWRAVVAEFLAMTLFVFISIGSALG 34 + M +EI+ FWR++++E LA ++VFI G+A G +Sbjct: 55 MQAEIRTLEFWRSIISECLASFMYVFIVCGAAAG 88 + + Score = 39 (18.1 bits), Expect = 1.2e-05, Sum P(2) = 1.2e-05 + Identities = 9/17 (52%), Positives = 12/17 (70%) + +Query: 53 SLAFGLSIATLAQSVGH 69 + +LA GL++ATL Q H +Sbjct: 103 ALASGLAMATLTQCFLH 119 + + +>2027 p34.2 (15) GLPF(9) AQP3(2) // PROTEIN FACILITATOR GLYCEROL UPTAKE + AQUAPORIN DIFFUSION UPTAKE/EFFLUX PEPX 5'REGION ORF1 + Length = 55 + + Score = 60 (27.8 bits), Expect = 3.4e-05, Sum P(2) = 3.4e-05 + Identities = 17/46 (36%), Positives = 20/46 (43%) + +Query: 156 TTDRRRRDLGGSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSAV 201 + T D GG PL +G V + TG INPAR FG + +Sbjct: 10 TDDGNNVPSGGLHPLMVGFLVMGIGMSLGGTTGYAINPARDFGPRI 55 + + Score = 37 (17.2 bits), Expect = 3.4e-05, Sum P(2) = 3.4e-05 + Identities = 7/10 (70%), Positives = 8/10 (80%) + +Query: 149 LVLCVLATTD 158 + L+ CVLA TD +Sbjct: 2 LIACVLALTD 11 + + +>45615 p34.2 (1) GLPF_STRPN // GLYCEROL UPTAKE FACILITATOR PROTEIN. + Length = 26 + + Score = 63 (29.2 bits), Expect = 0.025, P = 0.024 + Identities = 13/23 (56%), Positives = 18/23 (78%) + +Query: 205 NFSNHWIFWVGPFIGSALAVLIY 227 + ++S WI VGP IG+ALAVL++ +Sbjct: 1 DWSYAWIPVVGPVIGAALAVLVF 23 + + +>45638 p34.2 (1) AQP5_HUMAN // AQUAPORIN 5. + Length = 27 + + Score = 61 (28.3 bits), Expect = 0.045, P = 0.044 + Identities = 11/19 (57%), Positives = 18/19 (94%) + +Query: 50 VKVSLAFGLSIATLAQSVG 68 + ++++LAFGL+I TLAQ++G +Sbjct: 8 LQIALAFGLAIGTLAQALG 26 + + +Parameters: + E=0.1 + B=500 + + V=500 + -ctxfactor=1.00 + + Query ----- As Used ----- ----- Computed ---- + Frame MatID Matrix name Lambda K H Lambda K H + +0 0 BLOSUM62 0.322 0.138 0.394 same same same + + Query + Frame MatID Length Eff.Length E S W T X E2 S2 + +0 0 269 269 0.10 69 3 11 22 0.22 33 + + +Statistics: + Query Expected Observed HSPs HSPs + Frame MatID High Score High Score Reportable Reported + +0 0 59 (27.4 bits) 270 (125.3 bits) 14 14 + + Query Neighborhd Word Excluded Failed Successful Overlaps + Frame MatID Words Hits Hits Extensions Extensions Excluded + +0 0 5349 3124825 609708 2510548 4569 2 + + Database: /home/phd/ut/prodom/prodom_34_2 + Release date: unknown + Posted date: 12:24 PM MET DST May 06, 1998 + # of letters in database: 6,740,067 + # of sequences in database: 53,597 + # of database sequences satisfying E: 9 + No. of states in DFA: 564 (111 KB) + Total size of DFA: 226 KB (256 KB) + Time to generate neighborhood: 0.03u 0.00s 0.03t Real: 00:00:00 + Time to search database: 9.80u 0.03s 9.83t Real: 00:00:10 + Total cpu time: 9.90u 0.06s 9.96t Real: 00:00:10 +--- END of BLASTP output +--- ------------------------------------------------------------ +--- +--- Again: these results were obtained based on the domain data- +--- base collected by Daniel Kahn and his coworkers in Toulouse. +--- +--- PLEASE quote: +--- F Corpet, J Gouzy, D Kahn (1998). The ProDom database +--- of protein domain families. Nucleic Ac Res 26:323-326. +--- +--- The general WWW page is on: +---- --------------------------------------- +--- http://www.toulouse.inra.fr/prodom.html +---- --------------------------------------- +--- +--- For WWW graphic interfaces to PRODOM, in particular for your +--- protein family, follow the following links (each line is ONE +--- single link for your protein!!): +--- +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=390 ==> multiple alignment, consensus, PDB and PROSITE links of domain 390 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=390 ==> graphical output of all proteins having domain 390 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=45663 ==> multiple alignment, consensus, PDB and PROSITE links of domain 45663 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=45663 ==> graphical output of all proteins having domain 45663 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=45611 ==> multiple alignment, consensus, PDB and PROSITE links of domain 45611 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=45611 ==> graphical output of all proteins having domain 45611 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=304 ==> multiple alignment, consensus, PDB and PROSITE links of domain 304 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=304 ==> graphical output of all proteins having domain 304 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=45607 ==> multiple alignment, consensus, PDB and PROSITE links of domain 45607 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=45607 ==> graphical output of all proteins having domain 45607 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=45606 ==> multiple alignment, consensus, PDB and PROSITE links of domain 45606 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=45606 ==> graphical output of all proteins having domain 45606 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=2027 ==> multiple alignment, consensus, PDB and PROSITE links of domain 2027 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=2027 ==> graphical output of all proteins having domain 2027 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=45615 ==> multiple alignment, consensus, PDB and PROSITE links of domain 45615 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=45615 ==> graphical output of all proteins having domain 45615 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom1=45638 ==> multiple alignment, consensus, PDB and PROSITE links of domain 45638 +http://www.toulouse.inra.fr/prodom/cgi-bin/ReqProdomII.pl?id_dom2=45638 ==> graphical output of all proteins having domain 45638 +--- +--- NOTE: if you want to use the link, make sure the entire line +--- is pasted as URL into your browser! +--- +--- END of PRODOM +--- ------------------------------------------------------------ + +________________________________________________________________________________ + + +--- Database used for sequence comparison: +--- SEQBASE RELEASE 34.0 OF EMBL/SWISS-PROT WITH 59021 SEQUENCES + + + + +The alignment that has been used as input to the network is: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +________________________________________________________________________________ + +--- ------------------------------------------------------------ +--- MAXHOM multiple sequence alignment +--- ------------------------------------------------------------ +--- +--- MAXHOM ALIGNMENT HEADER: ABBREVIATIONS FOR SUMMARY +--- ID : identifier of aligned (homologous) protein +--- STRID : PDB identifier (only for known structures) +--- PIDE : percentage of pairwise sequence identity +--- WSIM : percentage of weighted similarity +--- LALI : number of residues aligned +--- NGAP : number of insertions and deletions (indels) +--- LGAP : number of residues in all indels +--- LSEQ2 : length of aligned sequence +--- ACCNUM : SwissProt accession number +--- NAME : one-line description of aligned protein +--- +--- MAXHOM ALIGNMENT HEADER: SUMMARY +ID STRID IDE WSIM LALI NGAP LGAP LEN2 ACCNUM NAME +aqp1_rat 100 100 269 0 0 269 P29975 PROXIMAL TUBULE) (AQUAPOR +aqp1_mouse 98 99 269 0 0 269 Q02013 PROXIMAL TUBULE) (AQUAPOR +aqp1_human 93 97 269 0 0 269 P29972 PROXIMAL TUBULE) (AQUAPOR +aqp1_bovin 90 95 269 1 2 271 P47865 PROXIMAL TUBULE) (AQUAPOR +aqp1_sheep 90 94 269 2 3 272 P56401 PROXIMAL TUBULE) (AQUAPOR +aqpa_ranes 78 89 268 2 5 272 P50501 AQUAPORIN FA-CHIP. +aqp2_dasno 49 73 109 1 7 109 P79164 PROTEIN) (WCH-CD) (FRAGME +aqp2_bovin 49 73 109 1 7 109 P79099 PROTEIN) (WCH-CD) (FRAGME +aqp2_canfa 48 72 109 1 7 109 P79144 PROTEIN) (WCH-CD) (FRAGME +aqp2_rabit 48 73 109 1 7 109 P79213 PROTEIN) (WCH-CD) (FRAGME +aqp2_elema 47 72 109 1 7 109 P79168 PROTEIN) (WCH-CD) (FRAGME +aqp2_horse 47 72 109 1 7 109 P79165 PROTEIN) (WCH-CD) (FRAGME +aqp2_proha 47 73 109 1 7 109 P79229 PROTEIN) (WCH-CD) (FRAGME +mip_rat 46 73 259 1 7 261 P09011 LENS FIBER MAJOR INTRINSI +aqp2_oryaf 46 72 109 1 7 109 P79200 PROTEIN) (WCH-CD) (FRAGME +mip_mouse 46 73 261 1 7 263 P51180 LENS FIBER MAJOR INTRINSI +mip_ranpi 45 73 261 1 7 263 Q06019 LENS FIBER MAJOR INTRINSI +mip_bovin 45 73 261 1 7 263 P06624 LENS FIBER MAJOR INTRINSI +mip_human 45 73 261 1 7 263 P30301 LENS FIBER MAJOR INTRINSI +mip_chick 45 72 110 1 1 112 P28238 LENS FIBER MAJOR INTRINSI +aqp5_rat 44 71 262 2 8 265 P47864 AQUAPORIN 5. +aqp5_human 44 71 262 2 8 265 P55064 AQUAPORIN 5. +aqp2_human 44 72 261 2 8 271 P41181 PROTEIN) (WCH-CD). +aqp4_human 43 70 266 2 5 323 P55087 AQUAPORIN 4 (WCH4) (MERCU +aqp4_rat 43 70 266 2 5 323 P47863 AQUAPORIN 4 (WCH4) (MERCU +aqp4_mouse 43 69 265 3 6 322 P55088 AQUAPORIN 4 (WCH4) (MERCU +aqp2_rat 42 71 261 2 8 271 P34080 PROTEIN) (WCH-CD). +aqp2_mouse 42 71 261 2 8 271 P56402 PROTEIN) (WCH-CD). +wc2a_arath 42 67 248 4 12 287 P43286 PLASMA MEMBRANE INTRINSIC +aqp6_human 42 68 260 2 9 282 Q13520 AQUAPORIN 6 (AQUAPORIN-2 +wc2c_arath 41 66 248 4 12 285 P30302 INTRINSIC PROTEIN) (WSI-T +wc2b_arath 41 66 248 4 12 285 P43287 PLASMA MEMBRANE INTRINSIC +wc1c_arath 41 65 238 4 10 286 Q08733 (TMP-B). +wc1b_arath 41 65 238 4 10 286 Q06611 (TMP-A). +tipw_lyces 40 65 237 4 10 286 Q08451 (RIPENING-ASSOCIATED MEMB +wc1a_arath 40 64 238 4 10 286 P43285 PLASMA MEMBRANE INTRINSIC +tipw_pea 40 64 237 4 11 289 P25794 RESPONSIVE PROTEIN 7A). +tipa_arath 38 64 250 3 9 268 P26587 TONOPLAST INTRINSIC PROTE +aqua_atrca 38 64 246 4 10 282 P42767 AQUAPORIN. +dip_antma 38 65 242 2 4 250 P33560 PROBABLE TONOPLAST INTRIN +aqpz_ecoli 37 59 220 4 17 231 P48838 AQUAPORIN Z (BACTERIAL NO +tip2_tobac 37 64 242 2 4 250 P24422 TONOPLAST INTRINSIC PROTE +tip1_tobac 37 64 242 2 4 250 P21653 TONOPLAST INTRINSIC PROTE +tipg_arath 33 62 241 2 4 251 P25818 TONOPLAST INTRINSIC PROTE +bib_drome 33 60 260 4 10 700 P23645 NEUROGENIC PROTEIN BIG BR +tipr_arath 33 62 243 2 4 253 P21652 TONOPLAST INTRINSIC PROTE +tipa_phavu 33 62 246 2 4 256 P23958 TONOPLAST INTRINSIC PROTE +tipg_orysa 32 62 240 2 5 250 P50156 TONOPLAST INTRINSIC PROTE +--- +--- MAXHOM ALIGNMENT: IN MSF FORMAT +MSF of: /home/phd/server/work/predict_h25873-22040.hssp from: 1 to: 269 + /home/phd/server/work/predict_h25873-22040.msfRet MSF: 269 Type: P 24-Nov-98 17:44:5 Check: 3448 .. + + + Name: predict_h258 Len: 269 Check: 8331 Weight: 1.00 + Name: aqp1_rat Len: 269 Check: 8331 Weight: 1.00 + Name: aqp1_mouse Len: 269 Check: 7552 Weight: 1.00 + Name: aqp1_human Len: 269 Check: 6501 Weight: 1.00 + Name: aqp1_bovin Len: 269 Check: 7067 Weight: 1.00 + Name: aqp1_sheep Len: 269 Check: 7582 Weight: 1.00 + Name: aqpa_ranes Len: 269 Check: 4844 Weight: 1.00 + Name: aqp2_dasno Len: 269 Check: 8933 Weight: 1.00 + Name: aqp2_bovin Len: 269 Check: 9649 Weight: 1.00 + Name: aqp2_canfa Len: 269 Check: 8990 Weight: 1.00 + Name: aqp2_rabit Len: 269 Check: 8787 Weight: 1.00 + Name: aqp2_elema Len: 269 Check: 9381 Weight: 1.00 + Name: aqp2_horse Len: 269 Check: 8993 Weight: 1.00 + Name: aqp2_proha Len: 269 Check: 8855 Weight: 1.00 + Name: mip_rat Len: 269 Check: 9773 Weight: 1.00 + Name: aqp2_oryaf Len: 269 Check: 8554 Weight: 1.00 + Name: mip_mouse Len: 269 Check: 9723 Weight: 1.00 + Name: mip_ranpi Len: 269 Check: 5937 Weight: 1.00 + Name: mip_bovin Len: 269 Check: 1430 Weight: 1.00 + Name: mip_human Len: 269 Check: 372 Weight: 1.00 + Name: mip_chick Len: 269 Check: 4658 Weight: 1.00 + Name: aqp5_rat Len: 269 Check: 9033 Weight: 1.00 + Name: aqp5_human Len: 269 Check: 6547 Weight: 1.00 + Name: aqp2_human Len: 269 Check: 6209 Weight: 1.00 + Name: aqp4_human Len: 269 Check: 2589 Weight: 1.00 + Name: aqp4_rat Len: 269 Check: 4412 Weight: 1.00 + Name: aqp4_mouse Len: 269 Check: 2845 Weight: 1.00 + Name: aqp2_rat Len: 269 Check: 5748 Weight: 1.00 + Name: aqp2_mouse Len: 269 Check: 6526 Weight: 1.00 + Name: wc2a_arath Len: 269 Check: 4866 Weight: 1.00 + Name: aqp6_human Len: 269 Check: 9404 Weight: 1.00 + Name: wc2c_arath Len: 269 Check: 6187 Weight: 1.00 + Name: wc2b_arath Len: 269 Check: 7328 Weight: 1.00 + Name: wc1c_arath Len: 269 Check: 8575 Weight: 1.00 + Name: wc1b_arath Len: 269 Check: 9544 Weight: 1.00 + Name: tipw_lyces Len: 269 Check: 9283 Weight: 1.00 + Name: wc1a_arath Len: 269 Check: 598 Weight: 1.00 + Name: tipw_pea Len: 269 Check: 9253 Weight: 1.00 + Name: tipa_arath Len: 269 Check: 6544 Weight: 1.00 + Name: aqua_atrca Len: 269 Check: 2848 Weight: 1.00 + Name: dip_antma Len: 269 Check: 9619 Weight: 1.00 + Name: aqpz_ecoli Len: 269 Check: 5641 Weight: 1.00 + Name: tip2_tobac Len: 269 Check: 490 Weight: 1.00 + Name: tip1_tobac Len: 269 Check: 622 Weight: 1.00 + Name: tipg_arath Len: 269 Check: 3231 Weight: 1.00 + Name: bib_drome Len: 269 Check: 7687 Weight: 1.00 + Name: tipr_arath Len: 269 Check: 4476 Weight: 1.00 + Name: tipa_phavu Len: 269 Check: 5563 Weight: 1.00 + Name: tipg_orysa Len: 269 Check: 3537 Weight: 1.00 + +// + + + 1 50 +predict_h258 MASEIKKKLF WRAVVAEFLA MTLFVFISIG SALGFNYPLE RNQTLVQDNV +aqp1_rat MASEIKKKLF WRAVVAEFLA MTLFVFISIG SALGFNYPLE RNQTLVQDNV +aqp1_mouse MASEIKKKLF WRAVVAEFLA MTLFVFISIG SALGFNYPLE RNQTLVQDNV +aqp1_human MASEFKKKLF WRAVVAEFLA TTLFVFISIG SALGFKYPVG NNQTAVQDNV +aqp1_bovin MASEFKKKLF WRAVVAEFLA MILFIFISIG SALGFHYPIK SNQTtvQDNV +aqp1_sheep MASEFKKKLF WRAVVAEFLA MILFIFISIG SALGFHYPIK SNQTtvQDNV +aqpa_ranes MASEFKKKAF WRAVIAEFLA MILFVFISIG AALGFNFPIE EKANQtqDIV +aqp2_dasno ......SVAF SRAVLAEFLA TLIFVFFGLG SALSWPQALP S.......VL +aqp2_bovin ......SIAF SRAVLAEFLA TLLFVFFGLG SALNWPQALP S.......VL +aqp2_canfa ......SVAF SRAVFAEFLA TLLFVFFGLG SALNWPQALP S.......VL +aqp2_rabit ......SIAF SRAVFAEFLA TLLFVFFGLG SALNWPSALP S.......TL +aqp2_elema ......SIAF SRAVFSEFLA TLLFVFFGLG SALNWPQALP S.......VL +aqp2_horse ......SIAF SRAVLAEFLA TLLFVFFGLG SALNWPQAMP S.......VL +aqp2_proha ......SIAF SRAVLSEFLA TLLFVFFGLG SALNWPQALP S.......VL +mip_rat ...ELRSASF WRAIFAEFFA TLFYVFFGLG SSLRWA.... ...PGPLHVL +aqp2_oryaf ......SIAF SKAVFSEFLA TLLFVFFGLG SALNWPQALP S.......GL +mip_mouse .MWELRSASF WRAIFAEFFA TLFYVFFGLG ASLRWA.... ...PGPLHVL +mip_ranpi .MWEFRSFSF WRAVFAEFFG TMFYVFFGLG ASLKWAAGPA .......NVL +mip_bovin .MWELRSASF WRAICAEFFA SLFYVFFGLG ASLRWA.... ...PGPLHVL +mip_human .MWELRSASF WRAIFAEFFA TLFYVFFGLG SSLRWA.... ...PGPLHVL +mip_chick .......... .......... .......... .......... .......... +aqp5_rat MKKEVCSLAF FKAVFAEFLA TLIFVFFGLG SALKWPSALP T.......IL +aqp5_human MKKEVCSVAF LKAVFAEFLA TLIFVFFGLG SALKWPSALP T.......IL +aqp2_human .MWELRSIAF SRAVFAEFLA TLLFVFFGLG SALNWPQALP S.......VL +aqp4_human AFKGVWTQAF WKAVTAEFLA MLIFVLLSLG STINWG...G TEKPLPVDMV +aqp4_rat AFKGVWTQAF WKAVTAEFLA MLIFVLLSVG STINWG...G SENPLPVDMV +aqp4_mouse AFKGVWTQAF WKAVSAEFLA TLIFVL.GVG STINWG...G SENPLPVDMV +aqp2_rat .MWELRSIAF SRAVLAEFLA TLLFVFFGLG SALQWASSPP S.......VL +aqp2_mouse .MWELRSIAY CRAVLAEFLA TLLFVFFGLG SALQWASSPP S.......VL +wc2a_arath DGAELKKWSF YRAVIAEFVA TLLFLYITVL TVIGYKIQSD TDAGGVdgIL +aqp6_human MLACRLWKAI SRALFAEFLA TGLYVFFGVG SVMRWPTALP S.......VL +wc2c_arath DAEELTKWSL YRAVIAEFVA TLLFLYVTVL TVIGYKIQSD TKAGGVdgIL +wc2b_arath DADELTKWSL YRAVIAEFVA TLLFLYITVL TVIGYKIQSD TKAGGVdgIL +wc1c_arath EPGELSSWSF YRAGIAEFIA TFLFLYITVL TVMGVKRA.. PNMCASVGIQ +wc1b_arath EPGELASWSF WRAGIAEFIA TFLFLYITVL TVMGVKR..S PNMCASVGIQ +tipw_lyces EPGELSSWSF YRAGIAEFMA TFLFLYITIL TVMGLKRSDS LCSSV..GIQ +wc1a_arath EPGELSSWSF WRAGIAEFIA TFLFLYITVL TVMGVKR..S PNMCASVGIQ +tipw_pea EPSELTSWSF YRAGIAEFIA TFLFLYITVL TVMGVVRESS KCKTV..GIQ +tipa_arath RADEATHPDS IRATLAEFLS TFVFVFAAEG SILSLDKLYW EHAAHAGTni +aqua_atrca DMGELKLWSF WRAAIAEFIA TLLFLYITVA TVIGYKKETD PCASVGL..L +dip_antma SIGDSFSVAS IKAYVAEFIA TLLFVFAGVG SAIAYNKLTS DAALDPAGLV +aqpz_ecoli .........M FRKLAAECFG TFWLVFGGCG SAVLAAGFPE ....LGIGFA +tip2_tobac SIGDSFSVGS LKAYVAEFIA TLLFVFAGVG SAIAYNKLTA DAALDPAGLV +tip1_tobac SIGDSFSVGS LKAYVAEFIA TLLFVFAGVG SAIAYNKLTA DAALDPAGLV +tipg_arath RPDEATRPDA LKAALAEFIS TLIFVVAGSG SGMAFNKLTE NGATTPSGLV +bib_drome MQAEIRTLEF WRSIISECLA SFMYVFIVCG AAAGVGVGAS VSSVL....L +tipr_arath RPDEATRPDA LKAALAEFIS TLIFVVAGSG SGMAFNKLTE NGATTPSGLV +tipa_phavu RTDEATHPDS MRASLAEFAS TFIFVFAGEG SGLALVKIYQ DSAFSAGELL +tipg_orysa SHQEVYHPGA LKAALAEFIS TLIFVFAGQG SGMAFSKLTG GGATTPAGLI + + 51 100 +predict_h258 KVSLAFGLSI ATLAQSVGHI SGAHSNPAVT LGLLLSCQIS ILRAVMYIIA +aqp1_rat KVSLAFGLSI ATLAQSVGHI SGAHSNPAVT LGLLLSCQIS ILRAVMYIIA +aqp1_mouse KVSLAFGLSI ATLAQSVGHI SGAHLNPAVT LGLLLSCQIS ILRAVMYIIA +aqp1_human KVSLAFGLSI ATLAQSVGHI SGAHLNPAVT LGLLLSCQIS IFRALMYIIA +aqp1_bovin KVSLAFGLSI ATLAQSVGHI SGAHLNPAVT LGLLLSCQIS VLRAIMYIIA +aqp1_sheep KVSLAFGLSI ATLAQSVGHI SGAHLNPAVT LGLLLSCQIS ILRAIMYIIA +aqpa_ranes KVSLAFGISI ATMAQSVGHV SGAHLNPAVT LGCLLSCQIS ILKAVMYIIA +aqp2_dasno QIALAFGLAI GTLVQALGHV SGAHINPAVT VACLVGCHVS FLRAAFYVAA +aqp2_bovin QIAMAFGLAI GTLVQALGHV SGAHINPAVT VACLVGCHVS FLRAVFYVAA +aqp2_canfa QIAMAFGLGI GTLVQALGHV SGAHINPAVT VACLVGCHVS FLRAAFYVAA +aqp2_rabit QIAMAFGLGI GTLVQALGHV SGAHINPAVT VACLVGCHVS FLRAAFYVAA +aqp2_elema QIAMAFGLAI GTLVQTLGHI SGAHINPAVT VACLVGCHVS FLRATFYLAA +aqp2_horse QIAMAFGLAI GTLVQALGHV SGAHINPAVT VACLVGCHVS FLRAAFYVAA +aqp2_proha QIAMAFGLAI GTLVQTLGHI SGAHINPAVT IACLVGCHVS FLRALFYLAA +mip_rat QVALAFGLAL ATLVQTVGHI SGAHVNPAVT FAFLVGSQMS LLRAFCYIAA +aqp2_oryaf QIAMAFGLAI GTLVQTLGHI SGAHINPAVT VACLVGCHVS FLRAIFYVAA +mip_mouse QVALAFGLAL ATLVQTVGHI SGAHVNPAVT FAFLVGSQMS LLRAFCYIAA +mip_ranpi VIALAFGLVL ATMVQSIGHV SGAHINPAVT FAFLIGSQMS LFRAIFYIAA +mip_bovin QVALAFGLAL ATLVQAVGHI SGAHVNPAVT FAFLVGSQMS LLRAICYMVA +mip_human QVAMAFGLAL ATLVQSVGHI SGAHVNPAVT FAFLVGSQMS LLRAFCYMAA +mip_chick .......... .......... .......... .......... .......... +aqp5_rat QISIAFGLAI GTLAQALGPV SGGHINPAIT LALLIGNQIS LLRAVFYVAA +aqp5_human QIALAFGLAI GTLAQALGPV SGGHINPAIT LALLVGNQIS LLRAFFYVAA +aqp2_human QIAMAFGLGI GTLVQALGHI SGAHINPAVT VACLVGCHVS VLRAAFYVAA +aqp4_human LISLCFGLSI ATMVQCFGHI SGGHINPAVT VAMVCTRKIS IAKSVFYIAA +aqp4_rat LISLCFGLSI ATMVQCFGHI SGGHINPAVT VAMVCTRKIS IAKSVFYITA +aqp4_mouse LISLCFGLSI ATMVQCLGHI SGGHINPAVT VAMVCTRKIS IAKSVFYIIA +aqp2_rat QIAVAFGLGI GILVQALGHV SGAHINPAVT VACLVGCHVS FLRAAFYVAA +aqp2_mouse QIAVAFGLGI GTLVQALGHV SGAHINPAVT VACLVGCHVS FLRAAFYVAA +wc2a_arath GIAWAFGGMI FILVYCTAGI SGGHINPAVT FGLFLARKVS LPRALLYIIA +aqp6_human QIAITFNLVT AMAVQVTWKT SGAHANPAVT LAFLVGSHIS LPRAVAYVAA +wc2c_arath GIAWAFGGMI FILVYCTAGI SGGHINPAVT FGLFLARKVS LIRAVLYMVA +wc2b_arath GIAWAFGGMI FILVYCTAGI SGGHINPAVT FGLFLARKVS LIRAVLYMVA +wc1c_arath GIAWAFGGMI FALVYCTAGI SGGHINPAVT FGLFLARKLS LTRAVFYIVM +wc1b_arath GIAWAFGGMI FALVYCTAGI SGGHINPAVT FGLFLARKLS LTRAVYYIVM +tipw_lyces GVAWAFGGMI FALVYCTAGI SGGHINPAVT FGLFLARKLS LTRAVFYMVM +wc1a_arath GIAWAFGGMI FALVYCTAGI SGGHINPAVT FGLFLARKLS LTRALYYIVM +tipw_pea GIAWAFGGMI FALVYCTAGI SGGHINPAVT FGLFLARKLS LTRAIFYMVM +tipa_arath LVALAHAFAL FAAVSAAINV SGGHVNPAVT FGALVGGRVT AIRAIYYWIA +aqua_atrca GIAWSFGGMI FVLVYCTAGI SGGHINPAVT FGLFLARKVS LLRALVYMIA +dip_antma AVAVAHAFAL FVGVSMAANV SGGHLNPAVT LGLAVGGNIT ILTGLFYWIA +aqpz_ecoli GVALAFGLTV LTMAFAVGHI SGGHFNPAVT IGLWAGGRFP AKEVVGYVIA +tip2_tobac AVAVAHAFAL FVGVSIAANI SGGHLNPAVT LGLAVGGNIT ILTGFFYWIA +tip1_tobac AVAVAHAFAL FVGVSIAANI SGGHLNPAVT LGLAVGGNIT ILTGFFYWIA +tipg_arath AAAVAHAFGL FVAVSVGANI SGGHVNPAVT FGAFIGGNIT LLRGILYWIA +bib_drome ATALASGLAM ATLTQCFLHI SGAHINPAVT LALCVVRSIS PIRAAMYITA +tipr_arath AAAVAHAFGL FVAVSVGANI SGGHVNPAVT FGAFIGGNIT LLRGILYWIA +tipa_phavu ALALAHAFAL FAAVSASMHV SGGHVNPAVS FGALIGGRIS VIRAVYYWIA +tipg_orysa AAAVAHAFAL FVAVSVGANI SGGHVNPAVT FGAFVGGNIT LFRGLLYWIA + + 101 150 +predict_h258 QCVGAIVASA ILSGITSSLL ENSLGRNDLA RGVNSGQGLG IEIIGTLQLV +aqp1_rat QCVGAIVASA ILSGITSSLL ENSLGRNDLA RGVNSGQGLG IEIIGTLQLV +aqp1_mouse QCVGAIVATA ILSGITSSLV DNSLGRNDLA HGVNSGQGLG IEIIGTLQLV +aqp1_human QCVGAIVATA ILSGITSSLT GNSLGRNDLA DGVNSGQGLG IEIIGTLQLV +aqp1_bovin QCVGAIVATA ILSGITSSLP DNSLGLNALA PGVNSGQGLG IEIIGTLQLV +aqp1_sheep QCVGAIVATV ILSGITSSLP DNSLGLNALA PGVNSGQGLG IEIIGTLQLV +aqpa_ranes QCLGAVVATA ILSGITSGLE NNSLGLNGLS PGVSAGQGLG VEILVTFQLV +aqp2_dasno QLLGAVAGAA ILHEITPPDV RG........ .......... .......... +aqp2_bovin QLLGAVAGAA LLHEITPPAI RG........ .......... .......... +aqp2_canfa QLLGAVAGAA LLHEITPPHV RG........ .......... .......... +aqp2_rabit QLLGAVAGAA LLHEITPAEV RG........ .......... .......... +aqp2_elema QLLGAVAGAA LLHELTPPDI RG........ .......... .......... +aqp2_horse QLLGAVAGAA LLHEITPPDI RR........ .......... .......... +aqp2_proha QLLGAVAGAA LLHELTPPDI RG........ .......... .......... +mip_rat QLLGAVAGAA VLYSVTPPAV RGNLALNTLH AGVSVGQATT VEIFLTLQFV +aqp2_oryaf QLLGAVAGAA LLHELTPPDI RG........ .......... .......... +mip_mouse QLLGAVAGAA VLYSVTPPAV RGNLALNTLH TGVSVGQATT VEIFLTLQFV +mip_ranpi QLLGAVAGAA VLYGVTPAAI RGNLALNTLH PGVSLGQATT VEIFLTLQFV +mip_bovin QLLGAVAGAA VLYSVTPPAV RGNLALNTLH PGVSVGQATI VEIFLTLQFV +mip_human QLLGAVAGAA VLYSVTPPAV RGNLALNTLH PAVSVGQATT VEIFLTLQFV +mip_chick .......... .......... .......... .......... .......... +aqp5_rat QLVGAIAGAG ILYWLAPLNA RGNLAVNALN NNTTPGKAMV VELILTFQLA +aqp5_human QLVGAIAGAG ILYGVAPLNA RGNLAVNALN NNTTQGQAMV VELILTFQLA +aqp2_human QLLGAVAGAA LLHEITPADI RGDLAVNALS NSTTAGQAVT VELFLTLQLV +aqp4_human QCLGAIIGAG ILYLVTPPSV VGGLGVTMVH GNLTAGHGLL VELIITFQLV +aqp4_rat QCLGAIIGAG ILYLVTPPSV VGGLGVTTVH GNLTAGHGLL VELIITFQLV +aqp4_mouse QCLGAIIGAG ILYLVTPPSV VGGLGVTTVH GNLTAGHGLL VELIITFQLV +aqp2_rat QLLGAVAGAA ILHEITPVEI RGDLAVNALH NNATAGQAVT VELFLTMQLV +aqp2_mouse QLLGAVAGAA ILHEITPVEI RGDLAVNALH NNATAGQAVT VELFLTMQLV +wc2a_arath QCLGAICGVG FVKAFQSSYY TRYGGgnSLA DGYSTGTGLA AEIIGTFVLV +aqp6_human QLVGATVGAA LLYGVMPGDI RETLGINVVR NSVSTGQAVA VELLLTLQLV +wc2c_arath QCLGAICGVG FVKAFQSSHY VNYGGgnFLA DGYNTGTGLA AEIIGTFVLV +wc2b_arath QCLGAICGVG FRQSFQSSYY DRYGGgnSLA DGYNTGTGLA AEIIGTFVLV +wc1c_arath QCLGAICGAG VVKGFQPNPY QtgGGANTVA HGYTKGSGLG AEIIGTFVLV +wc1b_arath QCLGAICGAG VVKGFQPKQY QagGGANTIA HGYTKGSGLG AEIIGTFVLV +tipw_lyces QCLGAICGAG VVKGFMVGPY QrgGGANVVN PGYTKGDGLG AEIIGTFVLV +wc1a_arath QCLGAICGAG VVKGFQPKQY QagGGANTVA HGYTKGSGLG AEIIGTFVLV +tipw_pea QVLGAICGAG VVKGFEGKQR FGDLNgnFVA PGYTKGDGLG AEIVGTFILV +tipa_arath QLLGAILACL LLRLTTNGMR PVGFR...LA SGVGAVNGLV LEIILTFGLV +aqua_atrca QCAGAICGVG LVKAFMKGPY NqgGGANSVA LGYNKGTAFG AELIGTFVLV +dip_antma QCLGSTVACL LLKFVTNGL. ..SVPTHGVA AGMDAIQGVV MEIIITFALV +aqpz_ecoli QVVGGIVAAA LLYLIASGKT GFDAAASGFA sgYSMLSALV VELVLSAGFL +tip2_tobac QLLGSTVACL LLKYVTNGL. ..AVPTHGVA AGLNGFQGVV MEIIITFALV +tip1_tobac QLLGSTVACL LLKYVTNGL. ..AVPTHGVA AGLNGLQGVV MEIIITFALV +tipg_arath QLLGSVVACL ILKFATGGLA VPAFG...LS AGVGVLNAFV FEIVMTFGLV +bib_drome QCGGGIAGAA LLYGVTVPGY QGNLQAasHS AALAAWERFG VEFILTSLVV +tipr_arath QLLGSVVACL ILKFATGGLA VPPFG...LS AGVGVLNAFV FEIVMTFGLV +tipa_phavu QLLGSIVAAL VLRLVTNNMR PSGF...HVS PGVGVGHMFI LEVVMTFGLM +tipg_orysa QLLGSTVACF LLRFSTGGLA TGTFGL.... TGVSVWEALV LEIVMTFGLV + + 151 200 +predict_h258 LCVLATTDRR RRDLGGSAPL AIGLSVALGH LLAIDYTGCG INPARSFGSA +aqp1_rat LCVLATTDRR RRDLGGSAPL AIGLSVALGH LLAIDYTGCG INPARSFGSA +aqp1_mouse LCVLATTDRR RRDLGGSAPL AIGLSVALGH LLAIDYTGCG INPARSFGSA +aqp1_human LCVLATTDRR RRDLGGSAPL AIGLSVALGH LLAIDYTGCG INPARSFGSA +aqp1_bovin LCVLATTDRR RRDLGGSGPL AIGFSVALGH LLAIDYTGCG INPARSFGSS +aqp1_sheep LCVLATTDRR RrdLGDSGPL AIGFSVALGH LLAIDYTGCG INPARSFGSS +aqpa_ranes LCVVAVTDRR RHDVSGSVPL AIGLSVALGH LIAIDYTGCG MNPARSFGSA +aqp2_dasno .......... .......... .......... .......... .......... +aqp2_bovin .......... .......... .......... .......... .......... +aqp2_canfa .......... .......... .......... .......... .......... +aqp2_rabit .......... .......... .......... .......... .......... +aqp2_elema .......... .......... .......... .......... .......... +aqp2_horse .......... .......... .......... .......... .......... +aqp2_proha .......... .......... .......... .......... .......... +mip_rat LCIFATYDER RNGRMGSVAL AVGFSLTLGH LFGMYYTGAG MNPARSFAPA +aqp2_oryaf .......... .......... .......... .......... .......... +mip_mouse LCIFATYDER RNGRMGSVAL AVGFSLTLGH LFGMYYTGAG MNPARSFAPA +mip_ranpi LCIFATYDER RNGRLGSVSL AIGFSLTLGH LFGLYYTGAS MNPARSFAPA +mip_bovin LCIFATYDER RNGRLGSVAL AVGFSLTLGH LFGMYYTGAG MNPARSFAPA +mip_human LCIFATYDER RNGQLGSVAL AVGFSLALGH LFGMYYTGAG MNPARSFAPA +mip_chick ........DR HDGRPGSAAL PVGFSLALGH LFGIPFTGAG MNPARSFAPA +aqp5_rat LCIFSSTDSR RTSPVGSPAL SIGLSVTLGH LVGIYFTGCS MNPARSFGPA +aqp5_human LCIFASTDSR RTSPVGSPAL SIGLSVTLGH LVGIYFTGCS MNPARSFGPA +aqp2_human LCIFASTDER RGENPGTPAL SIGFSVALGH LLGIHYTGCS MNPARSLAPA +aqp4_human FTIFASCDSK RTDVTGSIAL AIGFSVAIGH LFAINYTGAS MNPARSFGPA +aqp4_rat FTIFASCDSK RTDVTGSVAL AIGFSVAIGH LFAINYTGAS MNPARSFGPA +aqp4_mouse FTVFASCDSK RTDVTGSIAL AIGFSVAIGH LFAINYTGAS MNPARSFGPA +aqp2_rat LCIFASTDER RGDNLGSPAL SIGFSVTLGH LLGIYFTGCS MNPARSLAPA +aqp2_mouse LCIFASTDER RSDNLGSPAL SIGFSVTLGH LLGIYFTGCS MNPARSLAPA +wc2a_arath YTVFSATDPK RSavPVLAPL PIGFAVFMVH LATIPITGTG INPARSFGAA +aqp6_human LCVFASTDSR QTS..GSPAT MIGISWALGH LIGILFTGCS MNPARSFGPA +wc2c_arath YTVFSATDPK RNavPVLAPL PIGFAVFMVH LATIPITGTG INPARSFGAA +wc2b_arath YTVFSATDPK RNavPVLAPL PIGFAVFMVH LATIPITGTG INPARSFGAS +wc1c_arath YTVFSATDAK RSavPILAPL PIGFAVFLVH LATIPITGTG INPARSLGAA +wc1b_arath YTVFSATDAK RNavPILAPL PIGFAVFLVH LATIPITGTG INPARSLGAA +tipw_lyces YTVFSATDAK RNavPILAPL PIGFAVFLVH LATIPITGTG INPARSLGAA +wc1a_arath YTVFSATDAK RNavPILAPL PIGFAVFLVH LATIPITATG INPARSLGAA +tipw_pea YTVFSATDAK RSavPILAPL PIGFAVFLVH LATIPITGTG INPARSLGAA +tipa_arath YVVYStiDPK RGSLGIIAPL AIGLIVGANI LVGGPFSGAS MNPARAFGPA +aqua_atrca YTVFSATDPK RSavPILAPL PIGFAVFMVH LATIPITGTG INPARSFGAA +dip_antma YTVYAtaDPK KGSLGVIAPI AIGFIVGANI LAAGPFSGGS MNPARSFGPA +aqpz_ecoli LVIHGATDKF APA..GFAPI AIGLALTLIH LISIPVTNTS VNPARSTAVA +tip2_tobac YTVYAtaDPK KGSLGTIAPI AIGFIVGANI LAAGPFSGGS MNPARSFGPA +tip1_tobac YTVYAtaDPK KGSLGTIAPI AIGFIVGANI LAAGPFSGGS MNPARSFGPA +tipg_arath YTVYAtiDPK NGSLGTIAPI AIGFIVGANI LAGGAFSGAS MNPAVAFGPA +bib_drome LCYFVSTDPM KKFMGNS.AA SIGCAYSACC FVSMPYLN.. ..PARSLGPS +tipr_arath YTVYAtiDPK NGSLGTIAPI AIGFIVGANI LAGGAFSGAS MNPAVAFGPA +tipa_phavu YTVYGtiDPK RGAVSYIAPL AIGLIVGANI LVGGPFDGAC MNPALAFGPS +tipg_orysa YTVYAtvDPK KGSLGTIAPI AIGFIVGANI LVGGAFDGAS MNPAVSFGPA + + 201 250 +predict_h258 VLTRNFSNHW IFWVGPFIGS ALAVLIYDFI LAPRSSDFTD RMKVWTSGQV +aqp1_rat VLTRNFSNHW IFWVGPFIGS ALAVLIYDFI LAPRSSDFTD RMKVWTSGQV +aqp1_mouse VLTRNFSNHW IFWVGPFIGG ALAVLIYDFI LAPRSSDFTD RMKVWTSGQV +aqp1_human VITHNFSNHW IFWVGPFIGG ALAVLIYDFI LAPRSSDLTD RVKVWTSGQV +aqp1_bovin VITHNFQDHW IFWVGPFIGA ALAVLIYDFI LAPRSSDLTD RVKVWTSGQV +aqp1_sheep VITHNFQDHW IFWVGPFIGA ALAVLIYDFI LAPRSSDLTD RVKVWTSGQV +aqpa_ranes VLTKNFTYHW IFWVGPMIGG AAAAIIYDFI LAPRTSDLTD RMKVWTNGQV +aqp2_dasno .......... .......... .......... .......... .......... +aqp2_bovin .......... .......... .......... .......... .......... +aqp2_canfa .......... .......... .......... .......... .......... +aqp2_rabit .......... .......... .......... .......... .......... +aqp2_elema .......... .......... .......... .......... .......... +aqp2_horse .......... .......... .......... .......... .......... +aqp2_proha .......... .......... .......... .......... .......... +mip_rat ILTRNFSNHW VYWVGPIIGG GLGSLLYDFL LFPRLKSVSE RLSILKGARP +aqp2_oryaf .......... .......... .......... .......... .......... +mip_mouse ILTRNFSNHW VYWVGPIIGG GLGSLLYDFL LFPRLKSVSE RLSILKGARP +mip_ranpi VLTRNFTNHW VYWVGPIIGG ALGGLVYDFI LFPRMRGLSE RLSILKGARP +mip_bovin ILTRNFTNHW VYWVGPVIGA GLGSLLYDFL LFPRLKSVSE RLSILKGSRP +mip_human ILTGNFTNHW VYWVGPIIGG GLGSLLYDFL LFPRLKSISE RLSVLKGAKP +mip_chick VITRNFTNHW VFWAGPLLGA ALAALLYELA LCPRARSMAE RLAV.LRGEP +aqp5_rat VVMNRFssHW VFWVGPIVGA MLAAILYFYL LFPSSLSLHD RVAVVKGTYE +aqp5_human VVMNRFsaHW VFWVGPIVGA VLAAILYFYL LFPNSLSLSE RVAIIKGTYE +aqp2_human VVTGKFDDHW VFWIGPLVGA ILGSLLYNYV LFPPAKSLSE RLAVLKGLEp +aqp4_human VIMGNWENHW IYWVGPIIGA VLAGGLYEYV FCPDVEFKRR FKEAFSKaqT +aqp4_rat VIMGNWENHW IYWVGPIIGA VLAGALYEYV FCPDVELKRR LKEAFSKaqT +aqp4_mouse VIMGNWANHW IYWVGPIMGA VLAGALYEYV FCPDVELKRR LKEAFSKaqT +aqp2_rat VVTGKFDDHW VFWIGPLVGA IIGSLLYNYL LFPSAKSLQE RLAVLKGLEp +aqp2_mouse VVTGKFDDHW VFWIGPLVGA IIGSLLYNYL LFPSTKSLQE RLAVLKGLEp +wc2a_arath VIYnpWDDHW IFWVGPFIGA AIAAFYHQFV LRASGSKSLG SFRSAANV.. +aqp6_human IIIGKFTVHW VFWVGPLMGA LLASLIYNFV LFPDTKTLAQ RLAILTGTVE +wc2c_arath VIFnpWDDHW IFWVGPFIGA TIAAFYHQFV LRASGSKSLG SFRSAANV.. +wc2b_arath VIYnpWDDHW IFWVGPFIGA AIAAFYHQFV LRASGSKSLG SFRSAANV.. +wc1c_arath IIYnaWDDHW IFWVGPFIGA ALAALYHQLV IRAIPFKSRS .......... +wc1b_arath IIFnaWDDHW VFWVGPFIGA ALAALYHVIV IRAIPFKSRS .......... +tipw_lyces IIYnaWNDHW IFWVGPMIGA ALAAIYHQII IRAMPFHRS. .......... +wc1a_arath IIYnsWDDHW VFWVGPFIGA ALAALYHVVV IRAIPFKSRS .......... +tipw_pea IVFngWNDHW IFWVGPFIGA ALAALYHQVV IRAIPFKSK. .......... +tipa_arath LVGWRWHDHW IYWVGPFIGS ALAALIYEYM VIPTEPPTHH AHGVHQPLAP +aqua_atrca VIyrVWDDHW IFWVGPFVGA LAAAAYHQYV LRAAAIKALG SFRSNPTN.. +dip_antma VASGDFSQNW IYWAGPLIGG ALAGFIYGDV FITAHAPLPT SEDYA..... +aqpz_ecoli IFQgaLEQLW FFWVVPIVGG IIGGLIYRTL LEKRD..... .......... +tip2_tobac VVAGDFSQNW IYWAGPLIGG GLAGFIYGDV FIGCHTPLPT SEDYA..... +tip1_tobac VVAGDFSQNW IYWAGPLIGG GLAGFIYGDV FIGCHTPLPT SEDYA..... +tipg_arath VVSWTWTNHW VYWAGPLVGG GIAGLIYEVF FINTTHEQLP TTDY...... +bib_drome FVLNKWDSHW VYWFGPLVGG MASGLVYEYI FNSRNRNLRH NKGSIDNDSS +tipr_arath VVSWTWTNHW VYWAGPLVGG GIAGLIYEVF FINTTHTSSS NHRLLN.... +tipa_phavu LVGWQWHQHW IFWVGPLLGA ALAALVYEYA VIPIEPPPHH HQPLATEDY. +tipg_orysa LVSWSWESQW VYWVGPLIGG GLAGVIYEVL FISHTHEQLP TTDY...... + + 251 269 +predict_h258 EEYDLDADDI NSRVEMKPK +aqp1_rat EEYDLDADDI NSRVEMKPK +aqp1_mouse EEYDLDADDI NSRVEMKPK +aqp1_human EEYDLDADDI NSRVEMKPK +aqp1_bovin EEYDLDADDI NSRVEMKPK +aqp1_sheep EEYDLDADDI NSRVEMKPK +aqpa_ranes EEYELDGDD. NTRVEMKPK +aqp2_dasno .......... ......... +aqp2_bovin .......... ......... +aqp2_canfa .......... ......... +aqp2_rabit .......... ......... +aqp2_elema .......... ......... +aqp2_horse .......... ......... +aqp2_proha .......... ......... +mip_rat SDSNGQPEGT GEPVELKTQ +aqp2_oryaf .......... ......... +mip_mouse SDSNGQPEGT GEPVELKTQ +mip_ranpi AEPEGQQEAT GEPIELKTQ +mip_bovin SESNGQPEVT GEPVELKTQ +mip_human DVSNGQPEVT GEPVELNTQ +mip_chick PAAAPPPEPP AEPLELKTQ +aqp5_rat PEEDWEDHRE ERKKTIELT +aqp5_human PDEDWEEQRE ERKKTMELT +aqp2_human tDWEEREVRR RQSVELHSP +aqp4_human KGSYMEVEDN RSQVETDDL +aqp4_rat KGSYMEVEDN RSQVETEDL +aqp4_mouse KGSYMEVEDN RSQVETEDL +aqp2_rat tDWEEREVRR RQSVELHSP +aqp2_mouse tDWEEREVRR RQSVELHSP +wc2a_arath .......... ......... +aqp6_human VGTGARAGAE PLKKESQPG +wc2c_arath .......... ......... +wc2b_arath .......... ......... +wc1c_arath .......... ......... +wc1b_arath .......... ......... +tipw_lyces .......... ......... +wc1a_arath .......... ......... +tipw_pea .......... ......... +tipa_arath EDY....... ......... +aqua_atrca .......... ......... +dip_antma .......... ......... +aqpz_ecoli .......... ......... +tip2_tobac .......... ......... +tip1_tobac .......... ......... +tipg_arath .......... ......... +bib_drome SIHSEDELNY DMDMEKPNK +tipr_arath .......... ......... +tipa_phavu .......... ......... +tipg_orysa .......... ......... + + +________________________________________________________________________________ + + + + + Prediction of: + + - secondary structure, by PHDsec + - solvent accessibility, by PHDacc + - and helical transmembrane regions, by PHDhtm + + PHD: Profile fed neural network systems from HeiDelberg + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Author: Burkhard Rost + EMBL, Heidelberg, FRG + Meyerhofstrasse 1, 69 117 Heidelberg + Internet: Predict-Help@EMBL-Heidelberg.DE + + All rights reserved. + + + + + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Secondary structure prediction by PHDsec: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Author: Burkhard Rost + EMBL, Heidelberg, FRG + Meyerhofstrasse 1, 69 117 Heidelberg + Internet: Rost@EMBL-Heidelberg.DE + + All rights reserved. + + + + +About the network method +~~~~~~~~~~~~~~~~~~~~~~~ + +The network procedure is described in detail in: +1) Rost, Burkhard; Sander, Chris: + Prediction of protein structure at better than 70% accuracy. + J. Mol. Biol., 1993, 232, 584-599. + +A brief description is given in: + Rost, Burkhard; Sander, Chris: + Improved prediction of protein secondary structure by use of se- + quence profiles and neural networks. + Proc. Natl. Acad. Sci. U.S.A., 1993, 90, 7558-7562. + +The PHD mail server is described in: +2) Rost, Burkhard; Sander, Chris; Schneider, Reinhard: + PHD - an automatic mail server for protein secondary structure + prediction. + CABIOS, 1994, 10, 53-60. + +The latest improvement steps (up to 72%) are explained in: +3) Rost, Burkhard; Sander, Chris: + Combining evolutionary information and neural networks to predict + protein secondary structure. + Proteins, 1994, 19, 55-72. + +To be quoted for publications of PHD output: + Papers 1-3 for the prediction of secondary structure and the pre- + diction server. + + + +About the input to the network +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The prediction is performed by a system of neural networks. +The input is a multiple sequence alignment. It is taken from an HSSP +file (produced by the program MaxHom: + Sander, Chris & Schneider, Reinhard: Database of Homology-Derived + Structures and the Structural Meaning of Sequence Alignment. + Proteins, 1991, 9, 56-68. + +For optimal results the alignment should contain sequences with varying +degrees of sequence similarity relative to the input protein. +The following is an ideal situation: + ++-----------------+----------------------+ +| sequence: | sequence identity | ++-----------------+----------------------+ +| target sequence | 100 % | +| aligned seq. 1 | 90 % | +| aligned seq. 2 | 80 % | +| ... | ... | +| aligned seq. 7 | 30 % | ++-----------------+----------------------+ + + + +Estimated Accuracy of Prediction +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A careful cross validation test on some 250 protein chains (in total +about 55,000 residues) with less than 25% pairwise sequence identity +gave the following results: + +++================++-----------------------------------------+ +|| Qtotal = 72.1% || ("overall three state accuracy") | +++================++-----------------------------------------+ + ++----------------------------+-----------------------------+ +| Qhelix (% of observed)=70% | Qhelix (% of predicted)=77% | +| Qstrand(% of observed)=62% | Qstrand(% of predicted)=64% | +| Qloop (% of observed)=79% | Qloop (% of predicted)=72% | ++----------------------------+-----------------------------+ +.......................................................................... + +These percentages are defined by: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +| number of correctly predicted residues +|Qtotal = --------------------------------------- (*100) +| number of all residues +| +| no of res correctly predicted to be in helix +|Qhelix (% of obs) = -------------------------------------------- (*100) +| no of all res observed to be in helix +| +| +| no of res correctly predicted to be in helix +|Qhelix (% of pred)= -------------------------------------------- (*100) +| no of all residues predicted to be in helix + +.......................................................................... + +Averaging over single chains +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The most reasonable way to compute the overall accuracies is the above +quoted percentage of correctly predicted residues. However, since the +user is mainly interested in the expected performance of the prediction +for a particular protein, the mean value when averaging over protein +chains might be of help as well. Computing first the three state +accuracy for each protein chain, and then averaging over 250 chains +yields the following average: + ++-------------------------------====--+ +| Qtotal/averaged over chains = 72.2% | ++-------------------------------====--+ +| standard deviation = 9.3% | ++-------------------------------------+ + +.......................................................................... + +Further measures of performance +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Matthews correlation coefficient: + ++---------------------------------------------+ +| Chelix = 0.63, Cstrand = 0.53, Cloop = 0.52 | ++---------------------------------------------+ +.......................................................................... + +Average length of predicted secondary structure segments: + +. +------------+----------+ +. | predicted | observed | ++-----------+------------+----------+ +| Lhelix = | 10.3 | 9.3 | +| Lstrand = | 5.0 | 5.3 | +| Lloop = | 7.2 | 5.9 | ++-----------+------------+----------+ +.......................................................................... + +The accuracy matrix in detail: + ++---------------------------------------+ +| number of residues with H, E, L | ++---------+------+------+------+--------+ +| |net H |net E |net L |sum obs | ++---------+------+------+------+--------+ +| obs H |12447 | 1255 | 3990 | 17692 | +| obs E | 949 | 7493 | 3750 | 12192 | +| obs L | 2604 | 2875 |19962 | 25441 | ++---------+------+------+------+--------+ +| sum Net |16000 |11623 |27702 | 55325 | ++---------+------+------+------+--------+ + +Note: This table is to be read in the following manner: + 12447 of all residues predicted to be in helix, were observed to + be in helix, 949 however belong to observed strands, 2604 to + observed loop regions. The term "observed" refers to the DSSP + assignment of secondary structure calculated from 3D coordinates + of experimentally determined structures (Dictionary of Secondary + Structure of Proteins: Kabsch & Sander (1983) Biopolymers, 22, + 2577-2637). + + + +Position-specific reliability index +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The network predicts the three secondary structure types using real +numbers from the output units. The prediction is assigned by choosing +the maximal unit ("winner takes all"). However, the real numbers +contain additional information. +E.g. the difference between the maximal and the second largest output +unit can be used to derive a "reliability index". This index is given +for each residue along with the prediction. The index is scaled to +have values between 0 (lowest reliability), and 9 (highest). +The accuracies (Qtot) to be expected for residues with values above a +particular value of the index are given below as well as the fraction +of such residues (%res).: + ++------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ +| index| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +| %res |100.0| 99.2| 90.4| 80.9| 71.6| 62.5| 52.8| 42.3| 29.8| 14.1| ++------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ +| | | | | | | | | | | | +| Qtot | 72.1| 72.3| 74.8| 77.7| 80.3| 82.9| 85.7| 88.5| 91.1| 94.2| +| | | | | | | | | | | | ++------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ +| H%obs| 70.4| 70.6| 73.7| 77.1| 80.1| 83.1| 86.0| 89.3| 92.5| 96.4| +| E%obs| 61.5| 61.7| 63.7| 66.6| 69.1| 71.7| 74.6| 77.0| 77.8| 68.1| +| | | | | | | | | | | | +| H%prd| 77.8| 78.0| 80.0| 82.6| 84.7| 86.9| 89.2| 91.3| 93.1| 95.4| +| E%prd| 64.5| 64.7| 67.8| 71.0| 74.2| 77.6| 81.4| 85.1| 89.8| 93.5| ++------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ + +The above table gives the cumulative results, e.g. 62.5% of all +residues have a reliability of at least 5. The overall three-state +accuracy for this subset of almost two thirds of all residues is 82.9%. +For this subset, e.g., 83.1% of the observed helices are correctly +predicted, and 86.9% of all residues predicted to be in helix are +correct. + +.......................................................................... + +The following table gives the non-cumulative quantities, i.e. the +values per reliability index range. These numbers answer the question: +how reliable is the prediction for all residues labeled with the +particular index i. + ++------+-----+-----+-----+-----+-----+-----+-----+-----+-----+ +| index| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +| %res | 8.8| 9.5| 9.3| 9.1| 9.7| 10.5| 12.5| 15.7| 14.1| ++------+-----+-----+-----+-----+-----+-----+-----+-----+-----+ +| | | | | | | | | | | +| Qtot | 46.6| 50.6| 57.7| 62.6| 67.9| 74.2| 82.2| 88.3| 94.2| +| | | | | | | | | | | ++------+-----+-----+-----+-----+-----+-----+-----+-----+-----+ +| H%obs| 36.8| 42.3| 49.5| 55.2| 61.7| 69.9| 78.8| 87.4| 96.4| +| E%obs| 44.7| 44.5| 52.1| 55.4| 60.9| 68.0| 75.9| 81.0| 68.1| +| | | | | | | | | | | +| H%prd| 49.9| 52.5| 60.3| 64.2| 69.2| 77.5| 85.4| 89.9| 95.4| +| E%prd| 41.7| 47.1| 53.6| 57.0| 64.0| 71.6| 78.8| 88.8| 93.5| ++------+-----+-----+-----+-----+-----+-----+-----+-----+-----+ + +For example, for residues with Relindex = 5 64% of all predicted betha- +strand residues are correctly identified. + + + + + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Solvent accessibility prediction by PHDacc: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Author: Burkhard Rost + EMBL, Heidelberg, FRG + Meyerhofstrasse 1, 69 117 Heidelberg + Internet: Rost@EMBL-Heidelberg.DE + + All rights reserved. + + + + +About the network method +~~~~~~~~~~~~~~~~~~~~~~~ + +The network for prediction of secondary structure is described in +detail in: + Rost, Burkhard; Sander, Chris: + Prediction of protein structure at better than 70% accuracy. + J. Mol. Biol., 1993, 232, 584-599. + +The analysis of the prediction of solvent exposure is given in: + Rost, Burkhard; Sander, Chris: + Conservation and prediction of solvent accessibility in protein + families. Proteins, 1994, 20, 216-226. + +To be quoted for publications of PHD exposure prediction: + Both papers quoted above. + + + +Definition of accessibility +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For training the residue solvent accessibility the DSSP (Dictionary of +Secondary Structure of Proteins; Kabsch & Sander (1983) Biopolymers, 22, +2577-2637) values of accessible surface area have been used. The +prediction provides values for the relative solvent accessibility. The +normalisation is the following: + +| ACCESSIBILITY (from DSSP in Angstrom) +|RELATIVE_ACCESSIBILITY = ------------------------------------- * 100 +| MAXIMAL_ACC (amino acid type i) + +where MAXIMAL_ACC (i) is the maximal accessibility of amino acid type i. +The maximal values are: + ++----+----+----+----+----+----+----+----+----+----+----+----+ +| A | B | C | D | E | F | G | H | I | K | L | M | +| 106| 160| 135| 163| 194| 197| 84| 184| 169| 205| 164| 188| ++----+----+----+----+----+----+----+----+----+----+----+----+ +| N | P | Q | R | S | T | V | W | X | Y | Z | +| 157| 136| 198| 248| 130| 142| 142| 227| 180| 222| 196| ++----+----+----+----+----+----+----+----+----+----+----+ + +Notation: one letter code for amino acid, B stands for D or N; Z stands + for E or Q; and X stands for undetermined. + +The relative solvent accessibility can be used to estimate the number +of water molecules (W) in contact with the residue: + +W = ACCESSIBILITY /10 + +The prediction is given in 10 states for relative accessibility, with + +RELATIVE_ACCESSIBILITY = (PREDICTED_ACC * PREDICTED_ACC) + +where PREDICTED_ACC = 0 - 9. + + + +Estimated Accuracy of Prediction +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A careful cross validation test on some 238 protein chains (in total +about 62,000 residues) with less than 25% pairwise sequence identity +gave the following results: + + +Correlation +........... + +The correlation between observed and predicted solvent accessibility +is: + +----------- +corr = 0.53 +----------- + +This value ought to be compared to the worst and best case prediction +scenario: random prediction (corr = 0.0) and homology modelling +(corr = 0.66). (Note: homology modelling yields a relative accurate +prediction in 3D if, and only if, a significantly identical sequence +has a known 3D structure.) + + +3-state accuracy +................ + +Often the relative accessibility is projected onto, e.g., 3 states: + b = buried (here defined as < 9% relative accessibility), + i = intermediate ( 9% <= rel. acc. < 36% ), + e = exposed ( rel. acc. >= 36% ). + +A projection onto 3 states or 2 states (buried/exposed) enables the +compilation of a 3- and 2-state prediction accuracy. PHD reaches an +overall 3-state accuracy of: + Q3 = 57.5% +(compared to 35% for random prediction and 70% for homology modelling). + +In detail: + ++-----------------------------------+-------------------------+ +| Qburied (% of observed)=77% | Qb (% of predicted)=60% | +| Qintermediate (% of observed)= 9% | Qi (% of predicted)=44% | +| Qexposed (% of observed)=78% | Qe (% of predicted)=56% | ++-----------------------------------+-------------------------+ + + +10-state accuracy +................. + +The network predicts relative solvent accessibility in 10 states, with +state i (i = 0-9) corresponding to a relative solvent accessibility of +i*i %. The 10-state accuracy of the network is: + + Q10 = 24.5% + +.......................................................................... + +These percentages are defined by: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +| number of correctly predicted residues +|Q3 = --------------------------------------- (*100) +| number of all residues +| +| no of res. correctly predicted to be buried +|Qburied (% of obs) = ------------------------------------------- (*100) +| no of all res. observed to be buried +| +| +| no of res. correctly predicted to be buried +|Qburied (% of pred)= ------------------------------------------- (*100) +| no of all residues predicted to be buried + +.......................................................................... + +Averaging over single chains +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The most reasonable way to compute the overall accuracies is the above +quoted percentage of correctly predicted residues. However, since the +user is mainly interested in the expected performance of the prediction +for a particular protein, the mean value when averaging over protein +chains might be of help as well. Computing first the correlation +between observed and predicted accessibility for each protein chan, and +then averaging over all 238 chains yields the following average: + ++-------------------------------====--+ +| corr/averaged over chains = 0.53 | ++-------------------------------====--+ +| standard deviation = 0.11 | ++-------------------------------------+ + +.......................................................................... + +Further details of performance accuracy +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The accuracy matrix in detail: +.............................. + +-------+----------------------------------------------------+----------- +\ PHD | 0 1 2 3 4 5 6 7 8 9 | SUM %obs +-------+----------------------------------------------------+----------- +OBS 0 | 8611 140 8 44 82 169 772 334 27 0 | 10187 16.6 +OBS 1 | 4367 164 0 50 106 231 738 346 44 3 | 6049 9.8 +OBS 2 | 3194 168 1 68 125 303 951 513 42 7 | 5372 8.7 +OBS 3 | 2760 159 8 80 136 327 1246 746 58 19 | 5539 9.0 +OBS 4 | 2312 144 2 72 166 396 1615 1245 124 19 | 6095 9.9 +OBS 5 | 1873 96 3 84 138 425 1979 1834 187 27 | 6646 10.8 +OBS 6 | 1387 67 1 60 80 278 2237 2627 231 51 | 7019 11.4 +OBS 7 | 1082 35 0 32 56 225 1871 3107 302 60 | 6770 11.0 +OBS 8 | 660 25 0 27 43 136 1206 2374 325 87 | 4883 7.9 +OBS 9 | 325 20 2 27 29 74 648 1159 366 214 | 2864 4.7 +-------+----------------------------------------------------+----------- +SUM |26571 1018 25 544 961 2564 13263 14285 1706 487 | +%pred | 43.3 1.7 0.0 0.9 1.6 4.2 21.6 23.3 2.8 0.8 | +-------+----------------------------------------------------+----------- + +Note: This table is to be read in the following manner: + 8611 of all residues predicted to be in exposed by 0%, were + observed with 0% relative accessibility. However, 325 of all + residues predicted to have 0% are observed as completely exposed + (obs = 9 -> rel. acc. >= 81%). The term "observed" refers to the + DSSP compilation of area of solvent accessibility calculated from + 3D coordinates of experimentally determined structures (Diction- + ary of Secondary Structure of Proteins: Kabsch & Sander (1983) + Biopolymers, 22, 2577-2637). + + +Accuracy for each amino acid: +............................. + ++---+------------------------------+-----+-------+------+ +|AA | Q3 b%o b%p i%o i%p e%o e%p | Q10 | corr | N | ++---+------------------------------+-----+-------+------+ +| A | 59.0 87 60 2 38 66 57 | 31 | 0.530 | 5054 | +| C | 62.0 91 67 5 39 25 21 | 34 | 0.244 | 893 | +| D | 56.5 21 45 6 49 94 57 | 20 | 0.321 | 3536 | +| E | 60.8 9 40 3 41 98 61 | 21 | 0.347 | 3743 | +| F | 63.3 94 67 9 46 29 37 | 27 | 0.366 | 2436 | +| G | 52.1 75 51 1 31 67 53 | 22 | 0.405 | 4787 | +| H | 50.9 63 53 23 45 71 50 | 18 | 0.442 | 1366 | +| I | 64.9 95 68 6 41 30 38 | 34 | 0.360 | 3437 | +| K | 66.6 2 11 2 37 98 67 | 23 | 0.267 | 3652 | +| L | 61.6 93 65 8 44 31 40 | 31 | 0.368 | 5016 | +| M | 60.1 92 64 5 39 45 44 | 29 | 0.452 | 1371 | +| N | 55.5 45 45 8 38 87 59 | 17 | 0.410 | 2923 | +| P | 53.0 48 48 9 39 83 56 | 18 | 0.364 | 2920 | +| Q | 54.3 27 44 7 44 92 56 | 20 | 0.344 | 2225 | +| R | 49.9 15 47 36 47 76 51 | 18 | 0.372 | 2765 | +| S | 55.6 69 53 3 51 81 56 | 22 | 0.464 | 3981 | +| T | 51.8 61 51 8 38 78 53 | 21 | 0.432 | 3740 | +| V | 61.1 93 65 5 40 39 42 | 34 | 0.418 | 4156 | +| W | 56.2 85 62 20 49 29 27 | 21 | 0.318 | 891 | +| Y | 49.7 73 52 33 49 36 38 | 19 | 0.359 | 2301 | ++---+------------------------------+-----+-------+------+ + +Abbreviations: + +AA: amino acid in one-letter code +b%o, i%o, e%o: = Qburied, Qintermediate, Qexposed (% of observed), + i.e. percentage of correct prediction in each state, see above +b%p, i%p, e%p: = Qburied, Qintermediate, Qexposed (% of predicted), + i.e. probability of correct prediction in each state, see above +b%o: = Qburied (% of observed), see above +Q10: percentage of correctly predicted residues in each of the 10 + states of predicted relative accessibility. +corr: correlation between predicted and observed rel. acc. +N: number of residues in data set + + +Accuracy for different secondary structure: +........................................... + ++--------+------------------------------+----+-------+-------+ +| type | Q3 b%o b%p i%o i%p e%o e%p |Q10 | corr | N | ++--------+------------------------------+----+-------+-------+ +| helix | 59.5 79 64 8 44 80 56 | 27 | 0.574 | 20100 | +| strand | 61.3 84 73 9 46 69 37 | 35 | 0.524 | 13356 | +| loop | 54.4 64 43 11 44 78 61 | 18 | 0.442 | 27968 | ++--------+------------------------------+----+-------+-------+ + +Abbreviations as before. + + + +Position-specific reliability index +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The network predicts the 10 states for relative accessibility using real +numbers from the output units. The prediction is assigned by choosing +the maximal unit ("winner takes all"). However, the real numbers +contain additional information. +E.g. the difference between the maximal and the second largest output +unit (with the constraint that the second largest output is compiled +among all units at least 2 positions off the maximal unit) can be used +to derive a "reliability index". This index is given for each residue +along with the prediction. The index is scaled to have values between +0 (lowest reliability), and 9 (highest). +The accuracies (Q3, corr, asf.) to be expected for residues with values +above a particular value of the index are given below as well as the +fraction of such residues (%res).: + ++---+------------------------------+----+-------+-------+ +|RI | Q3 b%o b%p i%o i%p e%o e%p |Q10 | corr | %res | ++---+------------------------------+----+-------+-------+ +| 0 | 57.5 77 60 9 44 78 56 | 24 | 0.535 | 100.0 | +| 1 | 59.1 76 63 9 45 82 57 | 25 | 0.560 | 91.2 | +| 2 | 61.7 79 66 4 47 87 58 | 27 | 0.594 | 77.1 | +| 3 | 66.6 87 70 1 51 89 63 | 30 | 0.650 | 57.1 | +| 4 | 70.0 89 72 0 83 91 67 | 32 | 0.686 | 45.8 | +| 5 | 72.9 92 75 0 0 93 70 | 34 | 0.722 | 35.6 | +| 6 | 76.3 95 77 0 0 93 75 | 36 | 0.769 | 24.7 | +| 7 | 79.0 97 79 0 0 93 78 | 39 | 0.803 | 16.0 | +| 8 | 80.9 98 80 0 0 91 81 | 43 | 0.824 | 9.6 | +| 9 | 81.2 99 80 0 0 88 83 | 45 | 0.828 | 5.9 | ++---+------------------------------+----+-------+-------+ + +Abbreviations as before. + +The above table gives the cumulative results, e.g. 45.8% of all +residues have a reliability of at least 4. The correlation for this +most reliably predicted half of the residues is 0.686, i.e. a value +comparable to what could be expected if homology modelling were +possible. For this subset of 45.8% of all residues, 89% of the buried +residues are correctly predicted, and 72% of all residues predicted to +be buried are correct. + +.......................................................................... + +The following table gives the non-cumulative quantities, i.e. the +values per reliability index range. These numbers answer the question: +how reliable is the prediction for all residues labeled with the +particular index i. + ++---+------------------------------+----+-------+-------+ +|RI | Q3 b%o b%p i%o i%p e%o e%p |Q10 | corr | %res | ++---+------------------------------+----+-------+-------+ +| 0 | 40.9 79 40 16 41 21 40 | 14 | 0.175 | 8.8 | +| 1 | 45.4 61 46 28 44 48 44 | 17 | 0.278 | 14.1 | +| 2 | 47.4 53 52 10 46 80 44 | 19 | 0.343 | 19.9 | +| 3 | 52.9 75 59 4 50 77 47 | 23 | 0.439 | 11.4 | +| 4 | 60.0 81 63 0 83 84 56 | 25 | 0.547 | 10.1 | +| 5 | 65.2 82 70 0 0 93 62 | 28 | 0.607 | 10.9 | +| 6 | 71.3 90 72 0 0 94 70 | 31 | 0.692 | 8.8 | +| 7 | 76.0 94 76 0 0 95 75 | 34 | 0.762 | 6.3 | +| 8 | 80.5 97 81 0 0 94 79 | 39 | 0.808 | 3.8 | +| 9 | 81.2 99 80 0 0 88 83 | 45 | 0.828 | 5.9 | ++---+------------------------------+----+-------+-------+ + +For example, for residues with RI = 4 83% of all predicted intermediate +residues are correctly predicted as such. + + + + + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Prediction of helical transmembrane segments by PHDhtm: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Author: Burkhard Rost + EMBL, Heidelberg, FRG + Meyerhofstrasse 1, 69 117 Heidelberg + Internet: Rost@EMBL-Heidelberg.DE + + All rights reserved. + + + + +About the network method +~~~~~~~~~~~~~~~~~~~~~~~ + +The PHD mail server is described in: + Rost, Burkhard; Sander, Chris; Schneider, Reinhard: + PHD - an automatic mail server for protein secondary structure + prediction. + CABIOS, 1994, 10, 53-60. + +To be quoted for publications of PHDhtm output: + Rost, Burkhard; Casadio, Rita; Fariselli, Piero; Sander, Chris: + Prediction of helical transmembrane segments at 95% accuracy. + Protein Science, 1995, 4, 521-533. + + + +Estimated Accuracy of Prediction +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A cross validation test on 69 helical trans-membrane proteins (in total +about 30,000 residues) with less than 25% pairwise sequence identity +gave the following results: + +++================++-----------------------------------------+ +|| Qtotal = 94.7% || ("overall two state accuracy") | +++================++-----------------------------------------+ + ++----------------------------+-----------------------------+ +| Qhelix (% of observed)=92% | Qhelix (% of predicted)=83% | +| Qloop (% of observed)=96% | Qloop (% of predicted)=97% | ++----------------------------+-----------------------------+ + +.......................................................................... + +These percentages are defined by: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +| number of correctly predicted residues +|Qtotal = --------------------------------------- (*100) +| number of all residues +| +| no of res correctly predicted to be in helix +|Qhelix (% of obs) = -------------------------------------------- (*100) +| no of all res observed to be in helix +| +| +| no of res correctly predicted to be in helix +|Qhelix (% of pred)= -------------------------------------------- (*100) +| no of all residues predicted to be in helix + +.......................................................................... + +Further measures of performance +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Matthews correlation coefficient: + ++---------------------------------------------+ +| Chelix = 0.84, Cloop = 0.84 | ++---------------------------------------------+ +.......................................................................... + +Average length of predicted secondary structure segments: + +| +------------+----------+ +| | predicted | observed | ++-----------+------------+----------+ +| Lhelix = | 24.6 | 22.2 | ++-----------+------------+----------+ +.......................................................................... + +The accuracy matrix in detail: + ++---------------------------------+ +| number of residues with H, L | ++---------+------+-------+--------+ +| |net H | net L |sum obs | ++---------+------+-------+--------+ +| obs H | 5214 | 492 | 5706 | +| obs L | 1050 | 22423 | 23473 | ++---------+------+-------+--------+ +| sum Net | 6264 | 22915 | 29179 | ++---------+------+-------+--------+ + +Note: This table is to be read in the following manner: + 5214 of all residues predicted to be in a helical trans-membrane + region, were observed to be in the lipid bilayer, 1050 however + were observed either inside or outside of the protein, i.e. in + loop (or non-membrane) regions. The term "observed" refers to DSSP + assignment of secondary structure calculated from 3D coordinates + of experimentally determined structures (Dictionary of Secondary + Structure of Proteins: Kabsch & Sander (1983) Biopolymers, 22, + 2577-2637) where these were available. For all other proteins, + the assignment of trans-membrane segments has been taken from the + Swissprot data bank (Bairoch, A.; Boeckmann, B.: The SWISS-PROT + protein sequence data bank. Nucl. Acids Res. 20: 2019-2022, 1992). + +.......................................................................... + +Overlap between predicted and observed segments: + ++-----------------+---------------+----------------+ +| segment overlap | % of observed | % of predicted | +| Sov helix | 95.6% | 95.5% | +| Sov loop | 83.6% | 97.2% | ++-----------------+---------------+----------------+ +| Sov total | 86.0% | 96.8% | ++-----------------+---------------+----------------+ + + Definition of Sov in: Rost et al., JMB, 1994, 235, 13-26. + + As helical trans-membrane segments are longer than globular heli- + ces, correctly predicted segments can easily be made out. PHDhtm + misses 5 out of 258 observed segments, predicts 6 where non is + observed and 3 times the predicted helical segment overlaps two + observed regions. Thus, in total more than 95% of all segments + are correctly predicted. + +.......................................................................... + +Entropy of prediction (information measure): + ++-----------------+ +| I = 0.64 | ++-----------------+ + + (For comparison: homology modelling of globular proteins in three + states: I=0.62.) + Definition of Sov in: Rost et al., JMB, 1994, 235, 13-26. + + + +Position-specific reliability index +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The network predicts two states: helical trans-membrane region and rest +using two output units. The prediction is assigned by choosing the ma- +ximal unit ("winner takes all"). However, the real numbers of the out- +put units contain additional information. +E.g. the difference between the two output units can be used to derive +a "reliability index". This index is given for each residue along with +the prediction. The index is scaled to have values between 0 (lowest +reliability), and 9 (highest). +The accuracies (Qtot) to be expected for residues with values above a +particular value of the index are given below as well as the fraction +of such residues (%res).: + ++------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ +| index| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +| %res |100.0| 98.8| 97.3| 95.9| 94.1| 92.3| 89.9| 86.2| 75.0| 66.8| ++------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ +| | | | | | | | | | | | +| Qtot | 94.7| 95.2| 95.6| 96.2| 96.7| 97.2| 97.7| 98.4| 99.4| 99.8| +| | | | | | | | | | | | ++------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ +| H%obs| 91.8| 92.9| 93.8| 94.4| 95.0| 95.7| 96.2| 96.8| 95.5| 78.7| +| L%obs| 95.3| 95.7| 96.1| 96.6| 97.0| 97.5| 98.1| 98.8| 99.7|100.0| +| | | | | | | | | | | | +| H%prd| 82.7| 83.8| 85.0| 86.7| 88.1| 89.7| 91.4| 93.8| 96.3| 97.1| +| L%prd| 97.9| 98.3| 98.5| 98.7| 98.8| 99.0| 99.2| 99.4| 99.7| 99.9| ++------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ + +The above table gives the cumulative results, e.g. 92.3% of all +residues have a reliability of at least 5. The overall two-state +accuracy for this subset is 97.2%. For this subset, e.g., 95.7% of +the observed helical trans-membrane residues are correctly predicted, +and 89.7% of all residues predicted to be in helical trans-membrane +segment are correct. + + + + + + + +The resulting network (PHD) prediction is: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +________________________________________________________________________________ + + + + PHD: Profile fed neural network systems from HeiDelberg + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Prediction of: + secondary structure, by PHDsec + solvent accessibility, by PHDacc + and helical transmembrane regions, by PHDhtm + + Author: + Burkhard Rost + EMBL, 69012 Heidelberg, Germany + Internet: Rost@EMBL-Heidelberg.DE + + All rights reserved. + + + + The network systems are described in: + + PHDsec: B Rost & C Sander: JMB, 1993, 232, 584-599. + B Rost & C Sander: Proteins, 1994, 19, 55-72. + PHDacc: B Rost & C Sander: Proteins, 1994, 20, 216-226. + PHDhtm: B Rost et al.: Prot. Science, 1995, 4, 521-533. + + + + Some statistics + ~~~~~~~~~~~~~~~ + + Percentage of amino acids: + +--------------+--------+--------+--------+--------+--------+ + | AA: | L | A | S | G | I | + | % of AA: | 13.0 | 10.0 | 9.7 | 8.9 | 8.6 | + +--------------+--------+--------+--------+--------+--------+ + | AA: | V | R | T | F | D | + | % of AA: | 7.8 | 5.2 | 4.5 | 4.5 | 4.5 | + +--------------+--------+--------+--------+--------+--------+ + | AA: | N | Q | E | P | K | + | % of AA: | 4.1 | 3.0 | 3.0 | 2.6 | 2.6 | + +--------------+--------+--------+--------+--------+--------+ + | AA: | Y | M | W | H | C | + | % of AA: | 1.9 | 1.9 | 1.5 | 1.5 | 1.5 | + +--------------+--------+--------+--------+--------+--------+ + + Percentage of secondary structure predicted: + +--------------+--------+--------+--------+ + | SecStr: | H | E | L | + | % Predicted: | 43.9 | 16.7 | 39.4 | + +--------------+--------+--------+--------+ + + According to the following classes: + all-alpha: %H>45 and %E< 5; all-beta : %H<5 and %E>45 + alpha-beta : %H>30 and %E>20; mixed: rest, + this means that the predicted class is: mixed class + + + + PHD output for your protein + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Tue Nov 24 17:44:57 1998 + Jury on: 10 different architectures (version 5.94_317 ). + Note: differently trained architectures, i.e., different versions can + result in different predictions. + + + + About the protein + ~~~~~~~~~~~~~~~~~ + + HEADER /home/phd/server/work/predict_h25873-220 + COMPND + SOURCE + AUTHOR + SEQLENGTH 269 + NCHAIN 1 chain(s) in predict_h25873-22040 data set + NALIGN 48 + (=number of aligned sequences in HSSP file) + + + + Abbreviations: PHDsec + ~~~~~~~~~~~~~~~~~~~~~ + + sequence: + AA : amino acid sequence + secondary structure: + HEL: H=helix, E=extended (sheet), blank=other (loop) + PHD: Profile network prediction HeiDelberg + Rel: Reliability index of prediction (0-9) + detail: + prH: 'probability' for assigning helix + prE: 'probability' for assigning strand + prL: 'probability' for assigning loop + note: the 'probabilites' are scaled to the interval 0-9, e.g., + prH=5 means, that the first output node is 0.5-0.6 + subset: + SUB: a subset of the prediction, for all residues with an expected + average accuracy > 82% (tables in header) + note: for this subset the following symbols are used: + L: is loop (for which above " " is used) + ".": means that no prediction is made for this residue, as the + reliability is: Rel < 5 + + Abbreviations: PHDacc + ~~~~~~~~~~~~~~~~~~~~~ + + SS : secondary structure + HEL: H=helix, E=extended (sheet), blank=other (loop) + solvent accessibility: + 3st: relative solvent accessibility (acc) in 3 states: + b = 0-9%, i = 9-36%, e = 36-100%. + PHD: Profile network prediction HeiDelberg + Rel: Reliability index of prediction (0-9) + O_3: observed relative acc. in 3 states: B, I, E + note: for convenience a blank is used intermediate (i). + P_3: predicted relative accessibility in 3 states + 10st:relative accessibility in 10 states: + = n corresponds to a relative acc. of n*n % + subset: + SUB: a subset of the prediction, for all residues with an expected + average correlation > 0.69 (tables in header) + note: for this subset the following symbols are used: + "I": is intermediate (for which above " " is used) + ".": means that no prediction is made for this residue, as the + reliability is: Rel < 4 + + + Abbreviations: PHDhtm + ~~~~~~~~~~~~~~~~~~~~~ + + secondary structure: + HL: T=helical transmembrane region, blank=other (loop) + PHD: Profile network prediction HeiDelberg + PHDF:filtered prediction, i.e., too long transmembrane segments + are split, too short ones are deleted + Rel: Reliability index of prediction (0-9) + detail: + prH: 'probability' for assigning helical transmembrane region + prL: 'probability' for assigning loop + note: the 'probabilites' are scaled to the interval 0-9, e.g., + prH=5 means, that the first output node is 0.5-0.6 + subset: + SUB: a subset of the prediction, for all residues with an expected + average accuracy > 82% (tables in header) + note: for this subset the following symbols are used: + L: is loop (for which above " " is used) + ".": means that no prediction is made for this residue, as the + reliability is: Rel < 5 + + + + protein: predict length 269 + + ....,....1....,....2....,....3....,....4....,....5....,....6 + AA |MASEIKKKLFWRAVVAEFLAMTLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSI| + PHD sec | HHHHHHHHHHHHHHHHHHHHHHHHHHEE HHHHHHHHHHHHH| + Rel sec |998443148899999999999998997676530312469989998623353579999999| + detail: + prH sec |001223468899999999999998888777653112210000000145566788999999| + prE sec |000011000000000000000001001111233542100000000000323211000000| + prL sec |998665420100000000000000000011112244578988998753100000000000| + subset: SUB sec |LLL.....HHHHHHHHHHHHHHHHHHHHHHH......LLLLLLLLL...H.HHHHHHHHH| + + ACCESSIBILITY + 3st: P_3 acc |eeeebee bbb bbbbbbbbbbbbbbbbbbbbbebeee eeeeeeeeebbbbbbbbbbbb| + 10st: PHD acc |997706650005000000000000000000000607775779776677000000000000| + Rel acc |735421110541467608662789996343122133420454330023453975664547| + subset: SUB acc |e.ee.....bb.bbbb.bbb.bbbbbb.b.......e..eee......bb.bbbbbbbbb| + ....,....7....,....8....,....9....,....10...,....11...,....12 + AA |ATLAQSVGHISGAHSNPAVTLGLLLSCQISILRAVMYIIAQCVGAIVASAILSGITSSLL| + PHD sec |HHHHHHHHHE HHHHEHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH | + Rel sec |999996412122653167703135552356779999999999999999999998467213| + detail: + prH sec |998986544334223477843456665567779999999999999999999998611343| + prE sec |001001123420010000145432101221110000000000000000000000000000| + prL sec |000001232245765521000000123210000000000000000000000000278555| + subset: SUB sec |HHHHHH......LL..HHH....HHH..HHHHHHHHHHHHHHHHHHHHHHHHHH.LL...| + + ACCESSIBILITY + 3st: P_3 acc |bbbbebbbebbbbbb bbbbbbbbbbbebbbbbbbbbbbbbbbbbbbbbbbbeebbeeeb| + 10st: PHD acc |000060006000000500000000000600000000000000000000000067006760| + Rel acc |456515321655013144869663400154551757478936465465467713401400| + subset: SUB acc |bbbb.b...bbb....bbbbbbb.b...bbbb.bbbbbbb.bbbbbbbbbbb..b..e..| + ....,....13...,....14...,....15...,....16...,....17...,....18 + AA |ENSLGRNDLARGVNSGQGLGIEIIGTLQLVLCVLATTDRRRRDLGGSAPLAIGLSVALGH| + PHD sec | HHH EEEEEEEEEEEEEEEEEEE E E HHHHHH| + Rel sec |359985212134223651899898866789799875436658889963211351457756| + detail: + prH sec |320002345432332111000000000000100000221120000000001113567767| + prE sec |100000000000011014899888877789789886100000000013544222221111| + prL sec |568986543466545763100000011100000112567768889975454564210111| + subset: SUB sec |.LLLLL.........LL.EEEEEEEEEEEEEEEEEE..LLLLLLLLL.....L..HHHHH| + + ACCESSIBILITY + 3st: P_3 acc |eeebbbebbbeebeebeebbbbbbbbbbbbbbbbbbbeeeeeeeebbbbbbbbbbbbbbb| + 10st: PHD acc |677000600077076077000000000000000000077767767000000000000000| + Rel acc |133100124043040233247198656399879530035414413123255869586654| + subset: SUB acc |........b.e..e.....bb.bbbbb.bbbbbb....ee.ee......bbbbbbbbbbb| + ....,....19...,....20...,....21...,....22...,....23...,....24 + AA |LLAIDYTGCGINPARSFGSAVLTRNFSNHWIFWVGPFIGSALAVLIYDFILAPRSSDFTD| + PHD sec |HEEEE E HHHEEEE EEEEEE HHHHHHHHHHHHHEEEEE | + Rel sec |321341126989622145152653534229996251699999999973147525556642| + detail: + prH sec |521100000000145432463121122000000114789999999875421111121124| + prE sec |244564431000000000015765121358997510000000000013467642110000| + prL sec |233234457889754567411012655530002364200000000010010136667765| + subset: SUB sec |........LLLLL....H.H.EE.L....EEEE.L.HHHHHHHHHHH...EE.LLLLL..| + + ACCESSIBILITY + 3st: P_3 acc |bbbbebbbbbbebb bbbbbbbbeebeebbbbbbbbbbbbbbbbbbbbbbbbeeeee ee| + 10st: PHD acc |000060000006005000000007606600000000000000000000000076777577| + Rel acc |754424240102242141047612131118967874356346635751777031345044| + subset: SUB acc |bbbb.b.b.....b..b..bbb.......bbbbbbb.bb.bbb.bbb.bbb....ee.ee| + ....,....25...,....26...,....27...,....28...,....29...,....30 + AA |RMKVWTSGQVEEYDLDADDINSRVEMKPK| + PHD sec |HHHHHH | + Rel sec |66775259975467555457776422699| + detail: + prH sec |77887520012221222221111100000| + prE sec |00000000000000000000001233200| + prL sec |11112379987678777678887655799| + subset: SUB sec |HHHHH.LLLLL.LLLLL.LLLLL...LLL| + + ACCESSIBILITY + 3st: P_3 acc |ebebbeeeeeeeeeeeeeeeeeebeeeee| + 10st: PHD acc |60700787677777677777767067789| + Rel acc |10411563134335144444514212559| + subset: SUB acc |..e..ee...e..e.eeeeee.e...eee| + + + PHDhtm Helical transmembrane prediction + note: PHDacc and PHDsec are reliable for water- + soluble globular proteins, only. Thus, + please take the predictions above with + particular caution wherever transmembrane + helices are predicted by PHDhtm! + + + PHDhtm +--- +--- PhdTopology REFINEMENT AND TOPOLOGY PREDICTION: SYMBOLS +--- AA : amino acid in one-letter code +--- PHD htm : HTM's predicted by the PHD neural network +--- system (T=HTM, ' '=not HTM) +--- Rel htm : Reliability index of prediction (0-9, 0 is low) +--- detail : Neural network output in detail +--- prH htm : 'Probability' for assigning a helical trans- +--- membrane region (HTM) +--- prL htm : 'Probability' for assigning a non-HTM region +--- note: 'Probabilites' are scaled to the interval +--- 0-9, e.g., prH=5 means, that the first +--- output node is 0.5-0.6 +--- subset : Subset of more reliable predictions +--- SUB htm : All residues for which the expected average +--- accuracy is > 82% (tables in header). +--- note: for this subset the following symbols are used: +--- L: is loop (for which above ' ' is used) +--- '.': means that no prediction is made for this, +--- residue as the reliability is: Rel < 5 +--- other : predictions derived based on PHDhtm +--- PHDFhtm : filtered prediction, i.e., too long HTM's are +--- split, too short ones are deleted +--- PHDRhtm : refinement of neural network output +--- PHDThtm : topology prediction based on refined model +--- symbols used: +--- i: intra-cytoplasmic +--- T: transmembrane region +--- o: extra-cytoplasmic +--- +--- PhdTopology REFINEMENT AND TOPOLOGY PREDICTION + ....,....1....,....2....,....3....,....4....,....5....,....6 + AA |MASEIKKKLFWRAVVAEFLAMTLFVFISIGSALGFNYPLERNQTLVQDNVKVSLAFGLSI| + PHD htm | TTTTTTTTTTTTTTTTTTT TTTTTTTTTTTT| + detail: | | + prH htm |000000000001136788999999999988875321110000000123678889999988| + prL htm |999999999998863211000000000011124678889999999876321110000011| + other: | | + PHDFhtm | TTTTTTTTTTTTTTTTTTT TTTTTTTTTTT| + PHDRhtm | TTTTTTTTTTTTTTTTTT TTTTTTTTTTT| + PHDThtm |iiiiiiiiiiiiiiTTTTTTTTTTTTTTTTTToooooooooooooooooTTTTTTTTTTT| + subset: | | + SUB htm |............................................................| + ....,....7....,....8....,....9....,....10...,....11...,....12 + AA |ATLAQSVGHISGAHSNPAVTLGLLLSCQISILRAVMYIIAQCVGAIVASAILSGITSSLL| + PHD htm |TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT | + detail: | | + prH htm |888888877777666677788888888888888888888888888888888876543211| + prL htm |111111122222333322211111111111111111111111111111111123456788| + other: | | + PHDFhtm |TTTTTTTTTTTTTTTT TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT | + PHDRhtm |TTTTTTTT TTTTTTTTTTTTTTTTTTTTTTTTT | + PHDThtm |TTTTTTTTiiiiiiiiiiiiiTTTTTTTTTTTTTTTTTTTTTTTTToooooooooooooo| + subset: | | + SUB htm |............................................................| + ....,....13...,....14...,....15...,....16...,....17...,....18 + AA |ENSLGRNDLARGVNSGQGLGIEIIGTLQLVLCVLATTDRRRRDLGGSAPLAIGLSVALGH| + PHD htm | TTTTTTTTTTTTTTTTTTT TTTTTTTTTTTTT| + detail: | | + prH htm |000000000001234567788888999988887643211111111235788899998888| + prL htm |999999999998765432211111000011112356788888888764211100001111| + other: | | + PHDFhtm | TTTTTTTTTTTTTTTTTTT TTTTTTTTTTTTT| + PHDRhtm | TTTTTTTTTTTTTTTTTT TTTTTTTTTTTT| + PHDThtm |ooooooooooooooooTTTTTTTTTTTTTTTTTTiiiiiiiiiiiiiiTTTTTTTTTTTT| + subset: | | + SUB htm |............................................................| + ....,....19...,....20...,....21...,....22...,....23...,....24 + AA |LLAIDYTGCGINPARSFGSAVLTRNFSNHWIFWVGPFIGSALAVLIYDFILAPRSSDFTD| + PHD htm |TTTTTTTTT TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT | + detail: | | + prH htm |888887765443432233334566777777788888888888888888887542100000| + prL htm |111112234556567766665433222222211111111111111111112457899999| + other: | | + PHDFhtm |TTTTTTTTT TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT | + PHDRhtm |TTTTTT TTTTTTTTTTTTTTTTTTT | + PHDThtm |TTTTTToooooooooooooooooooooooooTTTTTTTTTTTTTTTTTTTiiiiiiiiii| + subset: | | + SUB htm |............................................................| + ....,....25...,....26...,....27...,....28...,....29...,....30 + AA |RMKVWTSGQVEEYDLDADDINSRVEMKPK| + PHD htm | | + detail: | | + prH htm |00000000000000000000000000000| + prL htm |99999999999999999999999999999| + other: | | + PHDFhtm | | + PHDRhtm | | + PHDThtm |iiiiiiiiiiiiiiiiiiiiiiiiiiiii| + subset: | | + SUB htm |.............................| +--- +--- PhdTopology REFINEMENT AND TOPOLOGY PREDICTION END +--- + +________________________________________________________________________________ + + + +________________________________________________________________________________ + + +----------------------------------------------------------------------------- +--- PredictProtein: NEWS from January, 1997 --- +--- --- +--- Dear user, --- +--- --- +--- as of January 1, 1997, EMBL has effectively decided to not --- +--- support the PredictProtein service by personal resources. I do --- +--- maintain the program, so to speak, in my private time. However, --- +--- my contract obliges me to do science, instead. Unfortunately, --- +--- the computer environment at EMBL is at the same time starting --- +--- to become increasingly unstable. Consequence of these two re- --- +--- cent developments is that the PredictProtein service is not as --- +--- stable as it was. --- +--- --- +--- I apologise for the problems this may cause. In particular, --- +--- I apologise for my inability to reply to the 20-30 daily, per- --- +--- sonal mails, and suggest to re-submit requests after 24 hours! --- +--- --- +--- Hoping that I shall find a more convenient solution for the --- +--- future of the PredictProtein I remain with my best regards, --- +--- --- +--- Burkhard Rost --- +----------------------------------------------------------------------------- +--- PredictProtein: NEWS from April, 1998 --- +--- --- +-------------------------------- --- +--- MOVING PredictProtein --- +--- There appears to be light on the horizon! PP will may be having --- +--- many hickups over the next months (as I shall leave EMBL). How- --- +--- ever, the server seems to have a fair chance of survival thanks --- +--- to a major support that is being raised by Columbia University, --- +--- New York, U.S.A.). I hope that this will settle the issue for --- +--- the years to come ... --- +-------------------------------- --- +--- WARNING --- +--- After a major rewriting of most of the PP code over the last, --- +--- I am afraid that not all errors have been traced by me, yet. --- +--- Thus, please have mercy and report any bug you'll encounter! --- +--- THANKS, Burkhard Rost --- +-------------------------------- --- +--- NEW PREDICTION DEFAULTS --- +--- * Coiled-coil regions: now by default the program COILS written by --- +--- Andrei Lupas is run on your sequence. An output is returned if a --- +--- coiled-coil region has been detected. --- +--- * Functional sequence motifs: now by default the PROSITE database --- +--- written by Amos Bairoch, Philip Bucher and Kay Hofmann is scanned --- +--- for sequence motifs. An output is returned if any motif has been --- +--- detected. --- +-------------------------------- --- +--- see http://www.embl-heidelberg.de/predictprotein/ppNews.html --- +--- for a description of the following new options. --- +--- NEW INPUT OPTION --- +--- * Your input sequence(s) in FASTA-list format ("# FASTA list ") --- +--- NEW OUTPUT OPTIONS --- +--- * Return also BLASTP output ("return blast") --- +--- * Return prediction additionally in RDB format ("return phd rdb") --- +--- * Return topits hssp ("return topits hssp") --- +--- * Return topits strip ("return topits strip") --- +--- * Return topits own ("return topits own") --- +--- * Return no coils ("return no coils") --- +--- * Return no prosite ("return no prosite") --- +----------------------------------------------------------------------------- +%</AQP1PHD> +% \end{macrocode} +% \begin{macrocode} +%<*AQPHMMsgl> +>HP: 269 AQP1 IN 6 14 33 54 73 94 112 139 156 165 184 211 230 +>HP: 271 AQP2 IN 6 17 35 44 65 86 104 131 148 157 176 203 224 +>HP: 285 AQP3 IN 6 22 41 50 72 103 122 153 172 185 207 238 260 +>HP: 323 AQP4 IN 6 37 57 70 92 123 147 160 177 186 205 232 254 +>HP: 265 AQP5 IN 6 13 32 59 78 87 110 131 149 158 177 204 228 +%</AQPHMMsgl> +% \end{macrocode} +% \begin{macrocode} +%<*AQPHMMext> +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 + +Protein: AQP2 +Length: 271 +N-terminus: IN +Number of transmembrane helices: 6 +Transmembrane helices: 17-35 44-65 86-104 131-148 157-176 203-224 + +Total entropy of the model: 17.0017 +Entropy of the best path: 17.0046 + +The best path: + + seq MWELRSIAFS RAVLAEFLAT LLFVFFGLGS ALQWASSPPS VLQIAVAFGL 50 + pred IIIIIIiiii iiiiiiHHHH HHHHHHHHHH HHHHHooooo oooHHHHHHH + + seq GIGILVQALG HVSGAHINPA VTVACLVGCH VSFLRAAFYV AAQLLGAVAG 100 + pred HHHHHHHHHH HHHHHiiiii iiiiiiiiii iiiiiHHHHH HHHHHHHHHH + + seq AAILHEITPV EIRGDLAVNA LHNNATAGQA VTVELFLTMQ LVLCIFASTD 150 + pred HHHHoooooo oooooooooo oooooooooo HHHHHHHHHH HHHHHHHHii + + seq ERRGDNLGSP ALSIGFSVTL GHLLGIYFTG CSMNPARSLA PAVVTGKFDD 200 + pred iiiiiiHHHH HHHHHHHHHH HHHHHHoooo oooooooooo oooooooooo + + seq HWVFWIGPLV GAIIGSLLYN YLLFPSAKSL QERLAVLKGL EPDTDWEERE 250 + pred ooHHHHHHHH HHHHHHHHHH HHHHiiiiii iiiiiiiiiI IIIIIIIIII + + seq VRRRQSVELH SPQSLPRGSK A 271 + pred IIIIIIIIII IIIIIIIIII I + +Protein: AQP3 +Length: 285 +N-terminus: IN +Number of transmembrane helices: 6 +Transmembrane helices: 22-41 50-72 103-122 153-172 185-207 238-260 + +Total entropy of the model: 17.0059 +Entropy of the best path: 17.0075 + +The best path: + + seq MNRCGEMLHI RYRLLRQALA ECLGTLILVM FGCGSVAQVV LSRGTHGGFL 50 + pred IIIIIIiiii iiiiiiiiii iHHHHHHHHH HHHHHHHHHH HooooooooH + + seq TINLAFGFAV TLAILVAGQV SGAHLNPAVT FAMCFLAREP WIKLPIYTLA 100 + pred HHHHHHHHHH HHHHHHHHHH HHiiiiiiii iiiiiiiiii iiiiiiiiii + + seq QTLGAFLGAG IVFGLYYDAI WAFAGNELVV SGPNGTAGIF ATYPSGHLDM 150 + pred iiHHHHHHHH HHHHHHHHHH HHoooooooo oooooooooo oooooooooo + + seq VNGFFDQFIG TAALIVCVLA IVDPYNNPVP RGLEAFTVGL VVLVIGTSMG 200 + pred ooHHHHHHHH HHHHHHHHHH HHiiiiiiii iiiiHHHHHH HHHHHHHHHH + + seq FNSGYAVNPA RDFGPRLFTA LAGWGSEVFT TGQNWWWVPI VSPLLGSIGG 250 + pred HHHHHHHooo oooooooooo oooooooooo oooooooHHH HHHHHHHHHH + + seq VFVYQLMIGC HLEQPPPSTE AENVKLAHMK HKEQI 285 + pred HHHHHHHHHH iiiiiiiiii iiiiiIIIII IIIII + +Protein: AQP4 +Length: 323 +N-terminus: IN +Number of transmembrane helices: 6 +Transmembrane helices: 37-57 70-92 123-147 160-177 186-205 232-254 + +Total entropy of the model: 17.0058 +Entropy of the best path: 17.0091 + +The best path: + + seq MSDGAAARRW GKCGPPCSRE SIMVAFKGVW TQAFWKAVTA EFLAMLIFVL 50 + pred IIIIIIIIII IIIIIIIIII Iiiiiiiiii iiiiiiHHHH HHHHHHHHHH + + seq LSVGSTINWG GSENPLPVDM VLISLCFGLS IATMVQCFGH ISGGHINPAV 100 + pred HHHHHHHooo oooooooooH HHHHHHHHHH HHHHHHHHHH HHiiiiiiii + + seq TVAMVCTRKI SIAKSVFYIT AQCLGAIIGA GILYLVTPPS VVGGLGVTTV 150 + pred iiiiiiiiii iiiiiiiiii iiHHHHHHHH HHHHHHHHHH HHHHHHHooo + + seq HGNLTAGHGL LVELIITFQL VFTIFASCDS KRTDVTGSVA LAIGFSVAIG 200 + pred oooooooooH HHHHHHHHHH HHHHHHHiii iiiiiHHHHH HHHHHHHHHH + + seq HLFAINYTGA SMNPARSFGP AVIMGNWENH WIYWVGPIIG AVLAGALYEY 250 + pred HHHHHooooo oooooooooo oooooooooo oHHHHHHHHH HHHHHHHHHH + + seq VFCPDVELKR RLKEAFSKAA QQTKGSYMEV EDNRSQVETE DLILKPGVVH 300 + pred HHHHiiiiii iiiiiiiiiI IIIIIIIIII IIIIIIIIII IIIIIIIIII + + seq VIDIDRGDEK KGKDSSGEVL SSV 323 + pred IIIIIIIIII IIIIIIIIII III + +Protein: AQP5 +Length: 265 +N-terminus: IN +Number of transmembrane helices: 6 +Transmembrane helices: 13-32 59-78 87-110 131-149 158-177 204-228 + +Total entropy of the model: 17.0020 +Entropy of the best path: 17.0052 + +The best path: + + seq MKKEVCSLAF FKAVFAEFLA TLIFVFFGLG SALKWPSALP TILQISIAFG 50 + pred IIIIIIIIii iiHHHHHHHH HHHHHHHHHH HHoooooooo oooooooooo + + seq LAIGTLAQAL GPVSGGHINP AITLALLIGN QISLLRAVFY VAAQLVGAIA 100 + pred ooooooooHH HHHHHHHHHH HHHHHHHHii iiiiiiHHHH HHHHHHHHHH + + seq GAGILYWLAP LNARGNLAVN ALNNNTTPGK AMVVELILTF QLALCIFSST 150 + pred HHHHHHHHHH oooooooooo oooooooooo HHHHHHHHHH HHHHHHHHHi + + seq DSRRTSPVGS PALSIGLSVT LGHLVGIYFT GCSMNPARSF GPAVVMNRFS 200 + pred iiiiiiiHHH HHHHHHHHHH HHHHHHHooo oooooooooo oooooooooo + + seq PSHWVFWVGP IVGAMLAAIL YFYLLFPSSL SLHDRVAVVK GTYEPEEDWE 250 + pred oooHHHHHHH HHHHHHHHHH HHHHHHHHii iiiiiiiiii iiiIIIIIII + + seq DHREERKKTI ELTAH 265 + pred IIIIIIIIII IIIII +%</AQPHMMext> +% \end{macrocode} +% \begin{macrocode} +%<*Standard> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% %%%%% +%%%%% Standard genetic code definitions %%%%% +%%%%% %%%%% +%%%%% (The last codon of each list is used for backtranslations %%%%% +%%%%% from protein to DNA sequences---therefore the wobbles) %%%%% +%%%%% %%%%% +%%%%% These definitions are default in TeXshade. %%%%% +%%%%% There is no need to load them. This is an example file only. %%%%% +%%%%% %%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\codon{A}{GCA,GCG,GCC,GCT,GCU,GCN} +\codon{C}{TGC,TGT,UGC,UGU,TGY} +\codon{D}{GAC,GAT,GAU,GAY} +\codon{E}{GAA,GAG,GAR} +\codon{F}{TTC,TTT,UUC,UUU,TTY} +\codon{G}{GGA,GGG,GGC,GGT,GGU,GGN} +\codon{H}{CAC,CAT,CAY} +\codon{I}{ATA,ATC,ATT,AUA,AUC,AUU,ATH} +\codon{K}{AAA,AAG,AAG,AAR} +\codon{L}{CTA,CTG,CTC,CTT,TTA,TTG,CUG,CUG,CUC,CUU,UUA,UUG,YTN} +\codon{M}{ATG,AUG,ATG} +\codon{N}{AAC,AAT,AAU,AAY} +\codon{P}{CCA,CCG,CCC,CCT,CCU,CCN} +\codon{Q}{CAA,CAG,CAR} +\codon{R}{AGA,AGG,CGA,CGG,CGC,CGT,CGU,MGN} +\codon{S}{TCT,TCC,TCG,TCA,AGT,AGC,UCU,UCC,UCG,UCA,AGU,WSN} +\codon{T}{ACT,ACC,ACG,ACA,ACU,ACN} +\codon{V}{GTA,GTG,GTC,GTT,GUA,GUG,GUC,GUU,GTN} +\codon{W}{TGG,UGG,TGG} +\codon{Y}{TAC,TAT,UAC,UAU,TAY} +\codon{.}{TAA,TAG,TGA,UAA,UAG,UGA,TRR} +%</Standard> +% \end{macrocode} +% \begin{macrocode} +%<*Ciliate> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% %%%%% +%%%%% Ciliate macronuclear genetic code definitions %%%%% +%%%%% %%%%% +%%%%% Only exchanges compared to the standard code must be defined. %%%%% +%%%%% %%%%% +%%%%% (The last codon of the list is used for backtranslations %%%%% +%%%%% from protein to DNA sequences---therefore the wobbles) %%%%% +%%%%% %%%%% +%%%%% %%%%% +%%%%% Activate these definitions for your alignment by the following %%%%% +%%%%% command in the texshade environment: %%%%% +%%%%% %%%%% +%%%%% \geneticcode{ciliate} %%%%% +%%%%% %%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\codon{Q}{TAA,TAG,UAA,UAG,YAR} +%</Ciliate> +% \end{macrocode} +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/texshade/texshade.ins b/Master/texmf-dist/source/latex/texshade/texshade.ins new file mode 100644 index 00000000000..14679e1c3ff --- /dev/null +++ b/Master/texmf-dist/source/latex/texshade/texshade.ins @@ -0,0 +1,72 @@ +%% +%% docstrip install file for texshade.sty +%% +%% Copyright 1999-2005 Eric Beitz +%% +\def\batchfile{texshade.ins} + +\input docstrip + +\askforoverwritefalse +\keepsilent + +\declarepreamble\texshade + +LaTeX package for typesetting nucleotide and peptide alignments + +Copyright (C) 1999-2005 Eric Beitz +See the file texshade.txt + +\endpreamble + +\generate{\usepreamble\texshade% + \file{texshade.sty}{\from{texshade.dtx}{texshade}}} + +\generate{\usepreamble\empty \usepostamble\empty% + \file{texshade.def}{\from{texshade.dtx}{definitions}} + \file{AQPDNA.MSF}{\from{texshade.dtx}{AQPDNA}} + \file{AQPpro.MSF}{\from{texshade.dtx}{AQPpro}} + \file{AQP2spec.ALN}{\from{texshade.dtx}{AQP2spec}} + \file{AQP1.top}{\from{texshade.dtx}{AQP1topo}} + \file{AQP1.phd}{\from{texshade.dtx}{AQP1PHD}} + \file{AQP_HMM.sgl}{\from{texshade.dtx}{AQPHMMsgl}} + \file{AQP_HMM.ext}{\from{texshade.dtx}{AQPHMMext}} + \file{standard.cod}{\from{texshade.dtx}{Standard}} + \file{ciliate.cod}{\from{texshade.dtx}{Ciliate}}} + +\Msg{**************************************************************} +\Msg{*} +\Msg{* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!} +\Msg{* !!! Have you used a docstrip version 2.4 or later?} +\Msg{* !!!} +\Msg{* !!! IF NOT GO AND GET A RECENT VERSION!} +\Msg{* !!!} +\Msg{* !!! The documentation will not run through TeX with} +\Msg{* !!! your files extracted by an old docstrip version!} +\Msg{* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by LaTeX:} +\Msg{*} +\Msg{* \space\space texshade.sty} +\Msg{* \space\space texshade.def} +\Msg{* \space\space standard.cod} +\Msg{* \space\space ciliate.cod} +\Msg{*} +\Msg{* To produce the documentation run the following file twice} +\Msg{* through LaTeX:} +\Msg{*} +\Msg{* \space\space texshade.dtx} +\Msg{*} +\Msg{* Make sure that the following files are present in the same} +\Msg{* directory as texshade.dtx (needed for texing the doc):} +\Msg{*} +\Msg{* \space\space AQPDNA.MSF} +\Msg{* \space\space AQPpro.MSF} +\Msg{* \space\space APQ2spec.ALN} +\Msg{* \space\space AQP1.top} +\Msg{* \space\space APQ1.phd} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*} +\Msg{**************************************************************} |