From f6a09a7a14c0554f9118c06bdfd67813eac4c0ab Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 30 Jun 2006 13:15:37 +0000 Subject: texshade 1.15 update git-svn-id: svn://tug.org/texlive/trunk@1729 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/texshade/texshade.dtx | 3608 +++++++++++++++++--- .../texmf-dist/source/latex/texshade/texshade.ins | 4 +- 2 files changed, 3134 insertions(+), 478 deletions(-) (limited to 'Master/texmf-dist/source/latex/texshade') diff --git a/Master/texmf-dist/source/latex/texshade/texshade.dtx b/Master/texmf-dist/source/latex/texshade/texshade.dtx index d36d37f4aae..50faa1265d9 100644 --- a/Master/texmf-dist/source/latex/texshade/texshade.dtx +++ b/Master/texmf-dist/source/latex/texshade/texshade.dtx @@ -10,7 +10,7 @@ % `texshade.txt' for further information! % % -% Copyright (C) 1999-2005 Eric Beitz +% Copyright (C) 1999-2006 Eric Beitz % See the file texshade.txt % % \fi @@ -210,6 +210,61 @@ % and background. % } % +% \changes{1.13}{2006-02-23}{% +% Corrections: Helix symbols in feature lines were not drawn +% correctly if the standard Computer Modern Font +% was changed to another one, e.g. Palatino (thanks +% to Markus Heller). Fixed. +% Unintended gaps occurred due to numbers at the +% end of lines in Clustal W alignment files. Fixed. +% Frames were too tall when sequences were hidden +% or killed. Fixed. +% The limitations in the number of sequences per +% alignment have finally been overcome by a more +% restrictive use of counter variables. +% Introduction: The numbering can now be displayed on both sides +% of the alignment with the optional parameter +% {leftright}; +% TeXshade tries to guess the sequence type (protein +% or nucleotide) if not defined by the user; +% Implementation of sequence logos: +% `showsequencelogo', `hidesequencelogo', +% `namesequencelogo', `logostretch', +% `logocolor', `clearlogocolors', +% `showlogoscale', `hidelogoscale' +% `dofrequencycorrection', `undofrequencycorrection'; +% The ruler numbering can now be rotated with +% `rotateruler' and back with `unrotateruler', +% this way every position can be numbered which is +% often wanted when e.g. sequence logos are plotted; +% the font family (sf, rm, tt) can be set for the +% ruler, e.g. `rulertt' or `setfamily{ruler}{tt}'; +% `hideseqs' and `showseqs' in order to hide/show +% all sequences, esp. useful with sequence logos; +% `allowzero' and `disallowzero' - use (or do not +% use) the number `0' in the sequence numbering as +% sometimes wanted in sequence logos; +% Implementation of a new way to visualize residues +% which are characteristic for protein subfamilies, +% i.e. subfamily logos: +% `showsubfamilylogo', `hidesubfamilylogo', +% `namesubfamilylogo', +% `setsubfamily', +% `shownegatives', `hidenegatives'. +% } +% +% \changes{1.14}{2006-05-11}{% +% Introduction: `showrelevance', `hiderelevance', +% `relevance': commands to set a bit-value above +% which subfamily deviations are considered relevant +% and to label such positions in the subfamily logo. +% } +% +% \changes{1.15}{2006-06-27}{% +% Correction: Logos can now be plotted with pdflatex; pstricks is +% not needed anymore. +% } +% % % \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 @@ -248,7 +303,7 @@ % 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\\} +% \date{v1.15; 2006/06/27\\} % \maketitle % \begin{abstract} % Setting alignments of nucleotides and peptides for publication @@ -325,6 +380,50 @@ % % \subsection{Version History} % +% \textbf{v1.15 2006/06/27} +% \medskip +% +% \emph{Correction:} Sequence and subfamily logos can now be plotted +% with pdflatex; pstricks is not needed anymore. +% \bigskip +% +% +% \textbf{v1.14 2006/05/11} +% \medskip +% +% \emph{Introduction:} In order to better recognize relevant positions +% in a subfamily logo [13], a bit-value can now be set by |\relevance| +% above which a deviation is considered relevant. Such positions +% can be labeled with a symbol by |\showrelevance| and hidden +% by |\hiderelevance|. +% \bigskip +% +% +% \textbf{v1.13 2006/02/23} +% \medskip +% +% \emph{Corrections:} Helix symbols in feature lines were not drawn +% correctly if the standard Computer Modern Font was changed to +% another one, e.g. Palatino.\footnote{Thanks to Markus Heller} +% Fixed. Unintended gaps occurred due to numbers at the +% end of lines in Clustal W alignment files. Fixed. The limitations +% in the number of sequences per alignment have finally been overcome +% by a more restrictive use of counter variables. +% +% \emph{Introductions:} (a) The numbering can now be displayed---in +% addition to left or right---on both sides of the alignment with +% the optional parameter |{leftright}| in the |\shownumbering| +% command (p.\pageref{Lshownumbering}). (b) TeXshade tries to guess +% the sequence type, i.\,e.\ protein or nucleotide, if not defined +% by the user. (c) Plotting of sequence logos has been implemented +% (p.\pageref{Lshowsequencelogo}). +% Logos can be shown in addition to or together with the consensus, +% or alone without any alignment sequences. (d) The ruler numbering +% can be rotated in order to make labeling of every position possible. +% (e) A new way to visualize subfamily characteristics has been +% implemented, i.e. subfamily logos (p.\pageref{Lshowsubfamilylogo}) [13]. +% \bigskip +% % \textbf{v1.12 2005/09/20} % \medskip % @@ -342,7 +441,7 @@ % \textbf{v1.11 2005/04/13} % \medskip % -% \emph{Corrections:} Bounding boxes with |\framebox| had a wrong +% \emph{Corrections:} Bounding boxes with |\frameblock| had a wrong % height when |\separationline|s were used. Other minor fixes. % % \emph{Introductions:} (a) An additional parameter for setting @@ -411,8 +510,6 @@ % alignment\footnote{Inspired by Christoph Gille's {\tt STRAP}}. % \bigskip % -% \newpage -% % \textbf{v1.7 2004/01/05} % \medskip % @@ -469,8 +566,6 @@ % 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 @@ -695,14 +790,16 @@ % % % -% \subsection{System requirements} +% \subsection{System requirements} \label{require} % -% \TeXshade{} requires \LaTeXe{} and |color.sty| for shading. +% \TeXshade{} requires \LaTeXe{} with |color.sty| and |graphics.sty| +% for shading. For arrows in the feature line (p.\pageref{Lfeature}) +% the AMS Math style is needed. % 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 +% `Graphics Bundle' [1]. This and the other packages can be downloaded +% from any \TeX{} archive, e.g.\ |ftp.dante.de|; usually they are % 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 @@ -711,16 +808,15 @@ % 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. +% loaded. % -% With the |[dvips]| option for example the output DVI-file +% With the |[dvips]| option 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 +% {\sc 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. +% standard \TeX{} viewers are to a certain extent \textsc{PostScript} +% compatible. % \bigskip % % \subsection{The \texttt{texshade} environment} @@ -781,23 +877,47 @@ % 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. +% percentage.\medskip % % \begin{texshade}{AQPpro.MSF} % \setends{1}{80..112} % \hideconsensus % \end{texshade} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \begin{texshade}{AQPpro.MSF} +% \setends{1}{80..112} +% \hideconsensus +% \end{texshade} +% \end{verbatim} +% } % % 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} +% or without shading according to the degree of conservation: +% \medskip\label{shadecons} +% +% \begin{texshade}{AQPpro.MSF} +% \allmatchspecial +% \setends{1}{80..112} +% \showconsensus[ColdHot]{bottom} +% \defconsensus{.}{lower}{upper} +% \end{texshade} % +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} % \begin{texshade}{AQPpro.MSF} % \allmatchspecial % \setends{1}{80..112} % \showconsensus[ColdHot]{bottom} % \defconsensus{.}{lower}{upper} % \end{texshade} +% \end{verbatim}} % % \subsubsection{Similarity mode} % @@ -821,8 +941,20 @@ % 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 +% \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} % +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} % \begin{texshade}{AQPpro.MSF} % \shadingmode[allmatchspecial]{similar} % \setends{1}{80..112} @@ -830,6 +962,7 @@ % \feature{top}{1}{93..93}{fill:$\downarrow$}{first case (see text)} % \feature{bottom}{1}{98..98}{fill:$\uparrow$}{second case (see text)} % \end{texshade} +% \end{verbatim}} % % Probably you know % this kind of shading from the VMS/Unix and DOS public domain program @@ -856,10 +989,31 @@ % \begin{texshade}{AQP2spec.ALN} % \seqtype{P} % \shadingmode{diverse} +% \setends{1}{77..109} \residuesperline*{33} +% \featureslarge +% \feature{top}{1}{77..109}{}{AQP2 species variants} +% \namesrm\namessl +% \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} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \begin{texshade}{AQP2spec.ALN} +% \seqtype{P} +% \shadingmode{diverse} % \setends{1}{77..109} % \featureslarge % \feature{top}{1}{77..109}{}{AQP2 species variants} -% \namesrm\namesit +% \namesrm\namessl % \hidenumbering\showruler{top}{1} % \shownames{left} % \nameseq{1}{Bos taurus} @@ -869,6 +1023,7 @@ % \nameseq{5}{Elephas maximus} % \frameblock{1}{82..82,106..106}{Red[1pt]} % \end{texshade}\label{frame} +% \end{verbatim}} % % % \subsubsection{Functionality modes} @@ -888,55 +1043,111 @@ % (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} +% \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} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \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} +% \end{verbatim}} % % \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} +% \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} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \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} +% \end{verbatim}} % % % \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} +% \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} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \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} +% \end{verbatim}} % % % \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} +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[chemical]{functional} +% \setends{1}{138..170} +% \showlegend +% \end{texshade} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[chemical]{functional} +% \setends{1}{138..170} +% \showlegend +% \end{texshade} +% \end{verbatim}} % % With |\shadeallresidues| \label{Lshadeallresidues} the % threshold is ignored and @@ -945,11 +1156,47 @@ % 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} +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[chemical]{functional} +% \setends{1}{138..170} +% \shadeallresidues +% \end{texshade} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[chemical]{functional} +% \setends{1}{138..170} +% \shadeallresidues +% \end{texshade} +% \end{verbatim}} +% +% +% \item [\textbf{rasmol}:] similar to |[chemical]| but with +% shading following the rasmol +% color scheme \label{ras} +% +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[rasmol]{functional} +% \setends{1}{138..170} +% \shadeallresidues +% \showlegend +% \end{texshade} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[rasmol]{functional} +% \setends{1}{138..170} +% \shadeallresidues +% \showlegend +% \end{texshade} +% \end{verbatim}} +% % % % \item [\textbf{standard area}:] this shading displays the @@ -957,12 +1204,24 @@ % 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} +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[standard area]{functional} +% \setends{1}{138..170} +% \showlegend +% \shadeallresidues +% \end{texshade} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[standard area]{functional} +% \setends{1}{138..170} +% \showlegend +% \shadeallresidues +% \end{texshade} +% \end{verbatim}} % % \item [\textbf{accessible area}:] \label{accarea} % here, the surface area which can @@ -973,15 +1232,31 @@ % 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} +% \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} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \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{verbatim}} +% % \end{itemize} % % @@ -999,16 +1274,32 @@ % 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} +% \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} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \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} +% \end{verbatim}} % % % @@ -1047,7 +1338,7 @@ % 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]. +% was inspired by a publication by \textsc{Kai-Uwe Fr\"ohlich} [6]. % \medskip % % \begin{texshade}{AQPpro.MSF} @@ -1055,15 +1346,30 @@ % \shadingcolors{grays} % \fingerprint{360} % \showlegend -% \feature{top}{1}{13..36,51..68,94..112,138..156,165..185,211..232}{,-,}{TM} +% \feature{top}{1}{13..36,51..68,94..112,138..156,% +% 165..185,211..232}{,-,}{TM} +% \end{texshade} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \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} +% \end{verbatim}} % % 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 % % -% \medskip % \begin{texshade}{AQPpro.MSF} % \shadingmode[charge]{functional} % \shadeallresidues @@ -1071,14 +1377,174 @@ % \gapchar{rule} % \showlegend % \end{texshade} +% +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \begin{texshade}{AQPpro.MSF} +% \shadingmode[charge]{functional} +% \shadeallresidues +% \fingerprint{360} +% \gapchar{rule} +% \showlegend +% \end{texshade} +% \end{verbatim}} +% +% +% \subsection{Sequence logos} +% +% \label{logo} +% +% Sequence logos represent the information content of the aligned +% sequences at a position in bit (max.\ 2 bit for DNA, i.\,e. +% log$_2$4, and 4.322 bit for proteins, i.\,e. log$_2$20) and the +% relative frequency of a base or amino acid at this +% position [7]. Thus, more information is contained in logos than in +% a standard consensus sequence. +% The example below shows a DNA sequence alignment with the logo on the +% top. +% +% It must be remarked that a logo from only five sequences does not +% produce meaningful results - it rather illustrates the technique. +% +% \medskip +% +% \begin{texshade}{AQPDNA.MSF} +% \setends{1}{414..443} +% \showsequencelogo{top} +% \end{texshade} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \begin{texshade}{AQPDNA.MSF} +% \setends{1}{414..443} +% \showsequencelogo{top} +% \end{texshade} +% \end{verbatim}} +% +% +% Next, only the logo of a protein alignment is displayed plus the +% degree of sequence conservation as a color scale in the consensus +% line. Note, that the full functionality of the feature lines remains. +% \medskip +% +% \begin{texshade}{AQPpro.MSF} +% \setends{AQP3.PRO}{203..235} +% \showsequencelogo{top} \showlogoscale{leftright} +% \hideseqs +% \residuesperline*{33} +% \defconsensus{{$\bullet$}}{{$\bullet$}}{{$\bullet$}} +% \showconsensus[ColdHot]{bottom} +% \nameconsensus{conservation} \namessf\namessl +% \showruler{bottom}{AQP3.PRO} \rulersteps{1} +% \feature{top}{AQP3.PRO}{208..210}{---}{NPA} +% \feature{top}{AQP3.PRO}{211..219}{helix}{} +% \feature{top}{AQP3.PRO}{220..232}{brace}{loop E} +% \feature{top}{AQP3.PRO}{233..235}{helix}{TM6} +% \feature{bottom}{AQP3.PRO}{203..235}{brace}{1-step numbering} +% \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). +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \begin{texshade}{AQPpro.MSF} +% \setends{AQP3.PRO}{203..235} +% \showsequencelogo{top} \showlogoscale{leftright} +% \hideseqs +% \residuesperline*{33} +% \defconsensus{{$\bullet$}}{{$\bullet$}}{{$\bullet$}} +% \showconsensus[ColdHot]{bottom} +% \nameconsensus{conservation} \namessf\namessl +% \showruler{bottom}{AQP3.PRO} \rulersteps{1} +% \feature{top}{AQP3.PRO}{208..210}{---}{NPA} +% \feature{top}{AQP3.PRO}{211..219}{helix}{} +% \feature{top}{AQP3.PRO}{220..232}{brace}{loop E} +% \feature{top}{AQP3.PRO}{233..235}{helix}{TM6} +% \feature{bottom}{AQP3.PRO}{203..235}{brace}{1-step numbering} +% \end{texshade} +% \end{verbatim}} % +% The same logo is shown below but with frequence correction turned +% on (|\dofrequencycorrection|), see p.\pageref{Lshowsequencelogo}. +% This takes into account the difference between the amino acid +% distribution in the alignment and the equal distribution of +% 5\% for each residue. +% \medskip +% +% \begin{texshade}{AQPpro.MSF} +% \setends{AQP3.PRO}{203..235} +% \showsequencelogo{top} \showlogoscale{leftright} +% \hideseqs +% \residuesperline*{33} +% \defconsensus{{$\bullet$}}{{$\bullet$}}{{$\bullet$}} +% \showconsensus[ColdHot]{bottom} +% \nameconsensus{conservation} \namessf\namessl +% \showruler{bottom}{AQP3.PRO} \rulersteps{1} +% \feature{top}{AQP3.PRO}{208..210}{---}{NPA} +% \feature{top}{AQP3.PRO}{211..219}{helix}{} +% \feature{top}{AQP3.PRO}{220..232}{brace}{loop E} +% \feature{top}{AQP3.PRO}{233..235}{helix}{TM6} +% \feature{bottom}{AQP3.PRO}{203..235}{brace}{1-step numbering} +% \dofrequencycorrection +% \end{texshade} % +% +% \subsection{Subfamily logos} +% +% \label{sublogo} +% +% The following output is derived from the calculation of a +% subfamily logo [13]. Such logos display relevant deviations of a +% subfamily compared to the remaining set of sequences. Here, +% typical residues of AQP3 are shown (upright) which deviate +% from the remaining four aquaporins of this alignment (upside-down). +% The output can be directly compared to the sequence logo above, +% which displays the same section of the alignment. +% Note, that five sequence are far too few to obtain meaningful +% results with this method. This is just to illustrate the +% approach. +% \medskip +% +% \begin{texshade}{AQPpro.MSF} +% \setends{AQP3.PRO}{203..235} +% \residuesperline*{33} +% \setsubfamily{3} +% \showsubfamilylogo{top} \showlogoscale{leftright} +% \namesubfamilylogo[others]{AQP3} +% \namessf \namessl +% \showruler{bottom}{AQP3.PRO} \rulersteps{1} +% \hideseqs +% \hideconsensus +% \dofrequencycorrection +% \end{texshade} +% +% Code:\medskip +% +% \vbox{% +% \begin{verbatim} +% \begin{texshade}{AQPpro.MSF} +% \setends{AQP3.PRO}{203..235} +% \residuesperline*{33} +% \setsubfamily{3} +% \showsubfamilylogo{top} \showlogoscale{leftright} +% \namesubfamilylogo[others]{AQP3} +% \namessf \namessl +% \showruler{bottom}{AQP3.PRO} \rulersteps{1} +% \hideseqs +% \hideconsensus +% \dofrequencycorrection +% \end{texshade} +% \end{verbatim}} % -% \subsection{Customization of alignment outputs} +% +% +% +% \subsection{Customization of the alignment output} % % Extensive possibilities are given to the user to customize % the final output of an alignment. Thus, all parameters defining the @@ -1634,7 +2100,7 @@ % used to redefine the |diverse| mode settings (mind the double % curly braces around the dot-symbol!). % -% \item |\shadingmode[|\meta{type}|]{functional}| +% \item |\shadingmode[|\meta{type}|]{functional}|\label{funcdef} % 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 @@ -1659,10 +2125,15 @@ % G, P, S, T, W, Y). % % \item \meta{type} = |chemical|\quad Acidic (D, E), aliphatic -% (A, G, I, L, V), amide (N, Q), aromatic +% (I, L, V), aliphatic (small) (A, G), +% amide (N, Q), aromatic % (F, W, Y), basic (H, K, R), hydroxyl % (S, T), imino (P) and sulfur (C, M). % +% \item \meta{type} = |rasmol|\quad (D, E), (K, R, H), (F, Y, W), +% (A, G), (C, M), (S, T), (N, Q), (I, L, V), +% (P). +% % \end{itemize} % % The two modes described below highlight sidechain sizes and @@ -1918,6 +2389,146 @@ % match red symbols on green ground are displayed in the % consensus line. % +% \subsection{Display of logos} +% +% \subsubsection{Sequence logos} +% +% \label{Lshowsequencelogo}\label{Lhidesequencelogo} +% In a sequence logo [7], the information content $I(P_i)$ of +% each alignment position $i$ is defined as +% +% \[ +% I(P_i) = \log_2 \vert\Sigma\vert + \sum P_{ij} \cdot \log_2 P_{ij} +% \] +% +% \noindent +% with $\vert\Sigma\vert$ being the cardinality of the used alphabet, +% i.\,e. 4 for DNA and 20 for protein sequences, and $P_{ij}$ +% being the frequency of residue $j$ at this position. Each position +% is displayed as a stack of residue symbols whose heights +% represent their proportion of the information content (example on +% p.\pageref{logo}). +% +% The display of sequence logos can be either on the top or at the bottom +% of a nucleotide or protein alignment. Logos will be shown after the +% command: |\showsequencelogo[|\meta{colorset}|]{|\meta{top/bottom}|}|. If no optional +% \meta{colorset} is selected the residues will be shaded as follows:\medskip +% +% \begin{itemize} +% \item Nucleotide sequences +% +% \begin{itemize} +% \item[G]: Black +% \item[A]: Green +% \item[T,U]: Red +% \item[C]: Blue +% \end{itemize} +% +% +% \item Protein sequences (similar to rasmol) +% +% \begin{itemize} +% \item[D,E]: Red +% \item[C,M]: Yellow +% \item[K,R]: Blue +% \item[S,T]: Orange +% \item[F,Y]: MidnightBlue +% \item[N,Q]: Cyan +% \item[G]: LightGray +% \item[L,V,I]: Green +% \item[A]: DarkGray +% \item[W]: CarnationPink +% \item[H]: CornflowerBlue +% \item[P]: Apricot +% \item[B,Z]: LightMagenta +% \end{itemize} +% \end{itemize} +% +% Optional color sets correspond to the functional shading modes +% |chemical|, |rasmol|, |hydropathy|, |structure|, |standard area|, +% |accessible area| (see p.\pageref{funcdef}). The |\showsequencelogo| +% command can be reversed by |\hidesequencelogo|. +% +% \label{Llogocolor}\label{Lclearlogocolors} +% Logo colors can be turned to `Black' with the command +% |\clearlogocolors[|\meta{color}|}| with the optional parameter +% not set. The optional parameter can be used to set all +% residue colors to \meta{color}, e.g.\ |\clearlogocolors[Blue]|. +% User specific logo color sets are defined by using +% |\logocolor{|\meta{residues}|}{|\meta{color}|}|, e.g.\ +% |\logocolor{DE}{Red} \logocolor{CM}{Yellow}| etc. +% +% \label{Ldofrequencycorrection}\label{Lundofrequencycorrection} +% It is common practice for protein sequence logos to correct +% amino acid frequencies to the background frequency in the +% alignment, which usually differs from the equal distribution +% of 5\% for each residue. Frequency correction can be turned on +% by |\dofrequencycorrection| and off by |\undofrequencycorrection|. +% +% \label{Llogostretch}The vertical extent of the logo can be changed by +% |\logostretch{|\meta{factor}|}|, e.g.\ |\logostretch{1.5}|. +% The width of the logo characters is dependent on the character +% width set for the alignment, see |\charstretch| on p.\pageref{Lcharstretch}. +% +% \label{Lshowlogoscale}\label{Lhidelogoscale}Finally, the bit-scale +% can be turned off and on using |\hidelogoscale| and +% |\showlogoscale[|\meta{color}|]{|\meta{position}|}|, respectively, with +% \meta{position} |left|, |right|, or |leftright| and an optional +% \meta{color}. +% \label{Lnamesequencelogo} +% A name for the sequence logo can be set, which is displayed +% next to the scale by |\namesequencelogo{|\meta{name}|}|. +% +% +% \subsubsection{Subfamily logos} +% +% Subfamily logos provide a novel tool to visualize +% subfamily-specific sequence deviations at alignment positions with +% a high information content in an intuitive way [13]. +% +% This is achieved by subtracting from the frequency of a residue within +% a pre-defined subset of sequences, i.\,e. a subfamily, the frequency of +% this residue in the remaining set of sequences. The difference is then +% weighted by the information content, see above section on sequence logos. +% An example is shown on p.\pageref{sublogo}. +% +% Subtraction of frequencies produces values from $-1$ to $1$. Positive +% values correspond to residues which are characteristic for the subfamily +% (shown upright in the output), negative values to those that are typical +% for the remaining sequences (shown upside-down). Positions with an equal +% distribution of the residue result in a zero value. +% +% \label{Lshowsubfamilylogo}\label{Lhidesubfamilylogo}\label{Lsetsubfamily} +% Subfamily logos are displayed analogous to sequence logos by the command +% |\showsubfamilylogo[|\meta{colorset}|]{|\meta{top/bottom}|}| and hidden by +% |\hidesubfamilylogo|. To calculate a subfamily logo, it is further required +% to define a subfamily within the alignment by +% |\setsubfamily{|\meta{seqrefs}|}|, e.g. |\setsubfamily{1-10,20,AQP3}|. +% +% For coloring residues, display/stretching of the scales, and frequency +% correction the same commands as for sequence logos apply with two exceptions. +% \label{Lshownegatives}\label{Lhidenegatives} +% First, subfamily logos contain negative values, which can be displayed +% |\shownegatives[|\meta{weak, medium, strong}|]| or hidden +% |\hidenegatives|. Without the optional parameter negative residues will +% be tinted by 50\%, i.e. |medium|. This greatly improves readability. +% \label{Lnamesubfamilylogo} +% Second, a name for the subfamily logo is set by +% |\namesubfamilylogo[|\meta{neg.name}|]{|\meta{pos.name}|}| with a required +% name for the positive part of the logo and an optional name for the negative +% part. +% +% \label{Lrelevance}\label{Lshowrelevance}\label{Lhiderelevance} +% In order to better recognize relevant positions in the subfamily logo, a +% bit-value can be set above which the deviation is considered relevant +% by the command |\relevance{|\meta{bit-value}|}|. If this command is +% not given 2.321\,bit is assumed for proteins, i.\,e. +% $\log_2 5$, and 1\,bit for DNA, i.\,e. $\log_2 2$. Such positions will +% be labeled by +% |\showrelevance[|\meta{color}|]{|\meta{symbol}|}|, e.\,g. +% |\showrelevance[Blue]{$\nabla$}|. The symbol will be hidden with +% |\hiderelevance|. +% % \subsection{Appearance of the sequence lines} % % \label{seqlines} @@ -1926,19 +2537,26 @@ % \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 +% Thus, the sequence names can be shown colored via \meta{color} +% either left or right by % \medskip % -% \quad|\shownames{|\meta{position}|}| +% \quad|\shownames[|\meta{color}|]{|\meta{position}|}| % \medskip -% -% \quad|\shownumbering{|\meta{position}|}| +% +% with \meta{position} set to |left| or |right|. The numbering can be +% displayed either left or right and even on both sides by % \medskip % -% with \meta{position} set to |left| or |right|. Both, names and -% numbering can be displayed on the same side. +% \quad|\shownumbering[|\meta{color}|]{|\meta{position}|}| +% \medskip % +% with \meta{position} |left|, |right| or |leftright|. Both, +% names and numbering can be displayed on the same side. +% \label{Lnamescolor}\label{Lnumberingcolor} +% The colors can also be set with |\namescolor{|\meta{color}|}| and +% |\numberingcolor{|\meta{color}|}|, respectively. +% % \label{Lnameseq} % \TeXshade{} uses the sequence names from the % alignment input file. This can cause some @@ -1961,9 +2579,6 @@ % 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 @@ -1981,16 +2596,18 @@ % % |\hidenumber{|\meta{seq1}|, ... ,|\meta{seq n}|}|, respectively. % -% \label{Lstartnumber} +% \label{Lstartnumber} \label{Lallowzero} \label{Ldisallowzero} % 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 +% incl.\ negative values but except `0' which is not usually used in % sequence numbering (the transition from negative to positive -% values is like this: \ldots\ $-2$, $-1$, 1, 2 \ldots). +% values is like this: \ldots\ $-2$, $-1$, 1, 2 \ldots). If, however, +% the use of the number `0' is wanted as sometimes in sequence logos +% this can be turned on by |\allowzero| and off with |\disallowzero|. % % \label{Lseqlength} % \TeXshade{} needs to know the correct length of the sequences @@ -2065,16 +2682,21 @@ % % \label{Lshowruler}\label{Lhideruler} % \label{Lrulersteps}\label{Lrulercolor} +% \label{Lrotateruler}\label{Lunrotateruler} % 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}|}|. +% |\showruler[|\meta{color}|]{|\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 +% numbers are set by |\rulersteps{|\meta{number}|}|. If the steps +% are set to be very close ($< 4$) or when every position is numbered, the +% numbering is automatically rotated by 90$^\circ$. Using |\rotateruler| +% and |\unrotateruler| this can be done and undone manually. +% In order to change the +% ruler color use the optional parameter or the command % |\rulercolor{|\meta{color}|}|. % % \label{Lgapchar}\label{Lgaprule} @@ -2109,7 +2731,7 @@ % % \label{kill} % -% \label{Lhideseq}\label{Lkillseq} +% \label{Lhideseq}\label{Lhideseqs}\label{Lshowseqs}\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 @@ -2119,8 +2741,11 @@ % 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 +% with |\constosingleseq|. When all sequences should be hidden, e.g. to +% show a sequence logo alone, one can simply say |\hideseqs|. This +% command is reversed by |\showseqs|. +% +% 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 @@ -2462,7 +3087,7 @@ % 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}: +% Darrell Conklin for reporting this problem}: % % \begin{center} % \begin{tabular}{cll} @@ -2554,13 +3179,15 @@ % 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]}|. +% |{o->[Red][1mm]}|. Similar to the boxes described above, a text can be put on +% the arrow or bar, e.\,g.\ |{<->[Red][1mm]:$\beta$-sheet[Blue]}|. +% % % In \TeXshade{} versions before v1.9, the original \LaTeX{}-arrows -% were used. These have now been replaced by the more modern looking +% were used. These have now been replaced by 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 +% 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). @@ -2862,7 +3489,7 @@ % \label{LincludePHDsec} % \label{LincludePHDtopo} % \label{LincludeHMMTOP} -% The DSSP [7], STRIDE [8], PHD [9] and HMMTOP [10] algorithms produce +% The DSSP [8], STRIDE [9], PHD [10] and HMMTOP [11] 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: @@ -2949,7 +3576,7 @@ % to be used: % \medskip % -% |\includeHMMTOP{|\meta{seqref in texshade}|[|\meta{seqref in file}|]{|\meta{filename}|}| +% |\includeHMMTOP{|\meta{seqref in texshade}|[|\meta{seqref in file}|]}{|\meta{filename}|}| % \medskip % % PHD predictions: when starting the PHD software do not @@ -3242,7 +3869,7 @@ % |\ttdefault|. % % For further information see \textsc{Tomas Rokicki}'s -% |dvips| manual [11]. +% |dvips| manual [12]. % % % @@ -3551,6 +4178,7 @@ % \>Black \> White \> no match \\ % \>White \> Red \> acidic \\ % \>White \> Black \> aliphatic \\ +% \>White \> Gray \> aliphatic (small) \\ % \>White \> Green \> amide \\ % \>White \> Brown \> aromatic \\ % \>White \> Blue \> basic \\ @@ -3560,6 +4188,24 @@ % \end{tabbing} % \medskip % +% Functional mode \emph{rasmol}: +% \medskip +% +% \begin{tabbing} +% \hspace{1cm}\=\emph{res.color}\hspace{1.5cm}\=\emph{shad.color}\hspace{1.5cm} \= \emph{residues} \\ +% \>Black \> White \> no match \\ +% \>Red \> White \> Asp, Glu \\ +% \>Blue \> White \> Arg, Lys, His \\ +% \>MidnightBlue \> White \> Phe, Tyr, Trp \\ +% \>Gray \> White \> Ala, Gly \\ +% \>Yellow \> White \> Cys, Met \\ +% \>Orange \> White \> Ser, Thr \\ +% \>Cyan \> White \> Asn, Gln \\ +% \>Gree \> White \> Leu, Val, Ile \\ +% \>Apricot \> White \> Pro \\ +% \end{tabbing} +% \medskip +% % Functional mode \emph{structure}: % \medskip % @@ -3572,6 +4218,7 @@ % \end{tabbing} % \medskip % +% \newpage % Functional mode \emph{standard area}: % \medskip % @@ -3590,7 +4237,6 @@ % \end{tabbing} % \medskip % -% \newpage % Functional mode \emph{accessible area}: % \medskip % @@ -3655,6 +4301,7 @@ % & & |hydropathy| \\ % & & |structure| \\ % & & |chemical| \\ +% & & |rasmol| \\ % & & |standard area| \\ % & & |accessible area| \\ \hline % \end{tabular} @@ -3686,7 +4333,6 @@ % % \vspace{1.5\baselineskip} % -% \newpage % \textbf{Residue grouping} % \medskip % @@ -3725,7 +4371,7 @@ % \quad|\constosingleseq{|\meta{seqref}|}| % \hfill[\pageref{Lconstosingleseq}] % -% \quad|\showconsensus[|\meta{color/scale}|[,|\meta{color/scale}|]]{|\meta{position}|}| +% \quad|\showconsensus[|\meta{color/scale}|[,|\meta{color/scale}|]]{|\meta{top/bot.}|}| % \hfill[\pageref{Lshowconsensus}] % % \quad|\hideconsensus| @@ -3737,7 +4383,7 @@ % \quad|\defconsensus{|\meta{symbol1}|}{|\meta{symbol2}|}{|\meta{symbol3}|}| % \hfill[\pageref{Ldefconsensus}] % -% \vspace*{-\baselineskip} +% \vspace*{-0.5\baselineskip} % % \begin{tabbing} % \quad|\consensuscolors|\=|{|\meta{res.col.1}|}{|\meta{shad.col.1}|}|\\ @@ -3748,13 +4394,81 @@ % \hspace{1.2in}[\pageref{Lconsensuscolors}]\\ % \end{tabbing} % +% \textbf{Sequence logos} +% \medskip +% +% \quad|\showsequencelogo[|\meta{colorset}|]{|\meta{top/bottom}|}| +% \hfill[\pageref{Lshowsequencelogo}] +% +% \quad|\hidesequencelogo| +% \hfill[\pageref{Lhidesequencelogo}] +% +% \quad|\clearlogocolors[|\meta{color}|]| +% \hfill[\pageref{Lclearlogocolors}] +% +% \quad|\logocolor{|\meta{residues}|}{|\meta{color}|}| +% \hfill[\pageref{Llogocolor}] +% +% \quad|\showlogoscale[|\meta{color}|]{|\meta{left/right/leftright}|}| +% \hfill[\pageref{Lshowlogoscale}] +% +% \quad|\hidelogoscale| +% \hfill[\pageref{Lhidelogoscale}] +% +% \quad|\logostretch{|\meta{factor}|}| +% \hfill[\pageref{Llogostretch}] +% +% \quad|\namesequencelogo{|\meta{name}|}| +% \hfill[\pageref{Lnamesequencelogo}] +% +% \quad|\dofrequencycorrection| +% \hfill[\pageref{Ldofrequencycorrection}] +% +% \quad|\undofrequencycorrection| +% \hfill[\pageref{Lundofrequencycorrection}] +% +% \vspace{1.5\baselineskip} +% +% \textbf{Subfamily logos} +% \medskip +% +% \quad|\showsubfamilylogo[|\meta{colorset}|]{|\meta{top/bottom}|}| +% \hfill[\pageref{Lshowsubfamilylogo}] +% +% \quad|\hidesubfamilylogo| +% \hfill[\pageref{Lhidesubfamilylogo}] +% +% \quad|\setsubfamily{|\meta{seqrefs}|}| +% \hfill[\pageref{Lsetsubfamily}] +% +% \quad|\shownegatives[|\meta{weak, medium, strong}|]| +% \hfill[\pageref{Lshownegatives}] +% +% \quad|\hidenegatives| +% \hfill[\pageref{Lhidenegatives}] +% +% \quad|\namesubfamilylogo[|\meta{neg.name}|]{|\meta{name}|}| +% \hfill[\pageref{Lnamesubfamilylogo}] +% +% \quad|\relevance{|\meta{bit-value}|}| +% \hfill[\pageref{Lrelevance}] +% +% \quad|\showrelevance[|\meta{color}|]{|\meta{symbol}|}| +% \hfill[\pageref{Lshowrelevance}] +% +% \quad|\hiderelevance| +% \hfill[\pageref{Lhiderelevance}] +% +% +% \vspace{1.5\baselineskip} +% % \textbf{Appearance of the sequence lines} % \medskip % -% \quad|\shownames{|\meta{position}|}| +% \quad|\shownames[|\meta{color}|]{|\meta{left/right}|}| % \hfill[\pageref{Lshownames}] % -% \quad|\shownumbering{|\meta{position}|}| +% \quad|\shownumbering[|\meta{color}|]{|\meta{left/right/leftright}|}| % \hfill[\pageref{Lshownumbering}] % % \quad|\nameseq{|\meta{seqref}|}{|\meta{name}|}| @@ -3793,13 +4507,19 @@ % \quad|\startnumber{|\meta{seqref}|}{|\meta{first residue number}|}| % \hfill[\pageref{Lstartnumber}] % +% \quad|\allowzero| +% \hfill[\pageref{Lallowzero}] +% +% \quad|\disallowzero| +% \hfill[\pageref{Lallowzero}] +% % \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}|}| +% \quad|\showruler[|\meta{color}|]{|\meta{top/bottom}|}{|\meta{seqref}|}| % \hfill[\pageref{Lshowruler}] % % \quad|\rulersteps{|\meta{number}|}| @@ -3811,6 +4531,12 @@ % \quad|\hideruler| % \hfill[\pageref{Lhideruler}] % +% \quad|\rotateruler| +% \hfill[\pageref{Lrotateruler}] +% +% \quad|\unrotateruler| +% \hfill[\pageref{Lunrotateruler}] +% % \quad|\gapchar{|\meta{symbol}|}| % \qquad (incl. |rule|) \hfill [\pageref{Lgapchar}] % @@ -3829,11 +4555,17 @@ % \vspace{1.5\baselineskip} % % \textbf{Hiding, killing, separating and ordering} -% \medskip\enlargethispage{20pt} +% \medskip % % \quad|\hideseq{|\meta{seq1}|,|\meta{seq2}|,|\ldots|,|\meta{seq n}|}| % \hfill[\pageref{Lhideseq}] % +% \quad|\hideseqs| +% \hfill[\pageref{Lhideseqs}] +% +% \quad|\showseqs| +% \hfill[\pageref{Lshowseqs}] +% % \quad|\killseq{|\meta{seq1}|,|\meta{seq2}|,|\ldots|,|\meta{seq n}|}| % \hfill[\pageref{Lkillseq}] % @@ -3899,13 +4631,12 @@ % \quad|\fixblockspace| % \hfill[\pageref{Lfixblockspace}] % -% \quad|\alignment{|\meta{position}|}| +% \quad|\alignment{|\meta{left/center/right}|}| % \hfill[\pageref{Lalignment}] % % \vspace{1.5\baselineskip} % % -% \newpage % \textbf{Individual shading and labeling of sequence stretches} % \medskip % @@ -3991,7 +4722,7 @@ % \hfill[\pageref{Lbargraphstretch}] % % \quad|\colorscalestretch{|\meta{factor}|}| -% \hfill[\pageref{Lcolorgrahstretch}] +% \hfill[\pageref{Lcolorscalestretch}] % % \quad|\codon{|\meta{amino acid}|}{|\meta{triplet1,\ldots, triplet n}|}| % \hfill[\pageref{Lcodon}] @@ -4090,7 +4821,6 @@ % % \vspace{1.5\baselineskip} % -% \newpage % % \textbf{Displaying and building legends} % \medskip @@ -4115,11 +4845,12 @@ % % \vspace{1.5\baselineskip} % +% \newpage % % \textbf{Adding captions to the alignment} % \medskip % -% \quad|\showcaption[|\meta{position}|]{|\meta{text}|}| +% \quad|\showcaption[|\meta{top/bottom}|]{|\meta{text}|}| % \hfill[\pageref{Lshowcaption}] % % \quad|\shortcaption{|\meta{text}|}| @@ -4175,6 +4906,7 @@ % legend texts (|legendrm| etc.). % \bigskip % +% % \textbf{Goodies---molweight and charge} % \medskip % @@ -4218,27 +4950,35 @@ % \newblock \textit{Comput. Applic. Biosci.}: % \textbf{10}, 179--183. % -% [7] \textsc{Kabsch, W.; Sander, C.} (1983) Dictionary of +% [7] \textsc{Schneider, T.D.; Stephens, R.M.} (1990) Sequence logos: +% a new way to display consensus +% \newblock \textit{Nucleic Acid Res.}: \textbf{18}, 6097--6100. +% +% [8] \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 +% [9] \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) +% [10] \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) +% [11] \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. +% [12] \textsc{Rokicki, T.} DVIPS: A \TeX{} driver. +% +% [13] \textsc{Beitz, E.} (2006) Subfamily logos: visualization of sequence +% deviations at alignment positions with high information content. +% \newblock \textit{BMC Bioinformatics}: \textbf{7}:313. % % } % \section{Implementation} @@ -4267,15 +5007,17 @@ % \begin{macrocode} %<*texshade> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{texshade}[2005/04/13 LaTeX TeXshade (v1.12)] -\message{Package `texshade', Version 1.12 of 2005/09/20.} +\ProvidesPackage{texshade}[2006/06/27 LaTeX TeXshade (v1.15)] +\message{Package `texshade', Version 1.15 of 2006/06/27.} \PassOptionsToPackage{dvips}{color} +\PassOptionsToPackage{dvips}{graphicx} \DeclareOption*{% \PassOptionsToPackage{\CurrentOption}{color}% + \PassOptionsToPackage{\CurrentOption}{graphicx}% } \ProcessOptions -\RequirePackage{color} +\RequirePackage{color,graphics} \expandafter\ifx\csname TeXshade\endcsname\relax \else \endinput \fi @@ -4294,8 +5036,19 @@ \catcode`\@11 +\def\rotopo#1{% + \Grot@setangle{#1}% + \setbox\z@\hbox\bgroup\ignorespaces} +\def\endrotopo{% + \unskip\egroup + \Grot@x\z@ + \Grot@y\z@ + \wd0\z@\dp0\z@\ht0\z@ + \Grot@box +} + \newread\structurefile \newwrite\featurefile -\newread\alignfile +\newread\alignfile \newread\sublogofile \expandafter\ifx\csname blacktriangleright\endcsname\relax \openin\structurefile = amssymb.sty @@ -4311,41 +5064,47 @@ \closein\structurefile \fi +\DeclareSymbolFont{alphahelix}{OML}{cmm}{m}{it} +\DeclareMathSymbol{\helixhook}{\mathrel}{alphahelix}{"5E} + \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\cons@count \newcount\total@count \newcount\temp@count \newcount\triple@count +\newcount\pos@sum \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\line@stretch \newlength\center@fill \newlength\arrow@width \newlength\arrow@height \newlength\rule@thick -\newlength\arrow@thick +\newlength\arrow@thick \newlength\logo@height \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\ifletter \newif\ifnumber +\newif\ifnewres \newif\ifall@shade +\newif\ifnames@right +\newif\ifnumbers@left \newif\ifnumbers@right +\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\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\ifshow@logo \newif\ifshow@sublogo +\newif\ifhidechar \newif\ifsh@wg@ps \newif\ifsimmode \newif\ifregionaltintnow \newif\ifregionalemphnow @@ -4379,7 +5138,255 @@ \expandafter\def\csname funcm@tch*\endcsname{upper} \setlength\hspace@legend{0pt} \setlength\vspace@legend{0pt} -\triple@count=0 \cons@count=0 + +\expandafter\xdef\csname log2@1\endcsname{0} +\expandafter\xdef\csname log2@2\endcsname{1000} +\expandafter\xdef\csname log2@3\endcsname{1585} +\expandafter\xdef\csname log2@4\endcsname{2000} +\expandafter\xdef\csname log2@5\endcsname{2322} +\expandafter\xdef\csname log2@6\endcsname{2585} +\expandafter\xdef\csname log2@7\endcsname{2807} +\expandafter\xdef\csname log2@8\endcsname{3000} +\expandafter\xdef\csname log2@9\endcsname{3170} +\expandafter\xdef\csname log2@10\endcsname{3322} +\expandafter\xdef\csname log2@11\endcsname{3459} +\expandafter\xdef\csname log2@12\endcsname{3585} +\expandafter\xdef\csname log2@13\endcsname{3700} +\expandafter\xdef\csname log2@14\endcsname{3807} +\expandafter\xdef\csname log2@15\endcsname{3907} +\expandafter\xdef\csname log2@16\endcsname{4000} +\expandafter\xdef\csname log2@17\endcsname{4087} +\expandafter\xdef\csname log2@18\endcsname{4170} +\expandafter\xdef\csname log2@19\endcsname{4248} +\expandafter\xdef\csname log2@20\endcsname{4322} +\expandafter\xdef\csname log2@21\endcsname{4392} +\expandafter\xdef\csname log2@22\endcsname{4459} +\expandafter\xdef\csname log2@23\endcsname{4524} +\expandafter\xdef\csname log2@24\endcsname{4585} +\expandafter\xdef\csname log2@25\endcsname{4644} +\expandafter\xdef\csname log2@26\endcsname{4700} +\expandafter\xdef\csname log2@27\endcsname{4755} +\expandafter\xdef\csname log2@28\endcsname{4807} +\expandafter\xdef\csname log2@29\endcsname{4858} +\expandafter\xdef\csname log2@30\endcsname{4907} +\expandafter\xdef\csname log2@31\endcsname{4954} +\expandafter\xdef\csname log2@32\endcsname{5000} +\expandafter\xdef\csname log2@33\endcsname{5044} +\expandafter\xdef\csname log2@34\endcsname{5087} +\expandafter\xdef\csname log2@35\endcsname{5129} +\expandafter\xdef\csname log2@36\endcsname{5170} +\expandafter\xdef\csname log2@37\endcsname{5209} +\expandafter\xdef\csname log2@38\endcsname{5248} +\expandafter\xdef\csname log2@39\endcsname{5285} +\expandafter\xdef\csname log2@40\endcsname{5322} +\expandafter\xdef\csname log2@41\endcsname{5358} +\expandafter\xdef\csname log2@42\endcsname{5392} +\expandafter\xdef\csname log2@43\endcsname{5426} +\expandafter\xdef\csname log2@44\endcsname{5459} +\expandafter\xdef\csname log2@45\endcsname{5492} +\expandafter\xdef\csname log2@46\endcsname{5524} +\expandafter\xdef\csname log2@47\endcsname{5555} +\expandafter\xdef\csname log2@48\endcsname{5585} +\expandafter\xdef\csname log2@49\endcsname{5615} +\expandafter\xdef\csname log2@50\endcsname{5644} +\expandafter\xdef\csname log2@51\endcsname{5672} +\expandafter\xdef\csname log2@52\endcsname{5700} +\expandafter\xdef\csname log2@53\endcsname{5728} +\expandafter\xdef\csname log2@54\endcsname{5755} +\expandafter\xdef\csname log2@55\endcsname{5781} +\expandafter\xdef\csname log2@56\endcsname{5807} +\expandafter\xdef\csname log2@57\endcsname{5833} +\expandafter\xdef\csname log2@58\endcsname{5858} +\expandafter\xdef\csname log2@59\endcsname{5883} +\expandafter\xdef\csname log2@60\endcsname{5907} +\expandafter\xdef\csname log2@61\endcsname{5931} +\expandafter\xdef\csname log2@62\endcsname{5954} +\expandafter\xdef\csname log2@63\endcsname{5977} +\expandafter\xdef\csname log2@64\endcsname{6000} +\expandafter\xdef\csname log2@65\endcsname{6022} +\expandafter\xdef\csname log2@66\endcsname{6044} +\expandafter\xdef\csname log2@67\endcsname{6066} +\expandafter\xdef\csname log2@68\endcsname{6087} +\expandafter\xdef\csname log2@69\endcsname{6109} +\expandafter\xdef\csname log2@70\endcsname{6129} +\expandafter\xdef\csname log2@71\endcsname{6149} +\expandafter\xdef\csname log2@72\endcsname{6170} +\expandafter\xdef\csname log2@73\endcsname{6190} +\expandafter\xdef\csname log2@74\endcsname{6209} +\expandafter\xdef\csname log2@75\endcsname{6229} +\expandafter\xdef\csname log2@76\endcsname{6248} +\expandafter\xdef\csname log2@77\endcsname{6267} +\expandafter\xdef\csname log2@78\endcsname{6285} +\expandafter\xdef\csname log2@79\endcsname{6304} +\expandafter\xdef\csname log2@80\endcsname{6322} +\expandafter\xdef\csname log2@81\endcsname{6340} +\expandafter\xdef\csname log2@82\endcsname{6358} +\expandafter\xdef\csname log2@83\endcsname{6375} +\expandafter\xdef\csname log2@84\endcsname{6392} +\expandafter\xdef\csname log2@85\endcsname{6409} +\expandafter\xdef\csname log2@86\endcsname{6426} +\expandafter\xdef\csname log2@87\endcsname{6443} +\expandafter\xdef\csname log2@88\endcsname{6459} +\expandafter\xdef\csname log2@89\endcsname{6476} +\expandafter\xdef\csname log2@90\endcsname{6492} +\expandafter\xdef\csname log2@91\endcsname{6508} +\expandafter\xdef\csname log2@92\endcsname{6524} +\expandafter\xdef\csname log2@93\endcsname{6539} +\expandafter\xdef\csname log2@94\endcsname{6555} +\expandafter\xdef\csname log2@95\endcsname{6570} +\expandafter\xdef\csname log2@96\endcsname{6585} +\expandafter\xdef\csname log2@97\endcsname{6600} +\expandafter\xdef\csname log2@98\endcsname{6615} +\expandafter\xdef\csname log2@99\endcsname{6629} +\expandafter\xdef\csname log2@100\endcsname{6644} +\expandafter\xdef\csname log2@101\endcsname{6658} +\expandafter\xdef\csname log2@102\endcsname{6672} +\expandafter\xdef\csname log2@103\endcsname{6687} +\expandafter\xdef\csname log2@104\endcsname{6700} +\expandafter\xdef\csname log2@105\endcsname{6714} +\expandafter\xdef\csname log2@106\endcsname{6728} +\expandafter\xdef\csname log2@107\endcsname{6741} +\expandafter\xdef\csname log2@108\endcsname{6755} +\expandafter\xdef\csname log2@109\endcsname{6768} +\expandafter\xdef\csname log2@110\endcsname{6781} +\expandafter\xdef\csname log2@111\endcsname{6794} +\expandafter\xdef\csname log2@112\endcsname{6807} +\expandafter\xdef\csname log2@113\endcsname{6820} +\expandafter\xdef\csname log2@114\endcsname{6833} +\expandafter\xdef\csname log2@115\endcsname{6845} +\expandafter\xdef\csname log2@116\endcsname{6858} +\expandafter\xdef\csname log2@117\endcsname{6870} +\expandafter\xdef\csname log2@118\endcsname{6883} +\expandafter\xdef\csname log2@119\endcsname{6895} +\expandafter\xdef\csname log2@120\endcsname{6907} +\expandafter\xdef\csname log2@121\endcsname{6919} +\expandafter\xdef\csname log2@122\endcsname{6931} +\expandafter\xdef\csname log2@123\endcsname{6943} +\expandafter\xdef\csname log2@124\endcsname{6954} +\expandafter\xdef\csname log2@125\endcsname{6966} +\expandafter\xdef\csname log2@126\endcsname{6977} +\expandafter\xdef\csname log2@127\endcsname{6989} +\expandafter\xdef\csname log2@128\endcsname{7000} +\expandafter\xdef\csname log2@129\endcsname{7011} +\expandafter\xdef\csname log2@130\endcsname{7022} +\expandafter\xdef\csname log2@131\endcsname{7033} +\expandafter\xdef\csname log2@132\endcsname{7044} +\expandafter\xdef\csname log2@133\endcsname{7055} +\expandafter\xdef\csname log2@134\endcsname{7066} +\expandafter\xdef\csname log2@135\endcsname{7077} +\expandafter\xdef\csname log2@136\endcsname{7088} +\expandafter\xdef\csname log2@137\endcsname{7098} +\expandafter\xdef\csname log2@138\endcsname{7108} +\expandafter\xdef\csname log2@139\endcsname{7119} +\expandafter\xdef\csname log2@140\endcsname{7129} +\expandafter\xdef\csname log2@141\endcsname{7140} +\expandafter\xdef\csname log2@142\endcsname{7150} +\expandafter\xdef\csname log2@143\endcsname{7160} +\expandafter\xdef\csname log2@144\endcsname{7170} +\expandafter\xdef\csname log2@145\endcsname{7180} +\expandafter\xdef\csname log2@146\endcsname{7190} +\expandafter\xdef\csname log2@147\endcsname{7200} +\expandafter\xdef\csname log2@148\endcsname{7209} +\expandafter\xdef\csname log2@149\endcsname{7219} +\expandafter\xdef\csname log2@150\endcsname{7229} +\expandafter\xdef\csname log2@151\endcsname{7238} +\expandafter\xdef\csname log2@152\endcsname{7248} +\expandafter\xdef\csname log2@153\endcsname{7257} +\expandafter\xdef\csname log2@154\endcsname{7267} +\expandafter\xdef\csname log2@155\endcsname{7276} +\expandafter\xdef\csname log2@156\endcsname{7285} +\expandafter\xdef\csname log2@157\endcsname{7295} +\expandafter\xdef\csname log2@158\endcsname{7304} +\expandafter\xdef\csname log2@159\endcsname{7313} +\expandafter\xdef\csname log2@160\endcsname{7323} +\expandafter\xdef\csname log2@161\endcsname{7331} +\expandafter\xdef\csname log2@162\endcsname{7340} +\expandafter\xdef\csname log2@163\endcsname{7349} +\expandafter\xdef\csname log2@164\endcsname{7358} +\expandafter\xdef\csname log2@165\endcsname{7366} +\expandafter\xdef\csname log2@166\endcsname{7375} +\expandafter\xdef\csname log2@167\endcsname{7374} +\expandafter\xdef\csname log2@168\endcsname{7392} +\expandafter\xdef\csname log2@169\endcsname{7401} +\expandafter\xdef\csname log2@170\endcsname{7409} +\expandafter\xdef\csname log2@171\endcsname{7418} +\expandafter\xdef\csname log2@172\endcsname{7463} +\expandafter\xdef\csname log2@173\endcsname{7435} +\expandafter\xdef\csname log2@174\endcsname{7443} +\expandafter\xdef\csname log2@175\endcsname{7451} +\expandafter\xdef\csname log2@176\endcsname{7460} +\expandafter\xdef\csname log2@177\endcsname{7468} +\expandafter\xdef\csname log2@178\endcsname{7476} +\expandafter\xdef\csname log2@179\endcsname{7484} +\expandafter\xdef\csname log2@180\endcsname{7492} +\expandafter\xdef\csname log2@181\endcsname{7500} +\expandafter\xdef\csname log2@182\endcsname{7508} +\expandafter\xdef\csname log2@183\endcsname{7516} +\expandafter\xdef\csname log2@184\endcsname{7524} +\expandafter\xdef\csname log2@185\endcsname{7531} +\expandafter\xdef\csname log2@186\endcsname{7539} +\expandafter\xdef\csname log2@187\endcsname{7547} +\expandafter\xdef\csname log2@188\endcsname{7555} +\expandafter\xdef\csname log2@189\endcsname{7562} +\expandafter\xdef\csname log2@190\endcsname{7570} +\expandafter\xdef\csname log2@191\endcsname{7577} +\expandafter\xdef\csname log2@192\endcsname{7585} +\expandafter\xdef\csname log2@193\endcsname{7592} +\expandafter\xdef\csname log2@194\endcsname{7600} +\expandafter\xdef\csname log2@195\endcsname{7607} +\expandafter\xdef\csname log2@196\endcsname{7615} +\expandafter\xdef\csname log2@197\endcsname{7622} +\expandafter\xdef\csname log2@198\endcsname{7629} +\expandafter\xdef\csname log2@199\endcsname{7637} +\expandafter\xdef\csname log2@200\endcsname{7644} +\expandafter\xdef\csname log2@201\endcsname{7651} +\expandafter\xdef\csname log2@202\endcsname{7658} +\expandafter\xdef\csname log2@203\endcsname{7665} +\expandafter\xdef\csname log2@204\endcsname{7672} +\expandafter\xdef\csname log2@205\endcsname{7679} +\expandafter\xdef\csname log2@206\endcsname{7687} +\expandafter\xdef\csname log2@207\endcsname{7693} +\expandafter\xdef\csname log2@208\endcsname{7700} +\expandafter\xdef\csname log2@209\endcsname{7707} +\expandafter\xdef\csname log2@210\endcsname{7714} +\expandafter\xdef\csname log2@211\endcsname{7721} +\expandafter\xdef\csname log2@212\endcsname{7728} +\expandafter\xdef\csname log2@213\endcsname{7735} +\expandafter\xdef\csname log2@214\endcsname{7741} +\expandafter\xdef\csname log2@215\endcsname{7748} +\expandafter\xdef\csname log2@216\endcsname{7755} +\expandafter\xdef\csname log2@217\endcsname{7761} +\expandafter\xdef\csname log2@218\endcsname{7768} +\expandafter\xdef\csname log2@219\endcsname{7775} +\expandafter\xdef\csname log2@220\endcsname{7781} + + +\expandafter\xdef\csname ch@r@65\endcsname{A} +\expandafter\xdef\csname ch@r@66\endcsname{B} +\expandafter\xdef\csname ch@r@67\endcsname{C} +\expandafter\xdef\csname ch@r@68\endcsname{D} +\expandafter\xdef\csname ch@r@69\endcsname{E} +\expandafter\xdef\csname ch@r@70\endcsname{F} +\expandafter\xdef\csname ch@r@71\endcsname{G} +\expandafter\xdef\csname ch@r@72\endcsname{H} +\expandafter\xdef\csname ch@r@73\endcsname{I} +\expandafter\xdef\csname ch@r@74\endcsname{J} +\expandafter\xdef\csname ch@r@75\endcsname{K} +\expandafter\xdef\csname ch@r@76\endcsname{L} +\expandafter\xdef\csname ch@r@77\endcsname{M} +\expandafter\xdef\csname ch@r@78\endcsname{N} +\expandafter\xdef\csname ch@r@79\endcsname{O} +\expandafter\xdef\csname ch@r@80\endcsname{P} +\expandafter\xdef\csname ch@r@81\endcsname{Q} +\expandafter\xdef\csname ch@r@82\endcsname{R} +\expandafter\xdef\csname ch@r@83\endcsname{S} +\expandafter\xdef\csname ch@r@84\endcsname{T} +\expandafter\xdef\csname ch@r@85\endcsname{U} +\expandafter\xdef\csname ch@r@86\endcsname{V} +\expandafter\xdef\csname ch@r@87\endcsname{W} +\expandafter\xdef\csname ch@r@88\endcsname{X} +\expandafter\xdef\csname ch@r@89\endcsname{Y} +\expandafter\xdef\csname ch@r@90\endcsname{Z} \def\clear@sims{% \expandafter\xdef\csname \prfx simA\endcsname{(1)A} @@ -4939,6 +5946,7 @@ \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{LightLightLightLightMagenta} {cmyk}{0,0.06,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} @@ -5162,7 +6170,7 @@ \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\type@get#1 MSF: #2 Type: #3 #4@{\seqtype{#3}} \def\inf@@get#1 #2 #3 #4 #5 #6@{% \def\first@{#1} \def\second@{#2} @@ -5184,18 +6192,26 @@ \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}} + \xdef\code@num{\the\catcode`#1} + \xdef\char@num{`#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\tot@get#1#2@{% + \xdef\first@{#1} + \expandafter\xdef\csname seq\the\triple@count\endcsname{#2&@}} +\def\dis@get#1#2@{% + \xdef\first@{#1} + \expandafter\xdef\csname res\the\triple@count\endcsname{#1} + \expandafter\xdef\csname seq\the\triple@count\endcsname{#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 + \xdef\char@num{`#1} \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\sublogo@get#1 @{\xdef\first@{#1}} \def\re@write#1,#2@{% \xdef\third@{#2,@} \xdef\first@{\csname hide@@@seq#1\endcsname} @@ -5210,8 +6226,8 @@ \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 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{% @@ -5253,8 +6269,8 @@ \loopcount=0 \loop \advance\loopcount by 1 - \csname pos\the\loopcount\endcsname=% - \csname res@count\the\loopcount\endcsname + \expandafter\xdef\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{% @@ -5312,11 +6328,12 @@ \loopcount=0 \loop \advance\loopcount by 1 - \csname pos\the\loopcount\endcsname=0 + \expandafter\xdef\csname pos\the\loopcount\endcsname{0} \ifnum\loopcount<\killseq@count \repeat } \def\group@get#1,#2@{% \def\group@set{\expandafter\residue@get\second@ + \ifnum\char@num>96 \make@upper \fi \ifx\first@\ampers@nd \else \expandafter\xdef\csname \prfx grp\first@\endcsname{\the\loopcount} \xdef\second@{\csname sequence\the\loopcount\endcsname} \group@set @@ -5371,6 +6388,35 @@ \donot@shade \fi \fi} +\def\clear@res@nums#1{% + \temp@count=65 + \loop + \xdef\first@@{\csname ch@r@\the\temp@count\endcsname} + \expandafter\xdef\csname res@num\first@@ #1\endcsname{0} + \advance\temp@count by 1 + \ifnum\temp@count>90\else\repeat + \expandafter\xdef\csname res@num\d@t #1\endcsname{0} +} +\def\setsubfamily@{% + \expandafter\check@letter\first@ + \ifletter + \expandafter\get@item\first@ + \xdef\first@{\fourth@} + \get@name@number + \advance\res@count by 1 + \expandafter\xdef\csname subfamily@num\first@\endcsname{\subfamily@count} + \xdef\first@{\first@@ @} + \setsubfamily@ + \else + \expandafter\get@digit\first@ + \ifx\fourth@\ampers@nd + \else + \advance\res@count by 1 + \expandafter\xdef\csname subfamily@num\fourth@\endcsname{\subfamily@count} + \setsubfamily@ + \fi + \fi +} \def\hideseq@{% \expandafter\check@letter\first@ \ifletter @@ -5538,8 +6584,8 @@ \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 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 @@ -5551,15 +6597,6 @@ \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 @@ -5615,6 +6652,7 @@ \ifgerm@n \funcgroup{sauer ($-$)}{DE}{White}{Red}{upper}{up} \funcgroup{aliphatisch}{AGVIL}{White}{Black}{upper}{up} + \funcgroup{aliphatisch (klein)}{AG}{White}{Gray}{upper}{up} \funcgroup{Amid}{NQ}{White}{Green}{upper}{up} \funcgroup{aromatisch}{FYW}{White}{Brown}{upper}{up} \funcgroup{basisch (+)}{KRH}{White}{Blue}{upper}{up} @@ -5625,6 +6663,7 @@ \ifsp@nish \funcgroup{\'acido ($-$)}{DE}{White}{Red}{upper}{up} \funcgroup{alif\'atico}{AGVIL}{White}{Black}{upper}{up} + \funcgroup{alif\'atico (parvo)}{AG}{White}{Gray}{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} @@ -5634,6 +6673,7 @@ \else \funcgroup{acidic ($-$)}{DE}{White}{Red}{upper}{up} \funcgroup{aliphatic}{AGVIL}{White}{Black}{upper}{up} + \funcgroup{aliphatic (small)}{AG}{White}{Gray}{upper}{up} \funcgroup{amide}{NQ}{White}{Green}{upper}{up} \funcgroup{aromatic}{FYW}{White}{Brown}{upper}{up} \funcgroup{basic ($+$)}{KRH}{White}{Blue}{upper}{up} @@ -5761,8 +6801,21 @@ \funcgroup{110.3 (K)}{K}{White}{Black}{upper}{up} \fi \fi - \else \message{} - \fi\fi\fi\fi\fi\fi + \else + \xdef\second@{rasmol} + \ifx\temp@\second@ + \funcgroup{Asp, Glu}{DE}{Red}{White}{upper}{up} + \funcgroup{Arg, Lys, His}{KR}{Blue}{White}{upper}{up} + \funcgroup{Phe, Tyr, Trp}{FY}{MidnightBlue}{White}{upper}{up} + \funcgroup{Ala, Gly}{G}{Gray}{White}{upper}{up} + \funcgroup{Cys, Met}{CM}{Yellow}{White}{upper}{up} + \funcgroup{Ser, Thr}{ST}{Orange}{White}{upper}{up} + \funcgroup{Asn, Gln}{NQ}{Cyan}{White}{upper}{up} + \funcgroup{Leu, Val, Ile}{LVI}{Green}{White}{upper}{up} + \funcgroup{Pro}{P}{Apricot}{White}{upper}{up} + \else + \message{} + \fi\fi\fi\fi\fi\fi\fi } \def\shadeallresidues{\all@fshadetrue} \def\get@fromstack#1;#2;#3;#4;#5@{% @@ -5987,6 +7040,7 @@ \xdef\frame@color{#1}% \ifx\seventh@\ampers@nd% \xdef\back@color{#1}% + \xdef\backtext@color{White}% \else% \expandafter\second@color\seventh@% \fi% @@ -6092,10 +7146,32 @@ \fi% \xdef\fill@char{#2[,]&}% \expandafter\opt@color\fill@char% - \ifx\f@color\comm@\xdef\f@color{GrayDefault}\fi% + \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\arrow@color{\f@color}% + \ifx\arrow@color\comm@\xdef\arrow@color{Black}\fi% + \xdef\seventh@{\f@color @}\expandafter\check@letter\seventh@% + \ifnumber% + \ifx\rule@@thick\comm@% + \xdef\rule@@thick{\f@color}% + \xdef\arrow@color{Black}% + \else% + \xdef\seventh@{\rule@@thick}% + \xdef\rule@@thick{\f@color}% + \xdef\arrow@color{\seventh@}% + \fi% + \fi% + \xdef\fill@char{#2[,]&}% + \expandafter\opt@color\fill@char% \xdef\fill@char{\fourth@}% - \xdef\box@color{\f@color,&@}% - \expandafter\two@opt@color\box@color% + \ifx\f@color\comm@\xdef\f@color{Black,White}\fi% + \xdef\backtext@color{White}% + \xdef\f@color{\f@color,&@}% + \expandafter\two@opt@color\f@color% + \xdef\f@color{\arrow@color}% \fi \fi \fi @@ -6866,7 +7942,7 @@ \ifeof\alignfile \xdef\first@{make new} \fi \immediate\closein\alignfile \else - \message{} + \message{} \xdef\first@{ignore} \fi\fi \xdef\temp@{make new} @@ -7051,7 +8127,7 @@ \fi \ifnum\loopcount=\seq@count \else \repeat \ifx\second@\n@ - \message{} + \message{} \xdef\first@{1} \fi } @@ -7729,6 +8805,13 @@ \def\numberingwidth#1{\def\num@width{#1}} \def\charstretch#1{\def\char@stretch{#1}} \def\linestretch#1{\def\line@stretch{#1}} +\def\logostretch#1{% + \def\logo@stretch{#1} + \setlength\temp@@length{1000sp} + \setlength\temp@@length{\logo@stretch\temp@@length} + \loopcount=\temp@@length + \xdef\logo@stretch@IOOO{\the\loopcount} +} \def\noblockskip{\def\block@skip{\vspace{0pt}}} \def\smallblockskip{\def\block@skip{\vspace{\baselineskip}}} \def\medblockskip{\def\block@skip{\vspace{1.5\baselineskip}}} @@ -7746,15 +8829,15 @@ \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} \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} + \ifletter \get@name@number \xdef\first@@{\first@} \fi + \ifnum\first@@>\seq@count \xdef\first@@{1} \else - \ifnum\start@seq<0 \xdef\start@seq{1} + \ifnum\first@@<0 \xdef\first@@{1} \else - \expandafter\def\csname seq@gap\start@seq\endcsname{yes} + \expandafter\def\csname seq@gap\first@@\endcsname{yes} \loopcount=\seq@gap@num \advance\loopcount by 1 \xdef\seq@gap@num{\the\loopcount} @@ -7777,8 +8860,9 @@ \else \xdef\first@{functional} \ifx\first@\last@ - \if\seq@type P \simmodefalse \funcmodetrue \func@shading{#1} - \else \message{} \fi + \if\seq@type N \message{} + \else \simmodefalse \funcmodetrue \func@shading{#1} + \xdef\seq@type{P} \xdef\prefix@{pep} \fi \else \xdef\first@{diverse} \ifx\first@\last@ @@ -7795,7 +8879,7 @@ \gapchar{-} \hideconsensus \else - \message{} + \message{} \simmodetrue \funcmodefalse \fi\fi\fi\fi} \def\allmatchspecial{\all@shadetrue} @@ -7806,31 +8890,53 @@ \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} + \xdef\start@seq{#1} + \xdef\temp@{consensus} + \ifx\start@seq\temp@ + \message{<\noexpand\setends does not accept `consensus'>} + \xdef\start@seq{0} + \else + \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 + \message{<\noexpand\setends{} error: sequence `#1' not defined>} + \xdef\start@seq{0} + \else + \ifnum\start@seq<1 + \message{<\noexpand\setends{} error: sequence `#1' not defined>} + \xdef\start@seq{0} + \else + \xdef\second@{#2@} \expandafter\get@nums\second@ + \xdef\start@num{\first@} \xdef\end@num{\second@} + \ifnum\start@num=0 \xdef\allow@zero{y}\fi + \ifnum\end@num=0 \xdef\allow@zero{y}\fi + \start@false + \fi + \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{} + \xdef\first@{#1} \xdef\second@{consensus} + \ifx\first@\second@ + \ifnum#2=0 \xdef\allow@zero{y} \fi + \expandafter\xdef\csname seq@start0\endcsname{#2} + \cons@count=#2 \advance\cons@count by -1\relax + \expandafter\xdef\csname res@count0\endcsname{\the\cons@count} \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} + \xdef\first@{#1 @} \expandafter\check@letter\first@ + \xdef\first@{#1} \ifletter \get@name@number \fi + \ifnum\first@>\seq@count \message{} + \else + \xdef\second@{#2} + \ifnum\second@=0 \xdef\allow@zero{y} \fi + \expandafter\xdef\csname seq@start\first@\endcsname{\second@} + \res@count=\second@ + \advance\res@count by -1 + \expandafter\xdef\csname res@count\first@\endcsname{\the\res@count} + \fi + \fi + } \def\seqlength#1#2{% \xdef\first@{#1 @} \expandafter\check@letter\first@ \xdef\first@{#1} \ifletter \get@name@number \fi @@ -7839,14 +8945,21 @@ \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} +\newcommand\shownumbering[2][n]{% + \xdef\first@{#1}\ifx\first@\n@\else\xdef\numbering@fg{#1}\fi + \xdef\first@{#2} + \xdef\second@{left} + \ifx\first@\second@ \numbers@lefttrue \numbers@rightfalse \numbers@true \fi + \xdef\second@{right} + \ifx\first@\second@ \numbers@leftfalse \numbers@righttrue \numbers@true \fi + \xdef\second@{leftright} + \ifx\first@\second@ \numbers@lefttrue \numbers@righttrue \numbers@true \fi + } \def\hidenumbering{\numbers@false} \def\hidenumber#1{\xdef\first@{#1,&,@} \hidenumber@} -\def\shownames#1{% - \xdef\first@{#1} \xdef\second@{left} +\newcommand\shownames[2][n]{% + \xdef\first@{#1}\ifx\first@\n@\else\xdef\names@fg{#1}\fi + \xdef\first@{#2} \xdef\second@{left} \ifx\first@\second@ \names@rightfalse \else \names@righttrue \fi \names@true} \def\hidenames{\names@false} @@ -7872,8 +8985,204 @@ \else \xdef\first@{#1,&,@} \donot@shade \fi} +\def\hideseqs{\xdef\hide@seqs{y}} +\def\showseqs{\xdef\hide@seqs{n}} \def\hideseq#1{\xdef\first@{#1,&,@} \hideseq@} \def\killseq#1{\xdef\first@{#1,&,@} \killseq@} +\def\hidesequencelogo{\show@logofalse} +\def\hidesubfamilylogo{\show@sublogofalse} +\def\logo@group@get#1#2@{% + \xdef\first@{#1}\xdef\third@{#2@} + \ifx\first@\ampers@nd + \else + \ifnum`#1>96 \make@upper\fi + \expandafter\xdef\csname logo@col\first@\endcsname{\second@} + \expandafter\logo@group@get\third@ + \fi +} +\def\logocolor#1#2{% + \xdef\logo@colors@set{yes} + \xdef\second@{#2} + \xdef\third@{#1&@} + \expandafter\logo@group@get\third@ +} +\newcommand\clearlogocolors[1][Black]{% + \logocolor{ABCDEFGHIJKLMNOPQRSTUVWXYZ}{#1} +} +\def\dofrequencycorrection{\xdef\do@freq@correction{y}} +\def\undofrequencycorrection{\xdef\do@freq@correction{n}} +\newcommand\showlogoscale[2][Black]{\xdef\logo@scalecol{#1}\xdef\show@logoscale{#2}} +\def\hidelogoscale{\xdef\show@logoscale{n}} +\def\hidenegatives{\xdef\hide@negatives{y}\xdef\sublogo@tint{}} +\newcommand\shownegatives[1][medium]{% + \xdef\hide@negatives{n} + \xdef\first@{#1} + \xdef\second@{full} + \ifx\first@\second@ + \xdef\sublogo@tint{} + \else + \xdef\second@{strong} + \ifx\first@\second@ + \xdef\sublogo@tint{Light} + \else + \xdef\second@{medium} + \ifx\first@\second@ + \xdef\sublogo@tint{LightLight} + \else + \xdef\second@{weak} + \ifx\first@\second@ + \xdef\sublogo@tint{LightLightLight} + \else + \xdef\sublogo@tint{LightLight} + \fi\fi\fi\fi +} +\def\set@logocolors{% + \xdef\second@{undefined} + \ifx\first@\second@ + \if\logo@colors@set\n@ + \xdef\first@{standard} + \fi + \fi + \xdef\second@{standard} + \ifx\first@\second@ + \if\seq@type A + \xdef\logo@colors@set{n} + \else + \if\seq@type P + \xdef\first@{rasmol} + \else + \xdef\first@{nucleotide} + \fi + \fi + \fi + \xdef\second@{nucleotide} + \ifx\first@\second@ + \clearlogocolors + \logocolor{G}{Black} + \logocolor{A}{Green} + \logocolor{TU}{Red} + \logocolor{C}{Blue} + \else + \xdef\second@{rasmol} + \ifx\first@\second@ + \clearlogocolors + \logocolor{DE}{Red} + \logocolor{CM}{Yellow} + \logocolor{KR}{Blue} + \logocolor{ST}{Orange} + \logocolor{FY}{MidnightBlue} + \logocolor{NQ}{Cyan} + \logocolor{G}{LightGray} + \logocolor{LVI}{Green} + \logocolor{A}{DarkGray} + \logocolor{W}{CarnationPink} + \logocolor{H}{CornflowerBlue} + \logocolor{P}{Apricot} + \logocolor{BZ}{LightMagenta} + \else + \xdef\second@{chemical} + \ifx\first@\second@ + \clearlogocolors + \logocolor{DE}{Red} + \logocolor{VIL}{Black} + \logocolor{AG}{Gray} + \logocolor{NQ}{Green} + \logocolor{FYW}{Brown} + \logocolor{KRH}{Blue} + \logocolor{ST}{Magenta} + \logocolor{P}{Orange} + \logocolor{CM}{Yellow} + \else + \xdef\second@{hydropathy} + \ifx\first@\second@ + \clearlogocolors + \logocolor{DE}{Red} + \logocolor{KRH}{Blue} + \logocolor{YSTGNQC}{Yellow} + \logocolor{AFPMWVIL}{Green} + \else + \xdef\second@{structure} + \ifx\first@\second@ + \clearlogocolors + \logocolor{DEHKNQR}{Orange} + \logocolor{ACGPSTWY}{Yellow} + \logocolor{FILMV}{Green} + \else + \xdef\second@{standard area} + \ifx\first@\second@ + \clearlogocolors + \logocolor{G}{BrickRed} + \logocolor{AS}{Orange} + \logocolor{CP}{Yellow} + \logocolor{TDVN}{YellowGreen} + \logocolor{IE}{PineGreen} + \logocolor{LQHM}{SkyBlue} + \logocolor{FK}{RoyalPurple} + \logocolor{Y}{RedViolet} + \logocolor{RW}{Black} + \else + \xdef\second@{accessible area} + \ifx\first@\second@ + \clearlogocolors + \logocolor{C}{BrickRed} + \logocolor{IVG}{Orange} + \logocolor{FLMA}{Yellow} + \logocolor{WSTH}{YellowGreen} + \logocolor{P}{PineGreen} + \logocolor{YDN}{SkyBlue} + \logocolor{EQ}{RoyalPurple} + \logocolor{R}{RedViolet} + \logocolor{K}{Black} + \fi\fi\fi\fi\fi\fi\fi +} +\newcommand\findsubfamily[2][n]{% + \xdef\first@{#1} + \ifx\first@\n@ + \else + \xdef\subfamily@threshold{#1} + \fi + \xdef\subfamily@seq{#2} +} +\def\setsubfamily#1{% + \xdef\sub@family@setting{#1} + \loopcount=1 + \loop + \expandafter\xdef\csname subfamily@num\the\loopcount\endcsname{1} + \advance\loopcount by 1 + \ifnum\loopcount>\seq@count\else\repeat + \xdef\subfamily@count{2} + \res@count=0 + \xdef\first@{#1,&,@} + \setsubfamily@ + \clear@res@nums{1} + \clear@res@nums{2} + \expandafter\xdef\csname group@num2\endcsname{\the\res@count} + \loopcount=\seq@count + \advance\loopcount by -\res@count + \expandafter\xdef\csname group@num1\endcsname{\the\loopcount} +} +\def\subfamilythreshold#1{\xdef\subfamily@threshold{#1}} +\newcommand\showsubfamilylogo[2][undefined]{% + \xdef\first@{#1} \set@logocolors + \xdef\first@{#2} \xdef\last@{top} + \ifx\first@\last@\xdef\sublogo@top{0}\else\xdef\sublogo@top{1}\fi + \show@sublogotrue +} +\def\relevance#1{% + \def\sig@max{#1} + \setlength\temp@@length{1000sp} + \setlength\temp@@length{\sig@max\temp@@length} + \loopcount=\temp@@length + \xdef\sig@max{\the\loopcount} +} +\newcommand\showrelevance[2][Black]{\def\sig@color{#1}\def\sig@char{#2}\xdef\hide@sig{n}} +\def\hiderelevance{\xdef\hide@sig{y}} +\newcommand\showsequencelogo[2][undefined]{% + \xdef\first@{#1} \set@logocolors + \xdef\first@{#2} \xdef\last@{top} + \ifx\first@\last@\xdef\logo@top{0}\else\xdef\logo@top{1}\fi + \show@logotrue +} \newcommand\showconsensus[2][n]{% \xdef\text@scale{n} \xdef\box@scale{n} @@ -7946,16 +9255,20 @@ \ifx\second@\ampers@nd \else \def\@llm@tch{#3}\fi} \def\hideconsensus{\show@consfalse} \def\nameconsensus#1{\def\cons@name{#1}} +\def\namesequencelogo#1{\def\logo@name@user{#1}} +\newcommand\namesubfamilylogo[2][]{\def\sublogo@name@neg{#1}\def\sublogo@name@user{#2}} \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} +\newcommand\showruler[3][n]{% + \xdef\first@{#1} + \ifx\first@\n@\else\xdef\ruler@fg{#1}\fi + \xdef\first@{consensus} \xdef\second@{#3} + \xdef\third@{bottom} \xdef\fourth@{#2} \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 + \xdef\first@{#3 @} \expandafter\check@letter\first@ + \xdef\first@{#3} \ifletter \get@name@number \fi \ifnum\first@>\seq@count \else \ifnum\first@>0 @@ -7965,7 +9278,14 @@ \fi \xdef\ruler@{}} \def\hideruler{\xdef\rule@num{-1}} -\def\rulersteps#1{\xdef\ruler@step{#1}} +\def\allowzero{\xdef\allow@zero{y}} +\def\disallowzero{\xdef\allow@zero{n}} +\def\rulersteps#1{% + \xdef\ruler@step{#1} + \ifnum#1<4 \xdef\ruler@rot{90}\fi +} +\def\rotateruler{\xdef\ruler@rot{90}} +\def\unrotateruler{\xdef\ruler@rot{0}} \def\featurerule#1{\setlength\rule@thick{#1}} \def\orderseqs#1{% \def\order@loop{% @@ -8033,6 +9353,9 @@ \xdef\temp@{labels} \ifx\first@\temp@ \xdef\label@family{\third@} \else + \xdef\temp@{ruler} + \ifx\first@\temp@ \xdef\ruler@family{\second@} + \else \xdef\temp@{all} \ifx\first@\temp@ \xdef\featuretext@family{\third@} @@ -8042,7 +9365,8 @@ \xdef\residues@family{\third@} \xdef\legend@family{\third@} \xdef\label@family{\third@} - \fi\fi\fi\fi\fi\fi\fi\fi + \xdef\ruler@family{\second@} + \fi\fi\fi\fi\fi\fi\fi\fi\fi \fi } \def\setseries#1#2{% @@ -8341,6 +9665,9 @@ \def\legendLARGE {\setsize{legend}{LARGE}} \def\legendhuge {\setsize{legend}{huge}} \def\legendHuge {\setsize{legend}{Huge}} +\def\rulerrm{\setfamily{ruler}{rm}} +\def\rulersf{\setfamily{ruler}{sf}} +\def\rulertt{\setfamily{ruler}{tt}} \def\funcshadingstyle#1#2#3#4#5{% \xdef\temp@{nomatch} \xdef\first@{#1} \ifx\temp@\first@ @@ -8379,7 +9706,7 @@ \allmatchresidues{White}{Black}{upper}{sl} \else \xdef\second@{grays} \ifx\first@\second@ - \else \message{} \xdef\first@{grays}\fi + \else \message{} \xdef\first@{grays}\fi \ifx\first@\second@ \similarresidues{Black}{LightGray}{upper}{up} \conservedresidues{White}{DarkGray}{upper}{up} @@ -8880,20 +10207,21 @@ \fi \ifnewres - \expandafter\csname pos\the\loopcount\endcsname=0 + \pos@sum=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 + \advance\pos@sum by 1 \fi \ifnum\innerloopcount<\seq@count \repeat - \expandafter\multiply\csname pos\the\loopcount\endcsname by \seq@percent + \multiply\pos@sum by \seq@percent + \expandafter\xdef\csname pos\the\loopcount\endcsname{\the\pos@sum} \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\m@x{\csname pos\the\loopcount\endcsname} \xdef\cons@seq{\the\loopcount} \xdef\match@case{\c@se} \xdef\simgroup@{\first@} \else @@ -8927,22 +10255,24 @@ \fi \ifnewres - \expandafter\csname pos\the\loopcount\endcsname=0 + \pos@sum=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 + \advance\pos@sum by 1 \fi \ifnum\innerloopcount<\seq@count \repeat + \expandafter\xdef\csname pos\the\loopcount\endcsname{\the\pos@sum} \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 + \multiply\pos@sum by \seq@percent + \expandafter\xdef\csname pos\the\loopcount\endcsname{\the\pos@sum} \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\m@x{\csname pos\the\loopcount\endcsname} \xdef\cons@seq{\the\loopcount} \xdef\match@case{1} \else \expandafter\ifnum\csname pos\the\loopcount\endcsname=\m@x @@ -8975,21 +10305,22 @@ \fi \ifnewres - \expandafter\csname pos\the\loopcount\endcsname=0 + \pos@sum=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 + \advance\pos@sum 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} + \expandafter\xdef\csname pos\the\loopcount\endcsname{\the\pos@sum} + \expandafter\ifnum\csname pos\the\loopcount\endcsname>\m@x + \xdef\m@x{\csname pos\the\loopcount\endcsname} \xdef\cons@seq{\the\loopcount} - \fi + \fi \fi \ifnum\loopcount=\cons@num \loopcount=1 \fi @@ -9554,7 +10885,7 @@ \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 + \else \xdef\first@@{\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@@ @@ -9614,7 +10945,7 @@ \loop \advance\loopcount by 1 \ifnum\loopcount=0 \xdef\first@@{\the\cons@count} - \else \xdef\first@@{\the\csname res@count\the\loopcount\endcsname} \fi + \else \xdef\first@@{\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@@ @@ -9664,7 +10995,7 @@ \loop \advance\loopcount by 1 \ifnum\loopcount=0 \xdef\first@@{\the\cons@count} - \else \xdef\first@@{\the\csname res@count\the\loopcount\endcsname} \fi + \else \xdef\first@@{\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@@ @@ -9755,7 +11086,7 @@ \loop \advance\loopcount by 1 \ifnum\loopcount=0 \xdef\first@@{\the\cons@count} - \else \xdef\first@@{\the\csname res@count\the\loopcount\endcsname} \fi + \else \xdef\first@@{\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@@ @@ -9816,7 +11147,6 @@ \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@ @ @@ -9829,7 +11159,6 @@ \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@ @ @@ -9966,6 +11295,579 @@ \collect@cons@res \fi } +\def\sum@up@bits{% + \ifx\first@@@\second@@@ + \ifx\first@@@\d@t + \temp@count=0\relax + \else + \temp@count=100\relax + \fi + \else + \temp@count=0 +% \xdef\third@@@{\csname cons\first@@@\second@@@\endcsname}\temp@count=\third@@@ %%% or if only identical =0 + \fi + \multiply\temp@count by \last@ + \divide\temp@count by 100 + \expandafter\ifx\csname info@\subfamily@seq @\the\outerloopcount\endcsname\relax + \expandafter\xdef\csname info@\subfamily@seq @\the\outerloopcount\endcsname{0} + \fi + \xdef\third@@@{\csname info@\subfamily@seq @\the\outerloopcount\endcsname} + \advance\temp@count by \third@@@ + \expandafter\xdef\csname info@\subfamily@seq @\the\outerloopcount\endcsname{\the\temp@count} +} +\def\sum@up@info{% + \ifnum\outerloopcount=\subfamily@seq \advance\outerloopcount by 1 \fi + \ifnum\outerloopcount>\seq@count + \else + \xdef\first@@@{\csname res\the\outerloopcount\endcsname} + \sum@up@bits + \advance\outerloopcount by 1\relax + \fi + \ifnum\outerloopcount>\seq@count\else\sum@up@info\fi +} +\def\collect@info{% + \outerloopcount=1\relax + \temp@count=0\relax + \xdef\second@@@{\csname res\subfamily@seq\endcsname} + \sum@up@info +} + +\def\calc@grouping{% + \xdef\second@{\csname res@num\d@t\endcsname} + \innerloopcount=\seq@count + \advance\innerloopcount by -\second@ + \xdef\second@{\the\innerloopcount} + \xdef\seventh@{0} + \innerloopcount=0 + \outerloopcount=65 + \loop + \xdef\first@@{\csname ch@r@\the\outerloopcount\endcsname} + \xdef\first@{\csname res@num\first@@\endcsname} + \ifnum\first@>0 + \temp@count=\csname log2@\first@\endcsname + \advance\temp@count by -\csname log2@\second@\endcsname + \advance\temp@count by \csname res@corr\first@@\endcsname + \multiply\temp@count by -\first@ + \divide\temp@count by \second@ + \advance\innerloopcount by \temp@count\relax + \temp@count=\second@ %%% + \advance\temp@count by -\first@ %%% + \advance\temp@count by \seventh@ %%% + \xdef\seventh@{\the\temp@count} %%% + \fi + \expandafter\xdef\csname res@num\first@@\endcsname{0} + \advance\outerloopcount by 1 + \ifnum\outerloopcount>90\else\repeat + \expandafter\xdef\csname res@num\d@t\endcsname{0} + \if\seq@type P + \temp@count=\csname log2@20\endcsname + \ifnum\sig@max=100000 \xdef\sig@max{2321} \fi + \else + \temp@count=\csname log2@4\endcsname + \ifnum\sig@max=100000 \xdef\sig@max{1000} \fi + \fi + \xdef\bit@max{\the\temp@count} + \advance\temp@count by -\innerloopcount + \multiply\temp@count by \second@ + \divide\temp@count by \seq@count + \xdef\last@{\the\temp@count} + \expandafter\xdef\csname bit@pos\the\loopcount\endcsname{\last@} + \temp@count=\bit@total + \advance\temp@count by \last@ + \xdef\bit@total{\the\temp@count} + \collect@info +} +\def\do@grouping{% + \ifnum\loopcount>\total@pos + \else + \triple@count=1 + \loop + \xdef\first@{\csname seq\the\triple@count\endcsname} + \expandafter\dis@get\first@ + \ifx\first@\ampers@nd + \else + \innerloopcount=\csname res@num\first@\endcsname + \advance\innerloopcount by 1 + \expandafter\xdef\csname res@num\first@\endcsname{\the\innerloopcount} + \fi + \advance\triple@count by 1\relax + \ifnum\triple@count>\seq@count + \calc@grouping + \advance\loopcount by 1 + \do@grouping + \else + \repeat + \fi +} +\def\total@frequency@correction{% + \innerloopcount=0 + \outerloopcount=65 + \loop + \xdef\first@@{\csname ch@r@\the\outerloopcount\endcsname} + \xdef\first@{\csname res@corr\first@@\endcsname} + \advance\innerloopcount by \first@\relax + \advance\outerloopcount by 1 + \ifnum\outerloopcount>90\else\repeat + \xdef\res@num@total{\the\innerloopcount} + \outerloopcount=65 + \loop + \xdef\first@@{\csname ch@r@\the\outerloopcount\endcsname} + \xdef\first@{\csname res@corr\first@@\endcsname} + \innerloopcount=\first@\relax + \ifnum\innerloopcount>0 + \multiply\innerloopcount by 1000\relax + \divide\innerloopcount by \res@num@total\relax + \innerloopcount=\csname log2@\the\innerloopcount\endcsname + \advance\innerloopcount by -5644\relax + \multiply\innerloopcount by -1\relax + \fi + \expandafter\xdef\csname res@corr\first@@\endcsname{\the\innerloopcount} + \ifnum\the\innerloopcount>\corr@max \xdef\corr@max{\the\innerloopcount}\fi + \advance\outerloopcount by 1 + \ifnum\outerloopcount>90\else\repeat +} +\def\calc@total@frequency{% + \ifnum\loopcount>\total@pos + \else + \triple@count=1 + \loop + \xdef\first@{\csname seq\the\triple@count\endcsname} + \expandafter\tot@get\first@ + \ifx\first@\ampers@nd + \else + \innerloopcount=\csname res@corr\first@\endcsname + \advance\innerloopcount by 1 + \expandafter\xdef\csname res@corr\first@\endcsname{\the\innerloopcount} + \fi + \advance\triple@count by 1\relax + \ifnum\triple@count>\seq@count + \advance\loopcount by 1 + \calc@total@frequency + \else + \repeat + \fi +} +\def\prep@logo{% + \if\seq@type P + \ifx\do@freq@correction\y@ + \xdef\do@freq@correction{n} + \loopcount=1 + \loop + \expandafter\xdef\csname seq\the\loopcount\endcsname{\csname sequence\the\loopcount\endcsname &@} + \advance\loopcount by 1 + \ifnum\loopcount>\seq@count\else\repeat + \xdef\corr@max{0} + \loopcount=1 + \calc@total@frequency + \total@frequency@correction + \fi + \fi +} +\def\define@subfamilies{% + \xdef\first@{\csname group@num1\endcsname} + \advance\loopcount by -1 + \xdef\last@{\the\loopcount} + \outerloopcount=\bit@total + \divide\outerloopcount by \last@ + \xdef\bit@mean{\the\outerloopcount} + \multiply\outerloopcount by \subfamily@threshold\relax + \divide\outerloopcount by 100\relax + \xdef\sub@threshold{\the\outerloopcount} + \ifnum\first@=0 + \clear@res@nums{1} + \clear@res@nums{2} + \immediate\write\featurefile{TeXshade subfamily logo data file for \alignfilename} + \immediate\write\featurefile{--} + \immediate\write\featurefile{Average information content [1000*bits per position]: \bit@mean} + \immediate\write\featurefile{Subfamily threshold setting [percent]: \subfamily@threshold} + \immediate\write\featurefile{=> \bit@mean\space * 0.\subfamily@threshold\space = \sub@threshold\space [1000*bits per position]} + \immediate\write\featurefile{} + \expandafter\xdef\csname subfamily@num\subfamily@seq\endcsname{2} + \immediate\write\featurefile{Automatic subfamily assignment around sequence no. \subfamily@seq:} + \immediate\write\featurefile{[sequence pair: average shared information *1000, subfamily number]} + \temp@count=1 + \outerloopcount=1 + \loop + \ifnum\outerloopcount=\subfamily@seq \advance\outerloopcount by 1 \fi + \ifnum\outerloopcount>\seq@count + \else + \xdef\first@{\csname info@\subfamily@seq @\the\outerloopcount\endcsname} + \loopcount=\first@\relax + \divide\loopcount by \last@\relax + \ifnum\loopcount>\sub@threshold + \expandafter\xdef\csname subfamily@num\the\outerloopcount\endcsname{2} + \advance\temp@count by 1\relax + \else + \expandafter\xdef\csname subfamily@num\the\outerloopcount\endcsname{1} + \fi + \xdef\first@@{\csname subfamily@num\the\outerloopcount\endcsname} + \immediate\write\featurefile{\subfamily@seq-\the\outerloopcount:\space\the\loopcount,\space subfamily: \first@@} + \advance\outerloopcount by 1 + \fi + \ifnum\outerloopcount>\seq@count\else\repeat + \immediate\write\featurefile{} + \immediate\write\featurefile{//} + \ifnum\temp@count>0 + \expandafter\xdef\csname group@num2\endcsname{\the\temp@count} + \else + \message{} + \show@sublogofalse + \immediate\write\featurefile{} + \fi + \loopcount=\seq@count + \advance\loopcount by -\temp@count + \ifnum\loopcount>0 + \expandafter\xdef\csname group@num1\endcsname{\the\loopcount} + \else + \message{} + \immediate\write\featurefile{} + \show@sublogofalse + \fi + \else + \immediate\write\featurefile{TeXshade subfamily logo data file for \alignfilename} + \immediate\write\featurefile{--} + \immediate\write\featurefile{Average information content [1000*bits per position]: \bit@mean} + \immediate\write\featurefile{Subfamily threshold setting [percent]: \subfamily@threshold} + \immediate\write\featurefile{=> \bit@mean\space * 0.\subfamily@threshold\space = \sub@threshold\space [1000*bits per position]} + \immediate\write\featurefile{} + \immediate\write\featurefile{User defined subfamily: \sub@family@setting} + \immediate\write\featurefile{} + \immediate\write\featurefile{//} + \fi +} +\def\prep@sublogo{% + \message{} + \immediate\openout\featurefile = sublogo.txt + \if\seq@type P + \ifx\do@freq@correction\y@ + \xdef\do@freq@correction{n} + \loopcount=1 + \loop + \xdef\first@{\csname @rd\the\loopcount\endcsname} %%% + \expandafter\xdef\csname seq\the\loopcount\endcsname{\csname sequence\first@\endcsname &@} + \advance\loopcount by 1 + \ifnum\loopcount>\seq@count\else\repeat + \xdef\corr@max{0} + \loopcount=1 + \calc@total@frequency + \total@frequency@correction + \fi + \fi + \loopcount=1 + \loop + \xdef\first@{\csname @rd\the\loopcount\endcsname} %%% + \expandafter\xdef\csname seq\the\loopcount\endcsname{\csname sequence\first@\endcsname &@} + \advance\loopcount by 1 + \ifnum\loopcount>\seq@count\else\repeat + \loopcount=1 + \do@grouping + \define@subfamilies + \ifshow@sublogo + \loopcount=1 + \loop + \xdef\first@{\csname @rd\the\loopcount\endcsname} %%% + \expandafter\xdef\csname seq\the\loopcount\endcsname{\csname sequence\first@\endcsname &@} + \advance\loopcount by 1 + \ifnum\loopcount>\seq@count\else\repeat + \xdef\first@{\csname group@num1\endcsname} + \xdef\first@@{\csname log2@\first@\endcsname} + \xdef\second@{\csname group@num2\endcsname} + \xdef\second@@{\csname log2@\second@\endcsname} + \loopcount=\first@ + \advance\loopcount by \second@ + \xdef\third@{\the\loopcount} + \xdef\third@@{\csname log2@\third@\endcsname} + \loopcount=\first@@ + \advance\loopcount by -\third@@ + \multiply\loopcount by \first@ + \divide\loopcount by \third@ + \xdef\first@@@{\the\loopcount} + \loopcount=\second@@ + \advance\loopcount by -\third@@ + \multiply\loopcount by \second@ + \divide\loopcount by \third@ + \xdef\second@@@{\the\loopcount} + \loopcount=\bit@max + \advance\loopcount by \first@@@ + \advance\loopcount by \second@@@ + \xdef\group@correction{\the\loopcount} + \loopcount=1 \total@count=0 + \do@sublogo + \immediate\closeout\featurefile + \openin\sublogofile = sublogo.txt\relax + \read@header + \else + \immediate\closeout\featurefile + \fi +} +\def\read@header{% + \read\sublogofile to \first@\relax + \xdef\first@{\expandafter\string\first@} + \ifx\first@\par@ \read@header + \else + \xdef\first@{\first@ @} + \expandafter\seq@get\first@ + \ifx\first@\he@derend + \else\read@header + \fi + \fi +} +\def\read@sublogo{% + \xdef\stack@sublogo{}% + \loopcount=1 % + \loop% + \ifeof\sublogofile% + \advance\loopcount by \res@perline% + \else% + \read\sublogofile to \first@\relax% + \xdef\first@{\expandafter\string\first@}% + \ifx\first@\par@% + \advance\loopcount by \res@perline% + \else + \xdef\first@{\first@ @}% + \expandafter\sublogo@get\first@% + \xdef\stack@sublogo{\stack@sublogo\first@}% + \advance\loopcount by 1% + \fi% + \fi% + \ifnum\loopcount=\res@perline\else\repeat% +} +\def\calc@sublogo{% + \xdef\seventh@{\csname res@num.2\endcsname} + \xdef\first@{\csname group@num2\endcsname} + \innerloopcount=\first@ + \advance\innerloopcount by -\seventh@ + \xdef\seventh@{\the\innerloopcount} + \xdef\eighth@{\csname res@num.1\endcsname} + \xdef\first@{\csname group@num1\endcsname} + \innerloopcount=\first@ + \advance\innerloopcount by -\eighth@ + \xdef\eighth@{\the\innerloopcount} + \xdef\nineth@{n} + \xdef\pos@max{0} + \xdef\pos@min{0} + \outerloopcount=65 + \loop + \xdef\first@@{\csname ch@r@\the\outerloopcount\endcsname} + \xdef\first@{\csname res@num\first@@ 1\endcsname} \xdef\temp@{\first@} + \temp@count=\first@ + \ifnum\seventh@>0 \multiply\temp@count by \seventh@ \fi + \xdef\first@{\the\temp@count} + \xdef\second@{\csname res@num\first@@ 2\endcsname} + \temp@count=\temp@ + \advance\temp@count by \second@\relax + \ifnum\temp@count>0 + \temp@count=\second@ + \ifnum\eighth@>0 \multiply\temp@count by \eighth@ \fi + \advance\temp@count by -\first@ + \xdef\last@{\csname bit@pos\the\loopcount\endcsname} + \multiply\temp@count by \last@ + \ifnum\seventh@>0 \divide\temp@count by \seventh@ \fi + \ifnum\eighth@>0 \divide\temp@count by \eighth@ \fi + \multiply\temp@count by \bit@max + \divide\temp@count by \group@correction + \ifx\hide@negatives\y@ + \ifnum\temp@count>0 \else \temp@count=1 \fi% + \else + \ifnum\temp@count=0 \temp@count=1 \fi% + \fi + \expandafter\xdef\csname res@val\first@@\endcsname{\the\temp@count} + \expandafter\xdef\csname res@num\first@@ 1\endcsname{0} + \expandafter\xdef\csname res@num\first@@ 2\endcsname{0} + \xdef\nineth@{y} + \else + \expandafter\xdef\csname res@val\first@@\endcsname{0} + \expandafter\xdef\csname res@num\first@@ 1\endcsname{0} + \expandafter\xdef\csname res@num\first@@ 2\endcsname{0} + \fi + \ifnum\temp@count>\pos@max \xdef\pos@max{\the\temp@count}\fi + \ifnum\temp@count<\pos@min \xdef\pos@min{\the\temp@count}\fi + \advance\outerloopcount by 1 + \ifnum\outerloopcount>90\else\repeat + \expandafter\xdef\csname res@val\d@t\endcsname{0} + \expandafter\xdef\csname res@num\d@t 1\endcsname{0} + \expandafter\xdef\csname res@num\d@t 2\endcsname{0} + \temp@count=\pos@min\relax + \multiply\temp@count by -1\relax + \xdef\pos@min{\the\temp@count} + \ifnum\pos@min>\pos@max \xdef\pos@max{\pos@min}\fi + \temp@count=\pos@max + \multiply\temp@count by 100 \relax + \divide\temp@count by \bit@max \relax + \xdef\sublogo@num{\sublogo@num\the\temp@count,} + \ifnum\pos@max<\sig@max \xdef\sublogo@sig{\sublogo@sig n} \else \xdef\sublogo@sig{\sublogo@sig y} \fi + \ifx\nineth@\y@ + \xdef\tmpstack{&:&,} + \outerloopcount=65 + \loop + \xdef\first@@{\csname ch@r@\the\outerloopcount\endcsname} + \xdef\second@@{\csname res@val\first@@\endcsname} + \ifnum\second@@=0 + \else + \xdef\third@{\tmpstack @} \xdef\tmpstack{} + \sort@logostack + \fi + \advance\outerloopcount by 1 + \ifnum\outerloopcount>90 + \immediate\write\featurefile{\expandafter\string\tmpstack&:&,} + \else\repeat + \else + \immediate\write\featurefile{\expandafter\string O:0,&:&,} + \fi +} +\def\do@sublogo{% + \ifnum\loopcount>\total@pos + \xdef\sublogo@sig{\sublogo@sig &@} + \else + \triple@count=1 + \loop + \xdef\first@{\csname seq\the\triple@count\endcsname} + \expandafter\dis@get\first@ + \ifnum\triple@count=\start@seq + \ifx\first@\d@t\else \advance\total@count by 1\relax\fi + \fi + \ifnum\loopcount<\start@number + \else + \ifnum\total@count>\end@num + \else + \ifx\first@\ampers@nd + \else + \xdef\second@{\csname subfamily@num\the\triple@count\endcsname} + \innerloopcount=\csname res@num\first@\second@\endcsname + \advance\innerloopcount by 1 + \expandafter\xdef\csname res@num\first@\second@\endcsname{\the\innerloopcount} + \fi + \fi + \fi + \advance\triple@count by 1\relax + \ifnum\triple@count>\seq@count + \ifnum\loopcount<\start@number + \else + \ifnum\total@count>\end@num + \else + \calc@sublogo + \fi + \fi + \advance\loopcount by 1 + \do@sublogo + \else + \repeat + \fi +} +\def\calc@logo{% + \xdef\second@{\csname res@num\d@t\endcsname} + \innerloopcount=\seq@count + \advance\innerloopcount by -\second@ + \xdef\second@{\the\innerloopcount} + \xdef\seventh@{0} + \innerloopcount=0 + \outerloopcount=65 + \loop + \xdef\first@@{\csname ch@r@\the\outerloopcount\endcsname} + \xdef\first@{\csname res@num\first@@\endcsname} + \ifnum\first@>0 + \temp@count=\csname log2@\first@\endcsname + \advance\temp@count by -\csname log2@\second@\endcsname + \advance\temp@count by \csname res@corr\first@@\endcsname %%%% correct for background freq. + \multiply\temp@count by -\first@ + \divide\temp@count by \second@ + \advance\innerloopcount by \temp@count\relax + \fi + \advance\outerloopcount by 1 + \ifnum\outerloopcount>90\else\repeat + \if\seq@type P + \temp@count=\csname log2@20\endcsname + \else + \temp@count=\csname log2@4\endcsname + \fi + \advance\temp@count by -\innerloopcount + \multiply\temp@count by \second@ + \divide\temp@count by \seq@count + \xdef\last@{\the\temp@count} + \xdef\nineth@{n} + \outerloopcount=65 + \loop + \xdef\first@@{\csname ch@r@\the\outerloopcount\endcsname} + \xdef\first@{\csname res@num\first@@\endcsname} + \ifnum\first@>0 + \temp@count=\last@ + \multiply\temp@count by \first@\relax + \divide\temp@count by \second@\relax + \ifnum\temp@count=0 % + \temp@count=1 % + \fi% + \expandafter\xdef\csname res@val\first@@\endcsname{\the\temp@count} + \expandafter\xdef\csname res@num\first@@\endcsname{0} + \xdef\nineth@{y} + \else + \expandafter\xdef\csname res@val\first@@\endcsname{0} + \fi + \advance\outerloopcount by 1 + \ifnum\outerloopcount>90\else\repeat + \expandafter\xdef\csname res@val\d@t\endcsname{0} + \expandafter\xdef\csname res@num\d@t\endcsname{0} + \ifx\nineth@\y@ + \xdef\tmpstack{&:&,} + \outerloopcount=65 + \loop + \xdef\first@@{\csname ch@r@\the\outerloopcount\endcsname} + \xdef\second@@{\csname res@val\first@@\endcsname} + \ifnum\second@@>0 + \xdef\third@{\tmpstack @} \xdef\tmpstack{} + \sort@logostack + \fi + \advance\outerloopcount by 1 + \ifnum\outerloopcount>90 + \xdef\stack@sequencelogo{\stack@sequencelogo\tmpstack&:&,} + \else\repeat + \else + \xdef\stack@sequencelogo{\stack@sequencelogo O:0,&:&,} + \fi +} +\def\get@fromlogostack#1:#2,#3@{% + \xdef\first@{#1} \xdef\second@{#2} \xdef\third@{#3} +} +\def\sort@logostack{% + \expandafter\get@fromlogostack\third@ + \ifx\first@\ampers@nd + \xdef\tmpstack{\tmpstack\first@@:\second@@,} + \else + \ifnum\second@@<0 + \ifnum\second@>0 + \xdef\tmpstack{\tmpstack\first@@:\second@@,\first@:\second@,\third@} + \else + \temp@count=\second@@\relax \multiply\temp@count by -1\relax + \triple@count=\second@\relax \multiply\triple@count by -1\relax + \ifnum\temp@count<\triple@count + \xdef\tmpstack{\tmpstack\first@@:\second@@,\first@:\second@,\third@} + \else + \xdef\tmpstack{\tmpstack\first@:\second@,} + \xdef\third@@{\third@ .} + \ifx\third@@\d@t + \xdef\third@{&:&,@} + \else + \xdef\third@{\third@ @} + \fi + \sort@logostack + \fi + \fi + \else + \ifnum\second@@<\second@ + \xdef\tmpstack{\tmpstack\first@@:\second@@,\first@:\second@,\third@} + \else + \xdef\tmpstack{\tmpstack\first@:\second@,} + \xdef\third@@{\third@ .} + \ifx\third@@\d@t + \xdef\third@{&:&,@} + \else + \xdef\third@{\third@ @} + \fi + \sort@logostack + \fi + \fi + \fi +} + \def\calc@feature{% \advance\pos@count by -1 @@ -9973,7 +11875,7 @@ \loop \advance\loopcount by 1 \ifnum\loopcount=0 \xdef\first@@{\the\cons@count} - \else \xdef\first@@{\the\csname res@count\the\loopcount\endcsname} \fi + \else \xdef\first@@{\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@@ @@ -10285,25 +12187,29 @@ \xdef\seq@line{\csname sequence\the\loopcount\endcsname} \expandafter\residue@get\seq@line \xdef\first@{\csname res\the\loopcount\endcsname} + \innerloopcount=\csname res@num\first@\endcsname + \advance\innerloopcount by 1 + \expandafter\xdef\csname res@num\first@\endcsname{\the\innerloopcount} \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 + \res@count=\csname res@count\the\loopcount\endcsname + \advance\res@count by 1 + \ifnum\res@count=0\relax + \ifx\allow@zero\n@ \advance\res@count by 1 \fi + \fi + \expandafter\xdef\csname res@count\the\loopcount\endcsname{\the\res@count} + \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 + \innerloopcount=\rule@tens \advance\innerloopcount by \ruler@step\relax + \ifnum\innerloopcount=0 + \ifx\allow@zero\n@ \innerloopcount=\ruler@step \fi + \fi \xdef\rule@tens{\the\innerloopcount} - \else + \else \xdef\ruler@{\ruler@ -} - \fi - \fi + \fi + \fi \ifx\collect@valtop\yes \ifnum\v@lseqtop=\loopcount \xdef\v@ltop{\v@ltop,\csname \ffourth@top\first@\endcsname} @@ -10368,7 +12274,7 @@ \advance\innerloopcount by \csname pepcharge\first@\endcsname \expandafter\xdef\csname ch@rge\the\loopcount\endcsname{% \the\innerloopcount} - \else + \else \ifnum\loopcount=\rule@num \xdef\ruler@{\ruler@ -} \fi \ifx\collect@valtop\yes \ifnum\v@lseqtop=\loopcount @@ -10402,7 +12308,7 @@ \ifnum\tr@nsseqbbottom=\loopcount \xdef\tr@nslatebbottom{\tr@nslatebbottom -} \fi\fi - \fi + \fi \ifnum\loopcount<\seq@count \repeat \ifx\collect@cons@graphtop\yes \outerloopcount=1\relax @@ -10441,25 +12347,28 @@ \fi \global\advance\cons@count by 1\relax - \global\csname res@count0\endcsname=\cons@count - \ifnum\rule@num=0 + \ifnum\cons@count=0\relax + \ifx\allow@zero\n@ \global\advance\cons@count by 1 \fi + \fi + \expandafter\xdef\csname res@count0\endcsname{\the\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\ruler@{\ruler@ !<\rule@tens>} + \innerloopcount=\rule@tens \advance\innerloopcount by \ruler@step\relax + \ifnum\innerloopcount=0 + \ifx\allow@zero\n@ \innerloopcount=\ruler@step \fi + \fi \xdef\rule@tens{\the\innerloopcount} \else \xdef\ruler@{\ruler@ -} - \fi - \fi - \advance\pos@count by 1 + \fi + \fi + \advance\pos@count by 1 + \ifshow@logo \calc@logo \fi \ifregionalshadenow \calc@regshade \fi \ifregionaltintnow \calc@regtint \fi \ifregionalemphnow \calc@regemph \fi - \ifframenow \calc@frame \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 @@ -10474,9 +12383,9 @@ \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 + \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 @@ -10495,16 +12404,18 @@ \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 + \res@count=\csname res@count\the\loopcount\endcsname + \advance\res@count by 1 + \ifnum\res@count=0 + \ifx\allow@zero\n@ \advance\res@count by 1 \fi \fi + \expandafter\xdef\csname res@count\the\loopcount\endcsname{\the\res@count} \ifnum\rule@num=\loopcount \temp@count=\csname res@count\the\loopcount\endcsname + \advance\temp@count by \ruler@step \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} + \xdef\rule@tens{\the\temp@count} \fi \fi \ifnum\loopcount<\seq@count \c@unt\fi} @@ -10621,26 +12532,30 @@ \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 + \res@count=\csname res@count\the\loopcount\endcsname + \advance\res@count by 1 + \ifnum\res@count=0 + \ifx\allow@zero\n@ \advance\res@count by 1 \fi \fi \fi + \expandafter\xdef\csname res@count\the\loopcount\endcsname{\the\res@count} \ifnames@right \expandafter\xdef\csname seq\the\loopcount\endcsname{% - \the\csname res@count\the\loopcount\endcsname)} + \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)} + \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 + \res@count=\csname res@count\the\loopcount\endcsname + \advance\res@count by -1 + \ifnum\res@count=0 + \ifx\allow@zero\n@ \advance\res@count by -1 \fi + \fi + \expandafter\xdef\csname res@count\the\loopcount\endcsname{\the\res@count} \fi \else \ifnames@right @@ -11024,7 +12939,7 @@ \else \innerloopcount=1\relax\put@char% \fi - \ifnumbers@left\else\def\@kern{\kern0em}\expandafter\put@number\first@\fi + \ifnumbers@right\def\@kern{\kern0em}\expandafter\put@number\first@\fi \ifnames@right\def\@kern{\kern1em}\expandafter\put@name\first@\fi \newline\hbox{}% } @@ -11032,13 +12947,21 @@ \def\set@consensus{% \ifnames@right \ifnumbers@left + \ifnumbers@right + \xdef\consensus{)\consensus)<\cons@name>}% + \else \xdef\consensus{)\consensus<\cons@name>}% + \fi \else \xdef\consensus{\consensus)<\cons@name>}% \fi \else \ifnumbers@left + \ifnumbers@right + \xdef\consensus{<\cons@name>)\consensus)}% + \else \xdef\consensus{<\cons@name>)\consensus}% + \fi \else \xdef\consensus{<\cons@name>\consensus)}% \fi @@ -11047,9 +12970,67 @@ \def\get@rulenum<#1>#2@{% \xdef\first@{#2@}% \ifcase\rule@top - \def\third@{\ensuremath{\,\stackrel{\mathtt{#1}}{.}}}% + \ifnum\ruler@rot=0 % + \xdef\temp@{tt}% + \ifx\ruler@family\temp@% + \def\third@{\ensuremath{\,\stackrel{\mathtt{#1}}{.}}}% + \else + \xdef\temp@{sf}% + \ifx\ruler@family\temp@% + \def\third@{\ensuremath{\,\stackrel{\mathsf{#1}}{.}}}% + \else + \xdef\temp@{rm}% + \ifx\ruler@family\temp@% + \def\third@{\ensuremath{\,\stackrel{\mathrm{#1}}{.}}}% + \fi\fi\fi + \else + \xdef\temp@{tt}% + \ifx\ruler@family\temp@% + \def\third@{\tt\bottomruler@size\,\,\,\,% + \begin{rotopo}{90}\hbox to \ruler@width{\,\ensuremath{\cdot}\,#1\hss}\end{rotopo}}% + \else + \xdef\temp@{sf}% + \ifx\ruler@family\temp@% + \def\third@{\sf\bottomruler@size\,\,\,\,% + \begin{rotopo}{90}\hbox to \ruler@width{\,\ensuremath{\cdot}\,#1\hss}\end{rotopo}}% + \else + \xdef\temp@{rm}% + \ifx\ruler@family\temp@% + \def\third@{\rm\bottomruler@size\,\,\,\,% + \begin{rotopo}{90}\hbox to \ruler@width{\,\ensuremath{\cdot}\,#1\hss}\end{rotopo}}% + \fi\fi\fi + \fi \else - \def\third@{\bottomruler@size\ensuremath{\,\stackrel{.}{\mathtt{#1}}}}% + \ifnum\ruler@rot=0 % + \xdef\temp@{tt}% + \ifx\ruler@family\temp@% + \def\third@{\bottomruler@size\ensuremath{\,\stackrel{.}{\mathtt{#1}}}}% + \else + \xdef\temp@{sf}% + \ifx\ruler@family\temp@% + \def\third@{\bottomruler@size\ensuremath{\,\stackrel{.}{\mathsf{#1}}}}% + \else + \xdef\temp@{rm}% + \ifx\ruler@family\temp@% + \def\third@{\bottomruler@size\ensuremath{\,\stackrel{.}{\mathrm{#1}}}}% + \fi\fi\fi + \else + \xdef\temp@{tt}% + \ifx\ruler@family\temp@% + \def\third@{\tt\bottomruler@size\,\,\,\,% + \begin{rotopo}{90}\hbox to \ruler@width{\hss#1\,\ensuremath{\cdot}}\end{rotopo}}% + \else + \xdef\temp@{sf}% + \ifx\ruler@family\temp@% + \def\third@{\sf\bottomruler@size\,\,\,\,% + \begin{rotopo}{90}\hbox to \ruler@width{\hss#1\,\ensuremath{\cdot}}\end{rotopo}}% + \else + \xdef\temp@{rm}% + \ifx\ruler@family\temp@% + \def\third@{\rm\bottomruler@size\,\,\,\,% + \begin{rotopo}{90}\hbox to \ruler@width{\hss#1\,\ensuremath{\cdot}}\end{rotopo}}% + \fi\fi\fi + \fi \fi} \def\next@rulechar#1#2@{% @@ -11070,15 +13051,35 @@ \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 + \ifnames@right% + \ifnumbers@left% + \ifnumbers@right% + \xdef\ruler@{)\ruler@)<>}% + \else% + \xdef\ruler@{)\ruler@<>}% + \fi% + \else% + \xdef\ruler@{\ruler@)<>}% + \fi% + \else% + \ifnumbers@left% + \ifnumbers@right% + \xdef\ruler@{<>)\ruler@)}% + \else% + \xdef\ruler@{<>)\ruler@}% + \fi% + \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 + \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}% + \fontfamily{\ruler@family}% + \fontseries{m}% + \fontshape{n}% + \selectfont% \innerloopcount=1\relax\textcolor{\ruler@fg}{\put@rulechar}% \newline\hbox{}% } @@ -11294,22 +13295,22 @@ \else% \xdef\last@{helix}% \ifx\second@@\last@% - \fontfamily{\rmdefault}% - \fontseries{\mddefault}% - \fontshape{\itdefault}% + \fontfamily{cmr}% + \fontseries{m}% + \fontshape{it}% \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}% + \setbox1=\hbox{\ensuremath{\helixhook}\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}}% + \textcolor{\f@color}{\raisebox{-0.25ex}{\ensuremath{\helixhook}}% \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}}}% + \textcolor{\f@color}{\raisebox{-0.25ex}{\ensuremath{\helixhook}}}% \else% \xdef\last@{box}% \ifx\second@@\last@% @@ -11468,7 +13469,6 @@ \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% @@ -11500,6 +13500,11 @@ \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}% + \setbox1=\hbox{\residues@size{\fill@char}}% + \kern-\second@\box@width% + \hbox to \second@\box@width{\textcolor{\backtext@color}{\hss\rule[\width@tmp]{1.2\wd1}{\temp@@length}\hss}}% + \kern-\second@\box@width% + \hbox to \second@\box@width{\textcolor{\frame@color}{\residues@size{\hss\fill@char\hss}}}% \if\third@@ ,% \kern-\temp@@length\rule{\temp@@length}{\arrow@height}% \else% @@ -11537,7 +13542,8 @@ } \def\next@featuretext#2;#3@{% \xdef\first@{#3@}% - \xdef\last@{#2::&}\expandafter\test@fill\last@% +% \xdef\last@{#2::&}\expandafter\test@fill\last@% + \xdef\last@{fill:#2:&}\expandafter\test@fill\last@% \ifx\f@color\comm@\xdef\f@color{Black}\fi% \fontfamily{\featuretext@family}% \fontseries{\featuretext@series}% @@ -11700,7 +13706,21 @@ \fi% } \def\put@frame{% + \ifx\hide@seqs\n@% + \ifshow@cons\ifnum\cons@top=1 \vspace{-\baselineskip}\fi\fi% \temp@count=\seq@count% + \ifx\hide@seqs\y@ + \advance\temp@count by -1 + \else + \loopcount=1% + \xdef\first@{true}% + \loop% + \expandafter\ifx\csname hide@seq\the\loopcount\endcsname\first@% + \advance\temp@count by -1\fi% + \advance\loopcount by 1% + \ifnum\loopcount>\seq@count\else\repeat% + \fi + \ifnum\temp@count>0% \setlength\temp@@length{\box@height}% \advance\temp@@length by \box@depth% \setlength\arrow@height{0.5\temp@@length}% @@ -11712,7 +13732,6 @@ \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% @@ -11721,7 +13740,444 @@ \vspace{-\arrow@height}% \ifshow@cons\ifnum\cons@top=1 \vspace{\baselineskip}\fi\fi% \newline\hbox{}% + \fi% + \fi% +} +\def\decimal@A#1#2@{% + \def\decimal@AB##1##2@{\xdef\temp@{##1.##2}}% + \xdef\temp@@{#1}% + \xdef\temp@{#2@}% + \expandafter\decimal@AB\temp@% + \xdef\temp@{\temp@@\temp@}% +} +\def\decimal@B#1#2@{\xdef\temp@{#1.#2}} +\def\decimal@C#1#2@{\xdef\temp@{0.#1#2}} +\def\decimal@D#1#2@{\xdef\temp@{0.0#1#2}} +\def\decimal@E#1#2@{\xdef\temp@{0.00#1#2}} +\def\correct@CGSO{% + \setlength\temp@@length{0.12\logo@height}% + \multiply\temp@@length by \third@ % + \if\seq@type P % + \divide\temp@@length by 4322 % + \else% + \divide\temp@@length by 4000 % + \fi% + \loopcount=\third@% + \multiply\loopcount by 94 % + \divide\loopcount by 100 % + \xdef\third@{\the\loopcount}% +} +\def\correct@Q{% + \setlength\temp@@length{0.063\logo@height}% + \multiply\temp@@length by \third@% + \if\seq@type P % + \divide\temp@@length by 4322 % + \else% + \divide\temp@@length by 4000 % + \fi% + \multiply\temp@@length by 10 % + \loopcount=\third@% + \multiply\loopcount by 83 % + \divide\loopcount by 100 % + \xdef\third@{\the\loopcount}% +} +\def\correct@JUV{% + \setlength\temp@@length{0.12\logo@height}% + \multiply\temp@@length by \third@ % + \if\seq@type P % + \divide\temp@@length by 4322 % + \else% + \divide\temp@@length by 4000 % + \fi% + \loopcount=\third@% + \multiply\loopcount by 97 % + \divide\loopcount by 100 % + \xdef\third@{\the\loopcount}% +} +\def\next@logo#1:#2,#3@{% + \xdef\first@{#1}\xdef\second@{#2}\xdef\last@{#3}% + \ifx\first@\ampers@nd% + \ifx\clear@logo\n@% + \ifx\hide@sig\n@% + \expandafter\firstchar@get\sublogo@sig% + \xdef\sublogo@sig{\third@}% + \ifx\first@\y@% + \loopcount=\temp@count% + \ifnum\loopcount<0 \loopcount=0\fi% + \xdef\fourth@{\the\loopcount @}% + \ifnum\loopcount>9999 \expandafter\decimal@A\fourth@ \else% + \ifnum\loopcount>999 \expandafter\decimal@B\fourth@ \else% + \ifnum\loopcount>99 \expandafter\decimal@C\fourth@ \else% + \ifnum\loopcount>9 \expandafter\decimal@D\fourth@ \else% + \expandafter\decimal@E\fourth@% + \fi\fi\fi\fi% + \raisebox{\temp@\logo@height}{% + \hbox to \box@width{\textcolor{\sig@color}{\hss\residues@size{\sig@char}\hss}}}% + \kern-\box@width% + \fi% + \fi% + \fi% + \temp@count=0% + \kern\box@width% + \advance\outerloopcount by 1 % + \else% + \ifnum#2=1% + \temp@count=0% + \else% + \if\seq@type N% + \loopcount=\second@% + \multiply\loopcount by 2% + \xdef\second@{\the\loopcount}% + \fi% + \xdef\third@{\second@}% + \if\first@ C\correct@CGSO \else% + \if\first@ G\correct@CGSO \else% + \if\first@ S\correct@CGSO \else% + \if\first@ O\correct@CGSO \else% + \if\first@ Q\correct@Q \else% + \if\first@ J\correct@JUV \else% + \if\first@ U\correct@JUV \else% + \if\first@ V\correct@JUV \else% + \setlength\temp@@length{0pt}% + \fi\fi\fi\fi\fi\fi\fi\fi% + \loopcount=\third@ + \multiply\loopcount by \logo@stretch@IOOO% + \ifnum\loopcount>0 % + \divide\loopcount by 1000 \xdef\fl@g{}% + \xdef\tint@{}% + \else% + \divide\loopcount by -1000 \xdef\fl@g{-}% + \xdef\tint@{\sublogo@tint}% + \fi% + \ifnum\loopcount=0\relax\loopcount=1\relax\fi + \xdef\third@{\the\loopcount @}% + \ifnum\loopcount>9999 \expandafter\decimal@A\third@ \else% + \ifnum\loopcount>999 \expandafter\decimal@B\third@ \else% + \ifnum\loopcount>99 \expandafter\decimal@C\third@ \else% + \ifnum\loopcount>9 \expandafter\decimal@D\third@ \else% + \expandafter\decimal@E\third@% + \fi\fi\fi\fi% + \xdef\third@{\fl@g\temp@}% + \ifnum\temp@count<0 % + \ifnum\second@<0 \else\temp@count=0 \fi% + \fi% + \ifnum\temp@count>0 % + \loopcount=\temp@count \xdef\fl@g{}% + \else + \loopcount=-\temp@count \xdef\fl@g{-}% + \fi% + \xdef\fourth@{\the\loopcount @}% + \ifnum\loopcount>9999 \expandafter\decimal@A\fourth@ \else% + \ifnum\loopcount>999 \expandafter\decimal@B\fourth@ \else% + \ifnum\loopcount>99 \expandafter\decimal@C\fourth@ \else% + \ifnum\loopcount>9 \expandafter\decimal@D\fourth@ \else% + \expandafter\decimal@E\fourth@% + \fi\fi\fi\fi% + \xdef\fourth@{\fl@g\temp@}% + \if\first@ W% + \hbox to \box@width{\hss% + \raisebox{\temp@@length}{\raisebox{\fourth@\logo@height}{\scalebox{0.8}[\third@]% + {\hbox to \box@width{\textcolor{\tint@\csname logo@col\first@\endcsname}{\hss\residues@size{W}\hss}}}}}\hss}% + \kern-\box@width% + \else% + \raisebox{\temp@@length}{\raisebox{\fourth@\logo@height}{\scalebox{1}[\third@]% + {\hbox to \box@width{\textcolor{\tint@\csname logo@col\first@\endcsname}{\hss\residues@size{\first@}\hss}}}}}% + \kern-\box@width% + \fi% + \advance\temp@count by \second@% + \fi% + \fi% + \xdef\temp@{\last@.}% + \ifx\temp@\d@t% + \else% + \xdef\last@{#3@}% + \ifnum\outerloopcount>\res@perline% + \else + \expandafter\next@logo\last@% + \fi% + \fi% +} + +\def\put@logo{% + \ifx\clear@logo\y@% + \ifnum\logo@top=1 % + \vspace{-0.5\baselineskip}% + \else + \vspace{-0.75\baselineskip}% + \fi% + \else% + \ifnum\sublogo@top=1 % + \vspace{-0.5\baselineskip}% + \else + \vspace{-0.75\baselineskip}% + \fi% + \fi% + \newline\hbox{}% + \ifnames@right% + \else% + \fontfamily{\namestext@family}\fontseries{\namestext@series}\fontshape{\namestext@shape}% + \selectfont% + \ifnames@ + \textcolor{\names@fg}{% + \raisebox{2\logo@height}{\hbox to \name@width{\namestext@size{\logo@name}\hss}}% + \ifx\clear@logo\n@ + \ifx\hide@negatives\n@% + \kern-\name@width\raisebox{-3\logo@height}{\hbox to \name@width{\namestext@size{\sublogo@name@neg}\hss}}% + \fi% + \fi}% + \fi% + \fi% + \ifnumbers@left\ifnumbers@\hbox to \number@width{\hss}\fi\fi% + \fontfamily{cmss}\fontseries{m}\fontshape{n}\selectfont% + \ifx\show@logoscale\n@% + \if\seq@type P% + \ifnum\corr@max>600\relax% + \rule[5.4\logo@height]{0pt}{0pt}% + \else% + \rule[4.4\logo@height]{0pt}{0pt}% + \fi% + \else% + \rule[4.0688\logo@height]{0pt}{0pt}% + \fi% + \else% + \xdef\first@{right}% + \ifx\show@logoscale\first@% + \else% + \textcolor{\logo@scalecol}{% + \kern-0.7\box@width% + \rule[-0.05\logo@height]{0.4\box@width}{0.1\box@width}\kern-0.4\box@width% + \rule[2\logo@height]{0.4\box@width}{0.1\box@width}\kern-0.4\box@width% + \rule[4\logo@height]{0.4\box@width}{0.1\box@width}% + \if\seq@type P% + \kern-0.4\box@width% + \rule[1\logo@height]{0.4\box@width}{0.1\box@width}\kern-0.4\box@width% + \rule[3\logo@height]{0.4\box@width}{0.1\box@width}% + \ifnum\corr@max>600\relax% + \kern-0.4\box@width\rule[5\logo@height]{0.4\box@width}{0.1\box@width}\fi% + \setbox1=\hbox{\bottomruler@size 2}% + \kern-1.2\box@width% + \ifdim\logo@height>1.25\ht1 \relax% + \raisebox{-0.5\ht1}{\raisebox{1\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss 1}}}% + \kern-0.6\box@width% + \raisebox{-0.5\ht1}{\raisebox{3\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss 3}}}% + \kern-0.6\box@width% + \ifnum\corr@max>600\relax% + \raisebox{-0.5\ht1}{\raisebox{5\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss 5}}}% + \kern-0.6\box@width% + \fi + \fi + \raisebox{-0.5\ht1}{\raisebox{2\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss 2}}}% + \kern-0.6\box@width% + \raisebox{-0.5\ht1}{\raisebox{4\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss 4}}}% + \kern0.6\box@width% + \ifnum\corr@max>600\relax% + \rule[5.4\logo@height]{0pt}{0pt}% + \else + \rule[4.4\logo@height]{0pt}{0pt}% + \fi + \else% + \setbox1=\hbox{\bottomruler@size 2}% + \kern-1.2\box@width% + \raisebox{-0.5\ht1}{\raisebox{2\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss 1}}}% + \kern-0.6\box@width% + \raisebox{-0.5\ht1}{\raisebox{4\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss 2}}}% + \kern0.6\box@width% + \rule[4.0688\logo@height]{0pt}{0pt}% + \fi% + \kern-0.1\box@width% + \ifnum\corr@max>600\relax% + \rule{0.1\box@width}{5\logo@height}% + \else% + \rule{0.1\box@width}{4\logo@height}% + \fi% + \ifx\clear@logo\n@% + \ifx\hide@negatives\n@% + \kern-0.4\box@width% + \rule[-2\logo@height]{0.4\box@width}{0.1\box@width}\kern-0.4\box@width% + \rule[-4\logo@height]{0.4\box@width}{0.1\box@width}% + \if\seq@type P% + \kern-0.4\box@width% + \rule[-\logo@height]{0.4\box@width}{0.1\box@width}\kern-0.4\box@width% + \rule[-3\logo@height]{0.4\box@width}{0.1\box@width}% + \ifnum\corr@max>600\relax% + \kern-0.4\box@width\rule[-5\logo@height]{0.4\box@width}{0.1\box@width}\fi% + \setbox1=\hbox{\bottomruler@size 2}% + \kern-1.2\box@width% + \ifdim\logo@height>1.25\ht1 \relax% + \raisebox{-0.5\ht1}{\raisebox{-\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss -1}}}% + \kern-0.6\box@width% + \raisebox{-0.5\ht1}{\raisebox{-3\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss -3}}}% + \kern-0.6\box@width% + \ifnum\corr@max>600\relax% + \raisebox{-0.5\ht1}{\raisebox{-5\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss -5}}}% + \kern-0.6\box@width% + \fi + \fi + \raisebox{-0.5\ht1}{\raisebox{-2\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss -2}}}% + \kern-0.6\box@width% + \raisebox{-0.5\ht1}{\raisebox{-4\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss -4}}}% + \kern0.6\box@width% + \ifnum\corr@max>600\relax% + \rule[-5.4\logo@height]{0pt}{0pt}% + \else + \rule[-4.4\logo@height]{0pt}{0pt}% + \fi + \else% + \setbox1=\hbox{\bottomruler@size 2}% + \kern-1.2\box@width% + \raisebox{-0.5\ht1}{\raisebox{-2\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss -1}}}% + \kern-0.6\box@width% + \raisebox{-0.5\ht1}{\raisebox{-4\logo@height}{\hbox to 0.6\box@width{\bottomruler@size\hss -2}}}% + \kern0.6\box@width% + \rule[-4.0688\logo@height]{0pt}{0pt}% + \fi% + \kern-0.1\box@width% + \ifnum\corr@max>600\relax% + \rule[-5\logo@height]{0.1\box@width}{5\logo@height}% + \else% + \rule[-4\logo@height]{0.1\box@width}{4\logo@height}% + \fi% + \fi% + \fi + \kern0.3\box@width}% + \fi% + \fi% + \temp@count=0% + \outerloopcount=1 \expandafter\next@logo\last@% + \ifx\clear@logo\n@% + \ifx\hide@negatives\n@% + \textcolor{\logo@scalecol}{% + \kern-\res@perline\box@width\rule[-0.03\box@width]{\res@perline\box@width}{0.06\box@width}}% + \fi% + \fi% + \def\@kern{\kern1em}% + \ifx\show@logoscale\n@% + \else% + \xdef\first@{left}% + \ifx\show@logoscale\first@% + \kern0.1\box@width% + \else% + \def\@kern{\kern2em}% + \textcolor{\logo@scalecol}{% + \kern0.3\box@width% + \rule[-0.05\logo@height]{0.4\box@width}{0.1\box@width}\kern-0.4\box@width% + \rule[2\logo@height]{0.4\box@width}{0.1\box@width}\kern-0.4\box@width% + \rule[4\logo@height]{0.4\box@width}{0.1\box@width}% + \if\seq@type P% + \kern-0.4\box@width% + \rule[1\logo@height]{0.4\box@width}{0.1\box@width}\kern-0.4\box@width% + \rule[3\logo@height]{0.4\box@width}{0.1\box@width}% + \ifnum\corr@max>600\relax% + \kern-0.4\box@width\rule[5\logo@height]{0.4\box@width}{0.1\box@width}\fi% + \setbox1=\hbox{\bottomruler@size 2}% + \kern0.2\box@width% + \ifdim\logo@height>1.25\ht1 \relax% + \raisebox{-0.5\ht1}{\raisebox{1\logo@height}{\hbox to 0.6\box@width{\bottomruler@size 1 \hss}}}% + \kern-0.6\box@width% + \raisebox{-0.5\ht1}{\raisebox{3\logo@height}{\hbox to 0.6\box@width{\bottomruler@size 3 \hss}}}% + \kern-0.6\box@width% + \ifnum\corr@max>600\relax% + \raisebox{-0.5\ht1}{\raisebox{5\logo@height}{\hbox to 0.6\box@width{\bottomruler@size 5 \hss}}}% + \kern-0.6\box@width% + \fi + \fi + \raisebox{-0.5\ht1}{\raisebox{2\logo@height}{\hbox to 0.6\box@width{\bottomruler@size 2 \hss}}}% + \kern-0.6\box@width% + \raisebox{-0.5\ht1}{\raisebox{4\logo@height}{\hbox to 0.6\box@width{\bottomruler@size 4 \hss}}}% + \kern-0.8\box@width% + \ifnum\corr@max>600\relax% + \rule[5.4\logo@height]{0pt}{0pt}% + \else + \rule[4.4\logo@height]{0pt}{0pt}% + \fi + \else% + \setbox1=\hbox{\bottomruler@size 2}% + \kern0.2\box@width% + \raisebox{-0.5\ht1}{\raisebox{2\logo@height}{\hbox to 0.6\box@width{\bottomruler@size 1 \hss}}}% + \kern-0.6\box@width% + \raisebox{-0.5\ht1}{\raisebox{4\logo@height}{\hbox to 0.6\box@width{\bottomruler@size 2 \hss}}}% + \kern-0.8\box@width% + \rule[4.0688\logo@height]{0pt}{0pt}% + \fi% + \kern-0.4\box@width% + \ifnum\corr@max>600\relax% + \rule{0.1\box@width}{5\logo@height}% + \else% + \rule{0.1\box@width}{4\logo@height}% + \fi% + \ifx\clear@logo\n@% + \ifx\hide@negatives\n@% + \kern-0.1\box@width% + \rule[-2\logo@height]{0.4\box@width}{0.1\box@width}\kern-0.4\box@width% + \rule[-4\logo@height]{0.4\box@width}{0.1\box@width}% + \if\seq@type P% + \kern-0.4\box@width% + \rule[-\logo@height]{0.4\box@width}{0.1\box@width}\kern-0.4\box@width% + \rule[-3\logo@height]{0.4\box@width}{0.1\box@width}% + \ifnum\corr@max>600\relax% + \kern-0.4\box@width\rule[-5\logo@height]{0.4\box@width}{0.1\box@width}\fi% + \setbox1=\hbox{\bottomruler@size 2}% + \kern0.2\box@width% + \ifdim\logo@height>1.25\ht1 \relax% + \raisebox{-0.5\ht1}{\raisebox{-\logo@height}{\hbox to 0.6\box@width{\bottomruler@size -1 \hss}}}% + \kern-0.6\box@width% + \raisebox{-0.5\ht1}{\raisebox{-3\logo@height}{\hbox to 0.6\box@width{\bottomruler@size -3 \hss}}}% + \kern-0.6\box@width% + \ifnum\corr@max>600\relax% + \raisebox{-0.5\ht1}{\raisebox{-5\logo@height}{\hbox to 0.6\box@width{\bottomruler@size -5 \hss}}}% + \kern-0.6\box@width% + \fi + \fi + \raisebox{-0.5\ht1}{\raisebox{-2\logo@height}{\hbox to 0.6\box@width{\bottomruler@size -2 \hss}}}% + \kern-0.6\box@width% + \raisebox{-0.5\ht1}{\raisebox{-4\logo@height}{\hbox to 0.6\box@width{\bottomruler@size -4 \hss}}}% + \kern-0.8\box@width% + \ifnum\corr@max>600\relax% + \rule[-5.4\logo@height]{0pt}{0pt}% + \else + \rule[-4.4\logo@height]{0pt}{0pt}% + \fi + \else% + \setbox1=\hbox{\bottomruler@size 2}% + \kern0.2\box@width% + \raisebox{-0.5\ht1}{\raisebox{-2\logo@height}{\hbox to 0.6\box@width{\bottomruler@size -1 \hss}}}% + \kern-0.6\box@width% + \raisebox{-0.5\ht1}{\raisebox{-4\logo@height}{\hbox to 0.6\box@width{\bottomruler@size -2 \hss}}}% + \kern-0.8\box@width% + \rule[-4.0688\logo@height]{0pt}{0pt}% + \fi% + \kern-0.4\box@width% + \ifnum\corr@max>600\relax% + \rule[-5\logo@height]{0.1\box@width}{5\logo@height}% + \else% + \rule[-4\logo@height]{0.1\box@width}{4\logo@height}% + \fi% + \fi% + \fi% + \kern-0.3\box@width}% + \fi% + \fi% + \ifnumbers@right\ifnumbers@\hbox to \number@width{\hss}\def\@kern{\kern1em}\fi\fi% + \ifnames@right% + \fontfamily{\namestext@family}\fontseries{\namestext@series}\fontshape{\namestext@shape}% + \selectfont% + \ifnames@ + \textcolor{\names@fg}{% + \raisebox{2\logo@height}{\hbox to \name@width{\namestext@size{\@kern\logo@name}\hss}}% + \ifx\clear@logo\n@ + \ifx\hide@negatives\n@% + \kern-\name@width\raisebox{-3\logo@height}{\hbox to \name@width{\namestext@size{\@kern\sublogo@name@neg}\hss}}% + \fi% + \fi}% + \fi% + \fi% + \ifx\clear@logo\y@\xdef\stack@sequencelogo{}% + \else% + \ifx\hide@negatives\n@ \newline\hbox{}\fi% + \fi% + \newline\hbox{}% } + \def\set@lines{% \pos@count=1 \xdef\frame@pos{1}% @@ -11750,6 +14206,19 @@ \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 + \ifshow@logo\ifnum\logo@top=0 + \xdef\last@{\stack@sequencelogo @}% + \ifx\logo@name@user\ampers@nd\xdef\logo@name{logo}\else\xdef\logo@name{\logo@name@user}\fi + \xdef\clear@logo{y}% + \put@logo% + \xdef\clear@logo{n}% + \fi\fi + \ifshow@sublogo\ifnum\sublogo@top=0 + \read@sublogo% + \xdef\last@{\stack@sublogo @}% + \ifx\sublogo@name@user\ampers@nd\xdef\logo@name{subfamily}\else\xdef\logo@name{\sublogo@name@user}\fi + \put@logo% + \fi\fi \set@consensus \ifshow@cons\ifnum\cons@top=0 \xdef\cons@now{y}% @@ -11760,44 +14229,45 @@ \xdef\c@nscol{}% \xdef\cons@now{no}% \fi\fi - \loopcount=0 + \ifx\hide@seqs\n@% + \loopcount=0 % \loop - \advance\loopcount by 1 + \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 + \ifnumbers@right \expandafter\xdef\csname seq\the\loopcount\endcsname{% \csname seq\the\loopcount\endcsname% + \csname res@count\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 + \ifnumbers@right \expandafter\xdef\csname seq\the\loopcount\endcsname{% \csname seq\the\loopcount\endcsname% - \the\csname res@count\the\loopcount\endcsname)}% + \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% + \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% \fi% \put@line% - \fi - \ifnum\loopcount<\seq@count\repeat - \ifshow@cons\ifnum\cons@top=1 + \fi% + \ifnum\loopcount<\seq@count\repeat% + \fi% + \ifshow@cons\ifnum\cons@top=1 % \xdef\cons@now{y}% \xdef\first@{\consensus @}% \xdef\first@@@{\c@nscol @}% @@ -11805,48 +14275,64 @@ \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 + \fi\fi% + \ifnum\frame@=1 % + \ifnum\frame@on=0 \xdef\frame@{0}\fi% + \put@frame% + \fi% + \ifshow@logo\ifnum\logo@top=1 % + \xdef\last@{\stack@sequencelogo @}% + \ifx\logo@name@user\ampers@nd\xdef\logo@name{logo}\else\xdef\logo@name{\logo@name@user}\fi + \xdef\clear@logo{y}% + \put@logo% + \xdef\clear@logo{n}% + \fi\fi% + \ifshow@sublogo\ifnum\sublogo@top=1 + \read@sublogo% + \xdef\last@{\stack@sublogo @} + \ifx\sublogo@name@user\ampers@nd\xdef\logo@name{subfamily}\else\xdef\logo@name{\sublogo@name@user}\fi + \put@logo% + \fi\fi% + \ifnum\rule@num<0 % + \else% + \ifnum\rule@top=1 % \loopcount=0\relax% + \ifnum\ruler@rot=0 % + \else \vspace{\ruler@width}\vspace{-1.75\baselineskip}\newline\hbox{}% + \fi \put@ruler% - \vspace{0.25\baselineskip}% - \fi - \fi - \ifnum\feature@bottom=1 - \ifnum\featureonbottom=0 \xdef\feature@bottom{0}\fi + \ifnum\ruler@rot=0 \vspace{0.25\baselineskip}\fi% + \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 + \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 + \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 + \put@feature% \else \iffix@ \if\bbottom@stretch y% @@ -11854,7 +14340,7 @@ \vspace{\b@r@stretch\box@height}% \fi% \ifbbottomfeature - \vspace{\bb@sp@ce}\newline\hbox{}\newline\hbox{} + \vspace{\bb@sp@ce}\newline\hbox{}\newline\hbox{}% \fi \fi \fi @@ -11876,7 +14362,7 @@ \message{.} \ifx\out@put\y@ \vbox{\set@lines}\par - \block@skip + \block@skip \else \pos@count=1 \findc@nsensus @@ -11918,7 +14404,7 @@ \advance\loopcount by 1\relax \immediate\write\@auxout{% \string\savedseqlength{\@lign@count}{\the\loopcount}% - {\expandafter\the\csname res@count\the\loopcount\endcsname}} + {\csname res@count\the\loopcount\endcsname}} \ifnum\loopcount<\seq@count \repeat } @@ -11976,49 +14462,64 @@ \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\guess@protein{\seqtype{P}\message{}} +\def\guess@DNA{\seqtype{N}\message{}} \def\residue@count{% \expandafter\res@get\seq@line \if\first@\ampers@nd \else - \advance\innerloopcount by 1 - \ifstart@ \advance\res@count by 1 - \else + \advance\total@count by 1 + \advance\innerloopcount by 1 + \ifstart@ \advance\res@count by 1 \fi \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 + \ifletter + \advance\end@count by 1 + \if\seq@type A \relax + \temp@count=\char@num + \ifnum\temp@count>96 \advance\temp@count by -32 \fi + \ifnum\temp@count=69 \guess@protein + \else + \ifnum\temp@count=70 \guess@protein + \else + \ifnum\temp@count=73 \guess@protein + \else + \ifnum\temp@count=76 \guess@protein + \else + \ifnum\temp@count=80 \guess@protein + \else + \ifnum\temp@count=81 \guess@protein + \fi\fi\fi\fi\fi\fi + \fi + \fi + \ifnum\end@count=\start@num\relax + \xdef\start@number{\the\innerloopcount} + \start@true \res@count=1 \fi - \start@true \res@count=1 - \fi \fi \residue@count \fi} +\def\clean@seq{% + \expandafter\res@get\seq@line + \if\first@\ampers@nd \xdef\seq@line{\seq@@line} + \else + \expandafter\check@char\first@ + \ifnum\char@num>64 + \ifnum\char@num>96 \make@upper \fi + \xdef\seq@@line{\seq@@line\first@} + \else + \ifnum\char@num=46 + \xdef\seq@@line{\seq@@line\d@t} + \else + \ifnum\char@num=45 + \xdef\seq@@line{\seq@@line\d@t} + \fi + \fi + \fi + \clean@seq + \fi} \def\read@loop{% \read\alignfile to \inline \xdef\last@{\expandafter\string\inline} @@ -12030,33 +14531,33 @@ \else \innerloopcount=\csname @rd\the\loopcount\endcsname\relax \expandafter\ifx\csname seq@name\the\loopcount\endcsname\first@ + \xdef\seq@@line{} \xdef\seq@line{\seq@line &@} \clean@seq \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} + \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\relax + \xdef\total@pos{\the\total@count} + \ifnum\end@num>\end@count\relax\xdef\end@num{\the\end@count}\fi + \ifshow@sublogo \prep@sublogo \fi + \ifshow@logo \prep@logo \fi + \ifnum\seq@pointer>\res@perline \block@output \fi + \else \read@loop + \fi} \def\read@fasta{% \read\alignfile to \inline \xdef\last@{\expandafter\string\inline} @@ -12076,7 +14577,8 @@ \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{% + \xdef\seq@@line{} \xdef\seq@line{\seq@line &@} \clean@seq + \expandafter\xdef\csname sequence\the\innerloopcount\endcsname{% \csname sequence\the\innerloopcount\endcsname\seq@line} \fi \fi @@ -12088,10 +14590,14 @@ \else \xdef\seq@line{\csname sequence\start@seq\endcsname &@} \fi - \res@count=0 + \res@count=0 \innerloopcount=0 \residue@count \advance\seq@pointer by \res@count + \xdef\total@pos{\the\total@count} + \ifnum\end@num>\end@count\relax\xdef\end@num{\the\end@count}\fi + \ifshow@sublogo \prep@sublogo \fi + \ifshow@logo \prep@logo \fi \ifnum\seq@pointer>\res@perline \block@output \fi \else \read@fasta @@ -12106,9 +14612,7 @@ \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 + \res@count=0 \seq@pointer=0 \end@count=0 \total@count=0 \xdef\start@number{0} \ifx\f@st@\y@ \loopcount=0 @@ -12117,6 +14621,7 @@ \loopcount=1 \read@loop \fi + \if\seq@type A \guess@DNA \fi \ifnum\seq@pointer>0 \ifstop@ \else @@ -12125,8 +14630,11 @@ \block@output \fi \fi + \ifshow@sublogo \closein\sublogofile \fi + \closein\alignfile \message{)} - \closein\alignfile} +} + %%%%% Read alignment, decide whether MSF or ALN, interpret @@ -12147,11 +14655,11 @@ } \else \message{(\alignfilename :} - \xdef\seq@type{} \xdef\he@der{no} \xdef\f@st@{no} + \xdef\seq@type{A} \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 + \read\alignfile to \inline \xdef\test@{\expandafter\string\inline} \ifx\test@\par@ \innerloopcount=0 \else @@ -12166,15 +14674,15 @@ \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 + \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 @@ -12186,7 +14694,7 @@ \fi \fi \fi - \xdef\first@line{n} + \xdef\first@line{n} \ifeof\alignfile \else\repeat \closein\alignfile \xdef\first@{no} @@ -12219,7 +14727,6 @@ \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{&;&;&;@} @@ -12235,7 +14742,7 @@ \loop \advance\loopcount by 1 \expandafter\xdef\csname @rd\the\loopcount\endcsname{\the\loopcount} - \csname res@count\the\loopcount\endcsname=0 + \expandafter\xdef\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} @@ -12263,9 +14770,6 @@ \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 } @@ -12273,11 +14777,15 @@ %%%%% TeXshade \def\calc@widths{% + \fontfamily{cmss}\fontseries{m}\fontshape{n} + \selectfont + \setbox1=\hbox{\residues@size{A}}\logo@height=\ht1 + \setlength\logo@height{\logo@stretch\logo@height} \fontfamily{\residues@family} \fontseries{\residues@series} \fontshape{\residues@shape} \selectfont - \setbox1=\hbox{\residues@size{W}}\box@width=\wd1 + \setbox1=\hbox{\residues@size{W}}\box@width=1.15\wd1 \global\setlength\box@width{\char@stretch\box@width} \box@height=1.2\ht1 \setbox1=\hbox{\residues@size{g}}\box@depth=1.1\dp1 @@ -12299,6 +14807,26 @@ \fontseries{\namestext@series} \fontshape{\namestext@shape} \selectfont + \ifshow@logo + \ifx\logo@name@user\ampers@nd + \setbox1=\hbox{\namestext@size logo\kern1em} + \else + \setbox1=\hbox{\namestext@size\logo@name@user\kern1em} + \fi + \ifnum\wd1>\name@width \name@width=\wd1 \fi + \fi + \ifshow@sublogo + \ifx\sublogo@name@user\ampers@nd + \setbox1=\hbox{\namestext@size family\kern1em} + \else + \setbox1=\hbox{\namestext@size\sublogo@name@user\kern1em} + \fi + \ifnum\wd1>\name@width \name@width=\wd1 \fi + \ifx\hide@negatives\n@ + \setbox1=\hbox{\namestext@size\sublogo@name@neg\kern1em} + \fi + \ifnum\wd1>\name@width \name@width=\wd1 \fi + \fi \loopcount=1 \loop \setbox1=\hbox{\namestext@size\csname newseqname\the\loopcount\endcsname} @@ -12335,12 +14863,46 @@ \fontseries{\numbertext@series} \fontshape{\numbertext@shape} \selectfont + \setbox1=\hbox{\bottomruler@size\num@width\,-} + \xdef\ruler@width{\the\wd1} \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 + \width@tmp=1.6\box@width + \ifnumbers@ + \ifnumbers@left + \advance\loopcount by -\number@width + \else + \xdef\first@{left} + \ifx\show@logoscale\first@ + \advance\loopcount by -\width@tmp + \fi + \fi + \ifnumbers@right + \advance\loopcount by -\number@width + \else + \xdef\first@{right} + \ifx\show@logoscale\first@ + \advance\loopcount by -\width@tmp + \fi + \fi + \else + \xdef\first@{left} + \ifx\show@logoscale\first@ + \advance\loopcount by -\width@tmp + \fi + \xdef\first@{right} + \ifx\show@logoscale\first@ + \advance\loopcount by -\width@tmp + \fi + \xdef\first@{leftright} + \ifx\show@logoscale\first@ + \advance\loopcount by -\width@tmp + \advance\loopcount by -\width@tmp + \fi + \fi \divide\loopcount by \box@width \divide\loopcount by 5 \multiply\loopcount by 5 \ifrpl@fix\else @@ -12358,6 +14920,30 @@ \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 + \ifx\logo@colors@set\n@ + \if\seq@type N + \clearlogocolors[Yellow] + \logocolor{G}{Black} + \logocolor{A}{Green} + \logocolor{TU}{Red} + \logocolor{C}{Blue} + \else + \clearlogocolors + \logocolor{DE}{Red} + \logocolor{CM}{Yellow} + \logocolor{KR}{Blue} + \logocolor{ST}{Orange} + \logocolor{FY}{MidnightBlue} + \logocolor{NQ}{Cyan} + \logocolor{G}{LightGray} + \logocolor{LVI}{Green} + \logocolor{A}{DarkGray} + \logocolor{W}{CarnationPink} + \logocolor{H}{CornflowerBlue} + \logocolor{P}{Apricot} + \logocolor{BZ}{LightMagenta} + \fi + \fi } \def\multiple@dssp{% @@ -12404,14 +14990,30 @@ \xdef\start@num{\the\loopcount} \fi \fi - \ifnum\rule@num>0 + \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} + \ifnum\loopcount<0 + \ifnum\ruler@step<3 + \advance\loopcount by \ruler@step + \fi + \else + \advance\loopcount by \ruler@step + \fi + \xdef\rule@tens{\the\loopcount} \else - \xdef\rule@tens{\ruler@step} + \loopcount=\cons@count + \divide\loopcount by \ruler@step + \multiply\loopcount by \ruler@step + \ifnum\loopcount<0 + \ifnum\ruler@step<3 + \advance\loopcount by \ruler@step + \fi + \else + \advance\loopcount by \ruler@step + \fi + \xdef\rule@tens{\the\loopcount} \fi \xdef\first@{top} \ifx\cap@pos\first@ @@ -12429,19 +15031,19 @@ \ifnum\finger@linenum>0 \show@consfalse \hidechartrue - \message{} + \message{} \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 + \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@ @@ -12464,13 +15066,17 @@ \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 +\cons@count=0 +\expandafter\xdef\csname res@count0\endcsname{0} +\xdef\allow@zero{n} \xdef\c@ns@shift{0} \regionalshadefalse\regionalemphfalse\regionaltintfalse \frame@false +\xdef\ruler@rot{0} \topfeaturefalse\bottomfeaturefalse \ttopfeaturefalse\bbottomfeaturefalse \all@fshadefalse\hidecharfalse \xdef\finger@linenum{0} +\xdef\hide@seqs{n} \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} @@ -12504,6 +15110,46 @@ \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} +\xdef\res@numA{0} \xdef\res@numB{0} +\xdef\res@numC{0} \xdef\res@numD{0} +\xdef\res@numE{0} \xdef\res@numF{0} +\xdef\res@numG{0} \xdef\res@numH{0} +\xdef\res@numI{0} \xdef\res@numJ{0} +\xdef\res@numK{0} \xdef\res@numL{0} +\xdef\res@numM{0} \xdef\res@numN{0} +\xdef\res@numO{0} \xdef\res@numP{0} +\xdef\res@numQ{0} \xdef\res@numR{0} +\xdef\res@numS{0} \xdef\res@numT{0} +\xdef\res@numU{0} \xdef\res@numV{0} +\xdef\res@numW{0} \xdef\res@numX{0} +\xdef\res@numY{0} \xdef\res@numZ{0} +\expandafter\xdef\csname res@num\d@t\endcsname{0} +\xdef\res@corrA{0} \xdef\res@corrB{0} +\xdef\res@corrC{0} \xdef\res@corrD{0} +\xdef\res@corrE{0} \xdef\res@corrF{0} +\xdef\res@corrG{0} \xdef\res@corrH{0} +\xdef\res@corrI{0} \xdef\res@corrJ{0} +\xdef\res@corrK{0} \xdef\res@corrL{0} +\xdef\res@corrM{0} \xdef\res@corrN{0} +\xdef\res@corrO{0} \xdef\res@corrP{0} +\xdef\res@corrQ{0} \xdef\res@corrR{0} +\xdef\res@corrS{0} \xdef\res@corrT{0} +\xdef\res@corrU{0} \xdef\res@corrV{0} +\xdef\res@corrW{0} \xdef\res@corrX{0} +\xdef\res@corrY{0} \xdef\res@corrZ{0} +\expandafter\xdef\csname res@corr\d@t\endcsname{0} +\xdef\corr@max{0} \xdef\do@freq@correction{n} +\xdef\res@total{0} +\xdef\stack@sequencelogo{} \xdef\bit@total{0} +\clearlogocolors \xdef\logo@colors@set{n} +\show@sublogofalse \xdef\stack@sublogo{} +\xdef\clear@logo{n} \xdef\subfamily@threshold{50} +\xdef\subfamily@seq{1} \xdef\sig@max{100000} +\xdef\sublogo@num{} \xdef\sublogo@sig{} +\xdef\subfamily@count{0} \xdef\sublogo@name@neg{} +\xdef\logo@name@user{&} \xdef\sublogo@name@user{&} +\expandafter\xdef\csname group@num1\endcsname{0} +\expandafter\xdef\csname group@num2\endcsname{0} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% %%%%% @@ -12513,7 +15159,7 @@ %%%%% %%%%% %%%%% Under any circumstances: %%%%% %%%%% %%%%% -%%%%% DO NOT CHANGE ANY SETTINGS !!! %%%%% +%%%%% DO NOT CHANGE ANY SETTINGS HERE !!! %%%%% %%%%% %%%%% %%%%% Please define your personal parameter file! Store your new file %%%%% %%%%% together with this style-file in the same directory and load the %%%%% @@ -12531,19 +15177,26 @@ \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 +\charstretch{1} % Do not stretch character width +\linestretch{1} % Do not stretch lines vertically \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 +\shownumbering{right} % Show sequence numbering on the left \namescolor{Black} % Names' color is `Black' -\shownames{right} % Show sequence names on the right +\shownames{left} % 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 +\hidesequencelogo % Do not show a sequence logo as consensus +\showlogoscale{leftright} % Show vertical scale bar if logo is on +\logostretch{1} % Do not stretch sequence logo vertically +\hidesubfamilylogo % Do not show a subfamily logo +\subfamilythreshold{50} % Set subfamily threshold to 50% +\shownegatives % Show negative values in subfamily logo +\showrelevance[Black]{*} % Label relevant subfamily deviations \defconsensus{{}}{*}{!} % Blank =no match; * =match; ! =all match \showleadinggaps % Show gap symbols before sequence start \rulercolor{Black} % Ruler's color is `Black' @@ -12584,6 +15237,7 @@ \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 +\setfamily{ruler}{sf} % Use sans serif font for ruler numbers \tintdefault{medium} % Use medium tint intensity \emphdefault{it} % Use italics to emphasize regions \showonPHDsec{alpha,beta} % Show helices and strands (PHD input) @@ -12710,23 +15364,30 @@ \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 +\charstretch{1} % Do not stretch character width +\linestretch{1} % Do not stretch lines vertically \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 +\shownumbering{right} % Show sequence numbering on the left \namescolor{Black} % Names' color is `Black' -\shownames{right} % Show sequence names on the right +\shownames{left} % 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 +\hidesequencelogo % Do not show a sequence logo as consensus +\showlogoscale{leftright} % Show vertical scale bar if logo is on +\logostretch{1} % Do not stretch sequence logo vertically +\hidesubfamilylogo % Do not show a subfamily logo +\subfamilythreshold{50} % Set subfamily threshold to 50% +\shownegatives % Show negative values in subfamily logo +\showrelevance[Black]{*} % Label relevant subfamily deviations \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 -\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 @@ -12759,6 +15420,7 @@ \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 +\setfamily{ruler}{sf} % Use sans serif font for ruler numbers \tintdefault{medium} % Use medium tint intensity \emphdefault{it} % Use italics to emphasize regions \showonPHDsec{alpha,beta} % Show helices and strands (PHD input) @@ -13013,36 +15675,30 @@ 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 +AQP1.PRO EIIGTLQLVLCVLATTDR.RRRDLGGSAPLAIGLSVALGHLLAIDYTGCGINPARSFGSA +AQP2.PRO ELFLTMQLVLCIFASTDE.RRGDNLGSPALSIGFSVTLGHLLGIYFTGCSMNPARSLAPA +AQP3.PRO QFIGTAALIVCVLAIVDPYNNPVPRGLEAFTVGLVVLVIGTSMGFNSGYAVNPARDFGPR +AQP4.PRO ELIITFQLVFTIFASCDS.KRTDVTGSVALAIGFSVAIGHLFAINYTGASMNPARSFGPA +AQP5.PRO ELILTFQLALCIFSSTDS.RRTSPVGSPALSIGLSVTLGHLVGIYFTGCSMNPARSFGPA 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............................. +AQP1.PRO VLTR..NFS.N......HWIFWVGPFIGSALAVL..IYDFILAPRSSDFTDRMK...... +AQP2.PRO VVTG..KFD.D......HWVFWIGPLVGAIIGSL..LYNYLLFPSAKSLQERL..AVLKG +AQP3.PRO LFTALAGWGSEVFTTGQNW..WWVPIVSPLLGSIGGVFVYQL.................. +AQP4.PRO VIMG..NWE.N......HWIYWVGPIIGAVLAGA..LYEYV.FCPDVELKRRLKEAFSKA +AQP5.PRO VVMN..RFSPS......HWVFWVGPIVGAMLAAI..LYFYLLFPSSLSLHDRV..AVVKG + + 301 354 +AQP1.PRO ......VWTS.....GQVEEYDLDAD.......DINSRVEMKPK.......... +AQP2.PRO .LEPDTDWEEREVRRRQ..SVELHSPQSLPRG...................SKA +AQP3.PRO .................MIGCHLEQPPPSTEAENV.KLAHMKHKE.......QI +AQP4.PRO AQQTKGSYMEVEDNRSQVETEDLILKPGVVHVIDIDRGDEKKGKDSSGEVLSSV +AQP5.PRO TYEPEEDWEDHREERKK..TIELTAH............................ % % \end{macrocode} % \begin{macrocode} %<*AQP2spec> -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%% %%%%% -%%%%% This is a minimal .ALN file--many sequence aligners can produce them %%%%% -%%%%% %%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - AQP2bt SIAFSRAVLAEFLATLLFVFFGLGSALNWPQALPSVLQIAMAFGLAIGTLVQALGHVSGA AQP2cf SVAFSRAVFAEFLATLLFVFFGLGSALNWPQALPSVLQIAMAFGLGIGTLVQALGHVSGA AQP2dd SIAFSRAVFSEFLATLLFVFFGLGSALNWPQALPSVLQIAMAFGLAIGTLVQALGHISGA diff --git a/Master/texmf-dist/source/latex/texshade/texshade.ins b/Master/texmf-dist/source/latex/texshade/texshade.ins index 14679e1c3ff..be0114678f9 100644 --- a/Master/texmf-dist/source/latex/texshade/texshade.ins +++ b/Master/texmf-dist/source/latex/texshade/texshade.ins @@ -1,7 +1,7 @@ %% %% docstrip install file for texshade.sty %% -%% Copyright 1999-2005 Eric Beitz +%% Copyright 1999-2006 Eric Beitz %% \def\batchfile{texshade.ins} @@ -14,7 +14,7 @@ LaTeX package for typesetting nucleotide and peptide alignments -Copyright (C) 1999-2005 Eric Beitz +Copyright (C) 1999-2006 Eric Beitz See the file texshade.txt \endpreamble -- cgit v1.2.3