summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/texshade
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-06-30 13:15:37 +0000
committerKarl Berry <karl@freefriends.org>2006-06-30 13:15:37 +0000
commitf6a09a7a14c0554f9118c06bdfd67813eac4c0ab (patch)
treefcd0cdfa489c217cf100970ff99695d8ca167616 /Master/texmf-dist/tex/latex/texshade
parent2e9f3d4c5505449dcb952eda85a9f94979511477 (diff)
texshade 1.15 update
git-svn-id: svn://tug.org/texlive/trunk@1729 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/texshade')
-rw-r--r--Master/texmf-dist/tex/latex/texshade/texshade.def18
-rw-r--r--Master/texmf-dist/tex/latex/texshade/texshade.sty2505
2 files changed, 2220 insertions, 303 deletions
diff --git a/Master/texmf-dist/tex/latex/texshade/texshade.def b/Master/texmf-dist/tex/latex/texshade/texshade.def
index be63e0f7c69..a2ab60fb1a6 100644
--- a/Master/texmf-dist/tex/latex/texshade/texshade.def
+++ b/Master/texmf-dist/tex/latex/texshade/texshade.def
@@ -27,23 +27,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
@@ -76,6 +83,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)
diff --git a/Master/texmf-dist/tex/latex/texshade/texshade.sty b/Master/texmf-dist/tex/latex/texshade/texshade.sty
index 2ba3a2cdc1f..729d15deb04 100644
--- a/Master/texmf-dist/tex/latex/texshade/texshade.sty
+++ b/Master/texmf-dist/tex/latex/texshade/texshade.sty
@@ -8,20 +8,22 @@
%%
%% 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
%%
\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
@@ -40,8 +42,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
@@ -57,41 +70,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
@@ -125,7 +144,254 @@
\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}
@@ -685,6 +951,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}
@@ -907,7 +1174,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}
@@ -929,18 +1196,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}
@@ -955,8 +1230,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{%
@@ -998,8 +1273,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{%
@@ -1057,11 +1332,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
@@ -1116,6 +1392,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
@@ -1283,8 +1588,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
@@ -1296,15 +1601,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
@@ -1360,6 +1656,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}
@@ -1370,6 +1667,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}
@@ -1379,6 +1677,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}
@@ -1506,8 +1805,21 @@
\funcgroup{110.3 (K)}{K}{White}{Black}{upper}{up}
\fi
\fi
- \else \message{<Unknown shading mode. Clearing `funcgroups'>}
- \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{<Unknown shading mode - clearing `funcgroups'>}
+ \fi\fi\fi\fi\fi\fi\fi
}
\def\shadeallresidues{\all@fshadetrue}
\def\get@fromstack#1;#2;#3;#4;#5@{%
@@ -1732,6 +2044,7 @@
\xdef\frame@color{#1}%
\ifx\seventh@\ampers@nd%
\xdef\back@color{#1}%
+ \xdef\backtext@color{White}%
\else%
\expandafter\second@color\seventh@%
\fi%
@@ -1840,7 +2153,29 @@
\ifx\f@color\comm@\xdef\f@color{GrayDefault}\fi%
\xdef\fill@char{\fourth@}%
\xdef\box@color{\f@color,&@}%
- \expandafter\two@opt@color\box@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@}%
+ \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
@@ -2611,7 +2946,7 @@
\ifeof\alignfile \xdef\first@{make new} \fi
\immediate\closein\alignfile
\else
- \message{<Unknown type. Ignoring \noexpand\includePHD>}
+ \message{<Unknown type - ignoring \noexpand\includePHD>}
\xdef\first@{ignore}
\fi\fi
\xdef\temp@{make new}
@@ -2796,7 +3131,7 @@
\fi
\ifnum\loopcount=\seq@count \else \repeat
\ifx\second@\n@
- \message{<Sequence name `\first@' was not found, using first sequence.>}
+ \message{<Sequence name `\first@' was not found - using first sequence.>}
\xdef\first@{1}
\fi
}
@@ -3473,6 +3808,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}}}
@@ -3490,15 +3832,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}
@@ -3521,8 +3863,9 @@
\else
\xdef\first@{functional}
\ifx\first@\last@
- \if\seq@type P \simmodefalse \funcmodetrue \func@shading{#1}
- \else \message{<No functional shading on DNA sequences>} \fi
+ \if\seq@type N \message{<No functional shading on DNA sequences>}
+ \else \simmodefalse \funcmodetrue \func@shading{#1}
+ \xdef\seq@type{P} \xdef\prefix@{pep} \fi
\else
\xdef\first@{diverse}
\ifx\first@\last@
@@ -3539,7 +3882,7 @@
\gapchar{-}
\hideconsensus
\else
- \message{<Unknown shading mode. Using `similar'>}
+ \message{<Unknown shading mode - using `similar'>}
\simmodetrue \funcmodefalse
\fi\fi\fi\fi}
\def\allmatchspecial{\all@shadetrue}
@@ -3550,31 +3893,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{<Ignored seq `#1' in \noexpand\startnumber>}
- \else
- \xdef\second@{#2} \ifnum\second@=0 \xdef\second@{1} \fi
- \expandafter\xdef\csname seq@start\first@\endcsname{\second@}
- \csname res@count\first@\endcsname=\second@
- \advance\csname res@count\first@\endcsname by -1
- \fi}
+ \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\first@{#1 @} \expandafter\check@letter\first@
+ \xdef\first@{#1} \ifletter \get@name@number \fi
+ \ifnum\first@>\seq@count \message{<Ignored seq `#1' in \noexpand\startnumber>}
+ \else
+ \xdef\second@{#2}
+ \ifnum\second@=0 \xdef\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
@@ -3583,14 +3948,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}
@@ -3616,8 +3988,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}
@@ -3690,16 +4258,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
@@ -3709,7 +4281,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{%
@@ -3777,6 +4356,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@}
@@ -3786,7 +4368,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{%
@@ -4085,6 +4668,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@
@@ -4123,7 +4709,7 @@
\allmatchresidues{White}{Black}{upper}{sl}
\else \xdef\second@{grays}
\ifx\first@\second@
- \else \message{<Undefined color set. Using `grays'>} \xdef\first@{grays}\fi
+ \else \message{<Undefined color set - using `grays'>} \xdef\first@{grays}\fi
\ifx\first@\second@
\similarresidues{Black}{LightGray}{upper}{up}
\conservedresidues{White}{DarkGray}{upper}{up}
@@ -4624,20 +5210,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
@@ -4671,22 +5258,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
@@ -4719,21 +5308,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
@@ -5298,7 +5888,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@@
@@ -5358,7 +5948,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@@
@@ -5408,7 +5998,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@@
@@ -5499,7 +6089,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@@
@@ -5560,7 +6150,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@ @
@@ -5573,7 +6162,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@ @
@@ -5710,6 +6298,577 @@
\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
+ \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{<No subfamilies found (check threshold) - hiding subfamily logo>}
+ \show@sublogofalse
+ \immediate\write\featurefile{<No subfamilies found (check threshold) - hiding subfamily logo>}
+ \fi
+ \loopcount=\seq@count
+ \advance\loopcount by -\temp@count
+ \ifnum\loopcount>0
+ \expandafter\xdef\csname group@num1\endcsname{\the\loopcount}
+ \else
+ \message{<No subfamilies found (check threshold) - hiding subfamily logo>}
+ \immediate\write\featurefile{<No subfamilies found (check threshold) - hiding subfamily logo>}
+ \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{<Calculating subfamily logo...>}
+ \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
@@ -5717,7 +6876,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@@
@@ -6029,25 +7188,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}
@@ -6112,7 +7275,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
@@ -6146,7 +7309,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
@@ -6185,25 +7348,28 @@
\fi
\global\advance\cons@count by 1\relax
- \global\csname res@count0\endcsname=\cons@count
+ \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
+ \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
+ \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
@@ -6239,15 +7405,17 @@
\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}
\fi
\fi
@@ -6365,26 +7533,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
@@ -6768,7 +7940,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{}%
}
@@ -6776,13 +7948,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
@@ -6791,9 +7971,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@{%
@@ -6814,15 +8052,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{}%
}
@@ -7038,22 +8296,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@%
@@ -7212,7 +8470,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%
@@ -7244,6 +8501,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%
@@ -7281,7 +8543,7 @@
}
\def\next@featuretext&#1;#2;#3@{%
\xdef\first@{#3@}%
- \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}%
@@ -7444,7 +8706,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}%
@@ -7456,7 +8732,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%
@@ -7465,7 +8740,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}%
@@ -7494,6 +9206,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}%
@@ -7504,44 +9229,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 @}%
@@ -7549,48 +9275,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%
@@ -7598,7 +9340,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
@@ -7620,7 +9362,7 @@
\message{.}
\ifx\out@put\y@
\vbox{\set@lines}\par
-\block@skip
+ \block@skip
\else
\pos@count=1
\findc@nsensus
@@ -7662,7 +9404,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
}
@@ -7720,49 +9462,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{<Seqtype guess: protein>}}
+\def\guess@DNA{\seqtype{N}\message{<Seqtype guess: nucleotide>}}
\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}
@@ -7774,33 +9531,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}
@@ -7820,7 +9577,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
@@ -7836,6 +9594,10 @@
\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
@@ -7850,9 +9612,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
@@ -7861,6 +9621,7 @@
\loopcount=1
\read@loop
\fi
+ \if\seq@type A \guess@DNA \fi
\ifnum\seq@pointer>0
\ifstop@
\else
@@ -7869,8 +9630,10 @@
\block@output
\fi
\fi
+ \ifshow@sublogo \closein\sublogofile \fi
+ \closein\alignfile
\message{)}
- \closein\alignfile}
+}
%%%%% Read alignment, decide whether MSF or ALN, interpret
@@ -7891,7 +9654,7 @@
}
\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
@@ -7910,15 +9673,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
@@ -7930,7 +9693,7 @@
\fi
\fi
\fi
- \xdef\first@line{n}
+ \xdef\first@line{n}
\ifeof\alignfile \else\repeat
\closein\alignfile
\xdef\first@{no}
@@ -7963,7 +9726,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{&;&;&;@}
@@ -7979,7 +9741,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}
@@ -8007,9 +9769,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
}
@@ -8017,11 +9776,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
@@ -8043,6 +9806,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}
@@ -8079,12 +9862,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
@@ -8102,6 +9919,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{%
@@ -8152,10 +9993,26 @@
\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
+ \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@
@@ -8173,19 +10030,19 @@
\ifnum\finger@linenum>0
\show@consfalse
\hidechartrue
- \message{<fingerprinting---please wait>}
+ \message{<Fingerprinting---please wait>}
\fi
\calc@widths
\read@lines
\save@lengths
\iflegend@
- \vspace{\vspace@legend}
- \setbox1=\vbox{\do@legend}
- \vbox{\do@legend}\par
- \ifnum\ht1<-\vspace@legend
- \vspace{-\ht1}\vspace{-\vspace@legend}
- \fi
- \fi
+ \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@
@@ -8208,13 +10065,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}
@@ -8248,6 +10109,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}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% %%%%%
@@ -8257,7 +10158,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 %%%%%
@@ -8275,19 +10176,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'
@@ -8328,6 +10236,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)