summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/gotoh
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-07-07 21:06:52 +0000
committerKarl Berry <karl@freefriends.org>2017-07-07 21:06:52 +0000
commit0b3bc08010f3aba0300a4cf48d6decd6fe1f5160 (patch)
tree3026f19874558f9ba3d28d2da5b222267c9da61f /Master/texmf-dist/tex/latex/gotoh
parent4f2ad70fe21a1dffa8a1f36fe5103e0b0f5a6cd8 (diff)
gotoh (7jul17)
git-svn-id: svn://tug.org/texlive/trunk@44764 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/gotoh')
-rw-r--r--Master/texmf-dist/tex/latex/gotoh/gotoh.sty356
1 files changed, 178 insertions, 178 deletions
diff --git a/Master/texmf-dist/tex/latex/gotoh/gotoh.sty b/Master/texmf-dist/tex/latex/gotoh/gotoh.sty
index b0a3d0905ea..1687ed3f06f 100644
--- a/Master/texmf-dist/tex/latex/gotoh/gotoh.sty
+++ b/Master/texmf-dist/tex/latex/gotoh/gotoh.sty
@@ -13,7 +13,7 @@
%% This package is distributed under the MIT License.
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{gotoh}[2017/05/05 v1.0 Sequence alignment algorithm]
+\ProvidesPackage{gotoh}[2017/07/07 v1.1 Sequence alignment algorithm]
\RequirePackage{xkeyval}
\def\gth@pkgname{gotoh}
\def\gth@warn{\PackageWarningNoLine\gth@pkgname}
@@ -74,7 +74,7 @@
\mbox{\hbox to\gth@tempdima{\hss #1}}%
\egroup}
\def\gth@print@matrix#1{%
- \bgroup\texttt
+ \bgroup\ttfamily
#1:\\
\gth@tempcnta\z@
\@whilenum\gth@tempcnta<\gth@m\do{%
@@ -82,120 +82,160 @@
\@whilenum\gth@tempcntb<\gth@n\do{%
\gth@tab{%
\gth@nameuse{\gth@sn @#1@\the\gth@tempcnta
- @\the\gth@tempcntb}}%
+ @\the\gth@tempcntb}}%
\advance\gth@tempcntb\@ne}\\
\advance\gth@tempcnta\@ne}%
\egroup}
-\newcommand{\Gotoh}[2]{%
+\newcommand{\Gotoh}{%
+ \gth@increment\gth@sn
+ \bgroup % \egroup is in \gth@gotoh@pre
+ \@ifnextchar[{\gth@gotoh@setkeys}{\gth@gotoh@pre}}
+\def\gth@gotoh@setkeys[#1]{\setkeys[gth]{config}{#1}\gth@gotoh@pre}
+\def\gth@gotoh@pre#1#2{%
+ \edef\gth@tmpa{\noexpand\gth@gotoh{#1}{#2}}%
\if@gth@uppercase
- \uppercase{\gth@gotoh{#1}{#2}}%
+ \uppercase\expandafter{\gth@tmpa}%
\else
- \gth@gotoh{#1}{#2}%
- \fi}
+ \gth@tmpa
+ \fi\egroup}
\def\gth@gotoh#1#2{%
- \gth@increment\gth@sn
- \bgroup
- \gth@tempcnta\z@
- \@tfor\gth@member:=#1\do{%
- \gth@name@edef{seqa@\the\gth@tempcnta}{\gth@member}%
- \advance\gth@tempcnta\@ne}%
- \advance\gth@tempcnta\@ne
- \edef\gth@m{\the\gth@tempcnta}%
- \gth@tempcntb\z@
- \@tfor\gth@member:=#2\do{%
- \gth@name@edef{seqb@\the\gth@tempcntb}{\gth@member}%
- \advance\gth@tempcntb\@ne}%
- \advance\gth@tempcntb\@ne
- \edef\gth@n{\the\gth@tempcntb}%
- \gth@tempcnta\z@
+ \gth@tempcnta\z@
+ \@tfor\gth@member:=#1\do{%
+ \gth@name@edef{seqa@\the\gth@tempcnta}{\gth@member}%
+ \advance\gth@tempcnta\@ne}%
+ \advance\gth@tempcnta\@ne
+ \edef\gth@m{\the\gth@tempcnta}%
+ \gth@tempcntb\z@
+ \@tfor\gth@member:=#2\do{%
+ \gth@name@edef{seqb@\the\gth@tempcntb}{\gth@member}%
+ \advance\gth@tempcntb\@ne}%
+ \advance\gth@tempcntb\@ne
+ \edef\gth@n{\the\gth@tempcntb}%
+ \gth@tempcnta\z@
+ \@whilenum\gth@tempcnta<\gth@m\do{%
+ \gth@gap@penalty{\gth@tempcnta}%
+ \gth@name@xdef{\gth@sn @m@\the\gth@tempcnta @0}{\gth@min}%
+ \gth@name@xdef{\gth@sn @ix@\the\gth@tempcnta @0}{\the\gth@calc}%
+ \gth@name@xdef{\gth@sn @iy@\the\gth@tempcnta @0}{\gth@min}%
+ \advance\gth@tempcnta\@ne}%
+ \gth@tempcntb\z@
+ \@whilenum\gth@tempcntb<\gth@n\do{%
+ \gth@gap@penalty{\gth@tempcntb}%
+ \gth@name@xdef{\gth@sn @m@0@\the\gth@tempcntb}{\gth@min}%
+ \gth@name@xdef{\gth@sn @ix@0@\the\gth@tempcntb}{\gth@min}%
+ \gth@name@xdef{\gth@sn @iy@0@\the\gth@tempcntb}{\the\gth@calc}%
+ \advance\gth@tempcntb\@ne}%
+ \gth@name@xdef{\gth@sn @m@0@0}{\number\z@}%
+ \if@gth@memoization
+ \gth@decrement\gth@m \gth@decrement\gth@n
+ \gth@memo@ix{\gth@m}{\gth@n}%
+ \gth@memo@iy{\gth@m}{\gth@n}%
+ \gth@memo@m{\gth@m}{\gth@n}%
+ \gth@increment\gth@m \gth@increment\gth@n
+ \else
+ \gth@tempcnta\@ne
\@whilenum\gth@tempcnta<\gth@m\do{%
- \gth@gap@penalty{\gth@tempcnta}%
- \gth@name@xdef{\gth@sn @m@\the\gth@tempcnta @0}{\gth@min}%
- \gth@name@xdef{\gth@sn @ix@\the\gth@tempcnta @0}{\the\gth@calc}%
- \gth@name@xdef{\gth@sn @iy@\the\gth@tempcnta @0}{\gth@min}%
+ \gth@tempcntb\@ne
+ \@whilenum\gth@tempcntb<\gth@n\do{%
+ \advance\gth@tempcnta\m@ne
+ \gth@max{%
+ \gth@nameuse{\gth@sn @m@\the\gth@tempcnta
+ @\the\gth@tempcntb},%
+ \gth@nameuse{\gth@sn @iy@\the\gth@tempcnta
+ @\the\gth@tempcntb}}%
+ \gth@tempcntc\gth@calc
+ \gth@tempcntd
+ \gth@nameuse{\gth@sn @ix@\the\gth@tempcnta
+ @\the\gth@tempcntb}%
+ \advance\gth@tempcntc-\gth@d\advance\gth@tempcntd-\gth@e
+ \advance\gth@tempcnta\@ne
+ \gth@max{\gth@tempcntc,\gth@tempcntd}%
+ \gth@name@xdef{\gth@sn @ix@\the\gth@tempcnta
+ @\the\gth@tempcntb}{%
+ \the\gth@calc}%
+ \advance\gth@tempcntb\m@ne
+ \gth@tempcntc
+ \gth@nameuse{\gth@sn @m@\the\gth@tempcnta
+ @\the\gth@tempcntb}%
+ \gth@tempcntd
+ \gth@nameuse{\gth@sn @iy@\the\gth@tempcnta
+ @\the\gth@tempcntb}%
+ \advance\gth@tempcntc-\gth@d\advance\gth@tempcntd-\gth@e
+ \advance\gth@tempcntb\@ne
+ \gth@max{\gth@tempcntc,\gth@tempcntd}%
+ \gth@name@xdef{\gth@sn @iy@\the\gth@tempcnta
+ @\the\gth@tempcntb}{%
+ \the\gth@calc}%
+ \advance\gth@tempcnta\m@ne\advance\gth@tempcntb\m@ne
+ \gth@max{%
+ \gth@nameuse{\gth@sn @m@\the\gth@tempcnta
+ @\the\gth@tempcntb},%
+ \gth@nameuse{\gth@sn @ix@\the\gth@tempcnta
+ @\the\gth@tempcntb},%
+ \gth@nameuse{\gth@sn @iy@\the\gth@tempcnta
+ @\the\gth@tempcntb}}%
+ \edef\gth@tmpa{\gth@nameuse{seqa@\the\gth@tempcnta}}%
+ \edef\gth@tmpb{\gth@nameuse{seqb@\the\gth@tempcntb}}%
+ \advance\gth@tempcnta\@ne\advance\gth@tempcntb\@ne
+ \ifx\gth@tmpa\gth@tmpb
+ \advance\gth@calc\gth@match
+ \else
+ \advance\gth@calc\gth@mismatch
+ \fi
+ \gth@name@xdef{\gth@sn @m@\the\gth@tempcnta
+ @\the\gth@tempcntb}{%
+ \the\gth@calc}%
+ \advance\gth@tempcntb\@ne}%
\advance\gth@tempcnta\@ne}%
- \gth@tempcntb\z@
- \@whilenum\gth@tempcntb<\gth@n\do{%
- \gth@gap@penalty{\gth@tempcntb}%
- \gth@name@xdef{\gth@sn @m@0@\the\gth@tempcntb}{\gth@min}%
- \gth@name@xdef{\gth@sn @ix@0@\the\gth@tempcntb}{\gth@min}%
- \gth@name@xdef{\gth@sn @iy@0@\the\gth@tempcntb}{\the\gth@calc}%
- \advance\gth@tempcntb\@ne}%
- \gth@name@xdef{\gth@sn @m@0@0}{\number\z@}%
- \if@gth@memoization
- \gth@decrement\gth@m \gth@decrement\gth@n
- \gth@memo@ix{\gth@m}{\gth@n}%
- \gth@memo@iy{\gth@m}{\gth@n}%
- \gth@memo@m{\gth@m}{\gth@n}%
- \gth@increment\gth@m \gth@increment\gth@n
+ \fi
+ %\gth@print@matrix{m}%
+ %\gth@print@matrix{ix}%
+ %\gth@print@matrix{iy}%
+ \bgroup
+ \gth@decrement\gth@m \gth@decrement\gth@n
+ \expandafter\xdef\gth@score{%
+ \gth@nameuse{\gth@sn @m@\gth@m @\gth@n}}%
+ \egroup
+ \let\gth@rseq@x\@empty\let\gth@rseq@y\@empty
+ \@gth@remain@true\@gth@gapx@false\@gth@gapy@false
+ \@whilesw\if@gth@remain@\fi{%
+ \ifnum\gth@m=\z@
+ \gth@decrement\gth@n
+ \expandafter\expandafter\expandafter
+ \ifx\gth@nameuse{seqb@\gth@n}\relax\else
+ \edef\gth@rseq@x{\gth@gap@char\gth@rseq@x}%
+ \edef\gth@rseq@y{\gth@nameuse{seqb@\gth@n}%
+ \gth@rseq@y}%
+ \fi
+ \else\ifnum\gth@n=\z@
+ \gth@decrement\gth@m
+ \expandafter\expandafter\expandafter
+ \ifx\gth@nameuse{seqa@\gth@m}\relax\else
+ \edef\gth@rseq@x{\gth@nameuse{seqa@\gth@m}%
+ \gth@rseq@x}%
+ \edef\gth@rseq@y{\gth@gap@char\gth@rseq@y}%
+ \fi
\else
- \gth@tempcnta\@ne
- \@whilenum\gth@tempcnta<\gth@m\do{%
- \gth@tempcntb\@ne
- \@whilenum\gth@tempcntb<\gth@n\do{%
- \advance\gth@tempcnta\m@ne
- \gth@max{%
- \gth@nameuse{\gth@sn @m@\the\gth@tempcnta
- @\the\gth@tempcntb},%
- \gth@nameuse{\gth@sn @iy@\the\gth@tempcnta
- @\the\gth@tempcntb}}%
- \gth@tempcntc\gth@calc
- \gth@tempcntd
- \gth@nameuse{\gth@sn @ix@\the\gth@tempcnta
- @\the\gth@tempcntb}%
- \advance\gth@tempcntc-\gth@d\advance\gth@tempcntd-\gth@e
- \advance\gth@tempcnta\@ne
- \gth@max{\gth@tempcntc,\gth@tempcntd}%
- \gth@name@xdef{\gth@sn @ix@\the\gth@tempcnta
- @\the\gth@tempcntb}{%
- \the\gth@calc}%
- \advance\gth@tempcntb\m@ne
- \gth@tempcntc
- \gth@nameuse{\gth@sn @m@\the\gth@tempcnta
- @\the\gth@tempcntb}%
- \gth@tempcntd
- \gth@nameuse{\gth@sn @iy@\the\gth@tempcnta
- @\the\gth@tempcntb}%
- \advance\gth@tempcntc-\gth@d\advance\gth@tempcntd-\gth@e
- \advance\gth@tempcntb\@ne
- \gth@max{\gth@tempcntc,\gth@tempcntd}%
- \gth@name@xdef{\gth@sn @iy@\the\gth@tempcnta
- @\the\gth@tempcntb}{%
- \the\gth@calc}%
- \advance\gth@tempcnta\m@ne\advance\gth@tempcntb\m@ne
- \gth@max{%
- \gth@nameuse{\gth@sn @m@\the\gth@tempcnta
- @\the\gth@tempcntb},%
- \gth@nameuse{\gth@sn @ix@\the\gth@tempcnta
- @\the\gth@tempcntb},%
- \gth@nameuse{\gth@sn @iy@\the\gth@tempcnta
- @\the\gth@tempcntb}}%
- \edef\gth@tmpa{\gth@nameuse{seqa@\the\gth@tempcnta}}%
- \edef\gth@tmpb{\gth@nameuse{seqb@\the\gth@tempcntb}}%
- \advance\gth@tempcnta\@ne\advance\gth@tempcntb\@ne
- \ifx\gth@tmpa\gth@tmpb
- \advance\gth@calc\gth@match
- \else
- \advance\gth@calc\gth@mismatch
- \fi
- \gth@name@xdef{\gth@sn @m@\the\gth@tempcnta
- @\the\gth@tempcntb}{%
- \the\gth@calc}%
- \advance\gth@tempcntb\@ne}%
- \advance\gth@tempcnta\@ne}%
- \fi
- %\gth@print@matrix{m}%
- %\gth@print@matrix{ix}%
- %\gth@print@matrix{iy}%
- \bgroup
- \gth@decrement\gth@m \gth@decrement\gth@n
- \expandafter\xdef\gth@score{%
- \gth@nameuse{\gth@sn @m@\gth@m @\gth@n}}%
- \egroup
- \let\gth@rseq@x\@empty\let\gth@rseq@y\@empty\let\gth@mode@seq\@empty
- \@gth@remain@true\@gth@gapx@false\@gth@gapy@false
- \@whilesw\if@gth@remain@\fi{%
- \ifnum\gth@m=\z@
+ \if@gth@gapx@
+ \gth@decrement\gth@m
+ \expandafter\expandafter\expandafter
+ \ifx\gth@nameuse{seqa@\gth@m}\relax\else
+ \edef\gth@rseq@x{\gth@nameuse{seqa@\gth@m}%
+ \gth@rseq@x}%
+ \edef\gth@rseq@y{\gth@gap@char\gth@rseq@y}%
+ \fi
+ \gth@tempcnta\gth@nameuse{\gth@sn @m@\gth@m @\gth@n}%
+ \gth@tempcntb\gth@nameuse{\gth@sn @ix@\gth@m @\gth@n}%
+ \gth@tempcntc\gth@nameuse{\gth@sn @iy@\gth@m @\gth@n}%
+ \advance\gth@tempcnta-\gth@d
+ \advance\gth@tempcntb-\gth@e
+ \advance\gth@tempcntc-\gth@d
+ \ifnum\gth@tempcnta>\gth@tempcntb
+ \@gth@gapx@false
+ \else\ifnum\gth@tempcntb<\gth@tempcntc
+ \@gth@gapx@false\@gth@gapy@true
+ \fi\fi
+ \else\if@gth@gapy@
\gth@decrement\gth@n
\expandafter\expandafter\expandafter
\ifx\gth@nameuse{seqb@\gth@n}\relax\else
@@ -203,91 +243,51 @@
\edef\gth@rseq@y{\gth@nameuse{seqb@\gth@n}%
\gth@rseq@y}%
\fi
- \else\ifnum\gth@n=\z@
+ \gth@tempcnta\gth@nameuse{\gth@sn @m@\gth@m @\gth@n}%
+ \gth@tempcntb\gth@nameuse{\gth@sn @iy@\gth@m @\gth@n}%
+ \advance\gth@tempcnta-\gth@d\advance\gth@tempcntb-\gth@e
+ \ifnum\gth@tempcnta>\gth@tempcntb
+ \@gth@gapy@false
+ \fi
+ \else
\gth@decrement\gth@m
+ \gth@decrement\gth@n
\expandafter\expandafter\expandafter
\ifx\gth@nameuse{seqa@\gth@m}\relax\else
- \edef\gth@rseq@x{\gth@nameuse{seqa@\gth@m}%
- \gth@rseq@x}%
- \edef\gth@rseq@y{\gth@gap@char\gth@rseq@y}%
- \fi
- \else
- \if@gth@gapx@
- % mode: gap x
- \gth@decrement\gth@m
\expandafter\expandafter\expandafter
- \ifx\gth@nameuse{seqa@\gth@m}\relax\else
+ \ifx\gth@nameuse{seqb@\gth@n}\relax\else
\edef\gth@rseq@x{\gth@nameuse{seqa@\gth@m}%
\gth@rseq@x}%
- \edef\gth@rseq@y{\gth@gap@char\gth@rseq@y}%
- \fi
- \gth@tempcnta\gth@nameuse{\gth@sn @m@\gth@m @\gth@n}%
- \gth@tempcntb\gth@nameuse{\gth@sn @ix@\gth@m @\gth@n}%
- \gth@tempcntc\gth@nameuse{\gth@sn @iy@\gth@m @\gth@n}%
- \advance\gth@tempcnta-\gth@d
- \advance\gth@tempcntb-\gth@e
- \advance\gth@tempcntc-\gth@d
- \ifnum\gth@tempcnta>\gth@tempcntb
- \@gth@gapx@false
- \else\ifnum\gth@tempcntb<\gth@tempcntc
- \@gth@gapx@false\@gth@gapy@true
- \fi\fi
- \else\if@gth@gapy@
- % mode: gap y
- \gth@decrement\gth@n
- \expandafter\expandafter\expandafter
- \ifx\gth@nameuse{seqb@\gth@n}\relax\else
- \edef\gth@rseq@x{\gth@gap@char\gth@rseq@x}%
\edef\gth@rseq@y{\gth@nameuse{seqb@\gth@n}%
\gth@rseq@y}%
\fi
- \gth@tempcnta\gth@nameuse{\gth@sn @m@\gth@m @\gth@n}%
- \gth@tempcntb\gth@nameuse{\gth@sn @iy@\gth@m @\gth@n}%
- \advance\gth@tempcnta-\gth@d\advance\gth@tempcntb-\gth@e
- \ifnum\gth@tempcnta>\gth@tempcntb
- \@gth@gapy@false
- \fi
- \else
- % mode: default
- \gth@decrement\gth@m
- \gth@decrement\gth@n
- \expandafter\expandafter\expandafter
- \ifx\gth@nameuse{seqa@\gth@m}\relax\else
- \expandafter\expandafter\expandafter
- \ifx\gth@nameuse{seqb@\gth@n}\relax\else
- \edef\gth@rseq@x{\gth@nameuse{seqa@\gth@m}%
- \gth@rseq@x}%
- \edef\gth@rseq@y{\gth@nameuse{seqb@\gth@n}%
- \gth@rseq@y}%
- \fi
- \fi
- \gth@tempcnta\gth@nameuse{\gth@sn @m@\gth@m @\gth@n}%
- \gth@tempcntb\gth@nameuse{\gth@sn @ix@\gth@m @\gth@n}%
- \gth@tempcntc\gth@nameuse{\gth@sn @iy@\gth@m @\gth@n}%
- \@gth@gap@false
- \ifnum\gth@tempcnta<\gth@tempcntb\@gth@gap@true\fi
- \ifnum\gth@tempcnta<\gth@tempcntc\@gth@gap@true\fi
- \if@gth@gap@
- \ifnum\gth@tempcntb>\gth@tempcntc
- \@gth@gapx@true
- \else
- \@gth@gapy@true
- \fi
+ \fi
+ \gth@tempcnta\gth@nameuse{\gth@sn @m@\gth@m @\gth@n}%
+ \gth@tempcntb\gth@nameuse{\gth@sn @ix@\gth@m @\gth@n}%
+ \gth@tempcntc\gth@nameuse{\gth@sn @iy@\gth@m @\gth@n}%
+ \@gth@gap@false
+ \ifnum\gth@tempcnta<\gth@tempcntb\@gth@gap@true\fi
+ \ifnum\gth@tempcnta<\gth@tempcntc\@gth@gap@true\fi
+ \if@gth@gap@
+ \ifnum\gth@tempcntb>\gth@tempcntc
+ \@gth@gapx@true
+ \else
+ \@gth@gapy@true
\fi
- \fi\fi
+ \fi
\fi\fi
- \ifnum\gth@m<\@ne\ifnum\gth@n<\@ne
- \@gth@remain@false
- \fi\fi}%
- \expandafter\gth@glet\gth@resulta\gth@rseq@x
- \expandafter\gth@glet\gth@resultb\gth@rseq@y
- \egroup}
+ \fi\fi
+ \ifnum\gth@m<\@ne\ifnum\gth@n<\@ne
+ \@gth@remain@false
+ \fi\fi}%
+ \expandafter\gth@glet\gth@resulta\gth@rseq@x
+ \expandafter\gth@glet\gth@resultb\gth@rseq@y}
\def\gth@memo@ix#1#2{%
\bgroup
\gth@tempcnta#1\gth@tempcntb#2\relax
\expandafter\expandafter\expandafter
\ifx\gth@nameuse{\gth@sn @ix@\the\gth@tempcnta
- @\the\gth@tempcntb}\relax
+ @\the\gth@tempcntb}\relax
\advance\gth@tempcnta\m@ne
\gth@memo@ix{\gth@tempcnta}{\gth@tempcntb}%
\edef\gth@tmp@ix@return{\gth@ix@return}%
@@ -313,7 +313,7 @@
\gth@tempcnta#1\gth@tempcntb#2\relax
\expandafter\expandafter\expandafter
\ifx\gth@nameuse{\gth@sn @iy@\the\gth@tempcnta
- @\the\gth@tempcntb}\relax
+ @\the\gth@tempcntb}\relax
\advance\gth@tempcntb\m@ne
\gth@memo@iy{\gth@tempcnta}{\gth@tempcntb}%
\edef\gth@tmp@iy@return{\gth@iy@return}%
@@ -336,7 +336,7 @@
\gth@tempcnta#1\gth@tempcntb#2\relax
\expandafter\expandafter\expandafter
\ifx\gth@nameuse{\gth@sn @m@\the\gth@tempcnta
- @\the\gth@tempcntb}\relax
+ @\the\gth@tempcntb}\relax
\advance\gth@tempcnta\m@ne\advance\gth@tempcntb\m@ne
\gth@memo@ix{\gth@tempcnta}{\gth@tempcntb}%
\edef\gth@tmp@ix@return{\gth@ix@return}%