[med-svn] [pftools] 01/02: New upstream version 2.3.5.d

Andreas Tille tille at debian.org
Wed Mar 22 11:55:47 UTC 2017


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository pftools.

commit f670c22102b33d73485a11a75fa4f82ffb499e90
Author: Andreas Tille <tille at debian.org>
Date:   Wed Mar 22 12:54:55 2017 +0100

    New upstream version 2.3.5.d
---
 2ft.f              |  351 ++++++
 6ft.f              |  372 +++++++
 CFAve.f            |   25 +
 CPAve.f            |   22 +
 CVPBR322           |  483 +++++++++
 GTPA_HUMAN         |   84 ++
 MYSA_HUMAN         |   99 ++
 Makefile           |  112 ++
 NtoR.f             |   23 +
 R76849.seq         |    9 +
 README             |  219 ++++
 RtoN.f             |   22 +
 Xblnk.f            |   24 +
 abini.f            |   37 +
 ardim.f            |   51 +
 avdat.f            |   10 +
 blosum100.cmp      |   36 +
 blosum30.cmp       |   36 +
 blosum45.cmp       |   36 +
 blosum50.cmp       |   36 +
 blosum62.cmp       |   36 +
 blosum65.cmp       |   36 +
 blosum80.cmp       |   36 +
 codat.f            |   18 +
 coils.prf          |   16 +
 cvini.f            |   22 +
 dfdat.f            |   13 +
 dfnul.f            |   48 +
 djdat.f            |   16 +
 ecp.prf            |   57 +
 gonnet.cmp         |   33 +
 gsdat.f            |   20 +
 gtop.f             |  215 ++++
 hmdat.f            |    9 +
 htop.f             |  677 ++++++++++++
 install_pftools.sh |  228 ++++
 io.c               |   15 +
 jprsm.f            |   97 ++
 lblnk.f            |   20 +
 man/2ft.1          |  125 +++
 man/6ft.1          |  127 +++
 man/gtop.1         |  261 +++++
 man/htop.1         |  375 +++++++
 man/pfmake.1       |  537 +++++++++
 man/pfscale.1      |  324 ++++++
 man/pfscan.1       |  416 +++++++
 man/pfsearch.1     |  415 +++++++
 man/pfw.1          |  222 ++++
 man/psa.5          |  197 ++++
 man/psa2msa.1      |  247 +++++
 man/ptof.1         |  317 ++++++
 man/ptoh.1         |  295 +++++
 man/xpsa.5         |  396 +++++++
 nodat.f            |   21 +
 pam120.cmp         |   39 +
 pam160.cmp         |   39 +
 pam200.cmp         |   39 +
 pam220.cmp         |   39 +
 pam250.cmp         |   39 +
 pam30.cmp          |   39 +
 pam40.cmp          |   40 +
 pam400.cmp         |   38 +
 pam80.cmp          |   39 +
 pfam_sh3.hmm       |  196 ++++
 pfdat.f            |   72 ++
 pfind.f            |   56 +
 pfmake.f           | 1105 +++++++++++++++++++
 pfscale.f          |  446 ++++++++
 pfscan.1           |  416 +++++++
 pfscan.f           |  940 ++++++++++++++++
 pfsearch.f         |  923 ++++++++++++++++
 pfsearch.f.cpy     |  904 ++++++++++++++++
 pfw.f              |  540 +++++++++
 pmali.f            |  138 +++
 prali.f            |  144 +++
 profile.txt        | 1622 ++++++++++++++++++++++++++++
 prosite13.prf      | 3061 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 prsp.f             |   65 ++
 prxp.f             |   63 ++
 psa.5              |  197 ++++
 psa2msa.f          |  540 +++++++++
 psdat.f            |   20 +
 ptof.f             |  584 ++++++++++
 ptoh.f             |  413 +++++++
 pxdat.f            |   35 +
 recmd.f            |   30 +
 regpr.f            |  285 +++++
 remsa.f            |  128 +++
 remsf.f            |  191 ++++
 reprf.f            | 1140 +++++++++++++++++++
 reseq.f            |  185 ++++
 rfseq.f            |  137 +++
 rhmmer.f           |  153 +++
 rhmmer2.f          |  540 +++++++++
 rhnul.f            |   90 ++
 schmm.f            |  270 +++++
 score.lis          | 2023 ++++++++++++++++++++++++++++++++++
 sh3.gpr            |   66 ++
 sh3.msf            |   86 ++
 sh3.prf            |  133 +++
 sh3.seq            |  297 +++++
 standard.random    |    3 +
 sterr.f            |   12 +
 test.out           | 1337 +++++++++++++++++++++++
 test.sh            |   54 +
 wprsm.f            |  285 +++++
 wrhmr.f            |  141 +++
 wrprf.f            | 1061 ++++++++++++++++++
 wrsam.f            |  170 +++
 xali1.f            |  228 ++++
 xalip.f            |  806 ++++++++++++++
 xalit.f            |  879 +++++++++++++++
 xprsm.f            |  468 ++++++++
 xpsa.5             |  370 +++++++
 114 files changed, 32373 insertions(+)

diff --git a/2ft.f b/2ft.f
new file mode 100644
index 0000000..2cde4b2
--- /dev/null
+++ b/2ft.f
@@ -0,0 +1,351 @@
+*       Program 2ft 
+*----------------------------------------------------------------------*     
+* $Id: 2ft.f,v 2.8 2003/11/28 11:53:33 vflegel Exp $
+*----------------------------------------------------------------------*
+*       Function: 2-frame translation of DNA sequence into protein
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*
+
+      Include          'ardim.f' 
+      Parameter        (NOUT=   6) 
+
+      Character*512     RCIN
+      Character*512     CHDE 
+      Character*64      CHID
+      Character*512     RCEX
+
+      Integer*2         ISEQ(IDMS)
+      Character         CSEQ(IDMS)
+      
+      Character         CABC(0:63) 
+      Character         CNBC(0:15) 
+
+      Character*04      CDNA
+      Integer           NBSQ
+      Integer           IOS
+
+      Include          'sterr.f'
+
+* options
+
+      Integer           NW
+      Logical           OPTS
+      Logical           OPTR
+
+* Initializations 
+
+      Data              CABC( 0)/'K'/
+      Data              CABC( 1)/'N'/
+      Data              CABC( 2)/'K'/
+      Data              CABC( 3)/'N'/
+      Data              CABC( 4)/'T'/
+      Data              CABC( 5)/'T'/
+      Data              CABC( 6)/'T'/
+      Data              CABC( 7)/'T'/
+      Data              CABC( 8)/'R'/
+      Data              CABC( 9)/'S'/
+      Data              CABC(10)/'R'/
+      Data              CABC(11)/'S'/
+      Data              CABC(12)/'I'/
+      Data              CABC(13)/'I'/
+      Data              CABC(14)/'M'/
+      Data              CABC(15)/'I'/
+      Data              CABC(16)/'Q'/
+      Data              CABC(17)/'H'/
+      Data              CABC(18)/'Q'/
+      Data              CABC(19)/'H'/
+      Data              CABC(20)/'P'/
+      Data              CABC(21)/'P'/
+      Data              CABC(22)/'P'/
+      Data              CABC(23)/'P'/
+      Data              CABC(24)/'R'/
+      Data              CABC(25)/'R'/
+      Data              CABC(26)/'R'/
+      Data              CABC(27)/'R'/
+      Data              CABC(28)/'L'/
+      Data              CABC(29)/'L'/
+      Data              CABC(30)/'L'/
+      Data              CABC(31)/'L'/
+      Data              CABC(32)/'E'/
+      Data              CABC(33)/'D'/
+      Data              CABC(34)/'E'/
+      Data              CABC(35)/'D'/
+      Data              CABC(36)/'A'/
+      Data              CABC(37)/'A'/
+      Data              CABC(38)/'A'/
+      Data              CABC(39)/'A'/
+      Data              CABC(40)/'G'/
+      Data              CABC(41)/'G'/
+      Data              CABC(42)/'G'/
+      Data              CABC(43)/'G'/
+      Data              CABC(44)/'V'/
+      Data              CABC(45)/'V'/
+      Data              CABC(46)/'V'/
+      Data              CABC(47)/'V'/
+      Data              CABC(48)/'O'/
+      Data              CABC(49)/'Y'/
+      Data              CABC(50)/'O'/
+      Data              CABC(51)/'Y'/
+      Data              CABC(52)/'S'/
+      Data              CABC(53)/'S'/
+      Data              CABC(54)/'S'/
+      Data              CABC(55)/'S'/
+      Data              CABC(56)/'O'/
+      Data              CABC(57)/'C'/
+      Data              CABC(58)/'W'/
+      Data              CABC(59)/'C'/
+      Data              CABC(60)/'L'/
+      Data              CABC(61)/'F'/
+      Data              CABC(62)/'L'/
+      Data              CABC(63)/'F'/
+
+      Data              CNBC( 0)/'X'/ 
+      Data              CNBC( 1)/'T'/ 
+      Data              CNBC( 2)/'X'/ 
+      Data              CNBC( 3)/'X'/ 
+      Data              CNBC( 4)/'X'/ 
+      Data              CNBC( 5)/'P'/ 
+      Data              CNBC( 6)/'R'/ 
+      Data              CNBC( 7)/'L'/ 
+      Data              CNBC( 8)/'X'/ 
+      Data              CNBC( 9)/'A'/ 
+      Data              CNBC(10)/'G'/ 
+      Data              CNBC(11)/'V'/ 
+      Data              CNBC(12)/'X'/ 
+      Data              CNBC(13)/'S'/ 
+      Data              CNBC(14)/'X'/ 
+      Data              CNBC(15)/'X'/ 
+
+      IRC=0
+      NBSQ=0
+      NW=60
+      IOS=0
+
+      CDNA='ACGT'
+
+      Call Repar(OPTS,OPTR,NW,IRC)
+      If(IRC.NE.0) then
+         Write(NERR,'(/,
+     *      ''2ft 2.3 revision 5.d'',//
+     *      ''Usage: 2ft [-[r|s]hW] < seq-library-file '',/
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -r: translate only reverse (antisense) strand.'',/
+     *      ''    -s: translate only sense strand.'',/
+     *      ''    -h: print usage help text.'',/
+     *      ''    -W<value>:'',/
+     *      ''        specifies the output width (default: 60).'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+
+ 1    Read(5,'(A)',End=920,Err=900) RCIN
+      If(RCIN(1:1).NE.'>') go to   1
+
+ 2    If(RCIN(1:1).NE.'>') Go to 920 
+      J1=Index(RCIN,' ')
+      CHID='>x|' // RCIN(2:J1)
+      LNID=Lblnk(CHID)
+      LNDE=512-LNID+3
+      CHDE=RCIN(J1+1:J1+LNDE)
+      IF(OPTS.OR.OPTR) then
+         RCEX=CHID(1:LNID) // ' ' // CHDE(1:LNDE)  
+      Else
+         RCEX=CHID(1:LNID) // '   ' // CHDE(1:LNDE)  
+      End if 
+      
+      LSEQ=0
+ 3    Read(5,'(A)',Iostat=IOS,Err=900) RCIN
+ 4    If(RCIN(1:1).EQ.'>') go to  10
+      L1=Lblnk(RCIN) 
+
+      Do   5 I1=1,L1
+         K1=Ichar(RCIN(I1:I1))
+         If(K1.GE.97) then 
+            K1=K1-32
+            RCIN(I1:I1)=char(K1)
+         End if
+         If(K1.GT.90.OR.K1.LT.65) go to   5
+         LSEQ=LSEQ+1
+         If(LSEQ.GT.IDMS) Go to 901
+         ISEQ(LSEQ)=Index(CDNA,(RCIN(I1:I1)))-1
+         If(ISEQ(LSEQ).EQ.-1) ISEQ(LSEQ)=-64
+ 5    Continue
+      RCIN=' '
+      If(IOS.EQ.0) Go to 3
+
+ 10   Continue 
+      
+      If(LSEQ.GE.3) then 
+         NBSQ=NBSQ+1
+      Else
+         Go to 902
+      End if
+
+* convert sequence into codons. 
+
+      J1=LNID+1
+      J2=LNID+2
+      J3=Lblnk(RCEX)
+
+* - plus strand
+
+      If(.NOT.OPTR) then
+
+         Do  12 I1=1,LSEQ-2
+            N1=ISEQ(I1)*16+ISEQ(I1+1)*4+ISEQ(I1+2)
+            If(N1.LT.0) then 
+               N1=ISEQ(I1)*4+ISEQ(I1+1)
+               If(N1.GE.0) then
+                  CSEQ(I1)=CNBC(N1)
+               Else 
+                  CSEQ(I1)='X'
+               End if
+            Else
+               CSEQ(I1)=CABC(N1)
+            End if 
+ 12      Continue
+
+         If(.NOT.OPTS) RCEX(J1:J2)='_P'
+         Write(NOUT,'(512A)')(RCEX(ii1:ii1),ii1=1,J3)
+         Call Prsq(CSEQ,LSEQ-2,NW)
+
+      End if
+
+* - minus strand
+
+      If(.NOT.OPTS) then
+
+         Do  13 I1=LSEQ,1,-1
+            ISEQ(I1)=3-ISEQ(I1)
+            If(ISEQ(I1).GT.4) ISEQ(I1)=-64
+ 13      Continue
+         K1=1
+         Do  14 I1=LSEQ,3,-1
+            N1=ISEQ(I1)*16+ISEQ(I1-1)*4+ISEQ(I1-2)
+            If(N1.LT.0) then 
+               N1=ISEQ(I1)*4+ISEQ(I1-1)
+               If(N1.GE.0) then 
+                  CSEQ(K1)=CNBC(N1)
+               Else 
+                  CSEQ(K1)='X'
+               End if
+            Else
+               CSEQ(K1)=CABC(N1)
+            End if 
+            K1=K1+1
+ 14      Continue
+
+         If(.NOT.OPTR) RCEX(J1:J2)='_M'
+         Write(NOUT,'(512A)')(RCEX(ii1:ii1),ii1=1,J3)
+         Call Prsq(CSEQ,LSEQ-2,NW)
+
+      End if 
+
+      If(IOS.EQ.0) Go to   2
+
+ 100  Call Exit(IRC)
+
+ 900  Write(NERR,*) 'Error: Unable to read sequence from standard'//
+     *   ' input.'
+      IRC=1
+      Go to 100
+ 901  Write(NERR,*) 'Error: sequence length exceeds buffer size (',
+     *   IDMS,').'
+      Write(NERR,*) '       While processing sequence ',
+     *      CHID(4:Lblnk(CHID))
+      IRC=1
+      Go to 100
+ 902  Write(NERR,*) 'Error: sequence length too short.'
+      Write(NERR,*) '       While processing sequence ',
+     *      CHID(4:Lblnk(CHID))
+      IRC=1
+      Go to 100
+ 920  If(NBSQ.EQ.0) then
+         Write(NERR,*) 'Warning: No FASTA sequence found. '
+         IRC=-1
+      End if
+      Go to 100
+      End
+
+*----------------------------------------------------------------------*
+      Subroutine Repar(OPTS,OPTR,NW,IRC)
+
+      Character*64      CARG
+
+      Integer           NW
+      Logical           OPTS
+      Logical           OPTR
+
+      IRC=0
+
+      OPTS=.FALSE.
+      OPTR=.FALSE.
+
+      N1=Iargc()
+
+      K1=0
+      I2=1
+      Do I1=1,N1
+         Call GetArg(I2,CARG)
+         If(CARG(1:1).EQ.'-') then 
+            If     (Index(CARG,'h').NE.0) then
+               go to 900
+            Else if(Index(CARG,'s').NE.0) then
+               OPTS=.TRUE.
+            Else if(Index(CARG,'r').NE.0) then
+               OPTR=.TRUE.
+            Else if(Index(CARG,'W').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) NW
+               Else
+                  I2=I2+1
+                  If(I2.GT.N1) Go to 900
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) NW
+               End if
+            End if
+         Else
+            K1=K1+1   
+         End if 
+         I2=I2+1
+         If(I2.GT.N1) Go to 20
+      End do 
+      
+ 20   If(K1.GT.0.OR.(OPTS.AND.OPTR)) go to 900
+      If(NW.LE.0.OR.NW.GT.512) NW=60
+
+ 100  Return
+ 900  IRC=-1
+      Go to 100
+      End
+
+*----------------------------------------------------------------------*
+      Subroutine Prsq(CSEQ,LSEQ,NW)
+
+      Character*512    RCOUT
+      Character         CSEQ(*)
+
+      INB=LSEQ/NW
+      INR=LSEQ-INB*NW
+      IN1=0
+      
+      Do IN2=1,INB
+         Do ii1=1,NW
+            RCOUT(ii1:ii1)=CSEQ(ii1+IN1)
+         End do
+         IN1=IN1+NW
+         Write(6,'(512A)')(RCOUT(ii1:ii1),ii1=1,NW)
+      End do
+      If(INR.GT.0) then
+         Do ii1=1,INR
+            RCOUT(ii1:ii1)=CSEQ(ii1+IN1)
+         End do
+         Write(6,'(512A)')(RCOUT(ii1:ii1),ii1=1,INR)
+      End if            
+      End
+*----------------------------------------------------------------------*
+      Include          'lblnk.f'
diff --git a/6ft.f b/6ft.f
new file mode 100644
index 0000000..739edc8
--- /dev/null
+++ b/6ft.f
@@ -0,0 +1,372 @@
+*       Program 6ft
+*----------------------------------------------------------------------*
+* $Id: 6ft.f,v 2.8 2003/11/28 11:53:33 vflegel Exp $
+*----------------------------------------------------------------------*
+*       Function: 6-frame translation of DNA sequence into protein
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*
+
+      Include          'ardim.f' 
+      Parameter        (NOUT=6)
+
+      Character*512     RCIN
+      Character*512     CHDE 
+      Character*64      CHID
+      Character*512     RCEX
+
+      Integer*2         ISEQ(IDMS)
+      Character         CSEQ(IDMS)
+      
+      Character         CABC(0:63) 
+      Character         CNBC(0:15) 
+
+      Character*04      CDNA
+      Integer           NBSQ
+      Integer           IOS
+      
+      Include          'sterr.f'
+      
+* options
+      
+      Integer           NW
+      Logical           OPTS
+      Logical           OPTR
+
+* Initializations
+
+      Data              CABC( 0)/'K'/
+      Data              CABC( 1)/'N'/
+      Data              CABC( 2)/'K'/
+      Data              CABC( 3)/'N'/
+      Data              CABC( 4)/'T'/
+      Data              CABC( 5)/'T'/
+      Data              CABC( 6)/'T'/
+      Data              CABC( 7)/'T'/
+      Data              CABC( 8)/'R'/
+      Data              CABC( 9)/'S'/
+      Data              CABC(10)/'R'/
+      Data              CABC(11)/'S'/
+      Data              CABC(12)/'I'/
+      Data              CABC(13)/'I'/
+      Data              CABC(14)/'M'/
+      Data              CABC(15)/'I'/
+      Data              CABC(16)/'Q'/
+      Data              CABC(17)/'H'/
+      Data              CABC(18)/'Q'/
+      Data              CABC(19)/'H'/
+      Data              CABC(20)/'P'/
+      Data              CABC(21)/'P'/
+      Data              CABC(22)/'P'/
+      Data              CABC(23)/'P'/
+      Data              CABC(24)/'R'/
+      Data              CABC(25)/'R'/
+      Data              CABC(26)/'R'/
+      Data              CABC(27)/'R'/
+      Data              CABC(28)/'L'/
+      Data              CABC(29)/'L'/
+      Data              CABC(30)/'L'/
+      Data              CABC(31)/'L'/
+      Data              CABC(32)/'E'/
+      Data              CABC(33)/'D'/
+      Data              CABC(34)/'E'/
+      Data              CABC(35)/'D'/
+      Data              CABC(36)/'A'/
+      Data              CABC(37)/'A'/
+      Data              CABC(38)/'A'/
+      Data              CABC(39)/'A'/
+      Data              CABC(40)/'G'/
+      Data              CABC(41)/'G'/
+      Data              CABC(42)/'G'/
+      Data              CABC(43)/'G'/
+      Data              CABC(44)/'V'/
+      Data              CABC(45)/'V'/
+      Data              CABC(46)/'V'/
+      Data              CABC(47)/'V'/
+      Data              CABC(48)/'O'/
+      Data              CABC(49)/'Y'/
+      Data              CABC(50)/'O'/
+      Data              CABC(51)/'Y'/
+      Data              CABC(52)/'S'/
+      Data              CABC(53)/'S'/
+      Data              CABC(54)/'S'/
+      Data              CABC(55)/'S'/
+      Data              CABC(56)/'O'/
+      Data              CABC(57)/'C'/
+      Data              CABC(58)/'W'/
+      Data              CABC(59)/'C'/
+      Data              CABC(60)/'L'/
+      Data              CABC(61)/'F'/
+      Data              CABC(62)/'L'/
+      Data              CABC(63)/'F'/
+
+      Data              CNBC( 0)/'X'/ 
+      Data              CNBC( 1)/'T'/ 
+      Data              CNBC( 2)/'X'/ 
+      Data              CNBC( 3)/'X'/ 
+      Data              CNBC( 4)/'X'/ 
+      Data              CNBC( 5)/'P'/ 
+      Data              CNBC( 6)/'R'/ 
+      Data              CNBC( 7)/'L'/ 
+      Data              CNBC( 8)/'X'/ 
+      Data              CNBC( 9)/'A'/ 
+      Data              CNBC(10)/'G'/ 
+      Data              CNBC(11)/'V'/ 
+      Data              CNBC(12)/'X'/ 
+      Data              CNBC(13)/'S'/ 
+      Data              CNBC(14)/'X'/ 
+      Data              CNBC(15)/'X'/ 
+
+      IRC=0
+      NBSQ=0
+      NW=60
+      IOS=0
+
+      CDNA='ACGT'
+
+      Call Repar(OPTS,OPTR,NW,IRC)
+      If(IRC.NE.0) then
+         Write(NERR,'(/,
+     *      ''6ft 2.3 revision 5.d'',//
+     *      ''Usage: 6ft [-[r|s]hW] < seq-library-file '',/
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -r: translate only reverse (antisense) strand.'',/
+     *      ''    -s: translate only sense strand.'',/
+     *      ''    -h: print usage help text.'',/
+     *      ''    -W<value>:'',/
+     *      ''        specifies the output width (default: 60).'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+
+ 1    Read(5,'(A)',End=920,Err=900) RCIN
+      If(RCIN(1:1).NE.'>') go to   1
+
+ 2    If(RCIN(1:1).NE.'>') Go to 920
+      J1=Index(RCIN,' ')
+      CHID='>x|' // RCIN(2:J1)
+      LNID=Lblnk(CHID)
+      LNDE=512-LNID+3
+      CHDE=RCIN(J1+1:J1+LNDE)
+      RCEX=CHID(1:LNID) // '   ' // CHDE(1:LNDE)  
+      
+      LSEQ=0
+ 3    Read(5,'(A)',Iostat=IOS,Err=900) RCIN
+      If(RCIN(1:1).EQ.'>') go to  10
+      L1=Lblnk(RCIN) 
+      
+      Do   5 I1=1,L1
+         K1=Ichar(RCIN(I1:I1))
+         If(K1.GE.97) then 
+            K1=K1-32
+            RCIN(I1:I1)=char(K1)
+         End if
+         If(K1.GT.90.OR.K1.LT.65) go to   5
+         LSEQ=LSEQ+1
+         If(LSEQ.GT.IDMS) Go to 901
+         ISEQ(LSEQ)=Index(CDNA,(RCIN(I1:I1)))-1
+         If(ISEQ(LSEQ).EQ.-1) ISEQ(LSEQ)=-64
+ 5    Continue
+      RCIN=' '
+      If(IOS.EQ.0) Go to 3
+
+ 10   Continue 
+
+      If(LSEQ.GE.3) then 
+         NBSQ=NBSQ+1
+      Else
+         Go to 902
+      End if
+
+* convert sequence into codons. 
+
+      J1=LNID+1
+      J2=LNID+2
+      J3=Lblnk(RCEX)
+
+* - plus strand
+      
+      If(.NOT.OPTR) then
+
+         Do  12 I1=1,LSEQ-2
+            N1=ISEQ(I1)*16+ISEQ(I1+1)*4+ISEQ(I1+2)
+            If(N1.LT.0) then 
+               N1=ISEQ(I1)*4+ISEQ(I1+1)
+               If(N1.GE.0) then
+                  CSEQ(I1)=CNBC(N1)
+               Else 
+                  CSEQ(I1)='X'
+               End if
+            Else
+               CSEQ(I1)=CABC(N1)
+            End if 
+ 12      Continue
+
+         RCEX(J1:J2)='_1'
+         Write(6,'(512A)')(RCEX(ii1:ii1),ii1=1,J3)
+         Call Prsq(CSEQ,1,LSEQ-2,NW)
+         RCEX(J1:J2)='_2'
+         Write(6,'(512A)')(RCEX(ii1:ii1),ii1=1,J3)
+         Call Prsq(CSEQ,2,LSEQ-2,NW)
+         RCEX(J1:J2)='_3'
+         Write(6,'(512A)')(RCEX(ii1:ii1),ii1=1,J3)
+         Call Prsq(CSEQ,3,LSEQ-2,NW)
+
+      End if
+
+* - minus strand
+      
+      If(.NOT.OPTS) then
+
+         Do  13 I1=LSEQ,1,-1
+            ISEQ(I1)=3-ISEQ(I1)
+            If(ISEQ(I1).GT.4) ISEQ(I1)=-64
+ 13      Continue
+         K1=1
+         Do  14 I1=LSEQ,3,-1
+            N1=ISEQ(I1)*16+ISEQ(I1-1)*4+ISEQ(I1-2)
+            If(N1.LT.0) then 
+               N1=ISEQ(I1)*4+ISEQ(I1-1)
+               If(N1.GE.0) then 
+                  CSEQ(K1)=CNBC(N1)
+               Else 
+                  CSEQ(K1)='X'
+               End if
+            Else
+               CSEQ(K1)=CABC(N1)
+            End if 
+            K1=K1+1
+ 14      Continue
+
+         RCEX(J1:J2)='_4'
+         If(OPTR) RCEX(J1:J2)='_1'
+         Write(6,'(512A)')(RCEX(ii1:ii1),ii1=1,J3)
+         Call Prsq(CSEQ,1,LSEQ-2,NW)
+         RCEX(J1:J2)='_5'
+         If(OPTR) RCEX(J1:J2)='_2'
+         Write(6,'(512A)')(RCEX(ii1:ii1),ii1=1,J3)
+         Call Prsq(CSEQ,2,LSEQ-2,NW)
+         RCEX(J1:J2)='_6'
+         If(OPTR) RCEX(J1:J2)='_3'
+         Write(6,'(512A)')(RCEX(ii1:ii1),ii1=1,J3)
+         Call Prsq(CSEQ,3,LSEQ-2,NW)
+
+      End if
+
+      If(IOS.EQ.0) Go to   2
+
+ 100  Call Exit(IRC)
+
+ 900  Write(NERR,*) 'Error: Unable to read sequence from standard'//
+     *   ' input.'
+      IRC=1
+      Go to 100
+ 901  Write(NERR,*) 'Error: sequence length exceeds buffer size (',
+     *   IDMS,').'
+      Write(NERR,*) '       While processing sequence ',
+     *      CHID(4:Lblnk(CHID))
+      IRC=1
+      Go to 100
+ 902  Write(NERR,*) 'Error: sequence length too short.'
+      Write(NERR,*) '       While processing sequence ',
+     *      CHID(4:Lblnk(CHID))
+      IRC=1
+      Go to 100
+ 920  If(NBSQ.EQ.0) then
+         Write(NERR,*) 'Warning: No FASTA sequence found. '
+         IRC=-1
+      End if
+      Go to 100
+      End
+
+*----------------------------------------------------------------------*
+      Subroutine Repar(OPTS,OPTR,NW,IRC)
+
+      Character*64      CARG
+
+      Integer           NW
+      Logical           OPTS
+      Logical           OPTR
+      
+      IRC=0
+      
+      OPTS=.FALSE.
+      OPTR=.FALSE.
+      
+      N1=Iargc()
+      
+      K1=0
+      I2=1
+      Do I1=1,N1
+         Call GetArg(I2,CARG)
+         If(CARG(1:1).EQ.'-') then
+            If     (Index(CARG,'h').NE.0) then
+               go to 900
+            Else if(Index(CARG,'s').NE.0) then
+               OPTS=.TRUE.
+            Else if(Index(CARG,'r').NE.0) then
+               OPTR=.TRUE.
+            Else if(Index(CARG,'W').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) NW
+               Else
+                  I2=I2+1
+                  If(I2.GT.N1) Go to 900
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) NW
+               End if
+            End if
+         Else
+            K1=K1+1
+         End if
+         I2=I2+1
+         If(I2.GT.N1) Go to 20
+      End do
+      
+ 20   If(K1.GT.0.OR.(OPTS.AND.OPTR)) go to 900
+      If(NW.LE.0.OR.NW.GT.512) NW=60
+      
+ 100  Return
+ 900  IRC=-1
+      Go to 100
+      End
+
+*----------------------------------------------------------------------*
+      Subroutine Prsq(CSEQ,BSEQ,LSEQ,NW)
+
+      Character*512     RCOUT
+      Character         CSEQ(*)
+      Integer           BSEQ
+
+      If((LSEQ-BSEQ).LT.0) go to 900
+      INL=(LSEQ-BSEQ)/3+1
+      INB=INL/NW
+      INR=INL-INB*NW
+
+      ii2=BSEQ
+      Do IN2=1,INB
+         Do ii1=1,NW
+            RCOUT(ii1:ii1)=CSEQ(ii2)
+            ii2=ii2+3
+         End do
+         Write(6,'(512A)')(RCOUT(ii1:ii1),ii1=1,NW)
+      End do
+      If(INR.GT.0) then
+         Do ii1=1,INR
+            RCOUT(ii1:ii1)=CSEQ(ii2)
+            ii2=ii2+3
+         End do
+         Write(6,'(512A)')(RCOUT(ii1:ii1),ii1=1,INR)
+      End if
+
+ 100  Return
+ 
+ 900  Write(6,'(1A)')' '
+      Go to 100
+
+      End
+*----------------------------------------------------------------------*
+      Include          'lblnk.f'
diff --git a/CFAve.f b/CFAve.f
new file mode 100644
index 0000000..a07a685
--- /dev/null
+++ b/CFAve.f
@@ -0,0 +1,25 @@
+*----------------------------------------------------------------------*     
+* $Id: CFAve.f,v 2.5 2003/04/10 11:58:37 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine CFAve(ISEQ,IDMS,BSEQ,LSEQ,CABC,NABC,FAVE)
+
+      Integer*2         ISEQ(IDMS)
+      Integer           BSEQ
+      Character         CABC(0:26)
+      Real              FAVE(0:26)
+
+      Do  I1=0,NABC
+         FAVE(I1)=0
+      End Do
+      Do  I1=BSEQ,LSEQ
+         J1=ISEQ(I1)
+         FAVE(J1)=FAVE(J1)+1
+      End Do 
+      Do  I1=0,NABC
+         FAVE(I1)=FAVE(I1)/(LSEQ-BSEQ)
+      End Do
+
+      Return
+      End
diff --git a/CPAve.f b/CPAve.f
new file mode 100644
index 0000000..b8fbaf4
--- /dev/null
+++ b/CPAve.f
@@ -0,0 +1,22 @@
+*----------------------------------------------------------------------*     
+* $Id: CPAve.f,v 2.4 2003/04/10 11:58:37 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine CPAve(IMPP,IDMP,LPRF,CABC,NABC,PAVE)
+
+      Integer           IMPP(0:27,0:IDMP)
+      Character         CABC(0:26)
+      Real              PAVE(0:26)
+
+      Do  I1=0,NABC
+         PAVE(I1)=0
+      End Do
+      Do  I1=1,LPRF
+         Do  I2=0,NABC
+            PAVE(I2)=PAVE(I2)+IMPP(I2,I1) 
+         End do  
+      End Do 
+
+      Return
+      End
diff --git a/CVPBR322 b/CVPBR322
new file mode 100644
index 0000000..9914c7a
--- /dev/null
+++ b/CVPBR322
@@ -0,0 +1,483 @@
+ID   CVPBR322   standard; circular DNA; SYN; 4361 BP.
+XX
+AC   J01749; K00005; L08654; M10282; M10283; M10286; M10356; M10784;
+AC   M10785; M10786; M33694; V01119;
+XX
+DT   16-JUN-1990 (Rel. 24, Created)
+DT   02-AUG-1995 (Rel. 44, Last updated, Version 20)
+XX
+DE   Cloning vector pBR322, complete genome.
+XX
+KW   ampicillin resistance; beta-lactamase; cloning vector;
+KW   drug resistance protein; origin of replication; plasmid;
+KW   tetracycline resistance.
+XX
+OS   Cloning vector
+OC   Artificial sequences; Cloning vectors.
+XX
+RN   [1]
+RP   1-3, 3259-4361
+RX   MEDLINE; 79012484.
+RA   Sutcliffe J.G.;
+RT   "Nucleotide sequence of the ampicillin resistance gene of
+RT   Escherichia coli plasmid pBR322";
+RL   Proc. Natl. Acad. Sci. U.S.A. 75:3737-3741(1978).
+XX
+RN   [2]
+RP   1-4361
+RX   MEDLINE; 80002802.
+RA   Sutcliffe J.G.;
+RT   "Complete nucleotide sequence of the Escherichia coli plasmid
+RT   pBR322";
+RL   Cold Spring Harb. Symp. Quant. Biol. 43:77-90(1979).
+XX
+RN   [3]
+RP   1500-2300
+RX   MEDLINE; 80056597.
+RA   Reed R.R., Young R.A., Steitz J.A., Grindley N.D.F., Guyer M.;
+RT   "Transposition of the Escherichia coli insertion element gamma
+RT   generates a five-base-pair repeat";
+RL   Proc. Natl. Acad. Sci. U.S.A. 76:4882-4886(1979).
+XX
+RN   [4]
+RP   2207-2265
+RX   MEDLINE; 81213464.
+RA   Covarrubias L., Cervantes L., Covarrubias A., Soberon X.,
+RA   Vichido I., Blanco A., Kupersztoch-Portnoy Y.M., Bolivar F.;
+RT   "Construction and characterization of new cloning vehicles: V.
+RT   Mobilization and coding properties of pBR322 and several deletion
+RT   derivatives including pBR327 and pBR328";
+RL   Gene 13:25-35(1981).
+XX
+RN   [5]
+RP   2000-2500
+RX   MEDLINE; 82167416.
+RA   Marians K.J., Soeller W., Zipursky S.L.;
+RT   "Maximal limits of the Escherichia coli replication factor Y
+RT   effector site sequences in pBR322 DNA";
+RL   J. Biol. Chem. 257:5656-5662(1982).
+XX
+RN   [6]
+RP   1-80, 4151-4229, 4349-4361
+RX   MEDLINE; 82239419.
+RA   Brosius J., Cate R.L., Perlmutter A.P.;
+RT   "Precise location of two promoters for the beta-lactamase gene of
+RT   pBR322 : S1 mapping of ribonucleic acid isolated from Escherichia
+RT   coli or synthesized in vitro";
+RL   J. Biol. Chem. 257:9205-9210(1982).
+XX
+RN   [7]
+RP   4241-4343
+RX   MEDLINE; 83039392.
+RA   Van dyke M.W., Hertzberg R.P., Dervan P.B.;
+RT   "Map of distamycin, netropsin, and actinomycin binding sites on
+RT   heterogeneous DNA: Dna cleavage-inhibition patterns with
+RT   methidiumpropyl-EDTA.Fe(II)";
+RL   Proc. Natl. Acad. Sci. U.S.A. 79:5470-5474(1982).
+XX
+RN   [8]
+RP   584-709
+RX   MEDLINE; 83117649.
+RA   Peden K.W.C., Nathans D.;
+RT   "Local mutagenesis within deletion loops of DNA heteroduplexes";
+RL   Proc. Natl. Acad. Sci. U.S.A. 79:7214-7217(1982).
+XX
+RN   [9]
+RP   373-649
+RX   MEDLINE; 83263146.
+RA   Peden K.W.C.;
+RT   "Revised sequence of the tetracycline-resistance gene of pBR322";
+RL   Gene 22:277-280(1983).
+XX
+RN   [10]
+RP   132-181
+RX   MEDLINE; 83161053.
+RA   Watabe H.o., Iino T., Kaneko T., Shibata T., Ando T.;
+RT   "A new class of site-specific endo-deoxyribonucleases: Endo.Sce I
+RT   isolated from a eukaryote, Saccharomyces cerevisiae";
+RL   J. Biol. Chem. 258:4663-4665(1983).
+XX
+RN   [11]
+RP   368-581
+RX   MEDLINE; 83117828.
+RA   Livneh Z.;
+RT   "Directed mutagenesis method for analysis of mutagen specificity:
+RT   Application to ultraviolet-induced mutagenesis";
+RL   Proc. Natl. Acad. Sci. U.S.A. 80:237-241(1983).
+XX
+RN   [12]
+RP   2627-2682, 2781-2828
+RX   MEDLINE; 84070716.
+RA   Mascharak P.K., Sugiura Y., Kuwahara J., Suzuki T., Lippard S.J.;
+RT   "Alteration and activation of sequence-specific cleavage of DNA by
+RT   bleomycin in the presence of the antitumor drug
+RT   cis-diamminedichloroplatinum(II)";
+RL   Proc. Natl. Acad. Sci. U.S.A. 80:6795-6798(1983).
+XX
+RN   [13]
+RP   4276-4336
+RX   MEDLINE; 84070724.
+RA   Schultz P.G., Dervan P.B.;
+RT   "Sequence-specific double-stranded cleavage of DNA by
+RT   penta-N-methylpyrrolecarboxamide-EDTA.Fe(II)";
+RL   Proc. Natl. Acad. Sci. U.S.A. 80:6834-6837(1983).
+XX
+RN   [14]
+RP   518-528
+RA   Sutcliffe J.G.;
+RT   ;
+RL   Unpublished.
+XX
+RN   [15]
+RP   2395-2495
+RX   MEDLINE; 85024881.
+RA   Fuller R.S., Funnell B.E., Kornberg A.;
+RT   "The dnaA protein complex with the E. coli chromosomal replication
+RT   origin (oriC) and other DNA sites";
+RL   Cell 38:889-900(1984).
+XX
+RN   [16]
+RP   2729-2731
+RX   MEDLINE; 84207440.
+RA   Lathe R., Kieny M.P., Skory S., Lecocoq J.P.;
+RT   "Laboratory methods linker tailing: Unphosphorylated linker
+RT   oligonucleotides for joining DNA termini";
+RL   DNA 3:173-182(1984).
+XX
+RN   [17]
+RC   bases
+RX   MEDLINE; 84260952.
+RA   Heusterspreute M., Davison J.;
+RT   "Restriction site bank vectors. II. DNA sequence analysis of
+RT   plasmid pJRD158";
+RL   DNA 3:259-268(1984).
+XX
+RN   [18]
+RP   2113-2186, 2348-2415
+RX   MEDLINE; 85054885.
+RA   Abarzua P.I., Soeller W., Marians K.J.;
+RT   "Mutational analysis of the primosome assembly sites: I. Distinct
+RT   classes of mutants in the pBR322 Escherichia coli factor Y DNA
+RT   effector sequences";
+RL   J. Biol. Chem. 259:14286-14292(1984).
+XX
+RN   [19]
+RP   2348-2415
+RX   MEDLINE; 85054886.
+RA   Soeller W., Abarzua P.I., Marians K.J.;
+RT   "Mutational analysis of primosome assembly sites: II. Role of
+RT   secondary structure in the formation of active sites";
+RL   J. Biol. Chem. 259:14293-14300(1984).
+XX
+RN   [20]
+RP   1-4361
+RX   MEDLINE; 84300294.
+RA   Van Dyke M.M., Dervan P.B.;
+RT   "Echinomycin binding sites on DNA";
+RL   Science 225:1122-1127(1984).
+XX
+RN   [21]
+RA   Pouwels P.H., Enger-Valk B.E., Brammar W.J.;
+RT   "Vector I-A-iv-1";
+RL   (in) Brammar W.J. (eds.);
+RL   CLONING VECTORS:1-1;
+RL   Elsevier Scientific Publishing, Amsterdam (1985)
+XX
+RN   [22]
+RP   1-4361
+RX   MEDLINE; 89108024.
+RA   Watson N.;
+RT   "A new revision of the sequence of plasmid pBR322";
+RL   Gene 70:399-403(1988).
+XX
+RN   [23]
+RA   Gilbert W.;
+RT   "Obtained from VecBase 3.0";
+RL   Unpublished.
+XX
+CC   The circular sequence is numbered such that 0 is the middle of the
+CC   unique EcoRI site and the count increases first through the tet
+CC   genes, the pMB1 material, and finally through the Tn3 region.
+CC   Plasmid pBR322 contains ampicillin and tetracycline resistance
+CC   genes. The ampicillin resistance gene (amp-r) is a penicillin
+CC   beta-lactamase. Promoters P1 and P3 are for the beta-lactamase
+CC   gene. P3 is the natural promoter, and P1 is artificially created by
+CC   the ligation of two different DNA fragments to create pBR322. P2 is
+CC   in the same region as P1, but it is on the opposite strand and
+CC   initiates transcription in the direction of the tetracycline
+CC   resistance gene. Mutational studies in the primosome assembly sites
+CC   indicate four types of mutations: Class I having no effect on the
+CC   activities elicited by the DNA site and the bases involved are
+CC   probably spacers; Class II requiring higher Mg-2+ concentrations
+CC   than the wild-type to be fully activated as factor Y ATPase
+CC   effectors; Class III co-inactivating both the ATPase effector and
+CC   DNA replication template activity of the site, indicating that they
+CC   probably represent essential contact points between factor Y and
+CC   the DNA; Class IV having a replication template activity
+CC   intermediate that of class III and class II mutant DNAs. Specific
+CC   sites within or near the origins of replication are recognized by
+CC   dnaA protein. Without dnaA binding to the origin of replication
+CC   chromosomal replication is not possible [15]. pBR322 DNA contains
+CC   two separate regions on opposite strands and close to the origin of
+CC   replication which, when in single-stranded form, can act as
+CC   effectors for the ATPase activity of E.coli replication factor Y
+CC   [5]. Small fragments of DNA containing these sites when cloned in
+CC   an f1 phage vector act as origins of DNA replication allowing the
+CC   formation of complementary double-stranded DNA in
+CC   rifampicin-resistant, dna[B,G,C]-dependent fashion in vitro [5].
+CC   The biological activity of echinomycin is thought to be related to
+CC   the formation of complexes by intercalating with cellular DNA [20].
+CC   Complete source information: Plasmid pBR322 from E.coli
+CC   [2],[1],[3],[6],[11],[8],[5],[7],[12],
+CC   [13],[10],[9],[14],[18],[19],[15],[20],[16]; pBR322 DNA in pXf3
+CC   [4]. The following data and their annotation were supplied by Will
+CC   Gilbert under the auspices of the Curator Program. CROSSREFERENCE
+CC   #parent GenBank(50):pSC101C, GenBank(50):Trn3 #offspring
+CC   VecBase(3):pBR325, VecBase(3):pBR327, VecBase(3): pBR328,
+CC   VecBase(3):pAT153, VecBase(3):pUC7, VecBase(3): pJRD158,
+CC   VecBase(3):PiVX, VecBase(3):PiAN7, VecBase(3): pSP64,
+CC   VecBase(3):pSP65, VecBase(3):pGEM1, VecBase(3): pGEM2,
+CC   VecBase(3):pGEM3, VecBase(3):pGEM4, VecBase(3): pKK223,
+CC   VecBase(3):pLBU3, VecBase(3):pTrS3, VecBase(3): pRSVNeo,
+CC   VecBase(3):pSV2Cat, VecBase(3):M13mp9, VecBase(3): pHC79,
+CC   VecBase(3):pV34, VecBase(3):pKTH601, VecBase(3): pKTH604,
+CC   VecBase(3):pKTH605, VecBase(3):pKTH606, VecBase(3):YEp24,
+CC   VecBase(3):YIp5, VecBase(3):YRp17, VecBase(3): pSP18,
+CC   VecBase(3):pSP19, VecBase(3):pSP6T3, VecBase(3):pSP6T719,
+CC   VecBase(3):pT712, VecBase(3):pT713, VecBase(3):pT7T318, VecBase(3):
+CC   pT7T319, VecBase(3):pT7T3A18, VecBase(3):pT7T3A19, VecBase(3):pEX1,
+CC   VecBase(3):pEX2, VecBase(3):pEX3, VecBase(3): pCKSP6,
+CC   VecBase(3):pACYC177, VecBase(3):pKO1, VecBase(3): pKO2,
+CC   VecBase(3):pKM1, VecBase(3):pKM2, VecBase(3):pMBL1, VecBase(3):
+CC   pMBL604, VecBase(3):pMC1511, VecBase(3):pMC1871, VecBase(3):pAA37X,
+CC   VecBase(3):pUR278, VecBase(3):pUR288, VecBase(3): pUR289,
+CC   VecBase(3):pUR290, VecBase(3):pUR291, VecBase(3): pUR292,
+CC   VecBase(3):pUR222. NCBI gi: 208958
+XX
+FH   Key             Location/Qualifiers
+FH
+FT   source          1..4361
+FT                   /organism="Cloning vector"
+FT                   /sub_species="Cloning vector pBR322"
+FT                   /sequenced_mol="DNA"
+FT                   /tissue_lib="ATCC 31344, ATCC 37017"
+FT   misc_feature    1..1643
+FT                   /note="from pSC101 (bp 1-1643)"
+FT   misc_binding    24..27
+FT                   /bound_moiety="echinomycin"
+FT   promoter        complement(27..33)
+FT                   /note="promoter P1 [6]"
+FT   misc_binding    39..42
+FT                   /bound_moiety="echinomycin"
+FT   promoter        43..49
+FT                   /note="promoter P2 [6]"
+FT   misc_binding    53..56
+FT                   /bound_moiety="echinomycin"
+FT   misc_binding    67..70
+FT                   /bound_moiety="echinomycin"
+FT   misc_binding    80..83
+FT                   /bound_moiety="echinomycin"
+FT   CDS             86..1276
+FT                   /gene="tet"
+FT                   /note="NCBI gi: 208959"
+FT                   /codon_start=1
+FT                   /product="tetracycline resistance protein"
+FT                   /db_xref="PID:g208959"
+FT                   /translation="MKSNNALIVILGTVTLDAVGIGLVMPVLPGLLRDIVHSDSIASHY
+FT                   GVLLALYALMQFLCAPVLGALSDRFGRRPVLLASLLGATIDYAIMATTPVLWILYAGRI
+FT                   VAGITGATGAVAGAYIADITDGEDRARHFGLMSACFGVGMVAGPVAGGLLGAISLHAPF
+FT                   LAAAVLNGLNLLLGCFLMQESHKGERRPMPLRAFNPVSSFRWARGMTIVAALMTVFFIM
+FT                   QLVGQVPAALWVIFGEDRFRWSATMIGLSLAVFGILHALAQAFVTGPATKRFGEKQAII
+FT                   AGMAADALGYVLLAFATRGWMAFPIMILLASGGIGMPALQAMLSRQVDDDHQGQLQGSL
+FT                   AALTSLTSITGPLIVTAIYAASASTWNGLAWIVGAALYLVCLPALRRGAWSRATST"
+FT   misc_feature    complement(141..142)
+FT                   /note="Endo.Sce I cleavage site coordinated with site at
+FT                   base 146 [10]"
+FT   misc_feature    146..147
+FT                   /note="Endo.Sce I cleavage site coordinated with site at
+FT                   base 142 [10]"
+FT   misc_binding    411..414
+FT                   /bound_moiety="echinomycin"
+FT   conflict        replace(426,"")
+FT                   /citation=[11]
+FT   misc_binding    469..472
+FT                   /bound_moiety="echinomycin"
+FT   old_sequence    526..528
+FT                   /citation=[17]
+FT   repeat_unit     complement(1515..1519)
+FT                   /note="gamma-delta insertion target sequence"
+FT                   /rpt_type=DIRECT
+FT   misc_feature    1636..1762
+FT                   /note="from pSC101 (bp 1860-1986)"
+FT   misc_feature    1763..3147
+FT                   /note="from pMB1"
+FT   repeat_unit     complement(1788..1792)
+FT                   /note="gamma-delta insertion target sequence"
+FT                   /rpt_type=DIRECT
+FT   conflict        replace(1891..1892,"att")
+FT                   /citation=[23]
+FT   old_sequence    1892..1893
+FT                   /citation=[2]
+FT                   /citation=[22]
+FT   RBS             1905..1910
+FT   RBS             1905..1909
+FT                   /note="Shine-Dalgarno sequence"
+FT   conflict        replace(1913..1914,"caa")
+FT                   /citation=[23]
+FT   old_sequence    1914..1915
+FT                   /citation=[17]
+FT   CDS             1915..2106
+FT                   /note="NCBI gi: 456436"
+FT                   /codon_start=1
+FT                   /product="ROP protein"
+FT                   /db_xref="PID:g456436"
+FT                   /translation="VTKQEKTALNMARFIRSQTLTLLEKLNELDADEQADICESLHDHA
+FT                   DELYRSCLARFGDDGENL"
+FT   CDS             1915..2106
+FT                   /note="NCBI gi: 506846"
+FT                   /codon_start=1
+FT                   /product="ROP protein"
+FT                   /db_xref="PID:g506846"
+FT                   /translation="VTKQEKTALNMARFIRSQTLTLLEKLNELDADEQADICESLHDHA
+FT                   DELYRSCLARFGDDGENL"
+FT   misc_feature    2011..2167
+FT                   /note="H-strand Y effector site [5]"
+FT   repeat_unit     complement(2245..2249)
+FT                   /note="gamma-delta insertion target sequence"
+FT                   /rpt_type=DIRECT
+FT   misc_feature    complement(2351..2414)
+FT                   /note="L-strand Y effector site [5]"
+FT   misc_binding    2439..2447
+FT                   /bound_moiety="dnaA"
+FT   rep_origin      2535
+FT   old_sequence    replace(2729..2730,"at")
+FT                   /note="revision according to [17]"
+FT                   /citation=[17]
+FT                   /citation=[2]
+FT   old_sequence    2729
+FT                   /citation=[17]
+FT   old_sequence    replace(2730,"t")
+FT                   /note="revision according to [16]"
+FT                   /citation=[2]
+FT                   /citation=[16]
+FT   old_sequence    2730
+FT                   /citation=[17]
+FT   misc_feature    3148..4361
+FT                   /note="from Tn3 (bp 4957-3742)"
+FT   repeat_region   3148..3185
+FT                   /note="corresponds to one of the 38bp repeats found in Tn3
+FT                   (bp 1-38 and complement (4920-4957))"
+FT                   /rpt_type=INVERTED
+FT   CDS             complement(3293..4153)
+FT                   /gene="bla"
+FT                   /note="E-286; NCBI gi: 455370"
+FT                   /codon_start=1
+FT                   /product="beta-lactamase"
+FT                   /db_xref="PID:g455370"
+FT                   /translation="MSIQHFRVALIPFFAAFCLPVFAHPETLVKVKDAEDQLGARVGYI
+FT                   ELDLNSGKILESFRPEERFPMMSTFKVLLCGAVLSRVDAGQEQLGRRIHYSQNDLVEYS
+FT                   PVTEKHLTDGMTVRELCSAAITMSDNTAANLLLTTIGGPKELTAFLHNMGDHVTRLDRW
+FT                   EPELNEAIPNDERDTTMPAAMATTLRKLLTGELLTLASRQQLIDWMEADKVAGPLLRSA
+FT                   LPAGWFIADKSGAGERGSRGIIAALGPDGKPSRIVVIYTTGSQATMDERNRQIAEIGAS
+FT                   LIKHW"
+FT   mat_peptide     complement(3296..4084)
+FT                   /gene="bla"
+FT                   /codon_start=1
+FT                   /product="beta-lactamase"
+FT   sig_peptide     complement(4085..4153)
+FT                   /gene="bla"
+FT                   /codon_start=1
+FT   RBS             complement(4161..4165)
+FT                   /note="Shine-Dalgarno sequence"
+FT   promoter        complement(4188..4194)
+FT                   /note="promoter P3 [6]"
+FT   misc_binding    complement(4268..4271)
+FT                   /bound_moiety="echinomycin"
+FT   misc_binding    complement(4280..4283)
+FT                   /bound_moiety="echinomycin"
+FT   misc_binding    complement(4285..4288)
+FT                   /bound_moiety="echinomycin"
+FT   misc_binding    complement(4296..4299)
+FT                   /bound_moiety="echinomycin"
+FT   misc_binding    complement(4311..4314)
+FT                   /bound_moiety="echinomycin"
+FT   misc_binding    complement(4317..4320)
+FT                   /bound_moiety="echinomycin"
+FT   misc_binding    complement(4331..4334)
+FT                   /bound_moiety="echinomycin"
+XX
+SQ   Sequence 4361 BP; 983 A; 1210 C; 1134 G; 1034 T; 0 other;
+     ttctcatgtt tgacagctta tcatcgataa gctttaatgc ggtagtttat cacagttaaa        60
+     ttgctaacgc agtcaggcac cgtgtatgaa atctaacaat gcgctcatcg tcatcctcgg       120
+     caccgtcacc ctggatgctg taggcatagg cttggttatg ccggtactgc cgggcctctt       180
+     gcgggatatc gtccattccg acagcatcgc cagtcactat ggcgtgctgc tagcgctata       240
+     tgcgttgatg caatttctat gcgcacccgt tctcggagca ctgtccgacc gctttggccg       300
+     ccgcccagtc ctgctcgctt cgctacttgg agccactatc gactacgcga tcatggcgac       360
+     cacacccgtc ctgtggatcc tctacgccgg acgcatcgtg gccggcatca ccggcgccac       420
+     aggtgcggtt gctggcgcct atatcgccga catcaccgat ggggaagatc gggctcgcca       480
+     cttcgggctc atgagcgctt gtttcggcgt gggtatggtg gcaggccccg tggccggggg       540
+     actgttgggc gccatctcct tgcatgcacc attccttgcg gcggcggtgc tcaacggcct       600
+     caacctacta ctgggctgct tcctaatgca ggagtcgcat aagggagagc gtcgaccgat       660
+     gcccttgaga gccttcaacc cagtcagctc cttccggtgg gcgcggggca tgactatcgt       720
+     cgccgcactt atgactgtct tctttatcat gcaactcgta ggacaggtgc cggcagcgct       780
+     ctgggtcatt ttcggcgagg accgctttcg ctggagcgcg acgatgatcg gcctgtcgct       840
+     tgcggtattc ggaatcttgc acgccctcgc tcaagccttc gtcactggtc ccgccaccaa       900
+     acgtttcggc gagaagcagg ccattatcgc cggcatggcg gccgacgcgc tgggctacgt       960
+     cttgctggcg ttcgcgacgc gaggctggat ggccttcccc attatgattc ttctcgcttc      1020
+     cggcggcatc gggatgcccg cgttgcaggc catgctgtcc aggcaggtag atgacgacca      1080
+     tcagggacag cttcaaggat cgctcgcggc tcttaccagc ctaacttcga tcactggacc      1140
+     gctgatcgtc acggcgattt atgccgcctc ggcgagcaca tggaacgggt tggcatggat      1200
+     tgtaggcgcc gccctatacc ttgtctgcct ccccgcgttg cgtcgcggtg catggagccg      1260
+     ggccacctcg acctgaatgg aagccggcgg cacctcgcta acggattcac cactccaaga      1320
+     attggagcca atcaattctt gcggagaact gtgaatgcgc aaaccaaccc ttggcagaac      1380
+     atatccatcg cgtccgccat ctccagcagc cgcacgcggc gcatctcggg cagcgttggg      1440
+     tcctggccac gggtgcgcat gatcgtgctc ctgtcgttga ggacccggct aggctggcgg      1500
+     ggttgcctta ctggttagca gaatgaatca ccgatacgcg agcgaacgtg aagcgactgc      1560
+     tgctgcaaaa cgtctgcgac ctgagcaaca acatgaatgg tcttcggttt ccgtgtttcg      1620
+     taaagtctgg aaacgcggaa gtcagcgccc tgcaccatta tgttccggat ctgcatcgca      1680
+     ggatgctgct ggctaccctg tggaacacct acatctgtat taacgaagcg ctggcattga      1740
+     ccctgagtga tttttctctg gtcccgccgc atccataccg ccagttgttt accctcacaa      1800
+     cgttccagta accgggcatg ttcatcatca gtaacccgta tcgtgagcat cctctctcgt      1860
+     ttcatcggta tcattacccc catgaacaga aatccccctt acacggaggc atcagtgacc      1920
+     aaacaggaaa aaaccgccct taacatggcc cgctttatca gaagccagac attaacgctt      1980
+     ctggagaaac tcaacgagct ggacgcggat gaacaggcag acatctgtga atcgcttcac      2040
+     gaccacgctg atgagcttta ccgcagctgc ctcgcgcgtt tcggtgatga cggtgaaaac      2100
+     ctctgacaca tgcagctccc ggagacggtc acagcttgtc tgtaagcgga tgccgggagc      2160
+     agacaagccc gtcagggcgc gtcagcgggt gttggcgggt gtcggggcgc agccatgacc      2220
+     cagtcacgta gcgatagcgg agtgtatact ggcttaacta tgcggcatca gagcagattg      2280
+     tactgagagt gcaccatatg cggtgtgaaa taccgcacag atgcgtaagg agaaaatacc      2340
+     gcatcaggcg ctcttccgct tcctcgctca ctgactcgct gcgctcggtc gttcggctgc      2400
+     ggcgagcggt atcagctcac tcaaaggcgg taatacggtt atccacagaa tcaggggata      2460
+     acgcaggaaa gaacatgtga gcaaaaggcc agcaaaaggc caggaaccgt aaaaaggccg      2520
+     cgttgctggc gtttttccat aggctccgcc cccctgacga gcatcacaaa aatcgacgct      2580
+     caagtcagag gtggcgaaac ccgacaggac tataaagata ccaggcgttt ccccctggaa      2640
+     gctccctcgt gcgctctcct gttccgaccc tgccgcttac cggatacctg tccgcctttc      2700
+     tcccttcggg aagcgtggcg ctttctcata gctcacgctg taggtatctc agttcggtgt      2760
+     aggtcgttcg ctccaagctg ggctgtgtgc acgaaccccc cgttcagccc gaccgctgcg      2820
+     ccttatccgg taactatcgt cttgagtcca acccggtaag acacgactta tcgccactgg      2880
+     cagcagccac tggtaacagg attagcagag cgaggtatgt aggcggtgct acagagttct      2940
+     tgaagtggtg gcctaactac ggctacacta gaaggacagt atttggtatc tgcgctctgc      3000
+     tgaagccagt taccttcgga aaaagagttg gtagctcttg atccggcaaa caaaccaccg      3060
+     ctggtagcgg tggttttttt gtttgcaagc agcagattac gcgcagaaaa aaaggatctc      3120
+     aagaagatcc tttgatcttt tctacggggt ctgacgctca gtggaacgaa aactcacgtt      3180
+     aagggatttt ggtcatgaga ttatcaaaaa ggatcttcac ctagatcctt ttaaattaaa      3240
+     aatgaagttt taaatcaatc taaagtatat atgagtaaac ttggtctgac agttaccaat      3300
+     gcttaatcag tgaggcacct atctcagcga tctgtctatt tcgttcatcc atagttgcct      3360
+     gactccccgt cgtgtagata actacgatac gggagggctt accatctggc cccagtgctg      3420
+     caatgatacc gcgagaccca cgctcaccgg ctccagattt atcagcaata aaccagccag      3480
+     ccggaagggc cgagcgcaga agtggtcctg caactttatc cgcctccatc cagtctatta      3540
+     attgttgccg ggaagctaga gtaagtagtt cgccagttaa tagtttgcgc aacgttgttg      3600
+     ccattgctgc aggcatcgtg gtgtcacgct cgtcgtttgg tatggcttca ttcagctccg      3660
+     gttcccaacg atcaaggcga gttacatgat cccccatgtt gtgcaaaaaa gcggttagct      3720
+     ccttcggtcc tccgatcgtt gtcagaagta agttggccgc agtgttatca ctcatggtta      3780
+     tggcagcact gcataattct cttactgtca tgccatccgt aagatgcttt tctgtgactg      3840
+     gtgagtactc aaccaagtca ttctgagaat agtgtatgcg gcgaccgagt tgctcttgcc      3900
+     cggcgtcaac acgggataat accgcgccac atagcagaac tttaaaagtg ctcatcattg      3960
+     gaaaacgttc ttcggggcga aaactctcaa ggatcttacc gctgttgaga tccagttcga      4020
+     tgtaacccac tcgtgcaccc aactgatctt cagcatcttt tactttcacc agcgtttctg      4080
+     ggtgagcaaa aacaggaagg caaaatgccg caaaaaaggg aataagggcg acacggaaat      4140
+     gttgaatact catactcttc ctttttcaat attattgaag catttatcag ggttattgtc      4200
+     tcatgagcgg atacatattt gaatgtattt agaaaaataa acaaataggg gttccgcgca      4260
+     catttccccg aaaagtgcca cctgacgtct aagaaaccat tattatcatg acattaacct      4320
+     ataaaaatag gcgtatcacg aggccctttc gtcttcaaga a                          4361
+//
diff --git a/GTPA_HUMAN b/GTPA_HUMAN
new file mode 100644
index 0000000..24cf3d6
--- /dev/null
+++ b/GTPA_HUMAN
@@ -0,0 +1,84 @@
+ID   GTPA_HUMAN     STANDARD;      PRT;  1047 AA.
+AC   P20936;
+DT   01-FEB-1991 (REL. 17, CREATED)
+DT   01-FEB-1991 (REL. 17, LAST SEQUENCE UPDATE)
+DT   01-NOV-1995 (REL. 32, LAST ANNOTATION UPDATE)
+DE   GTPASE-ACTIVATING PROTEIN (GAP) (RAS P21 PROTEIN ACTIVATOR).
+GN   RASA.
+OS   HOMO SAPIENS (HUMAN).
+OC   EUKARYOTA; METAZOA; CHORDATA; VERTEBRATA; TETRAPODA; MAMMALIA;
+OC   EUTHERIA; PRIMATES.
+RN   [1]
+RP   SEQUENCE FROM N.A.
+RC   TISSUE=PLACENTA;
+RX   MEDLINE; 89072759.
+RA   TRAHEY M., WONG G., HALENBECK R., RUBINFELD B., MARTIN G.A.,
+RA   LADNER M., LONG C.M., CROSIER W.J., WATT K., KOTHS K.,
+RA   MCCORMICK F.;
+RL   SCIENCE 242:1697-1700(1988).
+RN   [2]
+RP   STRUCTURE BY NMR OF 275-350.
+RX   MEDLINE; 94185632.
+RA   YANG Y.S., GARBAY C., DUSCHESNE M., CORNILLE F., JULLIAN N.,
+RA   FROMAGE N., TOCQUE B., ROQUES B.P.;
+RL   EMBO J. 13:1270-1279(1994).
+RN   [3]
+RP   VARIANTS LEU-398; GLY-400 AND VAL-401.
+RA   FRIEDMAN E., GEJMAN P.V., MARTIN G.A., MCCORMICK F.;
+RL   NAT. GENET. 5:242-247(1993).
+CC   -!- FUNCTION: GAP STIMULATES THE GTPASE OF NORMAL BUT NOT ONCOGENIC
+CC       RAS P21.
+CC   -!- SUBCELLULAR LOCATION: CYTOPLASMIC.
+CC   -!- ALTERNATIVE PRODUCTS: THE TWO FORMS OF GAP ARE PROBABLY PRODUCED
+CC       BY ALTERNATIVE SPLICING OF THE SAME GENE.
+CC   -!- SIMILARITY: TO OTHER RAS GTPASE-ACTIVATING PROTEINS.
+CC   -!- SIMILARITY: CONTAINS TWO COPIES OF THE SH2 DOMAIN AND ONE COPY OF
+CC       THE SH3 DOMAIN.
+CC   -!- SIMILARITY: CONTAINS A COPY OF THE C2 DOMAIN.
+CC   -!- SIMILARITY: CONTAINS A PH DOMAIN.
+CC   -!- DISEASE: MUTATIONS IN THE SH2 DOMAIN OF RASA SEEM TO BE ONCOGENIC
+CC       AND CAUSE BASAL CELL CARCINOMAS.
+DR   EMBL; M23379; M23379.
+DR   EMBL; M23612; M23612.
+DR   PIR; A40121; A40121.
+DR   HSSP; P00519; 1AYB.
+DR   MIM; 139150; 11TH EDITION.
+DR   PROSITE; PS00509; RAS_GTPASE_ACTIV_1.
+DR   PROSITE; PS50001; SH2.
+DR   PROSITE; PS50002; SH3.
+DR   PROSITE; PS50003; PH_DOMAIN.
+DR   PROSITE; PS50004; C2_DOMAIN_2.
+DR   PROSITE; PS50018; RAS_GTPASE_ACTIV_2.
+KW   GTPASE ACTIVATION; ALTERNATIVE SPLICING; SH2 DOMAIN; SH3 DOMAIN;
+KW   PROTO-ONCOGENE; DISEASE MUTATION.
+FT   VARSPLIC      1    176       MISSING (IN SHORT FORM).
+FT   VARSPLIC    177    180       TNK -> MKG (IN SHORT FORM).
+FT   DOMAIN      181    272       SH2.
+FT   DOMAIN      279    341       SH3.
+FT   DOMAIN      351    441       SH2.
+FT   DOMAIN      474    577       PH.
+FT   DOMAIN      594    676       C2 DOMAIN.
+FT   DOMAIN      748    942       RAS-GAP.
+FT   VARIANT     398    398       R -> L (IN BASAL CELL CARCINOMAS).
+FT   VARIANT     400    400       K -> G (IN BASAL CELL CARCINOMAS).
+FT   VARIANT     401    401       I -> V (IN BASAL CELL CARCINOMAS).
+SQ   SEQUENCE   1047 AA;  116403 MW;  5700778 CN;
+     MMAAEAGSEE GGPVTAGAGG GGAAAGSSAY PAVCRVKIPA ALPVAAAPYP GLVETGVAGT
+     LGGGAALGSE FLGAGSVAGA LGGAGLTGGG TAAGVAGAAA GVAGAAVAGP SGDMALTKLP
+     TSLLAETLGP GGGFPPLPPP PYLPPLGAGL GTVDEGDSLD GPEYEEEEVA IPLTAPPTNQ
+     WYHGKLDRTI AEERLRQAGK SGSYLIRESD RRPGSFVLSF LSQMNVVNHF RIIAMCGDYY
+     IGGRRFSSLS DLIGYYSHVS CLLKGEKLLY PVAPPEPVED RRRVRAILPY TKVPDTDEIS
+     FLKGDMFIVH NELEDGWMWV TNLRTDEQGL IVEDLVEEVG REEDPHEGKI WFHGKISKQE
+     AYNLLMTVGQ VCSFLVRPSD NTPGDYSLYF RTNENIQRFK ICPTPNNQFM MGGRYYNSIG
+     DIIDHYRKEQ IVEGYYLKEP VPMQDQEQVL NDTVDGKEIY NTIRRKTKDA FYKNIVKKGY
+     LLKKGKGKRW KNLYFILEGS DAQLIYFESE KRATKPKGLI DLSVCSVYVV HDSLFGRPNC
+     FQIVVQHFSE EHYIFYFAGE TPEQAEDWMK GLQAFCNLRK SSPGTSNKRL RQVSSLVLHI
+     EEAHKLPVKH FTNPYCNIYL NSVQVAKTHA REGQNPVWSE EFVFDDLPPD INRFEITLSN
+     KTKKSKDPDI LFMRCQLSRL QKGHATDEWF LLSSHIPLKG IEPGSLRVRA RYSMEKIMPE
+     EEYSEFKELI LQKELHVVYA LSHVCGQDRT LLASILLRIF LHEKLESLLL CTLNDREISM
+     EDEATTLFRA TTLASTLMEQ YMKATATQFV HHALKDSILK IMESKQSCEL SPSKLEKNED
+     VNTNLTHLLN ILSELVEKIF MASEILPPTL RYIYGCLQKS VQHKWPTNTT MRTRVVSGFV
+     FLRLICPAIL NPRMFNIISD SPSPIAARTL ILVAKSVQNL ANLVEFGAKE PYMEGVNPFI
+     KSNKHRMIMF LDELGNVPEL PDTTEHSRTD LSRDLAALHE ICVAHSDELR TLSNERGAQQ
+     HVLKKLLAIT ELLQQKQNQY TKTNDVR
+//
diff --git a/MYSA_HUMAN b/MYSA_HUMAN
new file mode 100644
index 0000000..f9de4fd
--- /dev/null
+++ b/MYSA_HUMAN
@@ -0,0 +1,99 @@
+ID   MYSA_HUMAN     STANDARD;      PRT;  1939 AA.
+AC   P13533;
+DT   01-JAN-1990 (REL. 13, CREATED)
+DT   01-JUN-1994 (REL. 29, LAST SEQUENCE UPDATE)
+DT   01-JUN-1994 (REL. 29, LAST ANNOTATION UPDATE)
+DE   MYOSIN HEAVY CHAIN, CARDIAC MUSCLE ALPHA ISOFORM.
+GN   MYH6 OR MYHCA.
+OS   HOMO SAPIENS (HUMAN).
+OC   EUKARYOTA; METAZOA; CHORDATA; VERTEBRATA; TETRAPODA; MAMMALIA;
+OC   EUTHERIA; PRIMATES.
+RN   [1]
+RP   SEQUENCE FROM N.A.
+RX   MEDLINE; 92133665.
+RA   MATSUOKA R., BEISEL K.W., FURUTANI M., ARAI S., TAKAO A.;
+RL   AM. J. MED. GENET. 41:537-547(1991).
+RN   [2]
+RP   SEQUENCE OF 1407-1939 FROM N.A.
+RX   MEDLINE; 88299163.
+RA   KURABAYASHI M., TSUCHIMOCHI H., KOMURO I., TAKAKU F., YAZAKI Y.;
+RL   J. CLIN. INVEST. 82:524-531(1988).
+CC   -!- FUNCTION: MUSCLE CONTRACTION.
+CC   -!- SUBUNIT: MUSCLE MYOSIN IS A HEXAMERIC PROTEIN THAT CONSISTS OF 2
+CC       HEAVY CHAIN SUBUNITS (MHC), 2 ALKALI LIGHT CHAIN SUBUNITS (MLC)
+CC       AND 2 REGULATORY LIGHT CHAIN SUBUNITS (MLC-2).
+CC   -!- SUBCELLULAR LOCATION: THICK FILAMENTS OF THE MYOFIBRILS.
+CC   -!- DOMAIN: THE RODLIKE TAIL SEQUENCE IS HIGHLY REPETITIVE, SHOWING
+CC       CYCLES OF A 28-RESIDUE REPEAT PATTERN COMPOSED OF 4 HEPTAPEPTIDES,
+CC       CHARACTERISTIC FOR ALPHA-HELICAL COILED COILS.
+CC   -!- PTM: TWO CYSTEINE RESIDUES IN THE S1 DOMAIN ARE SELECTIVELY
+CC       ALKYLATED AND ARE REQUIRED FOR MYOSIN ATPASE ACTIVITY.
+CC   -!- EACH MYOSIN HEAVY CHAIN CAN BE SPLIT INTO 1 LIGHT MEROMYOSIN (LMM)
+CC       AND 1 HEAVY MEROMYOSIN (HMM). IT CAN LATTER BE SPLIT FURTHER INTO
+CC       2 GLOBULAR SUBFRAGMENTS (S1) AND 1 ROD-SHAPED SUBFRAGMENT (S2).
+CC   -!- THE CARDIAC ALPHA ISOFORM IS A 'FAST' ATPASE MYOSIN, WHILE THE
+CC       BETA ISOFORM IS A 'SLOW' ATPASE.
+CC   -!- SIMILARITY: THE PERIODICITIES OF HYDROPHOBIC AND CHARGED RESIDUES,
+CC       WHICH DICTATE THE ALPHA-HELICAL COILED-COIL STRUCTURE ARE
+CC       CONSERVED.
+DR   EMBL; D00943; G219524; -.
+DR   EMBL; M21664; G386972; -.
+DR   PIR; A46762; A46762.
+DR   PIR; A28908; A28908.
+DR   HSSP; P24733; 1SCM.
+DR   MIM; 160710; -.
+KW   MYOSIN; MUSCLE PROTEIN; COILED COIL; THICK FILAMENT; ACTIN-BINDING;
+KW   ATP-BINDING; METHYLATION; ALKYLATION; HEPTAD REPEAT PATTERN;
+KW   MULTIGENE FAMILY.
+FT   DOMAIN        1    840       GLOBULAR HEAD (S1).
+FT   DOMAIN      841   1939       RODLIKE TAIL (S2 AND LMM DOMAINS).
+FT   NP_BIND     178    185       ATP.
+FT   DOMAIN      657    679       ACTIN-BINDING.
+FT   DOMAIN      759    773       ACTIN-BINDING.
+FT   MOD_RES     129    129       METHYLATION (TRI-) (POTENTIAL).
+FT   MOD_RES     697    697       ALKYLATION (SH-1) (POTENTIAL).
+FT   MOD_RES     707    707       ALKYLATION (SH-2) (POTENTIAL).
+FT   CONFLICT   1533   1533       K -> N (IN REF. 2).
+FT   CONFLICT   1540   1540       L -> M (IN REF. 2).
+FT   CONFLICT   1577   1578       KL -> NV (IN REF. 2).
+FT   CONFLICT   1705   1706       DR -> EQ (IN REF. 2).
+FT   CONFLICT   1763   1763       H -> D (IN REF. 2).
+FT   CONFLICT   1871   1871       D -> N (IN REF. 2).
+FT   CONFLICT   1882   1882       R -> G (IN REF. 2).
+FT   CONFLICT   1890   1890       Q -> R (IN REF. 2).
+FT   CONFLICT   1933   1933       MISSING (IN REF. 2).
+SQ   SEQUENCE   1939 AA;  223552 MW;  40812E5A CRC32;
+     MTDAQMADFG AAAQYLRKSE KERLEAQTRP FDIRTECFVP DDKEEFVKAK ILSREGGKVI
+     AETENGKTVT VKEDQVLQQN PPKFDKIEDM AMLTFLHEPA VLFNLKERYA AWMIYTYSGL
+     FCVTVNPYKW LPVYNAEVVA AYRGKKRSEA PPHIFSISDN AYQYMLTDRE NQSILITGES
+     GAGKTVNTKR VIQYFASIAA IGDRGKKDNA NANKGTLEDQ IIQANPALEA FGNAKTVRND
+     NSSRFGKFIR IHFGATGKLA SADIETYLLE KSRVIFQLKA ERNYHIFYQI LSNKKPELLD
+     MLLVTNNPYD YAFVSQGEVS VASIDDSEEL MATDSAFDVL GFTSEEKAGV YKLTGAIMHY
+     GNMKFKQKQR EEQAEPDGTE DADKSAYLMG LNSADLLKGL CHPRVKVGNE YVTKGQSVQQ
+     VYYSIGALAK AVYEKMFNWM VTRINATLET KQPRQYFIGV LDIAGFEIFD FNSFEQLCIN
+     FTNEKLQQFF NHHMFVLEQE EYKKEGIEWT FIDFGMDLQA CIDLIEKPMG IMSILEEECM
+     FPKATDMTFK AKLYDNHLGK SNNFQKPRNI KGKPEAHFSL IHYAGTVDYN ILGWLEKNKD
+     PLNETVVGLY QKSSLKLMAT LFSSYATADT GDSGKSKGGK KKGSSFQTVS ALHRENLNKL
+     MTNLRTTHPH FVRCIIPNER KAPGVMDNPL VMHQLRCNGV LEGIRICRKG FPNRILYGDF
+     RQRYRILNPV AIPEGQFIDS RKGAEKLLSS LDIDHNQYKF GHTKVFFKAG LLGLLEEMRD
+     ERLSRIITRI QAQARGQLMR IEFKKIVERR DALLVIQWNI RAFMGVKNWP WMKLYFKIKP
+     LLKSAETEKE MATMKEEFGR IKETLEKSEA RRKELEEKMV SLLQEKNDLQ LQVQAEQDNL
+     NDAEERCDQL IKNKIQLEAK VKEMNERLED EEEMNAELTA KKRKLEDECS ELKKDIDDLE
+     LTLAKVEKEK HATENKVKNL TEEMAGLDEI IAKLTKEKKA LQEAHQQALD DLQAEEDKVN
+     TLSKSKVKLE QQVDDLEGSL EQEKKVRMDL ERAKRKLEGD LKLTQESIMD LENDKLQLEE
+     KLKKKEFDIN QQNSKIEDEQ VLALQLQKKL KENQARIEEL EEELEAERTA RAKVEKLRSD
+     LSRELEEISE RLEEAGGATS VQIEMNKKRE AEFQKMRRDL EEATLQHEAT AAALRKKHAD
+     SVAELGEQID NLQRVKQKLE KEKSEFKLEL DDVTSNMEQI IKAKANLEKV SRTLEDQANE
+     YRVKLEEAQR SLNDFTTQRA KLQTENGELS RQLEEKEALI SQLTRGKLSY TQQMEDLKRQ
+     LEEEGKAKNA LAHALQSARH DCDLLREQYE EETEAKAELQ RVLSKANSEV AQCRTKYETD
+     AIQRTEELEE AKKKLAQRLQ DAEEAVEAVN AKCSSLEKTK HRLQNEIEDL MVDVERSNAA
+     AAALDKKQRN FDKILAEWKQ KYEESQSELE SSQKEARSLS TELFKLKNAY EESLEHLETF
+     KRENKNLQEE ISDLTEQLGE GGKNVHELEK VRKQLEVEKL ELQSALEEAE ASLEHEEGKI
+     LRAQLEFNQI KAEIERKLAE KDEEMEQAKR NHQRVVDSLQ TSLDAETRSR NEVLRVKKKM
+     EGDLNEMEIQ LSHANRMAAE AQKQVKSLQS LLKDTQIQLD DAVRANDDLK ENIAIVERRN
+     NLLQAELEEL RAVVEQTERS RKLADRELIE TSERVQLLHS QNTSLINQKK KMDADLSQLQ
+     SEVEEAVQEC RNAEEKAKKA ITHAAMMAEE LKKEQDTSAH LERMKKNMEQ TIKDLQHRLD
+     EAEQIALKGG KKQLQKLEAR VRELEGELEA EQKRNAESVK GMRKSERRIK ELTYQTEEDK
+     KNLLRLQDLV DKLQLKVKAY KRQAEEAEEQ ANTNLSKFRK VQHELDEAEE RADIAESQVN
+     KLRAKSRDIG AKQKMHDEE
+//
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..45b8b2b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,112 @@
+# M A K E F I L E   F O R   P F T O O L S  R E L E A S E  2.3
+#----------------------------------------------------------------------#
+# $Id: Makefile,v 2.16 2003/11/28 11:54:37 vflegel Exp $
+#----------------------------------------------------------------------#
+
+PROGS = gtop pfmake pfscan pfw ptoh htop \
+        pfscale pfsearch psa2msa 2ft 6ft ptof
+MANS =  gtop.1 pfmake.1 pfscan.1 pfw.1 ptoh.1 htop.1 pfscale.1 \
+        pfsearch.1 psa2msa.1 2ft.1 6ft.1 ptof.1 psa.5 xpsa.5
+
+F77   = gfortran
+CC    = gcc
+#FFLAGS= -O2 -init-local-zero -fno-automatic io.o
+#FFLAGS= -O2 -finit-local-zero -fno-automatic io.o
+FFLAGS= -O2 -fno-automatic io.o
+#PRFLAG= -g -pg
+
+
+# For MAC OX X SnowLeopard we need to specify the 32bit architecture for gcc
+#CFLAGS= -m32
+# otherwise keep it empty
+CFLAGS=
+
+
+#----------------------------------------------------------------------#
+# Location of package installation directory
+#
+PKGDIR = /usr/share/pftools23
+#----------------------------------------------------------------------#
+#
+# Compilation with native fortran compilers (f77)
+#
+#F77  = f77
+#CC   = cc
+#
+# sunos / solaris
+#FFLAGS= -cg89 -O4
+#
+# HP-UX 
+#FFLAGS= +O4 +E4 +E6 +U77 -K
+#
+# IRIX 
+#FFLAGS= -O2 -static
+#
+# AIX 3.2.5
+#FFLAGS= -qcharlen=1024  -O3
+#
+# Tru64 UNIX V5.1A
+#FFLAGS= -noautomatic -fast -g0
+#----------------------------------------------------------------------#
+
+all  :  io.o $(PROGS)
+
+install: $(PROGS)
+	./install_pftools.sh $(PKGDIR)
+
+clean:
+	rm $(PROGS) io.o
+
+io.o :  io.c 
+	$(CC) -c io.c -o io.o $(CFLAGS) $(PRFLAG)
+
+gtop :  gtop.f io.o psdat.f gsdat.f djdat.f nodat.f codat.f pfdat.f dfdat.f \
+        sterr.f cvini.f lblnk.f regpr.f wrprf.f sterr.f ardim.f
+	$(F77) $(FFLAGS) gtop.f -o gtop $(PRFLAG)
+
+htop :  htop.f codat.f cvini.f dfdat.f djdat.f gsdat.f lblnk.f nodat.f \
+        pfdat.f pfind.f psdat.f rhmmer.f rhmmer2.f rhnul.f sterr.f wrprf.f recmd.f ardim.f
+	$(F77) $(FFLAGS) htop.f -o htop $(PRFLAG)
+
+pfsearch : pfsearch.f gsdat.f djdat.f nodat.f codat.f pfdat.f dfdat.f pxdat.f \
+        avdat.f sterr.f cvini.f reprf.f reseq.f rfseq.f xali1.f xalip.f \
+        RtoN.f NtoR.f CFAve.f CPAve.f wprsm.f xprsm.f xalit.f lblnk.f prali.f sterr.f \
+        pmali.f ardim.f prsp.f prxp.f Xblnk.f jprsm.f
+	$(F77) $(FFLAGS) pfsearch.f -o pfsearch $(PRFLAG)
+
+pfscan : pfscan.f psdat.f gsdat.f djdat.f nodat.f codat.f pfdat.f dfdat.f \
+        pxdat.f avdat.f sterr.f cvini.f abini.f reprf.f reseq.f rfseq.f \
+        xali1.f xalip.f RtoN.f NtoR.f CFAve.f CPAve.f wprsm.f  xprsm.f xalit.f lblnk.f \
+        prali.f ardim.f prsp.f prxp.f Xblnk.f
+	$(F77) $(FFLAGS) pfscan.f -o pfscan $(PRFLAG)
+
+psa2msa : psa2msa.f ardim.f io.o sterr.f lblnk.f   
+	$(F77) $(FFLAGS) psa2msa.f -o psa2msa $(PRFLAG)
+
+pfmake : pfmake.f psdat.f gsdat.f djdat.f nodat.f codat.f pfdat.f dfdat.f \
+        sterr.f cvini.f remsf.f wrprf.f lblnk.f remsf.f wrprf.f lblnk.f recmd.f \
+        remsa.f Xblnk.f
+	$(F77) $(FFLAGS) pfmake.f -o pfmake  $(PRFLAG)
+
+ptoh :  ptoh.f psdat.f gsdat.f djdat.f nodat.f codat.f pfdat.f dfdat.f sterr.f \
+        hmdat.f cvini.f reprf.f rhnul.f wrsam.f wrhmr.f schmm.f dfnul.f lblnk.f \
+        ardim.f Xblnk.f
+	$(F77) $(FFLAGS) ptoh.f -o ptoh $(PRFLAG)
+
+pfw :   pfw.f sterr.f remsf.f lblnk.f remsa.f
+	$(F77) $(FFLAGS) pfw.f -o pfw  $(PRFLAG)
+
+pfscale : pfscale.f sterr.f recmd.f ardim.f psdat.f gsdat.f djdat.f nodat.f codat.f \
+          pfdat.f dfdat.f sterr.f cvini.f reprf.f wrprf.f recmd.f NtoR.f lblnk.f ardim.f \
+          Xblnk.f
+	$(F77) $(FFLAGS) pfscale.f -o pfscale 
+
+2ft :   2ft.f lblnk.f ardim.f sterr.f
+	$(F77) $(FFLAGS) 2ft.f -o 2ft  $(PRFLAG)
+
+6ft :   6ft.f lblnk.f ardim.f sterr.f
+	$(F77) $(FFLAGS) 6ft.f -o 6ft $(PRFLAG)
+
+ptof :  ptof.f codat.f cvini.f dfdat.f djdat.f gsdat.f lblnk.f nodat.f pfdat.f \
+        psdat.f reprf.f sterr.f wrprf.f recmd.f ardim.f Xblnk.f
+	$(F77) $(FFLAGS) ptof.f -o ptof $(PRFLAG)
diff --git a/NtoR.f b/NtoR.f
new file mode 100644
index 0000000..4a8e1cb
--- /dev/null
+++ b/NtoR.f
@@ -0,0 +1,23 @@
+*----------------------------------------------------------------------*     
+* $Id: NtoR.f,v 2.5 2003/02/05 14:24:42 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine NtoR(R,N,RNOP,KNPM,MAXN,INOR,IFUN,LSEQ,RAVE)
+
+      Real              RNOP(KNPM,MAXN)
+      Integer           BSEQ
+
+      If     (IFUN.EQ.1) then 
+         X=(R-RNOP(1,INOR)) / RNOP(2,INOR) 
+      Else if(IFUN.EQ.2) then 
+         X=( RNOP(1,INOR)*(1.0-EXP(RNOP(2,INOR)*LSEQ-RNOP(3,INOR) )))
+     *      *( RNOP(5,INOR) * R + RNOP(4,INOR) )
+      Else if(IFUN.EQ.3) then 
+         X=( RNOP(1,INOR)*(1.0-EXP(RNOP(2,INOR)*LSEQ-RNOP(3,INOR) )))
+     *      *( RNOP(5,INOR) * R + RNOP(4,INOR) ) + RAVE
+      End if 
+      N=INT(X)
+      If(Real(N).LT.X) N=N+1
+      Return
+      End 
diff --git a/R76849.seq b/R76849.seq
new file mode 100644
index 0000000..b20ff75
--- /dev/null
+++ b/R76849.seq
@@ -0,0 +1,9 @@
+>gi|851481|gb|R76849|R76849 yi63d09.r1 Homo sapiens cDNA clone 143921 5' similar to gb:M23379 GTPASE-ACTIVATING PROTEIN (HUMAN);.
+NCGANAATAAAGTGAATAATCGCCAGGAGTATTATCTGAGGGCCTCACAAGAAAACTGCAGACTTGACCA
+ACTGTCATTAGTAAATTATAAGCTTCCTGTTTGGAAATCTTCCCATGGAACCATATTTTTCCTTCATGTG
+GATCTTCTTCCCGGCCCACCTCTTCTACTAGGTCTTCAACAATAAGGCCTTGTTCATCTGTTCTTAAATT
+TGTAACCCACATCCATCCATCTTCTAATTCATTATGAACAATGAACATATCTCCTTTTAAGGAAACTTAT
+TTCATCAGTGTCTGGGTACTTTTGTGTAAGGGTAGGAATAGGCTTCGTACACGCCTTCTATTCTTCTACT
+GGCTCNGGGTGGGTGCAANTGGGGTAAAGTAATTTTTTCTCCNTTTAAGGGCAAACAAGGGAACAGGANT
+GTTANTAACCNCATTGGGGNTCGGACAGTGGAGGGAAAACGGTTTTTCCACCCATGTAGGGNAATCTTCC
+ACACNGGGG
diff --git a/README b/README
new file mode 100644
index 0000000..09ed5ea
--- /dev/null
+++ b/README
@@ -0,0 +1,219 @@
+*-----------------------------------------------------------------------------*
+* $Id: README,v 2.4 2003/11/19 11:56:10 vflegel Exp $
+*-----------------------------------------------------------------------------*
+*
+* README - Description of 'pftools' release 2.3 package and files.
+*          Package install instructions.
+*
+* Author:
+*    Philipp Bucher
+*
+* Maintainer:
+*    Volker Flegel
+*
+*-----------------------------------------------------------------------------*
+*
+* Contact and bug reports:
+*    pftools at isb-sib.ch
+*
+*-----------------------------------------------------------------------------*
+*
+* Copyright:
+*    (c) 2003 Swiss Institute of Bioinformatics
+*
+*-----------------------------------------------------------------------------*
+*-----------------------------------------------------------------------------*
+
+Contents:
+
+ - Package description
+   . Profile format
+   . Programs and manual pages
+   . Compilation issues
+
+ - Installation
+   . Compiling
+   . Installing
+
+ - File list
+
+ - Testing
+
+ - Contact
+
+*-----------------------------------------------------------------------------*
+
+Package description:
+-------------------
+The 'pftools' package is a collection of experimental programs supporting the
+generalized profile format and search method of PROSITE.
+A description of the generalized profile format is given in the file:
+
+   profile.txt
+
+The official web site for the 'pftools' package can be found under:
+
+   http://www.isrec.isb-sib.ch/pftools
+
+Further information on PROSITE specific applications of the 'pftools' programs
+can be found at the following URL:
+
+   http://www.expasy.org/prosite/
+
+Release 2.3 contains FORTRAN 77 source code and manual pages for the following
+programs:
+
+   pfsearch
+   pfscan
+   psa2msa
+   gtop  
+   htop
+   ptoh
+   pfmake
+   pfw
+   pfscale 
+   ptof
+   6ft
+   2ft
+
+Some supplementary manual pages describing the 'psa' and 'xpsa' file formats
+have also been included.
+
+These programs have successfully been compiled and tested under Solaris,
+IRIX64, HP-UX, Tru64 and Linux operating systems, using the GNU g77 or f77
+compilers. 
+
+For compilation with native f77 compilers, the Makefile needs to be modified
+according to instructions given therein.  
+
+For use under HP-UX, the file 'sterr.f' should also be modified according to
+instructions given therein. 
+
+The buffer sizes in release 2.3 of the 'pftools' have been significantly
+increased to handle large sequences and profiles. Therefore it might be 
+necessary to reduce the buffer sizes in order to run the programs on machines
+with less RAM. This can be achieved by modifying the file 'ardim.f' according
+to instructions given therein. 
+
+The "Integer*2" declarations may cause problems with early versions
+of the g77 compiler; solution: replace "Integer*2" by "Integer". 
+
+*-----------------------------------------------------------------------------*
+
+Installation:
+------------
+The compressed 'tar' archive can be extracted to the current directory using
+the following command:
+
+   tar -xzvf pftools_23.tar.gz
+
+This will create a directory containing the source and package files.
+
+In order to compile the programs on Unix like systems with a FORTRAN 77
+compiler, change into the source directory and simply type:
+
+   make all
+
+This will create the 12 binaries listed above. To install the binaries and the
+corresponding manual pages, an installation script has been provided. It can
+be invoked using:
+
+   make install
+
+The installation script will ask the user the destination directory for the
+'pftools' package. This directory will contain all the supplementary files,
+as well as a 'bin' directory for the executable programs. The installer will
+then create symbolic links to the binary programs in a directory specified by
+the user. This directory should be included in the users 'PATH' variable for
+him to be able to execute the 'pftools' programs.
+In a last step, the installer will link the man pages in the system wide man
+page location, this location can also be specified by the user.
+After successful installation, the build directory can safely be deleted.
+
+Note that you should have write permissions on the destination directories
+specified during installation. For system wide installation you may need root
+privileges, if necessary contact your system administrator.
+
+
+*-----------------------------------------------------------------------------*
+
+File list:
+---------
+Further included in this release are the following demo data files:
+
+   CVPBR322
+   sh3.seq 
+   GTPA_HUMAN
+   sh3.msf
+   ecp.prf
+   sh3.gpr
+   sh3.prf 
+   pfam_sh3.hmm
+   prosite13.prf
+   standard.random
+   blosum45.cmp
+   score.lis
+   coils.prf
+   MYSA_HUMAN
+   R76849.seq
+
+plus the following additional substution matrices in old GCG format: 
+
+   blosum30.cmp
+   blosum50.cmp
+   blosum62.cmp
+   blosum65.cmp
+   blosum80.cmp
+   blosum100.cmp
+   gonnet.cmp
+   pam30.cmp
+   pam40.cmp
+   pam80.cmp
+   pam120.cmp
+   pam160.cmp
+   pam200.cmp
+   pam220.cmp
+   pam250.cmp
+   pam400.cmp
+
+*-----------------------------------------------------------------------------*
+
+Testing:
+-------
+A test script is provided. It will simply execute all the 'pftools' binaries
+with some example files. The test script 'test.sh' should be executed in
+the same directory as the binaries and the demo files. An example test
+output file 'test.out' is provided as a reference.
+To test the programs, type: 
+
+   ./test.sh > out 
+   diff test.out out 
+
+Some rounding or formatting variation may occur with real number
+editing. With g77 there will be lots of small integer rounding
+differences in the result of test 7.  
+
+Note that the file pfam_sh3.hmm contains a hidden Markov model from the
+PFAM A collection release 4.0 (see http://www.sanger.ac.uk/Pfam).
+
+
+*-----------------------------------------------------------------------------*
+
+Contact:
+-------
+Please send bug reports to:
+
+   pftools at isb-sib.ch
+
+The pftools package was originaly developped by Philipp Bucher and is
+currently maintained by Volker Flegel at the:
+
+Swiss Institute of Bioinformatics (Epalinges office)
+chemin des Boveresses 155
+1066 Epalinges
+Switzerland 
+
+http://www.isb-sib.ch
+
+*-----------------------------------------------------------------------------*
+*-----------------------------------------------------------------------------*
diff --git a/RtoN.f b/RtoN.f
new file mode 100644
index 0000000..71480e2
--- /dev/null
+++ b/RtoN.f
@@ -0,0 +1,22 @@
+*----------------------------------------------------------------------*     
+* $Id: RtoN.f,v 2.4 2003/04/10 11:58:37 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine RtoN(N,R,RNOP,KNPM,MAXN,INOR,IFUN,LSEQ,RAVE)
+
+      Real              RNOP(KNPM,MAXN)
+
+      If     (IFUN.EQ.1) then 
+         R=RNOP(1,INOR)+RNOP(2,INOR)*Real(N)
+      Else if(IFUN.EQ.2) then 
+         R=( Real(N) /
+     *      ( RNOP(1,INOR)*(1.0-EXP(RNOP(2,INOR)*LSEQ-RNOP(3,INOR) )))
+     *      - RNOP(4,INOR) ) / RNOP(5,INOR)
+      Else if(IFUN.EQ.3) then 
+         R=( (N-RAVE) /
+     *      ( RNOP(1,INOR)*(1.0-EXP(RNOP(2,INOR)*LSEQ-RNOP(3,INOR) )))
+     *      - RNOP(4,INOR) ) / RNOP(5,INOR)
+      End if 
+      Return
+      End
diff --git a/Xblnk.f b/Xblnk.f
new file mode 100644
index 0000000..37adbab
--- /dev/null
+++ b/Xblnk.f
@@ -0,0 +1,24 @@
+*----------------------------------------------------------------------*     
+* $Id: Xblnk.f,v 1.3 2003/11/28 11:56:08 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Integer Function  Xblnk(STRING,LIMIT) 
+      Character*(*)     STRING
+      Integer           LIMIT
+
+      L=Len(STRING)
+      Xblnk=0
+      J1=0
+
+      Do I1=1,L
+         If(STRING(I1:I1).EQ.' ') then
+            J1=J1+1
+         Else
+            J1=0
+         End if
+         Xblnk=I1-J1
+         If(J1.GE.LIMIT) return
+      End do 
+      Return
+      End
diff --git a/abini.f b/abini.f
new file mode 100644
index 0000000..351523b
--- /dev/null
+++ b/abini.f
@@ -0,0 +1,37 @@
+*----------------------------------------------------------------------*     
+* $Id: abini.f,v 2.4 2003/04/10 11:58:37 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* ALPHABET 
+      
+      Data              NABC/26/ 
+      
+      Data              CABC( 0)/'-'/ 
+      Data              CABC( 1)/'A'/ 
+      Data              CABC( 2)/'B'/ 
+      Data              CABC( 3)/'C'/ 
+      Data              CABC( 4)/'D'/ 
+      Data              CABC( 5)/'E'/ 
+      Data              CABC( 6)/'F'/ 
+      Data              CABC( 7)/'G'/ 
+      Data              CABC( 8)/'H'/ 
+      Data              CABC( 9)/'I'/ 
+      Data              CABC(10)/'J'/ 
+      Data              CABC(11)/'K'/ 
+      Data              CABC(12)/'L'/ 
+      Data              CABC(13)/'M'/ 
+      Data              CABC(14)/'N'/ 
+      Data              CABC(15)/'O'/ 
+      Data              CABC(16)/'P'/ 
+      Data              CABC(17)/'Q'/ 
+      Data              CABC(18)/'R'/ 
+      Data              CABC(19)/'S'/ 
+      Data              CABC(20)/'T'/ 
+      Data              CABC(21)/'U'/ 
+      Data              CABC(22)/'V'/ 
+      Data              CABC(23)/'W'/ 
+      Data              CABC(24)/'X'/ 
+      Data              CABC(25)/'Y'/ 
+      Data              CABC(26)/'Z'/ 
+      
diff --git a/ardim.f b/ardim.f
new file mode 100644
index 0000000..0ebbb42
--- /dev/null
+++ b/ardim.f
@@ -0,0 +1,51 @@
+*----------------------------------------------------------------------*     
+* $Id: ardim.f,v 2.7 2003/03/21 15:55:44 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      
+* Note: for use on machines with less than 32 MB RAM, replace the actual 
+*       array Parameter instructions by commented Parameter instructions 
+*       or modify the array size definitions manually. 
+      
+* max. profile length  
+      
+      Parameter        (IDMP=19999)
+C     Parameter        (IDMP= 9999)
+C     Parameter        (IDMP= 2499)
+      
+* max. sequence length 
+      
+      Parameter        (IDMS=10000000)
+C     Parameter        (IDMS= 1000000)
+C     Parameter        (IDMS=  250000)
+      
+* max. number of matches per sequence
+      
+      Parameter        (IDMN=4000) 
+C     Parameter        (IDMN=2000) 
+C     Parameter        (IDMN= 500) 
+
+* max. alignment length 
+
+      Parameter        (IDMA=40000)
+C     Parameter        (IDMA=20000)
+C     Parameter        (IDMA= 5000)
+
+* max. path matrix surface
+
+      Parameter        (IDMM=40000000)
+C     Parameter        (IDMM= 4000000)
+C     Parameter        (IDMM= 1000000)
+
+* max. repeats per circular profile match
+
+      Parameter        (IDML=512)
+
+* max. nb of sequences in MSF files
+
+      Parameter        (IDMF=2048)
+
+* max. nb of scores in score list
+
+      Parameter        (IDMC=262144)
diff --git a/avdat.f b/avdat.f
new file mode 100644
index 0000000..2d88d65
--- /dev/null
+++ b/avdat.f
@@ -0,0 +1,10 @@
+*----------------------------------------------------------------------*     
+* $Id: avdat.f,v 2.4 2003/04/10 11:58:37 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* AVERAGE SCORE  
+      
+      Real              FAVE(0:26)
+      Real              PAVE(0:26)
+      
diff --git a/blosum100.cmp b/blosum100.cmp
new file mode 100644
index 0000000..757bfc2
--- /dev/null
+++ b/blosum100.cmp
@@ -0,0 +1,36 @@
+#  Matrix made by matblas from blosum100_3.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 100
+#  Entropy =   1.4516, Expected =  -1.0948
+# 
+#  mean= -3.1363 , stdev=  8.7004
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 8.0 -4.0 -2.0 -5.0 -3.0  -5.0 -1.0 -4.0 -4.0 -2.0  -4.0 -3.0 -4.0 -2.0 -2.0  -3.0  1.0 -1.0 -2.0 -6.0  -5.0 -2.0 A
+      6.0 -7.0  6.0  0.0  -7.0 -3.0 -2.0 -8.0 -2.0  -8.0 -7.0  5.0 -5.0 -2.0  -4.0 -1.0 -2.0 -7.0 -9.0  -6.0  0.0 B
+          14.0 -8.0 -9.0  -4.0 -7.0 -8.0 -3.0 -8.0  -5.0 -4.0 -5.0 -8.0 -7.0  -8.0 -3.0 -3.0 -3.0 -7.0  -6.0 -8.0 C
+               10.0  2.0  -8.0 -4.0 -3.0 -8.0 -3.0  -8.0 -8.0  1.0 -5.0 -2.0  -5.0 -2.0 -4.0 -8.0-10.0  -7.0  0.0 D
+                    10.0  -8.0 -6.0 -2.0 -7.0  0.0  -7.0 -5.0 -2.0 -4.0  2.0  -2.0 -2.0 -3.0 -5.0 -8.0  -7.0  7.0 E
+
+                          11.0 -8.0 -4.0 -2.0 -6.0   0.0 -1.0 -7.0 -7.0 -6.0  -6.0 -5.0 -5.0 -3.0  0.0   4.0 -7.0 F
+                                9.0 -6.0 -9.0 -5.0  -8.0 -7.0 -2.0 -6.0 -5.0  -6.0 -2.0 -5.0 -8.0 -7.0  -8.0 -5.0 G
+                                    13.0 -7.0 -3.0  -6.0 -5.0  0.0 -5.0  1.0  -1.0 -3.0 -4.0 -7.0 -5.0   1.0 -1.0 H
+                                          8.0 -6.0   2.0  1.0 -7.0 -7.0 -6.0  -7.0 -5.0 -3.0  4.0 -6.0  -4.0 -7.0 I
+                                              10.0  -6.0 -4.0 -1.0 -3.0  2.0   3.0 -2.0 -3.0 -5.0 -8.0  -5.0  0.0 K
+
+                                                     8.0  3.0 -7.0 -7.0 -5.0  -6.0 -6.0 -4.0  0.0 -5.0  -4.0 -6.0 L
+                                                         12.0 -5.0 -5.0 -2.0  -4.0 -4.0 -2.0  0.0 -4.0  -5.0 -4.0 M
+                                                              11.0 -5.0 -1.0  -2.0  0.0 -1.0 -7.0 -8.0  -5.0 -2.0 N
+                                                                   12.0 -4.0  -5.0 -3.0 -4.0 -6.0 -8.0  -7.0 -4.0 P
+                                                                        11.0   0.0 -2.0 -3.0 -5.0 -5.0  -4.0  5.0 Q
+
+                                                                              10.0 -3.0 -3.0 -6.0 -7.0  -5.0 -1.0 R
+                                                                                    9.0  2.0 -4.0 -7.0  -5.0 -2.0 S
+                                                                                         9.0 -1.0 -7.0  -5.0 -3.0 T
+                                                                                              8.0 -5.0  -5.0 -5.0 V
+                                                                                                  17.0   2.0 -7.0 W
+
+                                                                                                        12.0 -6.0 Y
+                                                                                                              6.0 Z
diff --git a/blosum30.cmp b/blosum30.cmp
new file mode 100644
index 0000000..cf0adfd
--- /dev/null
+++ b/blosum30.cmp
@@ -0,0 +1,36 @@
+#  Matrix made by matblas from blosum30.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/5 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 30
+#  Entropy =   0.1424, Expected =  -0.1074
+# 
+#  mean= -0.4962 , stdev=  2.8570
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 4.0  0.0 -3.0  0.0  0.0  -2.0  0.0 -2.0  0.0  0.0  -1.0  1.0  0.0 -1.0  1.0  -1.0  1.0  1.0  1.0 -5.0  -4.0  0.0 A
+      5.0 -2.0  5.0  0.0  -3.0  0.0 -2.0 -2.0  0.0  -1.0 -2.0  4.0 -2.0 -1.0  -2.0  0.0  0.0 -2.0 -5.0  -3.0  0.0 B
+          17.0 -3.0  1.0  -3.0 -4.0 -5.0 -2.0 -3.0   0.0 -2.0 -1.0 -3.0 -2.0  -2.0 -2.0 -2.0 -2.0 -2.0  -6.0  0.0 C
+                9.0  1.0  -5.0 -1.0 -2.0 -4.0  0.0  -1.0 -3.0  1.0 -1.0 -1.0  -1.0  0.0 -1.0 -2.0 -4.0  -1.0  0.0 D
+                     6.0  -4.0 -2.0  0.0 -3.0  2.0  -1.0 -1.0 -1.0  1.0  2.0  -1.0  0.0 -2.0 -3.0 -1.0  -2.0  5.0 E
+
+                          10.0 -3.0 -3.0  0.0 -1.0   2.0 -2.0 -1.0 -4.0 -3.0  -1.0 -1.0 -2.0  1.0  1.0   3.0 -4.0 F
+                                8.0 -3.0 -1.0 -1.0  -2.0 -2.0  0.0 -1.0 -2.0  -2.0  0.0 -2.0 -3.0  1.0  -3.0 -2.0 G
+                                    14.0 -2.0 -2.0  -1.0  2.0 -1.0  1.0  0.0  -1.0 -1.0 -2.0 -3.0 -5.0   0.0  0.0 H
+                                          6.0 -2.0   2.0  1.0  0.0 -3.0 -2.0  -3.0 -1.0  0.0  4.0 -3.0  -1.0 -3.0 I
+                                               4.0  -2.0  2.0  0.0  1.0  0.0   1.0  0.0 -1.0 -2.0 -2.0  -1.0  1.0 K
+
+                                                     4.0  2.0 -2.0 -3.0 -2.0  -2.0 -2.0  0.0  1.0 -2.0   3.0 -1.0 L
+                                                          6.0  0.0 -4.0 -1.0   0.0 -2.0  0.0  0.0 -3.0  -1.0 -1.0 M
+                                                               8.0 -3.0 -1.0  -2.0  0.0  1.0 -2.0 -7.0  -4.0 -1.0 N
+                                                                   11.0  0.0  -1.0 -1.0  0.0 -4.0 -3.0  -2.0  0.0 P
+                                                                         8.0   3.0 -1.0  0.0 -3.0 -1.0  -1.0  4.0 Q
+
+                                                                               8.0 -1.0 -3.0 -1.0  0.0   0.0  0.0 R
+                                                                                    4.0  2.0 -1.0 -3.0  -2.0 -1.0 S
+                                                                                         5.0  1.0 -5.0  -1.0 -1.0 T
+                                                                                              5.0 -3.0   1.0 -3.0 V
+                                                                                                  20.0   5.0 -1.0 W
+
+                                                                                                         9.0 -2.0 Y
+                                                                                                              4.0 Z
diff --git a/blosum45.cmp b/blosum45.cmp
new file mode 100644
index 0000000..aef241d
--- /dev/null
+++ b/blosum45.cmp
@@ -0,0 +1,36 @@
+#  Matrix made by matblas from blosum45.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 45
+#  Entropy =   0.3795, Expected =  -0.2789
+# 
+#  mean= -0.8019 , stdev=  2.5385
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 5.0 -1.0 -1.0 -2.0 -1.0  -2.0  0.0 -2.0 -1.0 -1.0  -1.0 -1.0 -1.0 -1.0 -1.0  -2.0  1.0  0.0  0.0 -2.0  -2.0 -1.0 A
+      4.0 -2.0  5.0  1.0  -3.0 -1.0  0.0 -3.0  0.0  -3.0 -2.0  4.0 -2.0  0.0  -1.0  0.0  0.0 -3.0 -4.0  -2.0  2.0 B
+          12.0 -3.0 -3.0  -2.0 -3.0 -3.0 -3.0 -3.0  -2.0 -2.0 -2.0 -4.0 -3.0  -3.0 -1.0 -1.0 -1.0 -5.0  -3.0 -3.0 C
+                7.0  2.0  -4.0 -1.0  0.0 -4.0  0.0  -3.0 -3.0  2.0 -1.0  0.0  -1.0  0.0 -1.0 -3.0 -4.0  -2.0  1.0 D
+                     6.0  -3.0 -2.0  0.0 -3.0  1.0  -2.0 -2.0  0.0  0.0  2.0   0.0  0.0 -1.0 -3.0 -3.0  -2.0  4.0 E
+
+                           8.0 -3.0 -2.0  0.0 -3.0   1.0  0.0 -2.0 -3.0 -4.0  -2.0 -2.0 -1.0  0.0  1.0   3.0 -3.0 F
+                                7.0 -2.0 -4.0 -2.0  -3.0 -2.0  0.0 -2.0 -2.0  -2.0  0.0 -2.0 -3.0 -2.0  -3.0 -2.0 G
+                                    10.0 -3.0 -1.0  -2.0  0.0  1.0 -2.0  1.0   0.0 -1.0 -2.0 -3.0 -3.0   2.0  0.0 H
+                                          5.0 -3.0   2.0  2.0 -2.0 -2.0 -2.0  -3.0 -2.0 -1.0  3.0 -2.0   0.0 -3.0 I
+                                               5.0  -3.0 -1.0  0.0 -1.0  1.0   3.0 -1.0 -1.0 -2.0 -2.0  -1.0  1.0 K
+
+                                                     5.0  2.0 -3.0 -3.0 -2.0  -2.0 -3.0 -1.0  1.0 -2.0   0.0 -2.0 L
+                                                          6.0 -2.0 -2.0  0.0  -1.0 -2.0 -1.0  1.0 -2.0   0.0 -1.0 M
+                                                               6.0 -2.0  0.0   0.0  1.0  0.0 -3.0 -4.0  -2.0  0.0 N
+                                                                    9.0 -1.0  -2.0 -1.0 -1.0 -3.0 -3.0  -3.0 -1.0 P
+                                                                         6.0   1.0  0.0 -1.0 -3.0 -2.0  -1.0  4.0 Q
+
+                                                                               7.0 -1.0 -1.0 -2.0 -2.0  -1.0  0.0 R
+                                                                                    4.0  2.0 -1.0 -4.0  -2.0  0.0 S
+                                                                                         5.0  0.0 -3.0  -1.0 -1.0 T
+                                                                                              5.0 -3.0  -1.0 -3.0 V
+                                                                                                  15.0   3.0 -2.0 W
+
+                                                                                                         8.0 -2.0 Y
+                                                                                                              4.0 Z
diff --git a/blosum50.cmp b/blosum50.cmp
new file mode 100644
index 0000000..f362c8d
--- /dev/null
+++ b/blosum50.cmp
@@ -0,0 +1,36 @@
+#  Matrix made by matblas from blosum50.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 50
+#  Entropy =   0.4808, Expected =  -0.3573
+# 
+#  mean= -1.0616 , stdev=  3.2555
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 5.0 -2.0 -1.0 -2.0 -1.0  -3.0  0.0 -2.0 -1.0 -1.0  -2.0 -1.0 -1.0 -1.0 -1.0  -2.0  1.0  0.0  0.0 -3.0  -2.0 -1.0 A
+      5.0 -3.0  5.0  1.0  -4.0 -1.0  0.0 -4.0  0.0  -4.0 -3.0  4.0 -2.0  0.0  -1.0  0.0  0.0 -4.0 -5.0  -3.0  2.0 B
+          13.0 -4.0 -3.0  -2.0 -3.0 -3.0 -2.0 -3.0  -2.0 -2.0 -2.0 -4.0 -3.0  -4.0 -1.0 -1.0 -1.0 -5.0  -3.0 -3.0 C
+                8.0  2.0  -5.0 -1.0 -1.0 -4.0 -1.0  -4.0 -4.0  2.0 -1.0  0.0  -2.0  0.0 -1.0 -4.0 -5.0  -3.0  1.0 D
+                     6.0  -3.0 -3.0  0.0 -4.0  1.0  -3.0 -2.0  0.0 -1.0  2.0   0.0 -1.0 -1.0 -3.0 -3.0  -2.0  5.0 E
+
+                           8.0 -4.0 -1.0  0.0 -4.0   1.0  0.0 -4.0 -4.0 -4.0  -3.0 -3.0 -2.0 -1.0  1.0   4.0 -4.0 F
+                                8.0 -2.0 -4.0 -2.0  -4.0 -3.0  0.0 -2.0 -2.0  -3.0  0.0 -2.0 -4.0 -3.0  -3.0 -2.0 G
+                                    10.0 -4.0  0.0  -3.0 -1.0  1.0 -2.0  1.0   0.0 -1.0 -2.0 -4.0 -3.0   2.0  0.0 H
+                                          5.0 -3.0   2.0  2.0 -3.0 -3.0 -3.0  -4.0 -3.0 -1.0  4.0 -3.0  -1.0 -3.0 I
+                                               6.0  -3.0 -2.0  0.0 -1.0  2.0   3.0  0.0 -1.0 -3.0 -3.0  -2.0  1.0 K
+
+                                                     5.0  3.0 -4.0 -4.0 -2.0  -3.0 -3.0 -1.0  1.0 -2.0  -1.0 -3.0 L
+                                                          7.0 -2.0 -3.0  0.0  -2.0 -2.0 -1.0  1.0 -1.0   0.0 -1.0 M
+                                                               7.0 -2.0  0.0  -1.0  1.0  0.0 -3.0 -4.0  -2.0  0.0 N
+                                                                   10.0 -1.0  -3.0 -1.0 -1.0 -3.0 -4.0  -3.0 -1.0 P
+                                                                         7.0   1.0  0.0 -1.0 -3.0 -1.0  -1.0  4.0 Q
+
+                                                                               7.0 -1.0 -1.0 -3.0 -3.0  -1.0  0.0 R
+                                                                                    5.0  2.0 -2.0 -4.0  -2.0  0.0 S
+                                                                                         5.0  0.0 -3.0  -2.0 -1.0 T
+                                                                                              5.0 -3.0  -1.0 -3.0 V
+                                                                                                  15.0   2.0 -2.0 W
+
+                                                                                                         8.0 -2.0 Y
+                                                                                                              5.0 Z
diff --git a/blosum62.cmp b/blosum62.cmp
new file mode 100644
index 0000000..e3d66d6
--- /dev/null
+++ b/blosum62.cmp
@@ -0,0 +1,36 @@
+#  Matrix made by matblas from blosum62.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 62
+#  Entropy =   0.6979, Expected =  -0.5209
+# 
+#  mean= -0.9490 , stdev=  2.1588
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 4.0 -2.0  0.0 -2.0 -1.0  -2.0  0.0 -2.0 -1.0 -1.0  -1.0 -1.0 -2.0 -1.0 -1.0  -1.0  1.0  0.0  0.0 -3.0  -2.0 -1.0 A
+      4.0 -3.0  4.0  1.0  -3.0 -1.0  0.0 -3.0  0.0  -4.0 -3.0  3.0 -2.0  0.0  -1.0  0.0 -1.0 -3.0 -4.0  -3.0  1.0 B
+           9.0 -3.0 -4.0  -2.0 -3.0 -3.0 -1.0 -3.0  -1.0 -1.0 -3.0 -3.0 -3.0  -3.0 -1.0 -1.0 -1.0 -2.0  -2.0 -3.0 C
+                6.0  2.0  -3.0 -1.0 -1.0 -3.0 -1.0  -4.0 -3.0  1.0 -1.0  0.0  -2.0  0.0 -1.0 -3.0 -4.0  -3.0  1.0 D
+                     5.0  -3.0 -2.0  0.0 -3.0  1.0  -3.0 -2.0  0.0 -1.0  2.0   0.0  0.0 -1.0 -2.0 -3.0  -2.0  4.0 E
+
+                           6.0 -3.0 -1.0  0.0 -3.0   0.0  0.0 -3.0 -4.0 -3.0  -3.0 -2.0 -2.0 -1.0  1.0   3.0 -3.0 F
+                                6.0 -2.0 -4.0 -2.0  -4.0 -3.0  0.0 -2.0 -2.0  -2.0  0.0 -2.0 -3.0 -2.0  -3.0 -2.0 G
+                                     8.0 -3.0 -1.0  -3.0 -2.0  1.0 -2.0  0.0   0.0 -1.0 -2.0 -3.0 -2.0   2.0  0.0 H
+                                          4.0 -3.0   2.0  1.0 -3.0 -3.0 -3.0  -3.0 -2.0 -1.0  3.0 -3.0  -1.0 -3.0 I
+                                               5.0  -2.0 -1.0  0.0 -1.0  1.0   2.0  0.0 -1.0 -2.0 -3.0  -2.0  1.0 K
+
+                                                     4.0  2.0 -3.0 -3.0 -2.0  -2.0 -2.0 -1.0  1.0 -2.0  -1.0 -3.0 L
+                                                          5.0 -2.0 -2.0  0.0  -1.0 -1.0 -1.0  1.0 -1.0  -1.0 -1.0 M
+                                                               6.0 -2.0  0.0   0.0  1.0  0.0 -3.0 -4.0  -2.0  0.0 N
+                                                                    7.0 -1.0  -2.0 -1.0 -1.0 -2.0 -4.0  -3.0 -1.0 P
+                                                                         5.0   1.0  0.0 -1.0 -2.0 -2.0  -1.0  3.0 Q
+
+                                                                               5.0 -1.0 -1.0 -3.0 -3.0  -2.0  0.0 R
+                                                                                    4.0  1.0 -2.0 -3.0  -2.0  0.0 S
+                                                                                         5.0  0.0 -2.0  -2.0 -1.0 T
+                                                                                              4.0 -3.0  -1.0 -2.0 V
+                                                                                                  11.0   2.0 -3.0 W
+
+                                                                                                         7.0 -2.0 Y
+                                                                                                              4.0 Z
diff --git a/blosum65.cmp b/blosum65.cmp
new file mode 100644
index 0000000..ab6ad58
--- /dev/null
+++ b/blosum65.cmp
@@ -0,0 +1,36 @@
+#  Matrix made by matblas from blosum65.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 65
+#  Entropy =   0.7576, Expected =  -0.5675
+# 
+#  mean= -1.0322 , stdev=  2.3266
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 4.0 -2.0  0.0 -2.0 -1.0  -2.0  0.0 -2.0 -1.0 -1.0  -2.0 -1.0 -2.0 -1.0 -1.0  -1.0  1.0  0.0  0.0 -3.0  -2.0 -1.0 A
+      4.0 -3.0  4.0  1.0  -3.0 -1.0  0.0 -3.0  0.0  -4.0 -3.0  3.0 -2.0  0.0  -1.0  0.0 -1.0 -3.0 -4.0  -3.0  1.0 B
+           9.0 -4.0 -4.0  -2.0 -3.0 -3.0 -1.0 -3.0  -1.0 -2.0 -3.0 -3.0 -3.0  -4.0 -1.0 -1.0 -1.0 -2.0  -2.0 -4.0 C
+                6.0  2.0  -4.0 -1.0 -1.0 -3.0 -1.0  -4.0 -3.0  1.0 -2.0  0.0  -2.0  0.0 -1.0 -3.0 -5.0  -3.0  1.0 D
+                     5.0  -3.0 -2.0  0.0 -3.0  1.0  -3.0 -2.0  0.0 -1.0  2.0   0.0  0.0 -1.0 -3.0 -3.0  -2.0  4.0 E
+
+                           6.0 -3.0 -1.0  0.0 -3.0   0.0  0.0 -3.0 -4.0 -3.0  -3.0 -2.0 -2.0 -1.0  1.0   3.0 -3.0 F
+                                6.0 -2.0 -4.0 -2.0  -4.0 -3.0 -1.0 -2.0 -2.0  -2.0  0.0 -2.0 -3.0 -3.0  -3.0 -2.0 G
+                                     8.0 -3.0 -1.0  -3.0 -2.0  1.0 -2.0  1.0   0.0 -1.0 -2.0 -3.0 -2.0   2.0  0.0 H
+                                          4.0 -3.0   2.0  1.0 -3.0 -3.0 -3.0  -3.0 -2.0 -1.0  3.0 -2.0  -1.0 -3.0 I
+                                               5.0  -3.0 -2.0  0.0 -1.0  1.0   2.0  0.0 -1.0 -2.0 -3.0  -2.0  1.0 K
+
+                                                     4.0  2.0 -4.0 -3.0 -2.0  -2.0 -3.0 -1.0  1.0 -2.0  -1.0 -3.0 L
+                                                          6.0 -2.0 -3.0  0.0  -2.0 -2.0 -1.0  1.0 -2.0  -1.0 -2.0 M
+                                                               6.0 -2.0  0.0   0.0  1.0  0.0 -3.0 -4.0  -2.0  0.0 N
+                                                                    8.0 -1.0  -2.0 -1.0 -1.0 -2.0 -4.0  -3.0 -1.0 P
+                                                                         6.0   1.0  0.0 -1.0 -2.0 -2.0  -2.0  3.0 Q
+
+                                                                               6.0 -1.0 -1.0 -3.0 -3.0  -2.0  0.0 R
+                                                                                    4.0  1.0 -2.0 -3.0  -2.0  0.0 S
+                                                                                         5.0  0.0 -3.0  -2.0 -1.0 T
+                                                                                              4.0 -3.0  -1.0 -2.0 V
+                                                                                                  10.0   2.0 -3.0 W
+
+                                                                                                         7.0 -2.0 Y
+                                                                                                              4.0 Z
diff --git a/blosum80.cmp b/blosum80.cmp
new file mode 100644
index 0000000..134aca9
--- /dev/null
+++ b/blosum80.cmp
@@ -0,0 +1,36 @@
+#  Matrix made by matblas from blosum80_3.iij
+#  * column uses minimum score
+#  BLOSUM Clustered Scoring Matrix in 1/3 Bit Units
+#  Blocks Database = /data/blocks_5.0/blocks.dat
+#  Cluster Percentage: >= 80
+#  Entropy =   0.9868, Expected =  -0.7442
+# 
+#  mean= -2.0860 , stdev=  6.3104
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 7.0 -3.0 -1.0 -3.0 -2.0  -4.0  0.0 -3.0 -3.0 -1.0  -3.0 -2.0 -3.0 -1.0 -2.0  -3.0  2.0  0.0 -1.0 -5.0  -4.0 -2.0 A
+      6.0 -6.0  6.0  1.0  -6.0 -2.0 -1.0 -6.0 -1.0  -7.0 -5.0  5.0 -4.0 -1.0  -2.0  0.0 -1.0 -6.0 -8.0  -5.0  0.0 B
+          13.0 -7.0 -7.0  -4.0 -6.0 -7.0 -2.0 -6.0  -3.0 -3.0 -5.0 -6.0 -5.0  -6.0 -2.0 -2.0 -2.0 -5.0  -5.0 -7.0 C
+               10.0  2.0  -6.0 -3.0 -2.0 -7.0 -2.0  -7.0 -6.0  2.0 -3.0 -1.0  -3.0 -1.0 -2.0 -6.0 -8.0  -6.0  1.0 D
+                     8.0  -6.0 -4.0  0.0 -6.0  1.0  -6.0 -4.0 -1.0 -2.0  3.0  -1.0 -1.0 -2.0 -4.0 -6.0  -5.0  6.0 E
+
+                          10.0 -6.0 -2.0 -1.0 -5.0   0.0  0.0 -6.0 -6.0 -5.0  -5.0 -4.0 -4.0 -2.0  0.0   4.0 -6.0 F
+                                9.0 -4.0 -7.0 -3.0  -7.0 -5.0 -1.0 -5.0 -4.0  -4.0 -1.0 -3.0 -6.0 -6.0  -6.0 -4.0 G
+                                    12.0 -6.0 -1.0  -5.0 -4.0  1.0 -4.0  1.0   0.0 -2.0 -3.0 -5.0 -4.0   3.0  0.0 H
+                                          7.0 -5.0   2.0  2.0 -6.0 -5.0 -5.0  -5.0 -4.0 -2.0  4.0 -5.0  -3.0 -6.0 I
+                                               8.0  -4.0 -3.0  0.0 -2.0  2.0   3.0 -1.0 -1.0 -4.0 -6.0  -4.0  1.0 K
+
+                                                     6.0  3.0 -6.0 -5.0 -4.0  -4.0 -4.0 -3.0  1.0 -4.0  -2.0 -5.0 L
+                                                          9.0 -4.0 -4.0 -1.0  -3.0 -3.0 -1.0  1.0 -3.0  -3.0 -3.0 M
+                                                               9.0 -4.0  0.0  -1.0  1.0  0.0 -5.0 -7.0  -4.0 -1.0 N
+                                                                   12.0 -3.0  -3.0 -2.0 -3.0 -4.0 -7.0  -6.0 -2.0 P
+                                                                         9.0   1.0 -1.0 -1.0 -4.0 -4.0  -3.0  5.0 Q
+
+                                                                               9.0 -2.0 -2.0 -4.0 -5.0  -4.0  0.0 R
+                                                                                    7.0  2.0 -3.0 -6.0  -3.0 -1.0 S
+                                                                                         8.0  0.0 -5.0  -3.0 -2.0 T
+                                                                                              7.0 -5.0  -3.0 -4.0 V
+                                                                                                  16.0   3.0 -5.0 W
+
+                                                                                                        11.0 -4.0 Y
+                                                                                                              6.0 Z
diff --git a/codat.f b/codat.f
new file mode 100644
index 0000000..aed4648
--- /dev/null
+++ b/codat.f
@@ -0,0 +1,18 @@
+*----------------------------------------------------------------------*     
+* $Id: codat.f,v 2.4 2003/02/19 08:38:24 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* CUT_OFF 
+      
+      Parameter        (MAXC=8)
+      
+      Integer           JCUT 
+      Integer           MCLE(MAXC)
+      Character*32      CCUT(MAXC)
+      Integer           ICUT(MAXC)
+      
+      Integer           JCNM(MAXC)
+      Real              RCUT(MAXN,MAXC)
+      Integer           MCUT(MAXN,MAXC)
+      
diff --git a/coils.prf b/coils.prf
new file mode 100644
index 0000000..2b98277
--- /dev/null
+++ b/coils.prf
@@ -0,0 +1,16 @@
+ID   COILS; MATRIX.
+AC   PS60001;
+DE   Coiled-coil region.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=7; TOPOLOGY=CIRCULAR; 
+MA   /DISJOINT: DEFINITION=PROTECT; N1=1; N2=7; 
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=0.6890; R2=0.03483765; TEXT='NScore'; 
+MA   /CUT_OFF: LEVEL=0; SCORE=153; N_SCORE=6.0; MODE=1; 
+MA   /DEFAULT: E0=0; B0=0; D=-50; I=-50; B1=0; E1=0; MI=0; MD=0; IM=0; DM=0; M0=-5; I0=-50;
+MA   /M: SY='a'; M=-2,-16,3,-13,-27,0,-4,-2,14,-7,9,10,-7,-3,-18,-7,-6,-7,6,-3,6,-16;
+MA   /M: SY='b'; M=-2,8,-6,7,4,-4,-3,-2,-7,3,-12,-6,-2,-2,2,-2,-1,-4,-4,-3,-6,1;
+MA   /M: SY='c'; M=-4,4,-2,2,0,-1,-1,-2,-6,-1,-11,-8,3,-3,2,0,0,-3,-5,-3,-6,3;
+MA   /M: SY='d'; M=7,-14,-2,-12,-22,1,-4,0,-1,-13,24,2,-17,-3,-13,-16,-5,-2,0,4,8,-14;
+MA   /M: SY='e'; M=-10,1,-5,-7,19,-4,-3,-5,-6,2,-10,-6,-2,-3,5,0,-2,0,-6,-4,-5,1;
+MA   /M: SY='f'; M=-2,1,-2,2,-3,-4,-1,-2,-6,-2,-10,-7,5,-3,1,3,-1,-3,-5,-3,-6,3;
+MA   /M: SY='g'; M=-6,1,-5,0,8,-5,-4,-4,-7,1,-9,-6,2,-3,5,1,-4,-1,-5,-4,-6,3;
+//
diff --git a/cvini.f b/cvini.f
new file mode 100644
index 0000000..b4c44e0
--- /dev/null
+++ b/cvini.f
@@ -0,0 +1,22 @@
+*----------------------------------------------------------------------*     
+* $Id: cvini.f,v 2.4 2003/02/19 08:38:24 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* CONTROLLED VOCABULARIES 
+
+* - disjointness definitions
+
+      Data              CDIS(1)/'UNIQUE          '/
+      Data              CDIS(2)/'PROTECT         '/
+      Data              JDIP(1)/0/
+      Data              JDIP(2)/2/
+
+* - normalization functios 
+
+      Data              CNOR(1)/'LINEAR          '/
+      Data              CNOR(2)/'GLE_ZSCORE      '/
+      Data              CNOR(3)/'GLE_ZSCAVE      '/
+      Data              JNOP(1)/2/
+      Data              JNOP(2)/5/
+      Data              JNOP(3)/5/
diff --git a/dfdat.f b/dfdat.f
new file mode 100644
index 0000000..b02eb60
--- /dev/null
+++ b/dfdat.f
@@ -0,0 +1,13 @@
+*----------------------------------------------------------------------*     
+* $Id: dfdat.f,v 2.4 2003/02/19 08:38:24 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* DEFAULT
+      
+      Character         CHID
+      Integer           IIPD(0:46)
+      
+      Character         CHMD
+      Integer           IMPD(0:27)  
+      
diff --git a/dfnul.f b/dfnul.f
new file mode 100644
index 0000000..75c2bc6
--- /dev/null
+++ b/dfnul.f
@@ -0,0 +1,48 @@
+*----------------------------------------------------------------------*     
+* $Id: dfnul.f,v 2.4 2003/03/26 14:40:29 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine DFNUL(FABC,P0,DABC,MABC)
+
+      Real              FABC(0:26)
+      Character*(*)     DABC
+
+      If(MABC.LT.20) then
+         MABC=4
+         DABC='ACGT'
+         Do I1=1,4
+            FABC(I1)=0.25
+         End do
+      Else
+         MABC=20
+         DABC='ACDEFGHIKLMNPQRSTVWY'
+         FABC( 1)=.08713
+         FABC( 2)=.03347
+         FABC( 3)=.04687
+         FABC( 4)=.04953
+         FABC( 5)=.03977
+         FABC( 6)=.08861
+         FABC( 7)=.03362
+         FABC( 8)=.03689
+         FABC( 9)=.08048
+         FABC(10)=.08536
+         FABC(11)=.01475
+         FABC(12)=.04043
+         FABC(13)=.05068
+         FABC(14)=.03826
+         FABC(15)=.04090
+         FABC(16)=.06958
+         FABC(17)=.05854
+         FABC(18)=.06472
+         FABC(19)=.01049
+         FABC(20)=.02992
+      End if 
+
+      If(P0.LE.0.0) P0=1.0
+      Do I1=1,MABC
+         FABC(I1)=FABC(I1)*P0
+      End do
+
+      Return
+      End
diff --git a/djdat.f b/djdat.f
new file mode 100644
index 0000000..ae8d2df
--- /dev/null
+++ b/djdat.f
@@ -0,0 +1,16 @@
+*----------------------------------------------------------------------*     
+* $Id: djdat.f,v 2.4 2003/02/19 08:38:24 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* DISJOINT 
+      
+      Parameter        (KDIS=2)
+      Parameter        (KDPM=2)
+      
+      Character*16      CDIS(KDIS)
+      Integer           JDIP(KDIS)
+      
+      Integer           MDIS 
+      Integer           NDIP(KDPM)     
+      
diff --git a/ecp.prf b/ecp.prf
new file mode 100644
index 0000000..1e3e5b5
--- /dev/null
+++ b/ecp.prf
@@ -0,0 +1,57 @@
+ID   ECOLI_PROM_RP70; MATRIX.
+AC   NS00001;
+DT   OCT-1993 (CREATED).
+DE   E. coli RNA POL sigma-70 promoter.
+CC
+CC   Note: The score for T at the 5th position of the TTGACA motif  
+CC         has been changed to 11 in order to reproduce the numbers
+CC         shown in [Mulligan et al. 1984, NAR 12:789]. The normalization
+CC         parameters were adjusted manually. 
+CC
+MA   /GENERAL_SPEC: ALPHABET='ACGT';
+MA   /DISJOINT: DEFINITION=PROTECT; N1=37; N2=42;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=-96.81; R2=0.5931;
+MA      TEXT='Homology Score';
+MA   /NORMALIZATION: MODE=2; FUNCTION=LINEAR; R1=-10.198; R2=0.06215;
+MA      TEXT='Log KBk2';
+MA   /CUT_OFF: LEVEL=2; SCORE=256; N_SCORE=55.0; MODE=1;
+MA   /CUT_OFF: LEVEL=1; SCORE=248; N_SCORE=50.0; MODE=1;
+MA   /CUT_OFF: LEVEL=0; SCORE=240; N_SCORE=45.0; MODE=1;
+MA   /DEFAULT: B0=*; B1=*; E0=*; E1=*; SY_M='*'; II=*;
+MA   /I: B0= 0; B1= 0;
+MA   /M: M= 11, 3, 3, 4;
+MA   /M: M=  8, 4, 2, 7;
+MA   /M: M=  8, 2, 4, 7;
+MA   /M: M=  7, 4, 2, 8;
+MA   /M: M=  8, 4, 4, 5;
+MA   /M: M=  7, 3, 5, 6;
+MA   /M: M=  3, 5, 5, 8;
+MA   /M: M=  5, 2, 5, 9;
+MA   /M: M=  5, 8, 5, 3;
+MA   /M: M=  0, 1, 2,17; SY='T';
+MA   /M: M=  1, 1, 1,18; SY='T';
+MA   /M: M=  0, 2,17, 2; SY='G';
+MA   /M: M= 14, 3, 1, 4; SY='A';
+MA   /M: M=  5,11, 2, 3; SY='C';
+MA   /M: M=  9, 2, 3, 7; SY='A';
+MA   /M: M=  5, 5, 3, 9;
+MA      /M:/M:/M:/M:/M:/M:/M:/M:/M:
+MA      /I: MD=0; MM=1;/I: DM=1;/I: DM=1;/I: DM=6;/I: DM=14;/I: DM=6;/I: DM=1;
+MA   /M: M=  4, 5, 2,10;
+MA   /M: M=  5, 4, 5, 6;
+MA   /M: M=  3, 5, 5, 8;
+MA   /M: M=  4, 4, 8, 5;
+MA   /M: M=  4, 5, 7, 6;
+MA   /M: M=  0, 2, 2,17; SY='T';
+MA   /M: M= 20, 0, 0, 1; SY='A';
+MA   /M: M=  5, 3, 3, 9; SY='T';
+MA   /M: M= 12, 3, 3, 3; SY='A';
+MA   /M: M= 11, 4, 3, 4; SY='A';
+MA   /M: M=  0, 1, 0,20; SY='T';
+MA   /M: M=  7, 2, 6, 6;
+MA   /M: M=  4, 7, 5, 5;
+MA   /M: M=  6, 6, 6, 4;
+MA   /I: E0=0; E1= 0;
+CC   /TAXO-RANGE=???P?;   
+CC   /SITE=10-15, -35 regions; /SITE=37-42, -10 regions; 
+//
diff --git a/gonnet.cmp b/gonnet.cmp
new file mode 100644
index 0000000..6af8e0b
--- /dev/null
+++ b/gonnet.cmp
@@ -0,0 +1,33 @@
+# PAM 250 matrix recommended by Gonnet, Cohen & Benner
+# Science June 5, 1992.
+# Values rounded to nearest integer
+# 
+#  mean= -0.6084 , stdev=  2.3180
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 2.0  0.0  0.0  0.0  0.0  -2.0  0.0 -1.0 -1.0  0.0  -1.0 -1.0  0.0  0.0  0.0  -1.0  1.0  1.0  0.0 -4.0  -2.0  0.0 A
+      3.0 -2.0  3.0  2.0  -3.0  0.0  0.0 -3.0  0.0  -3.0 -2.0  3.0 -1.0  1.0   0.0  0.0  0.0 -2.0 -4.0  -2.0  1.0 B
+          12.0 -3.0 -3.0  -1.0 -2.0 -1.0 -1.0 -3.0  -2.0 -1.0 -2.0 -3.0 -2.0  -2.0  0.0  0.0  0.0 -1.0   0.0 -2.0 C
+                5.0  3.0  -4.0  0.0  0.0 -4.0  0.0  -4.0 -3.0  2.0 -1.0  1.0   0.0  0.0  0.0 -3.0 -5.0  -3.0  2.0 D
+                     4.0  -4.0 -1.0  0.0 -3.0  1.0  -3.0 -2.0  1.0  0.0  2.0   0.0  0.0  0.0 -2.0 -4.0  -3.0  3.0 E
+
+                           7.0 -5.0  0.0  1.0 -3.0   2.0  2.0 -3.0 -4.0 -3.0  -3.0 -3.0 -2.0  0.0  4.0   5.0 -3.0 F
+                                7.0 -1.0 -4.0 -1.0  -4.0 -4.0  0.0 -2.0 -1.0  -1.0  0.0 -1.0 -3.0 -4.0  -4.0 -1.0 G
+                                     6.0 -2.0  1.0  -2.0 -1.0  1.0 -1.0  1.0   1.0  0.0  0.0 -2.0 -1.0   2.0  0.0 H
+                                          4.0 -2.0   3.0  2.0 -3.0 -3.0 -2.0  -2.0 -2.0 -1.0  3.0 -2.0  -1.0 -2.0 I
+                                               3.0  -2.0 -1.0  1.0 -1.0  2.0   3.0  0.0  0.0 -2.0 -4.0  -2.0  1.0 K
+
+                                                     4.0  3.0 -3.0 -2.0 -2.0  -2.0 -2.0 -1.0  2.0 -1.0   0.0 -2.0 L
+                                                          4.0 -2.0 -2.0 -1.0  -2.0 -1.0 -1.0  2.0 -1.0   0.0 -1.0 M
+                                                               4.0 -1.0  1.0   0.0  1.0  0.0 -2.0 -4.0  -1.0  1.0 N
+                                                                    8.0  0.0  -1.0  0.0  0.0 -2.0 -5.0  -3.0  0.0 P
+                                                                         3.0   2.0  0.0  0.0 -2.0 -3.0  -2.0  2.0 Q
+
+                                                                               5.0  0.0  0.0 -2.0 -2.0  -2.0  1.0 R
+                                                                                    2.0  2.0 -1.0 -3.0  -2.0  0.0 S
+                                                                                         2.0  0.0 -4.0  -2.0  0.0 T
+                                                                                              3.0 -3.0  -1.0 -2.0 V
+                                                                                                  14.0   4.0 -3.0 W
+
+                                                                                                         8.0 -2.0 Y
+                                                                                                              2.0 Z
diff --git a/gsdat.f b/gsdat.f
new file mode 100644
index 0000000..df899c1
--- /dev/null
+++ b/gsdat.f
@@ -0,0 +1,20 @@
+*----------------------------------------------------------------------*     
+* $Id: gsdat.f,v 2.4 2003/02/19 08:38:24 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* GEN_SPEC  
+      
+      Integer           LPRF
+      Logical           LPCI
+      
+      Integer           NABC
+      Character*01      CABC(0:26)
+      
+C     Integer           MBEG
+C     Integer           MEND
+      
+      Real*8            BLOG
+      Real              FABC(0:26)
+      Real              P0
+        
diff --git a/gtop.f b/gtop.f
new file mode 100644
index 0000000..bd627d1
--- /dev/null
+++ b/gtop.f
@@ -0,0 +1,215 @@
+*       Program gtop 
+*----------------------------------------------------------------------*     
+* $Id: gtop.f,v 2.9 2003/11/28 11:53:33 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Function: Reformats profiles: in-fmt=GRIBSKOV / out-fmt=PROSITE    
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+*
+* DATA
+*----------------------------------------------------------------------*     
+
+* array dimensions and I/O units
+      
+      Include          'ardim.f' 
+
+      Parameter        (NOUT=   6)    
+      Parameter        (NGPR=  11)    
+
+* profile and sequence fields
+
+      Character*512     FGPR
+
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'pfdat.f'
+      Include          'dfdat.f'
+      Include          'sterr.f'
+
+* command line options and parameters
+
+      Logical           LSYM
+      Logical           LLLT
+      Logical           LRNM
+
+* initialization of controlled vocabularies
+
+      Include          'cvini.f' 
+
+*----------------------------------------------------------------------*     
+* INPUT SECTION 
+*----------------------------------------------------------------------*     
+
+      IRC=0
+      FGPR='-'
+      BLOG=0.0
+      LRNM=.FALSE.
+
+* read command line
+
+      RL=NLOW
+      Call Repar
+     *   (FGPR,LSYM,LLLT,RG,RE,RF,RO,IRC)
+      If(IRC.NE.0) then
+         Write(NERR,'(/,
+     *      ''gtop 2.3 revision 5.d'',//
+     *      ''Usage: gtop [ -aslhGEFO ] gcg-profile | - '' 
+     *      ''[ parameters ]'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -a: apply asymmetric gap weighting mode.'',/
+     *      ''    -s: apply symmetric gap weighting mode (default).'',/
+     *      ''    -l: do not impose limit on line length.'',/
+     *      ''    -h: print usage help text.'',/
+     *      ''    -G<value>:'',/
+     *      ''        gap opening penalty (default: 4.5).'',/
+     *      ''    -E<value>:'',/
+     *      ''        gap extension penalty (default: 0.05).'',/
+     *      ''    -F<value>:'',/
+     *      ''        rescaling factor (default: 100).'',/
+     *      ''    -O<value>:'',/
+     *      ''        output score offset (default: 0). '',/
+     *      ''        Added to match scores after multiplication by '',
+     *      ''the rescaling factor F.'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   valid (but deprecated) parameters are:'',//,
+     *      ''    [G=gap-weigth]              use option -G instead'',/,
+     *      ''    [E=gap-extension-weight]    use option -E instead'',/,
+     *      ''    [F=output-score-multiplier] use option -F instead'',/
+     *      ''    [O=output-score-offset]     use option -O instead'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+
+* read profile
+
+      Call REGPR
+     *   (NGPR,FGPR,
+     *   RG,RE,RF,RO,LSYM,
+     *   CPID,CPAC,CPDE,NABC,CABC,LPRF,LPCI,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT, 
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   IRC)
+
+      If(IRC.NE.0) go to 100
+
+      CPDT=' '
+      LHDR=0
+      LFTR=0
+
+      Call WRPRF
+     *   (NOUT,LLLT,LRNM,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT, 
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,
+     *   BLOG,FABC,P0,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   IRC)
+
+ 100  Call Exit(IRC)
+      End
+*----------------------------------------------------------------------*     
+      Subroutine Repar         
+     *   (FGPR,LSYM,LLLT,RG,RE,RF,RO,IRC)
+
+      Character*512     CPAR
+      Character*(*)     FGPR 
+      
+      Logical           LSYM
+      Logical           LLLT
+      
+      LSYM=.TRUE.
+      LLLT=.TRUE.
+      RG=4.5
+      RE=0.05
+      RF=100
+      RO=0
+      
+      FGPR=' '
+
+      N1=Iargc()
+      
+      K1=0
+      I2=1
+      Do  50 I1=1,N1
+         Call GetArg(I2,CPAR)
+         If     (CPAR(1:1).EQ.'-'
+     *      .AND.CPAR(2:2).NE.' '.AND.K1.EQ.0) then
+            If(Index(CPAR,'h').NE.0)go to 900
+            If(Index(CPAR,'a').NE.0) LSYM=.FALSE.
+            If(Index(CPAR,'l').NE.0) LLLT=.FALSE.
+            If(Index(CPAR,'G').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RG
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RG
+               End if
+            End if
+            If(Index(CPAR,'E').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RE
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RE
+               End if
+            End if
+            If(Index(CPAR,'F').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RF
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RF
+               End if
+            End if
+            If(Index(CPAR,'O').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RO
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RO
+               End if
+            End if
+         Else if(K1.EQ.0) then
+            K1=K1+1
+            FGPR=CPAR
+         Else
+            If     (CPAR(1:2).EQ.'G=') then
+               Read(CPAR(3:),*,Err=900) RG
+            Else if(CPAR(1:2).EQ.'E=') then
+               Read(CPAR(3:),*,Err=900) RE
+            Else if(CPAR(1:2).EQ.'F=') then
+               Read(CPAR(3:),*,Err=900) RF
+            Else if(CPAR(1:2).EQ.'O=') then
+               Read(CPAR(3:),*,Err=900) RO
+            End if 
+         End if
+         I2=I2+1
+         If(I2.GT.N1) Go to 60
+ 50   Continue
+
+ 60   If(K1.NE.1) Go to 900 
+ 100  Return
+ 900  IRC=1
+      Go to 100
+      End 
+*----------------------------------------------------------------------*     
+      Include          'lblnk.f'
+      Include          'regpr.f'
+      Include          'wrprf.f'
diff --git a/hmdat.f b/hmdat.f
new file mode 100644
index 0000000..bc90262
--- /dev/null
+++ b/hmdat.f
@@ -0,0 +1,9 @@
+*----------------------------------------------------------------------*     
+* $Id: hmdat.f,v 2.4 2003/02/23 11:51:56 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* HMM
+* 
+      Real              RIHM(0:46,0:IDMP)     
+      Real              RMHM(0:27,0:IDMP)
diff --git a/htop.f b/htop.f
new file mode 100644
index 0000000..55671ff
--- /dev/null
+++ b/htop.f
@@ -0,0 +1,677 @@
+*       Program htop 
+*----------------------------------------------------------------------*     
+* $Id: htop.f,v 2.12 2003/12/01 13:33:04 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Function: Reformats profiles: in-fmt=HMMER / out-fmt=PROSITE    
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* DATA
+*----------------------------------------------------------------------*     
+
+* array dimensions and I/O units
+
+      Include          'ardim.f' 
+
+      Parameter        (NPRF=   5)
+      Parameter        (NOUT=   6)
+      Parameter        (NNUL=  12)
+
+* profile and sequence fields:
+
+      Character*512     FPRF
+
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'pfdat.f'
+      Include          'dfdat.f'
+
+      Include          'sterr.f'
+
+* HMM 
+      Include          'hmdat.f'
+
+      Character*512     FNUL
+
+* command line options and parameters
+
+      Real*8            DB
+      Real*8            DL
+
+      Logical           OPTF
+      Logical           OPTI    
+      Logical           OPTO    
+      Logical           OPTR    
+      Logical           OPTS    
+      Logical           LLLT    
+      Logical           LRNM   
+      Logical           LEOF
+      Logical           LRPS
+
+      Integer           INBP
+
+* initialization of controlled vocabularies
+
+      Include          'cvini.f' 
+
+*----------------------------------------------------------------------*     
+* INPUT SECTION 
+*----------------------------------------------------------------------*     
+
+* initializations
+
+      IRC=0
+      LHDR=0
+      LEOF=.FALSE.
+      LRNM=.TRUE.
+      INBP=0
+
+* read command line arguments
+
+      Call Repar
+     *   (OPTF,OPTI,OPTO,OPTR,OPTS,LLLT,LRPS,FPRF,FNUL,
+     *   DB,RC,DL,NM,RP,RQ,RF,RH,IRC)
+      If(IRC.NE.0) then
+         Write(NERR,'(/,
+     *      ''htop 2.3 revision 5.d'',//
+     *      ''Usage: htop [ -fhilosBCFHLMPQ ] [ hmm-file | - ] ''
+     *      ''[ random-model-file ] [ parameters ]'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -f: emulate HMM fragment search (HMMER1 specific).'',/
+     *      ''    -h: print usage help text.'',/
+     *      ''    -i: force insert extension scores to zero.'',/
+     *      ''    -l: do not impose limit on line length.'',/
+     *      ''    -o: assume input to be HMMER1 format (default:'',
+     *      '' HMMER2).'',/
+     *      ''    -s: implement semiglobal alignment.''
+     *      )')
+         Write(NERR,'(
+     *      ''    -B<value>:     (HMMER1 specific)'',/
+     *      ''        normalization logarithmic base (default: 2.0).'',/
+     *      ''    -C<value>:'',/
+     *      ''        level zero cut-off value (default: 8.5).'',/
+     *      ''    -F<value>:     (HMMER2 specific)'',/
+     *      ''        output score multiplier (default: 100).'',/
+     *      ''    -H<value>:     (only effective with option -s)'',/
+     *      ''        initiation/termination score (default: *).''
+     *      )')
+         Write(NERR,'(
+     *      ''    -L<value>:     (HMMER1 specific)'',/
+     *      ''        score logarithmic base (default: 1.0233739).'',/
+     *      ''    -M<value>:'',/
+     *      ''        number of unprotected residues at end of '',
+     *      ''profile (default: 5).'',/
+     *      ''    -P<value>:'',/
+     *      ''        percent profile length not included in '',
+     *      ''protected area (default: 0).'',/
+     *      ''    -Q<value>:'',/
+     *      ''        odds ratio of unknown residues (default: 0.8).'',/
+     *      )')
+         Write(NERR,'(
+     *      '' valid (but deprecated) parameters are:'',/,
+     *      ''  [B=norm-score-logbase]        use option -B instead'',/,
+     *      ''  [C=cut-off-value]             use option -C instead'',/,
+     *      ''  [F=rescaling factor]          use option -F instead'',/,
+     *      ''  [H=high-cost-init-term-score] use option -H instead'',/,
+     *      ''  [L=profile-logbase]           use option -L instead'',/,
+     *      ''  [M=length-unprotected-ends]   use option -M instead'',/,
+     *      ''  [P=percent-unprotected-ends]  use option -P instead'',/
+     *      ''  [Q=prob-of-unknown-residue]   use option -Q instead'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+
+* read profile
+
+ 1    Continue           
+
+      If(LEOF) go to 100
+      If(.NOT.OPTO) then 
+         Call RHMMER2 
+     *      (NPRF,FPRF,
+     *      CPID,CPAC,CPDT,CPDE,LHDR,CHDR,NABC,CABC,LPRF,LPCI,
+     *      CDIS,JDIP,MDIS,NDIP,
+     *      CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *      JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *      IDMP,CHIP,IIPP,CHMP,IMPP,
+     *      BLOG,FABC,P0,
+     *      CHID,IIPD,CHMD,IMPD,
+     *      INBP,LEOF,IRC)
+
+         If(LEOF.AND.IRC.LT.0) then
+            If(INBP.GE.1) IRC=0
+            go to 100
+         End if
+         If(IRC.NE.0) go to 100
+
+* rescale 
+*** To be modified: Add to hmmer1 profile reading ???
+         Do I1=0,LPRF
+            Do I2=0,46
+               If(IIPP(I2,I1).NE.NLOW)
+     *            IIPP(I2,I1)=NINT(RF*IIPP(I2,I1))
+            End do 
+         End do 
+         Do I1=1,LPRF
+            Do I2=0,27
+               If(IMPP(I2,I1).NE.NLOW)
+     *            IMPP(I2,I1)=NINT(RF*IMPP(I2,I1))
+            End do 
+         End do 
+
+         RNOP(1,1)=RNOP(1,1)+LOG10(350.0)
+         RNOP(2,1)=RNOP(2,1)/RF
+         BLOG=BLOG**(1/RF)
+         RCUT(1,1)=RC
+         ICUT(1)=NINT((RCUT(1,1)-RNOP(1,1))/RNOP(2,1))+1
+
+         If(RC.EQ.0) then 
+            JCUT=2
+            MCLE(1)=0
+            CCUT(1)='!'
+            JCNM(1)=1
+            RCUT(1,1)=8.5
+            MCUT(1,1)=1
+            ICUT(1)=NINT((RCUT(1,1)-RNOP(1,1))/RNOP(2,1))+1
+            MCLE(2)=-1
+            CCUT(2)='?'
+            JCNM(2)=1
+            RCUT(1,2)=6.5
+            MCUT(1,2)=1
+            ICUT(2)=NINT((RCUT(1,2)-RNOP(1,1))/RNOP(2,1))+1
+         End if 
+***
+
+* semilocal alignment mode
+
+         If(OPTS) then 
+            IIPD(B0)=0
+            IIPD(E0)=0
+            Do I1=1,LPRF
+               IIPP(B0,I1-1)=0
+               IIPP(E0,I1)=0
+            End do
+         End if
+
+* option -i
+
+         If(OPTI) then 
+            Do I1=0,LPRF
+               Do I2=0,NABC
+                  IIPP(I2,I1)=0
+               End do
+            End do
+         End if
+
+         Go to  90
+      End if
+      
+
+      Call RHMMER(NPRF,FPRF,LPRF,RIHM,RMHM,IDMP,NABC,CABC,INBP,IRC)
+      If(IRC.NE.0) go to 100
+
+* read null-model
+
+      If(FNUL.NE.' ') then 
+         Call RHNUL(NNUL,FNUL,FABC,NABC,IRC)      
+         If(IRC.NE.0) go to 100 
+      Else
+         Do I2=1,NABC
+            FABC(I2)=0.0
+         End do
+         Do I1=1,LPRF
+            Do I2=1,NABC
+               FABC(I2)=FABC(I2)+RIHM(I2,I1)
+            End do
+         End do 
+         Do I2=1,NABC
+            FABC(I2)=FABC(I2)/LPRF
+         End do
+      End if
+
+* header line definitions 
+
+      If(FPRF.EQ.'-') FPRF='stdin'
+      CPID='HMMER-HMM'
+      CPAC='HH99999'
+      CPDT=' '
+      CPDE='Automatically reformatted from file '''
+     *   // FPRF(1:Lblnk(FPRF))
+     *   // '''.'
+
+* accessories 
+
+      LPCI=.FALSE.
+
+      BLOG=DL
+      DL=1/LOG(DL)
+      P0=1.0
+      
+      MDIS=2
+C      If(NM.GT.0.AND.NM.LT.(LPRF/2)) then
+C         NDIP(1)=1   +NM
+C         NDIP(2)=LPRF-NM
+C      Else
+C         NM=LPRF/2
+C         N1=MIN(NM,NINT(LPRF*RP/100))
+C         NDIP(1)=1   +N1
+C         NDIP(2)=LPRF-N1
+C      End if
+C      If(NDIP(1).GT.NDIP(2)) then
+C         ITMP=NDIP(1)
+C         NDIP(1)=NDIP(2)
+C         NDIP(1)=ITMP
+C      End if
+
+      JNOR=1
+      MNOR(1)=1
+      NNOR(1)=1
+      NNPR(1)=1
+      CNTX(1)='nscore'
+      RNOP(2,1)=1/LOG(DB)/DL
+      If(OPTF) then
+         RNOP(1,1)=DL*(LOG(Real(1-1000.0/1001))-LOG(4.0))*RNOP(2,1)
+      Else
+         RNOP(1,1)=0.0
+      End if
+      
+      JCUT=1
+      MCLE(1)=0
+      CCUT(1)=' '
+      JCNM(1)=1
+      RCUT(1,1)=RC
+      MCUT(1,1)=1
+      ICUT(1)=NINT((RCUT(1,1)-RNOP(1,1))/RNOP(2,1))+1
+
+* defaults for match and insert positions
+
+      If(OPTF) then
+         IIPD(B1)=NINT(-DL*(LOG(Real(LPRF-1))))
+         IIPD(E1)=IIPD(B1)
+         IIPD(BM)=0
+         IIPD(BI)=NLOW
+         IIPD(BD)=NLOW
+         IIPD(ME)=0
+         IIPD(IE)=NLOW
+         IIPD(DE)=NLOW
+      Else 
+         IIPD(B1)=NLOW
+         IIPD(E1)=NLOW
+      End if 
+
+      If(OPTS) then 
+         IIPD(B0)=0
+         IIPD(E0)=0
+      Else 
+         IIPD(B0)=IIPD(B1)
+         IIPD(E0)=IIPD(E1)
+      End if
+
+      IMPD( D)=0
+
+      IIPD(BM)=0
+      IIPD(BI)=NLOW
+      IIPD(BD)=NLOW
+
+      IIPD(ME)=0
+      IIPD(IE)=NLOW
+      IIPD(DE)=NLOW
+
+      IIPD(BE)=NLOW
+      IIPD(MM)=0
+      IIPD(MI)=0
+      IIPD(MD)=0
+      IIPD(IM)=0
+      IIPD(II)=0
+      IIPD(ID)=0
+      IIPD(DM)=0
+      IIPD(DI)=0
+      IIPD(DD)=0
+      
+      IIPD(I0)=NINT(DL*LOG(RQ))
+      If(OPTI) IIPD(I0)=0
+      
+      CHID='-'
+      Do I1=1,26
+         IIPD(I1)=0
+      End do 
+      
+      IMPD(M0)=NINT(DL*LOG(RQ))
+      IMPD(D )=0
+      CHMD='X'
+      Do I1=1,26
+         IMPD(I1)=0
+      End do 
+
+      Do I1=0,LPRF
+         Do I2=0,27
+            IMPP(I2,I1)=IMPD(I2)
+         End do
+         Do I2=0,46
+            IIPP(I2,I1)=IIPD(I2)
+         End do
+      End do
+
+* convert probabilities into profile-scores
+
+      Do I1=0,LPRF
+         IIPP(MM,I1)=NLOW
+         IIPP(MD,I1)=NLOW
+         IIPP(MI,I1)=NLOW
+         IIPP(DM,I1)=NLOW
+         IIPP(DD,I1)=NLOW
+         IIPP(DI,I1)=NLOW
+         IIPP(IM,I1)=NLOW
+         IIPP(ID,I1)=NLOW
+         IIPP(II,I1)=NLOW
+         If(RIHM(MM,I1).GT.0) IIPP(MM,I1)=NINT(DL*LOG(RIHM(MM,I1)))
+         If(RIHM(MD,I1).GT.0) IIPP(MD,I1)=NINT(DL*LOG(RIHM(MD,I1)))
+         If(RIHM(MI,I1).GT.0) IIPP(MI,I1)=NINT(DL*LOG(RIHM(MI,I1)))
+         If(RIHM(DM,I1).GT.0) IIPP(DM,I1)=NINT(DL*LOG(RIHM(DM,I1)))
+         If(RIHM(DD,I1).GT.0) IIPP(DD,I1)=NINT(DL*LOG(RIHM(DD,I1)))
+         If(RIHM(DI,I1).GT.0) IIPP(DI,I1)=NINT(DL*LOG(RIHM(DI,I1)))
+         If(RIHM(IM,I1).GT.0) IIPP(IM,I1)=NINT(DL*LOG(RIHM(IM,I1)))
+         If(RIHM(ID,I1).GT.0) IIPP(ID,I1)=NINT(DL*LOG(RIHM(ID,I1)))
+         If(RIHM(II,I1).GT.0) IIPP(II,I1)=NINT(DL*LOG(RIHM(II,I1)))
+
+         Do I2=1,NABC
+            If(RMHM(I2,I1).GT.0) then
+               IMPP(I2,I1)=NINT(DL*LOG(RMHM(I2,I1)/FABC(I2)))
+            Else
+               IMPP(I2,I1)=NLOW
+            End if
+         End do 
+
+         If(OPTI) then
+            IIPP(I2,I1)=0
+         Else 
+            Do I2=1,NABC
+               If(RIHM(I2,I1).GT.0) then
+                  IIPP(I2,I1)=NINT(DL*LOG(RIHM(I2,I1)/FABC(I2)))
+               Else
+                  IIPP(I2,I1)=NLOW
+               End if
+            End do 
+         End if 
+      End do
+
+* beginning and end
+
+      If(.NOT.OPTF) then
+         IIPP(BM,   0)=IIPP(MM,   0)
+         IIPP(BD,   0)=IIPP(MD,   0)
+         IIPP(BI,   0)=IIPP(MI,   0)
+         IIPP(ME,LPRF)=IIPP(MM,LPRF)
+         IIPP(DE,LPRF)=IIPP(DM,LPRF)
+         IIPP(IE,LPRF)=IIPP(IM,LPRF)
+      End if
+
+      IIPP(B0,   0)=0
+      IIPP(B1,   0)=0
+      IIPP(E0,LPRF)=0
+      IIPP(E1,LPRF)=0
+
+* generate consensus sequence 
+      
+      CHIP( 0)='-'
+      Do I1=1,LPRF 
+         CHMP(I1)=CABC( 1)
+         CHIP(I1)=CHID
+         K1=IMPP( 1,I1)
+         Do I2=1,NABC
+            If(IMPP(I2,I1).GT.K1) then 
+               K1=IMPP(I2,I1)
+               CHMP(I1)=CABC(I2)
+            End if
+         End do 
+      End do
+
+ 90   Continue
+
+* parameters P,M
+      
+      If((.NOT.LRPS).AND.(NM.GT.0.AND.NM.LT.(LPRF/2))) then
+         NDIP(1)=1   +NM
+         NDIP(2)=LPRF-NM
+      Else
+         NM=LPRF/2
+         N1=MIN(NM,NINT(LPRF*RP/100))
+         NDIP(1)=1   +N1
+         NDIP(2)=LPRF-N1
+      End if
+      If(NDIP(1).GT.NDIP(2)) then
+         ITMP=NDIP(1)
+         NDIP(1)=NDIP(2)
+         NDIP(1)=ITMP
+      End if
+C      If(NM.EQ.0) NM=LPRF/2
+C      N1=MIN(NM,NINT(LPRF*RP/100))
+C      NDIP(1)=1   +N1
+C      NDIP(2)=LPRF-N1
+
+
+* final modifications (parameter)
+
+      If(RH.GT.0.0) then
+         If(OPTR) then 
+            NH=-RH/RNOP(2,1)
+         Else
+            NH=-RH*RF
+         End if
+         IIPD(B0)=MAX(IIPD(B0),NH)
+         IIPD(B1)=MAX(IIPD(B1),NH)
+         IIPD(E1)=MAX(IIPD(E1),NH)
+         IIPD(E0)=MAX(IIPD(E0),NH)
+         Do I1=0,LPRF
+            IIPP(B0,I1)=MAX(IIPP(B0,I1),NH)
+            IIPP(B1,I1)=MAX(IIPP(B1,I1),NH)
+            IIPP(E1,I1)=MAX(IIPP(E1,I1),NH)
+            IIPP(E0,I1)=MAX(IIPP(E0,I1),NH)
+         End do
+      End if
+
+* write profile
+
+
+      LFTR=1
+      CFTR(1)='CC   /GENERATED_BY="'
+      Call Recmd(CFTR(1)(21:130))
+      IC=Lblnk(CFTR(1))
+      CFTR(1)(IC+1:)='";'
+
+      Call WRPRF
+     *   (NOUT,LLLT,LRNM,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT, 
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,
+     *   BLOG,FABC,P0,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   IRC)
+
+      If(.NOT.OPTO) Go to   1
+
+ 100  Call Exit(IRC)
+      End
+*----------------------------------------------------------------------*     
+      Subroutine Repar
+     *     (OPTF,OPTI,OPTO,OPTR,OPTS,LLLT,LRPS,FPRF,FNUL,
+     *     DB,RC,DL,NM,RP,RQ,RF,RH,IRC)
+
+      Character*512     CARG
+      Character*(*)     FPRF
+      Character*(*)     FNUL
+
+      Real*8            DB
+      Real*8            DL
+
+      Logical           OPTF
+      Logical           OPTI
+      Logical           OPTO
+      Logical           OPTR
+      Logical           OPTS
+      Logical           LLLT
+      Logical           LRPS
+
+*     initializations
+
+      OPTF=.FALSE.
+      OPTI=.FALSE.
+      OPTR=.FALSE.
+      OPTS=.FALSE.
+      OPTO=.FALSE.
+      LLLT=.TRUE.
+      LRPS=.FALSE.
+      DB=2.0
+      RC=0.0
+      DL=1.0233739
+      NM=5
+      RP=0.0
+      RQ=0.8
+      RH=0.0
+
+      FPRF=' '
+      FNUL=' '
+      RF=1.0
+
+      IRC=0
+
+      N1=Iargc()
+
+      K1=0
+      I2=1
+      Do I1=1,N1
+         Call GetArg(I2,CARG)
+         If(CARG(1:1).EQ.'-'
+     *        .AND.CARG(2:2).NE.' ') then
+            If(Index(CARG,'h').NE.0) Go to 900
+            If(Index(CARG,'f').NE.0) OPTF=.TRUE.
+            If(Index(CARG,'i').NE.0) OPTI=.TRUE.
+            If(Index(CARG,'o').NE.0) OPTO=.TRUE.
+            If(Index(CARG,'r').NE.0) OPTR=.TRUE.
+            If(Index(CARG,'s').NE.0) OPTS=.TRUE.
+            If(Index(CARG,'l').NE.0) LLLT=.FALSE.
+            If(Index(CARG,'B').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) DB
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) DB
+               End if
+            End if
+            If(Index(CARG,'C').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RC
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RC
+               End if
+            End if
+            If(Index(CARG,'F').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RF
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RF
+               End if
+            End if
+            If(Index(CARG,'L').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) DL
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) DL
+               End if
+            End if
+            If(Index(CARG,'M').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) NM
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) NM
+               End if
+            End if
+            If(Index(CARG,'P').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RP
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RP
+               End if
+               LRPS=.TRUE.
+            End if
+            If(Index(CARG,'Q').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RQ
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RQ
+               End if
+            End if
+            If(Index(CARG,'H').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RH
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RH
+               End if
+            End if
+         Else if(CARG(1:2).EQ.'B=') then
+            Read(CARG(3:),*,Err=900) DB
+         Else if(CARG(1:2).EQ.'C=') then
+            Read(CARG(3:),*,Err=900) RC
+         Else if(CARG(1:2).EQ.'F=') then
+            Read(CARG(3:),*,Err=900) RF
+         Else if(CARG(1:2).EQ.'L=') then
+            Read(CARG(3:),*,Err=900) DL
+         Else if(CARG(1:2).EQ.'M=') then
+            Read(CARG(3:),*,Err=900) NM 
+         Else if(CARG(1:2).EQ.'P=') then
+            Read(CARG(3:),*,Err=900) RP
+         Else if(CARG(1:2).EQ.'Q=') then
+            Read(CARG(3:),*,Err=900) RQ
+         Else if(CARG(1:2).EQ.'H=') then
+            Read(CARG(3:),*,Err=900) RH
+         Else if(K1.LE.1) then
+            K1=K1+1
+            If     (K1.EQ.1) then
+               FPRF=CARG
+            Else if(K1.EQ.2) then
+               FNUL=CARG
+            End if
+         Else 
+            Go to 900
+         End if
+         I2=I2+1
+         If(I2.GT.N1) Go to 20
+      End do 
+
+ 20   If(FPRF.EQ.' ') Go to 900
+      If(RP.LT.0.OR.RP.GT.100) Go to 900
+
+ 100  Return
+ 900  IRC=-1
+      Go to 100
+      End
+*----------------------------------------------------------------------*     
+      Include          'rhmmer.f'
+      Include          'rhmmer2.f'
+      Include          'rhnul.f'
+      Include          'recmd.f'
+      Include          'wrprf.f'
+      Include          'lblnk.f'
diff --git a/install_pftools.sh b/install_pftools.sh
new file mode 100755
index 0000000..3e4c899
--- /dev/null
+++ b/install_pftools.sh
@@ -0,0 +1,228 @@
+#! /usr/bin/env bash
+#
+# $Id: install_pftools.sh,v 1.4 2003/09/22 15:17:03 vflegel Exp $
+#
+# This shell script installs all components of the pftools package into
+# the specified directories.
+#
+# Usage: install_pftools.sh <baseDirectory>
+#
+# Description: The script will copy the package components into a given
+#              base directory. This directory is given as a command line
+#              parameter of the shell script, but may be redefined through
+#              user input. It then makes links to the executables in
+#              a user defined bin directory as well as links to the man pages
+#              in a user specified man directory.
+#
+# Author:      Volker Flegel
+# Email:       pftools at isb-sib.ch
+#
+# Date:        May 2003
+#
+
+# Get program name
+prgName=`basename "$0"`
+
+# Helper functions
+Usage () {
+  echo "$prgName - install the pftools package, man pages and executables.
+
+Usage: $prgName <baseDirectory>
+    baseDirectory   directory where the pftools orginal files should be \
+installed.
+
+" >&2
+  exit 1
+}
+
+Msg () {
+  echo
+  for MsgLine
+    do echo "$prgName: $MsgLine" >&2
+  done
+}
+
+Fatal () { Msg "$@"; exit 1; }
+
+# Check command line arguments
+if [ $# != 1 ]; then
+  Usage
+fi
+
+# Set command variables
+rmCmd=`which rm`
+cpCmd=`which cp`
+
+# Set package directories
+pkgDir="$1"
+binDir="/usr/bin/"
+manDir="/usr/man/"
+
+# Inform user about script action
+echo
+echo "This will install the pftools package and components into their"
+echo "respective directories."
+echo
+echo "Make sure you have write permissions on the different installation directories."
+echo
+
+# Get package directory
+echo -n "Where should the pftools package be installed ? [ $pkgDir ] "
+read userInput
+pkgDir=${userInput:-$pkgDir}
+
+# Get binary directory
+echo -n "Where should the pftools executables be installed ? [ $binDir ] "
+read userInput
+binDir=${userInput:-$binDir}
+
+# Get man page directory
+echo -n "Where should the pftools man pages be installed ? [ $manDir ] "
+read userInput
+manDir=${userInput:-$manDir}
+
+# Test and remove package directory
+if [ -d $pkgDir ]; then
+  echo
+  echo "Package directory $pkgDir already exists."
+  echo "Please choose another destination."
+#  echo "Overwrite directory $pkgDir ? [ y/n ] "
+#  read -s -n 1 userInput
+#  if [ "$userInput" == 'y' ]; then
+#    echo -n " Removing directory $pkgDir ... "
+#    $rmCmd -rf $pkgDir 2>/dev/null || Fatal "Failed to remove $pkgDir";
+#    echo "OK"
+#  else
+    Fatal "... aborting."
+#  fi
+fi
+
+# Create package directory
+echo
+echo -n " Creating directory $pkgDir ... "
+mkdir -p $pkgDir 2>/dev/null || Fatal "Failed to create $pkgDir";
+echo "OK"
+
+# Create package subdirectory
+for subDir in bin man; do
+  echo -n " Creating directory ${pkgDir}/${subDir} ... "
+  mkdir -p ${pkgDir}/${subDir} 2>/dev/null || Fatal "Failed to create ${pkgDir}/${subDir}";
+  echo "OK"
+done
+
+
+# Test and create binary directory
+if [ ! -d $binDir ]; then
+  echo
+  echo "Binary directory $binDir does not exist."
+  echo "Create directory $binDir ? [ y/n ] "
+  read -s -n 1 userInput
+  if [ "$userInput" == 'y' ]; then
+    echo -n " Creating directory $binDir ... "
+    mkdir -p $binDir 2>/dev/null || Fatal "Failed to create $binDir";
+    echo "OK"
+  else
+    Fatal "... aborting."
+  fi
+fi  
+
+# Test and create man directory
+if [ ! -d $manDir ]; then
+  echo
+  echo "Man page directory $manDir does not exist."
+  echo "Create directory $manDir ? [ y/n ] "
+  read -s -n 1 userInput
+  if [ "$userInput" == 'y' ]; then
+    echo -n " Creating directory $manDir ... "
+    mkdir -p $manDir 2>/dev/null || Fatal "Failed to create $manDir";
+    echo "OK"
+  else
+    Fatal "... aborting."
+  fi
+fi
+
+# Test and create man1 and man5 directories
+for subDir in ${manDir}/man1 ${manDir}/man5; do
+  if [ ! -d $subDir ]; then
+    echo -n " Creating directory $subDir ... "
+    mkdir -p $subDir 2>/dev/null || Fatal "Failed to create $subDir";
+    echo "OK"
+  fi
+done
+
+# Copy package files to package directory
+pkgFiles="CVPBR322 GTPA_HUMAN MYSA_HUMAN coils.prf pam220.cmp score.lis ecp.prf pam250.cmp sh3.gpr \
+R76849.seq gonnet.cmp pam30.cmp sh3.msf blosum100.cmp pam40.cmp sh3.prf \
+blosum30.cmp pam400.cmp sh3.seq blosum45.cmp pam80.cmp standard.random blosum50.cmp pfam_sh3.hmm test.out \
+blosum62.cmp pam120.cmp test.sh blosum65.cmp pam160.cmp profile.txt blosum80.cmp pam200.cmp \
+README prosite13.prf"
+
+for myFile in $pkgFiles; do
+  $cpCmd $myFile ${pkgDir}/${myFile} 2>/dev/null ||  Fatal "Failed to copy $myFile";
+done
+
+# Copy and link binary files to bin directory
+binFiles="gtop pfmake pfscan pfw ptoh htop pfscale pfsearch psa2msa 2ft 6ft ptof"
+unset allFiles
+
+for myFile in $binFiles; do
+  if ([ -e ${binDir}/${myFile} ] || [ -h ${binDir}/${myFile} ]) && [ "$allFiles" != 'a' ]; then
+    echo "Destination file '${binDir}/${myFile}' exists."
+    echo "Overwrite file '${binDir}/${myFile}' ? [ yes/no/all ] "
+    read -s -n 1 allFiles
+    if [ "$allFiles" != 'y' ] && [ "$allFiles" != 'a' ]; then
+      Fatal "Another version of $myFile exists. Aborting..."
+    fi
+  fi
+  if [ -e ${binDir}/${myFile} ] || [ -h ${binDir}/${myFile} ]; then
+    $rmCmd -f ${binDir}/${myFile} 2>/dev/null ||  Fatal "Failed to remove $myFile";
+  fi
+  $cpCmd $myFile ${pkgDir}/bin/${myFile} ||  Fatal "Failed to copy $myFile";
+  ln -s ${pkgDir}/bin/$myFile ${binDir}/${myFile} ||  Fatal "Failed to link $myFile";
+done
+
+# Copy and link man1 files to man1 directory
+manFiles="gtop.1 pfmake.1 pfscan.1 pfw.1 ptoh.1 htop.1 pfscale.1 pfsearch.1 psa2msa.1 2ft.1 6ft.1 ptof.1"
+unset allFiles
+
+for myFile in $manFiles; do
+  if ([ -e ${manDir}/man1/${myFile} ] || [ -h ${manDir}/man1/${myFile} ]) && [ "$allFiles" != 'a' ]; then
+    echo "Destination file '${manDir}/man1/${myFile}' exists."
+    echo "Overwrite file '${manDir}/man1/${myFile}' ? [ yes/no/all ] "
+    read -s -n 1 allFiles
+    if [ "$allFiles" != 'y' ] && [ "$allFiles" != 'a' ]; then
+      Fatal "Another version of $myFile exists. Aborting..."
+    fi
+  fi
+  if [ -e ${manDir}/man1/${myFile} ] || [ -h ${manDir}/man1/${myFile} ]; then
+    $rmCmd -f ${manDir}/man1/${myFile} 2>/dev/null ||  Fatal "Failed to remove $myFile";
+  fi
+  $cpCmd man/$myFile ${pkgDir}/man/${myFile} 2>/dev/null ||  Fatal "Failed to copy $myFile";
+  ln -s ${pkgDir}/man/$myFile ${manDir}/man1/${myFile} 2>/dev/null ||  Fatal "Failed to link $myFile";
+done
+
+# Copy and link man5 files to man5 directory
+manFiles=" psa.5 xpsa.5"
+unset allFiles
+
+for myFile in $manFiles; do
+  if ([ -e ${manDir}/man5/${myFile} ] || [ -h ${manDir}/man5/${myFile} ]) && [ "$allFiles" != 'a' ]; then
+    echo "Destination file '${manDir}/man5/${myFile}' exists."
+    echo "Overwrite file '${manDir}/man5/${myFile}' ? [ yes/no/all ] "
+    read -s -n 1 allFiles
+    if [ "$allFiles" != 'y' ] && [ "$allFiles" != 'a' ]; then
+      Fatal "Another version of $myFile exists. Aborting..."
+    fi
+  fi
+  if [ -e ${manDir}/man5/${myFile} ] || [ -h ${manDir}/man5/${myFile} ]; then
+    $rmCmd -f ${manDir}/man5/${myFile} 2>/dev/null ||  Fatal "Failed to remove $myFile";
+  fi
+  $cpCmd man/$myFile ${pkgDir}/man/${myFile} 2>/dev/null ||  Fatal "Failed to copy $myFile";
+  ln -s ${pkgDir}/man/$myFile ${manDir}/man5/${myFile} 2>/dev/null ||  Fatal "Failed to link $myFile";
+done
+
+echo
+echo "Installation seems successful."
+echo
+echo "Install directories: $pkgDir $binDir $manDir"
+exit 0
diff --git a/io.c b/io.c
new file mode 100644
index 0000000..6f48f8e
--- /dev/null
+++ b/io.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+int getc_(ch, ch_len)
+     char *ch;
+     int *ch_len;
+{
+  int ret_val;
+  *ch = getc(stdin);
+  if(*(unsigned char *)ch == 255) { 
+    ret_val = -1;
+  } else {
+    ret_val = -0;
+  }
+  return ret_val;
+} 
diff --git a/jprsm.f b/jprsm.f
new file mode 100644
index 0000000..277ed86
--- /dev/null
+++ b/jprsm.f
@@ -0,0 +1,97 @@
+*----------------------------------------------------------------------*     
+* $Id: xprsm.f,v 2.12 2003/12/09 13:42:42 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine JPRSM(CHID,CHAC,CHFH,OPTF,JALB,JALE)
+
+* logical switches 
+
+      Logical           OPTF
+
+* sequence and profile header 
+      
+      Character*(*)     CHID
+      Character*(*)     CHAC
+      Character*(*)     CHFH
+
+* Output fields 
+      
+      Character*64      CHLO
+      Character*64      CHMO
+      Character*64      CHMI
+      Character*512     RCEX
+
+* prepare output fields 
+
+* - profile name (motif)
+
+      CHMO='motif= '
+      
+      L1=Lblnk(CHID)
+      L2=Lblnk(CHAC)
+      L3=6
+      If(L2-1.GT.0) then
+         CHMO=CHMO(1:L3) // CHAC(1:L2)
+         L3=L3+L2
+      End if
+      If(L1.GT.0) then
+         CHMO=CHMO(1:L3) // CHID(1:L1)
+      End if
+      If(L2-1.LE.0.AND.L1.EQ.0) then
+         CHMO=CHMO(1:6) // 'unknown'
+      End if
+
+      ILMO=Lblnk(CHMO)
+
+* - entry-ref 
+
+      If(OPTF) then
+         L1=Lblnk(CHFH)
+         If (L1.EQ.0) then
+            CHMI='unknown'
+            ILMI=7
+         Else
+            CHMI=CHFH(1:L1)
+            ILMI=MIN(64,L1)
+         Endif
+      Else
+         L1=Lblnk(CHAC)
+         L2=Lblnk(CHID)
+         CHMI=CHAC(1:L1) // CHID(1:L2)
+         ILMI=MIN(64,L1+L2)
+      End if
+
+* - location
+      Write(CHLO,*) JALB,'-',JALE
+      J1=0
+      Do I1=1,Lblnk(CHLO)
+          If(CHLO(I1:I1).NE.' ') then 
+             J1=J1+1
+             CHLO(J1:J1)=CHLO(I1:I1)
+             CHLO(I1:I1)=' '
+          End if
+      End do
+      ILLO=Lblnk(CHLO)
+
+* assemble ouput record
+
+      LNEX=0 
+
+      RCEX(LNEX+1:)='>' // CHMI 
+      LNEX=LNEX+ILMI+2
+         
+      RCEX(LNEX:)='/' // CHLO
+      LNEX=LNEX+ILLO+1
+
+      RCEX(LNEX+1:)=CHMO 
+      LNEX=LNEX+ILMO+1
+
+* Write output record
+      If(LNEX.GT.512) then
+         LNEX=512
+      End if
+      Write(6,'(512A)')(RCEX(ii1:ii1),ii1=1,LNEX)
+
+ 100  Return 
+      End 
diff --git a/lblnk.f b/lblnk.f
new file mode 100644
index 0000000..86de567
--- /dev/null
+++ b/lblnk.f
@@ -0,0 +1,20 @@
+*----------------------------------------------------------------------*     
+* $Id: lblnk.f,v 2.6 2003/11/28 11:56:35 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Integer Function  Lblnk(STRING) 
+      Character*(*)     STRING
+
+      L=Len(STRING)
+      Lblnk=0
+
+      Do I1=L,1,-1
+         If(STRING(I1:I1).NE.' ') then
+            Lblnk=I1
+            return
+         End if
+      End do 
+
+      Return
+      End
diff --git a/man/2ft.1 b/man/2ft.1
new file mode 100644
index 0000000..169d933
--- /dev/null
+++ b/man/2ft.1
@@ -0,0 +1,125 @@
+.\"
+.\" $Id: 2ft.1,v 1.2 2003/08/11 12:09:14 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH 2FT 1 "May 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+2ft \- 2-frame translation of a DNA sequence into protein 
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B 2ft
+[
+.B \-h
+] [
+.B \-r
+|
+.B \-s
+] [
+.B \-W
+.I width
+]
+.B <
+.I sequence_library
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B 2ft
+converts both strands of one or several DNA sequences into so-called
+.RI \(dq interleaved\ frame-translated \(dq
+DNA sequences.  An
+.RI \(dq interleaved\ frame-translated \(dq
+DNA sequence is an amino acid sequence of translated
+overlapping codons. For instance, the DNA sequence 
+"ATGGCA" consisting of four overlapping codons would be translated into the amino acid sequence
+"MWGA", representing the translation of the 1st codon of the 1st reading frame,
+the 1st codon of the 2nd reading frame, the 1st codon of the 3rd reading frame and the 2nd codon
+of the 1st reading frame.
+Stop codons are represented by the character
+.RB \(dq O \(dq.
+The program
+.B 2ft
+reads fasta formatted DNA sequences from standard input. If the sequences
+are contained in a file, the input can be redirected from this file using the
+shell's input redirector
+.RB ' < '
+as shown in the
+.I synopsis
+section.
+The
+.I sequence_library
+contains one or several sequences in Pearson/Fasta format.
+.LP
+This program is used for searching genomic or EST sequence databases
+with frame-search profiles generated by pftools program
+.BR ptof (1).
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.\" --- r ---
+.TP
+.B \-r 
+Translate only reverse (antisense) strand.
+.br
+This option is mutualy exclusive with option
+.BR \-s .
+.br
+Default: translate both strands
+.\" --- s ---
+.TP
+.B \-s
+Translate only sense strand.
+.br
+This option is mutualy exclusive with option
+.BR \-r .
+.br
+Default: translate both strands
+.\" --- W ---
+.TP
+.BI \-W\  width
+Set sequence output width.
+.br
+The value of
+.RI ' width '
+specifies how many residues will be output on one line.
+.br
+Type: integer
+.br
+Default: 60
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.I See
+manual pages of pftools program
+.BR ptof (1).
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR ptof (1)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/man/6ft.1 b/man/6ft.1
new file mode 100644
index 0000000..f79a844
--- /dev/null
+++ b/man/6ft.1
@@ -0,0 +1,127 @@
+.\"
+.\" $Id: 6ft.1,v 1.2 2003/08/11 12:09:14 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH 6FT 1 "May 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+6ft \- 6-frame translation of a DNA sequence into protein 
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B 6ft
+[
+.B \-h
+] [
+.B \-r
+|
+.B \-s
+] [
+.B \-W
+.I width
+]
+.B <
+.I sequence_library
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B 6ft
+translates all six reading frames of a double-stranded DNA sequence into
+individual protein sequences.
+Stop codons are represented by character
+.RB \(dq O \(dq.
+The program
+.B 6ft
+reads input fasta formatted DNA sequences from standard input. If the sequences
+are contained in a file, the input can be redirected from this file using the
+shell's input redirector
+.RB ' < '
+as shown in the
+.I synopsis
+section.
+The
+.I sequence_library
+contains one or several sequences in Pearson/Fasta format.
+.LP
+This program may be used for searching genomic or EST sequence databases
+with a protein profile. Better results are usually obtained by first
+converting the protein profile into a frame-search profile, and then
+searching a 2-frame translation of the DNA sequence database generated with
+pftools program
+.BR 2ft (1), 
+.I see
+manual pages of pftools programs 
+.BR ptof (1)
+and  
+.BR 2ft (1).
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.\" --- r ---
+.TP
+.B \-r 
+Translate only reverse (antisense) strand.
+.br
+This option is mutualy exclusive with option
+.BR \-s .
+.br
+Default: translate both strands
+.\" --- s ---
+.TP
+.B \-s
+Translate only sense strand.
+.br
+This option is mutualy exclusive with option
+.BR \-r .
+.br
+Default: translate both strands
+.\" --- W ---
+.TP
+.BI \-W\  width
+Set sequence output width.
+.br
+The value of
+.RI ' width '
+specifies how many residues will be output on one line.
+.br
+Type: integer
+.br
+Default: 60
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.I See
+manual pages of pftools program
+.BR ptof (1).
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR ptof (1),
+.BR pfsearch (1),
+.BR pfscan (1)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/man/gtop.1 b/man/gtop.1
new file mode 100644
index 0000000..d4886e6
--- /dev/null
+++ b/man/gtop.1
@@ -0,0 +1,261 @@
+.\"
+.\" $Id: gtop.1,v 1.1 2003/05/12 11:50:03 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH GTOP 1 "April 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+gtop \- convert a profile in 
+.SM GCG
+format into
+.SM PROSITE
+format  
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B gtop
+[
+.B \-ahls
+] [
+.B \-E
+.I gap_extend
+] [
+.B \-F
+.I rescale
+] [
+.B \-G
+.I gap_open
+] [
+.B \-O
+.I offset
+]
+.I gcg_profile
+|
+.B \-
+[
+.I parameters
+]
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B gtop
+converts a profile generated by the
+.SM GCG
+program 
+.BR ProfileMake ,
+or by a
+.SM GCG
+compatible profile construction program,
+into 
+.SM PROSITE
+format, and optionally
+rescales the profile. 
+The result is written to the standard output. 
+On input, 
+.B gtop
+divides all weights of the profile by 100, as
+.SM GCG
+programs do.
+On output, profile scores are multiplied by the rescaling factor
+.I F
+and rounded to the nearest integer. 
+If symmetric gap weighting mode is chosen, the gap opening weights 
+are divided 
+by 2 and assigned to the 
+.IR MI , \ MD , \ IM ,
+and
+.I DM
+transition scores.
+If asymmetric gap weighting mode is chosen, the gap opening weights
+are left unchanged and assigned to the
+.I MI
+and
+.I MD
+transition scores only.
+If no argument is specified, the program attempts to read the
+.SM GCG
+formatted profile from the standard input.
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS
+.\" --- gcg_profile ---
+.TP
+.I gcg_profile
+Input
+.SM GCG
+profile.
+If the filename is replaced by a
+.RB ' \- ',
+.B gtop
+will read the input profile from
+.BR stdin .
+.\" --- a ---
+.TP
+.B \-a
+Apply asymmetric gap weighting mode (see the
+.I description
+section).
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.\" --- l ---
+.TP
+.B \-l
+Remove output line length limit. Individual lines of the output profile
+can exceed a length of 132 characters, removing the need to wrap them over several lines. 
+.\" --- s ---
+.TP
+.B \-s
+Apply symmetric gap weighting mode (default) (see the
+.I description
+section).
+.\" --- E ---
+.TP
+.BI \-E\  gap_extend
+Gap extension penalty.
+.br
+Default: 0.05
+.\" --- F ---
+.TP
+.BI \-F\  rescale
+Score rescaling factor.
+.br
+Default: 100
+.\" --- G ---
+.TP
+.BI \-G\  gap_open
+Gap opening penalty.
+.br
+Default: 4.5
+.\" --- O ---
+.TP
+.BI \-O\  offset
+Output score offset. This value is added to all profile match scores
+after multiplication by the rescaling factor
+.IR F .
+.br
+Default: 0
+.\" ------------------------------------------------
+.\" Parameters section
+.\" ------------------------------------------------
+.SH PARAMETERS
+.TP
+Note:
+for backwards compatibility, release 2.3 of the
+.B pftools
+package will parse the version 2.2 style parameters, but these are
+.I deprecated
+and the corresponding option (refer to the
+.I options
+section) should be used instead.
+.TP
+E=#
+Gap extension penalty.
+.br
+Use option
+.B \-E
+instead.
+.TP
+F=#
+Output score rescaling factor.
+.br
+Use option
+.B \-F
+instead.
+.TP
+G=#
+Gap opening penalty.
+.br
+Use option
+.B \-G
+instead.
+.TP
+O=#
+Output score offset.
+.br
+Use option
+.B \-O
+instead.
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+.B gtop
+-G 1.0 -E 1.0 -F 50 sh3.gpr | 
+.B pfsearch
+-far - sh3.seq | 
+.B sort
+-nr
+.IP
+First converts the
+.SM GCG
+profile
+.RI ' sh3.gpr '
+into
+.SM PROSITE
+format,
+then searches the protein library
+.RI ' sh3.seq '
+with the reformatted profile 
+to generate a sorted list of optimal alignment scores.
+The
+.BR pfsearch (1)
+option
+.B \-r
+causes alignment scores to be expressed in raw score units. 
+.RI ' sh3.seq '
+contains 20 SH3 domain-containing protein sequences from
+.SM SWISS-PROT
+release 32.
+.\" ------------------------------------------------
+.\" Exit code section
+.\" ------------------------------------------------
+.SH EXIT CODE
+.LP
+On successful completion of its task,
+.B gtop
+will return an exit code of 0. If an error occurs, a diagnostic message will be
+output on standard error and the exit code will be different from 0. When conflicting
+options where passed to the program but the task could nevertheless be completed, warnings
+will be issued on standard error.
+.\" ------------------------------------------------
+.\" Bugs section
+.\" ------------------------------------------------
+.SH BUGS
+.B gtop
+defines 
+.I SCORE=0; N_SCORE=0;
+for the mandatory cut-off level zero. These parameters should be changed 
+to more reasonable values using a text editor, prior to profile search
+operations.
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR pfsearch (1),
+.BR pfscan (1),
+.BR pfmake (1),
+.BR sort (1)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/man/htop.1 b/man/htop.1
new file mode 100644
index 0000000..5d7bd34
--- /dev/null
+++ b/man/htop.1
@@ -0,0 +1,375 @@
+.\"
+.\" $Id: htop.1,v 1.2 2003/11/18 10:54:42 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH HTOP 1 "May 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+htop \- convert a
+.SM HMMER
+ASCII-formatted HMM into an equivalent
+.SM PROSITE
+profile  
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B htop
+[
+.B \-fhilos
+] [
+.B \-B
+.I norm_logbase
+] [
+.B \-C
+.I cut_off
+] [
+.B \-F
+.I multiplier
+] [
+.B \-H
+.I init/term_score
+] [
+.B \-L
+.I score_logbase
+] [
+.B \-M
+.I nb_unprotect
+] [
+.B \-P
+.I percent_unprotect
+] [
+.B \-Q
+.I odds_ratio
+]
+.I hmm_file
+|
+.B \-
+[
+.I random_model
+] [
+.I parameters
+]
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B htop
+converts a hidden Markov model (HMM) into an equivalent
+.SM PROSITE
+formatted generalized profile. The input
+.I hmm_file
+is a nucleic acid or protein HMM in
+.SM HMMER
+ASCII-format. The
+.I random_model
+file contains a simple null-model in the format used by the HMM search programs
+of the
+.SM HMMER1
+package.
+This random model is only effective in conjunction with the 
+.B \-o
+option (old
+.SM HMMER1 
+format). If omitted, a random model consisting of the 
+average residue probabilities of the insert states will be used.
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS 
+.\" --- hmm_file ---
+.TP
+.I hmm_file
+Input HMM ASCII-file. By default,
+.B htop
+expects a
+.SM HMMER2
+formatted HMM. If the option
+.B \-o
+is set, the file should be in
+.SM HMMER1
+ASCII format.
+If the filename is replaced by a
+.RB ' \- ',
+.B htop
+will read the input HMM from
+.BR stdin .
+.\" --- random_model ---
+.TP
+.I random_model
+Input random model file. Only used in conjunction with
+.SM HMMER1
+HMMs (see option
+.BR \-o ).
+This file should contain a simple null-model using the same residue alphabet as
+the
+.IR hmm_file .
+.\" --- f ---
+.TP
+.B \-f
+Emulate HMM fragment search (only effective with old
+.SM HMMER1
+format).
+When given as input to the
+.B pftools
+programs
+.BR pfsearch (1) 
+or
+.BR pfscan (1),
+the resulting profile will behave like the original HMM searched with 
+the 
+.SM HMMER1
+program 
+.BR hmmfs . 
+The default mode is to emulate HMM local search implemented in the
+.SM HMMER1
+program 
+.BR hmmls . 
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.\" --- i ---
+.TP
+.B \-i
+Force all insert extension scores to be zero.
+.\" --- l ---
+.TP
+.B \-l
+Remove output line length limit. Individual lines of the output profile
+can exceed a length of 132 characters, removing the need to wrap them over several lines. 
+.\" --- o ---
+.TP
+.B \-o
+Assume input to be in old
+.SM HMMER1
+ASCII format. Since version 2.2, the
+.B pftools
+assume by default the
+.SM HMMER2
+format. 
+.\" --- s ---
+.TP
+.B \-s
+Implement semiglobal alignment mode. This option forces all external
+initiation scores to be identical to the internal initiation
+score at the beginning of the profile. Likewise, the external 
+termination scores are set to the value of the internal
+termination score at the end of the profile.
+.\" --- B ---
+.TP
+.BI \-B\  norm_logbase
+Logarithmic base to be used for normalization of profile
+match scores (only effective with old
+.SM HMMER1
+format).
+.br
+Default: 2.0
+.\" --- C ---
+.TP
+.BI \-C\  cut_off
+Level zero cut-off value in normalized score units.
+.br
+Default: 8.5 (or 0.0 in conjunction with option 
+.BR \-o )
+.\" --- F ---
+.TP
+.BI \-F\  multiplier
+Output score multiplier. On output, all profile scores are multiplied by
+this factor and rounded to the nearest integers.
+.br
+Only effective with
+.SM HMMER2
+format.
+.br
+Default: 100
+.\" --- H ---
+.TP
+.BI \-H\  init/term_score
+High-cost initiation/termination score (only effective in conjunction with 
+.B \-s
+option). This score will be applied to
+all external and internal initiation and termination scores
+at path matrix positions where
+initiation or termination at low cost is not possible according to semiglobal
+alignment mode.
+.br
+Default: * (low-value)
+.\" --- L ---
+.TP
+.BI \-L\  score_logbase
+Logarithmic base to be used for representation of profile
+scores (only effective in conjunction with old
+.SM HMMER1
+format).
+.br
+Default: 1.0233739 (1/30 bit units)
+.\" --- M ---
+.TP
+.BI \-M\  nb_unprotect
+Maximal number of unprotected residues at the ends of the profile.
+.br
+Type: integer
+.br
+Default: 5 (meaning that the protected region starts at position 6).
+.\" --- P ---
+.TP
+.BI \-P\  percent_unprotect
+Percent profile-length at the ends of the profile,
+which will not be included in the protected area.
+.br
+Type: real
+.br
+Default: 0 (range 0 to 100)
+.\" --- Q ---
+.TP
+.BI \-Q\  odds_ratio
+Position-independent odds ratio assumed for unknown residues.
+This parameter determines 
+the default values for profile scores
+.I M0
+and 
+.IR I0 .
+Note that the 
+.I I0
+scores may be over-written by the
+.B \-i   
+option.
+.br
+Default: 0.8
+.\" ------------------------------------------------
+.\" Parameters section
+.\" ------------------------------------------------
+.SH PARAMETERS 
+.TP
+Note:
+for backwards compatibility, release 2.3 of the
+.B pftools
+package will parse the version 2.2 style parameters, but these are
+.I deprecated
+and the corresponding option (refer to the
+.I options
+section) should be used instead.
+.TP
+B=#
+Match score logarithmic base.
+.br
+Use option
+.B \-B
+instead.
+.TP
+C=#
+Level zero cut-off.
+.br
+Use option
+.B \-C
+instead.
+.TP
+F=#
+Output score multiplier.
+.br
+Use option
+.B \-F
+instead.
+.TP
+H=#
+High-cost init/term score.
+.br
+Use option
+.B \-H
+instead.
+.TP
+L=#
+Profile scores logarithmic base.
+.br
+Use option
+.B \-L
+instead.
+.TP
+M=#
+Maximal number of unprotected residues.
+.br
+Use option
+.B \-M
+instead.
+.TP
+P=#
+Percentage of unprotected residues.
+.br
+Use option
+.B \-P
+instead.
+.TP
+Q=#
+Unknown residues odds ratio.
+.br
+Use option
+.B \-Q
+instead.
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+.B htop 
+pfam_sh3.hmm > pfam_sh3.prf
+.IP
+Converts the
+.SM HHMER2
+formatted SH3 domain profile
+.RI ' pfam_sh3.hmm '
+into a generalized
+.SM PROSITE
+profile. 
+After this conversion, the following two commands:
+.IP
+.B hmmsearch 
+\--null2  pfam_sh3.hmm sh3.seq 
+.br
+.B pfsearch
+\-fy -C 5.0 pfam_sh3.prf sh3.seq
+.IP
+should produce equivalent results in terms of raw scores
+and profile-sequence alignments (E-values and normalized scores
+will usually be different). Note that the program 
+.B hmmsearch
+is from Sean Eddy's
+.SM HMMER2
+package
+.RI ( http://hmmer.wustl.edu/ ).
+.\" ------------------------------------------------
+.\" Exit code section
+.\" ------------------------------------------------
+.SH EXIT CODE
+.LP
+On successful completion of its task,
+.B htop
+will return an exit code of 0. If an error occurs, a diagnostic message will be
+output on standard error and the exit code will be different from 0. When conflicting
+options where passed to the program but the task could nevertheless be completed, warnings
+will be issued on standard error.
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR pfsearch (1),
+.SM HMMER
+documentation
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/man/pfmake.1 b/man/pfmake.1
new file mode 100644
index 0000000..dffcf68
--- /dev/null
+++ b/man/pfmake.1
@@ -0,0 +1,537 @@
+.\"
+.\" $Id: pfmake.1,v 1.2 2003/08/11 12:09:14 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH PFMAKE 1 "August 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+pfmake \- generate a profile from a multiple sequence alignment 
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B pfmake
+[
+.B \-0123abcehlms
+] [
+.B \-E
+.I gap_extend
+] [
+.B \-F
+.I score_multiplier
+] [
+.B \-G
+.I gap_open
+] [
+.B \-H
+.I high_init/term
+] [
+.B \-I
+.I gap_increment
+] [
+.B \-L
+.I low_init/term
+] [
+.B \-M
+.I gap_multiplier
+] [
+.B \-S
+.I matrix_multiplier
+] [
+.B \-T
+.I gap_region
+] [
+.B \-X
+.I gap_excision
+] [
+.I ms_file
+|
+.B \-
+]
+.I score_matrix
+[
+.I profile
+] [
+.I parameters
+]
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B pfmake
+generates a
+.SM PROSITE
+profile from a multiple sequence alignment using methods
+described by Gribskov
+.IR "et al" .
+(1990), Luethy
+.IR "et al" .
+(1994), and Thompson
+.IR "et al" .
+(1994), with modifications to exploit the features of the new profile format.
+The file containing the multiple sequence alignment
+.RI ( ms_file )
+must be either in MSF format as generated by
+.SM GCG
+programs or by
+.B readseq
+(checksums are ignored) or in MSA format as created by
+.BR psa2msa (1).
+If
+.RB ' \- '
+is specified instead of a filename, the multiple sequence alignment is read
+from the standard input. The
+.I score_matrix
+file must also be in
+.SM GCG
+format. 
+.PP
+If an already existing
+.I profile
+is given as input via the third optional argument, the parameters of the
+DISJOINT, NORMALIZATION and CUT_OFF blocks will be read from input, all other
+profile parameters will be recalculated.
+Header and footer lines outside the matrix block will also be transferred 
+from input to output.
+.PP
+If no input profile is given, the disjointness definition will be set to
+PROTECT with borders leaving short unprotected tails (maximum 5 positions)
+at the beginning and at the end of the profile. Furthermore, one normalization mode  
+.RI ( n_score \ =\  raw_score \ /\  F ,
+where
+.I F
+is the output score multiplier,
+.I see
+below), and two cut-off values (level 0: 8.5, level -1: 6.5) 
+will be defined.   
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS 
+.\" --- ms_file ---
+.TP
+.I ms_file
+Input multiple sequence alignment.
+.br
+The content of the file must be either in MSF or in MSA format.
+If the filename is replaced by a
+.RB ' \- ',
+.B pfmake
+will read the input alignment from
+.BR stdin .
+.\" --- score_matrix ---
+.TP
+.I score_matrix
+Residue score matrix file.
+.br
+Contains the substitution scores for all pairs of residues
+of the sequence alphabet. The file must be in
+.SM GCG
+format.
+.\" --- profile ---
+.TP
+.I profile
+Optional profile file.
+.br
+If a filename is specified, the profile will be parsed and
+those parameters mentionned in the
+.I description
+section will be kept for the computation of the output profile.
+.\" --- 0 ---
+.TP
+.B \-0
+Global alignment mode.
+.br
+Initiation (termination) at low cost
+is possible only if the alignment starts at the beginning (end) of the 
+profile and at the beginning (end) of the sequence.
+.\" --- 1 ---
+.TP
+.B \-1
+Domain global alignment mode.
+.br
+Initiation (termination) at low cost
+is possible only at the beginning (end) of the profile; it may
+start and end at any position within the sequence. 
+.\" --- 2 ---
+.TP
+.B \-2
+Semi-global alignment mode.
+.br
+Initiation (termination) at low cost
+is possible if the alignment starts either at the beginning (end) of the 
+profile or at the beginning (end) of the sequences.
+.br
+This is the default alignment mode.
+.\" --- 3 ---
+.TP
+.B \-3
+Local alignment mode.
+.br
+Initiation (termination) at low cost
+is possible anywhere. The high-cost initiation/termination score
+(parameter 
+.IR H )
+is meaningless. 
+.\" --- a ---
+.TP
+.B \-a
+Causes
+.B pfsearch
+to weight gaps asymmetrically, as in Gribskov
+.IR "et al" .
+(1990).
+.\" --- b ---
+.TP
+.B \-b
+Block profile mode.
+.br
+By imposing additional constraints on the placement of
+insertions and deletions, this mode produces profiles that favor alignments
+with insertions and deletions positioned symmetrically around a few 
+positions. For each gap region a gap center is defined which
+usually corresponds to the place where gap excision has been applied
+(see parameter 
+.IR X ).
+If no gap excision has been applied, the position is chosen such as to 
+maximize the sum of deletion opening events before, and  
+deletion closing events after the gap center.
+Within a given gap region
+reduced deletion opening penalties are offered only before,
+reduced deletion closing penalties only after,
+and reduced insertion penalties only at the center.
+.br
+This option is incompatible with options 
+.B \-a
+and
+.B \-e
+and 
+automatically disables them.
+.\" --- c ---
+.TP
+.B \-c
+Circular profile.
+.br
+The topology of the profile is declared as 
+circular. The first and the last insert positions are merged 
+by retaining the higher value of each parameter type. 
+.\" --- e ---
+.TP
+.B \-e
+Enables endgap-weighting mode as implemented in the
+.SM GCG
+program
+.BR ProfileMake .
+Endgaps in the multiple sequence alignment will be interpreted
+as deletions relative to the other sequences and thus be
+considered for the delineation of gap regions. 
+The default is no endgap weighting as introduced by Thompson
+.IR "et al" .
+(1994) in the program
+.BR ProfileWeight .
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.\" --- l ---
+.TP
+.B \-l
+Remove output line length limit. Individual lines of the output profile
+can exceed a length of 132 characters, removing the need to wrap them over several lines. 
+.\" --- m ---
+.TP
+.B \-m
+Input multiple sequence alignment is in MSA format.
+.\" --- s ---
+.TP
+.B \-s
+Causes
+.B pfsearch
+to weight gaps symmetrically (default mode). The
+initial gap opening scores 
+.RI ( MD , \ MI )
+computed from the 
+maximal gap length and the command-line parameters 
+.IR E , \ G , \ I ,
+and 
+.IR M ,
+will be divided by two and the resulting value will be assigned to both 
+gap opening and gap closing scores 
+.RI ( MI , \ IM , \ MD , \ DM ).
+.\" --- E ---
+.TP
+.BI \-E\  gap_extend
+Gap extension penalty.
+.I See
+Gribskov
+.IR "et al" .
+(1990).
+.br
+Default: 0.2 (appropriate for 1/3 bit-scaled blosum45 matrix)  
+.\" --- F ---
+.TP
+.BI \-F\  score_multiplier
+Output score multiplier.
+.br
+On output, all profile scores are multiplied by
+this factor and rounded to nearest integers.
+.br
+Default: 100
+.\" --- G ---
+.TP
+.BI \-G\  gap_open
+Gap opening penalty.
+.I See
+Gribskov
+.IR "et al" .
+(1990).
+.br
+Default: 2.1 (appropriate for 1/3 bit-scaled blosum45 matrix)  
+.\" --- H ---
+.TP
+.BI \-H\  high_init/term
+High-cost initiation/termination score.
+.br
+This score will be applied to
+all external and internal initiation and termination scores corresponding
+to path matrix positions where initiation or termination at low cost is not
+possible according to the alignment mode specified.
+.br
+Default: * (low-value)
+.\" --- I ---
+.TP
+.BI \-I\  gap_increment
+Gap penalty multiplier increment.
+.I See
+Gribskov
+.IR "et al" .
+(1990).
+.br 
+Default: 0.1
+.\" --- L ---
+.TP
+.BI \-L\  low_init/term
+Low-cost initiation/termination score.
+.br
+This score will be applied to all external and internal initiation and 
+termination scores corresponding to path matrix positions where  
+initiation or termination at low cost is possible according to the alignment
+mode specified.
+.br
+Default: 0
+.\" --- M ---
+.TP
+.BI \-M\  gap_multiplier
+Maximum gap penalty multiplier.
+.I See
+Gribskov
+.IR "et al" .
+(1990). 
+Default: 0.333
+.\" --- S ---
+.TP
+.BI \-S\  matrix_multiplier
+Score matrix multiplier.
+.br
+On input, the numbers of the score matrix are multipled by this factor.
+.br
+Default: 0.1  
+.\" --- T ---
+.TP
+.BI \-T\  gap_region
+Gap region threshold.
+.br
+This is the minimal fraction of gap characters a column of the multiple sequence
+alignment must contain in order to be considered part of a gap region.
+.br
+Default: 0.01
+.\" --- X ---
+.TP
+.BI \-X\  gap_excision
+Gap excision threshold.
+.br
+This is the minimal fraction of non-gap characters a column of the multiple sequence
+alignment must contain in order to be converted into a match position. The 
+.I IM
+and 
+.I MI 
+transition scores of insert positions corresponding to excised columns
+are set to zero; the other parameters remain unchanged.
+.br
+Default: 0.5
+.\" ------------------------------------------------
+.\" Parameters section
+.\" ------------------------------------------------
+.SH PARAMETERS 
+.TP
+Note:
+for backwards compatibility, release 2.3 of the
+.B pftools
+package will parse the version 2.2 style parameters, but these are
+.I deprecated
+and the corresponding option (refer to the
+.I options
+section) should be used instead.
+.TP
+E=#
+Gap extension penalty.
+.br
+Use option
+.B \-E
+instead.
+.TP
+F=#
+Output score multiplier.
+.br
+Use option
+.B \-F
+instead.
+.TP
+G=#
+Gap opening penalty
+.br
+Use option
+.B \-G
+instead.
+.TP
+H=#
+High cost initiation/termination score.
+.br
+Use option
+.B \-H
+instead.
+.TP
+I=#
+Gap penalty multiplier increment.
+.br
+Use option
+.B \-I
+instead.
+.TP
+L=#
+Low cost initiation/termination score.
+.br
+Use option
+.B \-L
+instead.
+.TP
+M=#
+maximum gap penalty multiplier.
+.br
+Use option
+.B \-M
+instead.
+.TP
+S=#
+Score matrix multiplier.
+.br
+Use option
+.B \-S
+instead.
+.TP
+T=#
+Gap region threshold.
+.br
+Use option
+.B \-T
+instead.
+.TP
+X=#
+Gap excision threshold.
+.br
+Use option
+.B \-X
+instead.
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+.B pfmake
+\-b1 \-H 0.6 sh3.msf blosum45.cmp > sh3_block.prf    
+.IP
+Generates a domain-global block profile from a multiple alignment
+of SH3 domains using the blosum45 matrix. 
+The file
+.RI ' sh3.msf '
+contains a multiple alignment of 20 SH3 domains from
+.SM SWISS-PROT
+release 32 including sequence weights. 
+The file
+.RI ' blosum45.cmp '
+contains a 1/3 bits-scaled blosum45 matrix in
+.SM GCG
+format.
+.br
+Note that fragment matches (alignments to parts of the profile) are not 
+prohibited but penalized by the option 
+.B \-H
+.IR 0.6 . 
+.\" ------------------------------------------------
+.\" Exit code section
+.\" ------------------------------------------------
+.SH EXIT CODE
+.LP
+On successful completion of its task,
+.B pfmake
+will return an exit code of 0. If an error occurs, a diagnostic message will be
+output on standard error and the exit code will be different from 0. When conflicting
+options where passed to the program but the task could nevertheless be completed, warnings
+will be issued on standard error.
+.\" ------------------------------------------------
+.\" References section
+.\" ------------------------------------------------
+.SH REFERENCES
+.LP
+Bucher P, Karplus K, Moeri N & Hofmann, K. (1996).
+.I A flexible motif search
+.I technique based on generalized
+.I profiles.
+Comput. Chem. 
+.BR 20 :3-24.
+.LP
+Gribskov M, Luethy R & Eisenberg D (1990).
+.I Profile analysis. 
+Meth. Enzymol.
+.BR 183 :146-159.
+.LP
+Luethy R, Xenarios I & Bucher P (1994).
+.I Improving the sensitivity of the
+.I sequence profile method.
+Prot. Sci. 
+.BR 3 :139-146.
+.LP
+Thompson JD, Higgins DG & Gibson TJ (1994)
+.I Improved sensitivity of profile
+.I searches through the 
+.I use of sequence weights
+.I and gap excision.  
+Comput. Appl. Biosci.  
+.BR 10 :19-29.
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR pfsearch (1),
+.BR pfscan (1),
+.BR psa2msa (1),
+.BR psa (5),
+.BR xpsa (5)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/man/pfscale.1 b/man/pfscale.1
new file mode 100644
index 0000000..07b5bd7
--- /dev/null
+++ b/man/pfscale.1
@@ -0,0 +1,324 @@
+.\"
+.\" $Id: pfscale.1,v 1.2 2003/08/11 12:09:14 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH PFSCALE 1 "August 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+pfscale \- fit parameters of an extreme-value distribution to a profile score list 
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B pfscale
+[
+.B \-hl
+] [
+.B \-L
+.I log_base
+] [
+.B \-M
+.I mode_nb
+] [
+.B \-N
+.I db_size
+] [
+.B \-P
+.I upper_limit
+] [
+.B \-Q
+.I lower_limit
+] [
+.I score_list
+|
+.B \-
+] [
+.I profile
+] [
+.I parameters
+]
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B pfscale 
+fits the two parameters of an extreme-value distribution to a
+sorted score distribution obtained
+by searching a sequence database with a profile. 
+The file
+.RI ' score_list '
+is a sorted list of profile match scores generated by
+.BR pfsearch .
+If
+.RB ' \- '
+is specified instead of a filename, the score list is read from the
+standard input. The result is written to the standard output.
+.PP
+If the original profile is given as the second argument, 
+the normalization function with the lowest mode number or the lowest priority number
+specified within the profile will be 
+updated such as to produce -Log10 per-residue E-values. 
+If the second argument is omitted, the output 
+consists of a header line containing the normalization parameters
+followed by a modified score list, 
+showing
+.IR "score rank" ,
+.IR "original raw scores" ,
+.I log-cumulative frequencies
+and
+corresponding
+.I normalized scores
+next to each other.
+.PP
+Note that this program implements the significance estimation procedure for profile
+match scores described in Hofmann & Bucher (1995). 
+It has been used for the calculation of the normalization parameters of 
+all profiles in the
+.SM PROSITE
+database. 
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS 
+.\" --- ms_file ---
+.TP
+.I score_list
+Input score list.
+.br
+The file must contain a sorted list of scores. The first field
+of each line is considered as being a score, all other fields on the same line are ignored.
+The different fields of each line should be delimited by whitespaces.
+If the filename is replaced by a
+.RB ' \- ',
+.B pfscale
+will read the score list from
+.BR stdin .
+.\" --- profile ---
+.TP
+.I profile
+Optional profile file.
+.br
+If a filename is specified, the profile will be parsed and
+either the lowest priority mode or the mode number specified with option
+.B \-M
+will be scaled. All cut-off levels which use the specified mode number will also
+be updated.
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.\" --- l ---
+.TP
+.B \-l
+Remove output line length limit. Individual lines of the output profile
+can exceed a length of 132 characters, removing the need to wrap them over several lines. 
+.\" --- L ---
+.TP
+.BI \-L\  log_base
+Logarithmic base of the parameters of the estimated extreme-value 
+distribution. 
+The parameters reported by 
+.B pfscale
+are expressed as logarithms
+and thus can be inserted directly into a linear normalization function
+defined in a generalized profile.
+.br
+Default: 10
+.\" --- M ---
+.TP
+.BI \-M\  mode_nb
+Mode number to scale.
+.br
+Defines which mode number (and implicitly which cut-off level) of the
+input
+.SM PROSITE
+profile should be scaled. This overrides the default behaviour of scaling
+only the normalization mode with the lowest priority (or lowest mode number).
+All cut-off levels defined in the profile as using this mode number (via the
+.I MODE
+keyword) will be updated as well.
+.\" --- N ---
+.TP
+.BI \-N\  db_size
+Size of the database from which the input score list was derived.
+The searched database is typically a shuffled version
+of a real protein or nucleotide sequence database.
+.br
+Default: 14147368 (size of
+.SM SWISS-PROT
+release 30 and shuffled derivatives of it).
+.\" --- P ---
+.TP
+.BI \-P\  upper_limit
+Upper threshold of the probability range to which the extreme-value
+distribution will be fitted. 
+For instance: if
+.IR N =10'000'000
+and 
+.IR P =0.0001
+then profile match scores below rank 1000
+in the sorted input list
+(corresponding to occurrence probabilities > 0.0001)
+will be ignored.
+.br
+Default: 0.0001
+.\" --- Q ---
+.TP
+.BI \-Q\  lower_limit
+Lower threshold of the probability range to which the extreme-value
+distribution will be fitted. 
+For instance: if
+.IR N =10'000'000
+and
+.IR Q =0.000001
+then profile match scores above rank 10 in the sorted input list
+(corresponding to occurrence probabilities < 0.000001)
+will be ignored.
+.br
+Default: 0.000001
+.\" ------------------------------------------------
+.\" Parameters section
+.\" ------------------------------------------------
+.SH PARAMETERS
+.TP
+Note:
+for backwards compatibility, release 2.3 of the
+.B pftools
+package will parse the version 2.2 style parameters, but these are
+.I deprecated
+and the corresponding option (refer to the
+.I options
+section) should be used instead.
+.TP
+L=#
+Logarithmic base.
+.br
+Use option
+.B \-L
+instead.
+.TP
+M=#
+Mode number.
+.br
+Use option
+.B \-M
+instead.
+.TP
+N=#
+Database size.
+.br
+Use option
+.B \-N
+instead.
+.TP
+P=#
+Upper probability threshold.
+.br
+Use option
+.B \-P
+instead.
+.TP
+Q=#
+Lower probability threshold.
+.br
+Use option
+.B \-Q
+instead.
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+.B pfsearch
+\-fr \-C 200 sh3.prf shuffle20.seq |
+.B sort
+\-nr | 
+.B pfscale
+\-P 0.0001 \-Q 0.000001 \-
+.IP
+derives score-normalization parameters for the SH3 domain profile 
+in file
+.RB ' sh3.prf '. 
+The file
+.RB ' shuffle20.seq '
+contains a window-shuffled derivative of 
+.SM SWISS-PROT
+release 30 in Pearson/Fasta format (window-size 20). 
+Note that the implicit default of 
+.I N
+corresponds to the size of this database and thus 
+needs not to be specified on the command line.
+The cut-off value 200 for the
+.BR pfsearch (1)
+option
+.B \-C
+will produce about 2000 matches completely covering the range defined by
+the command line parameters
+.B \-P
+and 
+.B \-Q
+of
+.BR pfscale .
+A suitable cut-off value has to be guessed in advance 
+by computing a few optimal alignment scores for random sequences. 
+.\" ------------------------------------------------
+.\" Exit code section
+.\" ------------------------------------------------
+.SH EXIT CODE
+.LP
+On successful completion of its task,
+.B pfscale
+will return an exit code of 0. If an error occurs, a diagnostic message will be
+output on standard error and the exit code will be different from 0. When conflicting
+options where passed to the program but the task could nevertheless be completed, warnings
+will be issued on standard error.
+.\" ------------------------------------------------
+.\" Notes section
+.\" ------------------------------------------------
+.SH NOTES
+.TP
+(1)
+The current version of
+.B pfscale
+does not yet support the
+.BR xpsa (5)
+output format produced by
+.BR pfscan "(1) or " pfsearch (1).
+The score list should therefore be generated without the
+.BR pfscan "(1) and " pfsearch (1)
+option
+.BR \-k .
+.\" ------------------------------------------------
+.\" References section
+.\" ------------------------------------------------
+.SH REFERENCES
+.LP
+Hofmann K & Bucher P. (1995).
+.I The FHA-domain: a nuclear signalling domain found in protein kinases and transcription factors. 
+Trends Biochem. Sci.
+.BR 20 :47-349. 
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR pfsearch (1),
+.BR pfscan (1),
+.BR xpsa (5)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/man/pfscan.1 b/man/pfscan.1
new file mode 100644
index 0000000..427773d
--- /dev/null
+++ b/man/pfscan.1
@@ -0,0 +1,416 @@
+.\"
+.\" $Id: pfscan.1,v 1.5 2003/08/11 12:09:14 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH PFSCAN  1 "July 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+pfscan \- scan a protein or DNA sequence with a profile library 
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B pfscan
+[
+.B \-abdfhlLmruksvxyz
+] [
+.B \-C
+.I cut_off
+] [
+.B \-M
+.I mode_nb
+] [
+.B \-W
+.I width
+] [
+.I sequence
+|
+.B \-
+] [
+.I profile_library
+|
+.B \-
+] [
+.I parameters
+]
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B pfscan 
+compares a protein or nucleic acid sequence against a profile library. 
+The result is an unsorted list of profile-sequence matches written to
+the standard output.
+A variety of output formats containing different informations can be specified
+via the options
+.BR \-l , \ \-L , \ \-r , \ \-k , \ \-s , \ \-x , \ \-y
+and 
+.BR \-z .
+The file
+.RI ' sequence '
+contains a sequence in
+.SM EMBL/SWISS-PROT
+format (assumed by default) or in Pearson/Fasta
+format (indicated by option 
+.BR \-f ).
+The
+.RI ' profile_library '
+file contains a library of profiles in
+.SM PROSITE
+format. 
+If
+.RB ' \- '
+is specified instead of one of the filenames, the corresponding data is read
+from the standard input.
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS 
+.\" --- sequence ---
+.TP
+.I sequence
+Input query sequence.
+.br
+This DNA or protein sequence will be used to search for matches to
+a library of
+.SM PROSITE
+profiles.
+.br
+The content of the file must be either in
+.SM EMBL/SWISS-PROT
+(default) or in Pearson/Fasta format (option
+.BR \-f ).
+If the filename is replaced by a
+.RB ' \- ',
+.B pfscan
+will read the input sequence from
+.BR stdin .
+.\" --- profile_library ---
+.TP
+.I profile_library
+Library of
+.SM PROSITE
+profiles.
+.br
+This file should contain one or several
+.SM PROSITE
+profiles, against which the query sequence will be matched.
+Each entry in this library should be separated from the next by
+a line containing only the
+.RB ' // '
+code.
+If the filename is replaced by a
+.RB ' \- ',
+.B pfscan
+will read the profile library from
+.BR stdin .
+.\" --- a ---
+.TP
+.B \-a
+Report optimal alignment scores for 
+all profiles regardless of the cut-off value. 
+This option simultaneously forces 
+.IR DISJOINT = UNIQUE .   
+.\" --- b ---
+.TP
+.B \-b
+Search the complementary strand of the DNA sequence as well.
+.\" --- f ---
+.TP
+.B \-f
+Input sequence is in Pearson/Fasta format.
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.\" --- l ---
+.TP
+.B \-l
+Indicate the value of the highest cut-off level exceeded by the match score
+in the output list. 
+.\" --- L ---
+.TP
+.B \-L
+Indicate by character string the highest cut-off level exceeded by the match score
+in the output list.
+.br
+.RS
+.TP
+Note:
+The generalized profile format includes a text
+string field to specify a name for a cut-off level. The
+.B \-L
+option causes the program to display the first two characters of this text string
+(usually something like
+.RI ' ! ',\ ' ? ',\ ' ?? ',
+etc.) at the beginning of each match description.
+.RE
+.\" --- m ---
+.TP
+.B \-m
+Report individual matches for circular profiles.
+.br
+If the profile is circular, each match between a sequence and a profile can be composed
+of a stretch of individual matches of the profile. By default,
+.B pfscan
+reports only the total matched region. When this option is set, detailed information for 
+each individual match will be output as well.
+.RS
+.TP
+Note:
+The scoring system for most circular profiles has been optimized to find
+total matches, therefore the normalized scores of individual matches of a circular profile
+to a sequence should be considered with caution.
+.RE
+.\" --- r ---
+.TP
+.B \-r
+Use raw scores rather than normalized 
+scores for match selection.  The normalized score is not printed.
+.\" --- u ---
+.TP
+.B \-u
+Forces
+.IR DISJOINT = UNIQUE . 
+.\" --- C ---
+.TP
+.BI \-C\  cut_off
+Cut-off level to be used for match selection.
+.br
+The value of
+.RI ' cut_off '
+should be the numerical identifier of a cut-off level defined in the profile.
+The raw or normalized score of this level will then be used to include profile to
+sequence matches in the output list.
+.br
+If the specified level does not exist in the profile, the next higher (if 
+.I cut_off
+is negative) or next lower (if
+.I cut_off
+is positive) level defined is used instead.
+.br
+Type: integer
+.br
+Default: 0
+.\" --- M ---
+.TP
+.BI \-M\  mode_nb
+Normalization mode to use for score computation.
+.br
+The
+.RI ' mode_nb '
+specifies which normalization mode defined in the profile should be used
+to compute the normalized scores for profile to sequence matches. This
+option will override the profile's
+.I PRIORITY
+parameter.
+.br
+If the specified normalization mode does not exist in the profile, an error
+message will be output to standard error and the search is interrupted.
+.br
+Type: integer
+.br
+Default: lowest priority mode defined in the profile
+.\" ------------------------------------------------
+.\" Output modifiers subsection
+.\" ------------------------------------------------
+.SS Ouput modifiers
+.\" --- d ---
+.TP
+.B \-d
+Limit profile description length.
+.br
+If this option is set, the description of the profile on the header line
+will be limited in length. If the match information is longer than
+the output width specified using option
+.BR \-W ,
+the profile description will not be printed. Else the description will be truncated
+to fit the
+.B \-W
+value.
+.br
+By default, the profile description is not truncated. This option can not be used
+when option
+.B \-k
+is set.
+.\" --- k ---
+.TP
+.B \-k
+Use
+.BR xpsa (5)
+headers for output.
+.br
+When this option is set, all output types 
+.RI ( see
+below) will use
+an
+.BR xpsa (5)
+style header line. This format uses
+.IR keyword = value
+pairs to output alignment parameters. It is useful to transfer information between
+different sequence alignment tools.
+.\" --- s ---
+.TP
+.B \-s
+List the sequences of the matched regions as well. 
+The output will be a Pearson/Fasta-formatted sequence
+library.
+.\" --- v ---
+.TP
+.B \-v
+Suppress sequence/profile parsing warnings.
+If this option is set no warning messages will be printed on
+.IR stderr .
+Only fatal errors will be reported. This option should be used
+with caution.
+.\" --- x ---
+.TP
+.B \-x
+List profile-sequence alignments 
+in
+.BR psa (5)
+format. Please refer to the corresponding man page for more information. 
+.\" --- y ---
+.TP
+.B \-y
+Display alignments between the profile and the matched sequence regions in 
+a human-friendly pairwise alignment format.   
+.\" --- z ---
+.TP
+.B \-z
+Indicate starting and ending position of the matched profile range. The latter
+position will be given as a negative offset from the end of the profile. Thus
+the range [    1,    -1] means entire profile.
+.\" --- W ---
+.TP
+.BI \-W\  width
+Set alignment output width.
+.br
+The value of
+.RI ' width '
+specifies how many residues will be output on one line when any of the
+.BR \-s ,\  \-x \ or\  \-y
+options is set.
+.br
+Type: integer
+.br
+Default: 60
+.\" ------------------------------------------------
+.\" Parameters section
+.\" ------------------------------------------------
+.SH PARAMETERS
+.TP
+Note:
+for backwards compatibility, release 2.3 of the
+.B pftools
+package will parse the version 2.2 style parameters, but these are
+.I deprecated
+and the corresponding option (refer to the
+.I options
+section) should be used instead.
+.TP
+L=#
+Cut-off level.
+.br
+Use option
+.B \-C
+instead, not
+.BR \-L .
+.TP
+W=#
+Output width.
+.br
+Use option
+.B \-W
+instead.
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+.B pfscan
+\-s GTPA_HUMAN prosite13.prf
+.IP
+Scans the human GAP protein for matches to profiles in
+.SM PROSITE 
+release 13. 
+The file
+.RI ' GTPA_HUMAN ' 
+contains the 
+.SM SWISS-PROT
+entry P20936|GTPA_HUMAN.
+The profile library file
+.RI ' prosite13.prf ' 
+contains all profile entries of
+.SM PROSITE
+release 13.  
+The output is a Pearson/Fasta-formatted sequence library containing 
+all sequence regions of the input sequence matching a profile in the 
+profile library. 
+.TP
+(2)
+.B pfscan
+\-by \-C 2 CVPBR322 ecp.prf
+.IP
+Scans both strands of plasmid PBR322 for high-scoring (level 2) 
+.I E. coli
+promoter matches.   
+The sequence file
+.RI ' CVPBR322 '
+contains
+.SM EMBL
+entry J01749|CVPBR322.
+The profile library file
+.RI ' ecp.prf '
+contains a profile for
+.I E. coli  
+promoters.
+The output includes profile-sequence alignments in a human-friendly
+format. 
+.\" ------------------------------------------------
+.\" Exit code section
+.\" ------------------------------------------------
+.SH EXIT CODE
+.LP
+On successful completion of its task,
+.B pfscan
+will return an exit code of 0. If an error occurs, a diagnostic message will be
+output on standard error and the exit code will be different from 0. When conflicting
+options where passed to the program but the task could nevertheless be completed, warnings
+will be issued on standard error.
+.\" ------------------------------------------------
+.\" Bugs section
+.\" ------------------------------------------------
+.SH "BUGS"
+If the match selection is based on normalized scores 
+.RI ( i.e.
+option
+.B \-r
+is not set), rounding errors can lead to the exclusion of some matches even if
+the raw score is above or equal to the specified cut-off level score.
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR pfsearch (1),
+.BR pfmake (1),
+.BR psa (5),
+.BR xpsa (5)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/man/pfsearch.1 b/man/pfsearch.1
new file mode 100644
index 0000000..014b0f1
--- /dev/null
+++ b/man/pfsearch.1
@@ -0,0 +1,415 @@
+.\"
+.\" $Id: pfsearch.1,v 1.4 2003/07/24 08:40:52 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH PFSEARCH 1 "July 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+pfsearch \- search a protein or DNA sequence library for sequence segments 
+matching a profile
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B pfsearch
+[
+.B \-abdfhlLmruksvxyz
+] [
+.B \-C
+.I cut_off
+] [
+.B \-M
+.I mode_nb
+] [
+.B \-W
+.I width
+] [
+.I profile
+|
+.B \-
+] [
+.I sequence_library
+|
+.B \-
+] [
+.I parameters
+]
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B pfsearch 
+compares a query profile against a DNA or protein sequence library.
+The result is an unsorted list of profile-sequence matches written to the standard output. 
+A variety of output formats containing different informations can be specified 
+via the options 
+.BR \-l , \ \-L , \ \-r , \ \-k , \ \-s , \ \-x , \ \-y
+and 
+.BR \-z .
+The file
+.RI ' profile '
+contains a profile in
+.SM PROSITE
+format. The
+.RI ' sequence_library '
+file contains a sequence library in
+.SM EMBL/SWISS-PROT
+format (assumed by default) or in Pearson/Fasta
+format (indicated by option 
+.BR \-f ). 
+If
+.RB ' \- '
+is specified instead of one of the filenames, the corresponding data is read
+from the standard input.
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS 
+.\" --- profile ---
+.TP
+.I profile
+Input query profile.
+.br
+The
+.SM PROSITE
+profile contained in this file will be used to search for profile to sequence
+matches in a biological sequence library. If the filename is replaced by a
+.RB ' \- ',
+.B pfsearch
+will read the profile from
+.BR stdin .
+.\" --- sequence_library ---
+.TP
+.I sequence_library
+Library of DNA or protein sequences.
+.br
+This file should contain one or several
+.SM EMBL/SWISS-PROT
+(default) or Pearson/Fasta (option
+.BR \-f )
+formated DNA or protein sequences. The program
+.B pfsearch
+tries to identify matches between the input profile and all individual
+sequences of this library. If the filename is replaced by a
+.RB ' \- ',
+.B pfsearch
+will read the sequence library from
+.BR stdin .
+.\" --- a ---
+.TP
+.B \-a
+Report optimal alignment scores for 
+all sequences regardless of the cut-off value. 
+This option simultaneously forces 
+.IR DISJOINT = UNIQUE .   
+.\" --- b ---
+.TP
+.B \-b
+Search the complementary strands of DNA sequences as well.
+.\" --- f ---
+.TP
+.B \-f
+Input sequence library is in Pearson/Fasta format.
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.\" --- l ---
+.TP
+.B \-l
+Indicate the value of the highest cut-off level exceeded by the match score
+in the output list. 
+.\" --- L ---
+.TP
+.B \-L
+Indicate by character string the highest cut-off level exceeded by the match score
+in the output list.
+.br
+.RS
+.TP
+Note:
+The generalized profile format includes a text
+string field to specify a name for a cut-off level. The
+.B \-L
+option causes the program to display the first two characters of this text string
+(usually something like
+.RI ' ! ',\ ' ? ',\ ' ?? ',
+etc.) at the beginning of each match description.
+.RE
+.\" --- m ---
+.TP
+.B \-m
+Report individual matches for circular profiles.
+.br
+If the profile is circular, each match between a sequence and a profile can be composed
+of a stretch of individual matches of the profile. By default,
+.B pfsearch
+reports only the total matched region. When this option is set, detailed information for 
+each individual match will be output as well.
+.RS
+.TP
+Note:
+The scoring system for most circular profiles has been optimized to find
+total matches, therefore the normalized scores of individual matches of a circular profile
+to a sequence should be considered with caution.
+.RE
+.\" --- r ---
+.TP
+.B \-r
+Use raw scores rather than normalized 
+scores for match selection. The normalized score is not printed, this option is useful
+to create raw score lists to be used with
+.BR pfscale (1).
+.\" --- u ---
+.TP
+.B \-u
+Forces
+.IR DISJOINT = UNIQUE . 
+.\" --- C ---
+.TP
+.BI \-C\  cut_off
+Cut-off value to be used for match selection.
+.br
+The value of
+.RI ' cut_off '
+overwrites the level zero cut-off value specified in the profile.
+.br
+An integer argument is interpreted as a raw score value,
+a decimal argument as a normalized score value.
+.br
+Default: profile level 0 cut-off value (normalized score if present)
+.RS
+.TP
+Note:
+Compared to release 2.2, an integer value does
+.I not
+force option
+.BR \-r .
+Normalized scores will still be listed in output if an integer cut-off
+is specified on the command line but cut-off level computation will be
+based on raw score.
+.RE
+.\" --- M ---
+.TP
+.BI \-M\  mode_nb
+Normalization mode to use for score computation.
+.br
+The
+.RI ' mode_nb '
+specifies which normalization mode defined in the profile should be used
+to compute the normalized scores for profile to sequence matches. This
+option will override the profile's
+.I PRIORITY
+parameter.
+.br
+If the specified normalization mode does not exist in the profile, an error
+message will be output to standard error and the search is interrupted.
+.br
+Type: integer
+.br
+Default: lowest priority mode defined in the profile
+.\" ------------------------------------------------
+.\" Output modifiers subsection
+.\" ------------------------------------------------
+.SS Ouput modifiers
+.\" --- d ---
+.TP
+.B \-d
+Limit sequence description length.
+.br
+If this option is set, the description of the sequence on the header line
+will be limited in length. If the match information is longer than
+the output width specified using option
+.BR \-W ,
+the sequence description will not be printed. Else the description will be truncated
+to fit the
+.B \-W
+value.
+.br
+By default, the sequence description is not truncated. This option can not be used
+when option
+.B \-k
+is set.
+.\" --- k ---
+.TP
+.B \-k
+Use
+.BR xpsa (5)
+headers for output.
+.br
+When this option is set, all output types 
+.RI ( see
+below) will use
+an
+.BR xpsa (5)
+style header line. This format uses
+.IR keyword = value
+pairs to output alignment parameters. It is useful to transfer information between
+different sequence alignment tools.
+.\" --- s ---
+.TP
+.B \-s
+List the sequences of the matched regions as well. 
+The output will be a Pearson/Fasta-formatted sequence
+library.
+.\" --- v ---
+.TP
+.B \-v
+Suppress sequence/profile parsing warnings.
+If this option is set no warning messages will be printed on
+.IR stderr .
+Only fatal errors will be reported. This option should be used
+with caution.
+.\" --- x ---
+.TP
+.B \-x
+List profile-sequence alignments 
+in
+.BR psa (5)
+format. Please refer to the corresponding man page for more information. 
+.\" --- y ---
+.TP
+.B \-y
+Display alignments between the profile and the matched sequence regions in 
+a human-friendly pairwise alignment format.   
+.\" --- z ---
+.TP
+.B \-z
+Indicate starting and ending position of the matched profile range. The latter
+position will be given as a negative offset from the end of the profile. Thus
+the range [    1,    -1] means entire profile.
+.\" --- W ---
+.TP
+.BI \-W\  width
+Set alignment output width.
+.br
+The value of
+.RI ' width '
+specifies how many residues will be output on one line when any of the
+.BR \-s ,\  \-x \ or\  \-y
+options is set.
+.br
+Type: integer
+.br
+Default: 60
+.\" ------------------------------------------------
+.\" Parameters section
+.\" ------------------------------------------------
+.SH PARAMETERS 
+.TP
+Note:
+for backwards compatibility, release 2.3 of the
+.B pftools
+package will parse the version 2.2 style parameters, but these are
+.I deprecated
+and the corresponding option (refer to the
+.I options
+section) should be used instead.
+.TP
+C=#
+Cut-off value.
+.br
+Use option
+.B \-C
+instead.
+.TP
+W=#
+Output width. 
+.br
+Use option
+.B \-W
+instead.
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES 
+.TP
+(1)
+.B pfsearch
+\-f \-C 6.0 sh3.prf sh3.seq
+.IP
+Searches the Pearson/Fasta-formatted protein sequence library
+.RI ' sh3.seq '
+for SH3 domains with a cut-off value of 6.0 normalized score units.
+The file
+.RI ' sh3.seq '
+contains 20 SH3 domain-containing protein sequences from
+.SM SWISS-PROT
+release 32.
+The file
+.RI ' sh3.prf '
+contains the
+.SM PROSITE
+entry SH3/PS50002.
+.TP
+(2)
+.B pfsearch
+\-bx ecp.prf CVPBR322 |
+.B psa2msa   
+\-du |    
+.B readseq
+\-p -fMSF > ecp.msf
+.IP
+Generates a multiple sequence alignment  of potential
+.I E. coli
+promoters on both strands of plasmid pBR322.
+The file
+.RI ' ecp.prf ' 
+contains a profile for
+.I E. coli   
+promoters.  
+The file
+.RI ' CVPBR322 '
+ contains
+.SM EMBL
+entry J01749|CVPBR322.
+The result file
+.RI ' ecp.msf '
+can further be processed by
+.SM GCG
+programs accepting MSF files as input.
+.\" ------------------------------------------------
+.\" Exit code section
+.\" ------------------------------------------------
+.SH EXIT CODE
+.LP
+On successful completion of its task,
+.B pfsearch
+will return an exit code of 0. If an error occurs, a diagnostic message will be
+output on standard error and the exit code will be different from 0. When conflicting
+options where passed to the program but the task could nevertheless be completed, warnings
+will be issued on standard error.
+.\" ------------------------------------------------
+.\" Bugs section
+.\" ------------------------------------------------
+.SH "BUGS"
+The use of normalized scores as cut-off values can lead to a different behaviour when compared
+to raw scores. This is due to the inherent rounding inaccuracy of real numbers.
+The normalized scores used as cut-offs should be rounded down in order to circumvent this 
+problem.
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR pfscan (1),
+.BR pfmake (1),
+.BR psa2msa (1),
+.BR psa (5),
+.BR xpsa (5)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/man/pfw.1 b/man/pfw.1
new file mode 100644
index 0000000..03c2626
--- /dev/null
+++ b/man/pfw.1
@@ -0,0 +1,222 @@
+.\"
+.\" $Id: pfw.1,v 1.1 2003/05/12 11:50:03 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH PFW 1 "May 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+pfw \- weight sequences of a multiple sequence alignment
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B pfw
+[
+.B \-hm
+] [
+.B \-N
+.I shuffles
+] [
+.B \-R
+.I seed
+] [
+.B \-W
+.I weight
+] [
+.B \-X
+.I gap_excision
+] [
+.I ms_file
+|
+.B \-
+] [
+.I parameters
+]
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B pfw 
+computes new weights for individual sequences in a multiple sequence alignment
+using the method of Sibbald and Argos (1990).
+The file containing the multiple sequence alignment
+.RI (' ms_file ')
+must be either in MSF format as generated by
+.SM GCG
+programs or by
+.B readseq
+(checksums are ignored) or in MSA format as
+produced by
+.BR psa2msa (1).
+If
+.RB ' \- '
+is specified instead of a filename, the multiple sequence alignment is read 
+from the standard input.  
+.B pfw
+writes a new multiple sequence alignment with modified weights in either MSF or
+MSA format to the standard output.
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS 
+.\" --- ms_file ---
+.TP
+.I ms_file
+Input multiple sequence alignment file.
+.br
+This file contains a multiple sequence alignment in either MSF (default) 
+or MSA format. If the format is MSA,
+.B pfw
+will include the new weight of each sequence in the
+.SM FASTA
+header using the
+.BR xpsa (5)
+keyword
+.IR weight .
+It will thus replace any existing
+.IR weight = value
+pair in the header line.
+If the filename is replaced by a
+.RB ' \- ',
+.B pfw
+will read the multiple alignment from
+.BR stdin .
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.\" --- m ---
+.TP
+.B \-m
+Input multiple sequence alignment is in MSA format.
+.\" --- N ---
+.TP
+.BI \-N\  shuffles
+Number of shuffles per sequence to be performed.
+.br
+Note that an average relative precision of
+.I r
+percent is achieved by approximately
+.RI (100/ r )-squared
+shuffles.
+.br
+Type: integer
+.br
+Default: 100 (10% precision)
+.\" --- R ---
+.TP
+.BI \-R\  seed
+Seed for the random number generator.
+.br
+This must be a negative integer
+(zero or positive integers will be reset to negative integers).
+.br
+Type: integer
+.br
+Default: -123456789 
+.\" --- W ---
+.TP
+.BI \-W\  weight
+Total weight.
+.br
+The initially computed weights will be multiplied by a constant
+factor such that the sum of all weights equals this value. 
+.br
+Default: 1 
+.\" --- X ---
+.TP
+.BI \-X\  gap_excision
+Gap excision threshold.
+.br
+This is the minimal fraction of non-gap characters
+a column of the multiple sequence alignment must contain 
+in order to be considered for weighting.
+.br
+Default: 0.5 
+.\" ------------------------------------------------
+.\" Parameters section
+.\" ------------------------------------------------
+.SH PARAMETERS
+.TP
+Note:
+for backwards compatibility, release 2.3 of the
+.B pftools
+package will parse the version 2.2 style parameters, but these are
+.I deprecated
+and the corresponding option (refer to the
+.I options
+section) should be used instead.
+.TP
+N=#
+Shuffles per sequence.
+.br
+Use option
+.B \-N
+instead.
+.TP
+R=#
+Random number seed.
+.br
+Use option
+.B \-R
+instead.
+.TP
+W=#
+Total weight.
+.br
+Use option
+.B \-W
+instead.
+.TP
+X=#
+Gap excision threshold.
+.br
+Use option
+.B \-X
+instead.
+.\" ------------------------------------------------
+.\" Exit code section
+.\" ------------------------------------------------
+.SH EXIT CODE
+.LP
+On successful completion of its task,
+.B pfw
+will return an exit code of 0. If an error occurs, a diagnostic message will be
+output on standard error and the exit code will be different from 0. When conflicting
+options where passed to the program but the task could nevertheless be completed, warnings
+will be issued on standard error.
+.\" ------------------------------------------------
+.\" References section
+.\" ------------------------------------------------
+.SH REFERENCES
+.LP
+Sibbald PR & Argos P. (1990).
+.I Weighting aligned protein or nucleic
+.I acid sequences to correct for
+.I unequal representation.
+J. Mol. Biol.
+.BR 216 :813-818.
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR psa2msa (1),
+.BR psa (5),
+.BR xpsa (5)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/man/psa.5 b/man/psa.5
new file mode 100644
index 0000000..10bfc62
--- /dev/null
+++ b/man/psa.5
@@ -0,0 +1,197 @@
+.\"
+.\" $Id: psa.5,v 1.1 2003/05/12 11:51:45 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH PSA 5 "April 2003" "pftools 2.3" "File formats"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+psa \- biological sequence alignment file format
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B psa
+is an output format used by the
+.B pftools
+package to describe alignments between biological sequences (DNA or protein) and
+.I PROSITE
+profiles.
+.PP
+.B psa
+is apparented to the widely used biological sequence file format
+.IR fasta .
+Nevertheless it does not only describe a biological sequence, it is especially used to include
+information of alignments between a motif descriptor like a
+.I PROSITE
+profile and a given sequence. This information is included in the header and reflected
+in the structure of the sequence following the header line.
+.\" ------------------------------------------------
+.\" Syntax section
+.\" ------------------------------------------------
+.SH SYNTAX
+Each sequence in a
+.B psa
+alignment file or output must be preceded by a
+.I fasta
+header line.
+.br
+The general syntax of such a
+.I fasta
+header line is as follows:
+.sp
+.RS
+.BI > seq_id
+.RI "[ " free_text " ]" 
+.RE
+.sp
+The header must start with a
+.RB ' > '
+character which is directly followed by the
+.I seq_id
+field. This field is interpreted by most programs as the sequence's
+.I identifier
+and/or
+.I accession
+number. It ends at the first encountered whitespace character.
+.br
+The
+.B pftools
+programs will use the
+.I free_text
+to add information about the match score, position and description of the sequence or motif.
+Please refer to the man page of the corresponding programs for further information about
+the output formats.
+.br
+The header can only extend over one line. The following lines up to a new line starting with a
+.RB ' > '
+character or the end of the file are interpreted as sequence data.
+.sp
+The line following the header, starts the alignment data between a sequence and a 
+.I PROSITE
+profile. This data can span over several lines of different length.
+.br
+The data is formed by
+.I upper
+or
+.IR lower -case
+characters of the corresponding sequence alphabet (DNA or protein).
+The gap characters
+.RB ' . "' and '" - '
+are also supported.
+.br
+The alignment always has at least the length of the matching profile. Insertions or deletions
+detected during the motif/sequence alignment step will vary the length of the data reported,
+and can be identified using the following conventions:
+.RS
+.\" --- upper-case character ---
+.TP
+.I upper-case character
+Any upper-case character of the sequence alphabet identifies a
+.I match
+position between the sequence and the motif descriptor.
+.\" --- lower-case character ---
+.TP
+.I lower-case character
+A lower-case character of the sequence alphabet is used to symbolize an
+.I insertion
+in the sequence compared to the motif descriptor.
+.\" --- dash '-' character ---
+.TP
+.I '-' (dash) character
+A
+.RB ' - '
+character in the output identifies the presence of a
+.I deletion
+in the sequence compared to the motif descriptor.
+.RE
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+>YD28_SCHPO 556 pos. 291 - 332 sp|Q10256|YD28_SCHPO
+.br
+PTDPGlnsKIAQLVSMGFDPLEAAQALDAANGDLDVAASFLL--
+.br
+
+This is an example of the output produced by
+.BR pfsearch (1)
+using the '-x' (i.e. 
+.B psa
+output) option. The first line starting with the
+.RB ' > '
+character is the
+.I fasta
+header. It also contains information about the raw score of the alignment as well as its
+position in the input sequence.
+.br
+On the next line you find the alignment proper. Starting at position 6, we can find an
+.I insertion
+of the
+.RI ' lns '
+residues in the sequence compared to the motif. The last two positions of the motif are
+not present in the sequence (i.e. they are
+.IR deleted ).
+This is indicated by the presence of two 
+.RB ' - '
+(dash) characters at the end of the alignment.
+.RE
+.\" ------------------------------------------------
+.\" Notes section
+.\" ------------------------------------------------
+.SH "NOTES"
+.TP
+(1)
+The
+.BR xpsa (5)
+format defines a more strict syntax of the header line, allowing the exchange of information between
+different sequence analysis tools. It uses
+.IR keyword = value
+pairs to annotate the current match between a sequence and a motif descriptor. This syntax can be
+easily parsed and extended, according to the needs of bioinformatic tools.
+.RE
+
+.TP
+(2)
+The current implementation of the
+.B pftools
+package does not use the
+.RB ' . '
+(dot) character in the 
+.B psa
+output. Nevertheless
+.BR psa2msa (1)
+will read it and interpret it in the same manner as the
+.RB ' - '
+(dash) character.
+.RE
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR xpsa (5),
+.BR pfsearch (1),
+.BR pfscan (1),
+.BR pfw (1),
+.BR pfmake (1),
+.BR psa2msa (1)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH "AUTHOR"
+This manual page was originally written by Volker Flegel.
+.br
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
+
diff --git a/man/psa2msa.1 b/man/psa2msa.1
new file mode 100644
index 0000000..ae7a911
--- /dev/null
+++ b/man/psa2msa.1
@@ -0,0 +1,247 @@
+.\"
+.\" $Id: psa2msa.1,v 1.2 2003/08/11 12:09:14 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH PSA2MSA 1 "August 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+psa2msa \-  reformat PSA file to Pearson/Fasta multiple sequence alignment file 
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B psa2msa 
+[
+.B \-dhlpu
+] [
+.B \-M
+.I insert_len
+] [
+.B \-W
+.I width
+] [
+.I psa_file
+|
+.B \-
+] [
+.I parameters
+]
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B psa2msa
+reformats a
+.BR psa (5)
+formatted profile-sequence alignment file into a
+Pearson/Fasta-formatted multiple sequence alignment file.
+The result is written to the standard output. 
+.RI ' psa_file '
+contains alignments of several sequence segments to the same profile 
+in
+.BR psa (5)
+format. Such a file is typically generated by the programs
+.BR pfsearch (1)
+or
+.BR pfscan (1)
+using option
+.BR \-x .
+The output can be converted into other formats
+.RI ( e.g. 
+MSF) with the aid of the public domain
+program
+.B readseq
+(available from
+.IR ftp://ftp.bio.indiana.edu/molbio/readseq )
+or used directly with
+.BR pfmake (1)
+or
+.BR pfw (1). 
+If
+.RB ' \- '
+is specified instead of a filename, the
+.BR psa (5)
+alignment is read from the standard input.
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS
+.\" --- psa_file ---
+.TP
+.I psa_file
+Input multiple sequence alignment.
+.br
+The content of the file must be in
+.BR psa (5)
+format.
+If the filename is replaced by a
+.RB ' \- ',
+.B psa2msa
+will read the input alignment from
+.BR stdin .
+.\" --- d ---
+.TP
+.B \-d
+Replace periods
+.RB ' . '
+by dashes
+.RB ' \- '
+on output.
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.\" --- l ---
+.TP
+.B \-l
+Replace upper case letters by lower case letters on output.
+.\" --- p ---
+.TP
+.B \-p
+Replace dashes
+.RB ' \- '
+by periods
+.RB ' . '
+on output.
+.\" --- u ---
+.TP
+.B \-u
+Replace lower case letters by upper case letters on output.
+.\" --- M ---
+.TP
+.BI \-M\  insert_len
+Maximal length of an insertion.
+.br
+If the real length of an insertion exceeds this value, the excess number 
+of residues will be deleted from the center of the insertion. 
+A negative value of
+.RI ' insert_len '
+means no upper limit for the length of an insertion
+.RI ( i.e.
+no residues will be deleted from an insertion).
+If 
+.RI ' insert_len '
+is zero, all insert positions will be removed.
+Setting an insertion length limit helps to keep the resulting alignment
+at manageable size.
+.br
+Type: integer
+.br 
+Default: -1 
+.RS
+.TP
+Note:
+The meaning of the value
+.RI ' 0 '
+for this parameter has been changed compared to version 2.2 of the
+.B pftools
+package.
+.RE
+.\" --- W ---
+.TP
+.BI \-W\  width
+Set alignment output width.
+.br
+The value of
+.RI ' width '
+specifies how many residues will be output on one line.
+.br
+Type: integer
+.br
+Default: 60
+.\" ------------------------------------------------
+.\" Parameters section
+.\" ------------------------------------------------
+.SH PARAMETERS
+.TP
+Note:
+for backwards compatibility, release 2.3 of the
+.B pftools
+package will parse the version 2.2 style parameters, but these are
+.I deprecated
+and the corresponding option (refer to the
+.I options
+section) should be used instead.
+.TP
+M=#
+Maximal insertion length
+.br
+Use option
+.B \-M
+instead.
+.TP
+W=#
+Output width.
+.br
+Use option
+.B \-W
+instead.
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+.B pfsearch
+\-bx ecp.prf CVPBR322 | 
+.B psa2msa
+\-du |
+.B readseq
+\-p \-fMSF > ecp.msf
+.IP
+Generates a multiple sequence alignment of predicted
+.I E. coli
+promoters on both strands of plasmid pBR322.
+The file
+.RI ' ecp.prf '
+contains a profile for 
+.I E. coli
+promoters.  
+The file
+.RI ' CVPBR322 '
+contains
+.SM EMBL
+entry J01749|CVPBR322.
+The result in
+.RI ' ecp.msf '
+can further be processed by
+.SM GCG
+programs accepting MSF files as input.
+.\" ------------------------------------------------
+.\" Exit code section
+.\" ------------------------------------------------
+.SH EXIT CODE
+.LP
+On successful completion of its task,
+.B psa2msa
+will return an exit code of 0. If an error occurs, a diagnostic message will be
+output on standard error and the exit code will be different from 0. When conflicting
+options where passed to the program but the task could nevertheless be completed, warnings
+will be issued on standard error.
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR pfscan (1),
+.BR pfsearch (1),
+.BR pfmake (1),
+.BR pfw (1),
+.BR psa (5),
+.BR xpsa (5)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/man/ptof.1 b/man/ptof.1
new file mode 100644
index 0000000..e6967e0
--- /dev/null
+++ b/man/ptof.1
@@ -0,0 +1,317 @@
+.\"
+.\" $Id: ptof.1,v 1.2 2003/08/11 12:09:14 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH PTOF 1 "August 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+ptof \- convert a protein profile into a frame-search profile  
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B ptof
+[
+.B \-hlr
+] [
+.B \-B
+.I init/term_score
+] [
+.B \-F
+.I frameshift
+] [
+.B \-I
+.I insert_multiplier
+] [
+.B \-X
+.I stop_codon
+] [
+.B \-Y
+.I intron_open
+] [
+.B \-Z
+.I intron_extend
+] [
+.I protein_profile
+|
+.B \-
+] [
+.I parameters
+]
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B ptof
+converts a protein profile (generated for instance by pftools
+programs 
+.BR pfmake (1), 
+.BR gtop (1)
+or
+.BR htop (1))
+into a so-called
+.RI \(dq frame-search\ profile \(dq.
+A frame-search profile is used to search an
+.RI \(dq interleaved\ frame-translated \(dq
+DNA sequence (generated by pftools program
+.BR 2ft (1))
+for occurrences of a protein sequence motif.
+An
+.RI \(dq interleaved\ frame-translated \(dq
+DNA sequence is an amino acid sequence corresponding to the 
+.I N-2
+overlapping codons of a DNAsequence of length
+.IR N .
+Note that in such a sequence, the character
+.RB ' O '
+is used to represent stop codons.
+.LP
+The conversion procedure works as follows: The protein profile is 
+expanded in length by a factor of three to accommodate three translated
+codons per original match position.
+Two dummy match positions are placed between two consecutive significant match positions
+imported from the original profile. 
+The original insert positions are placed between pairs of adjacent dummy match positions.
+The initiation, termination, and transition scores of the original insert
+positions are left unchanged; the
+insert extension scores are divided by a factor of 3, or by the value of the command-line
+option 
+.BR \-I .  
+The two insert positions flanking the significant match positions 
+serve to accommodate frame-shift errors and introns, respectively.
+The frame-shift insert position allows free insertion opening combined
+with a high insert extension penalty (command-line option 
+.BR \-F ) 
+whereas the intron insertion position has high opening but low extension penalties
+(command line options 
+.B \-Y
+and
+.BR \-Z ).
+The deletion opening and closing penalties next to the significant 
+match positions are set to values that ensure that the total cost of a single-base
+deletion is the same as the cost of  
+a single base-insertion at a frame-shift insert position.
+Furthermore, the alphabet of the original profile is extended by the stop codon symbol
+.RB ' O ' 
+which is assigned a constant negative value (command-line option
+.BR \-X )
+at significant match positions, and zero at dummy match positions. At insert positions,
+it is set to the average of the other insert extension scores.
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS
+.\" --- protein_profile ---
+.TP
+.I protein_profile
+Input protein profile.
+.br
+The protein profile contained in this file will be converted into a frame-search profile.
+If the filename is replaced by a
+.RB ' \- ',
+.B ptof
+will read the profile from
+.BR stdin .
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.\" --- l ---
+.TP
+.B \-l
+Remove output line length limit. Individual lines of the output profile
+can exceed a length of 132 characters, removing the need to wrap them over several lines. 
+.\" --- r ---
+.TP
+.B \-r
+Frame-search parameters are given in normalized score units. This option
+will only be considered if a linear normalization function with
+priority over all other normalization functions is specified 
+in the profile. 
+In this case, the frame-search scores specified on the command line will be 
+divided by the slope
+.RI ( R2
+parameter) of the normalization function. 
+This option is particularly useful for profiles which are 
+already scaled in units that can be interpreted as \(miLog(P)-values, 
+.I e.g.
+bits.  
+.\" --- B ---
+.TP
+.BI \-B\  init/term_score
+Minimal initiation and termination score.
+.br
+All internal and external initiation and termination scores will be set to this 
+value if the corresponding value in the original profile is lower than 
+this value.
+This parameter is used to impose a more
+local alignment behavior on the frame-search profile in order to
+deal with discontinuities in DNA sequences (long introns,
+alternative splicing, chimeric clones, 
+.IR etc. )
+.br 
+Default: \-50 (\-0.5 with option
+.BR \-r )
+.\" --- F ---
+.TP
+.BI \-F\  frameshift
+Frame-shift error penalty.
+.br
+Default: \-100 (\-1.0 with option
+.BR \-r ) 
+.\" --- I ---
+.TP
+.BI \-I\  insert_multiplier
+Insert score multiplier.
+.br
+The values of the original
+insert extension scores will be multiplied by this
+factor in order to compensate for the fact that 
+a single amino acid corresponds to three overlapping
+codon positions in the target sequence.
+.br
+Default: 1/3
+.\" --- X ---
+.TP
+.BI \-X\  stop_codon
+Stop codon penalty.
+.br
+Default: \-100 (\-1.0 with option
+.BR -r )
+.\" --- Y ---
+.TP
+.BI \-Y\  intron_open
+Intron opening penalty.
+.br
+Default: \-300 (\-3.0 with option
+.BR \-r ) 
+.\" --- Z ---
+.TP
+.BI \-Z\  intron_extend
+Intron extension penalty.
+.br
+Default: \-1 (\-0.01 with option
+.BR \-r )
+.\" ------------------------------------------------
+.\" Parameters section
+.\" ------------------------------------------------
+.SH PARAMETERS
+.TP
+Note:
+for backwards compatibility, release 2.3 of the
+.B pftools
+package will parse the version 2.2 style parameters, but these are
+.I deprecated
+and the corresponding option (refer to the
+.I options
+section) should be used instead.
+.TP
+B=#
+Minimal initiation and termination score.
+.br
+Use option
+.B \-B
+instead.
+.TP
+F=#
+Frame-shift error penalty.
+.br
+Use option
+.B \-F
+instead.
+.TP
+I=#
+Insert score multiplier.
+.br
+Use option
+.B \-I
+instead.
+.TP
+X=#
+Stop codon penalty.
+.br
+Use option
+.B \-X
+instead.
+.TP
+Y=#
+Intron opening penalty.
+.br
+Use option
+.B \-Y
+instead.
+.TP
+Z=#
+Intron extension penalty.
+.br
+Use option
+.B \-Z
+instead.
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+.B ptof
+\-r \-F -1.2 \-I 0.6 \-X -1.5 \-B -0.5 sh3.prf > sh3.fsp
+.br
+.B 2ft \-
+< R76849.seq | 
+.B pfsearch 
+\-fy \-C 5.0 sh3.fsp \- 
+.IP
+The protein domain profile in 
+.RI ' sh3.prf '
+is first converted into a frame-search profile 
+.RI ' sh3.fsp '.
+Then both strands of the Fasta-formatted EST sequence in
+.RI ' R76849.seq '
+(GenBank/EMBL-accession: R76849) are converted into interleaved frame-translated
+protein sequences and searched for SH3 domains with the frame-search profile 
+generated in the preceding step.
+.IP
+The output may be compared to the result of a more conventional
+search strategy using a protein profile in conjunction with a six-frame
+translation of the same DNA sequence:
+.IP
+.B 6ft \-
+< R76849.seq | 
+.B pfsearch 
+\-fy \-C 5.0 sh3.prf \-
+.\" ------------------------------------------------
+.\" Exit code section
+.\" ------------------------------------------------
+.SH EXIT CODE
+.LP
+On successful completion of its task,
+.B ptof
+will return an exit code of 0. If an error occurs, a diagnostic message will be
+output on standard error and the exit code will be different from 0. When conflicting
+options where passed to the program but the task could nevertheless be completed, warnings
+will be issued on standard error.
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR pfscan (1),
+.BR pfsearch (1),
+.BR 2ft (1),
+.BR 6ft (1)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/man/ptoh.1 b/man/ptoh.1
new file mode 100644
index 0000000..7b866e6
--- /dev/null
+++ b/man/ptoh.1
@@ -0,0 +1,295 @@
+.\"
+.\" $Id: ptoh.1,v 1.1 2003/05/12 11:50:03 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH PTOH 1 "April 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+ptoh \- converts a
+.SM PROSITE
+formatted profile into an approximately equivalent HMM
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B ptoh
+[
+.B \-fFhs
+] [
+.B \-D
+.I del_to_del
+] [
+.B \-I
+.I ins_to_ins
+] [
+.B \-L
+.I log_base
+] [
+.I profile
+|
+.B \-
+] [
+.I random_model
+] [
+.I parameters
+]
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B ptoh
+converts a
+.SM PROSITE
+formatted generalized profile into an approximately equivalent
+.SM HMMER1
+(default) or
+.SM SAM 
+formatted hidden Markov model (HMM).
+The file
+.RI ' profile '
+is a nucleic acid or protein profile in
+.SM PROSITE
+format. If
+.RB ' \- '
+is specified instead of a filename, the profile is read from the standard input.
+The
+.RI random_model
+file contains a simple null-model in the format used by the HMM search programs
+of the
+.SM HMMER1
+package.
+The result is written to the standard output.
+.LP
+The profile-to-HMM conversion method is described in Bucher
+.I et al.
+(1996). 
+All profile scores corresponding to transitions which are not supported
+by the HMM architectures of the
+.SM SAM
+and
+.SM HMMER1
+packages, are ignored. 
+If no random model is specified on the command line, 
+the null model given in the GENERAL_SPEC data block of the profile is used. 
+If this is also missing, a flat residue distribution
+is assumed.
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS 
+.\" --- profile ---
+.TP
+.I profile
+Input
+.SM PROSITE
+generalized profile.
+The motif described by the profile will be converted into an approximately
+equivalent HMM. If the filename is replaced by a
+.RB ' \- ',
+.B ptoh
+will read the input profile from
+.BR stdin .
+.\" --- random_model ---
+.TP
+.I random_model
+Input random model file.
+.br
+This file should contain a simple null-model using the same residue alphabet as
+the
+.IR profile .
+.\" --- f ---
+.TP
+.B \-f
+Generate free insert-modules (FIMs) at the beginning
+and at the end of the model which approximately emulate domain-global
+or semi-global alignment mode 
+.RI ( see
+Bucher
+.I et al.
+1996).
+.\" --- F ---
+.TP
+.B \-F
+Generate free insert-modules (FIMs) at the beginning
+and at the end of the model which approximately emulate 
+local alignment mode. 
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.RS
+.TP
+Note:
+The meaning of this option has changed between version 2.2 and the current
+release of the
+.B pftools
+package. No option is needed to get
+.SM HMMER1
+output format because it is the default
+.RI ( see
+option
+.BR \-s ).
+.RE
+.\" --- s ---
+.TP 
+.B \-s
+Output in
+.SM SAM
+format.
+.\" --- D ---
+.TP
+.BI \-D\  del_to_del
+Delete-to-delete transition probabilities.
+.br
+They are used in conjunction with FIMs (options 
+.BR \-f ,
+.BR \-F ).
+This value will be imposed on all delete-to-delete transitions of the model.
+The other outgoing transitions from the affected delete states will be renormalized to satisfy
+the "sum to one" requirement. 
+Note that the application of the 
+.I D
+parameter precedes the application of the
+.I I
+parameter.
+Delete-to-delete probabilities at the beginning and at the end of the
+model may thus change again as a result of renormalizations  
+following the application of the  
+.I I
+parameter.
+.br
+Default: 0.9
+.\" --- I ---
+.TP
+.BI \-I\  ins_to_ins
+Insert-to-insert transition probabilities.
+.br
+They are used in the FIMs (options 
+.BR \-f ,
+.BR \-F ).
+This value will be imposed on the first and the last match-to-insert and insert-to-insert 
+transition probabilities of the model. 
+The other outgoing transitions of the affected states 
+will be renormalized such as to satisfy the "summing to one" requirement.
+If the 
+.B \-F 
+option is simultaneously set, the
+.I I
+parameter will also be imposed on the insert-to-delete transition probability
+at the beginning, and on the delete-to-insert transition probability at the 
+end of the model.
+.br
+Default: 0.99
+.\" --- L ---
+.TP
+.BI \-L\  log_base
+Logarithmic base.
+.br
+Specifies the logarithmic base used for conversion of the profile scores into HMM probabilities
+(The profile scores are interpreted as log-odds ratios,
+.I see
+Bucher
+.I et al.
+1996). This value over-writes the logarithmic base 
+specified within the profile by the optional 
+.I LOG_BASE
+parameter.
+.br
+Default: 1.0233739 (1/30 bit units)
+.\" ------------------------------------------------
+.\" Parameters section
+.\" ------------------------------------------------
+.SH PARAMETERS 
+.TP
+Note:
+for backwards compatibility, release 2.3 of the
+.B pftools
+package will parse the version 2.2 style parameters, but these are
+.I deprecated
+and the corresponding option (refer to the
+.I options
+section) should be used instead.
+.TP
+D=#
+Delete-to-delete transition probabilities.
+.br
+Use option
+.B \-D
+instead.
+.TP
+I=#
+Insert-to-insert transition probabilities.
+.br
+Use option
+.B \-I
+instead.
+.TP
+L=#
+Logarithmic base.
+.br
+Use option
+.B \-L
+instead.
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+.B ptoh
+\-Fs \-L 1.0233739 sh3.prf standard.random > sh3.hmm
+.IP
+Generates a
+.SM SAM
+formatted HMM for the SH3 domain from a profile. The file
+.RI ' sh3.prf '
+contains the source profile in
+.SM PROSITE
+format.
+The file
+.RI ' standard.random '
+contains the null-model used for conversion of the log-odds ratios into probabilities.
+The logarithmic base 1.0233739 corresponds to 1/30 bits, the implicit scale
+of the profile.
+The 
+.B \-F 
+option causes the HMM to emulate local alignment (fragment search) mode.
+.\" ------------------------------------------------
+.\" Exit code section
+.\" ------------------------------------------------
+.SH EXIT CODE
+.LP
+On successful completion of its task,
+.B ptoh
+will return an exit code of 0. If an error occurs, a diagnostic message will be
+output on standard error and the exit code will be different from 0. When conflicting
+options where passed to the program but the task could nevertheless be completed, warnings
+will be issued on standard error.
+.\" ------------------------------------------------
+.\" References section
+.\" ------------------------------------------------
+.SH REFERENCES
+.LP
+Bucher P, Karplus K, Moeri N & Hofmann, K. (1996).
+.I A flexible motif search
+.I technique based on generalized
+.I profiles.
+Comput. Chem.
+.BR 20 :3-24.
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/man/xpsa.5 b/man/xpsa.5
new file mode 100644
index 0000000..d809054
--- /dev/null
+++ b/man/xpsa.5
@@ -0,0 +1,396 @@
+.\"
+.\" $Id: xpsa.5,v 1.5 2003/08/11 12:09:14 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH XPSA 5 "July 2003" "pftools 2.3" "File formats"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+xpsa \- extended psa header
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B xpsa
+is an extension of the
+.BR psa (5)
+file format used by the
+.B pftools
+package to describe and store biological sequences.
+.PP
+.B xpsa
+uses
+.IR keyword = value
+pairs in the header to include information about the sequence or the alignment
+between the sequence and a
+.I PROSITE
+profile (or any other kind of motif). The syntax is therefore easily extensible. In this man-page, we focus on 
+the keywords defined and used by the
+.B pftools
+package. 
+.PP
+In the following text we will use the more general term
+.RI ' motif '
+when in fact our discussion refers specifically to
+.IR "PROSITE profiles" .
+Nevertheless the keywords defined here can be used by any kind of sequence analysis tool
+to store and transfer information.
+.PP
+None of the defined keywords are mandatory and analysis tools have often a length limit imposed
+on the header line. In order to keep the header line reasonnably short and user readable,
+these tools can easily remove individual
+.IR keyword = value
+pairs which are not important to the specific task at hand.
+.\" ------------------------------------------------
+.\" Syntax section
+.\" ------------------------------------------------
+.SH SYNTAX
+The general syntax of the
+.B xpsa
+header is given below. For examples please refer to the corresponding
+.I examples
+section.
+.PP
+The biological sequence itself starts on the next line following the header and may extend over several lines.
+If several sequences are contained in the same file, each must be preceded by a header line.
+.PP
+.sp
+Syntax of the header line:
+.sp
+.RS
+.BI > seq_id / seq_pos
+{
+.RI "[ "  keyword = value " | " free_text " ]" 
+}
+.RE
+.sp
+The header must start with a
+.RB ' > '
+followed by the fields detailed below:
+.RS
+.\" --- seq_id ---
+.TP
+.I seq_id
+typically the 
+.IR accession \ number\ and\  identifier
+of the sequence.  This text field should not contain any spaces.
+.TP
+Note:
+If the input sequences have a well defined accession number and identifier (as is
+the case with
+.SM SWISS-PROT
+entries)
+.BR pfsearch "(1) and " pfscan (1)
+will use as
+.IR seq_id
+the accession number separated by a
+.RB ' | '
+from the identifier.
+.br
+If the input sequences are in
+.SM FASTA
+format, no guess can be made about the accession number or the identifier. Therefore
+.BR pfsearch "(1) and " pfscan (1)
+will use as
+.IR seq_id
+all text following the
+.RB ' > '
+character up to the first whitespace.
+.\" --- seq_pos ---
+.TP
+.I seq_pos
+this field describes the sequence coordinates where a
+motif matches. The positions are generally given as
+.IR start_pos \- end_pos
+pairs.
+.br
+If present, this field is separated from the
+.I seq_id
+by a
+.RB ' / '
+character.
+.\" --- keyword=value ---
+.TP
+.IR keyword = value
+is an optional list of defined 
+.IR keyword = value
+pairs. Each pair should be separated from the next or from free text by whitespaces.
+.br
+The
+.I keyword
+is case sensitive in the current implementation of the
+.B pftools
+package. It should not exceed 24 characters in length.
+.br
+The
+.I value
+can be numeric or alphanumeric. Values containing whitespaces should be enclosed in either
+.I single quotes
+or
+.IR "double quotes" .
+If the same type of quote appears inside the value it must be escaped using the
+.RB ' \(rs '
+character.
+.RS
+.TP
+Note:
+the
+.B pftools
+do not currently produce quote enclosed values.
+.RE
+.\" --- free_text ---
+.TP
+.I free_text
+typically this is a description of the sequence. It should not contain any of the defined
+.IR keyword = value
+pairs.
+.PP
+.\" ------------------------------------------------
+.\" Keywords subsection
+.\" ------------------------------------------------
+.SS Keywords
+.RE
+Keywords used by the
+.BR pfsearch "(1) and " pfscan (1)
+programs:
+.RS
+.\" --- level ---
+.TP
+.I level
+the highest cut-off level (as a value) exceeded by the alignment.
+.br
+The characters
+.RB ' NA '
+indicate that the alignment score does not exceed any of the cut-off levels defined in the motif.
+.\" --- level_tag ---
+.TP
+.I level_tag
+the highest cut-off level (as a character string) exceeded by the alignment.
+.br
+The characters
+.RB ' NA '
+indicate that the alignment score does not exceed any of the cut-off levels defined in the motif.
+.RS
+.TP
+Note:
+.BR pfsearch "(1) and " pfscan (1)
+only report the first 2 characters of the level text string.
+.RE
+.\" --- match_nb ---
+.TP
+.I match_nb
+if the motif matches several times on the same sequence, each alignment is numbered incrementally.
+.br
+If the motif is circular, each single repeat is numbered incrementally with the key 
+.I repeat_nb
+(see below).
+.\" --- match_parent ---
+.TP
+.I match_parent
+for each single match of a circular motif, this key references the number of the parental total match of the circular
+motif.
+.RS
+.TP
+Note:
+if a circular motif matches only once on a given sequence,
+.BR pfsearch "(1) and " pfscan (1)
+do not report this key.
+.RE
+.\" --- match_type ---
+.TP
+.I match_type
+identifies the type of match. Either
+.B region
+for a complete match of a motif to a sequence, or
+.B repeat
+for a single repeat of a circular motif.
+.\" --- motif ---
+.TP
+.I motif
+the name and/or identifier of the motif.
+.\" --- motif_start ---
+.TP
+.I motif_start
+the motif position where the alignment begins.
+.\" --- motif_end ---
+.TP
+.I motif_end
+negative offset from the end of the alignment to the end of the motif.
+.\" --- norm_score ---
+.TP
+.I norm_score
+the normalized score of the alignment.
+.\" --- raw_score ---
+.TP
+.I raw_score
+the raw score of the alignment.
+.\" --- repeat_nb ---
+.TP
+.I repeat_nb
+if the motif is circular, each individual repeat is numbered incrementally with this keyword.
+.\" --- seq_end ---
+.TP
+.I seq_end
+negative offset from the end of the alignment to the end of the sequence.
+.br
+In combination with the information given by 
+.I seq_pos
+this allows to deduce the length of the query sequence.
+.\" --- strand ---
+.TP
+.I strand
+the sequence strand on which the motif matches, when the search includes the reverse complement of a DNA sequence.
+The
+.I value
+is either
+.B s
+for the sens or
+.B r
+for the reverse strand.
+.PP
+.RE
+Keywords used by the
+.BR pfmake "(1) and " pfw (1)
+programs:
+.RS
+.\" --- weight ---
+.TP
+.I weight
+the weight of a given sequence in a multiple alignment.
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+>O00628|PEX7/73-315
+.IR motif =PS50294|WD_REP
+.IR raw_score =1336
+.IR match_nb =1
+.IR match_type =region
+.IR seq_end =-491 
+.br
+VTW[...]IYD
+.br
+>O00628|PEX7/540-801
+.IR motif =PS50294|WD_REP
+.IR raw_score =1378
+.IR match_nb =2
+.IR match_type =region
+.IR seq_end =-5 
+.br
+SFD[...]PAS
+.br
+
+The 2 headers above describe 2 matches of the motif called
+.RI ' WD_REP '
+onto the sequence
+.RI ' PEX7 '.
+Each of the matches onto this single sequence is numbered using the the
+.I match_nb
+keyword.
+These matches are not individual repeats of a circular motif as can be seen with the
+.I region
+value of the
+.I match_type
+keyword.
+.br
+The first match starts at position 73 of the sequence and ends at position 315. This position is 491
+residues away from the end of the input sequence
+.RI ( seq_end ).
+.br
+The next line following the
+.BR xpsa (5)
+header line is the sequence of the match (it has been truncated here to help readability).
+.br
+The second match begins at position 540 of the sequence and terminates 5 residues before the end of the
+input sequence, that is at position 801.  
+.RE
+
+.TP
+(2)
+>O00628|PEX7/540-582
+.IR motif =PS50294|WD_REP
+.IR norm_score =7.437
+.IR raw_score =180
+.IR match_parent =2
+.IR repeat_nb =1
+.IR match_type =repeat
+.IR level =-1
+.IR seq_end =-224
+.IR motif_start =1
+.IR motif_end =-1 
+.br
+SFD[...]PLQ
+.br
+
+This example illustrates the kind of header obtained when aligning a circular motif
+to a sequence. Each match of this motif (which we will call
+.I total
+match) can be composed of several individual repeats of the motif. Tools like
+.BR pfsearch "(1) and " pfscan (1)
+can output each total match followed by all its individual repeats. In this example
+we only show one of the indiviual repeats that is part of a total match between a circular profile
+and a sequence.
+.br
+The
+.BR xpsa (5)
+header above describes a single repeat of a match between a circular motif called 
+.RI ' WD_REP '
+and the sequence
+.RI ' PEX7 '.
+.br
+This is the first individual repeat of a match of the circular motif, as identified by the
+.I repeat_nb
+keyword. The other individual repeats have not been listed in this example.
+.br
+The total circular motif has at least 2 distinct matches on the
+.RI ' PEX7 '
+sequence, because this single repeat is part of the second match as described by the
+.I match_parent
+keyword. The parental matches have been ommited from this example, they would be numbered using the
+.I match_nb
+keyword.
+.br
+The normalized score of this motif exceeds the cut-off level number -1 
+.RI ( level
+keyword) which is specified in the motif.
+.br
+This match starts at position 1 of the profile
+.RI ( motif_start )
+and position 540 of the sequence, it ends at the end of the motif
+.RI ( motif_end =-1)
+and position 582 of the sequence.
+.br
+The next line following the
+.BR xpsa (5)
+header line is the sequence of the match (it has been truncated here to help readability).
+.RE
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR psa (5),
+.BR pfsearch (1),
+.BR pfscan (1),
+.BR pfw (1),
+.BR pfmake (1),
+.BR psa2msa (1)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH "AUTHOR"
+This manual page was originally written by Volker Flegel.
+.br
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
+
diff --git a/nodat.f b/nodat.f
new file mode 100644
index 0000000..432758d
--- /dev/null
+++ b/nodat.f
@@ -0,0 +1,21 @@
+*----------------------------------------------------------------------*     
+* $Id: nodat.f,v 2.4 2003/02/19 08:38:25 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* NORMALIZATION 
+      
+      Parameter        (KNOR=3)
+      Parameter        (KNPM=5)
+      Parameter        (MAXN=8)
+      
+      Character*16      CNOR(KNOR)
+      Integer           JNOP(KNOR)
+      
+      Integer           JNOR
+      Integer           MNOR(MAXN)
+      Integer           NNOR(MAXN)
+      Integer           NNPR(MAXN)
+      Character*32      CNTX(MAXN)
+      Real              RNOP(KNPM,MAXN)
+      
diff --git a/pam120.cmp b/pam120.cmp
new file mode 100644
index 0000000..68f9a51
--- /dev/null
+++ b/pam120.cmp
@@ -0,0 +1,39 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 120 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -1.64, Entropy = 0.979 bits
+#
+# Lowest score = -8, Highest score = 12
+#
+# 
+#  mean= -1.5644 , stdev=  3.8384
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 3.0  0.0 -3.0  0.0  0.0  -4.0  1.0 -3.0 -1.0 -2.0  -3.0 -2.0 -1.0  1.0 -1.0  -3.0  1.0  1.0  0.0 -7.0  -4.0 -1.0 A
+      4.0 -6.0  4.0  3.0  -5.0  0.0  1.0 -3.0  0.0  -4.0 -4.0  3.0 -2.0  0.0  -2.0  0.0  0.0 -3.0 -6.0  -3.0  2.0 B
+           9.0 -7.0 -7.0  -6.0 -4.0 -4.0 -3.0 -7.0  -7.0 -6.0 -5.0 -4.0 -7.0  -4.0  0.0 -3.0 -3.0 -8.0  -1.0 -7.0 C
+                5.0  3.0  -7.0  0.0  0.0 -3.0 -1.0  -5.0 -4.0  2.0 -3.0  1.0  -3.0  0.0 -1.0 -3.0 -8.0  -5.0  3.0 D
+                     5.0  -7.0 -1.0 -1.0 -3.0 -1.0  -4.0 -3.0  1.0 -2.0  2.0  -3.0 -1.0 -2.0 -3.0 -8.0  -5.0  4.0 E
+
+                           8.0 -5.0 -3.0  0.0 -7.0   0.0 -1.0 -4.0 -5.0 -6.0  -5.0 -3.0 -4.0 -3.0 -1.0   4.0 -6.0 F
+                                5.0 -4.0 -4.0 -3.0  -5.0 -4.0  0.0 -2.0 -3.0  -4.0  1.0 -1.0 -2.0 -8.0  -6.0 -2.0 G
+                                     7.0 -4.0 -2.0  -3.0 -4.0  2.0 -1.0  3.0   1.0 -2.0 -3.0 -3.0 -3.0  -1.0  1.0 H
+                                          6.0 -3.0   1.0  1.0 -2.0 -3.0 -3.0  -2.0 -2.0  0.0  3.0 -6.0  -2.0 -3.0 I
+                                               5.0  -4.0  0.0  1.0 -2.0  0.0   2.0 -1.0 -1.0 -4.0 -5.0  -5.0 -1.0 K
+
+                                                     5.0  3.0 -4.0 -3.0 -2.0  -4.0 -4.0 -3.0  1.0 -3.0  -2.0 -3.0 L
+                                                          8.0 -3.0 -3.0 -1.0  -1.0 -2.0 -1.0  1.0 -6.0  -4.0 -2.0 M
+                                                               4.0 -2.0  0.0  -1.0  1.0  0.0 -3.0 -4.0  -2.0  0.0 N
+                                                                    6.0  0.0  -1.0  1.0 -1.0 -2.0 -7.0  -6.0 -1.0 P
+                                                                         6.0   1.0 -2.0 -2.0 -3.0 -6.0  -5.0  4.0 Q
+
+                                                                               6.0 -1.0 -2.0 -3.0  1.0  -5.0 -1.0 R
+                                                                                    3.0  2.0 -2.0 -2.0  -3.0 -1.0 S
+                                                                                         4.0  0.0 -6.0  -3.0 -2.0 T
+                                                                                              5.0 -8.0  -3.0 -3.0 V
+                                                                                                  12.0  -2.0 -7.0 W
+
+                                                                                                         8.0 -5.0 Y
+                                                                                                              4.0 Z
diff --git a/pam160.cmp b/pam160.cmp
new file mode 100644
index 0000000..07d0b2f
--- /dev/null
+++ b/pam160.cmp
@@ -0,0 +1,39 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 160 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -1.14, Entropy = 0.694 bits
+#
+# Lowest score = -7, Highest score = 12
+#
+# 
+#  mean= -1.0829 , stdev=  2.7041
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 2.0  0.0 -2.0  0.0  0.0  -3.0  1.0 -2.0 -1.0 -2.0  -2.0 -1.0  0.0  1.0 -1.0  -2.0  1.0  1.0  0.0 -5.0  -3.0  0.0 A
+      3.0 -4.0  3.0  2.0  -4.0  0.0  1.0 -2.0  0.0  -4.0 -3.0  2.0 -1.0  1.0  -1.0  0.0  0.0 -2.0 -5.0  -3.0  2.0 B
+           9.0 -5.0 -5.0  -5.0 -3.0 -3.0 -2.0 -5.0  -6.0 -5.0 -4.0 -3.0 -5.0  -3.0  0.0 -2.0 -2.0 -7.0   0.0 -5.0 C
+                4.0  3.0  -6.0  0.0  0.0 -3.0  0.0  -4.0 -3.0  2.0 -2.0  1.0  -2.0  0.0 -1.0 -3.0 -6.0  -4.0  2.0 D
+                     4.0  -5.0  0.0  0.0 -2.0 -1.0  -3.0 -2.0  1.0 -1.0  2.0  -2.0  0.0 -1.0 -2.0 -7.0  -4.0  3.0 E
+
+                           7.0 -4.0 -2.0  0.0 -5.0   1.0  0.0 -3.0 -4.0 -5.0  -4.0 -3.0 -3.0 -2.0 -1.0   5.0 -5.0 F
+                                4.0 -3.0 -3.0 -2.0  -4.0 -3.0  0.0 -1.0 -2.0  -3.0  1.0 -1.0 -2.0 -7.0  -5.0 -1.0 G
+                                     6.0 -3.0 -1.0  -2.0 -3.0  2.0 -1.0  2.0   1.0 -1.0 -2.0 -2.0 -3.0   0.0  1.0 H
+                                          5.0 -2.0   2.0  2.0 -2.0 -2.0 -2.0  -2.0 -2.0  0.0  3.0 -5.0  -2.0 -2.0 I
+                                               4.0  -3.0  0.0  1.0 -2.0  0.0   3.0 -1.0  0.0 -3.0 -4.0  -4.0  0.0 K
+
+                                                     5.0  3.0 -3.0 -3.0 -2.0  -3.0 -3.0 -2.0  1.0 -2.0  -2.0 -3.0 L
+                                                          7.0 -2.0 -2.0 -1.0  -1.0 -2.0 -1.0  1.0 -4.0  -3.0 -2.0 M
+                                                               3.0 -1.0  0.0  -1.0  1.0  0.0 -2.0 -4.0  -2.0  1.0 N
+                                                                    5.0  0.0  -1.0  1.0  0.0 -2.0 -5.0  -5.0 -1.0 P
+                                                                         5.0   1.0 -1.0 -1.0 -2.0 -5.0  -4.0  3.0 Q
+
+                                                                               6.0 -1.0 -1.0 -3.0  1.0  -4.0  0.0 R
+                                                                                    2.0  1.0 -1.0 -2.0  -3.0 -1.0 S
+                                                                                         3.0  0.0 -5.0  -3.0 -1.0 T
+                                                                                              4.0 -6.0  -3.0 -2.0 V
+                                                                                                  12.0  -1.0 -6.0 W
+
+                                                                                                         8.0 -4.0 Y
+                                                                                                              3.0 Z
diff --git a/pam200.cmp b/pam200.cmp
new file mode 100644
index 0000000..9959cf9
--- /dev/null
+++ b/pam200.cmp
@@ -0,0 +1,39 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 200 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -1.23, Entropy = 0.507 bits
+#
+# Lowest score = -9, Highest score = 18
+#
+# 
+#  mean= -1.1524 , stdev=  4.4930
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 3.0  0.0 -3.0  0.0  0.0  -4.0  1.0 -2.0 -1.0 -2.0  -2.0 -2.0  0.0  1.0 -1.0  -2.0  1.0  1.0  0.0 -7.0  -4.0  0.0 A
+      3.0 -5.0  4.0  3.0  -6.0  0.0  1.0 -3.0  0.0  -4.0 -3.0  3.0 -1.0  1.0  -1.0  1.0  0.0 -3.0 -6.0  -4.0  2.0 B
+          12.0 -6.0 -7.0  -6.0 -4.0 -4.0 -3.0 -7.0  -7.0 -6.0 -5.0 -4.0 -7.0  -4.0  0.0 -3.0 -2.0 -9.0   0.0 -7.0 C
+                5.0  4.0  -7.0  0.0  0.0 -3.0  0.0  -5.0 -4.0  3.0 -2.0  2.0  -2.0  0.0  0.0 -3.0 -8.0  -5.0  3.0 D
+                     5.0  -7.0  0.0  0.0 -3.0  0.0  -4.0 -3.0  2.0 -1.0  3.0  -2.0  0.0 -1.0 -2.0 -9.0  -5.0  4.0 E
+
+                          10.0 -6.0 -2.0  1.0 -7.0   2.0  0.0 -4.0 -6.0 -6.0  -5.0 -4.0 -4.0 -2.0  0.0   7.0 -6.0 F
+                                6.0 -3.0 -3.0 -2.0  -5.0 -4.0  0.0 -1.0 -2.0  -4.0  1.0  0.0 -2.0 -8.0  -6.0 -1.0 G
+                                     8.0 -3.0 -1.0  -3.0 -3.0  2.0 -1.0  3.0   2.0 -1.0 -2.0 -3.0 -3.0   0.0  2.0 H
+                                          6.0 -2.0   2.0  2.0 -2.0 -3.0 -3.0  -2.0 -2.0  0.0  4.0 -6.0  -2.0 -3.0 I
+                                               6.0  -4.0  1.0  1.0 -2.0  1.0   4.0  0.0  0.0 -3.0 -4.0  -5.0  0.0 K
+
+                                                     7.0  4.0 -4.0 -3.0 -2.0  -4.0 -4.0 -2.0  2.0 -2.0  -2.0 -3.0 L
+                                                          8.0 -2.0 -3.0 -1.0  -1.0 -2.0 -1.0  2.0 -5.0  -3.0 -2.0 M
+                                                               3.0 -1.0  1.0   0.0  1.0  0.0 -2.0 -5.0  -2.0  1.0 N
+                                                                    7.0  0.0   0.0  1.0  0.0 -2.0 -7.0  -6.0 -1.0 P
+                                                                         5.0   1.0 -1.0 -1.0 -3.0 -6.0  -5.0  4.0 Q
+
+                                                                               7.0 -1.0 -1.0 -3.0  2.0  -5.0  0.0 R
+                                                                                    2.0  2.0 -1.0 -3.0  -3.0 -1.0 S
+                                                                                         4.0  0.0 -6.0  -3.0 -1.0 T
+                                                                                              5.0 -8.0  -3.0 -2.0 V
+                                                                                                  18.0  -1.0 -7.0 W
+
+                                                                                                        11.0 -5.0 Y
+                                                                                                              4.0 Z
diff --git a/pam220.cmp b/pam220.cmp
new file mode 100644
index 0000000..9620d22
--- /dev/null
+++ b/pam220.cmp
@@ -0,0 +1,39 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 220 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -1.06, Entropy = 0.437 bits
+#
+# Lowest score = -8, Highest score = 17
+#
+# 
+#  mean= -0.9929 , stdev=  3.8362
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 2.0  0.0 -2.0  0.0  0.0  -4.0  1.0 -2.0 -1.0 -1.0  -2.0 -1.0  0.0  1.0 -1.0  -2.0  1.0  1.0  0.0 -6.0  -4.0  0.0 A
+      3.0 -5.0  4.0  3.0  -5.0  0.0  1.0 -2.0  0.0  -4.0 -3.0  2.0 -1.0  1.0  -1.0  0.0  0.0 -2.0 -6.0  -3.0  2.0 B
+          12.0 -6.0 -6.0  -5.0 -4.0 -4.0 -3.0 -6.0  -7.0 -6.0 -4.0 -3.0 -6.0  -4.0  0.0 -3.0 -2.0 -8.0   0.0 -6.0 C
+                4.0  4.0  -6.0  0.0  1.0 -3.0  0.0  -5.0 -3.0  2.0 -1.0  2.0  -2.0  0.0  0.0 -3.0 -8.0  -5.0  3.0 D
+                     4.0  -6.0  0.0  1.0 -2.0  0.0  -4.0 -2.0  2.0 -1.0  3.0  -1.0  0.0 -1.0 -2.0 -8.0  -5.0  4.0 E
+
+                          10.0 -5.0 -2.0  1.0 -6.0   2.0  0.0 -4.0 -5.0 -5.0  -5.0 -4.0 -4.0 -2.0  0.0   7.0 -6.0 F
+                                5.0 -3.0 -3.0 -2.0  -5.0 -3.0  0.0 -1.0 -2.0  -3.0  1.0  0.0 -2.0 -8.0  -6.0 -1.0 G
+                                     7.0 -3.0  0.0  -2.0 -3.0  2.0  0.0  3.0   2.0 -1.0 -2.0 -3.0 -3.0   0.0  2.0 H
+                                          5.0 -2.0   2.0  2.0 -2.0 -2.0 -2.0  -2.0 -2.0  0.0  4.0 -6.0  -1.0 -2.0 I
+                                               5.0  -3.0  1.0  1.0 -1.0  1.0   4.0  0.0  0.0 -3.0 -4.0  -5.0  0.0 K
+
+                                                     6.0  4.0 -3.0 -3.0 -2.0  -3.0 -3.0 -2.0  2.0 -2.0  -1.0 -3.0 L
+                                                          8.0 -2.0 -2.0 -1.0  -1.0 -2.0 -1.0  2.0 -5.0  -3.0 -2.0 M
+                                                               3.0 -1.0  1.0   0.0  1.0  0.0 -2.0 -4.0  -2.0  1.0 N
+                                                                    7.0  0.0   0.0  1.0  0.0 -1.0 -6.0  -6.0  0.0 P
+                                                                         5.0   1.0 -1.0 -1.0 -2.0 -5.0  -5.0  4.0 Q
+
+                                                                               7.0  0.0 -1.0 -3.0  2.0  -5.0  0.0 R
+                                                                                    2.0  2.0 -1.0 -3.0  -3.0  0.0 S
+                                                                                         3.0  0.0 -6.0  -3.0 -1.0 T
+                                                                                              5.0 -7.0  -3.0 -2.0 V
+                                                                                                  17.0   0.0 -7.0 W
+
+                                                                                                        11.0 -5.0 Y
+                                                                                                              4.0 Z
diff --git a/pam250.cmp b/pam250.cmp
new file mode 100644
index 0000000..72532f4
--- /dev/null
+++ b/pam250.cmp
@@ -0,0 +1,39 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 250 substitution matrix, scale = ln(2)/3 = 0.231049
+#
+# Expected score = -0.844, Entropy = 0.354 bits
+#
+# Lowest score = -8, Highest score = 17
+#
+# 
+#  mean= -0.7961 , stdev=  3.0609
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 2.0  0.0 -2.0  0.0  0.0  -3.0  1.0 -1.0 -1.0 -1.0  -2.0 -1.0  0.0  1.0  0.0  -2.0  1.0  1.0  0.0 -6.0  -3.0  0.0 A
+      3.0 -4.0  3.0  3.0  -4.0  0.0  1.0 -2.0  1.0  -3.0 -2.0  2.0 -1.0  1.0  -1.0  0.0  0.0 -2.0 -5.0  -3.0  2.0 B
+          12.0 -5.0 -5.0  -4.0 -3.0 -3.0 -2.0 -5.0  -6.0 -5.0 -4.0 -3.0 -5.0  -4.0  0.0 -2.0 -2.0 -8.0   0.0 -5.0 C
+                4.0  3.0  -6.0  1.0  1.0 -2.0  0.0  -4.0 -3.0  2.0 -1.0  2.0  -1.0  0.0  0.0 -2.0 -7.0  -4.0  3.0 D
+                     4.0  -5.0  0.0  1.0 -2.0  0.0  -3.0 -2.0  1.0 -1.0  2.0  -1.0  0.0  0.0 -2.0 -7.0  -4.0  3.0 E
+
+                           9.0 -5.0 -2.0  1.0 -5.0   2.0  0.0 -3.0 -5.0 -5.0  -4.0 -3.0 -3.0 -1.0  0.0   7.0 -5.0 F
+                                5.0 -2.0 -3.0 -2.0  -4.0 -3.0  0.0  0.0 -1.0  -3.0  1.0  0.0 -1.0 -7.0  -5.0  0.0 G
+                                     6.0 -2.0  0.0  -2.0 -2.0  2.0  0.0  3.0   2.0 -1.0 -1.0 -2.0 -3.0   0.0  2.0 H
+                                          5.0 -2.0   2.0  2.0 -2.0 -2.0 -2.0  -2.0 -1.0  0.0  4.0 -5.0  -1.0 -2.0 I
+                                               5.0  -3.0  0.0  1.0 -1.0  1.0   3.0  0.0  0.0 -2.0 -3.0  -4.0  0.0 K
+
+                                                     6.0  4.0 -3.0 -3.0 -2.0  -3.0 -3.0 -2.0  2.0 -2.0  -1.0 -3.0 L
+                                                          6.0 -2.0 -2.0 -1.0   0.0 -2.0 -1.0  2.0 -4.0  -2.0 -2.0 M
+                                                               2.0  0.0  1.0   0.0  1.0  0.0 -2.0 -4.0  -2.0  1.0 N
+                                                                    6.0  0.0   0.0  1.0  0.0 -1.0 -6.0  -5.0  0.0 P
+                                                                         4.0   1.0 -1.0 -1.0 -2.0 -5.0  -4.0  3.0 Q
+
+                                                                               6.0  0.0 -1.0 -2.0  2.0  -4.0  0.0 R
+                                                                                    2.0  1.0 -1.0 -2.0  -3.0  0.0 S
+                                                                                         3.0  0.0 -5.0  -3.0 -1.0 T
+                                                                                              4.0 -6.0  -2.0 -2.0 V
+                                                                                                  17.0   0.0 -6.0 W
+
+                                                                                                        10.0 -4.0 Y
+                                                                                                              3.0 Z
diff --git a/pam30.cmp b/pam30.cmp
new file mode 100644
index 0000000..a50924a
--- /dev/null
+++ b/pam30.cmp
@@ -0,0 +1,39 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 30 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -5.06, Entropy = 2.57 bits
+#
+# Lowest score = -17, Highest score = 13
+#
+# 
+#  mean= -4.9502 , stdev= 10.8581
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 6.0 -3.0 -6.0 -3.0 -2.0  -8.0 -2.0 -7.0 -5.0 -7.0  -6.0 -5.0 -4.0 -2.0 -4.0  -7.0  0.0 -1.0 -2.0-13.0  -8.0 -3.0 A
+      6.0-12.0  6.0  1.0 -10.0 -3.0 -1.0 -6.0 -2.0  -9.0-10.0  6.0 -7.0 -3.0  -7.0 -1.0 -3.0 -8.0-10.0  -6.0  0.0 B
+          10.0-14.0-14.0 -13.0 -9.0 -7.0 -6.0-14.0 -15.0-13.0-11.0 -8.0-14.0  -8.0 -3.0 -8.0 -6.0-15.0  -4.0-14.0 C
+                8.0  2.0 -15.0 -3.0 -4.0 -7.0 -4.0 -12.0-11.0  2.0 -8.0 -2.0 -10.0 -4.0 -5.0 -8.0-15.0 -11.0  1.0 D
+                     8.0 -14.0 -4.0 -5.0 -5.0 -4.0  -9.0 -7.0 -2.0 -5.0  1.0  -9.0 -4.0 -6.0 -6.0-17.0  -8.0  6.0 E
+
+                           9.0 -9.0 -6.0 -2.0-14.0  -3.0 -4.0 -9.0-10.0-13.0  -9.0 -6.0 -9.0 -8.0 -4.0   2.0-13.0 F
+                                6.0 -9.0-11.0 -7.0 -10.0 -8.0 -3.0 -6.0 -7.0  -9.0 -2.0 -6.0 -5.0-15.0 -14.0 -5.0 G
+                                     9.0 -9.0 -6.0  -6.0-10.0  0.0 -4.0  1.0  -2.0 -6.0 -7.0 -6.0 -7.0  -3.0 -1.0 H
+                                          8.0 -6.0  -1.0 -1.0 -5.0 -8.0 -8.0  -5.0 -7.0 -2.0  2.0-14.0  -6.0 -6.0 I
+                                               7.0  -8.0 -2.0 -1.0 -6.0 -3.0   0.0 -4.0 -3.0 -9.0-12.0  -9.0 -4.0 K
+
+                                                     7.0  1.0 -7.0 -7.0 -5.0  -8.0 -8.0 -7.0 -2.0 -6.0  -7.0 -7.0 L
+                                                         11.0 -9.0 -8.0 -4.0  -4.0 -5.0 -4.0 -1.0-13.0 -11.0 -5.0 M
+                                                               8.0 -6.0 -3.0  -6.0  0.0 -2.0 -8.0 -8.0  -4.0 -3.0 N
+                                                                    8.0 -3.0  -4.0 -2.0 -4.0 -6.0-14.0 -13.0 -4.0 P
+                                                                         8.0  -2.0 -5.0 -5.0 -7.0-13.0 -12.0  6.0 Q
+
+                                                                               8.0 -3.0 -6.0 -8.0 -2.0 -10.0 -4.0 R
+                                                                                    6.0  0.0 -6.0 -5.0  -7.0 -5.0 S
+                                                                                         7.0 -3.0-13.0  -6.0 -6.0 T
+                                                                                              7.0-15.0  -7.0 -6.0 V
+                                                                                                  13.0  -5.0-14.0 W
+
+                                                                                                        10.0 -9.0 Y
+                                                                                                              6.0 Z
diff --git a/pam40.cmp b/pam40.cmp
new file mode 100644
index 0000000..bc87e1f
--- /dev/null
+++ b/pam40.cmp
@@ -0,0 +1,40 @@
+#
+# This matrix was produced by "pam" Version 1.0.7 [01-Feb-98]
+# using Dayhoff et al. (1978) mutability data.
+#
+# PAM 40 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -4.27, Entropy = 2.26 bits
+#
+# Lowest score = -15, Highest score = 13
+#
+# 
+#  mean= -4.1839 , stdev=  9.2265
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 6.0 -3.0 -6.0 -3.0 -2.0  -7.0 -1.0 -6.0 -4.0 -6.0  -5.0 -4.0 -3.0 -1.0 -3.0  -6.0  0.0  0.0 -2.0-12.0  -7.0 -2.0 A
+      6.0-11.0  6.0  2.0  -9.0 -2.0 -1.0 -5.0 -2.0  -8.0 -8.0  6.0 -6.0 -2.0  -6.0 -1.0 -2.0 -7.0 -9.0  -6.0  1.0 B
+           9.0-12.0-12.0 -11.0 -8.0 -7.0 -5.0-12.0 -13.0-12.0 -9.0 -7.0-12.0  -7.0 -2.0 -7.0 -5.0-14.0  -3.0-12.0 C
+                7.0  3.0 -13.0 -3.0 -3.0 -6.0 -4.0 -11.0 -9.0  2.0 -7.0 -2.0  -9.0 -3.0 -4.0 -7.0-13.0 -10.0  2.0 D
+                     7.0 -12.0 -3.0 -4.0 -5.0 -4.0  -8.0 -6.0 -1.0 -5.0  2.0  -8.0 -4.0 -5.0 -6.0-15.0  -8.0  6.0 E
+
+                           9.0 -8.0 -5.0 -2.0-12.0  -2.0 -3.0 -8.0 -9.0-11.0  -8.0 -6.0 -8.0 -7.0 -4.0   2.0-12.0 F
+                                6.0 -8.0 -9.0 -6.0  -9.0 -7.0 -2.0 -5.0 -6.0  -8.0 -1.0 -5.0 -5.0-13.0 -12.0 -4.0 G
+                                     9.0 -8.0 -5.0  -5.0 -9.0  1.0 -3.0  1.0  -1.0 -5.0 -6.0 -6.0 -6.0  -3.0  0.0 H
+                                          8.0 -5.0  -1.0  0.0 -4.0 -7.0 -7.0  -5.0 -6.0 -2.0  2.0-12.0  -5.0 -5.0 I
+                                               6.0  -7.0 -1.0  0.0 -6.0 -2.0   1.0 -3.0 -2.0 -8.0-10.0  -8.0 -3.0 K
+
+                                                     7.0  1.0 -6.0 -6.0 -4.0  -8.0 -7.0 -6.0 -2.0 -5.0  -6.0 -6.0 L
+                                                         11.0 -7.0 -7.0 -3.0  -3.0 -5.0 -3.0 -1.0-11.0 -10.0 -4.0 M
+                                                               7.0 -5.0 -3.0  -5.0  0.0 -1.0 -7.0 -7.0  -4.0 -2.0 N
+                                                                    8.0 -2.0  -3.0 -1.0 -3.0 -5.0-12.0 -12.0 -3.0 P
+                                                                         8.0  -1.0 -4.0 -5.0 -6.0-11.0 -10.0  6.0 Q
+
+                                                                               8.0 -2.0 -5.0 -7.0 -1.0  -9.0 -3.0 R
+                                                                                    6.0  1.0 -5.0 -4.0  -6.0 -4.0 S
+                                                                                         7.0 -2.0-11.0  -6.0 -5.0 T
+                                                                                              7.0-14.0  -6.0 -6.0 V
+                                                                                                  13.0  -4.0-13.0 W
+
+                                                                                                        10.0 -8.0 Y
+                                                                                                              6.0 Z
diff --git a/pam400.cmp b/pam400.cmp
new file mode 100644
index 0000000..9f37579
--- /dev/null
+++ b/pam400.cmp
@@ -0,0 +1,38 @@
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 400 substitution matrix, scale = ln(2)/5 = 0.138629
+#
+# Expected score = -0.521, Entropy = 0.139 bits
+#
+# Lowest score = -8, Highest score = 26
+#
+# 
+#  mean= -0.4583 , stdev=  3.0788
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 1.0  1.0 -2.0  1.0  1.0  -3.0  1.0 -1.0  0.0 -1.0  -2.0 -1.0  0.0  1.0  0.0  -1.0  1.0  1.0  0.0 -6.0  -3.0  0.0 A
+      2.0 -4.0  2.0  2.0  -4.0  1.0  1.0 -2.0  1.0  -3.0 -2.0  2.0  0.0  2.0   0.0  1.0  0.0 -1.0 -5.0  -3.0  2.0 B
+          17.0 -5.0 -5.0  -4.0 -3.0 -3.0 -2.0 -5.0  -6.0 -5.0 -3.0 -2.0 -5.0  -4.0  0.0 -2.0 -2.0 -8.0   1.0 -5.0 C
+                3.0  3.0  -5.0  1.0  1.0 -2.0  1.0  -3.0 -2.0  2.0  0.0  2.0   0.0  1.0  0.0 -2.0 -7.0  -4.0  2.0 D
+                     3.0  -5.0  1.0  1.0 -2.0  1.0  -3.0 -2.0  2.0  0.0  2.0   0.0  0.0  0.0 -1.0 -7.0  -4.0  3.0 E
+
+                          11.0 -5.0 -2.0  2.0 -5.0   3.0  1.0 -3.0 -4.0 -4.0  -4.0 -3.0 -3.0  0.0  2.0  10.0 -5.0 F
+                                4.0 -1.0 -2.0 -1.0  -3.0 -2.0  1.0  0.0  0.0  -2.0  1.0  1.0 -1.0 -7.0  -5.0  0.0 G
+                                     5.0 -2.0  1.0  -2.0 -1.0  1.0  0.0  3.0   2.0  0.0 -1.0 -2.0 -2.0   0.0  2.0 H
+                                          4.0 -2.0   3.0  2.0 -1.0 -1.0 -2.0  -2.0 -1.0  0.0  3.0 -5.0   0.0 -2.0 I
+                                               4.0  -2.0  0.0  1.0  0.0  1.0   4.0  0.0  0.0 -2.0 -3.0  -4.0  1.0 K
+
+                                                     7.0  4.0 -3.0 -2.0 -2.0  -3.0 -2.0 -1.0  3.0 -2.0   0.0 -2.0 L
+                                                          5.0 -1.0 -1.0 -1.0   0.0 -1.0  0.0  2.0 -4.0  -1.0 -1.0 M
+                                                               1.0  0.0  1.0   1.0  1.0  0.0 -1.0 -4.0  -3.0  1.0 N
+                                                                    5.0  0.0   0.0  1.0  1.0 -1.0 -6.0  -5.0  0.0 P
+                                                                         3.0   1.0  0.0  0.0 -1.0 -5.0  -4.0  2.0 Q
+
+                                                                               5.0  0.0  0.0 -2.0  3.0  -4.0  1.0 R
+                                                                                    1.0  1.0 -1.0 -3.0  -3.0  0.0 S
+                                                                                         1.0  0.0 -5.0  -3.0  0.0 T
+                                                                                              4.0 -6.0  -2.0 -1.0 V
+                                                                                                  26.0   1.0 -6.0 W
+
+                                                                                                        13.0 -4.0 Y
+                                                                                                              3.0 Z
diff --git a/pam80.cmp b/pam80.cmp
new file mode 100644
index 0000000..57cddba
--- /dev/null
+++ b/pam80.cmp
@@ -0,0 +1,39 @@
+#
+# This matrix was produced by "pam" Version 1.0.6 [28-Jul-93]
+#
+# PAM 80 substitution matrix, scale = ln(2)/2 = 0.346574
+#
+# Expected score = -2.55, Entropy = 1.44 bits
+#
+# Lowest score = -11, Highest score = 13
+#
+# 
+#  mean= -2.4689 , stdev=  5.7799
+# 
+  A    B    C    D    E     F    G    H    I    K     L    M    N    P    Q     R    S    T    V    W     Y    Z  ..
+ 4.0 -1.0 -4.0 -1.0 -1.0  -5.0  0.0 -4.0 -2.0 -4.0  -4.0 -3.0 -1.0  0.0 -2.0  -4.0  1.0  1.0  0.0 -8.0  -5.0 -1.0 A
+      5.0 -7.0  5.0  2.0  -7.0 -1.0  0.0 -4.0 -1.0  -6.0 -5.0  4.0 -3.0  0.0  -3.0  0.0 -1.0 -4.0 -7.0  -4.0  2.0 B
+           9.0 -9.0 -9.0  -8.0 -6.0 -5.0 -4.0 -9.0  -9.0 -8.0 -6.0 -5.0 -9.0  -5.0 -1.0 -4.0 -3.0-10.0  -2.0 -9.0 C
+                6.0  4.0  -9.0 -1.0 -1.0 -4.0 -2.0  -7.0 -6.0  3.0 -4.0  0.0  -5.0 -1.0 -2.0 -5.0-10.0  -7.0  2.0 D
+                     6.0  -9.0 -2.0 -2.0 -3.0 -2.0  -6.0 -4.0  0.0 -3.0  2.0  -4.0 -2.0 -3.0 -4.0-11.0  -6.0  5.0 E
+
+                           8.0 -6.0 -3.0  0.0 -9.0   0.0 -2.0 -5.0 -7.0 -8.0  -6.0 -4.0 -5.0 -4.0 -2.0   4.0 -8.0 F
+                                6.0 -5.0 -6.0 -4.0  -7.0 -5.0 -1.0 -3.0 -4.0  -6.0  0.0 -2.0 -3.0-10.0  -8.0 -2.0 G
+                                     8.0 -5.0 -3.0  -4.0 -5.0  2.0 -2.0  2.0   0.0 -3.0 -4.0 -4.0 -4.0  -1.0  1.0 H
+                                          7.0 -4.0   1.0  1.0 -3.0 -5.0 -4.0  -3.0 -4.0 -1.0  3.0 -8.0  -3.0 -4.0 I
+                                               6.0  -5.0  0.0  0.0 -4.0 -1.0   2.0 -2.0 -1.0 -5.0 -7.0  -6.0 -1.0 K
+
+                                                     6.0  2.0 -5.0 -4.0 -3.0  -5.0 -5.0 -4.0  0.0 -3.0  -4.0 -4.0 L
+                                                          9.0 -4.0 -5.0 -2.0  -2.0 -3.0 -2.0  1.0 -7.0  -6.0 -3.0 M
+                                                               5.0 -3.0 -1.0  -2.0  1.0  0.0 -4.0 -5.0  -3.0  0.0 N
+                                                                    7.0 -1.0  -2.0  0.0 -2.0 -3.0 -9.0  -8.0 -2.0 P
+                                                                         7.0   0.0 -3.0 -3.0 -4.0 -8.0  -7.0  5.0 Q
+
+                                                                               7.0 -1.0 -3.0 -5.0  0.0  -7.0 -1.0 R
+                                                                                    4.0  2.0 -3.0 -3.0  -4.0 -2.0 S
+                                                                                         5.0 -1.0 -8.0  -4.0 -3.0 T
+                                                                                              6.0-10.0  -5.0 -4.0 V
+                                                                                                  13.0  -2.0 -9.0 W
+
+                                                                                                         9.0 -6.0 Y
+                                                                                                              5.0 Z
diff --git a/pfam_sh3.hmm b/pfam_sh3.hmm
new file mode 100644
index 0000000..0a43e01
--- /dev/null
+++ b/pfam_sh3.hmm
@@ -0,0 +1,196 @@
+HMMER2.0
+NAME  SH3
+ACC   PF00018
+DESC  Src homology domain 3
+LENG  57
+ALPH  Amino
+RF    no
+CS    no
+MAP   yes
+COM   hmmbuild -F HMM.ann SEED.ann
+COM   hmmcalibrate --seed 0 HMM.ann
+NSEQ  62
+DATE  Tue May  4 18:40:13 1999
+CKSUM 7040
+GA    -12.0 -12.0
+TC    -11.7 -11.7
+NC    -12.7 -12.7
+XT      -8455     -4  -1000  -1000  -8455     -4  -8455     -4 
+NULT      -4  -8455
+NULE     595  -1558     85    338   -294    453  -1158    197    249    902  -1085   -142    -21   -313     45    531    201    384  -1998   -644 
+EVD   -51.978947   0.255953
+HMM        A      C      D      E      F      G      H      I      K      L      M      N      P      Q      R      S      T      V      W      Y    
+         m->m   m->i   m->d   i->m   i->i   d->m   d->d   b->m   m->e
+          -24      *  -5907
+     1  -3122   -328    -13    901   -240   -918   -191   -552   1134  -1425    760  -1227   1409    672    629   -936    610  -1765  -4769     60     1
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378    -24      * 
+     2   -460   -189  -5225   -482    144  -4860  -3703    229    994    -73    737  -4333  -1255   1130    384  -1182    716    685    268   1590     2
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+     3   1227     31  -5740  -5104    793   -315   -154   -466  -4699  -1548  -2425  -1137  -4993  -4322  -4499  -4027  -1276   2743  -3680   1401     3
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+     4  -3430  -3934  -3958   -742  -3998  -4610  -3284   1620   1715  -3824   -571  -3518  -4680    513   1426  -3594    255   1933  -4284   -478     4
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+     5   3484  -4656  -7458  -7807  -7386  -2137  -6733  -7193  -7421  -7470  -6495  -5791  -5760  -6840  -7008  -1907  -1500    523  -7611  -7604     5
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+     6  -1848  -4148  -5245  -1019  -4171  -5254  -3773   1380    993   2635   -601  -4354  -5279    -93  -1361  -4352  -3911  -3608  -4477  -4144     6
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+     7  -1895  -5464  -7035  -6810   1869  -6878    421  -5148  -1515  -2012  -4738  -1171  -6863  -5815  -6130  -1846  -5749  -5129  -3447   4464     7
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+     8     51  -5905   3650   -648  -6183  -1666  -3775  -5988  -1427  -2353  -5055  -1159    412  -3369  -4220   -487  -4270  -5513  -6085  -5289     8
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+     9  -7689  -6608  -8065  -8426   3221  -1964  -4131  -6578  -7983  -2490  -5977  -6557  -7800  -6699  -7342  -7194  -7543  -6738  -3377   4175     9
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    10    589   -207   1004   1139  -1080  -4096   -281  -4657    482  -2508    453    254     13   1559  -2843   -904    803    286  -4774  -4093    10
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    11   2645  -4668  -2999  -1386  -5006    865  -2839  -4758    146  -4702  -3779   -905   1188    101  -2936   -107   -717  -4305  -4870  -4186    11
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    12  -1036  -4594  -1274   1053  -4915   -650     75   -557    -94  -4610    230    561  -4188   1671   1341    462    985    116  -4777  -4094    12
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    13   -539  -4594   1349   1366  -4915    128    689  -2020   -460  -4610   -255    447  -1191   1352    -95    942    424  -4216  -4777  -4095    13
+     -   -147   -501    239     42   -382    398    105   -627    209   -467   -721    280    393     44     95    360    116   -370   -295   -250 
+     -   -141  -3427 -12090   -480  -1820   -701  -1378      *      * 
+    14    603  -4597   1634    973  -4918    237   -707  -4669   -387  -4613  -3686  -2732   1764   -642  -1284   1333   -603  -4219  -4780  -4097    16
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    15  -3121   -354   2625    890  -4915    693   -495  -4666  -1099  -4610    239    371  -4188    410   -175    773   -554  -4216  -4777   -909    17
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    16  -5479  -7546   2348   3279  -1087  -5240    804  -7639  -5071  -7471  -6890  -1431  -5822  -1375  -6065  -5086  -1960  -7080  -7672  -6544    18
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    17  -6259    382  -8758  -8253  -4216  -8612  -7559    762  -8118   3028    821  -8321  -7737  -7032  -7716  -8018  -6146    110  -6076  -6255    19
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    18   -220  -4598    -31   -568  -4919   -559  -2757  -4670  -1018  -4614  -3688   -234    668    844  -1384   2366   1517  -4220  -4782  -4099    20
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    19  -2010  -4705  -7443  -6852   3718  -6828  -5727    647  -6526   1251   1075  -6488  -6611  -5937  -6276  -5982  -1651   -201  -5176  -5023    21
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    20   -489   -328  -1365    191  -4915   -770   -142  -4666   2255   -424   1089   -376  -1484    235   1330   -285    118  -4216  -4777   -884    22
+     -   -149   -500    233     45   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -    -26  -5804 -12090   -154  -3303   -701  -1378      *      * 
+    21   -416  -4585  -2976   1762  -4902  -4100  -2759  -1470   2527  -2299  -3676  -2737    522    467   1067  -1443  -1233   -924  -4771  -4092    24
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    22  -2239  -6202   -339  -3798  -7598   3479  -4973  -7538  -1637  -7485  -6801   1360  -5813  -4688  -6238  -2142  -1855  -6697  -7671  -6752    25
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    23     20  -7666   3352   2184  -7759  -5261  -4725  -7769  -5180  -7590  -7047   -290  -5860   -432  -6230  -1951  -5659  -7197  -7798  -6630    26
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    24   -834  -3702  -3857    261    225  -4490  -3229   1797   1191  -1495    -77  -1191  -1121    121   -136  -3464    544   1663  -4086  -3638    27
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    25  -4801    392  -7193  -6595   1097  -6538  -5430   2624  -6252   1210   1902  -6192  -6387  -5719  -6018  -5675  -4729   1170  -4978   1204    28
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    26  -3184   -124   -449    527    911  -4262   1397    840    407   -524   -393  -1280  -4349   1084   -252  -1461   1263   -449    385   1015    29
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    27  -5257  -4753  -1826  -7579  -5430  -7748  -7693   2384  -7556    497  -4135    380  -7503  -7493  -7713  -7113  -5247   2897  -7121  -6606    30
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    28  -3437    989  -5785  -5151   -900  -4991    575   2142  -4748   2073  -2459  -4637  -5039  -4371  -4549    -20   -292    843  -3729  -3386    31
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    29    226  -4596   1529   1903  -4917   -499    -34  -4668    329  -4612  -3685   1829  -4189    233   -535    316  -1212  -4218  -4779  -4096    32
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -    -87 -11047  -4110   -894  -1115   -701  -1378      *      * 
+    30  -3043  -4515   1642     84  -1351  -4017   -177  -1640   2370  -4530    372   -480  -4111    418   1197   -526   -814   -772  -4698   -168    33
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -10962 -12004   -894  -1115   -178  -3109      *      * 
+    31  -1878  -4589    973    843  -1206  -1633    381   -901    525   -667  -3679    360   -480     38  -2843   1382    401    714  -4774  -4092    34
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -    -75 -11047  -4312   -894  -1115   -701  -1378      *      * 
+    32   -956  -4527   2043   1584  -4848   -978   -430  -4599    645  -1994  -3616   1940    306   -674  -2774   -493  -1126  -4149  -4710   -112    35
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -10973 -12015   -894  -1115   -197  -2970      *      * 
+    33    243    -71   1987   1235  -4916   1291   -255  -4666   -665  -4610  -3683    432   -327   -857   -512    680  -1385  -4216  -4778  -4095    36
+     -   -158   -511    257     56   -387    415    121   -634    206   -476   -720    285    392     44     85    351    106   -376   -289   -247 
+     -  -3946    -97 -12090   -533  -1694   -701  -1378      *      * 
+    34  -9614  -7906  -8828  -9215  -8808  -7864  -8345 -10446  -9400  -9708  -9742  -9244  -8292  -9282  -8808 -10203  -9727 -10204   6318  -8641    41
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    35  -1554   1426  -5743  -5107    -54  -4945  -3815  -2716  -4702    -10   -210  -4591  -4995  -4325  -4502  -1080   -642  -1128   5465   1601    42
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    36  -3127  -4541    -29   1201    270  -4110  -2771  -1680   1988   -162   -275  -1312  -4202   -280   1470  -1517    611   -791  -4739      9    43
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    37   2093   1737  -7306  -7364  -6135   2366  -6313   -436  -7006  -5802  -5218  -1088  -5821  -6525  -6698  -4441  -4485   1555  -6685  -6458    44
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    38  -1128    -28   -711   1768  -4910  -4096   -498   -787   1205  -2040   -244   -854  -4189   1223   2256  -1533  -1355   -407  -4775  -4093    45
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    39  -1879   2192    436  -4270   -855  -4785  -3604   -757    -85   1016   -100   1763   -563  -3792    183    717  -1619     54  -3795    474    46
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    40   -524  -4581    640  -1307  -1283   -734    382    285   1346    374   -474   1357   -510    539   -102   -775   -427   -937  -4768  -1010    47
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -   -385 -11047  -2096   -894  -1115   -701  -1378      *      * 
+    41   -177  -4192   1342   -772  -4487    996  -2427  -1658   -747   -778    -79   1436  -3859  -1976    399    111   1120    -79  -4391   -797    48
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -   -334 -10663  -2279   -894  -1115  -4079    -88      *      * 
+    42   -988  -3986    348  -1803  -4308   1871  -2143  -4059   -621  -4003  -3077    804  -3576     33    197    253   2327  -3609  -4170  -3487    49
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -   -349 -10331  -2223   -894  -1115  -4766    -54      *      * 
+    43   -943  -3702  -2105  -1552  -4026   1994    598  -3767    173     43  -2794   2183  -3312    -17    902     61  -2187  -3326  -3879  -3210    50
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -  -2626  -9984   -257   -894  -1115   -831  -1191      *      * 
+    44  -3974  -5739    727  -2118  -6072   3372  -3152  -5928   -455  -5741  -5098    692  -4405  -2816   -349  -3640  -4025  -5421  -5857  -4978    51
+     -   -149   -500    233     45   -381    398    105   -626    210   -464   -721    275    394     45     96    359    117   -369   -295   -250 
+     -    -69  -4436 -10655   -986  -1014   -303  -2401      *      * 
+    45  -2963  -4435  -2811    806  -4756   -812    578  -1768   2133  -4451   -219   -154  -4030   2168   1628  -1632   -320   -722  -4619  -3936    54
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -10872 -11914   -894  -1115   -103  -3864      *      * 
+    46  -3152  -4340  -3126   2088    325  -4175  -2848   -655    158  -4310   -559  -2863   -553   1389   1246   -798    963    543    368  -3979    55
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    47  -5934  -6299  -6851  -7182  -7873   3816  -7112  -8499  -7375  -2691  -7787  -6778  -7046  -1479  -7289  -6153  -6351  -7568  -7602  -7689    56
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    48  -3409   -279  -5754  -5118   1467  -4957  -3827   1437  -1964   1428   1415  -4603  -5005  -1356  -4513  -4041  -3349   -236   3552   2142    57
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    49  -1034  -4543  -7500  -7047   2730  -7061  -6272   2428  -6832  -1342  -3693  -6699  -6918  -6549  -6774  -6283  -4924   2285  -5874   -691    58
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    50  -6811  -6840  -8407  -8777  -8662  -6975  -8007  -9068  -8831  -8989  -8575  -7998   4307  -8553  -8354  -7108  -7237  -1625  -7897  -8683    59
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    51   1491    165  -3190  -1119  -4444   -938    433  -4106    -33   -937  -3385  -2916  -4295  -2488  -1478   2378    294    113  -4529  -3940    60
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    52  -1027  -4595  -1049   -982  -4912  -1815  -2768  -4659  -2352  -4610   -208   3568  -1374     31  -2859    750    166   -393  -4782  -4102    61
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    53  -7624    186  -8053  -8393   2094  -7925   -265  -1333  -7950  -2072  -5897  -6548  -7779  -6681  -7318  -7170  -7476  -6653  -3378   4526    62
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    54  -5492  -4985  -8103  -7700   -196  -7869  -7352   1285  -7589    682   -332  -7532  -7476  -7140  -7526  -7201  -1489   3271  -6457  -6278    63
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    55    468   -473    132   2146  -4915  -4095  -2754  -4666   -628  -4610  -3683  -2731  -4189   2213    370   -824   1410  -1037  -4778  -4095    64
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    56  -1625    -71    183   1142  -4750  -2052  -2793    -65   1001    319    782  -2785   2125   -948   -168   -799  -1082   -851  -4695  -1187    65
+     -   -149   -500    233     43   -381    399    106   -626    210   -466   -720    275    394     45     96    359    117   -369   -294   -249 
+     -     -1 -11047 -12090   -894  -1115   -701  -1378      *      * 
+    57  -1826    -51  -1428    129    -87  -1966   -266   1472    512    -67    424     11  -1458   -783   -481   -203  -1523   1414  -4485    735    66
+     -      *      *      *      *      *      *      *      *      *      *      *      *      *      *      *      *      *      *      *      * 
+     -      *      *      *      *      *      *      *      *      0 
+//
diff --git a/pfdat.f b/pfdat.f
new file mode 100644
index 0000000..b0f28a1
--- /dev/null
+++ b/pfdat.f
@@ -0,0 +1,72 @@
+*----------------------------------------------------------------------*     
+* $Id: pfdat.f,v 2.5 2003/02/19 08:38:25 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* PROFILE 
+
+      Integer           B0 
+      Integer           B1 
+      Integer           E0 
+      Integer           E1 
+      Integer           BM 
+      Integer           BI 
+      Integer           BD 
+      Integer           BE 
+      Integer           MM 
+      Integer           MI 
+      Integer           MD 
+      Integer           ME 
+      Integer           DM 
+      Integer           DI 
+      Integer           DD 
+      Integer           DE 
+      Integer           IM 
+      Integer           II 
+      Integer           ID 
+      Integer           IE 
+
+      Integer           M0
+      Integer           I0
+      Integer           D 
+
+      Parameter        (B0=  27) 
+      Parameter        (B1=  28)
+      Parameter        (E0=  29)
+      Parameter        (E1=  30)
+      Parameter        (BM=  31)
+      Parameter        (BI=  32)
+      Parameter        (BD=  33)
+      Parameter        (BE=  34)
+      Parameter        (MM=  35)
+      Parameter        (MI=  36)
+      Parameter        (MD=  37)
+      Parameter        (ME=  38)
+      Parameter        (IM=  39)
+      Parameter        (II=  40)
+      Parameter        (ID=  41)
+      Parameter        (IE=  42)
+      Parameter        (DM=  43)
+      Parameter        (DI=  44)
+      Parameter        (DD=  45)
+      Parameter        (DE=  46)
+
+      Parameter        (M0=   0)
+      Parameter        (I0=   0)
+      Parameter        (D =  27)
+* 
+      Integer           NLOW
+      Parameter        (NLOW=-536870912)   
+      
+      Character*01      CHIP(0:IDMP)
+      Integer           IIPP(0:46,0:IDMP)     
+      
+      Character*01      CHMP(IDMP)
+      Integer           IMPP(0:27,0:IDMP)
+      
+* Storage of circular profile last insert position
+
+      Character*01      CHIL
+      Integer           IIPL(0:46)
+      Integer           ILIP
+      
diff --git a/pfind.f b/pfind.f
new file mode 100644
index 0000000..cd6b336
--- /dev/null
+++ b/pfind.f
@@ -0,0 +1,56 @@
+*----------------------------------------------------------------------*     
+* $Id: pfind.f,v 2.3 2003/02/23 11:51:56 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* Profile/HMM indices 
+
+        Integer           B0 
+        Integer           B1 
+        Integer           E0 
+        Integer           E1 
+        Integer           BM 
+        Integer           BI 
+        Integer           BD 
+        Integer           BE 
+        Integer           MM 
+        Integer           MI 
+        Integer           MD 
+        Integer           ME 
+        Integer           DM 
+        Integer           DI 
+        Integer           DD 
+        Integer           DE 
+        Integer           IM 
+        Integer           II 
+        Integer           ID 
+        Integer           IE 
+
+        Integer           M0
+        Integer           I0
+        Integer           D 
+
+        Parameter        (B0=  27) 
+        Parameter        (B1=  28)
+        Parameter        (E0=  29)
+        Parameter        (E1=  30)
+        Parameter        (BM=  31)
+        Parameter        (BI=  32)
+        Parameter        (BD=  33)
+        Parameter        (BE=  34)
+        Parameter        (MM=  35)
+        Parameter        (MI=  36)
+        Parameter        (MD=  37)
+        Parameter        (ME=  38)
+        Parameter        (IM=  39)
+        Parameter        (II=  40)
+        Parameter        (ID=  41)
+        Parameter        (IE=  42)
+        Parameter        (DM=  43)
+        Parameter        (DI=  44)
+        Parameter        (DD=  45)
+        Parameter        (DE=  46)
+
+        Parameter        (M0=   0)
+        Parameter        (I0=   0)
+        Parameter        (D =  27)
diff --git a/pfmake.f b/pfmake.f
new file mode 100644
index 0000000..5c0c96c
--- /dev/null
+++ b/pfmake.f
@@ -0,0 +1,1105 @@
+*       Program pfmake
+*----------------------------------------------------------------------*     
+* $Id: pfmake.f,v 2.11 2003/11/28 11:53:33 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Function: Constructs a profile from a multiple sequence 
+*                 alignment 
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* DATA
+*----------------------------------------------------------------------*
+
+* array sizes, I/O units
+
+      Include          'ardim.f'
+
+C      Parameter        (IDM1=1048576)
+C      Parameter        (IDM2=   2048)
+
+      Parameter        (NOUT=      6)
+      Parameter        (NMSF=      5)
+      Parameter        (NCMP=     12)
+      Parameter        (NPRF=     13)
+
+* profile and sequence fields :
+
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'pfdat.f'
+      Include          'dfdat.f'
+      Include          'sterr.f'
+
+C      Character*64      FOUT
+
+* weights and distances 
+
+      Real*4            RWGT(IDMF)
+
+* multiple sequence alignment:
+
+      Character*512     FMSF
+
+      Character*64      SQID(IDMF)
+      Character         CSEQ(IDMS)
+
+* frequency profile
+
+      Real              RPRF(26,IDMP)
+      Real              FUNK(IDMP)
+      Real              FRES(IDMP)
+      Real              FDEL(IDMP)
+
+* score profile
+
+      Real              SPRF(26,IDMP)
+      Real              SDEL(IDMP)
+      Real              SINS(0:IDMP)
+
+* symbol comparison table
+
+      Character*512     FCMP
+
+      Real              RCMP(26,26)
+
+* profile
+
+      Character*512     FPRF
+      Character*30      FDAT
+
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+* options
+
+      Logical           OPT0
+      Logical           OPT1
+      Logical           OPT2
+      Logical           OPT3
+      Logical           OPTC
+      Logical           LLLT    
+      Logical           OPTM    
+      Logical           LRNM   
+      Logical           LEOF
+
+      Logical           LBLK  
+      Logical           LSYM  
+      Logical           LWGE
+      Real              RE
+      Real              RF
+      Real              RG
+      Real              RH 
+      Real              RI 
+      Real              RL 
+      Real              RM
+      Real              RS
+      Real              RT
+      Real              RX
+
+* character translation 
+      
+      Character*27      ABCU
+      Character*27      ABCL
+      
+      Data              ABCU/'ABCDEFGHIJKLMNOPQRSTUVWXYZ-'/
+      Data              ABCL/'abcdefghijklmnopqrstuvwxyz.'/
+      
+* initialization of controlled vocabularies
+      
+      Include          'cvini.f'
+
+*----------------------------------------------------------------------*
+* INPUT SECTION
+*----------------------------------------------------------------------*
+
+      IRC=0
+      IDUM=-2
+      BLOG=0.0
+      LEOF=.FALSE.
+      LRNM=.FALSE.
+
+* read command line 
+
+      Call Repar
+     *   (FMSF,FCMP,FPRF,OPT0,OPT1,OPT2,OPT3,OPTC,LSYM,LWGE,LBLK,
+     *   LLLT,OPTM,RE,RF,RG,RH,RI,RL,RM,RS,RT,RX,NLOW,IRC)
+      If(IRC.NE.0) then
+         Write(NERR,'(/,
+     *      ''pfmake 2.3 revision 5.d'',//
+     *      ''Usage: pfmake [ -0123abcehlsEFGHILMSTX ] [ msf-file'',
+     *      '' | - ] score-matrix [ profile-file ] [ parameters ]'',//
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -0: global alignment mode.'',/
+     *      ''    -1: domain global alignment mode.'',/
+     *      ''    -2: semi-global alignment mode.'',/
+     *      ''    -3: local alignment mode.'',/
+     *      ''    -a: asymmetrical gap weighting.'',/
+     *      ''    -b: block profile mode.'',/
+     *      ''    -c: circular profile.'',/
+     *      ''    -e: enable endgap-weighting mode.'',/
+     *      ''    -h: print usage help text.'',/
+     *      ''    -m: input sequences in MSA format.'',/
+     *      ''    -l: do not impose limit on line length.'',/
+     *      ''    -s: symmetrical gap weighting.''
+     *      )')
+         Write(NERR,'(
+     *      ''    -E<value>:'',/
+     *      ''        gap extension penalty (default: 0.2).'',/
+     *      ''    -F<value>:'',/
+     *      ''        output score multiplier (default: 100)'',/
+     *      ''    -G<value>:'',/
+     *      ''        gap opening penalty (default: 2.1)'',/
+     *      ''    -H<value>:'',/
+     *      ''        high cost initiation/termination score (default'',
+     *      '': *)'',/
+     *      ''    -I<value>:'',/
+     *      ''        gap penalty multiplier increment (default:'',
+     *      '' 0.1)''
+     *      )')
+         Write(NERR,'(
+     *      ''    -L<value>:'',/
+     *      ''        low cost initiation/termination score (default:'',
+     *      ''  0).'',/
+     *      ''    -M<value>:'',/
+     *      ''        maximum gap penalty multiplier (default:'',
+     *      '' 0.333).'',/
+     *      ''    -S<value>:'',/
+     *      ''        score matrix multiplier (default: 0.1)'',/
+     *      ''    -T<value>:'',/
+     *      ''        gap region threshold (default: 0.01)'',/
+     *      ''    -X<value>:'',/
+     *      ''        gap excision threshold (default: 0.5)'',/
+     *      )')
+         Write(NERR,'(
+     *      '' valid (but deprecated) parameters are:'',/,
+     *      ''  [E=gap-extension-weight]      use option -E instead'',/
+     *      ''  [F=output-score-multiplier]   use option -F instead'',/
+     *      ''  [G=gap-weigth]                use option -G instead'',/
+     *      ''  [H=high-cost-init-term-score] use option -H instead'',/
+     *      ''  [I=Ginc-multiplier]           use option -I instead'',/
+     *      ''  [L=low-cost-init-term-score]  use option -L instead'',/
+     *      ''  [M=Gmax-multiplier]           use option -M instead'',/
+     *      ''  [S=score-matrix-multiplier]   use option -S instead'',/
+     *      ''  [T=gap-region-threshhold]     use option -T instead'',/
+     *      ''  [X=gap-excision-threshold]    use option -X instead'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+
+* read msf or msa-file
+
+      If(OPTM) then
+         Call REMSA
+     *      (NERR,NMSF,FMSF,
+     *      IDMS,CSEQ,NSEQ,LSEQ,
+     *      IDMF,RWGT,SQID,
+     *      IRC)
+      Else
+         Call REMSF
+     *      (NERR,NMSF,FMSF,
+     *      IDMS,CSEQ,NSEQ,LSEQ,
+     *      IDMF,RWGT,SQID,
+     *      IRC)
+      End if
+      If(IRC.NE.0) go to 100
+
+* read score-matrix 
+
+      Call RECMP(NERR,NCMP,FCMP,NABC,CABC,RCMP,IRC)
+      If(IRC.NE.0) go to 100
+
+* read input profile  
+
+      If(FPRF.NE.' ')
+     *   Call REPRF
+     *   (NPRF,FPRF,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   BLOG,FABC,P0,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,CHIL,IIPL,ILIP,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   INBP,LEOF,.FALSE.,IRC)
+
+      If(IRC.GT.0) go to 100
+      If(IRC.NE.0.OR.FPRF.EQ.' ') then
+         IRC=0
+         CPID=' '
+         CPAC=' '
+         CPDT=' '
+         CPDE=' '
+         MDIS=0
+         JNOR=0
+         JCUT=0
+         LHDR=0
+         LFTR=0
+      End if
+      
+*----------------------------------------------------------------------*
+* DATA PROCESSING SECTION 
+*----------------------------------------------------------------------*
+
+* normalize weights 
+
+      R1=0.0
+      Do I1=1,NSEQ
+         R1=R1+RWGT(I1)
+      End do
+      If(R1.EQ.0.0) then 
+         R1=1/Real(NSEQ)
+         Do I1=1,NSEQ
+            RWGT(I1)=R1
+         End do
+      Else
+         Do I1=1,NSEQ
+            RWGT(I1)=RWGT(I1)/R1
+         End do
+      End if 
+
+* make sequences uppercase 
+
+      Do I1=1,LSEQ*NSEQ
+         If     (Index(ABCU,CSEQ(I1)).EQ.0) then
+            IX=Index(ABCL,CSEQ(I1))
+            If(IX.GT.0) then
+               CSEQ(I1)=ABCU(IX:IX)
+            Else
+               CSEQ(I1)='-'
+            End if
+         End if
+      End do
+
+* remove endgaps
+
+      If(.NOT.LWGE) then 
+         J1=0 
+         Do  10 I1=1,NSEQ
+            Do   6 I2=J1+1,J1+LSEQ
+               If(CSEQ(I2).NE.'-') go to  7
+               CSEQ(I2)=' '
+ 6          Continue
+ 7          Continue
+
+            Do   8 I2=J1+LSEQ,J1+1,-1
+               If(CSEQ(I2).NE.'-') go to  9
+               CSEQ(I2)=' '
+ 8          Continue
+ 9          Continue
+            J1=J1+LSEQ
+ 10      Continue
+      End if
+
+* make frequency profile
+*    
+*   for residue i and profile position j: 
+*      RPRF(i,j) = residue frequency(residue,position)
+*   for profile position j: 
+*      FUNK(  j) = fraction of unknown residues
+*      FRES(  j) = fraction of residues and gaps 
+*      RDEL(  l) = fraction of gaps 
+
+* - initialize 
+
+      Do  12  I1=1,LSEQ
+         Do  11 I2=1,NABC
+            RPRF(I2,I1)=0.0
+ 11      Continue
+         FUNK(I1)=0.0
+         FRES(I1)=0.0
+         FDEL(I1)=0.0
+ 12   Continue
+
+      J1=0
+      K1=1
+      Do  20 I1=1,NSEQ
+         K2=1
+         Do  19 I2=J1+1,J1+LSEQ
+            IX=0
+            Do  15 I3=1,NABC
+               If(CSEQ(I2).EQ.CABC(I3)) then
+                  IX=I3
+                  Go to  16
+               End if
+ 15         Continue
+ 16         Continue
+
+            FRES(   K2)=FRES(   K2)+RWGT(K1)
+            If     (IX.NE.0) then 
+               RPRF(IX,K2)=RPRF(IX,K2)+RWGT(K1)
+            else if(CSEQ(I2).EQ.'-') then
+               FDEL(   K2)=FDEL(   K2)+RWGT(K1)
+            else if(CSEQ(I2).EQ.' ') then
+               FRES(   K2)=FRES(   K2)-RWGT(K1)
+            else 
+               FUNK(   K2)=FUNK(   K2)+RWGT(K1)
+            end if  
+            K2=K2+1
+ 19      Continue
+         J1=J1+LSEQ
+         K1=K1+1
+ 20   Continue
+
+* normalize frequencies: 
+
+      Do  25 I1=1,LSEQ
+         FDEL(I1)=FDEL(I1)/FRES(I1)
+         R1=FRES(I1)-FUNK(I1)
+         If(R1.EQ.0) go to  25
+         Do  23 I2=1,NABC
+            RPRF(I2,I1)=RPRF(I2,I1)/R1
+ 23      Continue
+ 25   Continue
+
+* construct score profile:
+*    
+*   for known residue i and profile match position j: 
+*      SPRF(i,j) = match extension score
+*   for profile position j: 
+*      SDEL(  j) = gap penalty multipliers for deletion gaps  
+*      SINS(  j) = gap penalty multipliers for insertion gaps 
+
+* - gap penalty multipliers:
+
+      K1=0
+      J1=0
+      SINS(0)=1.0
+      Do   30 I1=1,LSEQ
+         If(FDEL(I1).LE.RT) then
+            If(K1.GT.0) then 
+               XDEL=RM/(1.0+K1*RI)
+               SINS(J1-1)=XDEL
+               Do  27 I2=J1,I1-1
+                  SINS(I2)=XDEL
+                  SDEL(I2)=XDEL
+ 27            Continue
+               K1=0 
+            End if  
+            SINS(I1)=1.0
+            SDEL(I1)=1.0
+         else 
+            If(K1.EQ.0) J1=I1
+            K1=K1+1
+         end if
+ 30   Continue
+
+      K1=0
+      J1=0
+      Do  50 I1=1,LSEQ  
+         If(FDEL(I1).GT.1-RX) then 
+
+* - gap excision
+
+            J1=J1+1 
+         else 
+            K1=K1+1
+
+* - score matrix application 
+
+            Do  33 I2=1,NABC  
+               SPRF(I2,K1)=0.0
+               Do  32 I3=1,NABC 
+                  SPRF(I2,K1)=SPRF(I2,K1)+RCMP(I3,I2)*RPRF(I3,I1)
+ 32            Continue
+               SPRF(I2,K1)=RS*SPRF(I2,K1)
+C                Write(6,'(I4,1x,A,F10.4)') K1,CABC(I2),SPRF(I2,K1)
+ 33         Continue
+            If(J1.GT.0) then 
+               SINS(K1-1)=-SINS(I1-1)
+               J1=0
+            End if 
+            SDEL(K1)=SDEL(I1)
+            SINS(K1)=SINS(I1)
+            FDEL(K1)=FDEL(I1)
+         end if 
+ 50   Continue
+      If(J1.GT.0) SINS(K1)=-SINS(K1)  
+      LPRF=K1
+
+
+* initialize generalized profile
+
+* - header
+
+      If(CPID.EQ.' ') CPID='SEQUENCE_PROFILE'
+      If(CPAC.EQ.' ') CPAC='ZZ99999'
+      CALL Fdate(FDAT)
+      If(CPDT.NE.' ') then
+         CPDT=FDAT(1:Lblnk(FDAT)) // ' ! ' // CPDT
+      Else
+         CPDT=FDAT(1:Lblnk(FDAT))
+      End if
+      If(FMSF.EQ.'-') FMSF='stdin'
+      If(CPDE.EQ.' ') CPDE='Generated from MSF file: '''
+     *   // FMSF(1:Lblnk(FMSF))
+     *   // '''.'
+      
+* - accessories
+      
+      If(MDIS.EQ.0) then 
+         MDIS=2
+         N1=MIN(5,LPRF/10) 
+         NDIP(1)=1   +N1
+         NDIP(2)=LPRF-N1
+      End If
+      
+      If(JNOR.EQ.0.OR.JCUT.EQ.0) then 
+         JNOR=1
+         MNOR(1)=1
+         NNOR(1)=1
+         NNPR(1)=1
+         CNTX(1)='No_units'
+         RNOP(1,1)=0.0
+         RNOP(2,1)=1/RF
+      End if
+      
+      If(JCUT.EQ.0) then
+         JCUT=2
+
+         MCLE(1)=0
+         CCUT(1)='!'
+         ICUT(1)=INT(RF*8.5)
+         JCNM(1)=1
+         RCUT(1,1)=8.5
+         MCUT(1,1)=1
+
+         MCLE(2)=-1
+         CCUT(2)='?'
+         ICUT(2)=INT(RF*6.5)
+         JCNM(2)=1
+         RCUT(1,2)=6.5
+         MCUT(1,2)=1
+      End if
+      
+* - defaults for match and insert position
+      
+      CHID='-'
+      Do  65 I1=1,26
+         IIPD(I1)=0
+ 65   Continue
+
+      If(LSYM) then
+         N1=-NINT(RF*RG/2) 
+         N2=-NINT(RF*RG/2) 
+      Else
+         N1=-NINT(RF*RG) 
+         N2=0
+      End if
+      N3=-NINT(RF*RE)
+      
+      IIPD(B0)=0
+      IIPD(B1)=NLOW
+      IIPD(E0)=0
+      IIPD(E1)=NLOW
+      
+      IIPD(BM)=0
+      IIPD(BI)=NLOW
+      IIPD(BD)=NLOW
+      IIPD(BE)=NLOW
+      IIPD(MM)=0
+      IIPD(MI)=N1
+      IIPD(MD)=N1
+      IIPD(ME)=0
+      IIPD(IM)=N2
+      IIPD(II)=0
+      IIPD(ID)=NLOW
+      IIPD(IE)=NLOW
+      IIPD(DM)=N2
+      IIPD(DI)=NLOW
+      IIPD(DD)=0
+      IIPD(DE)=NLOW
+      
+      IIPD(I0)=0
+
+      CHMD='X'
+      CHID='-'
+      Do  66 I1=1,26
+         IIPD(I1)=N3
+         IMPD(I1)=0
+ 66   Continue
+      
+      IIPD(M0)=0
+
+      IMPD(D )=N3
+
+      Do  68 I1=0,27
+         IMPP(I1,0)=NLOW
+ 68   Continue
+
+* build insert positions
+
+      Do  75 I1=0,LPRF
+
+         CHIP(I1)=CHID
+
+         Do I2=0,46
+            IIPP(I2,I1)=IIPD(I2)
+         End do  
+         
+         If(SINS(I1).LT.0) then 
+            XINS=0.0
+            SINS(I1)=-SINS(I1)
+         Else
+            XINS=SINS(I1)
+         End if
+         
+         NINS=-NINT(RF*RE*SINS(I1))
+         Do  I2=1,NABC
+            IIPP(I2,I1)=NINS
+         End do
+
+         If     (LSYM) then
+            IIPP(MI,I1)=-NINT(RF*RG*XINS      /2)
+            IIPP(IM,I1)=-NINT(RF*RG*XINS      /2)
+            If(XINS.EQ.0) then
+               If(I1.NE.LPRF) IIPP(MD,I1)=-NINT(RF*RG*SINS(I1)  /2)
+               If(I1.NE.   0) IIPP(DM,I1)=-NINT(RF*RG*SINS(I1)  /2)
+            Else 
+               If(I1.NE.LPRF) IIPP(MD,I1)=-NINT(RF*RG*SDEL(I1+1)/2)
+               If(I1.NE.   0) IIPP(DM,I1)=-NINT(RF*RG*SDEL(I1  )/2)
+            End if
+         Else if(I1.NE.LPRF) then 
+            IIPP(MI,I1)=-NINT(RF*RG*SDEL(I1+1))
+            IIPP(MD,I1)=-NINT(RF*RG*SDEL(I1+1))
+         End if
+
+ 75   Continue
+      
+* - build match position
+
+      Do  80 I1=1,LPRF
+         Do  I2=0,27
+            IMPP(I2,I1)=IMPD(I2)
+         End do
+         IMPP( D,I1)=-NINT(RF*RE*SDEL(I1)) 
+         Do  I2=1,NABC
+            IMPP(I2,I1)=NINT(RF*SPRF(I2,I1))
+         End do  
+
+         J2=0 
+         K2=0 
+         Do I2=1,NABC
+            If(IMPP(I2,I1).GT.K2) then 
+               J2=I2 
+               K2=IMPP(I2,I1)
+            End if 
+         End do
+         If(J2.NE.0) then 
+            CHMP(I1)=CABC(J2)
+         Else
+            CHMP(I1)=CHMD  
+         End if 
+ 80   Continue
+
+* block profile
+
+      If(LBLK) then 
+         K1=0
+         J1=0
+ 85      J1=J1+1 
+         If((FDEL(J1).LE.RT.AND.K1+1.NE.J1).OR.
+     *      (FDEL(J1).GT.RT.AND.J1.EQ.LPRF)) then 
+            
+* - gap region: define center position 
+
+            N1=K1
+            N3=J1-1
+            If(FDEL(J1).GT.RT) N3=LPRF
+
+* - - beginning, end
+
+            If(N1.EQ.0) then
+               N2=N3
+               GO to 90
+            End if
+
+            If(N3.EQ.LPRF) then
+               N2=N1
+               Go to 90 
+            End if 
+
+* - - gap excision position ?
+
+            N2=N1
+            Do I1=N1,N3
+               If(IIPP(MI,I1).EQ.0) then 
+                  N2=I1
+                  Go to  90
+               End if
+            End do
+
+* - - find center position
+
+            R1=0
+            R2=0
+            Do I1=N1+1,N3
+               R1=R1+FDEL(I1)-FDEL(I1-1)
+               If(R1.GT.R2) then 
+                  N2=I1
+                  R2=R1
+               End if 
+            End do 
+
+* - edit gap region 
+
+ 90         Continue 
+            Do I1=N1,N3
+               If(I1.LT.N2) then
+                  IIPP(DM,I1)=IIPD(DM)
+                  IIPP(IM,I1)=IIPD(IM) 
+                  IIPP(MI,I1)=IIPD(MI) 
+               End if
+               If(I1.GT.N2) then
+                  IIPP(MD,I1)=IIPD(MD)
+                  IIPP(IM,I1)=IIPD(IM) 
+                  IIPP(MI,I1)=IIPD(MI) 
+               End if
+            End do 
+
+* - gap region done
+
+            K1=J1
+
+* - no gap region
+
+         Else
+            If(FDEL(J1).LE.RT) K1=J1
+         End if
+         If(J1.LT.LPRF) go to 85
+
+      End if
+
+* begin-to, to-end scores 
+
+      IIPP(BM,   0)=IIPP(MM,   0)
+      IIPP(BI,   0)=IIPP(MI,   0)
+      IIPP(BD,   0)=IIPP(MD,   0)
+      IIPP(ME,LPRF)=IIPP(MM,LPRF)
+      IIPP(IE,LPRF)=IIPP(IM,LPRF)
+      IIPP(DE,LPRF)=IIPP(DM,LPRF)
+      
+* alignment mode
+
+* - define high and low init/term scores in integer units 
+
+      NH=NLOW 
+      If(RH.GT.Real(NLOW)) then
+         RH=-RH*RF
+         If(RH.GT.Real(NLOW)) NH=NINT(RH) 
+      End if      
+      NL=NLOW
+      If(-RF*RL.GT.Real(NLOW)) NL=NINT(-RL*RF) 
+
+* - global alignment mode (also initialization for other modes)
+
+      Do I1=0,LPRF
+         IIPP(B0,  I1)=NH
+         IIPP(B1,  I1)=NH
+         IIPP(E0,  I1)=NH
+         IIPP(E1,  I1)=NH
+         IIPP(BE,  I1)=IIPD(BE)
+      End do
+      IIPP(B0,   0)=NL
+      IIPP(E0,LPRF)=NL
+
+      IIPD(B0)=NH
+      IIPD(B1)=NH
+      IIPD(E0)=NH
+      IIPD(E1)=NH
+
+
+* - domain-global alignment mode
+
+      If(OPT1.OR.OPT2.OR.OPT3) then
+         IIPP(B1,   0)=NL
+         IIPP(E1,LPRF)=NL
+      End if
+      
+* - semiglobal alignment mode        
+
+      If(OPT2.OR.OPT3) then
+         Do I1=0,LPRF
+            IIPP(B0,I1)=NL
+            IIPP(E0,I1)=NL
+         End do
+         IIPD(B0)=NL
+         IIPD(E0)=NL
+      End if
+
+* - local alignment mode
+      
+      If(OPT3) then
+         Do I1=1,LPRF-1
+            IIPP(B1,I1)=NL
+            IIPP(E1,I1)=NL
+         End do 
+         IIPD(B1)=NL
+         IIPD(E1)=NL
+      End if
+
+* - default M0 value: 
+
+      R=0.0
+      Do I1=1,LPRF
+         Do I2=1,NABC
+            R=R+IMPP(I2,I1)
+         End do
+      End do
+      IMPD(M0)=INT(R/(LPRF*NABC))
+
+      Do I1=1,LPRF
+         IMPP(M0,I1)=IMPD(M0)
+      End do 
+
+* linear or circular profile ? 
+
+      If(OPTC) then 
+         Do I1=0,46 
+            K1=MAX(IIPP(I1,   0),IIPP(I1,LPRF))
+            IIPP(I1,   0)=K1
+            IIPP(I1,LPRF)=K1
+         End do
+         IIPP(MM,0)=MAX(IIPP(MM,0),IIPP(BM,0),IIPP(ME,0)) 
+         IIPP(MI,0)=MAX(IIPP(MI,0),IIPP(BI,0))
+         IIPP(MD,0)=MAX(IIPP(MD,0),IIPP(BD,0))
+         IIPP(IM,0)=MAX(IIPP(IM,0),IIPP(IE,0))
+         IIPP(DM,0)=MAX(IIPP(DM,0),IIPP(DE,0))
+         LPCI=.TRUE.
+      Else 
+         LPCI=.FALSE.
+      End if
+
+*----------------------------------------------------------------------*
+* OUTPUT SECTION 
+*----------------------------------------------------------------------*
+
+C      FOUT='stdout'
+
+* add command-line to footer lines
+
+      LFTR=LFTR+1
+      If(LFTR.GT.1024) LFTR=1024
+      Do I1=LFTR,2,-1
+         CFTR(I1)=CFTR(I1-1)
+      End do
+
+      CFTR(1)='CC   /GENERATED_BY="'
+      Call Recmd(CFTR(1)(21:130))
+      IC=Lblnk(CFTR(1))
+      CFTR(1)(IC+1:)='";'
+
+      Call WRPRF
+     *   (NOUT,LLLT,LRNM,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,
+     *   BLOG,FABC,P0,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   IRC)
+
+ 100  Call Exit(IRC)
+      End
+*----------------------------------------------------------------------*
+      Subroutine Repar
+     *   (FMSF,FCMP,FPRF,OPT0,OPT1,OPT2,OPT3,OPTC,LSYM,LWGE,LBLK,
+     *   LLLT,OPTM,RE,RF,RG,RH,RI,RL,RM,RS,RT,RX,NLOW,IRC)
+
+      Character*512     CPAR
+      Character*(*)     FMSF 
+      Character*(*)     FCMP
+      Character*(*)     FPRF
+
+      Logical           OPT0
+      Logical           OPT1
+      Logical           OPT2
+      Logical           OPT3
+      Logical           OPTC
+      Logical           LLLT
+      Logical           OPTM
+
+      Logical           LBLK 
+      Logical           LSYM
+      Logical           LWGE
+
+      OPT0=.FALSE.
+      OPT1=.FALSE.
+      OPT2=.TRUE.
+      OPT3=.FALSE.
+      OPTC=.FALSE.
+      LLLT=.TRUE.
+      OPTM=.FALSE.
+
+      LBLK=.FALSE.
+      LSYM=.TRUE.
+      LWGE=.FALSE.
+      
+      RE=0.2
+      RF=100
+      RG=2.1
+      RH=Real(NLOW)
+      RI=0.1
+      RL=0.0
+      RM=0.333
+      RS=0.1
+      RT=0.01
+      RX=0.5
+
+      IRC=0
+      FMSF=' '
+      FCMP=' '
+      FPRF=' '
+
+      N1=Iargc()
+
+      K1=0
+      I2=1
+      Do  10 I1=1,N1 
+         Call GetArg(I2,CPAR)
+         If     (CPAR(1:1).EQ.'-'.AND.CPAR(2:2).NE.' ') then
+            If(Index(CPAR,'0').NE.0) then
+               OPT0=.TRUE. 
+               OPT2=.FALSE.
+            else if(Index(CPAR,'1').NE.0) then
+               OPT1=.TRUE. 
+               OPT2=.FALSE.
+            else if(Index(CPAR,'2').NE.0) then
+               OPT2=.TRUE. 
+            else if(Index(CPAR,'3').NE.0) then
+               OPT3=.TRUE. 
+               OPT2=.FALSE.
+            End if                
+            If(Index(CPAR,'h').NE.0) then 
+               IRC=1
+               Goto 100
+            End if
+            If(Index(CPAR,'a').NE.0) LSYM=.FALSE.
+            If(Index(CPAR,'b').NE.0) LBLK=.TRUE.
+            If(Index(CPAR,'c').NE.0) OPTC=.TRUE.
+            If(Index(CPAR,'e').NE.0) LWGE=.TRUE.
+            If(Index(CPAR,'l').NE.0) LLLT=.FALSE.
+            If(Index(CPAR,'m').NE.0) OPTM=.TRUE.
+            If(Index(CPAR,'s').NE.0) LSYM=.TRUE.
+            If(Index(CPAR,'E').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RE
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RE
+               End if
+            End if
+            If(Index(CPAR,'F').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RF
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RF
+               End if
+            End if
+            If(Index(CPAR,'G').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RG
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RG
+               End if
+            End if
+            If(Index(CPAR,'H').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RH
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RH
+               End if
+            End if
+            If(Index(CPAR,'I').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RI
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RI
+               End if
+            End if
+            If(Index(CPAR,'L').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RL
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RL
+               End if
+            End if
+            If(Index(CPAR,'M').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RM
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RM
+               End if
+            End if
+            If(Index(CPAR,'S').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RS
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RS
+               End if
+            End if
+            If(Index(CPAR,'T').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RT
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RT
+               End if
+            End if
+            If(Index(CPAR,'X').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RX
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RX
+               End if
+            End if
+            
+         Else if(CPAR(1:2).EQ.'E=') then
+            Read(CPAR(3:),*,Err=900) RE
+         Else if(CPAR(1:2).EQ.'F=') then
+            Read(CPAR(3:),*,Err=900) RF
+         Else if(CPAR(1:2).EQ.'G=') then
+            Read(CPAR(3:),*,Err=900) RG
+         Else if(CPAR(1:2).EQ.'H=') then
+            Read(CPAR(3:),*,Err=900) RH
+         Else if(CPAR(1:2).EQ.'I=') then
+            Read(CPAR(3:),*,Err=900) RI
+         Else if(CPAR(1:2).EQ.'L=') then
+            Read(CPAR(3:),*,Err=900) RL
+         Else if(CPAR(1:2).EQ.'M=') then
+            Read(CPAR(3:),*,Err=900) RM
+         Else if(CPAR(1:2).EQ.'S=') then
+            Read(CPAR(3:),*,Err=900) RS
+         Else if(CPAR(1:2).EQ.'T=') then
+            Read(CPAR(3:),*,Err=900) RT
+         Else if(CPAR(1:2).EQ.'X=') then
+            Read(CPAR(3:),*,Err=900) RX
+            
+         Else if(FMSF.EQ.' ') then
+            FMSF=CPAR
+         Else if(FCMP.EQ.' ') then
+            FCMP=CPAR
+         Else if(FPRF.EQ.' ') then
+            FPRF=CPAR
+         End if
+         I2=I2+1
+         If(I2.GT.N1) Go to 20         
+ 10   Continue
+
+ 20   If(FMSF.EQ.' '.OR.FCMP.EQ.' ') go to 900
+      
+      If(LBLK) then
+         LSYM=.TRUE.
+         LWGE=.FALSE.
+      End if
+
+ 100  Return 
+ 900  IRC=1
+      Go to 100
+      End
+*----------------------------------------------------------------------*
+      Subroutine RECMP(NERR,NCMP,FCMP,NABC,CABC,RCMP,IRC)
+
+      Character*(*)    FCMP
+
+      Integer          NABC 
+      Character        CABC(0:26) 
+
+      Real             RCMP(26,26)
+
+      Character*512    RCIN 
+      Character*32     CMIS
+
+
+      Open(NCMP,File=FCMP,Status='OLD',Err=900)
+
+      CMIS='..'
+ 1    Read(NCMP,'(A)',Err=901,End=902) RCIN        
+      IX=Index(RCIN,'..')
+      If(IX.EQ.0) go to   1
+
+* read alphabet  
+      
+      NABC=0
+      Do  10 I1=1,IX-1
+         If(RCIN(I1:I1).NE.' ') then
+            NABC=NABC+1
+            CABC(NABC)=RCIN(I1:I1)
+         End if
+ 10   Continue
+
+      If(NABC.LE.0.OR.NABC.GT.26) go to 905
+      Do  20  I1=1,NABC
+ 11      Read(NCMP,'(A)',Err=901,End=903) RCIN        
+         If(RCIN.EQ.' ') go to  11 
+         Read(RCIN,*,Err=904)(RCMP(I1,ii1),ii1=I1,NABC)
+         Read(RCIN,*,Err=904)(RCMP(ii1,I1),ii1=I1,NABC)
+ 20   Continue
+      
+ 100  Return
+
+* errors
+
+ 900  Write(NERR,*) 'Error: Unable to open matrix file'//
+     *   ' ''',FCMP(1:Lblnk(FCMP)),'''.'
+      IRC=1
+      Go to 100
+ 901  Write(NERR,*) 'Error: Unable to read matrix file'//
+     *   ' ''',FCMP(1:Lblnk(FCMP)),'''.'
+      IRC=1
+      Go to 100
+ 902  Write(NERR,*) 'Error: Unexpected end of matrix file. '//
+     *   'Unable to find ''',CMIS,''' keyword.'
+      IRC=1
+      Go to 100
+ 903  Write(NERR,*) 'Error: Unexpected end of matrix file. '//
+     *   'Discrepancies between alphabet length and matrix lines.'
+      IRC=1
+      Go to 100
+ 904  Write(NERR,*) 'Error: Unable to read matrix values.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      IRC=1
+      Go to 100
+ 905  Write(NERR,*) 'Error: Unable to handle matrix alphabet size.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      IRC=1
+      Go to 100
+      End
+*----------------------------------------------------------------------*
+      Include          'remsf.f'
+      Include          'remsa.f'
+      Include          'recmd.f'
+      Include          'reprf.f'
+      Include          'wrprf.f'
+      Include          'lblnk.f'
+      Include          'Xblnk.f'
+      
diff --git a/pfscale.f b/pfscale.f
new file mode 100644
index 0000000..f99e125
--- /dev/null
+++ b/pfscale.f
@@ -0,0 +1,446 @@
+*       Program pfscale 
+*----------------------------------------------------------------------*     
+* $Id: pfscale.f,v 2.11 2003/11/28 11:53:33 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Function: Fits paramters of an extreme value distribution to a
+*                 profile score distribution. Input: sorted score list.
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* DATA
+*----------------------------------------------------------------------*
+
+* array sizes, I/O units
+
+      Include          'ardim.f' 
+
+      Parameter        (NOUT=   6)
+      Parameter        (NSCL=  10)
+      Parameter        (NPRF=  11)    
+
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+* Parameters and options
+
+      Character*512     FSCL  
+      Character*512     FPRF  
+
+      Real*8            DL
+      Integer           NN
+      Integer           IMNB
+      Real              RP
+      Real              RQ
+
+* Profile fields
+
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'pfdat.f'
+      Include          'dfdat.f'
+      Include          'sterr.f'
+      Include          'cvini.f'
+
+* score statistics  
+
+      Real              XSCO(IDMC)
+      Real              XFRQ(IDMC)
+      Real              XWGT(IDMC)
+      Logical           LMNB
+      Logical           LLLT
+      Logical           LRNM
+      Logical           LEOF
+
+*----------------------------------------------------------------------*
+* INPUT SECTION
+*----------------------------------------------------------------------*
+
+      IRC=0
+      LRNM=.FALSE.
+      LEOF=.FALSE.
+
+* read command line 
+
+      Call Repar(FSCL,FPRF,LLLT,DL,NN,RP,RQ,LMNB,IMNB,IRC)
+      If(IRC.NE.0) then
+         Write(NERR,'(/,
+     *      ''pfscale 2.3 revision 5.d'',//
+     *      ''Usage: pfscale [ -lhLMNPQ ] [ score-list | - ] '' 
+     *      ''[ profile-file ] [ parameters ]'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -h: print usage help text.'',/
+     *      ''    -l: do not impose limit on line length.'',/
+     *      ''    -L<value>:'',/
+     *      ''        logarithmic base of parameters (default: 10).'',/
+     *      ''    -M<value>:'',/
+     *      ''        profile mode number to scale.'',/
+     *      ''    -N<value>:'',/
+     *      ''        database size (default: 14147368).'',/
+     *      ''    -P<value>:'',/
+     *      ''        upper threshold of probability range (default:'',
+     *      '' 0.0001).'',/
+     *      ''    -Q<value>:'',/
+     *      ''        lower threshold of probability range (default:'',
+     *      '' 0.000001).'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   valid (but deprecated) parameters are:'',/,
+     *      ''    [L=log-base]        use option -L instead'',/,
+     *      ''    [M=mode-nb]         use option -M instead'',/,
+     *      ''    [N=db-size]         use option -N instead'',/,
+     *      ''    [P=upper-threshold] use option -P instead'',/
+     *      ''    [Q=lower-threshold] use option -Q instead'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+         
+      If(FSCL.NE.' '.AND.FSCL.NE.'-') then
+         MSCL=NSCL 
+         Open(MSCL,File=FSCL,Status='OLD',Err=900)
+      Else
+         MSCL=5
+      End if
+
+      RL=1/LOG(DL)
+
+      RDBS=RL*LOG(Real(NN))
+      If(RQ.NE.0) then
+         EMAX=-RL*(LOG(RQ))
+      Else
+         EMAX=100
+      End if
+      EMIN=-RL*(LOG(RP))
+
+      Do   5 I1=1,IDMC
+         Read(MSCL,*,End= 10,Err=901) XSCO(I1)
+         XFRQ(I1)=RDBS-RL*LOG(I1-0.5)
+         XWGT(I1)=I1*0.5
+ 5    Continue
+
+ 10   NSCO=I1-1       
+      If(NSCO.LT.1) Go to 904
+
+      XSM=0
+      XFM=0
+      XWM=0
+      Do  20 I1=1,NSCO
+         If(XFRQ(I1).GE.EMIN.AND.XFRQ(I1).LE.EMAX) then 
+            XSM=XSM+XWGT(I1)*XSCO(I1)
+            XFM=XFM+XWGT(I1)*XFRQ(I1)
+            XWM=XWM+XWGT(I1)
+         End if
+ 20   Continue
+      XSM=XSM/XWM
+      XFM=XFM/XWM
+
+
+      XSV=0
+      XFV=0
+      XCO=0
+      Do  30 I1=1,NSCO
+         If(XFRQ(I1).GE.EMIN.AND.XFRQ(I1).LE.EMAX) then 
+            XSV=XSV+XWGT(I1)*( (XSCO(I1)-XSM)**2 ) 
+            XFV=XFV+XWGT(I1)*( (XFRQ(I1)-XFM)**2 )
+            XCO=XCO+XWGT(I1)*(XFRQ(I1)-XFM)*(XSCO(I1)-XSM)
+         End if
+ 30   Continue
+      XSV=(XSV/XWM)**0.5
+      XFV=(XFV/XWM)**0.5
+      XCO=(XCO/XWM)/(XFV*XSV)
+
+      XB=XCO*XFV/XSV
+      XA=XFM-XB*XSM
+
+      If(FPRF.NE.' ') Go to  50 
+
+* Case 1: no profile input file - print list
+
+      Write(NOUT,
+     *   '(''# -LogP ='',F8.4,'' + '',F12.8,'' * raw-score'')') XA,XB 
+      
+      Write(NOUT,'(''#'')')
+      Write(NOUT,'(''#   rank raw-score  -logFreq  -logProb'')')
+      Write(NOUT,'(''#'')')
+
+      Do  40 I1=1,NSCO
+         XPRE=XA+XB*XSCO(I1) 
+         Write(NOUT,'(I8,F10.2,F10.4,F10.4)')
+     *      I1,XSCO(I1),XFRQ(I1),XPRE
+ 40   Continue
+      Go to 100
+
+* Case 2: Modify profile input file
+
+ 50   Continue 
+
+      Call REPRF
+     *   (NPRF,FPRF,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   BLOG,FABC,P0,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,CHIL,IIPL,ILIP,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   INBP,LEOF,.FALSE.,IRC)
+
+      If(IRC.NE.0) go to 100
+
+* Check normalization modes (Lowest priority mode will be updated)
+
+      If(LMNB) then
+         Do I1=1,JNOR
+            If(NNOR(I1).EQ.IMNB) then
+               J1=I1
+               Go to 55
+            End if
+         End do
+         Go to 903
+      Else
+         J1=1
+         K1=NNPR(J1)
+         Do I1=2,JNOR
+            If(NNPR(I1).LT.K1) then
+               K1=NNPR(I1)
+               J1=I1
+            End if 
+         End do 
+      End if
+
+ 55   CNTX(J1)='-LogE'
+      If(MNOR(J1).NE.1) go to 902
+ 
+* add normalisation parameters: 
+
+      RNOP(1,J1)=XA
+      RNOP(2,J1)=XB
+
+* define cut-offs:
+
+      Do I1=1,JCUT
+         Do I2=1,JCNM(I1)
+            If(MCUT(I2,I1).EQ.NNOR(J1)) then
+               Call NtoR
+     *            (RCUT(I2,I1),ICUT(I1),RNOP,KNPM,MAXN,J1,1,LSEQ,RAVE)
+               Go to 60
+            End if
+         End do
+ 60      Continue
+      End do 
+
+* rescaling command
+
+      LFTR=LFTR+1
+      If(LFTR.GT.1024) LFTR=1024
+      Do I1=LFTR,2,-1
+         CFTR(I1)=CFTR(I1-1)
+      End do
+
+      CFTR(1)='CC   /RESCALED_BY="'
+      Call Recmd(CFTR(1)(21:130))
+      IC=Lblnk(CFTR(1))
+      CFTR(1)(IC+1:)='";'
+
+* write profile
+
+      Call WRPRF
+     *   (NOUT,LLLT,LRNM,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,
+     *   BLOG,FABC,P0,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   IRC)
+
+ 100  Call Exit(IRC)
+
+* errors
+
+ 900  Write(NERR,*) 'Error: Unable to open score file'//
+     *   ' ''',FSCL(1:Lblnk(FSCL)),'''.'
+      IRC=1
+      Go to 100
+ 901  Write(NERR,*) 'Error: Unable to read score value.'
+      IRC=1
+      Go to 100
+ 902  Write(NERR,*) 'Error: Normalization mode number',NNOR(J1),
+     *   ' is not linear. Scaling impossible.'
+      IRC=1
+      Go to 100
+ 903  Write(NERR,*) 'Error: Normalization mode number',IMNB,
+     *   ' is not defined in profile.'
+      IRC=1
+      Go to 100
+ 904  Write(NERR,*) 'Error: Score list does not contain any ',
+     *   'valid scores.'
+      IRC=1
+      Go to 100
+
+      End
+*----------------------------------------------------------------------*
+      Subroutine Repar(FSCL,FPRF,LLLT,DL,NN,RP,RQ,LMNB,IMNB,IRC) 
+
+      Include          'sterr.f'
+
+      Character*(*)     FSCL  
+      Character*(*)     FPRF
+
+      Real*8            DL
+      Integer           NN
+      Real              RP
+      Real              RQ
+      Logical           LLLT
+      Logical           LMNB
+      Integer           IMNB
+
+      Character*512     CARG 
+
+* initializations
+
+      LLLT=.TRUE.
+      LLLT=.FALSE.
+      IMNB=1
+      FSCL=' '
+      FPRF=' '
+      DL=10.0
+      NN=14147368
+      RP=0.0001
+      RQ=0.000001
+      IRC=0
+
+* interpret command line arguments 
+
+      N1=Iargc()
+
+      K1=0
+      I2=1
+      Do I1=1,N1
+         Call GetArg(I2,CARG)
+         If     (CARG(1:1).EQ.'-'.AND.CARG(2:2).NE.' ') then
+            If(Index(CARG,'l').NE.0) LLLT=.FALSE.
+            If(Index(CARG,'h').NE.0) go to 900
+            If(Index(CARG,'L').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  If(CARG(3:3).EQ.'e'.OR.CARG(3:3).EQ.'E') then
+                     DL=EXP(1.0) 
+                  Else
+                     Read(CARG(3:),*,Err=900) DL
+                  End if
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  If(CARG(1:1).EQ.'e'.OR.CARG(1:1).EQ.'E') then
+                     DL=EXP(1.0) 
+                  Else
+                     Read(CARG,*,Err=900) DL
+                  End if
+               End if
+            End if
+            If(Index(CARG,'N').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) NN
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) NN
+               End if
+            End if
+            If(Index(CARG,'P').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RP
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RP
+               End if
+            End if
+            If(Index(CARG,'Q').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RQ
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RQ
+               End if
+            End if
+            If(Index(CARG,'M').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) IMNB
+                  LMNB=.TRUE.
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) IMNB
+                  LMNB=.TRUE.
+               End if
+            End if
+
+         Else if(CARG(1:3).EQ.'L=e'.OR.CARG(1:3).EQ.'L=E') then
+            DL=EXP(1.0) 
+         Else if(CARG(1:2).EQ.'L=') then
+            Read(CARG(3:),*,Err=900) DL 
+         Else if(CARG(1:2).EQ.'N=') then
+            Read(CARG(3:),*,Err=900) NN 
+         Else if(CARG(1:2).EQ.'P=') then
+            Read(CARG(3:),*,Err=900) RP
+         Else if(CARG(1:2).EQ.'Q=') then
+            Read(CARG(3:),*,Err=900) RQ
+         Else if(CARG(1:2).EQ.'M=') then
+            Read(CARG(3:),*,Err=900) IMNB
+            LMNB=.TRUE.
+         Else if(K1.LE.1) then
+            K1=K1+1
+            If     (K1.EQ.1) then
+               FSCL=CARG
+            Else if(K1.EQ.2) then
+               FPRF=CARG
+            End if
+C         Else
+C            Go to 900
+         End if
+         I2=I2+1
+         If(I2.GT.N1) Go to 20
+      End do
+      
+ 20   If(DL.LE.1) Go to 901
+      If(NN.LT.1) Go to 902
+      If(RP.LT.0.OR.RP.GT.1) Go to 903
+      If(RQ.LT.0.OR.RQ.GT.1) Go to 904
+      If(LMNB.AND.IMNB.LT.1) Go to 905
+ 100  Return
+ 900  IRC=1
+      Go to 100
+ 901  Write(NERR,*) 'Error: Value of option -L is out of bound.'
+      IRC=1
+      Go to 100
+ 902  Write(NERR,*) 'Error: Value of option -N is out of bound.'
+      IRC=1
+      Go to 100
+ 903  Write(NERR,*) 'Error: Value of option -P is out of bound.'
+      IRC=1
+      Go to 100
+ 904  Write(NERR,*) 'Error: Value of option -Q is out of bound.'
+      IRC=1
+      Go to 100
+ 905  Write(NERR,*) 'Warning: Mode numbers should be greater or ',
+     *   'equal to 1.'
+      Go to 100
+      End
+*----------------------------------------------------------------------*
+      Include          'reprf.f'
+      Include          'wrprf.f'
+      Include          'recmd.f'
+      Include          'NtoR.f'
+      Include          'lblnk.f'
+      Include          'Xblnk.f'
diff --git a/pfscan.1 b/pfscan.1
new file mode 100644
index 0000000..427773d
--- /dev/null
+++ b/pfscan.1
@@ -0,0 +1,416 @@
+.\"
+.\" $Id: pfscan.1,v 1.5 2003/08/11 12:09:14 vflegel Exp $
+.\" Copyright (c) 2003 Swiss Institute of Bioinformatics <pftools at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH PFSCAN  1 "July 2003" "pftools 2.3" "pftools"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+pfscan \- scan a protein or DNA sequence with a profile library 
+.\" ------------------------------------------------
+.\" Synopsis section
+.\" ------------------------------------------------
+.SH SYNOPSIS
+.TP 10
+.B pfscan
+[
+.B \-abdfhlLmruksvxyz
+] [
+.B \-C
+.I cut_off
+] [
+.B \-M
+.I mode_nb
+] [
+.B \-W
+.I width
+] [
+.I sequence
+|
+.B \-
+] [
+.I profile_library
+|
+.B \-
+] [
+.I parameters
+]
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B pfscan 
+compares a protein or nucleic acid sequence against a profile library. 
+The result is an unsorted list of profile-sequence matches written to
+the standard output.
+A variety of output formats containing different informations can be specified
+via the options
+.BR \-l , \ \-L , \ \-r , \ \-k , \ \-s , \ \-x , \ \-y
+and 
+.BR \-z .
+The file
+.RI ' sequence '
+contains a sequence in
+.SM EMBL/SWISS-PROT
+format (assumed by default) or in Pearson/Fasta
+format (indicated by option 
+.BR \-f ).
+The
+.RI ' profile_library '
+file contains a library of profiles in
+.SM PROSITE
+format. 
+If
+.RB ' \- '
+is specified instead of one of the filenames, the corresponding data is read
+from the standard input.
+.\" ------------------------------------------------
+.\" Options section
+.\" ------------------------------------------------
+.SH OPTIONS 
+.\" --- sequence ---
+.TP
+.I sequence
+Input query sequence.
+.br
+This DNA or protein sequence will be used to search for matches to
+a library of
+.SM PROSITE
+profiles.
+.br
+The content of the file must be either in
+.SM EMBL/SWISS-PROT
+(default) or in Pearson/Fasta format (option
+.BR \-f ).
+If the filename is replaced by a
+.RB ' \- ',
+.B pfscan
+will read the input sequence from
+.BR stdin .
+.\" --- profile_library ---
+.TP
+.I profile_library
+Library of
+.SM PROSITE
+profiles.
+.br
+This file should contain one or several
+.SM PROSITE
+profiles, against which the query sequence will be matched.
+Each entry in this library should be separated from the next by
+a line containing only the
+.RB ' // '
+code.
+If the filename is replaced by a
+.RB ' \- ',
+.B pfscan
+will read the profile library from
+.BR stdin .
+.\" --- a ---
+.TP
+.B \-a
+Report optimal alignment scores for 
+all profiles regardless of the cut-off value. 
+This option simultaneously forces 
+.IR DISJOINT = UNIQUE .   
+.\" --- b ---
+.TP
+.B \-b
+Search the complementary strand of the DNA sequence as well.
+.\" --- f ---
+.TP
+.B \-f
+Input sequence is in Pearson/Fasta format.
+.\" --- h ---
+.TP
+.B \-h
+Display usage help text.
+.\" --- l ---
+.TP
+.B \-l
+Indicate the value of the highest cut-off level exceeded by the match score
+in the output list. 
+.\" --- L ---
+.TP
+.B \-L
+Indicate by character string the highest cut-off level exceeded by the match score
+in the output list.
+.br
+.RS
+.TP
+Note:
+The generalized profile format includes a text
+string field to specify a name for a cut-off level. The
+.B \-L
+option causes the program to display the first two characters of this text string
+(usually something like
+.RI ' ! ',\ ' ? ',\ ' ?? ',
+etc.) at the beginning of each match description.
+.RE
+.\" --- m ---
+.TP
+.B \-m
+Report individual matches for circular profiles.
+.br
+If the profile is circular, each match between a sequence and a profile can be composed
+of a stretch of individual matches of the profile. By default,
+.B pfscan
+reports only the total matched region. When this option is set, detailed information for 
+each individual match will be output as well.
+.RS
+.TP
+Note:
+The scoring system for most circular profiles has been optimized to find
+total matches, therefore the normalized scores of individual matches of a circular profile
+to a sequence should be considered with caution.
+.RE
+.\" --- r ---
+.TP
+.B \-r
+Use raw scores rather than normalized 
+scores for match selection.  The normalized score is not printed.
+.\" --- u ---
+.TP
+.B \-u
+Forces
+.IR DISJOINT = UNIQUE . 
+.\" --- C ---
+.TP
+.BI \-C\  cut_off
+Cut-off level to be used for match selection.
+.br
+The value of
+.RI ' cut_off '
+should be the numerical identifier of a cut-off level defined in the profile.
+The raw or normalized score of this level will then be used to include profile to
+sequence matches in the output list.
+.br
+If the specified level does not exist in the profile, the next higher (if 
+.I cut_off
+is negative) or next lower (if
+.I cut_off
+is positive) level defined is used instead.
+.br
+Type: integer
+.br
+Default: 0
+.\" --- M ---
+.TP
+.BI \-M\  mode_nb
+Normalization mode to use for score computation.
+.br
+The
+.RI ' mode_nb '
+specifies which normalization mode defined in the profile should be used
+to compute the normalized scores for profile to sequence matches. This
+option will override the profile's
+.I PRIORITY
+parameter.
+.br
+If the specified normalization mode does not exist in the profile, an error
+message will be output to standard error and the search is interrupted.
+.br
+Type: integer
+.br
+Default: lowest priority mode defined in the profile
+.\" ------------------------------------------------
+.\" Output modifiers subsection
+.\" ------------------------------------------------
+.SS Ouput modifiers
+.\" --- d ---
+.TP
+.B \-d
+Limit profile description length.
+.br
+If this option is set, the description of the profile on the header line
+will be limited in length. If the match information is longer than
+the output width specified using option
+.BR \-W ,
+the profile description will not be printed. Else the description will be truncated
+to fit the
+.B \-W
+value.
+.br
+By default, the profile description is not truncated. This option can not be used
+when option
+.B \-k
+is set.
+.\" --- k ---
+.TP
+.B \-k
+Use
+.BR xpsa (5)
+headers for output.
+.br
+When this option is set, all output types 
+.RI ( see
+below) will use
+an
+.BR xpsa (5)
+style header line. This format uses
+.IR keyword = value
+pairs to output alignment parameters. It is useful to transfer information between
+different sequence alignment tools.
+.\" --- s ---
+.TP
+.B \-s
+List the sequences of the matched regions as well. 
+The output will be a Pearson/Fasta-formatted sequence
+library.
+.\" --- v ---
+.TP
+.B \-v
+Suppress sequence/profile parsing warnings.
+If this option is set no warning messages will be printed on
+.IR stderr .
+Only fatal errors will be reported. This option should be used
+with caution.
+.\" --- x ---
+.TP
+.B \-x
+List profile-sequence alignments 
+in
+.BR psa (5)
+format. Please refer to the corresponding man page for more information. 
+.\" --- y ---
+.TP
+.B \-y
+Display alignments between the profile and the matched sequence regions in 
+a human-friendly pairwise alignment format.   
+.\" --- z ---
+.TP
+.B \-z
+Indicate starting and ending position of the matched profile range. The latter
+position will be given as a negative offset from the end of the profile. Thus
+the range [    1,    -1] means entire profile.
+.\" --- W ---
+.TP
+.BI \-W\  width
+Set alignment output width.
+.br
+The value of
+.RI ' width '
+specifies how many residues will be output on one line when any of the
+.BR \-s ,\  \-x \ or\  \-y
+options is set.
+.br
+Type: integer
+.br
+Default: 60
+.\" ------------------------------------------------
+.\" Parameters section
+.\" ------------------------------------------------
+.SH PARAMETERS
+.TP
+Note:
+for backwards compatibility, release 2.3 of the
+.B pftools
+package will parse the version 2.2 style parameters, but these are
+.I deprecated
+and the corresponding option (refer to the
+.I options
+section) should be used instead.
+.TP
+L=#
+Cut-off level.
+.br
+Use option
+.B \-C
+instead, not
+.BR \-L .
+.TP
+W=#
+Output width.
+.br
+Use option
+.B \-W
+instead.
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+.B pfscan
+\-s GTPA_HUMAN prosite13.prf
+.IP
+Scans the human GAP protein for matches to profiles in
+.SM PROSITE 
+release 13. 
+The file
+.RI ' GTPA_HUMAN ' 
+contains the 
+.SM SWISS-PROT
+entry P20936|GTPA_HUMAN.
+The profile library file
+.RI ' prosite13.prf ' 
+contains all profile entries of
+.SM PROSITE
+release 13.  
+The output is a Pearson/Fasta-formatted sequence library containing 
+all sequence regions of the input sequence matching a profile in the 
+profile library. 
+.TP
+(2)
+.B pfscan
+\-by \-C 2 CVPBR322 ecp.prf
+.IP
+Scans both strands of plasmid PBR322 for high-scoring (level 2) 
+.I E. coli
+promoter matches.   
+The sequence file
+.RI ' CVPBR322 '
+contains
+.SM EMBL
+entry J01749|CVPBR322.
+The profile library file
+.RI ' ecp.prf '
+contains a profile for
+.I E. coli  
+promoters.
+The output includes profile-sequence alignments in a human-friendly
+format. 
+.\" ------------------------------------------------
+.\" Exit code section
+.\" ------------------------------------------------
+.SH EXIT CODE
+.LP
+On successful completion of its task,
+.B pfscan
+will return an exit code of 0. If an error occurs, a diagnostic message will be
+output on standard error and the exit code will be different from 0. When conflicting
+options where passed to the program but the task could nevertheless be completed, warnings
+will be issued on standard error.
+.\" ------------------------------------------------
+.\" Bugs section
+.\" ------------------------------------------------
+.SH "BUGS"
+If the match selection is based on normalized scores 
+.RI ( i.e.
+option
+.B \-r
+is not set), rounding errors can lead to the exclusion of some matches even if
+the raw score is above or equal to the specified cut-off level score.
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR pfsearch (1),
+.BR pfmake (1),
+.BR psa (5),
+.BR xpsa (5)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH AUTHOR
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
diff --git a/pfscan.f b/pfscan.f
new file mode 100644
index 0000000..0fc8bfa
--- /dev/null
+++ b/pfscan.f
@@ -0,0 +1,940 @@
+*       Program pfscan
+*----------------------------------------------------------------------*     
+* $Id: pfscan.f,v 2.17 2003/12/09 13:42:42 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Function: Scan a DNA or protein sequences with a profile library 
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* DATA
+*----------------------------------------------------------------------*     
+
+* array dimensions and I/O units
+
+      Include          'ardim.f' 
+
+      Parameter        (NOUT=   6)    
+
+      Parameter        (NPRF=  11)    
+      Parameter        (NSEQ=  12)    
+
+* profile 
+
+      Character*512     FPRF
+
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'pfdat.f'
+      Include          'dfdat.f'
+      Include          'pxdat.f'
+      Include          'avdat.f'
+      Include          'sterr.f'
+
+      Logical           LUNI
+      Logical           LNOR
+      Logical           LREV
+      Logical           LTRA
+      Logical           LPFA
+      Logical           LEOF
+      Logical           LOUT
+
+      Character         DABC(0:26)
+
+* sequence
+
+      Character*512     FSEQ
+
+      Character*64      CSID
+      Character*64      CSAC
+      Character*64      CSFH
+      Character*512     CSDE
+
+      Integer           LSEQ
+      Integer           BSEQ
+
+      Integer*2         ISEQ(IDMS)
+      Character         CSEQ(IDMS)
+
+      Logical           LCKS(IDMS)
+
+      Integer*2         IS
+
+* number of sequences, profiles read
+
+      Integer           INBS
+      Integer           INBP
+
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+* options and command line parameters
+
+      Logical           OPTA
+      Logical           OPTB 
+      Logical           OPTF 
+      Logical           OPTL
+      Logical           OPTR 
+      Logical           OPTS 
+      Logical           OPTU 
+      Logical           OPTX 
+      Logical           OPTY 
+      Logical           OPTZ 
+      Logical           OPLU
+      Logical           OPTM
+      Logical           OPTK
+      Logical           OPTO
+      Logical           OPTD
+      Logical           OPTV
+
+      Logical           LCMM
+      Logical           OOPR 
+      Logical           LDRS
+
+* alignments
+
+      Integer           NALI
+      Integer           IALS(IDMN)
+      Integer           IALB(IDMN)
+      Integer           IAL1(IDMN)
+      Integer           IAL2(IDMN)
+      Integer           IALE(IDMN)
+
+      Integer           LALI
+      Character         CALI(IDMA)
+      Character         CPMA(IDMM)
+
+* multiple matches of circular profile
+
+      Integer           NMAT(IDMN)
+C      Integer           IMMB(IDMN,IDML)
+C      Integer           IMME(IDMN,IDML)
+      Integer           PK1E(IDML)
+      Integer           PK1B(IDML)
+      Integer           PK2E(IDML)
+      Integer           PK2B(IDML)
+      Integer           PK3E(IDML)
+      Integer           PK3B(IDML)
+      Integer           PJSE(IDML)
+      Integer           PJ1E(IDML)
+      Integer           PJ1B(IDML)
+      Integer           PLAL(IDML)
+      Integer           IMSC(IDML)
+
+* path matrix fields
+
+      Integer           IOPM(0:IDMP)
+      Integer           IOPI(0:IDMP)
+      Integer           IOPD(0:IDMP)
+
+      Integer           IOMB(0:IDMP)
+      Integer           IOM1(0:IDMP)
+      Integer           IOM2(0:IDMP)
+
+      Integer           IOIB(0:IDMP)
+      Integer           IOI1(0:IDMP)
+      Integer           IOI2(0:IDMP)
+
+      Integer           IODB(0:IDMP)
+      Integer           IOD1(0:IDMP)
+      Integer           IOD2(0:IDMP)
+
+* work fields
+C      Character*256     RCIN
+      Logical           SOPM
+
+* initialization of controlled vocabularies
+
+      Include          'cvini.f' 
+      Include          'abini.f'
+
+*----------------------------------------------------------------------*     
+* INPUT SECTION 
+*----------------------------------------------------------------------*     
+
+      IRC=0
+      
+      LUNI=.FALSE.
+      LNOR=.FALSE.
+      LREV=.FALSE.
+      LTRA=.FALSE.
+      LPFA=.FALSE.
+      LEOF=.FALSE.
+      LDRS=.FALSE.
+      
+      LEOF=.FALSE.
+      CABC(0)='-'
+
+      INBS=0
+      INBP=0
+      BSEQ=1
+      
+* read command line arguments
+
+      Call Repar(
+     *   OPTA,OPTB,OPTF,OPTL,OPTR,OPTS,OPTU,OPLU,OPTX,OPTY,OPTZ,OPTM,
+     *   OPTK,FPRF,FSEQ,LCUC,NW,NMOD,OPTO,OPTD,OPTV,IRC)
+      If(IRC.NE.0) then 
+         Write(NERR,'(/,
+     *      ''pfscan 2.3 revision 5.d'',//
+     *      ''Usage: pfscan[ -abCdfhlLmMkrsuvWxyz ] [ seq-file'',
+     *      '' | - ] [ profile-library-file | - ] [ parameters ]'',//
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -a: report optimal alignment for all profiles.'',/
+     *      ''    -b: search complementary strand of DNA sequences.'',/
+     *      ''    -f: input sequence file is in FASTA format.'',/
+     *      ''    -h: print usage help text.'',/
+     *      ''    -l: indicate highest cut-off level (number).'',/
+     *      ''    -L: indicate highest cut-off level (text).'',/
+     *      ''    -m: report individual matches for circular'',
+     *      '' profiles.'',/
+     *      ''    -r: use raw score.'',/
+     *      ''    -u: force profile disjointness to UNIQUE.''
+     *      )')
+         Write(NERR,'(
+     *      ''    -C<value>:'',/
+     *      ''        cut-off level to be used for match selection.'',
+     *      '' Same as parameter L.'',/
+     *      ''    -M<value>:'',/
+     *      ''        set the normalization mode to use for the'',
+     *      '' score computation.'',/
+     *      ''        Overrides the profile PRIORITY parameter.'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   output modifiers:'',/,
+     *      ''    -d: impose length limit on profile description.'',/
+     *      ''    -k: output using the xPSA header (using keyword'',
+     *      ''=value pairs).'',/
+     *      ''    -s: list sequences of the matched regions.'',/
+     *      ''    -v: suppress warnings on stderr.'',/
+     *      ''    -x: list alignments in PSA format.'',/
+     *      ''    -y: list alignments in human readable form.'',/
+     *      ''    -z: indicate profile start and stop positions.'',/
+     *      ''    -W<value>:'',/
+     *      ''        specifies the output width. Same as parameter'',
+     *      '' W.'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   valid (but deprecated) parameters are:'',/,
+     *      ''    [L=cut-off-level]  use option -C instead'',/
+     *      ''    [W=output-width]   use option -W instead'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+
+
+      If(FSEQ.EQ.'-') then
+         MSEQ=5
+      Else
+         MSEQ=NSEQ
+      End if
+
+      If(FPRF.EQ.'-') then
+         MPRF=5
+      Else
+         MPRF=NPRF
+      End if
+      
+      If(OPTR) then
+         LDRS=.TRUE.
+      End if
+
+      SOPM=OPTM
+
+* read sequence  
+
+      If(OPTF) then 
+         Call RFSEQ
+     *      (MSEQ,FSEQ,NABC,CABC,CSID,CSAC,CSDE,CSFH,LSEQ,ISEQ,LEOF,
+     *      INBS,OPTV,IRC)
+      Else 
+         Call RESEQ
+     *      (MSEQ,FSEQ,NABC,CABC,CSID,CSAC,CSDE,LSEQ,ISEQ,LEOF,
+     *      INBS,OPTV,IRC)
+      End if 
+      If(IRC.GT.0) go to 100
+
+      If(LEOF.AND.IRC.LT.0) then
+         If(INBS.GE.1) IRC=0
+         go to 100
+      End if
+
+* check parameter consistency
+      
+      If(.NOT.OPTV.AND.OPTA.AND.LCUC.NE.0) then
+         Write(NERR,*) 'Warning: Option -a is set. Ignoring command',
+     *      ' line cut-off level (option -C).'
+         LCUC=0
+      End if
+      OOPR=OPTR
+
+* determine amino acid composition 
+      
+      Call CFAve(ISEQ,IDMS,BSEQ,LSEQ,CABC,NABC,FAVE)
+
+* backtranslate sequence into characters
+
+      Do  I1=1,LSEQ
+         CSEQ(I1)=CABC(ISEQ(I1))
+      End do  
+
+* alignment and ouptut format switches
+
+      If(OPTX.OR.OPTY.OR.OPTZ.OR.OPTM) then
+         LTRA=.TRUE.
+      Else
+         LTRA=.FALSE.
+      End if
+      If(OPTS.OR.OPTX) then
+         LPFA=.TRUE.
+      Else
+         LPFA=.FALSE.
+      End if
+
+* compute alignments if any output format switch is specified
+
+      LOUT=(LTRA.OR.LPFA)
+      
+*----------------------------------------------------------------------*
+* major loop over profiles  
+*----------------------------------------------------------------------*
+
+ 1    Continue 
+
+* save alphabet 
+
+      OPTR=OOPR
+      MABC=NABC
+      Do  I1=1,NABC
+         DABC(I1)=CABC(I1)
+      End do 
+
+* read profile
+
+      Call REPRF
+     *   (MPRF,FPRF,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   BLOG,FABC,P0,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP, 
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT, 
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,CHIL,IIPL,ILIP,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   INBP,LEOF,OPTV,IRC)
+
+      If(IRC.NE.0.OR.LEOF) Go to 100
+
+* check parameter consistency
+
+      If(.NOT.OPTV.AND.OPTB.AND.NABC.GT.4) then
+         Write(NERR,*) 'Warning: Not a DNA sequence. ',
+     *      'Ignoring option -b.'
+         OPTB=.FALSE.
+      End if
+      OPTM=SOPM
+      If(.NOT.OPTV.AND.OPTM.AND..NOT.LPCI) then
+         Write(NERR,*) 'Warning: Profile not circular. ',
+     *      'Ignoring option -m.'
+         Write(NERR,*) '         While processing profile ',
+     *      CPID(1:Lblnk(CPID))
+         OPTM=.FALSE.
+      End if
+
+* cut-off value
+
+      LCUT=0
+      Do   3 I1=1,JCUT 
+         If(   (MCLE(I1).GE.LCUC.AND.MCLE(I1).LT.LCUT.AND.LCUC.LT.LCUT).
+     *      OR.(MCLE(I1).LE.LCUC.AND.MCLE(I1).GT.LCUT.AND.LCUC.GT.LCUT))
+     *      LCUT=MCLE(I1)
+ 3    Continue
+      
+      If (.NOT.OPTV.AND.LCUT.NE.LCUC) then
+         Write(NERR,*) 'Warning: Cut-off level',LCUC,' is not '//
+     *      'defined. Using nearest level',LCUT,'.'
+         Write(NERR,*) '         While processing profile ',
+     *      CPID(1:Lblnk(CPID))
+      End if
+
+      KCUT=0
+
+* find normalisation mode and cut-off level
+
+      LNOR=.FALSE.
+      If(OPTO) then
+         J1=0
+*   find the specified normalisation mode
+         Do I1=1,JNOR
+            If(NNOR(I1).EQ.NMOD) J1=I1
+         End do
+*   exit if mode number not specified in profile
+         If(J1.EQ.0) Go to 901
+
+*   find mode number in list of cut-off levels
+         INOR=0
+         Do I1=1,JCUT
+            If(MCLE(I1).EQ.LCUT) then
+               If(JCNM(I1).NE.0) then 
+                  J2=0
+                  Do I2=1,JCNM(I1)
+                     If(MCUT(I2,I1).EQ.NMOD) J2=I2
+                  End do
+                  If(J2.EQ.0) Go to 903
+                  LNOR=.TRUE.
+                  INOR=J1
+                  MNUM=NNOR(J1)
+                  IFUN=MNOR(J1)
+                  KCUT=ICUT(I1)
+                  XCUT=RCUT(J2,I1)
+               Else
+                  Go to 903
+               End if
+            End if
+         End do
+         If(INOR.EQ.0) Go to 901
+      Else
+
+* search cut-off level in profile if normalisation was not specified
+         
+         Do   6 I1=1,JCUT
+            If(MCLE(I1).EQ.LCUT) then
+               INOR=0
+               If(JCNM(I1).NE.0) then 
+                  LNOR=.TRUE.
+C                  J2=1
+                  Do  5 I2=1,JCNM(I1)
+                     J3=0
+                     Do  4 I3=1,JNOR
+                        If(MCUT(I2,I1).EQ.NNOR(I3)) J3=I3
+ 4                   Continue
+                     If(J3.EQ.0) Go to 904
+
+                     If     (I2.EQ.1) then 
+                        INOR=J3
+                        MNUM=NNOR(J3)
+                        NPRI=NNPR(J3)    
+                        IFUN=MNOR(J3)
+                        KCUT=ICUT(I1)
+                        XCUT=RCUT(I2,I1)
+                     Else if(NNPR(J3).LT.NPRI) then
+                        INOR=J3
+                        MNUM=NNOR(J3)
+                        NPRI=NNPR(J3)    
+                        IFUN=MNOR(J3)
+                        KCUT=ICUT(I1)
+                        XCUT=RCUT(I2,I1)
+                     End if
+ 5                Continue
+               End if 
+               
+               If(JCNM(I1).EQ.0.OR.INOR.EQ.0) then
+                  KCUT=ICUT(I1)
+                  LNOR=.FALSE.
+               End if
+            End if
+ 6       Continue
+      End if
+
+      If(.NOT.LNOR) OPTR=.TRUE.
+*      If(OPTR) LNOR=.FALSE.
+
+* disjoint definition
+* set disjointness position to begin and end of profile if necessary
+
+      If(MDIS.EQ.1.OR.OPTU.OR.OPTA) then
+         LUNI=.TRUE.
+         If(MDIS.EQ.1) then
+            NDIP(1)=1
+            NDIP(2)=LPRF
+         End if
+      Else
+         LUNI=.FALSE.
+      End if
+      
+* - initialize profile lock
+      
+      If(.NOT.LPCI) then
+         Do  8 I1=0,NDIP(1)-1
+            IIPP(E0,I1)=NLOW
+            IIPP(E1,I1)=NLOW
+ 8       Continue
+         
+         Do  9 I1=NDIP(2),LPRF
+            IIPP(B0,I1)=NLOW
+            IIPP(B1,I1)=NLOW
+ 9       Continue
+      End if
+      
+C      End if
+
+* profile extra parameters
+
+      MLOW=NLOW/4*3
+      Do  10 I1=0,LPRF
+         IIPX( XM,I1) = MAX(MLOW,IIPP( B1,I1) + IIPP( BM,I1)) 
+         IIPX( XI,I1) = MAX(MLOW,IIPP( B1,I1) + IIPP( BI,I1)) 
+         IIPX( XD,I1) = MAX(MLOW,IIPP( B1,I1) + IIPP( BD,I1)) 
+         IIPX( YM,I1) = MAX(MLOW,IIPP( B0,I1) + IIPP( BM,I1)) 
+         IIPX( YI,I1) = MAX(MLOW,IIPP( B0,I1) + IIPP( BI,I1)) 
+         IIPX( YD,I1) = MAX(MLOW,IIPP( B0,I1) + IIPP( BD,I1)) 
+         IIPX( MX,I1) = MAX(MLOW,IIPP( E1,I1) + IIPP( ME,I1)) 
+         IIPX( IX,I1) = MAX(MLOW,IIPP( E1,I1) + IIPP( IE,I1)) 
+         IIPX( DX,I1) = MAX(MLOW,IIPP( E1,I1) + IIPP( DE,I1)) 
+         IIPX( MY,I1) = MAX(MLOW,IIPP( E0,I1) + IIPP( ME,I1)) 
+         IIPX( IY,I1) = MAX(MLOW,IIPP( E0,I1) + IIPP( IE,I1)) 
+         IIPX( DY,I1) = MAX(MLOW,IIPP( E0,I1) + IIPP( DE,I1)) 
+ 10   Continue
+
+* check alphabet 
+
+      If(NABC.EQ.MABC) then 
+         Do  I1=1,NABC
+            If(CABC(I1).NE.DABC(I1)) go to  15
+         End do 
+         Go to  21
+      End if
+ 15   Continue
+
+* reconvert sequence into numbers (if necessary) 
+
+      Do  20 I1=1,LSEQ
+         ISEQ(I1)=0
+         Do  19 I2=1,NABC
+            If(CSEQ(I1).EQ.CABC(I2)) then
+               ISEQ(I1)=I2
+               Go to  20
+            End if 
+ 19      Continue
+ 20   Continue     
+      If(.NOT.OPTR.AND.IFUN.EQ.3)
+     *   Call CFAve(ISEQ,IDMS,BSEQ,LSEQ,CABC,NABC,FAVE)
+
+ 21   Continue     
+
+* compute cut-off in raw score units
+
+      If(.NOT.OPTR) then  
+         If(IFUN.EQ.3) then 
+            Call CPAve(IMPP,IDMP,LPRF,CABC,NABC,PAVE)
+            RAVE=0
+            Do  I1=0,NABC
+               RAVE=RAVE+FAVE(I1)*PAVE(I1)
+            End do
+         End if 
+         Call NtoR(XCUT,KCUT,RNOP,KNPM,MAXN,INOR,IFUN,LSEQ,RAVE)
+      End if 
+
+      JSEQ=0
+
+ 25   Continue
+
+* should alignments of repeats be computed
+
+      If(OPTM) then
+         LCMM=.TRUE.
+      Else
+         LCMM=.FALSE.
+      End if
+
+
+* compute optimal alignment score
+
+      Call XALI1
+     *   (LPRF,LPCI,
+     *   KCUT,IIPP,IMPP,IIPX,
+     *   BSEQ,LSEQ,ISEQ,
+     *   IOPM,IOPI,IOPD,
+     *   IOPT,LUNI,  
+     *   IRC)
+
+      If(OPTA) then
+         Continue         
+      Else if(IOPT.LT.KCUT) then
+         go to  50
+      End if 
+
+* do not compute alignments if no format modifier specified
+* and the disjointness is 'UNIQUE'
+
+      If(.NOT.LOUT.AND.LUNI) go to  30 
+      
+* initialize sequence lock
+
+      Do  I1=1,LSEQ
+         LCKS(I1)=.FALSE.
+      End do 
+
+* find optimal match
+
+      If(LUNI) then
+         Call XALIP
+     *      (NABC,LPRF,LPCI,NDIP(1),NDIP(2),
+     *      IOPT,IIPP,IMPP,CHIP,CHMP,IIPX,
+     *      BSEQ,LSEQ,ISEQ,LCKS,
+     *      IOPM,IOPI,IOPD,
+     *      IOMB,IOM1,IOM2,IOIB,IOI1,IOI2,IODB,IOD1,IOD2,
+     *      NALI,IALS,IALB,IAL1,IAL2,IALE,
+     *      LUNI,
+     *      IRC)
+      Else
+         
+* find all matches 
+         
+         Call XALIP
+     *      (NABC,LPRF,LPCI,NDIP(1),NDIP(2),
+     *      KCUT,IIPP,IMPP,CHIP,CHMP,IIPX,
+     *      BSEQ,LSEQ,ISEQ,LCKS,
+     *      IOPM,IOPI,IOPD,
+     *      IOMB,IOM1,IOM2,IOIB,IOI1,IOI2,IODB,IOD1,IOD2,
+     *      NALI,IALS,IALB,IAL1,IAL2,IALE, 
+     *      LUNI,
+     *      IRC)
+      End if
+      If(IRC.NE.0) then
+         Write(NERR,*) '       While processing sequence ',
+     *      CSID(1:Lblnk(CSID))
+         IRC=0
+         Go to 50
+      End if
+
+* remove sequence lock if alignments are to be generated
+      
+      If(LTRA) then
+         Do I1=1,LSEQ
+            LCKS(I1)=.FALSE.
+         End do
+      End if
+
+* OUTPUT
+
+ 30   Continue
+
+      If(LUNI) then
+         NALI=1
+         IALS(1)=IOPT
+      End if
+      Do  40 I1=1,NALI
+         JSEQ=JSEQ+1
+
+         If(LTRA) then
+            Call XALIT
+     *         (CABC,LPRF,LPCI,NDIP(1),NDIP(2),
+     *         IIPP,IMPP,IIPX,
+     *         LSEQ,ISEQ,LCKS,
+     *         IOPM,IOPI,IOPD,
+     *         LALI,CALI,CPMA,IMSC,
+     *         IALS(I1),IALB(I1),IALE(I1),
+     *         NMAT(I1),
+     *         PK2E,PK2B,PK3E,PK3B,
+     *         PJ1E,PJ1B,PLAL,
+     *         OPTM,
+     *         IPMB,IPME,
+     *         IRC)
+            If(IRC.GT.0) Go to 100
+            Do  I2=IAL1(I1),IAL2(I1)
+               LCKS(I2)=.FALSE.   
+            End do 
+         End if
+
+         If(.NOT.OPTK) then
+            Call WPRSM(JSEQ,NMAT(I1),.FALSE.,
+     *         LUNI,LOUT,LNOR,LREV,LPFA,OPTZ,OPTL,OPLU,NW,
+     *         CPID,CPAC,CPDE,OPTD,OPTR,LDRS,
+     *         IALS(I1),IALB(I1),IALE(I1),NALI,IPMB,IPME,
+     *         JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *         RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+         Else
+            Call XPRSM(JSEQ,NMAT(I1),.FALSE.,
+     *         LUNI,LOUT,LNOR,LREV,OPTZ,OPTL,OPLU,OPTB,
+     *         CSID,CSAC,CSFH,CPID,CPAC,OPTR,OPTF,LDRS,
+     *         IALS(I1),IALB(I1),IALE(I1),NALI,IPMB,IPME,
+     *         JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *         RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+         End if         
+         
+         If     (OPTS) then
+            Call PRSP(CABC,ISEQ,CALI,IALB(I1),IALE(I1),NW,OPTS,OPTX)
+         Else if(OPTX) then
+            Call PRSP(CABC,ISEQ,CALI,1,LALI,NW,OPTS,OPTX)
+         Else if(OPTY) then 
+            Call PRALI
+     *         (LPRF,CHIP,CHMP,IDMP,LSEQ,LREV,
+     *         CALI,LALI,IALB(I1),IALE(I1),NW)
+         End if 
+         
+*----------------------------------------------------------------------*
+* Compute single repeats for circular profiles
+*----------------------------------------------------------------------*
+         
+         If(OPTM) then
+            If(NMAT(I1).GT.1) then
+               Do I2=NMAT(I1),1,-1
+                  If(.NOT.OPTK) then
+                     Call WPRSM(JSEQ,NMAT(I1)-I2+1,.TRUE.,
+     *                  LUNI,LOUT,LNOR,LREV,LPFA,OPTZ,OPTL,OPLU,NW,
+     *                  CPID,CPAC,CPDE,OPTD,OPTR,LDRS,
+     *                  IMSC(I2),PK2B(I2),PK2E(I2),NALI,
+     *                  PK3B(I2),PK3E(I2)-LPRF-1,
+     *                  JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *                  RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+                  Else
+                     Call XPRSM(JSEQ,NMAT(I1)-I2+1,.TRUE.,
+     *                  LUNI,LOUT,LNOR,LREV,OPTZ,OPTL,OPLU,OPTB,
+     *                  CSID,CSAC,CSFH,CPID,CPAC,OPTR,OPTF,LDRS,
+     *                  IMSC(I2),PK2B(I2),PK2E(I2),NALI,
+     *                  PK3B(I2),PK3E(I2)-LPRF-1,
+     *                  JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *                  RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+                  End if
+                  
+                  If     (OPTS) then
+                     Call PRSP(CABC,ISEQ,CALI,PK2B(I2),PK2E(I2),
+     *                  NW,OPTS,OPTX)
+                  Else if(OPTX) then
+                     Call PRXP(CALI,PJ1B(I2),PJ1B(I2)+PLAL(I2)-1,
+     *                  PK3B(I2),PK3E(I2),LPRF,NW)
+                  Else if(OPTY) then 
+                     Call PMALI
+     *                  (LPRF,CHIP,CHMP,IDMP,LSEQ,LREV,CALI,
+     *                  PK2B(I2),PK3E(I2),PK3B(I2),PJ1E(I2),PJ1B(I2),NW)
+                  End if 
+                  
+               End do
+* End loop over repeats
+            End if
+         End if
+* End loop over matches
+
+ 40   Continue
+
+ 50   If(OPTB) then 
+
+         If(LREV) then 
+
+* regenerate original strand  
+
+            J1=LSEQ
+            Do  I1=1,LSEQ/2
+               IS=ISEQ(I1)
+               ISEQ(I1)=ISEQ(J1)
+               ISEQ(J1)=IS
+               J1=J1-1
+            End do
+            
+            Do  I1=1,LSEQ
+               If(ISEQ(I1).NE.0) ISEQ(I1)=NABC-ISEQ(I1)+1
+            End do
+
+            LREV=.FALSE.
+            Go to   1
+         End if  
+      Else
+         Go to   1
+      End if 
+      
+*----------------------------------------------------------------------*
+* Complementary strand 
+*----------------------------------------------------------------------*
+
+* generate complementary sequence
+
+      J1=LSEQ          
+      Do  I1=1,LSEQ/2
+         IS=ISEQ(I1)
+         ISEQ(I1)=ISEQ(J1)
+         ISEQ(J1)=IS
+         J1=J1-1
+      End do  
+
+      Do  I1=1,LSEQ
+         If(ISEQ(I1).NE.0) ISEQ(I1)=NABC-ISEQ(I1)+1
+      End do  
+
+      LREV=.TRUE.
+
+      Go to  25 
+
+ 100  Call Exit(IRC)
+
+* errors
+
+ 901  Write(NERR,*) 'Error: Normalisation mode',NMOD,' is not'//
+     *   ' defined.'
+      Write(NERR,*) '       While processing profile ',
+     *   CPID(1:Lblnk(CPID))
+      IRC=1
+      Go to 100
+ 903  Write(NERR,*) 'Error: Normalisation mode',NMOD,' is not'//
+     *   ' defined for level',LCUT,' cut-off.'
+      Write(NERR,*) '       While processing profile ',
+     *   CPID(1:Lblnk(CPID))
+      IRC=1
+      Go to 100
+ 904  Write(NERR,*) 'Error: Normalisation mode(s) of level',LCUT,
+     *   ' is not defined in the profile.'
+      Write(NERR,*) '       While processing profile ',
+     *   CPID(1:Lblnk(CPID))
+      IRC=1
+      Go to 100
+
+      End
+*----------------------------------------------------------------------*     
+      Subroutine Repar(
+     *   OPTA,OPTB,OPTF,OPTL,OPTR,OPTS,OPTU,OPLU,OPTX,OPTY,OPTZ,OPTM,
+     *   OPTK,FPRF,FSEQ,LCUC,NW,NMOD,OPTO,OPTD,OPTV,IRC)
+
+      Logical           OPTA 
+      Logical           OPTB 
+      Logical           OPTF 
+      Logical           OPTL
+      Logical           OPLU
+      Logical           OPTR 
+      Logical           OPTS 
+      Logical           OPTU 
+      Logical           OPTX 
+      Logical           OPTY 
+      Logical           OPTZ 
+      Logical           OPTM
+      Logical           OPTK
+      Logical           OPTO
+      Logical           OPTD
+      Logical           OPTV
+
+      Character*(*)     FPRF
+      Character*(*)     FSEQ
+      Character*512    CARG
+
+      IRC=0
+
+      OPTA=.FALSE.
+      OPTB=.FALSE.
+      OPTF=.FALSE.
+      OPTL=.FALSE.
+      OPLU=.FALSE.
+      OPTR=.FALSE.
+      OPTS=.FALSE.
+      OPTU=.FALSE.
+      OPTX=.FALSE.
+      OPTY=.FALSE.
+      OPTZ=.FALSE.
+      OPTM=.FALSE.
+      OPTO=.FALSE.
+      OPTK=.FALSE.
+      OPTD=.FALSE.
+      OPTV=.FALSE.
+
+      LCUC=0
+      NW=60
+      N1=Iargc()
+
+      K1=0
+      I2=1
+      Do I1=1,N1
+         Call GetArg(I2,CARG)
+         If     (CARG(1:1).EQ.'-'.
+     *      AND.CARG(2:2).NE.' '.AND.K1.LT.1) then
+            If(Index(CARG,'h').NE.0) go to 900
+            If(Index(CARG,'a').NE.0) OPTA=.TRUE.
+            If(Index(CARG,'b').NE.0) OPTB=.TRUE.
+            If(Index(CARG,'d').NE.0) OPTD=.TRUE.
+            If(Index(CARG,'f').NE.0) OPTF=.TRUE.
+            If(Index(CARG,'l').NE.0) OPTL=.TRUE.
+            If(Index(CARG,'L').NE.0) OPLU=.TRUE.
+            If(Index(CARG,'r').NE.0) OPTR=.TRUE.
+            If(Index(CARG,'s').NE.0) OPTS=.TRUE.
+            If(Index(CARG,'u').NE.0) OPTU=.TRUE.
+            If(Index(CARG,'x').NE.0) OPTX=.TRUE.
+            If(Index(CARG,'y').NE.0) OPTY=.TRUE.
+            If(Index(CARG,'z').NE.0) OPTZ=.TRUE.
+            If(Index(CARG,'m').NE.0) OPTM=.TRUE.
+            If(Index(CARG,'k').NE.0) OPTK=.TRUE.
+            If(Index(CARG,'v').NE.0) OPTV=.TRUE.
+            If(Index(CARG,'W').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) NW
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) NW
+               End if
+            End if
+            If(Index(CARG,'C').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  CARG(1:2)='  '
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+               End if
+               Read(CARG,*,Err=900) LCUC
+            End if
+            If(Index(CARG,'M').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) NMOD
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) NMOD
+               End if
+               OPTO=.TRUE.
+            End if
+         Else if(K1.LE.1) then
+            K1=K1+1
+            If     (K1.EQ.1) then 
+               FSEQ=CARG
+            Else if(K1.EQ.2) then
+               FPRF=CARG
+            End if 
+         Else
+
+* - cut-off level on command line    
+
+            If(CARG(1:2).EQ.'L=') then
+               CARG(1:2)=' '
+               LCUC=0
+               Read(CARG,*,Err=900) LCUC
+               
+* - output width on command line
+               
+            Else if(CARG(1:2).EQ.'W=') then
+               Read(CARG(3:),*,Err=900) NW
+            End if
+         End if
+         I2=I2+1
+         If(I2.GT.N1) Go to 20
+      End do  
+
+ 20   If(K1.NE.2) IRC=1
+
+ 100  If(NW.LE.0.OR.NW.GT.512) NW=60
+      Return
+ 900  IRC=1
+      Go to 100 
+      End 
+*----------------------------------------------------------------------*     
+      Include          'reprf.f'
+      Include          'reseq.f'
+      Include          'rfseq.f'
+      Include          'xali1.f'
+      Include          'xalip.f'
+      Include          'RtoN.f'
+      Include          'NtoR.f'
+      Include          'CFAve.f' 
+      Include          'CPAve.f' 
+      Include          'wprsm.f'
+      Include          'xprsm.f'
+      Include          'xalit.f'
+      Include          'lblnk.f'
+      Include          'prali.f'
+      Include          'pmali.f'
+      Include          'prsp.f'
+      Include          'prxp.f'
+      Include          'Xblnk.f'
+      
diff --git a/pfsearch.f b/pfsearch.f
new file mode 100644
index 0000000..5cfb0a3
--- /dev/null
+++ b/pfsearch.f
@@ -0,0 +1,923 @@
+*       Program pfsearch
+*----------------------------------------------------------------------*     
+* $Id: pfsearch.f,v 2.30 2003/12/09 13:42:42 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Function: Scan a protein or DNA sequence library for profile 
+*                 matches 
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* DATA
+*----------------------------------------------------------------------*     
+
+* array dimensions and I/O units
+      
+      Include          'ardim.f' 
+      
+      Parameter        (NOUT=   6)    
+      
+      Parameter        (NPRF=  11)    
+      Parameter        (NSEQ=  12)    
+      
+* profile 
+
+      Character*512     FPRF
+      
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'pfdat.f'
+      Include          'dfdat.f'
+      Include          'pxdat.f'
+      Include          'avdat.f'
+      Include          'sterr.f'
+
+      Logical           LUNI
+      Logical           LNOR
+      Logical           LREV
+      Logical           LTRA
+      Logical           LPFA
+      Logical           LEOF
+      Logical           LOUT
+      
+* sequence
+      
+      Character*512     FSEQ
+      
+      Character*64      CSID
+      Character*64      CSAC
+      Character*64      CSFH
+      Character*512     CSDE
+      
+      Integer           LSEQ
+      Integer           BSEQ
+
+      Integer*2         ISEQ(IDMS)
+      
+      Logical           LCKS(IDMS)
+      
+      Integer*2         IS
+
+* number of sequences read
+
+      Integer           INBS
+      Integer           INBP
+
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+* options and command line parameters
+
+      Logical           OPTA
+      Logical           OPTB 
+      Logical           OPTF 
+      Logical           OPTL 
+      Logical           OPLU 
+      Logical           OPTR 
+      Logical           OPTS 
+      Logical           OPTU 
+      Logical           OPTX 
+      Logical           OPTY 
+      Logical           OPTZ 
+      Logical           OPTM
+      Logical           OPTK
+      Logical           OPTJ
+      Logical           OPTO
+      Logical           OPTD
+      Logical           OPTV
+
+      Logical           LCMM
+      
+      Integer           NCUC
+      Integer           KCUC
+      real              XCUC
+      Logical           LDRS   
+* alignments
+
+      Integer           NALI
+      Integer           IALS(IDMN)
+      Integer           IALB(IDMN)
+      Integer           IAL1(IDMN)
+      Integer           IAL2(IDMN)
+      Integer           IALE(IDMN)
+      
+      Integer           LALI
+      Character         CALI(IDMA) 
+      Character         CPMA(IDMM)
+      
+* multiple matches of circular profile
+
+      Integer           NMAT(IDMN)
+C      Integer           IMMB(IDMN,IDML)
+C      Integer           IMME(IDMN,IDML)
+      Integer           PK1E(IDML)
+      Integer           PK1B(IDML)
+      Integer           PK2E(IDML)
+      Integer           PK2B(IDML)
+      Integer           PK3E(IDML)
+      Integer           PK3B(IDML)
+      Integer           PJSE(IDML)
+      Integer           PJ1E(IDML)
+      Integer           PJ1B(IDML)
+      Integer           PLAL(IDML)
+      Integer           IMSC(IDML)
+
+* path matrix fields
+      
+      Integer           IOPM(0:IDMP)
+      Integer           IOPI(0:IDMP)
+      Integer           IOPD(0:IDMP)
+      
+      Integer           IOMB(0:IDMP)
+      Integer           IOM1(0:IDMP)
+      Integer           IOM2(0:IDMP)
+      
+      Integer           IOIB(0:IDMP)
+      Integer           IOI1(0:IDMP)
+      Integer           IOI2(0:IDMP)
+      
+      Integer           IODB(0:IDMP)
+      Integer           IOD1(0:IDMP)
+      Integer           IOD2(0:IDMP)
+
+* work fields
+
+C     Character*1024    RCIN
+C     Character*1024    RCOUT
+
+* initialization of controlled vocabularies
+
+      Include          'cvini.f' 
+
+*----------------------------------------------------------------------*     
+* INPUT SECTION 
+*----------------------------------------------------------------------*     
+
+      IRC=0
+      
+      LUNI=.FALSE.
+      LNOR=.FALSE.
+      LREV=.FALSE.
+      LTRA=.FALSE.
+      LPFA=.FALSE.
+      LDRS=.FALSE.
+      
+      LEOF=.FALSE.
+      CABC(0)='-'
+
+      INBS=0
+      INBP=0
+
+* read command line arguments
+
+      Call Repar(
+     *   OPTA,OPTB,OPTF,OPTL,OPLU,OPTR,OPTS,OPTU,OPTX,OPTY,OPTZ,OPTM,
+     *   OPTK,OPTJ,FPRF,FSEQ,NCUC,KCUC,XCUC,NW,NMOD,OPTO,OPTD,OPTV,IRC)
+      If(IRC.NE.0) then 
+         Write(NERR,'(/,
+     *      ''pfsearch 2.3 revision 5.d'',//
+     *      ''Usage: pfsearch [ -abCdfhlLmMkrsuvWxyz ] [ profile-file'',
+     *      '' | - ] [ seq-library-file | - ] [ parameters ]'',//
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -a: report optimal alignment for all sequences.'',/
+     *      ''    -b: search complementary strand of DNA sequences.'',/
+     *      ''    -f: input sequence file is in FASTA format.'',/
+     *      ''    -h: print usage help text.'',/
+     *      ''    -l: indicate highest cut-off level (number).'',/
+     *      ''    -L: indicate highest cut-off level (text).'',/
+     *      ''    -m: report individual matches for circular'',
+     *      '' profiles.'',/
+     *      ''    -r: use raw score.'',/
+     *      ''    -u: force profile disjointness to UNIQUE.''
+     *      )')
+         Write(NERR,'(
+     *      ''    -C<value>:'',/
+     *      ''        cut-off value. An integer value forces -r.'',
+     *      '' Same as parameter C.'',/
+     *      ''    -M<value>:'',/
+     *      ''        set the normalization mode to use for the'',
+     *      '' score computation.'',/
+     *      ''        Overrides the profile PRIORITY parameter.'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   output modifiers:'',/,
+     *      ''    -d: impose length limit on sequence description.'',/
+     *      ''    -k: output using the xPSA header (using keyword'',
+     *      ''=value pairs).'',/
+     *      ''    -j: output using the xPSA header adding the sequence'',
+     *      '' matched by itself.'',/
+     *      ''    -s: list sequences of the matched regions.'',/
+     *      ''    -v: suppress warnings on stderr.'',/
+     *      ''    -x: list alignments in PSA format.'',/
+     *      ''    -y: list alignments in human readable form.'',/
+     *      ''    -z: indicate profile start and stop positions.'',/
+     *      ''    -W<value>:'',/
+     *      ''        specifies the output width. Same as parameter'',
+     *      '' W.'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   valid (but deprecated) parameters are:'',/,
+     *      ''    [C=cut-off-value]  use option -C instead'',/
+     *      ''    [W=output-width]   use option -W instead'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+      
+      If(FSEQ.EQ.'-') then 
+         MSEQ=5
+      Else
+         MSEQ=NSEQ
+      End if
+      
+      If(FPRF.EQ.'-') then 
+         MPRF=5
+      Else
+         MPRF=NPRF
+      End if
+
+      If(OPTR) then
+         LDRS=.TRUE.
+      End if
+    
+      If(OPTJ) then
+          OPTK=.TRUE.
+      End if
+
+* read profile
+
+      Call REPRF
+     *   (MPRF,FPRF,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   BLOG,FABC,P0,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP, 
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT, 
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,CHIL,IIPL,ILIP,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   INBP,LEOF,OPTV,IRC)
+      
+      If(IRC.GT.0) go to 100
+
+* check parameter consistency
+      
+      If(.NOT.OPTV.AND.OPTM.AND..NOT.LPCI) then
+         Write(NERR,*) 'Warning: Profile not circular. ',
+     *      'Ignoring option -m.'
+         OPTM=.FALSE.
+      End if
+      If(.NOT.OPTV.AND.OPTB.AND.NABC.GT.4) then
+         Write(NERR,*) 'Warning: Not a DNA profile. ',
+     *      'Ignoring option -b.'
+         OPTB=.FALSE.
+      End if
+      If(.NOT.OPTV.AND.OPTA.AND.NCUC.GT.0) then
+         Write(NERR,*) 'Warning: Option -a is set. Ignoring command',
+     *      ' line cut-off (option -C).'
+         NCUC=0
+      End if
+      If(.NOT.OPTV.AND.OPTR.AND.NCUC.GT.1) then
+         Write(NERR,*) 'Warning: Option -r is set. Please use only',
+     *      ' integer command line cut-off (option -C) values.'
+         NCUC=0
+      End if
+      
+* get cut-off for mode nb specified on command line
+
+      KCUT=0
+      If(OPTO) then
+         J1=0
+*   find the specified normalisation mode
+         Do 1 I1=1,JNOR
+            If(NNOR(I1).EQ.NMOD) J1=I1
+ 1       Continue
+*   exit if mode number not specified in profile
+         If(J1.EQ.0) Go to 901
+         
+*   if cut-off value was specified on command line do not search levels
+         If(NCUC.EQ.2) then
+            LNOR=.TRUE.
+            INOR=J1
+            MNUM=NNOR(J1)
+            IFUN=MNOR(J1)
+*   exit if an integer cut-off value was specified with option M
+         Else if(NCUC.EQ.1) then
+            Go to 902
+*   find mode number in list of level 0 cut-off values
+         Else
+            INOR=0
+            Do 3 I1=1,JCUT
+               If(MCLE(I1).EQ.0) then
+                  If(JCNM(I1).NE.0) then 
+                     J2=0
+                     Do 2 I2=1,JCNM(I1)
+                        If(MCUT(I2,I1).EQ.NMOD) J2=I2
+ 2                   Continue
+                     If(J2.EQ.0) Go to 903
+                     LNOR=.TRUE.
+                     INOR=J1
+                     MNUM=NNOR(J1)
+                     IFUN=MNOR(J1)
+                     KCUT=ICUT(I1)
+                     XCUT=RCUT(J2,I1)
+                  Else
+                     Go to 903
+                  End if
+               End if
+ 3          Continue
+            If(INOR.EQ.0) Go to 901
+         End if
+      Else
+         
+* get cut-off and normalisation modes from profile
+         
+         Do   6 I1=1,JCUT
+            If(MCLE(I1).EQ.0) then
+               INOR=0
+               If(JCNM(I1).NE.0) then 
+                  LNOR=.TRUE.
+*               J2=1
+                  Do  5 I2=1,JCNM(I1)
+                     J3=0
+                     Do  4 I3=1,JNOR
+                        If(MCUT(I2,I1).EQ.NNOR(I3)) J3=I3
+ 4                   Continue
+                     If(J3.EQ.0) Go to 904
+                     
+                     If     (I2.EQ.1) then 
+                        INOR=J3
+                        MNUM=NNOR(J3)
+                        NPRI=NNPR(J3)    
+                        IFUN=MNOR(J3)
+                        KCUT=ICUT(I1)
+                        XCUT=RCUT(I2,I1)
+                     Else if(NNPR(J3).LT.NPRI) then
+                        INOR=J3
+                        MNUM=NNOR(J3)
+                        NPRI=NNPR(J3)    
+                        IFUN=MNOR(J3)
+                        KCUT=ICUT(I1)
+                        XCUT=RCUT(I2,I1)
+                     End if
+ 5                Continue
+               End if 
+               
+               If(JCNM(I1).EQ.0.OR.INOR.EQ.0) then
+                  KCUT=ICUT(I1)
+                  LNOR=.FALSE.
+               End if
+            End if
+ 6       Continue
+      End if
+      
+* cut-off from command line 
+      
+      If(NCUC.EQ.1) then 
+         KCUT=KCUC
+         OPTR=.TRUE.
+      Else if(NCUC.EQ.2.AND.LNOR) then
+         XCUT=XCUC
+      Else if(.NOT.OPTV.AND.NCUC.EQ.2.AND..NOT.LNOR) then
+         Write(NERR,*) 'Warning: Profile does not provide ',
+     *      'normalization. Ignoring command line cut-off.'
+      End if
+      If(.NOT.LNOR) OPTR=.TRUE.
+
+* disjointness definition
+* set disjointness position to begin and end of profile if necessary
+
+      If(MDIS.EQ.1.OR.OPTU.OR.OPTA) then
+         LUNI=.TRUE.
+         If(MDIS.EQ.1) then
+            NDIP(1)=1
+            NDIP(2)=LPRF
+         End if
+      Else
+         LUNI=.FALSE.
+      End if
+
+* - initialize profile lock
+      
+      If(.NOT.LPCI) then
+         Do  8 I1=0,NDIP(1)-1 
+            IIPP(E0,I1)=NLOW
+            IIPP(E1,I1)=NLOW
+ 8       Continue
+         
+         Do  9 I1=NDIP(2),LPRF 
+            IIPP(B0,I1)=NLOW
+            IIPP(B1,I1)=NLOW
+ 9       Continue
+      End if
+      
+C      End if
+
+* profile extra parameters
+      
+      MLOW=NLOW/4*3
+      Do  10 I1=0,LPRF
+         IIPX( XM,I1) = MAX(MLOW,IIPP( B1,I1) + IIPP( BM,I1)) 
+         IIPX( XI,I1) = MAX(MLOW,IIPP( B1,I1) + IIPP( BI,I1)) 
+         IIPX( XD,I1) = MAX(MLOW,IIPP( B1,I1) + IIPP( BD,I1)) 
+         IIPX( YM,I1) = MAX(MLOW,IIPP( B0,I1) + IIPP( BM,I1)) 
+         IIPX( YI,I1) = MAX(MLOW,IIPP( B0,I1) + IIPP( BI,I1)) 
+         IIPX( YD,I1) = MAX(MLOW,IIPP( B0,I1) + IIPP( BD,I1)) 
+         IIPX( MX,I1) = MAX(MLOW,IIPP( E1,I1) + IIPP( ME,I1)) 
+         IIPX( IX,I1) = MAX(MLOW,IIPP( E1,I1) + IIPP( IE,I1)) 
+         IIPX( DX,I1) = MAX(MLOW,IIPP( E1,I1) + IIPP( DE,I1)) 
+         IIPX( MY,I1) = MAX(MLOW,IIPP( E0,I1) + IIPP( ME,I1)) 
+         IIPX( IY,I1) = MAX(MLOW,IIPP( E0,I1) + IIPP( IE,I1)) 
+         IIPX( DY,I1) = MAX(MLOW,IIPP( E0,I1) + IIPP( DE,I1)) 
+ 10   Continue
+      
+* average match score for average amino acid composition 
+      
+      If(.NOT.OPTR.AND.IFUN.EQ.3) 
+     *   Call CPAve(IMPP,IDMP,LPRF,CABC,NABC,PAVE)
+
+* alignment and ouptut format switches 
+
+      If(OPTX.OR.OPTY.OR.OPTZ.OR.OPTM) then 
+         LTRA=.TRUE.
+      Else
+         LTRA=.FALSE.
+      End if
+      If(OPTS.OR.OPTX) then
+         LPFA=.TRUE.
+      Else
+         LPFA=.FALSE.
+      End if
+
+* compute alignments if any output format switch is specified
+
+      LOUT=(LTRA.OR.LPFA)
+      
+*----------------------------------------------------------------------*
+* major loop over sequences
+*----------------------------------------------------------------------*
+
+* read sequence  
+
+ 20   Continue
+      If(LEOF) go to 100
+      If(OPTF) then 
+         Call RFSEQ
+     *      (MSEQ,FSEQ,NABC,CABC,CSID,CSAC,CSDE,CSFH,LSEQ,ISEQ,LEOF,
+     *      INBS,OPTV,IRC)
+      Else 
+         Call RESEQ
+     *      (MSEQ,FSEQ,NABC,CABC,CSID,CSAC,CSDE,LSEQ,ISEQ,LEOF,
+     *      INBS,OPTV,IRC)
+      End if 
+      If(IRC.GT.0) go to 100
+      If(LEOF.AND.IRC.LT.0) then
+         If(INBS.GE.1) IRC=0
+         go to 100
+      End if
+      
+      JSEQ=0
+
+ 25   Continue
+
+* should alignments of repeats be computed
+
+      If(OPTM) then
+         LCMM=.TRUE.
+      Else
+         LCMM=.FALSE.
+      End if
+
+      BSEQ=1
+
+* compute cut-off in raw score units
+      
+      If(.NOT.OPTR) then
+         If(IFUN.EQ.3) then
+            Call CFAve(ISEQ,IDMS,BSEQ,LSEQ,CABC,NABC,FAVE)
+            RAVE=0
+            Do  I1=0,NABC
+               RAVE=RAVE+FAVE(I1)*PAVE(I1)
+            End do
+         End if
+         Call NtoR(XCUT,KCUT,RNOP,KNPM,MAXN,INOR,IFUN,LSEQ,RAVE)
+      End if
+
+* compute optimal alignment score
+
+      Call XALI1
+     *   (LPRF,LPCI,
+     *   KCUT,IIPP,IMPP,IIPX,
+     *   BSEQ,LSEQ,ISEQ,
+     *   IOPM,IOPI,IOPD,
+     *   IOPT,LUNI,  
+     *   IRC)
+      
+      If(OPTA) then
+         Continue         
+      Else if(IOPT.LT.KCUT) then
+         go to  50
+      End if 
+      
+* do not compute alignments if no format modifier specified
+* and the disjointness is 'UNIQUE'
+
+      If(.NOT.LOUT.AND.LUNI) go to  30 
+      
+* initialize sequence lock
+      
+      Do I1=1,LSEQ
+         LCKS(I1)=.FALSE.
+      End do  
+      
+* find optimal match
+
+      If(LUNI) then
+         Call XALIP
+     *      (NABC,LPRF,LPCI,NDIP(1),NDIP(2),
+     *      IOPT,IIPP,IMPP,CHIP,CHMP,IIPX,
+     *      BSEQ,LSEQ,ISEQ,LCKS,
+     *      IOPM,IOPI,IOPD,
+     *      IOMB,IOM1,IOM2,IOIB,IOI1,IOI2,IODB,IOD1,IOD2,
+     *      NALI,IALS,IALB,IAL1,IAL2,IALE,
+     *      LUNI,
+     *      IRC)
+      Else
+         
+* find all matches 
+         
+         Call XALIP
+     *      (NABC,LPRF,LPCI,NDIP(1),NDIP(2),
+     *      KCUT,IIPP,IMPP,CHIP,CHMP,IIPX,
+     *      BSEQ,LSEQ,ISEQ,LCKS,
+     *      IOPM,IOPI,IOPD,
+     *      IOMB,IOM1,IOM2,IOIB,IOI1,IOI2,IODB,IOD1,IOD2,
+     *      NALI,IALS,IALB,IAL1,IAL2,IALE,
+     *      LUNI,
+     *      IRC)
+      End if
+      If(IRC.NE.0) then
+         Write(NERR,*) '       While processing profile ',
+     *      CPID(1:Lblnk(CPID))
+         IRC=0
+         Go to 50
+      End if
+
+
+* remove sequence lock if alignments are to be generated
+
+      If(LTRA) then 
+         Do I1=1,LSEQ
+            LCKS(I1)=.FALSE.
+         End do 
+      End if 
+      
+* OUTPUT 
+
+ 30   Continue         
+      
+      If(LUNI) then 
+         NALI=1
+         IALS(1)=IOPT
+      End if 
+      
+      if(OPTJ .AND. (NALI > 0)) then
+            Do I1=1,LSEQ
+               CALI(I1)=Char(Ichar(CABC(ISEQ(I1))))
+            End do
+            Call JPRSM(CSID,CSAC,CSFH,OPTF,1,LSEQ)
+            Call PRSP(CABC,ISEQ,CALI,1,LSEQ,NW,OPTS,OPTX)
+      End if
+
+      Do  40 I1=1,NALI
+         JSEQ=JSEQ+1
+         
+         If(LTRA) then 
+            Call XALIT
+     *         (CABC,LPRF,LPCI,NDIP(1),NDIP(2),
+     *         IIPP,IMPP,IIPX,
+     *         LSEQ,ISEQ,LCKS,
+     *         IOPM,IOPI,IOPD,
+     *         LALI,CALI,CPMA,IMSC,
+     *         IALS(I1),IALB(I1),IALE(I1),
+     *         NMAT(I1),
+     *         PK2E,PK2B,PK3E,PK3B,
+     *         PJ1E,PJ1B,PLAL,
+     *         OPTM,
+     *         IPMB,IPME,
+     *         IRC)
+            If(IRC.GT.0) Go to 100
+            Do  I2=IAL1(I1),IAL2(I1)
+               LCKS(I2)=.TRUE.
+            End do
+         End if 
+
+         If(.NOT.OPTK) then
+            Call WPRSM(JSEQ,NMAT(I1),.FALSE.,
+     *         LUNI,LOUT,LNOR,LREV,LPFA,OPTZ,OPTL,OPLU,NW,
+     *         CSID,CSAC,CSDE,OPTD,OPTR,LDRS,
+     *         IALS(I1),IALB(I1),IALE(I1),NALI,IPMB,IPME,
+     *         JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *         RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+         Else
+            Call XPRSM(JSEQ,NMAT(I1),.FALSE.,
+     *         LUNI,LOUT,LNOR,LREV,OPTZ,OPTL,OPLU,OPTB,
+     *         CSID,CSAC,CSFH,CPID,CPAC,OPTR,OPTF,LDRS,
+     *         IALS(I1),IALB(I1),IALE(I1),NALI,IPMB,IPME,
+     *         JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *         RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+         End if
+
+         If     (OPTS) then
+            Call PRSP(CABC,ISEQ,CALI,IALB(I1),IALE(I1),NW,OPTS,OPTX)
+         Else if(OPTX) then
+            Call PRSP(CABC,ISEQ,CALI,1,LALI,NW,OPTS,OPTX)
+         Else if(OPTY) then 
+            Call PRALI
+     *         (LPRF,CHIP,CHMP,IDMP,LSEQ,LREV,
+     *         CALI,LALI,IALB(I1),IALE(I1),NW)
+         End if 
+         
+*----------------------------------------------------------------------*
+* Compute single repeats for circular profiles
+*----------------------------------------------------------------------*
+         
+         If(OPTM) then
+            If(NMAT(I1).GT.1) then
+               Do I2=NMAT(I1),1,-1
+                  If(.NOT.OPTK) then
+                     Call WPRSM(JSEQ,NMAT(I1)-I2+1,.TRUE.,
+     *                  LUNI,LOUT,LNOR,LREV,LPFA,OPTZ,OPTL,OPLU,NW,
+     *                  CSID,CSAC,CSDE,OPTD,OPTR,LDRS,
+     *                  IMSC(I2),PK2B(I2),PK2E(I2),NALI,
+     *                  PK3B(I2),PK3E(I2)-LPRF-1,
+     *                  JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *                  RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+                  Else
+                     Call XPRSM(JSEQ,NMAT(I1)-I2+1,.TRUE.,
+     *                  LUNI,LOUT,LNOR,LREV,OPTZ,OPTL,OPLU,OPTB,
+     *                  CSID,CSAC,CSFH,CPID,CPAC,OPTR,OPTF,LDRS,
+     *                  IMSC(I2),PK2B(I2),PK2E(I2),NALI,
+     *                  PK3B(I2),PK3E(I2)-LPRF-1,
+     *                  JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *                  RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+                  End if
+                  
+                  If     (OPTS) then
+                     Call PRSP(CABC,ISEQ,CALI,PK2B(I2),PK2E(I2),
+     *                  NW,OPTS,OPTX)
+                  Else if(OPTX) then
+                     Call PRXP(CALI,PJ1B(I2),PJ1B(I2)+PLAL(I2)-1,
+     *                  PK3B(I2),PK3E(I2),LPRF,NW)
+                  Else if(OPTY) then 
+                     Call PMALI
+     *                  (LPRF,CHIP,CHMP,IDMP,LSEQ,LREV,CALI,
+     *                  PK2B(I2),PK3E(I2),PK3B(I2),PJ1E(I2),PJ1B(I2),NW)
+                  End if 
+                  
+               End do
+* End loop over repeats
+            End if
+         End if
+* End loop over matches
+         
+         
+ 40   Continue
+
+
+ 50   Continue
+      
+      If(OPTB) then 
+         If(LREV) then 
+            LREV=.FALSE.
+            Go to  20
+         Else
+            Continue
+         End if
+      Else
+         Go to  20
+      End if
+      
+*----------------------------------------------------------------------*
+* Complementary strand 
+*----------------------------------------------------------------------*
+      
+      LREV=.TRUE.
+      
+* generate complementary sequence
+      
+      J1=LSEQ          
+      Do  I1=1,LSEQ/2
+         IS=ISEQ(I1)
+         ISEQ(I1)=ISEQ(J1)
+         ISEQ(J1)=IS
+         J1=J1-1
+      End do  
+      
+      Do  I1=1,LSEQ
+         If(ISEQ(I1).NE.0) ISEQ(I1)=NABC-ISEQ(I1)+1
+      End do
+      
+      Go to  25
+      
+ 100  Call Exit(IRC)
+
+* errors
+
+ 901  Write(NERR,*) 'Error: Normalisation mode ',NMOD,' is not'//
+     *   ' defined.'
+      Write(NERR,*) '       While processing profile ',
+     *   CPID(1:Lblnk(CPID))
+      IRC=1
+      Go to 100
+ 902  Write(NERR,*) 'Error: Cut-off must be a real number when option'//
+     *   ' -M is used.'
+      IRC=1
+      Go to 100
+ 903  Write(NERR,*) 'Error: Normalisation mode ',NMOD,' is not'//
+     *   'defined for level 0 cut-off.'
+      Write(NERR,*) '       While processing profile ',
+     *   CPID(1:Lblnk(CPID))
+      IRC=1
+      Go to 100
+ 904  Write(NERR,*) 'Error: Normalisation mode(s)',MCUT(I2,I1),
+     *   ' of level',MCLE(I1),' is not defined in the profile.'
+      Write(NERR,*) '       While processing profile ',
+     *   CPID(1:Lblnk(CPID))
+      IRC=1
+      Go to 100
+
+      End
+*----------------------------------------------------------------------*     
+      Subroutine Repar(
+     *   OPTA,OPTB,OPTF,OPTL,OPLU,OPTR,OPTS,OPTU,OPTX,OPTY,OPTZ,OPTM,
+     *   OPTK,OPTJ,FPRF,FSEQ,NCUC,KCUC,XCUC,NW,NMOD,OPTO,OPTD,OPTV,IRC)
+      
+      Logical           OPTA 
+      Logical           OPTB 
+      Logical           OPTF 
+      Logical           OPTL 
+      Logical           OPLU 
+      Logical           OPTR 
+      Logical           OPTS 
+      Logical           OPTU 
+      Logical           OPTX 
+      Logical           OPTY 
+      Logical           OPTZ 
+      Logical           OPTM
+      Logical           OPTK
+      Logical           OPTJ
+      Logical           OPTO
+      Logical           OPTD
+      Logical           OPTV
+      
+      Character*(*)     FPRF
+      Character*(*)     FSEQ
+      Character*512     CARG
+      
+      IRC=0
+      NCUC=0
+      OPTA=.FALSE.
+      OPTB=.FALSE.
+      OPTF=.FALSE.
+      OPTL=.FALSE.
+      OPLU=.FALSE.
+      OPTR=.FALSE.
+      OPTS=.FALSE.
+      OPTU=.FALSE.
+      OPTX=.FALSE.
+      OPTY=.FALSE.
+      OPTZ=.FALSE.
+      OPTM=.FALSE.
+      OPTO=.FALSE.
+      OPTK=.FALSE.
+      OPTJ=.FALSE.
+      OPTD=.FALSE.
+      OPTV=.FALSE.
+      
+      NW=60
+      
+      N1=Iargc()
+      
+      K1=0
+      I2=1
+      Do  10 I1=1,N1
+         Call GetArg(I2,CARG)
+         If     (CARG(1:1).EQ.'-'.
+     *      AND.CARG(2:2).NE.' '.AND.K1.LT.1) then
+            If(Index(CARG,'h').NE.0) go to 900
+            If(Index(CARG,'a').NE.0) OPTA=.TRUE.
+            If(Index(CARG,'b').NE.0) OPTB=.TRUE.
+            If(Index(CARG,'d').NE.0) OPTD=.TRUE.
+            If(Index(CARG,'f').NE.0) OPTF=.TRUE.
+            If(Index(CARG,'l').NE.0) OPTL=.TRUE.
+            If(Index(CARG,'L').NE.0) OPLU=.TRUE.
+            If(Index(CARG,'r').NE.0) OPTR=.TRUE.
+            If(Index(CARG,'s').NE.0) OPTS=.TRUE.
+            If(Index(CARG,'u').NE.0) OPTU=.TRUE.
+            If(Index(CARG,'x').NE.0) OPTX=.TRUE.
+            If(Index(CARG,'y').NE.0) OPTY=.TRUE.
+            If(Index(CARG,'z').NE.0) OPTZ=.TRUE.
+            If(Index(CARG,'m').NE.0) OPTM=.TRUE.
+            If(Index(CARG,'k').NE.0) OPTK=.TRUE.
+            If(Index(CARG,'j').NE.0) OPTJ=.TRUE.
+            If(Index(CARG,'v').NE.0) OPTV=.TRUE.
+            If(Index(CARG,'W').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) NW
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) NW
+               End if
+            End if
+            If(Index(CARG,'C').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  CARG(1:2)='  '
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+               End if
+               If(Index(CARG,'.').EQ.0) then
+                  NCUC=1 
+                  Read(CARG,*,Err=900) KCUC
+               Else 
+                  NCUC=2
+                  Read(CARG,*,Err=900) XCUC
+               End if 
+            End if
+            If(Index(CARG,'M').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) NMOD
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) NMOD
+               End if
+               OPTO=.TRUE.
+            End if
+         Else if(K1.LE.1) then
+            K1=K1+1
+            If     (K1.EQ.1) then 
+               FPRF=CARG
+            Else if(K1.EQ.2) then
+               FSEQ=CARG
+            End if  
+         Else 
+
+* - cut-off value on command line    
+
+            If     (CARG(1:2).EQ.'C=') then
+               CARG(1:2)='  '
+               If(Index(CARG,'.').EQ.0) then
+                  NCUC=1 
+                  Read(CARG,*,Err=900) KCUC
+               Else 
+                  NCUC=2
+                  Read(CARG,*,Err=900) XCUC
+               End if 
+
+* - output width on command line
+
+            Else if(CARG(1:2).EQ.'W=') then
+               Read(CARG(3:),*,Err=900) NW
+            End if
+         End if
+         I2=I2+1
+         If(I2.GT.N1) Go to 20
+ 10   Continue 
+      
+ 20   If (K1.NE.2) IRC=1 
+      
+ 100  If(NW.LE.0.OR.NW.GT.512) NW=60
+      Return
+ 900  IRC=1
+      Go to 100
+      End 
+*----------------------------------------------------------------------*     
+      Include          'reprf.f'
+      Include          'reseq.f'
+      Include          'rfseq.f'
+      Include          'xali1.f'
+      Include          'xalip.f'
+      Include          'RtoN.f'
+      Include          'NtoR.f'
+      Include          'CFAve.f'
+      Include          'CPAve.f'
+      Include          'wprsm.f'
+      Include          'xprsm.f'
+      Include          'jprsm.f'
+      Include          'xalit.f'
+      Include          'lblnk.f'
+      Include          'prali.f'
+      Include          'pmali.f'
+      Include          'prsp.f'
+      Include          'prxp.f'
+      Include          'Xblnk.f'
+      
diff --git a/pfsearch.f.cpy b/pfsearch.f.cpy
new file mode 100644
index 0000000..545a37f
--- /dev/null
+++ b/pfsearch.f.cpy
@@ -0,0 +1,904 @@
+*       Program pfsearch
+*----------------------------------------------------------------------*     
+* $Id: pfsearch.f,v 2.30 2003/12/09 13:42:42 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Function: Scan a protein or DNA sequence library for profile 
+*                 matches 
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* DATA
+*----------------------------------------------------------------------*     
+
+* array dimensions and I/O units
+      
+      Include          'ardim.f' 
+      
+      Parameter        (NOUT=   6)    
+      
+      Parameter        (NPRF=  11)    
+      Parameter        (NSEQ=  12)    
+      
+* profile 
+
+      Character*512     FPRF
+      
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'pfdat.f'
+      Include          'dfdat.f'
+      Include          'pxdat.f'
+      Include          'avdat.f'
+      Include          'sterr.f'
+
+      Logical           LUNI
+      Logical           LNOR
+      Logical           LREV
+      Logical           LTRA
+      Logical           LPFA
+      Logical           LEOF
+      Logical           LOUT
+      
+* sequence
+      
+      Character*512     FSEQ
+      
+      Character*64      CSID
+      Character*64      CSAC
+      Character*64      CSFH
+      Character*512     CSDE
+      
+      Integer           LSEQ
+      Integer           BSEQ
+
+      Integer*2         ISEQ(IDMS)
+      
+      Logical           LCKS(IDMS)
+      
+      Integer*2         IS
+
+* number of sequences read
+
+      Integer           INBS
+      Integer           INBP
+
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+* options and command line parameters
+
+      Logical           OPTA
+      Logical           OPTB 
+      Logical           OPTF 
+      Logical           OPTL 
+      Logical           OPLU 
+      Logical           OPTR 
+      Logical           OPTS 
+      Logical           OPTU 
+      Logical           OPTX 
+      Logical           OPTY 
+      Logical           OPTZ 
+      Logical           OPTM
+      Logical           OPTK
+      Logical           OPTO
+      Logical           OPTD
+      Logical           OPTV
+
+      Logical           LCMM
+      
+      Integer           NCUC
+      Integer           KCUC
+      real              XCUC
+      Logical           LDRS   
+* alignments
+
+      Integer           NALI
+      Integer           IALS(IDMN)
+      Integer           IALB(IDMN)
+      Integer           IAL1(IDMN)
+      Integer           IAL2(IDMN)
+      Integer           IALE(IDMN)
+      
+      Integer           LALI
+      Character         CALI(IDMA) 
+      Character         CPMA(IDMM)
+      
+* multiple matches of circular profile
+
+      Integer           NMAT(IDMN)
+C      Integer           IMMB(IDMN,IDML)
+C      Integer           IMME(IDMN,IDML)
+      Integer           PK1E(IDML)
+      Integer           PK1B(IDML)
+      Integer           PK2E(IDML)
+      Integer           PK2B(IDML)
+      Integer           PK3E(IDML)
+      Integer           PK3B(IDML)
+      Integer           PJSE(IDML)
+      Integer           PJ1E(IDML)
+      Integer           PJ1B(IDML)
+      Integer           PLAL(IDML)
+      Integer           IMSC(IDML)
+
+* path matrix fields
+      
+      Integer           IOPM(0:IDMP)
+      Integer           IOPI(0:IDMP)
+      Integer           IOPD(0:IDMP)
+      
+      Integer           IOMB(0:IDMP)
+      Integer           IOM1(0:IDMP)
+      Integer           IOM2(0:IDMP)
+      
+      Integer           IOIB(0:IDMP)
+      Integer           IOI1(0:IDMP)
+      Integer           IOI2(0:IDMP)
+      
+      Integer           IODB(0:IDMP)
+      Integer           IOD1(0:IDMP)
+      Integer           IOD2(0:IDMP)
+
+* work fields
+
+C     Character*1024    RCIN
+C     Character*1024    RCOUT
+
+* initialization of controlled vocabularies
+
+      Include          'cvini.f' 
+
+*----------------------------------------------------------------------*     
+* INPUT SECTION 
+*----------------------------------------------------------------------*     
+
+      IRC=0
+      
+      LUNI=.FALSE.
+      LNOR=.FALSE.
+      LREV=.FALSE.
+      LTRA=.FALSE.
+      LPFA=.FALSE.
+      LDRS=.FALSE.
+      
+      LEOF=.FALSE.
+      CABC(0)='-'
+
+      INBS=0
+      INBP=0
+
+* read command line arguments
+
+      Call Repar(
+     *   OPTA,OPTB,OPTF,OPTL,OPLU,OPTR,OPTS,OPTU,OPTX,OPTY,OPTZ,OPTM,
+     *   OPTK,FPRF,FSEQ,NCUC,KCUC,XCUC,NW,NMOD,OPTO,OPTD,OPTV,IRC)
+      If(IRC.NE.0) then 
+         Write(NERR,'(/,
+     *      ''pfsearch 2.3 revision 4'',//
+     *      ''Usage: pfsearch [ -abCdfhlLmMkrsuvWxyz ] [ profile-file'',
+     *      '' | - ] [ seq-library-file | - ] [ parameters ]'',//
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -a: report optimal alignment for all sequences.'',/
+     *      ''    -b: search complementary strand of DNA sequences.'',/
+     *      ''    -f: input sequence file is in FASTA format.'',/
+     *      ''    -h: print usage help text.'',/
+     *      ''    -l: indicate highest cut-off level (number).'',/
+     *      ''    -L: indicate highest cut-off level (text).'',/
+     *      ''    -m: report individual matches for circular'',
+     *      '' profiles.'',/
+     *      ''    -r: use raw score.'',/
+     *      ''    -u: force profile disjointness to UNIQUE.''
+     *      )')
+         Write(NERR,'(
+     *      ''    -C<value>:'',/
+     *      ''        cut-off value. An integer value forces -r.'',
+     *      '' Same as parameter C.'',/
+     *      ''    -M<value>:'',/
+     *      ''        set the normalization mode to use for the'',
+     *      '' score computation.'',/
+     *      ''        Overrides the profile PRIORITY parameter.'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   output modifiers:'',/,
+     *      ''    -d: impose length limit on sequence description.'',/
+     *      ''    -k: output using the xPSA header (using keyword'',
+     *      ''=value pairs).'',/
+     *      ''    -s: list sequences of the matched regions.'',/
+     *      ''    -v: suppress warnings on stderr.'',/
+     *      ''    -x: list alignments in PSA format.'',/
+     *      ''    -y: list alignments in human readable form.'',/
+     *      ''    -z: indicate profile start and stop positions.'',/
+     *      ''    -W<value>:'',/
+     *      ''        specifies the output width. Same as parameter'',
+     *      '' W.'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   valid (but deprecated) parameters are:'',/,
+     *      ''    [C=cut-off-value]  use option -C instead'',/
+     *      ''    [W=output-width]   use option -W instead'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+      
+      If(FSEQ.EQ.'-') then 
+         MSEQ=5
+      Else
+         MSEQ=NSEQ
+      End if
+      
+      If(FPRF.EQ.'-') then 
+         MPRF=5
+      Else
+         MPRF=NPRF
+      End if
+
+      If(OPTR) then
+         LDRS=.TRUE.
+      End if
+      
+* read profile
+
+      Call REPRF
+     *   (MPRF,FPRF,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   BLOG,FABC,P0,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP, 
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT, 
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,CHIL,IIPL,ILIP,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   INBP,LEOF,OPTV,IRC)
+      
+      If(IRC.GT.0) go to 100
+
+* check parameter consistency
+      
+      If(.NOT.OPTV.AND.OPTM.AND..NOT.LPCI) then
+         Write(NERR,*) 'Warning: Profile not circular. ',
+     *      'Ignoring option -m.'
+         OPTM=.FALSE.
+      End if
+      If(.NOT.OPTV.AND.OPTB.AND.NABC.GT.4) then
+         Write(NERR,*) 'Warning: Not a DNA profile. ',
+     *      'Ignoring option -b.'
+         OPTB=.FALSE.
+      End if
+      If(.NOT.OPTV.AND.OPTA.AND.NCUC.GT.0) then
+         Write(NERR,*) 'Warning: Option -a is set. Ignoring command',
+     *      ' line cut-off (option -C).'
+         NCUC=0
+      End if
+      If(.NOT.OPTV.AND.OPTR.AND.NCUC.GT.1) then
+         Write(NERR,*) 'Warning: Option -r is set. Please use only',
+     *      ' integer command line cut-off (option -C) values.'
+         NCUC=0
+      End if
+      
+* get cut-off for mode nb specified on command line
+
+      KCUT=0
+      If(OPTO) then
+         J1=0
+*   find the specified normalisation mode
+         Do 1 I1=1,JNOR
+            If(NNOR(I1).EQ.NMOD) J1=I1
+ 1       Continue
+*   exit if mode number not specified in profile
+         If(J1.EQ.0) Go to 901
+         
+*   if cut-off value was specified on command line do not search levels
+         If(NCUC.EQ.2) then
+            LNOR=.TRUE.
+            INOR=J1
+            MNUM=NNOR(J1)
+            IFUN=MNOR(J1)
+*   exit if an integer cut-off value was specified with option M
+         Else if(NCUC.EQ.1) then
+            Go to 902
+*   find mode number in list of level 0 cut-off values
+         Else
+            INOR=0
+            Do 3 I1=1,JCUT
+               If(MCLE(I1).EQ.0) then
+                  If(JCNM(I1).NE.0) then 
+                     J2=0
+                     Do 2 I2=1,JCNM(I1)
+                        If(MCUT(I2,I1).EQ.NMOD) J2=I2
+ 2                   Continue
+                     If(J2.EQ.0) Go to 903
+                     LNOR=.TRUE.
+                     INOR=J1
+                     MNUM=NNOR(J1)
+                     IFUN=MNOR(J1)
+                     KCUT=ICUT(I1)
+                     XCUT=RCUT(J2,I1)
+                  Else
+                     Go to 903
+                  End if
+               End if
+ 3          Continue
+            If(INOR.EQ.0) Go to 901
+         End if
+      Else
+         
+* get cut-off and normalisation modes from profile
+         
+         Do   6 I1=1,JCUT
+            If(MCLE(I1).EQ.0) then
+               INOR=0
+               If(JCNM(I1).NE.0) then 
+                  LNOR=.TRUE.
+*               J2=1
+                  Do  5 I2=1,JCNM(I1)
+                     J3=0
+                     Do  4 I3=1,JNOR
+                        If(MCUT(I2,I1).EQ.NNOR(I3)) J3=I3
+ 4                   Continue
+                     If(J3.EQ.0) Go to 904
+                     
+                     If     (I2.EQ.1) then 
+                        INOR=J3
+                        MNUM=NNOR(J3)
+                        NPRI=NNPR(J3)    
+                        IFUN=MNOR(J3)
+                        KCUT=ICUT(I1)
+                        XCUT=RCUT(I2,I1)
+                     Else if(NNPR(J3).LT.NPRI) then
+                        INOR=J3
+                        MNUM=NNOR(J3)
+                        NPRI=NNPR(J3)    
+                        IFUN=MNOR(J3)
+                        KCUT=ICUT(I1)
+                        XCUT=RCUT(I2,I1)
+                     End if
+ 5                Continue
+               End if 
+               
+               If(JCNM(I1).EQ.0.OR.INOR.EQ.0) then
+                  KCUT=ICUT(I1)
+                  LNOR=.FALSE.
+               End if
+            End if
+ 6       Continue
+      End if
+      
+* cut-off from command line 
+      
+      If(NCUC.EQ.1) then 
+         KCUT=KCUC
+         OPTR=.TRUE.
+      Else if(NCUC.EQ.2.AND.LNOR) then
+         XCUT=XCUC
+      Else if(.NOT.OPTV.AND.NCUC.EQ.2.AND..NOT.LNOR) then
+         Write(NERR,*) 'Warning: Profile does not provide ',
+     *      'normalization. Ignoring command line cut-off.'
+      End if
+      If(.NOT.LNOR) OPTR=.TRUE.
+
+* disjointness definition
+* set disjointness position to begin and end of profile if necessary
+
+      If(MDIS.EQ.1.OR.OPTU.OR.OPTA) then
+         LUNI=.TRUE.
+         If(MDIS.EQ.1) then
+            NDIP(1)=1
+            NDIP(2)=LPRF
+         End if
+      Else
+         LUNI=.FALSE.
+      End if
+
+* - initialize profile lock
+      
+      If(.NOT.LPCI) then
+         Do  8 I1=0,NDIP(1)-1 
+            IIPP(E0,I1)=NLOW
+            IIPP(E1,I1)=NLOW
+ 8       Continue
+         
+         Do  9 I1=NDIP(2),LPRF 
+            IIPP(B0,I1)=NLOW
+            IIPP(B1,I1)=NLOW
+ 9       Continue
+      End if
+      
+C      End if
+
+* profile extra parameters
+      
+      MLOW=NLOW/4*3
+      Do  10 I1=0,LPRF
+         IIPX( XM,I1) = MAX(MLOW,IIPP( B1,I1) + IIPP( BM,I1)) 
+         IIPX( XI,I1) = MAX(MLOW,IIPP( B1,I1) + IIPP( BI,I1)) 
+         IIPX( XD,I1) = MAX(MLOW,IIPP( B1,I1) + IIPP( BD,I1)) 
+         IIPX( YM,I1) = MAX(MLOW,IIPP( B0,I1) + IIPP( BM,I1)) 
+         IIPX( YI,I1) = MAX(MLOW,IIPP( B0,I1) + IIPP( BI,I1)) 
+         IIPX( YD,I1) = MAX(MLOW,IIPP( B0,I1) + IIPP( BD,I1)) 
+         IIPX( MX,I1) = MAX(MLOW,IIPP( E1,I1) + IIPP( ME,I1)) 
+         IIPX( IX,I1) = MAX(MLOW,IIPP( E1,I1) + IIPP( IE,I1)) 
+         IIPX( DX,I1) = MAX(MLOW,IIPP( E1,I1) + IIPP( DE,I1)) 
+         IIPX( MY,I1) = MAX(MLOW,IIPP( E0,I1) + IIPP( ME,I1)) 
+         IIPX( IY,I1) = MAX(MLOW,IIPP( E0,I1) + IIPP( IE,I1)) 
+         IIPX( DY,I1) = MAX(MLOW,IIPP( E0,I1) + IIPP( DE,I1)) 
+ 10   Continue
+      
+* average match score for average amino acid composition 
+      
+      If(.NOT.OPTR.AND.IFUN.EQ.3) 
+     *   Call CPAve(IMPP,IDMP,LPRF,CABC,NABC,PAVE)
+
+* alignment and ouptut format switches 
+
+      If(OPTX.OR.OPTY.OR.OPTZ.OR.OPTM) then 
+         LTRA=.TRUE.
+      Else
+         LTRA=.FALSE.
+      End if
+      If(OPTS.OR.OPTX) then
+         LPFA=.TRUE.
+      Else
+         LPFA=.FALSE.
+      End if
+
+* compute alignments if any output format switch is specified
+
+      LOUT=(LTRA.OR.LPFA)
+      
+*----------------------------------------------------------------------*
+* major loop over sequences
+*----------------------------------------------------------------------*
+
+* read sequence  
+
+ 20   Continue
+      If(LEOF) go to 100
+      If(OPTF) then 
+         Call RFSEQ
+     *      (MSEQ,FSEQ,NABC,CABC,CSID,CSAC,CSDE,CSFH,LSEQ,ISEQ,LEOF,
+     *      INBS,OPTV,IRC)
+      Else 
+         Call RESEQ
+     *      (MSEQ,FSEQ,NABC,CABC,CSID,CSAC,CSDE,LSEQ,ISEQ,LEOF,
+     *      INBS,OPTV,IRC)
+      End if 
+      If(IRC.GT.0) go to 100
+      If(LEOF.AND.IRC.LT.0) then
+         If(INBS.GE.1) IRC=0
+         go to 100
+      End if
+      
+      JSEQ=0
+
+ 25   Continue
+
+* should alignments of repeats be computed
+
+      If(OPTM) then
+         LCMM=.TRUE.
+      Else
+         LCMM=.FALSE.
+      End if
+
+      BSEQ=1
+
+* compute cut-off in raw score units
+      
+      If(.NOT.OPTR) then
+         If(IFUN.EQ.3) then
+            Call CFAve(ISEQ,IDMS,BSEQ,LSEQ,CABC,NABC,FAVE)
+            RAVE=0
+            Do  I1=0,NABC
+               RAVE=RAVE+FAVE(I1)*PAVE(I1)
+            End do
+         End if
+         Call NtoR(XCUT,KCUT,RNOP,KNPM,MAXN,INOR,IFUN,LSEQ,RAVE)
+      End if
+
+* compute optimal alignment score
+
+      Call XALI1
+     *   (LPRF,LPCI,
+     *   KCUT,IIPP,IMPP,IIPX,
+     *   BSEQ,LSEQ,ISEQ,
+     *   IOPM,IOPI,IOPD,
+     *   IOPT,LUNI,  
+     *   IRC)
+      
+      If(OPTA) then
+         Continue         
+      Else if(IOPT.LT.KCUT) then
+         go to  50
+      End if 
+      
+* do not compute alignments if no format modifier specified
+* and the disjointness is 'UNIQUE'
+
+      If(.NOT.LOUT.AND.LUNI) go to  30 
+      
+* initialize sequence lock
+      
+      Do I1=1,LSEQ
+         LCKS(I1)=.FALSE.
+      End do  
+      
+* find optimal match
+
+      If(LUNI) then
+         Call XALIP
+     *      (NABC,LPRF,LPCI,NDIP(1),NDIP(2),
+     *      IOPT,IIPP,IMPP,CHIP,CHMP,IIPX,
+     *      BSEQ,LSEQ,ISEQ,LCKS,
+     *      IOPM,IOPI,IOPD,
+     *      IOMB,IOM1,IOM2,IOIB,IOI1,IOI2,IODB,IOD1,IOD2,
+     *      NALI,IALS,IALB,IAL1,IAL2,IALE,
+     *      LUNI,
+     *      IRC)
+      Else
+         
+* find all matches 
+         
+         Call XALIP
+     *      (NABC,LPRF,LPCI,NDIP(1),NDIP(2),
+     *      KCUT,IIPP,IMPP,CHIP,CHMP,IIPX,
+     *      BSEQ,LSEQ,ISEQ,LCKS,
+     *      IOPM,IOPI,IOPD,
+     *      IOMB,IOM1,IOM2,IOIB,IOI1,IOI2,IODB,IOD1,IOD2,
+     *      NALI,IALS,IALB,IAL1,IAL2,IALE,
+     *      LUNI,
+     *      IRC)
+      End if
+      If(IRC.NE.0) then
+         Write(NERR,*) '       While processing profile ',
+     *      CPID(1:Lblnk(CPID))
+         IRC=0
+         Go to 50
+      End if
+
+
+* remove sequence lock if alignments are to be generated
+
+      If(LTRA) then 
+         Do I1=1,LSEQ
+            LCKS(I1)=.FALSE.
+         End do 
+      End if 
+      
+* OUTPUT 
+
+ 30   Continue         
+      
+      If(LUNI) then 
+         NALI=1
+         IALS(1)=IOPT
+      End if 
+      
+      Do  40 I1=1,NALI
+         JSEQ=JSEQ+1
+         
+         If(LTRA) then 
+            Call XALIT
+     *         (CABC,LPRF,LPCI,NDIP(1),NDIP(2),
+     *         IIPP,IMPP,IIPX,
+     *         LSEQ,ISEQ,LCKS,
+     *         IOPM,IOPI,IOPD,
+     *         LALI,CALI,CPMA,IMSC,
+     *         IALS(I1),IALB(I1),IALE(I1),
+     *         NMAT(I1),
+     *         PK2E,PK2B,PK3E,PK3B,
+     *         PJ1E,PJ1B,PLAL,
+     *         OPTM,
+     *         IPMB,IPME,
+     *         IRC)
+            If(IRC.GT.0) Go to 100
+            Do  I2=IAL1(I1),IAL2(I1)
+               LCKS(I2)=.TRUE.
+            End do
+         End if 
+
+         If(.NOT.OPTK) then
+            Call WPRSM(JSEQ,NMAT(I1),.FALSE.,
+     *         LUNI,LOUT,LNOR,LREV,LPFA,OPTZ,OPTL,OPLU,NW,
+     *         CSID,CSAC,CSDE,OPTD,OPTR,LDRS,
+     *         IALS(I1),IALB(I1),IALE(I1),NALI,IPMB,IPME,
+     *         JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *         RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+         Else
+            Call XPRSM(JSEQ,NMAT(I1),.FALSE.,
+     *         LUNI,LOUT,LNOR,LREV,OPTZ,OPTL,OPLU,OPTB,
+     *         CSID,CSAC,CSFH,CPID,CPAC,OPTR,OPTF,LDRS,
+     *         IALS(I1),IALB(I1),IALE(I1),NALI,IPMB,IPME,
+     *         JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *         RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+         End if
+
+         If     (OPTS) then
+            Call PRSP(CABC,ISEQ,CALI,IALB(I1),IALE(I1),NW,OPTS,OPTX)
+         Else if(OPTX) then
+            Call PRSP(CABC,ISEQ,CALI,1,LALI,NW,OPTS,OPTX)
+         Else if(OPTY) then 
+            Call PRALI
+     *         (LPRF,CHIP,CHMP,IDMP,LSEQ,LREV,
+     *         CALI,LALI,IALB(I1),IALE(I1),NW)
+         End if 
+         
+*----------------------------------------------------------------------*
+* Compute single repeats for circular profiles
+*----------------------------------------------------------------------*
+         
+         If(OPTM) then
+            If(NMAT(I1).GT.1) then
+               Do I2=NMAT(I1),1,-1
+                  If(.NOT.OPTK) then
+                     Call WPRSM(JSEQ,NMAT(I1)-I2+1,.TRUE.,
+     *                  LUNI,LOUT,LNOR,LREV,LPFA,OPTZ,OPTL,OPLU,NW,
+     *                  CSID,CSAC,CSDE,OPTD,OPTR,LDRS,
+     *                  IMSC(I2),PK2B(I2),PK2E(I2),NALI,
+     *                  PK3B(I2),PK3E(I2)-LPRF-1,
+     *                  JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *                  RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+                  Else
+                     Call XPRSM(JSEQ,NMAT(I1)-I2+1,.TRUE.,
+     *                  LUNI,LOUT,LNOR,LREV,OPTZ,OPTL,OPLU,OPTB,
+     *                  CSID,CSAC,CSFH,CPID,CPAC,OPTR,OPTF,LDRS,
+     *                  IMSC(I2),PK2B(I2),PK2E(I2),NALI,
+     *                  PK3B(I2),PK3E(I2)-LPRF-1,
+     *                  JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *                  RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+                  End if
+                  
+                  If     (OPTS) then
+                     Call PRSP(CABC,ISEQ,CALI,PK2B(I2),PK2E(I2),
+     *                  NW,OPTS,OPTX)
+                  Else if(OPTX) then
+                     Call PRXP(CALI,PJ1B(I2),PJ1B(I2)+PLAL(I2)-1,
+     *                  PK3B(I2),PK3E(I2),LPRF,NW)
+                  Else if(OPTY) then 
+                     Call PMALI
+     *                  (LPRF,CHIP,CHMP,IDMP,LSEQ,LREV,CALI,
+     *                  PK2B(I2),PK3E(I2),PK3B(I2),PJ1E(I2),PJ1B(I2),NW)
+                  End if 
+                  
+               End do
+* End loop over repeats
+            End if
+         End if
+* End loop over matches
+         
+         
+ 40   Continue
+
+
+ 50   Continue
+      
+      If(OPTB) then 
+         If(LREV) then 
+            LREV=.FALSE.
+            Go to  20
+         Else
+            Continue
+         End if
+      Else
+         Go to  20
+      End if
+      
+*----------------------------------------------------------------------*
+* Complementary strand 
+*----------------------------------------------------------------------*
+      
+      LREV=.TRUE.
+      
+* generate complementary sequence
+      
+      J1=LSEQ          
+      Do  I1=1,LSEQ/2
+         IS=ISEQ(I1)
+         ISEQ(I1)=ISEQ(J1)
+         ISEQ(J1)=IS
+         J1=J1-1
+      End do  
+      
+      Do  I1=1,LSEQ
+         If(ISEQ(I1).NE.0) ISEQ(I1)=NABC-ISEQ(I1)+1
+      End do
+      
+      Go to  25
+      
+ 100  Call Exit(IRC)
+
+* errors
+
+ 901  Write(NERR,*) 'Error: Normalisation mode ',NMOD,' is not'//
+     *   ' defined.'
+      Write(NERR,*) '       While processing profile ',
+     *   CPID(1:Lblnk(CPID))
+      IRC=1
+      Go to 100
+ 902  Write(NERR,*) 'Error: Cut-off must be a real number when option'//
+     *   ' -M is used.'
+      IRC=1
+      Go to 100
+ 903  Write(NERR,*) 'Error: Normalisation mode ',NMOD,' is not'//
+     *   'defined for level 0 cut-off.'
+      Write(NERR,*) '       While processing profile ',
+     *   CPID(1:Lblnk(CPID))
+      IRC=1
+      Go to 100
+ 904  Write(NERR,*) 'Error: Normalisation mode(s)',MCUT(I2,I1),
+     *   ' of level',MCLE(I1),' is not defined in the profile.'
+      Write(NERR,*) '       While processing profile ',
+     *   CPID(1:Lblnk(CPID))
+      IRC=1
+      Go to 100
+
+      End
+*----------------------------------------------------------------------*     
+      Subroutine Repar(
+     *   OPTA,OPTB,OPTF,OPTL,OPLU,OPTR,OPTS,OPTU,OPTX,OPTY,OPTZ,OPTM,
+     *   OPTK,FPRF,FSEQ,NCUC,KCUC,XCUC,NW,NMOD,OPTO,OPTD,OPTV,IRC)
+      
+      Logical           OPTA 
+      Logical           OPTB 
+      Logical           OPTF 
+      Logical           OPTL 
+      Logical           OPLU 
+      Logical           OPTR 
+      Logical           OPTS 
+      Logical           OPTU 
+      Logical           OPTX 
+      Logical           OPTY 
+      Logical           OPTZ 
+      Logical           OPTM
+      Logical           OPTK
+      Logical           OPTO
+      Logical           OPTD
+      Logical           OPTV
+      
+      Character*(*)     FPRF
+      Character*(*)     FSEQ
+      Character*512     CARG
+      
+      IRC=0
+      NCUC=0
+      OPTA=.FALSE.
+      OPTB=.FALSE.
+      OPTF=.FALSE.
+      OPTL=.FALSE.
+      OPLU=.FALSE.
+      OPTR=.FALSE.
+      OPTS=.FALSE.
+      OPTU=.FALSE.
+      OPTX=.FALSE.
+      OPTY=.FALSE.
+      OPTZ=.FALSE.
+      OPTM=.FALSE.
+      OPTO=.FALSE.
+      OPTK=.FALSE.
+      OPTD=.FALSE.
+      OPTV=.FALSE.
+      
+      NW=60
+      
+      N1=Iargc()
+      
+      K1=0
+      I2=1
+      Do  10 I1=1,N1
+         Call GetArg(I2,CARG)
+         If     (CARG(1:1).EQ.'-'.
+     *      AND.CARG(2:2).NE.' '.AND.K1.LT.1) then
+            If(Index(CARG,'h').NE.0) go to 900
+            If(Index(CARG,'a').NE.0) OPTA=.TRUE.
+            If(Index(CARG,'b').NE.0) OPTB=.TRUE.
+            If(Index(CARG,'d').NE.0) OPTD=.TRUE.
+            If(Index(CARG,'f').NE.0) OPTF=.TRUE.
+            If(Index(CARG,'l').NE.0) OPTL=.TRUE.
+            If(Index(CARG,'L').NE.0) OPLU=.TRUE.
+            If(Index(CARG,'r').NE.0) OPTR=.TRUE.
+            If(Index(CARG,'s').NE.0) OPTS=.TRUE.
+            If(Index(CARG,'u').NE.0) OPTU=.TRUE.
+            If(Index(CARG,'x').NE.0) OPTX=.TRUE.
+            If(Index(CARG,'y').NE.0) OPTY=.TRUE.
+            If(Index(CARG,'z').NE.0) OPTZ=.TRUE.
+            If(Index(CARG,'m').NE.0) OPTM=.TRUE.
+            If(Index(CARG,'k').NE.0) OPTK=.TRUE.
+            If(Index(CARG,'v').NE.0) OPTV=.TRUE.
+            If(Index(CARG,'W').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) NW
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) NW
+               End if
+            End if
+            If(Index(CARG,'C').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  CARG(1:2)='  '
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+               End if
+               If(Index(CARG,'.').EQ.0) then
+                  NCUC=1 
+                  Read(CARG,*,Err=900) KCUC
+               Else 
+                  NCUC=2
+                  Read(CARG,*,Err=900) XCUC
+               End if 
+            End if
+            If(Index(CARG,'M').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) NMOD
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) NMOD
+               End if
+               OPTO=.TRUE.
+            End if
+         Else if(K1.LE.1) then
+            K1=K1+1
+            If     (K1.EQ.1) then 
+               FPRF=CARG
+            Else if(K1.EQ.2) then
+               FSEQ=CARG
+            End if  
+         Else 
+
+* - cut-off value on command line    
+
+            If     (CARG(1:2).EQ.'C=') then
+               CARG(1:2)='  '
+               If(Index(CARG,'.').EQ.0) then
+                  NCUC=1 
+                  Read(CARG,*,Err=900) KCUC
+               Else 
+                  NCUC=2
+                  Read(CARG,*,Err=900) XCUC
+               End if 
+
+* - output width on command line
+
+            Else if(CARG(1:2).EQ.'W=') then
+               Read(CARG(3:),*,Err=900) NW
+            End if
+         End if
+         I2=I2+1
+         If(I2.GT.N1) Go to 20
+ 10   Continue 
+      
+ 20   If (K1.NE.2) IRC=1 
+      
+ 100  If(NW.LE.0.OR.NW.GT.512) NW=60
+      Return
+ 900  IRC=1
+      Go to 100
+      End 
+*----------------------------------------------------------------------*     
+      Include          'reprf.f'
+      Include          'reseq.f'
+      Include          'rfseq.f'
+      Include          'xali1.f'
+      Include          'xalip.f'
+      Include          'RtoN.f'
+      Include          'NtoR.f'
+      Include          'CFAve.f'
+      Include          'CPAve.f'
+      Include          'wprsm.f'
+      Include          'xprsm.f'
+      Include          'xalit.f'
+      Include          'lblnk.f'
+      Include          'prali.f'
+      Include          'pmali.f'
+      Include          'prsp.f'
+      Include          'prxp.f'
+      Include          'Xblnk.f'
+      
diff --git a/pfw.f b/pfw.f
new file mode 100644
index 0000000..ea7416a
--- /dev/null
+++ b/pfw.f
@@ -0,0 +1,540 @@
+*       Program pfw
+*----------------------------------------------------------------------*     
+* $Id: pfw.f,v 2.10 2004/01/09 09:27:36 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Function: Calculate weights for individual sequences of a 
+*                 multiple sequence alignment.      
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* DATA
+*----------------------------------------------------------------------*
+
+* array sizes, I/O units
+
+C       Parameter        (IDM1=16777216)
+C        Parameter        (IDM1=1048576)
+C        Parameter        (IDM2=   9999)
+C        Parameter        (IDM3=   2024)
+
+      Include          'ardim.f'
+
+      Parameter        (NMSF=     11)
+      Parameter        (ICSL=IDMS/26)
+
+      Include          'sterr.f'
+
+* weights and distances 
+
+      Real*4            RWGT(IDMF)
+      Integer           NDIS(IDMF) 
+      Integer           NIND(IDMF) 
+
+* multiple sequence alignment:
+
+      Character*512     FMSF
+
+      Character*64      SQID(IDMF)
+      Character         CSEQ(IDMS)
+      Character         CSQR(IDMP)
+
+      Logical           LXSC(IDMP)
+
+* character set 
+
+      Character         CSET(26,ICSL)
+      Integer           NSET(   ICSL)
+
+* work fields 
+
+      Character*512     RCIO
+      Character*512     ROUT
+      Character*32      RCTM
+      Logical           OPTM
+      Character         B
+
+* functions
+
+      Integer           Getc
+C       Integer           Fputc
+
+* character translation 
+
+      Character*27      ABCU
+      Character*27      ABCL
+
+      Data              ABCU/'ABCDEFGHIJKLMNOPQRSTUVWXYZ-'/
+      Data              ABCL/'abcdefghijklmnopqrstuvwxyz.'/
+
+*----------------------------------------------------------------------*
+* INPUT SECTION
+*----------------------------------------------------------------------*
+
+      IRC=0
+      IDUM=-2
+
+*read command line 
+
+      Call Repar
+     *   (FMSF,NRAN,RX,RW,IRAN,OPTM,IRC) 
+      If(IRC.NE.0) then
+         Write(NERR,'(/,
+     *      ''pfw 2.3 revision 5.d'',//
+     *      ''Usage: pfw [ -hmNXRW ] [ msf-file | - ] '',
+     *      ''[ parameters ]'',//
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -h: print usage help text.'',/
+     *      ''    -m: input sequences in MSA format.'',/
+     *      ''    -N<value>:'',/
+     *      ''        number of shuffles per sequence (default:'',
+     *      '' 100).'',/
+     *      ''    -X<value>:'',/
+     *      ''        gap excision threshold (default: 0.5).'',/
+     *      ''    -R<value>:'',/
+     *      ''        random number seed, negative integer '',
+     *      ''(default: -123456789).'',/
+     *      ''    -W<value>:'',/
+     *      ''        total weight (default: 1).'',/
+     *      )')
+         Write(NERR,'(
+     *      '' valid (but deprecated) parameters are:'',/,
+     *      ''  [N=shuffles-per-seq]      use option -N instead'',/
+     *      ''  [X=gap-excision]          use option -X instead'',/
+     *      ''  [R=random-seed]           use option -R instead'',/
+     *      ''  [W=total-weight]          use option -W instead'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+
+* read msf-file
+
+C       If(FMSF.EQ.'-') then 
+C   1      Open(NMSF,Status='SCRATCH') 
+C          Do I1=1,2*IDM1
+C             If(Getc(B).NE.0) go to   2
+C             N1=Fputc(NMSF,B) 
+C          End do 
+C   2      Rewind(NMSF)
+C       End if 
+
+      If(FMSF.EQ.'-') then 
+ 1       Open(NMSF,Status='SCRATCH',Err=901)
+ 2       Continue 
+         Do I1=1,512
+            If(Getc(B).NE.0) go to 3
+            If(Ichar(B).EQ.10) then
+               Write(NMSF,'(512A)',Err=903)(CSEQ(ii1),ii1=1,I1-1)
+               Go to   2   
+            Else 
+               CSEQ(I1)=B
+            End if
+         End do  
+         Go to   2
+ 3       Rewind(NMSF)
+
+      End if 
+
+      If(OPTM) then
+         Call REMSA
+     *      (NERR,NMSF,FMSF,
+     *      IDMS,CSEQ,NSEQ,LSEQ,
+     *      IDMF,RWGT,SQID,
+     *      IRC)
+      Else
+         Call REMSF
+     *      (NERR,NMSF,FMSF,
+     *      IDMS,CSEQ,NSEQ,LSEQ,
+     *      IDMF,RWGT,SQID,
+     *      IRC)
+      End if
+      If(IRC.NE.0) go to 100
+
+* Check needed buffer size
+
+      If((NSEQ*LSEQ).GT.ICSL) go to 904
+
+*----------------------------------------------------------------------*
+* DATA PROCESSING
+*----------------------------------------------------------------------*
+
+* make sequence uppercase 
+
+      Do I1=1,LSEQ*NSEQ
+         If     (Index(ABCU,CSEQ(I1)).NE.0) then 
+            Continue
+         Else
+            IX=Index(ABCL,CSEQ(I1))
+            If(IX.GT.0) then
+               CSEQ(I1)=ABCU(IX:IX)
+            Else 
+               CSEQ(I1)='-'
+            End if
+         End if
+      End do
+
+* gap excision
+
+      NXSC=INT(RX*NSEQ)
+
+      Do I1=1,LSEQ
+         J1=I1
+         K1=0
+         Do I2=1,NSEQ
+            If(CSEQ(J1).EQ.'-') K1=K1+1
+            J1=J1+LSEQ
+         End do
+         If(K1.LE.NXSC) then 
+            LXSC(I1)=.TRUE.
+         Else
+            LXSC(I1)=.FALSE.
+         End if
+      End do
+
+* generate character set profile 
+
+      Call GCSET
+     *   (IDMS,CSEQ,NSEQ,LSEQ,
+     *   ICSL,NSET,CSET) 
+
+* major loop 
+
+* - initialize new weights
+
+*       Do  10 I1=1,NSEQ
+      RWGT(I1)=0
+ 10   Continue 
+
+      Do  20 I1=1,NRAN*NSEQ
+
+* - generate random sequences 
+
+         Call RanSQ(IRAN,ICSL,NSET,CSET,LSEQ,CSQR)
+
+* - compare random sequence to real sequences
+*
+*      NDIS(i): distance of random sequence to real sequence i  
+*      MIND   : minimal distance 
+*      KMIN   : # of real sequences with minimal distance
+*      NIND(i): indices of real sequences with minimal distance   
+
+         J3=1 
+         MIND=LSEQ
+         KMIN=0
+         Do  15 I2=1,NSEQ
+            NDIS(I2)=0
+            Do  12 I3=1,LSEQ
+               If(LXSC(I3)) then
+                  If(CSQR(I3).NE.CSEQ(J3)) NDIS(I2)=NDIS(I2)+1
+               End if
+               J3=J3+1
+ 12         Continue
+            If     (NDIS(I2).LT.MIND) then
+               MIND=NDIS(I2)
+               KMIN=1
+               NIND(1)=I2
+            Else if(NDIS(I2).EQ.MIND) then
+               KMIN=KMIN+1
+               NIND(KMIN)=I2
+            End if 
+ 15      Continue
+
+         R1=1.0/KMIN
+         Do  16 I2=1,KMIN
+            J2=NIND(I2)
+            RWGT(J2)=RWGT(J2)+R1
+ 16      Continue
+
+ 20   Continue
+
+      Do  30 I1=1,NSEQ
+         RWGT(I1)=RWGT(I1)/(NSEQ*NRAN)
+C          Write(6,'(A16,''Weight: '',F6.4)')
+C    *        SQID(I1)(1:16),RWGT(I1)  
+ 30   Continue 
+
+*----------------------------------------------------------------------*
+* OUTPUT SECTION
+*----------------------------------------------------------------------*
+
+      Rewind(NMSF)
+
+* output msa format with xpsa header
+
+      If(OPTM) then
+         K1=0
+ 40      Read(NMSF,'(A)',End=900,Err=902) RCIO
+         If(RCIO(1:1).NE.'>') go to 40
+         
+* build 'weight=value' pair
+
+ 41      K1=K1+1
+         RCTM=' weight= '
+         Write(RCTM(10:),*) RW*RWGT(K1)
+
+* remove extraoneous blanks
+
+         J1=8
+         Do I1=9,Lblnk(RCTM)
+            If(RCTM(I1:I1).NE.' ') then 
+               J1=J1+1
+               RCTM(J1:J1)=RCTM(I1:I1)
+               RCTM(I1:I1)=' '
+            End if
+         End do
+         ILTM=Lblnk(RCTM)
+
+* find and replace preexisting 'weight=value' in xpsa header
+
+         L=Lblnk(RCIO)
+         IX=Index(RCIO(1:L),' weight=')
+
+         If(IX.EQ.0) then
+            If((L+ILTM+1).GE.512) L=L-ILTM-1
+            RCIO(L+1:L+1+ILTM)=RCTM
+            Write(6,'(512A)')(RCIO(ii1:ii1),ii1=1,L+1+ILTM)
+         Else
+            Do I1=IX+7,L
+               If(RCIO(I1:I1).NE.' ') go to 45
+            End do
+ 45         Do I2=I1,L
+               If(RCIO(I2:I2).EQ.' ') go to 46
+            End do
+ 46         ROUT(1:IX)=RCIO(1:IX)
+            ROUT(IX:IX+ILTM)=RCTM
+            ROUT(IX+ILTM:)=RCIO(I2:L)
+            L=Lblnk(ROUT)
+            Write(6,'(512A)')(ROUT(ii1:ii1),ii1=1,L)
+         End if
+
+ 48      RCIO=' '
+         Read(NMSF,'(A)',Err=902,Iostat=IOS) RCIO
+         If(RCIO(1:1).EQ.'>') go to 41
+         L=Lblnk(RCIO)
+         If(L.EQ.0.AND.IOS.EQ.-1) go to 100
+         Write(6,'(512A)')(RCIO(ii1:ii1),ii1=1,L)
+         Go to  48 
+
+* output MSF format
+         
+      Else
+ 51      Read(NMSF,'(A)',End=900,Err=902) RCIO
+         L=Lblnk(RCIO)
+         Write(6,'(512A)')(RCIO(ii1:ii1),ii1=1,L)
+         If(Index(RCIO(1:L),'..').EQ.0) go to  51
+         
+         K1=1
+ 52      Read(NMSF,'(A)',End=900,Err=902) RCIO
+         L=Lblnk(RCIO)
+         IX=Index(RCIO(1:L),'Weight: ') 
+         If(IX.NE.0) then 
+            If(RW*RWGT(K1).LT.10) then
+               Write(RCIO(IX+8:),'(F6.4)') RW*RWGT(K1)
+               L=IX+13 
+            Else
+               Write(RCIO(IX+8:),*) RW*RWGT(K1)
+               L=Lblnk(RCIO) 
+            End if  
+            K1=K1+1
+         End if   
+         Write(6,'(512A)')(RCIO(ii1:ii1),ii1=1,L)
+         If(RCIO(1:2).NE.'//') go to  52
+         
+ 53      Read(NMSF,'(A)',End=100,Err=902) RCIO
+         L=Lblnk(RCIO)
+         Write(6,'(512A)')(RCIO(ii1:ii1),ii1=1,L)
+         Go to  53 
+      End if
+
+
+ 100  Call Exit(IRC)
+
+* errors
+
+ 900  Go to 100 
+
+ 901  Write(NERR,*) 'Error: Unable to create temporary file.'
+      IRC=1
+      Go to 100
+ 902  Write(NERR,*) 'Error: Unable to read MSF file.'
+      IRC=1
+      Go to 100
+ 903  Write(NERR,*) 'Error: Unable to write to temporary file.'
+      IRC=1
+      Go to 100
+ 904  Write(NERR,*) 'Error: Sequence length times sequence number ',
+     *   'exceeds buffer size (',ICSL,').'
+      IRC=1
+      Go to 100
+      End
+*----------------------------------------------------------------------*
+      Subroutine Repar
+     *   (FMSF,NRAN,RX,RW,IRAN,OPTM,IRC) 
+
+      Character*512     FMSF 
+      Character*512     CPAR
+      Logical           OPTM
+
+      NRAN=100
+      RX=0.5
+      IRAN=-123456789
+      RW=1.0
+      IRC=0
+      FMSF=' '
+      OPTM=.FALSE.
+      
+      N1=Iargc()
+      If(N1.LT.1) go to 900  
+      
+      K1=0
+      I2=1
+      Do  50 I1=1,N1
+         Call GetArg(I2,CPAR)
+         If     (CPAR(1:1).EQ.'-'.AND.CPAR(2:2).NE.' ') then
+            If(Index(CPAR,'h').NE.0) then 
+               IRC=1
+               Go to 100
+            End if
+            If(Index(CPAR,'m').NE.0) OPTM=.TRUE.
+            If(Index(CPAR,'N').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) NRAN
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) NRAN
+               End if
+            End if
+            If(Index(CPAR,'X').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RX
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RX
+               End if
+            End if
+            If(Index(CPAR,'R').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) IRAN
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) IRAN
+               End if
+            End if
+            If(Index(CPAR,'W').NE.0) then
+               If(CPAR(3:3).NE.' ') then
+                  Read(CPAR(3:),*,Err=900) RW
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CPAR)
+                  Read(CPAR,*,Err=900) RW
+               End if
+            End if
+ 
+         Else if(CPAR(1:2).EQ.'N=') then
+            Read(CPAR(3:),*,Err=900) NRAN 
+         Else if(CPAR(1:2).EQ.'X=') then
+            Read(CPAR(3:),*,Err=900) RX 
+         Else if(CPAR(1:2).EQ.'R=') then
+            Read(CPAR(3:),*,Err=900) IRAN  
+         Else if(CPAR(1:2).EQ.'W=') then
+            Read(CPAR(3:),*,Err=900) RW 
+
+         Else if(FMSF.EQ.' ') then
+            FMSF=CPAR
+         End if
+         I2=I2+1
+         If(I2.GT.N1) Go to 60         
+
+ 50   Continue
+
+ 60   If(FMSF.EQ.' ') go to 900
+      If(NRAN.LE.0) go to 900
+      If(IRAN.GT.0) IRAN=-1-IRAN
+      If(IRAN.EQ.0) IRAN=-123456789
+
+ 100  Return 
+ 900  IRC=1
+      Go to 100
+      End
+*----------------------------------------------------------------------*
+      Subroutine GCSET
+     *   (IDMS,CSEQ,NSEQ,LSEQ,
+     *   ICSL,NSET,CSET) 
+
+* CSEQ(IDMS)
+* NSET(ICSL)
+
+      Character         CSEQ(*)
+      Integer           NSET(*)
+      Character         CSET(26,ICSL)
+      
+      Do  10 I1=1,LSEQ
+         NSET(   I1)=0
+         J2=I1-LSEQ
+         Do   8 I2=1,NSEQ
+            J2=J2+LSEQ
+            Do   5 I3=1,NSET(I1)
+               If(CSEQ(J2).EQ.CSET(I3,I1)) go to   8 
+ 5          Continue
+            NSET(I1)=NSET(I1)+1
+            CSET(NSET(I1),I1)=CSEQ(J2)
+ 8       Continue
+ 10   Continue
+
+C       Do  20 I1=1,LSEQ
+C          Write(6,'(I6,'' '',26A)')
+C    *        NSET(I1),(CSET(ii1,I1),ii1=1,NSET(I1))
+C  20   Continue
+
+      Return
+      End
+*----------------------------------------------------------------------*
+      Subroutine RanSQ(IRAN,ICSL,NSET,CSET,LSEQ,CSQR)
+
+      Integer         NSET(*)
+      Character       CSET(26,ICSL) 
+      Character       CSQR(*)
+      
+      Do  10 I1=1,LSEQ
+         If(NSET(I1).EQ.0) then
+            CSQR(I1)='-'
+         Else
+            K1=RAN2(IRAN)*NSET(I1)+1
+            CSQR(I1)=CSET(K1,I1)
+         End if
+ 10   Continue
+
+      Return
+      End
+*----------------------------------------------------------------------*
+      FUNCTION RAN2(IDUM)
+      PARAMETER (M=714025,IA=1366,IC=150889,RM=1.4005112E-6)
+      DIMENSION IR(97)
+      DATA IFF /0/
+      IF(IDUM.LT.0.OR.IFF.EQ.0)THEN
+         IFF=1
+         IDUM=MOD(IC-IDUM,M)
+         DO 11 J=1,97
+            IDUM=MOD(IA*IDUM+IC,M)
+            IR(J)=IDUM
+ 11      CONTINUE
+         IDUM=MOD(IA*IDUM+IC,M)
+         IY=IDUM
+      ENDIF
+      J=1+(97*IY)/M
+      IF(J.GT.97.OR.J.LT.1) PAUSE
+      IY=IR(J)
+      RAN2=IY*RM
+      IDUM=MOD(IA*IDUM+IC,M)
+      IR(J)=IDUM
+      RETURN
+      END
+*----------------------------------------------------------------------*
+      Include          'remsf.f'
+      Include          'remsa.f'
+      Include          'lblnk.f'
diff --git a/pmali.f b/pmali.f
new file mode 100644
index 0000000..75d1d0c
--- /dev/null
+++ b/pmali.f
@@ -0,0 +1,138 @@
+*----------------------------------------------------------------------*     
+* $Id: pmali.f,v 1.5 2003/07/03 13:08:58 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine PMALI
+     *   (LPRF,CHIP,CHMP,IDMP,LSEQ,LREV,
+     *   CALI,JALB,
+     *   MK3E,MK3B,MJ1E,MJ1B,NW)
+
+      Character*01      CHIP(0:IDMP)
+      Character*01      CHMP(IDMP)
+      Character*01      CALI(*)
+      Logical           LREV
+
+* multiple match
+
+      Integer           MK3E
+      Integer           MK3B
+
+      Character*512     RCPR
+      Character*512     RCSQ
+      Character*534     RCOUT
+      
+
+* Find beginning of alignment, sequence, profile                
+
+      JB=MK3B-1
+      KB=MJ1B
+      LB=JALB
+
+C      Write(NERR,*) '***Multiple match Info (Begin)***'
+C      Write(NERR,*) 'JB: ',JB,' KB: ',KB,' LB: ',LB
+C      Write(NERR,*) 'MK3B: ',MK3B,' MJ1B: ',MJ1B,' JALB: ',JALB
+
+* Find end of alignment, sequence, profile                
+
+      JE=MK3E
+      KE=MJ1E 
+      
+C      Write(NERR,*) 'JE: ',JE,' KE: ',KE,' LALI: ',LALI
+C      Write(NERR,*) 'MK3E: ',MK3E,' MJ1E: ',MJ1E,' LALI: ',LALI
+C      Write(NERR,*) '***Multiple match Info (End)***'
+
+* Write alignment  
+
+      IX=0
+
+      Do I1=KB,KE
+
+         If(IX.GE.NW) then 
+            NPE=JB
+            If(.NOT.LREV) then 
+               NSE=LB
+C               If(RCSQ(1:1).NE.'-') NSE=NSE-1
+               NSE=NSE-1
+            Else
+               NSE=LSEQ-LB+1 
+C               If(RCSQ(1:1).NE.'-') NSE=NSE+1
+               NSE=NSE+1
+            End if
+            NPE=NPE-LPRF-1
+            NSE=NSE-LSEQ-1
+            Write(6,'(''#'')')
+            Write(RCOUT(1:),'(''# P'',I9,'' '')') NPB
+            RCOUT(14:)=RCPR(1:NW)
+            Write(RCOUT(14+NW:),'(I9)') NPE
+            Write(6,'(534A)')(RCOUT(ii1:ii1),ii1=1,NW+22)
+            Write(RCOUT(1:),'(''# S'',I9,'' '')') NSB
+            RCOUT(14:)=RCSQ(1:NW)
+            Write(RCOUT(14+NW:),'(I9)') NSE
+            Write(6,'(534A)')(RCOUT(ii1:ii1),ii1=1,NW+22)
+            Write(6,'(''#'')')    
+            IX=0
+         End if 
+
+         IX=IX+1
+         K1=Ichar(CALI(I1))
+         If     (K1.GE.65.AND.K1.LE. 90) then 
+            JB=JB+1
+            If(JB.GT.LPRF) JB=JB-LPRF
+            LB=LB+1
+            RCPR(IX:IX)=CHMP(JB)
+            RCSQ(IX:IX)=CALI(I1)
+         Else if(K1.GE.97.AND.K1.LE.122) then 
+            LB=LB+1
+            RCPR(IX:IX)=CHIP(JB)
+            RCSQ(IX:IX)=CALI(I1)
+         Else if(CALI(I1).EQ.'-') then 
+C            Write(NERR,*) 'Found a - at IX: ',IX
+            JB=JB+1
+            If(JB.GT.LPRF) JB=JB-LPRF
+            RCPR(IX:IX)=CHMP(JB)
+            RCSQ(IX:IX)=CALI(I1)
+         End if 
+         
+         If(IX.EQ.1) then
+            NPB=JB
+            If(K1.GE.97.AND.K1.LE.122) NPB=NPB+1 
+            If(.NOT.LREV) then 
+               NSB=LB
+               If(RCSQ(1:1).NE.'-') NSB=NSB-1
+            Else
+               NSB=LSEQ-LB+1 
+               If(RCSQ(1:1).NE.'-') NSB=NSB+1
+            End if
+         End if
+         
+      End do  
+
+      If(IX.GT.0) then 
+         NPE=JB
+         If(.NOT.LREV) then 
+            NSE=LB
+C            If(RCSQ(1:1).NE.'-') NSE=NSE-1
+            NSE=NSE-1
+         Else
+            NSE=LSEQ-LB+1 
+C            If(RCSQ(1:1).NE.'-') NSE=NSE+1
+            NSE=NSE+1
+         End if
+         NPE=NPE-LPRF-1
+         NSE=NSE-LSEQ-1
+         Write(6,'(''#'')')    
+         RCPR(IX+1:)=' '
+         RCSQ(IX+1:)=' '
+         Write(RCPR(IX+1:IX+10),'(I9)') NPE
+         Write(RCSQ(IX+1:IX+10),'(I9)') NSE
+         IX=IX+9
+         Write(6,'(''# P'',I9,'' '',512A)')
+     *      NPB,(RCPR(ii1:ii1),ii1=1,IX)
+         Write(6,'(''# S'',I9,'' '',512A)')
+     *      NSB,(RCSQ(ii1:ii1),ii1=1,IX)
+      End if
+      Write(6,'(''#'')')    
+
+      Return 
+      End
diff --git a/prali.f b/prali.f
new file mode 100644
index 0000000..2c57d42
--- /dev/null
+++ b/prali.f
@@ -0,0 +1,144 @@
+*----------------------------------------------------------------------*     
+* $Id: prali.f,v 2.8 2003/07/03 13:08:58 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine PRALI
+     *   (LPRF,CHIP,CHMP,IDMP,LSEQ,LREV,
+     *   CALI,LALI,JALB,JALE,NW)
+
+      Character*01      CHIP(0:IDMP)
+      Character*01      CHMP(IDMP)
+      Character*01      CALI(*)
+      Logical           LREV
+
+      Character*512     RCPR
+      Character*512     RCSQ
+      Character*534     RCOUT
+      
+
+* Find beginning of alignment, sequence, profile                
+
+      JB=0
+      KB=1 
+      Do I1=1,LALI
+         If(CALI(I1).EQ.'-') then 
+            JB=JB+1
+            If(JB.GT.LPRF) JB=JB-LPRF
+            KB=KB+1
+         Else 
+            Go to   2
+         End if 
+      End do 
+ 2    LB=JALB 
+  
+C      Write(NERR,*) 'JB: ',JB,' KB: ',KB,' LB: ',LB
+
+* Find end of alignment, sequence, profile                
+
+      JE=LPRF
+      KE=LALI 
+      Do I1=LALI,KB+1,-1
+         If(CALI(I1).EQ.'-') then 
+            JE=JE-1
+            KE=KE-1
+         Else 
+            Go to   3
+         End if 
+      End do 
+ 3    Continue
+      
+C      Write(NERR,*) 'JE: ',JE,' KE: ',KE,' LALI: ',LALI
+
+* Write alignment  
+
+      IX=0
+
+      Do I1=KB,KE
+
+         If(IX.GE.NW) then 
+            NPE=JB
+            If(.NOT.LREV) then 
+               NSE=LB
+C               If(RCSQ(1:1).NE.'-') NSE=NSE-1
+               NSE=NSE-1
+            Else
+               NSE=LSEQ-LB+1 
+C               If(RCSQ(1:1).NE.'-') NSE=NSE+1
+               NSE=NSE+1
+            End if
+            NPE=NPE-LPRF-1
+            NSE=NSE-LSEQ-1
+            Write(6,'(''#'')')
+            Write(RCOUT(1:),'(''# P'',I9,'' '')') NPB
+            RCOUT(14:)=RCPR(1:NW)
+            Write(RCOUT(14+NW:),'(I9)') NPE
+            Write(6,'(534A)')(RCOUT(ii1:ii1),ii1=1,NW+22)
+            Write(RCOUT(1:),'(''# S'',I9,'' '')') NSB
+            RCOUT(14:)=RCSQ(1:NW)
+            Write(RCOUT(14+NW:),'(I9)') NSE
+            Write(6,'(534A)')(RCOUT(ii1:ii1),ii1=1,NW+22)
+            IX=0
+         End if 
+
+         IX=IX+1
+         K1=Ichar(CALI(I1))
+         If     (K1.GE.65.AND.K1.LE. 90) then 
+            JB=JB+1
+            If(JB.GT.LPRF) JB=JB-LPRF
+            LB=LB+1
+            RCPR(IX:IX)=CHMP(JB)
+            RCSQ(IX:IX)=CALI(I1)
+         Else if(K1.GE.97.AND.K1.LE.122) then 
+            LB=LB+1
+            RCPR(IX:IX)=CHIP(JB)
+            RCSQ(IX:IX)=CALI(I1)
+         Else if(CALI(I1).EQ.'-') then 
+            JB=JB+1
+            If(JB.GT.LPRF) JB=JB-LPRF
+            RCPR(IX:IX)=CHMP(JB)
+            RCSQ(IX:IX)=CALI(I1)
+         End if 
+         
+         If(IX.EQ.1) then
+            NPB=JB
+            If(K1.GE.97.AND.K1.LE.122) NPB=NPB+1 
+            If(.NOT.LREV) then 
+               NSB=LB
+               If(RCSQ(1:1).NE.'-') NSB=NSB-1
+            Else
+               NSB=LSEQ-LB+1 
+               If(RCSQ(1:1).NE.'-') NSB=NSB+1
+            End if
+         End if
+         
+      End do  
+
+      If(IX.GT.0) then 
+         NPE=JB
+         If(.NOT.LREV) then 
+            NSE=LB
+C            If(RCSQ(1:1).NE.'-') NSE=NSE-1
+            NSE=NSE-1
+         Else
+            NSE=LSEQ-LB+1 
+C            If(RCSQ(1:1).NE.'-') NSE=NSE+1
+            NSE=NSE+1
+         End if
+         NPE=NPE-LPRF-1
+         NSE=NSE-LSEQ-1
+         Write(6,'(''#'')')    
+         RCPR(IX+1:)=' '
+         RCSQ(IX+1:)=' '
+         Write(RCPR(IX+1:IX+10),'(I9)') NPE
+         Write(RCSQ(IX+1:IX+10),'(I9)') NSE
+         IX=IX+10
+         Write(6,'(''# P'',I9,'' '',512A)')
+     *      NPB,(RCPR(ii1:ii1),ii1=1,IX)
+         Write(6,'(''# S'',I9,'' '',512A)')
+     *      NSB,(RCSQ(ii1:ii1),ii1=1,IX)
+      End if
+      Write(6,'(''#'')')    
+
+      Return 
+      End
diff --git a/profile.txt b/profile.txt
new file mode 100644
index 0000000..596b94c
--- /dev/null
+++ b/profile.txt
@@ -0,0 +1,1622 @@
+
+
+
+
+
+
+
+           A GENERALISED PROFILE SYNTAX FOR PROTEIN AND NUCLEIC ACID
+                                SEQUENCE MOTIFS
+
+
+
+
+
+                             Version 1.3, May 1997
+
+
+
+
+
+   Philipp Bucher
+   Biocomputing Group
+   Swiss Institute for Experimental Cancer Research
+   1066 Epalinges s/Lausanne
+   Switzerland
+
+   Telephone: (+41 21) 692 58 92
+   Electronic mail address: pbucher at isrec-sun1.unil.ch
+
+
+
+
+
+   This document may be copied and redistributed freely, without advance per-
+   mission, provided that this statement is reproduced with any copy.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<PAGE>
+
+
+                                  INTRODUCTION
+
+
+   This document describes a general syntax to express a  quantitative,  pri-
+   mary structure-based protein or nucleic acid sequence motif.  The designa-
+   tion `quantitative' means that a motif description  assigns  a  degree  of
+   similarity  to  a  potential  match rather than a binary status of true or
+   false. The restriction `primary structure-based' implies that  the  proba-
+   bility of finding a specific residue at one position is independent of any
+   residue occurring at another position.
+
+   The generalised profile syntax has been designed for and will be  used  in
+   future releases of the PROSITE data bank.  In addition, it will be used in
+   a similar data bank  of  nucleic  acid  sequence  motifs  currently  under
+   development  by  the  author. Other researchers working on sequence motifs
+   are encouraged to use the same format for their own motif collections, and
+   may include this document in a public distribution release.
+
+   The term `generalised profile syntax' is meant to indicate that  the  pro-
+   posed  data  structure  represents  a  generalisation  of the profile type
+   described by Gribskov et al. [1]. However, similar motif descriptors  have
+   been  introduced by others under different names, e.g. weight matrices [2]
+   or flexible patterns [3].
+
+   The following terminology is adopted in this document:
+
+   -  The term `profile' refers to a quantitative motif description based  on
+      the generalised profile syntax.
+   -  The term `pattern' refers to a qualitative motif description based on a
+      regular  expression-like  syntax such as the one currently used in PRO-
+      SITE entries marked as PATTERN.
+   -  The term `motif' refers to the biological object one  attempts  to  ap-
+      proximate by a pattern or a profile.
+
+   Note that the PROSITE data bank reserves the token MATRIX to identify  en-
+   tries containing profiles.
+                                     * * *
+
+   The design of the new profile structure has been guided by various biolog-
+   ical  and  technical  considerations.  High priority has been given to the
+   following principles:
+
+        A) Syntactic versatility
+
+   The syntax should be versatile enough to cover a large variety of biologi-
+   cally  relevant  motifs.  In particular, it should be be possible to accu-
+   rately represent the following objects:
+
+   -  Signatures for various types and levels of protein taxons.
+   -  Highly degenerate protein structural and functional domains such as the
+      immunoglobulin domains, or the SH2 and SH3 domains.
+   -  Consensus sequences of interspersed repetitive DNA elements (SINEs  and
+      LINEs).
+   -  Basic gene expression signals, e.g. promoter elements,  RNA  processing
+      signals, translational initiation sites.
+   -  Recognition motifs of a large variety of sequence-specific  DNA-binding
+      proteins.
+   -  Protein and nucleic acid compositional domains, e.g. glutamine-rich ac-
+      tivation domains, CpG islands.
+
+
+
+<PAGE>
+
+
+
+        B) Determinative search instructions
+
+   The profile syntax should have the capacity to encode precise and complete
+   instructions  for  a  motif  search. Ideally, the result of a motif search
+   should be determined by the profile and a sequence alone, i.e. not  depend
+   on parameters of the search method. In practice, this goal may only be ap-
+   proximately achieved due to ambiguities arising with multiple locally  op-
+   timal profile-sequence alignments (see Section 2).
+
+   Notes:
+
+   -  In other implementations of similar methods, e.g. GCG profiles or HMMER
+      Hidden  Markov  models software, different search methods are available
+      as options and parameters of the search programs rather than as syntac-
+      tic features of the motif description itself.  For the profiles in PRO-
+      SITE, inclusion of determinative search instructions is a necessity be-
+      cause  otherwise  the  information given on the NR lines (statistics of
+      true and false positives/negatives) would have no meaning.
+   -  The notion of determinative search instructions is not meant to imply a
+      specific  search  algorithm.   There  is  space for different technical
+      solutions to achieve the same result.
+
+        C) Openness to different interpretations
+
+   A profile syntax is situated at the interface between a  motif  definition
+   and  a motif search method.  As such it can serve as a melting pot for in-
+   tegrating complementary efforts.  While a rigid meaning vis-a-vis a search
+   method  is  desirable, flexibility with regard to motif definition methods
+   is equally important. In order to achieve such flexibility, it  is  essen-
+   tial  that  the  profile  parameters remain open to a variety of different
+   theoretical interpretations implicit in different methodologies.
+
+   Relevant motif definition techniques may include both  comparative  struc-
+   tural  and  wet  biochemical  approaches.  It is thus conceivable that the
+   same type of numeric profile parameter may  reflect  log-probabilities  in
+   one  case, and binding energies in another.  A profile syntax must be neu-
+   tral in this respect in order to be generally acceptable to a  heterogene-
+   ous  research  community relying on different rationales for motif defini-
+   tion.
+
+        D) Compatibility with existing search methods
+
+   As a profile is required to encode determinative directives  for  a  motif
+   search,  the underlying syntax should have the capacity to emulate most of
+   the commonly used motif search techniques, such as:
+
+   -  Search for PROSITE patterns.
+   -  Search for fixed-length weight matrices without gaps [2].
+   -  Search for complex motifs  defined  by  multiple  weight  matrices  and
+      variable-length linkers [4].
+   -  Gribskov's profile alignment algorithm [1].
+   -  Barton's alignment algorithm for flexible patterns [3].
+   -  Viterbi algorithm for the hidden Markov model architecture described in
+      [5].
+   - The domain and fragment search algorithms implemented in the HMMER  pro-
+      grams hmmls and hmmfs, respectively [10].
+
+   This requirement stems from two beliefs: (i) that the bewildering  variety
+   of  motif search methods described in the literature can be understood and
+   reformulated as special cases of a more general method; (ii) that such  an
+
+<PAGE>
+
+
+   exercise  will  facilitate communication between different groups and will
+   lead to new theoretical insights.
+
+   Notes:
+
+   -  With the exception of Barton's algorithm  for  flexible  patterns,  the
+      capacity  of the generalised profile syntax to emulate the search tech-
+      niques listed above has been verified by experiment.
+
+                                     * * *
+
+   The remaining part of this document is organised as follows:
+
+   -  Section 1 explains the basic components of a profile which  are  likely
+      to remain stable for several years.
+   -  Section 2 presents accessory features necessary to encode complete  in-
+      structions for a motif search. This part of the syntax may be gradually
+      expanded in the future.
+   -  Section 3 describes a specific machine-readable format  which  will  be
+      used  in  PROSITE  and  a  similar  data  bank of nucleic acid sequence
+      motifs.
+   -  Section 4 shows two illustrative examples, one from  the  nucleic  acid
+      and one from the protein world.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<PAGE>
+
+
+                    1) BASIC PROFILE STRUCTURE AND FUNCTION
+
+   In abstract terms, a generalised profile can be described as an  alternat-
+   ing  sequence  of  `match' and `insert' positions.  Match and insert posi-
+   tions contain complementary sets  of  numeric  parameters  called  profile
+   scores.  The  values assigned to these parameters may be different at each
+   position.  In reality, a profile  resembles  a  two-dimensional  table  of
+   numbers.
+
+   From an other perspective, a profile may also be viewed  as  a  degenerate
+   molecular sequence.  The match positions correspond to residues which typ-
+   ically occur in such a sequence.  The insert  positions  represent  places
+   where additional residues can optionally be inserted.
+
+   The function of a profile is to align itself to a real sequence and to as-
+   sign  a  number  to  such  an alignment.  This number is called similarity
+   score or alignment score and serves to evaluate the significance of a  po-
+   tential motif occurrence.
+
+   The notion of a profile match cannot be separated from that of  an  align-
+   ment.  The alignment is not only a prerequisite for computing a similarity
+   score, it also expresses a specific interpration of  the  sequence  match.
+   For  instance,  if  the  profile involved represent a protein domain where
+   certain positions are associated  with  specific  functions,  e.g.   metal
+   ion-binding  capacities  or  catalytic  roles, then the alignment will map
+   these functions onto individual residues of the sequence.
+
+   The basic components of a profile are those which are necessary  for  com-
+   puting  a  similarity score. To prevent possible misunderstandings, it has
+   to be stressed that a profile defines a score for any alignment, not  just
+   for  an optimal alignment.  The concept of an optimal alignment relates to
+   motif search strategies and is totally irrelevant in this Section.
+
+
+   1.1) Definition of a profile-sequence alignment
+
+   It is useful to introduce a profile-sequence alignment with the aid of the
+   path  matrix  representation.   The following diagram defines an alignment
+   between a sequence and a profile.
+
+                            S   E   Q   U   E   N   C   E
+                          .   .   .   .   .   .   .   .   .
+                       p
+                          .   .   .   .   .   .   .   .   .
+                       r    \
+                          .   . _ . _ .   .   .   .   .   .
+                       o                \
+                          .   .   .   .   .   .   .   .   .
+                       f                    \
+                          .   .   .   .   .   .   .   .   .
+                       i                      |
+                          .   .   .   .   .   .   .   .   .
+                       l                        \
+                          .   .   .   .   .   .   .   .   .
+                       e
+                          .   .   .   .   .   .   .   .   .
+
+   The capital letters represent sequence residues,  the  lower-case  letters
+   represent  profile  match  positions.   Profile  insert  positions are not
+   marked by symbols.  They occur at the beginning, at the end,  and  between
+   any pair of consecutive match positions of the profile.
+
+<PAGE>
+
+
+
+   The path marked by horizontal, vertical, and  diagonal  bars  defines  the
+   following alignment:
+
+                                 S E Q U E - N
+                                 r - - o f i l
+
+   Such an alignment can also be defined by a sequence  of  path  matrix  co-
+   ordinates.  By convention, the upper left corner of the matrix is assigned
+   co-ordinates (0,0).  Note that path matrix co-ordinates correspond to pro-
+   file  insert  positions  rather  than match positions. Likewise, they fall
+   between consecutive residues of the sequence.  The above alignment is  de-
+   fined by the following co-ordinate sequence.
+
+         (1,0) , (2,1) , (2,2) , (2,3) , (3,4) , (4,5) , (5,5) , (6,6)
+
+   In general, a co-ordinate sequence
+
+   (i ,j ) , (i ,j ) , ... , (i ,j )
+     0  0      1  1            L  L
+
+   defines a valid sequence alignment between a profile of length N and a se-
+   quence of length M if and only if:
+
+       {      0 <= i  <= N  AND  0 <= j  <= M }  for  0 <= k <= L
+                    k                  k
+   AND
+       {    ( i  + 1 = i    AND j  + 1 = j
+               k        k+1      k        k+1
+
+         OR ( i      = i    AND j  + 1 = j
+               k        k+1      k        k+1
+
+         OR ( i  + 1 = i    AND j      = j    }  for  0 <= k <= L-1 .
+               k        k+1      k        k+1
+   Notes:
+
+   -  The above definition encompasses both global and local types of  align-
+      ments.  In  the  following,  it is not necessary to distinguish between
+      these two alternatives.  A global alignment may simply be viewed  as  a
+      limit case of a local alignment.
+   -  The alignment definition underlying generalised profiles is  equivalent
+      to  the path definition of hidden Markon models in the following sense:
+      (i) for a sequence and a profile of given lengths M,N,  the  number  of
+      possible alignments is exactly identical to the number of paths through
+      which an HMM of length N can generate sequences of length M, (ii) there
+      is  an  obvious  one-to-one mapping between profile-sequence alignments
+      and paths through HMMs; see also [9].
+
+
+   1.2) Definition of the similarity score
+
+   The similarity score of a profile sequence-alignment is  the  sum  of  the
+   scores assigned to its scorable components.  The scorable components of an
+   alignment are:
+
+   -  the beginning
+   -  each extension step
+   -  each state transition
+   -  the end
+
+
+<PAGE>
+
+
+   Some of these terms need further explanation.
+
+   An extension step occurs between any pair of consecutive path  matrix  co-
+   ordinates.  There  are  three different types of extension steps: `match',
+   `insert', and `deletion'  steps.  In  the  above  diagram,  diagonal  bars
+   correspond  to match extension steps, horizontal bars correspond to insert
+   extension steps, and vertical bars correspond to deletion extension steps.
+   The number of extension steps defines the length of the alignment.
+
+   The type of an extension step is also called a state. Each extension  step
+   is thus associated with a match, insert, or deletion state.  At the begin-
+   ning, an alignment is in `initiation' state.  At the end, it is in `termi-
+   nation'  state.   Initiation,  match,  insert,  deletion,  and termination
+   states will be symbolised by the letters B, M, I, D, and E, respectively.
+
+   A state transition occurs between any two consecutive alignment components
+   associated  with a state. Thus, there is one state transition for each co-
+   ordinate pair of the alignment, including the first  and  the  last.  Note
+   that  this  definition  implies  that state transitions also occur between
+   identical states.
+
+   In summary, an alignment of length L has:
+
+      1  beginning
+      L  extensions steps
+    L+1  state transitions
+      1  termination
+   --------------------------------------------------------------------------
+   2L+3  scorable components in total.
+
+   All component scores are provided by the profile  in  a  position-specific
+   manner.   Therefore, the similarity score does not depend on any parameter
+   of an alignment method.  The types and functions of profile scores are now
+   explained.
+
+   The scores assigned to the beginning and end of the alignment  are  called
+   `initiation'  and  `termination'  scores.  These  scores are distinct from
+   those assigned  to  the  first  and  last  state  transition  though  they
+   correspond  to  the same path matrix co-ordinates.  There are two types of
+   scores for each class.  The `external' initiation  score  applies  to  co-
+   ordinates  at  the  beginning  of the sequence.  The `internal' initiation
+   score applies to all other co-ordinates.  External and  internal  termina-
+   tion  scores  are defined analogously.  The function of these scores is to
+   flexibly encode local or global alignment  scoring  modes.   In  addition,
+   they  may  serve to anchor a motif at the beginning or at the end of a se-
+   quence.
+
+   The scores for extension steps comprise  three  classes:  match  extension
+   scores,  insert extension scores, and deletion extension scores. Match and
+   insert extension scores are  residue-specific  because  the  corresponding
+   alignment steps span one sequence residue.  By contrast, there is only one
+   deletion extension score per profile position because  deletion  steps  do
+   not involve sequence residues.
+
+   There are 16 different types of state transition scores for  all  possible
+   transitions from an element of {B,M,I,D} to an element of {M,I,D,E}. State
+   transition scores serve similar functions as gap opening  penalties  in  a
+   sequence-sequence alignment.
+
+
+
+
+<PAGE>
+
+
+
+   1.3) Basic profile structure
+
+   The basic profile structure follows almost conclusively from the  forgoing
+   definitions  of  a  profile-sequence  alignment  and its similarity score.
+   What remains to be clarified are a few details.
+
+   A profile is based on a particular alphabet.  The alphabet is considered a
+   basic constituent of the profile because it determines the exact number of
+   parameters per insert and match position.
+
+   The two standard character sets for biomolecular patterns are:
+
+   -  {A,C,G,T}                                      for nucleic acid motifs.
+   -  {A,B,C,D,E,F,G,H,I,K,L,M,N,P,Q,R,S,T,V,W,Y,Z}  for protein  motifs.
+
+   Other alphabets, e.g. alphabets including ambiguous codes for nucleotides,
+   may be useful in particular circumstances.
+
+   There is one insert and one match extension score for  each  character  of
+   the  alphabet.   In practice, it is useful to define one additional insert
+   and match extension score to deal with unexpected characters appearing  in
+   real sequences.
+
+   Some of the previously introduced profile scores are associated  with  in-
+   sert  positions,  others  with match positions.  A look at the path matrix
+   diagram makes clear which type of score is associated with which  type  of
+   profile position.
+
+   An insert position of a profile based on a K-letter alphabet contains  the
+   following parameters:
+
+      1  external initiation score
+      1  internal initiation score
+     16  state transition scores for all transitions between
+         elements of {B,M,I,D} and {M,I,D,E}
+      K  insert extension scores for each character of the alphabet
+      1  insert extension score for an unexpected character
+      1  internal termination score
+      1  external termination score
+   --------------------------------------------------------------------------
+   K+21  insert position scores in total
+
+   A match position of a profile based on a K-letter  alphabet  contains  the
+   following parameters.
+
+      K  match extension scores for each letter of the alphabet
+      1  match extension score for an unexpected character
+      1  deletion extension score
+   --------------------------------------------------------------------------
+   K+ 2  match position scores in total
+
+   Admissible values for profile scores are any integer or real number plus a
+   special value representing a forbidden alignment step.  This value will be
+   called `low-value' and behaves like minus infinity in mathematical  opera-
+   tions.
+
+   A profile has also a defined topology, either linear  or  circular.   Most
+   profiles  will  be  linear.   Circular profiles may represent motifs which
+   consist of a variable number of tandemly  repeated  units.   Note  that  a
+   linear profile begins and ends with an insert position.
+
+<PAGE>
+
+
+
+   Notes:
+
+   -  The above list of position-specific profile scores represents the  max-
+      imum number of supported features. Real profiles derived with an exist-
+      ing method will rarely use all of them.  Concise  representation  of  a
+      profile  can be achieved through specification of appropriate defaults;
+      see examples in Section 4.
+   -  There is some redundancy in the implemented parameter set allowing  for
+      alternative  representations of functionally equivalent profiles.  This
+      freedom could be used for scaling profile scores in units related to  a
+      particular mathematical or physical interpretation, e.g.  probabilities
+      of a hidden Markov model or thermodynamic quantities.
+   -  The above definition of a sequence alignment  assumes  linear  topology
+      for  both  the profile and the sequence. Generalisation to circular to-
+      pology is straightforward.  An alignment between a circular profile and
+      a linear sequence, or between a linear profile and a circular sequence,
+      corresponds to a path on a cylindrical surface.  An alignment between a
+      circular  profile  and  a  circular sequence corresponds to a path on a
+      torus.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<PAGE>
+
+
+                             2) PROFILE ACCESSORIES
+
+   The primary purpose of a profile is to identify as  reliably  as  possible
+   biologically  relevant  motif occurrences in new sequences. The basic pro-
+   file structure described in the previous Section is not sufficient to  de-
+   fine  a  rational  search  strategy  to  this  end.  The accessory profile
+   features presented here fill this  gap.  Appropriately  interpreted,  they
+   complement  the  position-specific profile scores to provide determinative
+   instruction for a motif search.  In addition, they guide the  interpration
+   of potential matches.
+
+
+   2.1) Cut-off value
+
+   For a profile and a sequence of typical lengths, there  is  a  very  large
+   number of possible alignments.  At most a few of them will be biologically
+   relevant. The function of a cut-off value is to a priori exclude  a  large
+   number  of alignments from further consideration by a profile search algo-
+   rithm. The fate of the remaining alignments with similarity scores greater
+   than  or equal to the cut-off value depends on a specific disjointness de-
+   finition applied; see below.
+
+   An important aspect of a cut-off value is  that  it  gives  a  qualitative
+   meaning  to a profile.  This is a prerequisite for statistics on false po-
+   sitives and false negatives obtained in a database  search,  as  currently
+   provided by PROSITE.
+
+   In certain situations, it is useful to supply more than one cut-off value,
+   partitioning the range of alignment scores into multiple areas.  The areas
+   may correspond to different degrees of certainty, ranges  of  evolutionary
+   distance, or levels of physiological activity.
+
+
+   2.2) Score normalisation instructions
+
+   The profile-alignment scores defined in the previous  Section  are  called
+   raw  scores.  In  most  cases, they will not lend themselves to meaningful
+   biological interpretations and will therefore not be very helpful  in  the
+   interpretation  of  a  potential match.  In practice, one is interested in
+   questions like: What is the probability of finding a match  of  a  certain
+   score  in  a  random  sequence?  How does the similarity score relate to a
+   measurable property of the biological object? The purpose of normalisation
+   instructions  is  to convert the raw score into directly interpretable un-
+   its.
+
+   There may be multiple normalisation modes for the same profile,  each  one
+   associated  with  a  different  mathematical,  physical, or biological in-
+   terpretation; see examples in Section 4.
+
+   Normalisation functions are required to preserve  the  ranking  of  scores
+   pertaining to alternative alignments between the same profile and the same
+   sequence.  However, since normalisation functions may depend  on  sequence
+   parameters such as length and residue composition, they will generally not
+   preserve the order of scores pertaining  to  matches  from  different  se-
+   quences arising in a database search.
+
+   Notes:
+
+   -  Cut-off values may be defined in raw score units  or  normalised  score
+      units.
+
+
+<PAGE>
+
+
+   -  Programs may rely on normalised rather  than  raw  scores  for  various
+      operation, e.g. sorting of accepted matches in a database search.
+   -  An expanding list of normalisation functions is presented  in  Appendix
+      B.
+
+
+        2.3) Disjointness definitions
+
+   There are situations where only a single best alignment and its similarity
+   score  are  of  interest.  This arises for instance with a profile serving
+   exclusively as a signature for a protein  family.   More  frequently,  the
+   same  motif  may  occur  more  than once in a given sequence, and each oc-
+   currence will be of interest.
+
+   In the first case, the motif search problem is simple and can be solved by
+   a  standard  optimal  alignment algorithm such as described in [1]. In the
+   second case, the task is more difficult and needs to be explained in  more
+   detail.
+
+   At first glance, the problem seems to  be  to  find  all  profile-sequence
+   alignments  with  similarity  scores  greater than or equal to the cut-off
+   value.  However, such an approach would not yield useful results because a
+   high  scoring alignment typically belongs to a large group of very similar
+   alignments with comparable scores. Two members of such a group may  differ
+   only  by  an  additional  extension  step at one end of one alignment.  In
+   sequence-sequence  comparisons,  a  cluster  of  related   alignments   is
+   represented  by  a single highest scoring member.  This seems a reasonable
+   procedure for profiles too.
+
+   As a second approximation, one could therefore define the task of  finding
+   multiple profile matches in the same sequence as one of finding as many as
+   possible, locally optimal, but mutually disjoint  alignments  with  scores
+   greater than or equal to the cut-off value.  What is still missing in such
+   a statement of the problem is a precise definition of disjointness  and  a
+   tie-braking  rule  to  choose between equally high-scoring alignments. The
+   former is of fundamental importance and needs to be addressed  here.   The
+   latter  may  be  considered a property of a specific algorithm and thus is
+   beyond the scope of this document.
+
+   There are many possible ways to define  disjointness  of  two  alignments.
+   The  algorithms  described for finding multiple locally optimal alignments
+   between pairs of sequences consider two alignments disjoint if  they  have
+   no  extension  step  in common [6,7].  The two alignments specified in the
+   path matrix diagram below illustrate this notion of disjointness.
+
+                            S   E   Q   U   E   N   C   E
+                          .   .   .   .   .   .   .   .   .
+                       p        \
+                          .   .   . _ .   .   .   .   .   .
+                       r    \           \
+                          .   .   .   .   .   .   .   .   .
+                       o      |             \
+                          .   .   .   .   .   .   .   .   .
+                       f        \               \
+                          .   .   . _ .   .   .   . _ . _ .
+                       i                \
+                          .   .   .   .   .   .   .   .   .
+                       l                    \
+                          .   .   .   .   .   .   .   .   .
+                       e                        \
+                          .   .   .   .   .   .   .   .   .
+
+<PAGE>
+
+
+
+   However, such a definition will not be adequate for many motif search  ap-
+   plication  because  it allows the same sequence residue to be matched with
+   different profile positions. Imagine the  case  of  a  protein  structural
+   domain.   There,  it is inconceivable that the same residue simultaneously
+   participates in the formation of two physically distinct domains,  occupy-
+   ing different places within these domains.
+
+   There may be no single disjointness definition adequate for all  kinds  of
+   biological  sequence  motifs which can be characterised by a profile.  For
+   this and other reasons, a specific notion of disjointness  is  viewed  and
+   implemented  as  a profile-inherent property rather than a variable of the
+   alignment method.  In some cases, a  particular  definition  may  even  be
+   derived  from a measurable property of the biological object. The conclud-
+   ing example illustrates this point.
+
+   The DNA recognition site of mammalian transcription factor Sp1 is about 14
+   bp  long and can be fairly accurately represented by a conventional weight
+   matrix.  Experiments have shown that the minimal center-to-center distance
+   for  two sites to be simultaneously occupied by two proteins is 10 bp. For
+   a profile representing an Sp1 binding site, an appropriate  criterion  for
+   disjointness  would  require  that  the sequence segments aligned with the
+   central 10 bp region of the recognition motif do not overlap.
+
+   Notes:
+
+   -  The problems related to disjoint alignments are not  specific  to  pro-
+      files.  They also occur with qualitative variable-length patterns based
+      on a regular expression-like syntax.
+   -  An expanding list of alternative disjointness definitions is  presented
+      in Appendix A.
+   -  The algorithms for multiple pairwise sequence alignments  described  in
+      [6,7]  can  easily be adjusted to the disjointness definitions proposed
+      in Appendix A.
+   -  Another principle for parsing multiple matches between an HMM and a se-
+      quence is implemented in the HMMER programs hmmls and hmmfs [10].
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<PAGE>
+
+
+                     3) A MACHINE-READABLE TEXT FILE FORMAT
+
+   This Section describes the format conventions used  in  the  PROSITE  data
+   bank for representation of profiles
+
+
+   3.1) General format of the MA line
+
+   The current PROSITE database reserves the MA  line  code  for  information
+   specific to matrix entries.
+
+   A profile typically extends over many MA lines.  The general format  of  a
+   block of consecutive MA lines is as follows:
+
+   MA   /KEYWORD: parameter=value; parameter=value; ... ; /KEYWORD:
+   MA   parameter=value; parameter=value; ... ; /KEYWORD: ...
+
+   The text is substructured into so-called data blocks, each  one  beginning
+   with  a  keyword followed by a list of parameter specifications.  Keywords
+   identify different types of data blocks with characteristic parameter sub-
+   sets.  The  keywords  at  the beginning of each data block are enclosed by
+   slash on the left side and by colon on the right side.  Individual parame-
+   ter  specifications are delimited by semicolon.  There is also a semicolon
+   at the end of each data block containing at least one parameter specifica-
+   tion.
+
+   A single word, quoted string, or number must be contained within one line.
+   Otherwise,  there  are  no  rules guiding the placement of text units onto
+   physical lines. Within one block, the parameter specifications can  appear
+   in any order.
+
+   The following keywords define valid data block types:
+
+   /GENERAL_SPEC:      General specifications.
+   /DISJOINT:          Disjointness definition for multiple matches.
+   /NORMALIZATION:     Score normalisation instructions.
+   /CUT_OFF:           Recommended cut-off value(s).
+   /DEFAULT:           Defaults for position specific profile parameters.
+   /I:                 Profile insert position.
+   /M:                 Profile match position.
+
+
+   3.2) The formats of different data block types
+
+        3.2.1) The GENERAL_SPEC data block
+
+   The GENERAL_SPEC data block provides general information  about  the  pro-
+   file.  It has the following format:
+
+   /GENERAL_SPEC: ALPHABET=string;
+                 [ LENGTH=length; TOPOLOGY=topology; BEGIN=begin; END=end ]
+                 [ LOG_BASE=log_base; P0=p0; P=random_model ]
+
+   where:
+
+   -  `string' is a quoted character string defining the  character  set  for
+      which,  and  the order in which, position-specific match and insert ex-
+      tension scores are provided in subsequent M and I data blocks.
+   -  `length' is the length of the profile defined as the  total  number  of
+      match positions.
+
+
+<PAGE>
+
+
+   -  `topology' is one of the alternative words LINEAR or CIRCULAR.
+   -  `begin' is an integer indicating the match position withing the profile
+      where  the  described biological object begins (implying that positions
+      before `begin' characterise  contextual  constraints).   This  together
+      with the END feature may be useful for profiles characterising biologi-
+      cal objects such as transmembrane helices in proteins, or exons in gene
+      sequences.   As  an  instruction to software, this parameter means that
+      sequence residues matching profile positions before the  `begin'  posi-
+      tion should not be reported as being part of the biological object.
+   -  `end' is an integer indicating the match position  within  the  profile
+      where  the biological object ends; see also remarks on previous parame-
+      ter.
+   -  `log_base' is the logarithmic base that should be used when translating
+      the  generalised  profile  (back)  into an HMM, see [9].  Popular loga-
+      rithmic bases for the representation of HMMs, null-models, substitution
+      matrices, etc. are tabulated in APPENDIX C.
+   -  `p0' is a real number between 0 and  1  defining  the  insert-to-insert
+      state  transition probability of the null-model that should be used for
+      translating the generalised profile (back) into an HMM; see  [9].  This
+      parameter  defines  a  geometric  length distribution over the sequence
+      space.
+   -  `random-model' is a real  number,  or  comma  separated  list  of  real
+      numbers,  defining the residue emission probabilities of the null-model
+      that should be used for translating the generalised profile (back) into
+      an  HMM;  see  [9]. These numbers are not required to sum to 1 and thus
+      should be renormalised by programs on input.  In  PROSITE,  the  random
+      model is usually given as percent amino acid frequencies.
+
+   The GENERAL_SPEC data block is mandatory and precedes any DEFAULT, M or  I
+   data block.
+
+   Implicit defaults:
+
+   -  TOPOLOGY=LINEAR;
+
+   Example:
+
+   MA   /GENERAL_SPEC: ALPHABET='ACGT';
+
+   Notes:
+
+   -  The optional LENGTH parameter is purely informative and redundant.  The
+      actual  length  of the profile is given by the sequence of subsequent I
+      and M data blocks.
+
+
+        3.2.2) The DISJOINT data block
+
+   The DISJOINT data block provides a definition of disjointness for multiple
+   profile-sequence  alignments,  or indicates that only one globally optimal
+   alignment is of interest.  It has the following format:
+
+   /DISJOINT: DEFINITION=name; parameters;
+
+   where:
+
+   -  `name' is a word from a controlled vocabulary identifying  one  of  the
+      supported disjoint definitions listed in Appendix A.
+   -  `parameters' is a list of parameter specifications for the  correspond-
+      ing  disjointness  definition. Note that different disjointness defini-
+      tions depend on different parameter sets; see APPENDIX A.
+
+<PAGE>
+
+
+
+   The DISJOINT data block is mandatory.
+
+   Example:
+
+   MA   /DISJOINT: DEFINITION=PROTECT; N1=12; N2=40;
+
+   Notes:
+
+   -  Some disjointness definitions are parameter-free.  In  this  case,  the
+      list of parameter specifications is empty.
+   -  The list  of  supported  disjoint  definitions  constitutes  a  dynamic
+      feature  of  the  format.   New  functions  may be added in the future.
+      Suggestions are welcome.
+
+
+        3.2.3) The NORMALIZATION data block
+
+   A NORMALIZATION data block describes a  specific  normalisation  mode  for
+   alignment scores. It has the following format:
+
+   /NORMALIZATION: FUNCTION=name; parameters;
+                   [ MODE=mode-nr; PRIORITY=rank; TEXT=string; ]
+
+   where:
+
+   -  `name' is a word form a controlled vocabulary identifying  one  of  the
+      supported normalisation functions listed in Appendix B.
+   -  `parameters' is a list of parameter specifications providing values for
+      all  parameters  of  the corresponding normalisation function listed in
+      APPENDIX B.
+   -  `mode-nr' is an integer by which the normalisation mode can be referred
+      to in CUT_OFF data blocks.
+   -  `rank' is an integer assigning a relative priority to the normalisation
+      mode with regard to various pattern search operations.
+   -  `string' is a quoted string describing a score normalised according  to
+      this mode.
+
+   NORMALIZATION data blocks are optional.  There may be  several  NORMALIZA-
+   TION data blocks per profile.
+
+   The optional MODE parameter either appears in all or in none of  the  NOR-
+   MALIZATION  data blocks.  If specified, the mode numbers form a contiguous
+   integer range starting with 1.  If not specified, mode numbers are implied
+   by the order in which the NORMALIZATION data blocks appear in the profile.
+
+   The optional PRIORITY parameter either appears in all or none of the  NOR-
+   MALIZATION data blocks. If not specified, priorities are equal to the mode
+   numbers. The lower the priority number, the higher  the  priority  of  the
+   normalisation mode, and vice-versa.
+
+   Example:
+
+   MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; TEXT='Homology Score';
+   MA      R1=-90.558; R2=0.57225;
+
+   Notes:
+
+   -  Normalisation functions may, in addition to the  parameters  listed  in
+      APPENDIX  B,  depend  on characteristics of the sequence such as length
+      and residue composition.
+
+<PAGE>
+
+
+
+
+        3.2.4) The CUT_OFF data block
+
+   A CUT_OFF data block defines a cut-off level.  It has the  following  for-
+   mat:
+
+   /CUT_OFF: SCORE=rscore;
+             [ LEVEL=level; TEXT=string; N_SCORE=nscore; MODE=mode-nr ]
+
+   where:
+
+   -  `rscore' is an integer defining the cut-off value in raw score units.
+   -  `level' is an integer identifying a cut-off level.
+   -  `string' is a quoted character string  characterising  profile  matches
+      with  scores  greater  than or equal to the corresponding cut-off value
+      (but lower than any higher cut-off value specified).
+   -  `nscore' is a real number, or a comma separated list of  real  numbers,
+      defining  the cut-off value(s) in normalised score units calculated ac-
+      cording to the mode(s) identified by mode-nr.
+   -  `mode-nr' is an integer, or a comma separated list of integers,  refer-
+      ring  to  one  or  several normalisation modes defined in NORMALIZATION
+      data blocks.
+
+   The CUT_OFF data block for level 0 is mandatory.  There  may  be  multiple
+   CUT_OFF data blocks, one for each level.
+
+   The LEVEL parameter is optional for level 0.  All other levels are  speci-
+   fied  explicitly.   The levels assigned to alternative cut-off values, in-
+   cluding level 0, form a contiguous integer range.
+
+   The N_SCORE and MODE parameters are either both present  or  both  absent.
+   If present, they contain the same number of elements.
+
+   Example:
+
+   MA   /CUT_OFF: LEVEL=0; SCORE=237; N_SCORE=7.5; MODE=1;
+
+   Notes:
+
+   -  Cut-off values in raw score units may be used by programs which do  not
+      support a given normalisation mode.
+   -  The list of supported normalisation  functions  constitutes  a  dynamic
+      feature  of  the  format.   New  functions  may be added in the future.
+      Suggestions are welcome.
+
+
+        3.2.5) The DEFAULT data block
+
+   The DEFAULT data block redefines defaults  for  position-specific  profile
+   parameters and has the following format:
+
+   /DEFAULT: [ SY_I=char1; SY_M=char2; parameters; ]
+
+   where:
+
+   -  `char1' is a quoted character representing a profile insert position in
+      a profile-sequence alignment.
+   -  `char2' is a quoted character representing a profile match position  in
+      a profile-sequence alignment.
+
+
+<PAGE>
+
+
+   -  `parameters' is a list of  parameter  specifications  defining  default
+      values for one or several of the profile scores listed in the tables at
+      the end of this Section.
+
+   DEFAULT data blocks are optional.  There  may  be  multiple  DEFAULT  data
+   blocks per profile.
+
+   Implicit defaults:
+
+   -  SY_I='-'; SY_M='X';
+
+   Example:
+
+   MA   /DEFAULT: B0= *; B1= *; E0= *; E1= *;
+
+   Notes:
+
+   -  The first DEFAULT data block redefines the implicit defaults  given  in
+      the  tables at the end of this Section.  Subsequent DEFAULT data blocks
+      consecutively redefine each other.
+   -  Asterisk represents low-value in the example; see next Subsection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<PAGE>
+
+
+
+        3.2.6) The I and M data blocks
+
+   The I and M data blocks contain position-specific profile scores  for  in-
+   sert and match positions.  They have the following formats:
+
+   /I: [ SY=char1; parameters; ]
+   /M: [ SY=char2; parameters; ]
+
+   where:
+
+   -  `char1' is a quoted character representing  the  corresponding  profile
+      insert position in a profile-sequence alignment.
+   -  `char2' is a quoted character representing  the  corresponding  profile
+      match position in a profile-sequence alignment.
+   -  `parameters' is a list of parameter specifications assigning values  to
+      one  or  several  of the position-specific profile scores listed in the
+      tables at the end of this Section.
+
+   The profile scores specified in I and M data blocks overwrite the  current
+   default  values  set  by  a preceding DEFAULT data block or initialised as
+   shown in the tables at the end of this Section.
+
+   The values assigned to profile scores may be integers, reals, or low-value
+   represented  by  an asterisk.  Most profile scores are assigned one value.
+   The exceptions are the residue-specific insert and match extension scores.
+   These scores can either be assigned one value or a comma separated list of
+   values, one for each character of the alphabet. The correspondence between
+   scores  and  characters  is  defined by the order in which the alphabet is
+   presented in the GENERAL_SPEC data block. A single value is equivalent  to
+   a list of identical values.
+
+   Each I data block characterises one insert position of the profile.   Each
+   M  data block characterises one match position of the profile.  The physi-
+   cal order of the M and I data blocks defines  the  logical  order  of  the
+   corresponding  profile  positions.  Default match and insert positions are
+   not always  specified  explicitly.   This  requires  further  explanation.
+   Remember  that a profile consists of an alternating sequence of insert and
+   match positions, and that a linear profile starts and ends with an  insert
+   position.   Default  I  or  M data block are implied wherever the physical
+   order of I and M data blocks does not conform to these rules.
+
+   Example:
+
+   MA   /I: B0= 0; B1= 0; /M: M= 11, 3, 3, 4;
+
+   In case the above line describes a complete linear profile, a default  in-
+   sert position is implied at the end.  In case it describes a circular pro-
+   file, no additional profile position is implied.
+
+   Notes:
+
+   -  There has been some debate (and no decision  so  far)  whether  profile
+      scores  should  be  required  to  be integers.  In PROSITE, all profile
+      scores are represented as integers  and  existing  software  supporting
+      this format actually requires integer representation. Integer represen-
+      tation has thus become a `de facto' standard.
+   -  A linear normalisation function implicitly defines an integer  to  real
+      conversion of profile scores; see protein example in Section 4.
+
+
+
+<PAGE>
+
+
+
+
+   Profile scores of insert positions and implicit defaults:
+
+   Name  Default  Parameter description
+   --------------------------------------------------------------------------
+   B0    B0= 0    External initiation score
+   B1    B1= 0    Internal initiation score
+   E0    E0= 0    External termination score
+   E1    E1= 0    Internal termination score
+
+   BM    BM= 0    State transition score from state B to M
+   BI    BI= *    State transition score form state B to I
+   BD    BD= *    State transition score from state B to D
+   BE    BE= *    State transition score from state B to E
+   MM    MM= 0    State transition score from state M to M
+   MI    MI= *    State transition score from state M to I
+   MD    MD= *    State transition score from state M to D
+   ME    ME= 0    State transition score from state M to E
+   IM    IM= *    State transition score from state I to M
+   II    II= 0    State transition score from state I to I
+   ID    ID= *    State transition score from state I to D
+   IE    IE= *    State transition score from state I to E
+   DM    DM= *    State transition score from state D to M
+   DI    DI= *    State transition score from state D to I
+   DD    DD= 0    State transition score from state D to D
+   DE    DE= *    State transition score from state D to E
+
+   I     I = 0    Insert extension score(s) for characters included in the
+                     alphabet
+   I0    I0= 0    Insert extension score for a character not included in the
+                     alphabet
+   --------------------------------------------------------------------------
+
+
+
+
+
+
+   Profile parameters of match positions and implicit defaults:
+
+   Name   Default  Parameter description
+   --------------------------------------------------------------------------
+   M      M = 0    Match extension score(s) for characters included in the
+                      alphabet
+   M0     M0= 0    Match extension score for a character not included in the
+                      alphabet
+   D      D = 0    Deletion extension score
+   --------------------------------------------------------------------------
+
+
+
+
+
+
+
+
+
+
+
+
+
+<PAGE>
+
+
+                                  4) EXAMPLES
+
+
+   4.1) E. coli promoters
+
+   The profile shown below describes the major class  of  E.  coli  promoters
+   recognised  by  RNA  polymerase-sigma  factor 70. It is based on work pub-
+   lished in [4] and emulates the functionality of the promoter  search  pro-
+   gram TARGSEARCH.
+
+
+MA   /GENERAL_SPEC: ALPHABET='ACGT';
+MA   /DISJOINT: DEFINITION=PROTECT; N1=37; N2=42;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=-90.558; R2=0.57225;
+MA      TEXT='Homology Score';
+MA   /NORMALIZATION: MODE=2; FUNCTION=LINEAR; R1=-10.198; R2=0.06215;
+MA      TEXT='Log KBk2';
+MA   /CUT_OFF: LEVEL=0; SCORE=237; N_SCORE=45.0; MODE=1;
+MA   /DEFAULT: B0=*; B1=*; E0=*; E1=*;
+MA   /I: B0= 0; B1= 0;
+MA   /M: M= 11, 3, 3, 4;
+MA   /M: M=  8, 4, 2, 7;
+MA   /M: M=  8, 2, 4, 7;
+MA   /M: M=  7, 4, 2, 8;
+MA   /M: M=  8, 4, 4, 5;
+MA   /M: M=  7, 3, 5, 6;
+MA   /M: M=  3, 5, 5, 8;
+MA   /M: M=  5, 2, 5, 9;
+MA   /M: M=  5, 8, 5, 3;
+MA   /M: M=  0, 1, 2,17; SY='T';
+MA   /M: M=  1, 1, 1,18; SY='T';
+MA   /M: M=  0, 2,17, 2; SY='G';
+MA   /M: M= 14, 3, 1, 4; SY='A';
+MA   /M: M=  5,11, 2, 5; SY='C';
+MA   /M: M=  9, 2, 3, 7; SY='A';
+MA   /M: M=  5, 5, 3, 9;
+MA      /M:/M:/M:/M:/M:/M:/M:/M:/M:
+MA      /I: MD=0; MM=1;/I: DM=1;/I: DM=1;/I: DM=6;/I: DM=14;/I: DM=6;/I: DM=1;
+MA   /M: M=  4, 5, 2,10;
+MA   /M: M=  5, 4, 5, 6;
+MA   /M: M=  3, 5, 5, 8;
+MA   /M: M=  4, 4, 8, 5;
+MA   /M: M=  4, 5, 7, 6;
+MA   /M: M=  0, 2, 2,17; SY='T';
+MA   /M: M= 20, 0, 0, 1; SY='A';
+MA   /M: M=  5, 3, 3, 9; SY='T';
+MA   /M: M= 12, 3, 3, 3; SY='A';
+MA   /M: M= 11, 4, 3, 4; SY='A';
+MA   /M: M=  0, 1, 0,20; SY='T';
+MA   /M: M=  7, 2, 6, 6;
+MA   /M: M=  4, 7, 5, 5;
+MA   /M: M=  6, 6, 6, 4;
+MA   /I: E0=0; E1= 0;
+
+
+
+
+
+
+
+
+
+<PAGE>
+
+
+   The profile is substructured into four operationally distinct modules
+   totaling 45 match positions.
+
+   Position  Module
+   --------------------------------------------------------------------------
+     1-16    Weight matrix for the -35 region including the core hexamer  box
+             TTGACA at pos. 10-15.
+    17-25    Fixed length linker module encoded by 9 dummy  match  positions.
+             This  module  is  defined  on  the  first of the two indented MA
+             lines.
+    26-31    Variable length linker scoring module encoded by  7  consecutive
+             insert  positions.   This module is defined on the second of two
+             indented MA lines.
+   32 -45    Weight matrix for the -10 region including the core hexamer  box
+             TATAAT at pos. 37-42.
+   --------------------------------------------------------------------------
+
+   The variable length linker scoring module defines  the  following  scoring
+   scheme.
+
+                        # of bp between core     score
+                           hexamers boxes
+
+                              15                   1
+                              16                   6
+                              17                  14
+                              18                   6
+                              19                   1
+                              20                   1
+                              21                   1
+
+   These scores are achieved as follows.  Format-proprietary  default  values
+   for state transition scores (not over-written by local defaults) make sure
+   that  deletions  and  insertions  can  only  occur  at   positions   where
+   corresponding  scores  are  explicitly  specified. Insertion gaps are thus
+   generally forbidden.  A deletion gap can only be opened at  the  beginning
+   of  the  linker  length scoring module and must be closed within or at the
+   end of this module. A promoter with the maximal linker length of 21 can be
+   aligned  without gap to the profile. In this case, the linker length score
+   is provided by MM=1 at insert position 25. Promoters with  linker  lengths
+   15  to  20  require  a deletion gap in their alignment to the profile. The
+   corresponding scores are provided by DM=1, 1, 6, 14, 6, 1 at insert  posi-
+   tions 26, 27, 28, 29, 30, 31, respectively.
+
+   Notes:
+
+   -  The default low-values assigned to parameters B0, B1, E0, E1,  together
+      with  the  exceptions B0, B1 = 0 at the beginning and E0, E1 = 0 at the
+      end of the profile, define a global  alignment  algorithm  with  endgap
+      weighting in the profile but not in the sequence.
+   -  Two normalisation modes are defined in this profile. The names  of  the
+      corresponding  scores,  `Homology score' and `log KBk2', are taken from
+      the original publication.  The parameters of the  second  normalisation
+      function  were derived by a linear regression analysis between homology
+      scores and enzyme selectivities (defined as log KBk2) of 31  transcrip-
+      tionally assayed promoters.
+   -  The cut-off homology score of 45 has been proposed by  the  authors  as
+      lower limit for effective promoters.
+
+
+
+
+<PAGE>
+
+
+   -  The disjointness definition protecting only the TATAAT box region  from
+      sequence  overlap,  is  motivated by a known promoter example where two
+      adjacent TATAAT boxes direct transcription from two distinct initiation
+      sites six bp apart from each other.
+   -  This profile is not supposed to represent the  most  accurate  E.  coli
+      promoter prediction method available today.  It primarily serves to il-
+      lustrate that the proposed syntax is flexible  enough  to  express  the
+      functionality of a specialised search algorithm developed for a partic-
+      ular object.
+
+
+   4.2) Src homology domain SH3
+
+   The profile shown on the next page describes the Src homology  domain  SH3
+   as  defined  by sequence similarity. It has been constructed by a recently
+   described extension of Gribskov's method  incorporating  several  improve-
+   ments [8].
+
+   The SH3 profile consists of three homology blocks separated by two gap re-
+   gions.  Within the homology blocks, small insertions and deletions are not
+   totally forbidden but strongly impeded by high gap costs  defined  in  the
+   DEFAULT  data  block: MI=-26, I=-3, MD=-26, D=-3.  These numbers are over-
+   written by more permissive values in the two gap regions.
+
+   Notes:
+
+   -  The SH3 profile uses only features which are compatible with Gribskov's
+      methodology.  As a consequence, it can be automatically reformatted for
+      use with the existing profile alignment programs implemented in the GCG
+      package.
+   -  The second normalisation mode defines a real number conversion  of  the
+      integer profile scores.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<PAGE>
+
+
+MA   /GENERAL_SPEC: ALPHABET='ACDEFGHIKLMNPQRSTVWY';
+MA   /DISJOINT: DEFINITION=PROTECT; N1=1; N2=53;
+MA   /NORMALIZATION: MODE=1; FUNCTION=GLE_ZSCORE; R1=44.55; R2=-0.0035;
+MA      R3=0.7386; R4=1.001; R5=0.208; TEXT='ZScore';
+MA   /NORMALIZATION: MODE=2; FUNCTION=LINEAR; R1=0.0; R2=0.1;
+MA      TEXT='OrigScore';
+MA   /CUT_OFF: LEVEL=0; SCORE=90; N_SCORE=7.0; MODE=1;
+MA   /DEFAULT: MI=-26; I=-3; IM=0; MD=-26; D=-3; DM=0;
+MA   /M: SY='F';M=-2,-3,-3,-4,2,-3,-2,1,-2,0,-1,-2,-3,-3,-4,-2,-1,0,-5,2;
+MA   /M: SY='I';M=-1,-5,-2,-3,-2,-3,0,1,1,-1,1,-1,-2,-1,1,-1,0,1,-4,-4;
+MA   /M: SY='A';M=2,-3,1,0,-5,2,-2,-1,-1,-3,-2,1,1,0,-2,2,2,0,-8,-5;
+MA   /M: SY='L';M=-3,-8,-5,-4,2,-6,-2,2,-4,6,4,-3,-3,-2,-3,-3,-2,1,-3,0;
+MA   /M: SY='Y';M=-4,-2,-6,-6,9,-7,0,-1,-5,-1,-3,-3,-6,-5,-6,-4,-4,-4,-1,11;
+MA   /M: SY='D';M=1,-6,3,3,-7,0,0,-2,-1,-4,-3,2,0,1,-2,0,0,-2,-9,-6;
+MA   /M: SY='Y';M=-5,-3,-6,-6,10,-7,-1,-1,-2,-1,-2,-3,-6,-5,-5,-4,-4,-4,-1,11;
+MA   /M: SY='K';M=-1,-6,1,1,-4,-2,0,-2,2,-3,-1,1,-1,1,1,0,0,-3,-7,-6;
+MA   /M: SY='A';M=1,-4,1,0,-5,1,-1,-1,0,-3,-1,1,0,0,0,1,1,-1,-7,-6;
+MA   /M: SY='R';M=0,-5,0,0,-5,-1,0,-1,1,-3,-1,1,0,1,1,0,0,-2,-5,-5;
+MA   /M: SY='R';M=0,-5,1,1,-6,0,1,-2,1,-4,-2,1,0,1,2,1,0,-2,-5,-5;
+MA   /M: SY='E';M=1,-6,2,2,-6,0,0,-2,-1,-4,-2,1,1,1,-1,0,0,-3,-8,-6;
+MA   /M: SY='D';M=0,-6,2,2,-6,0,1,-3,0,-5,-3,2,-1,2,-1,0,0,-4,-7,-4;
+MA   /M: SY='D';M=0,-8,4,3,-6,0,0,-2,-1,-3,-2,2,-2,2,-2,0,-1,-3,-9,-6;
+MA   /M: SY='L';M=-2,-8,-5,-5,2,-5,-3,3,-4,7,5,-4,-3,-3,-4,-3,-2,3,-4,-2;
+MA   /M: SY='S';M=1,-4,1,1,-5,1,0,-2,1,-4,-2,1,0,0,0,1,1,-2,-6,-5;
+MA   /M: SY='F';M=-3,-7,-6,-6,6,-5,-3,3,-2,5,3,-4,-5,-4,-5,-4,-3,1,-3,3;
+MA   /M: SY='Q';M=-1,-6,0,0,-3,-2,1,-1,1,-2,0,0,-1,1,1,-1,0,-1,-6,-4;
+MA   /M: SY='K';M=-1,-8,0,1,-3,-2,0,-2,3,-3,0,1,0,2,2,0,0,-3,-6,-6;
+MA   /M: SY='G';M=2,-5,1,0,-7,7,-3,-4,-2,-6,-4,1,-1,-2,-4,2,0,-2,-10,-8;
+MA   /M: SY='D';M=1,-7,5,4,-8,1,1,-3,0,-5,-3,2,-1,2,-2,0,0,-4,-10,-6;
+MA   /M: SY='I';M=0,-5,-1,-2,-2,-2,-1,2,0,0,1,-1,-2,0,0,-1,0,1,-6,-5;
+MA   /M: SY='L';M=-2,-6,-5,-5,3,-5,-3,4,-3,6,4,-4,-4,-3,-4,-3,-2,3,-5,0;
+MA   /M: SY='Q';M=-1,-5,-1,-1,-3,-2,0,0,0,-2,-1,0,-1,0,0,-1,0,-1,-6,-3;
+MA   /M: SY='V';M=0,-4,-3,-4,-1,-3,-3,5,-3,3,3,-2,-2,-2,-3,-2,0,5,-8,-4;
+MA   /M: SY='L';M=-1,-6,-3,-3,-1,-3,-2,2,-3,3,2,-2,-2,-2,-3,-2,-1,2,-5,-3;
+MA   /M: SY='D';M=0,-6,3,3,-6,0,1,-3,2,-5,-2,2,-1,2,1,0,0,-4,-7,-5;
+MA   /M: SY='K';M=-1,-6,0,0,-2,-1,0,-3,3,-4,-1,1,-1,0,1,0,0,-3,-6,-4;
+MA   /M: SY='N';M=1,-4,1,1,-5,0,0,-2,0,-3,-2,1,1,0,-1,1,1,-1,-7,-5;
+MA      /I: MI=0; I=-1; MD=0; /M: SY='X'; M=0; D=-1;
+MA   /M: SY='G';M=1,-5,0,0,-5,1,-2,-1,-2,-3,-2,0,0,-1,-2,0,0,-1,-8,-6;
+MA   /M: SY='G';M=1,-6,3,3,-7,3,0,-4,-1,-5,-4,2,-1,1,-2,1,0,-3,-10,-6;
+MA   /M: SY='W';M=-9,-12,-9,-11,1,-11,-4,-8,-5,-3,-6,-6,-8,-7,3,-4,-8,-9,26,0;
+MA   /M: SY='W';M=-7,-9,-9,-9,0,-9,-4,-5,-5,-1,-4,-6,-7,-6,2,-3,-6,-6,18,-1;
+MA   /M: SY='K';M=-1,-7,0,0,-3,-2,0,-2,2,-3,-1,1,-1,1,2,0,-1,-3,-5,-5;
+MA   /M: SY='G';M=2,-3,0,-1,-6,3,-3,-2,-3,-4,-3,0,0,-2,-3,1,0,0,-10,-6;
+MA   /M: SY='Q';M=-2,-6,0,0,-3,-3,1,-2,0,-2,-1,0,-2,1,1,-1,-1,-3,-5,-3;
+MA      /I: MI=0; I=-2; MD=0; /M: SY='X'; M=0; D=-2;
+MA   /M: SY='T';M=0,-4,-1,-1,-4,0,-2,0,-1,-2,0,0,-1,-1,-1,0,1,0,-7,-5;
+MA   /M: SY='T';M=0,-5,0,0,-3,-1,-1,-1,1,-3,-1,1,-1,0,0,1,1,-1,-6,-4;
+MA   /M: SY='G';M=0,-5,0,-1,-5,3,-2,-3,-1,-5,-3,0,-1,-1,-1,1,0,-2,-7,-6;
+MA   /M: SY='K';M=0,-6,1,1,-5,-1,1,-2,2,-4,-1,1,-1,2,2,0,0,-3,-6,-6;
+MA   /M: SY='R';M=-1,-6,-1,-1,-5,-3,1,-1,1,-3,-1,0,-1,1,3,-1,-1,-2,-2,-6;
+MA   /M: SY='G';M=1,-5,0,0,-6,6,-3,-3,-3,-5,-4,0,-1,-2,-4,1,0,-2,-10,-6;
+MA   /M: SY='W';M=-5,-5,-5,-5,2,-6,-2,-2,-4,-1,-3,-3,-6,-5,-3,-3,-4,-4,4,3;
+MA   /M: SY='F';M=-3,-5,-6,-6,6,-5,-3,4,-1,3,2,-4,-4,-5,-4,-3,-2,2,-4,3;
+MA   /M: SY='P';M=2,-4,-1,-1,-7,-1,0,-3,-2,-4,-3,-1,8,0,0,1,0,-2,-8,-7;
+MA   /M: SY='G';M=1,-3,0,0,-4,2,-1,-2,0,-3,-2,0,0,-1,-1,1,1,-1,-6,-5;
+MA   /M: SY='N';M=1,-5,2,1,-5,0,1,-2,1,-4,-2,2,0,0,0,1,1,-2,-7,-4;
+MA   /M: SY='Y';M=-5,-1,-7,-7,10,-8,-1,-1,-5,-1,-3,-3,-7,-6,-6,-4,-4,-5,0,13;
+MA   /M: SY='V';M=0,-3,-3,-5,-2,-2,-3,5,-3,2,2,-2,-2,-3,-4,-1,0,5,-8,-5;
+MA   /M: SY='E';M=1,-6,2,3,-6,0,0,-2,1,-4,-2,1,0,2,0,0,0,-3,-8,-6;
+MA   /M: SY='P';M=0,-5,-1,-1,-2,-2,-1,-2,-1,-3,-2,0,1,-1,-2,0,-1,-2,-6,-3;
+
+<PAGE>
+
+
+   Acknowledgements:
+
+   I thank Roland Luethy, Michael Gribskov, Stephen Altschul, David Haussler,
+   Sean  Eddy,  Kevin Karplus, and Ewan Birney for valuable comments and dis-
+   cussions.  The text file format described in Section 3 has  been  designed
+   in  collaboration with Amos Bairoch.  Ioannis Xenarios has contributed the
+   SH3 profile shown with minor modifications in Section 4.
+
+
+
+
+
+                                   REFERENCES
+
+
+   1  Gribskov M., Luethy R., Eisenberg D.
+      Profile analysis.
+      Meth. Enzymol. 183:146-159(1990).
+
+   2  Staden R.
+      Searching for patterns in protein and nucleic acid sequences.
+      Meth. Enzymol. 183:193-211(1990).
+
+   3  Barton G.J., Sternberg M.J.E.
+      Flexible protein sequence patterns: a sensitive method to detect weak
+      structural similarities.
+      J. Mol. Biol. 212:389-402(1990).
+
+   4  Mulligan M.E., Hawley D.K., Entriken R., McClure W.R.
+      Escherichia coli promoter sequences predict in vitro RNA polymerase
+      selectivity.
+      Nucleic Acids Res. 12:789-800(1984).
+
+   5  Krogh A., Brown M., Mian I.S., Sjoelander K., Haussler D.
+      Hidden Markov models in computational biology.
+      J. Mol. Biol. 235:1501-1531(1994).
+
+   6  Waterman M.S., Eggert M.
+      A new algorithm for best subsequence alignments with application to
+      tRNA-rRNA comparisons.
+      J. Mol. Biol. 197:723-728(1987).
+
+   7  Huang X., Miller W.
+      A time-efficient, linear-space local similarity algorithm.
+      Adv. Appl. Math. 12:337-357(1991).
+
+   8  Luethy R., Xenarios I., Bucher P.
+      Improving the sensitivity of the sequence profile method.
+      Protein Sci. 3:139-146(1994).
+
+   9  Bucher P., Karplus K., Moeri, N., Hofmann, K.
+      A flexible search technique based on generalized profiles.
+      Comput. Chem. 20:3-24(1996).
+
+  10  Eddy S.R.
+      Hidden Markov models.
+      Curr. Opin. in Struct. Biol. 6:361-365(1996).
+
+
+
+
+
+<PAGE>
+
+
+                     APPENDIX A): DISJOINTNESS DEFINITIONS
+
+   The following notions of disjointness of two alignments between  the  same
+   profile and the same sequence are currently defined:
+
+   Name    Parameters  Description
+   --------------------------------------------------------------------------
+   UNIQUE              Multiple profile-sequence alignment between  the  same
+                       profile  and the same sequence are not permitted.  The
+                       result of a profile search consists of a  single  best
+                       alignment.
+
+   PROTECT N1 (int)    Two profile-sequence  alignments  are disjoint  if the
+           N2 (int)    two sequence segments  associated with the `protected'
+                       profile  area  do  not  overlap. The protected profile
+                       area extends from match position N1 to match  position
+                       N2 inclusive.
+   --------------------------------------------------------------------------
+
+
+                     APPENDIX B): NORMALIZATION FUNCTIONS
+
+   The following score normalisation functions are currently defined.
+
+   Name        Parameters  Formula (X = raw score, Y= normalised score)
+   --------------------------------------------------------------------------
+   LINEAR      R1 (real)   Y = R1 + R2 * X
+               R2 (real)
+
+   GLE_ZSCORE  R1 (real)       X/[R1*(1.0-exp(R2*SeqLen-R3))]-R4
+               R2 (real)   Y = ---------------------------------
+               R3 (real)                       R5
+               R4 (real)
+               R5 (real)
+   --------------------------------------------------------------------------
+
+   Sequence-dependent variables:
+
+   -  SeqLen (integer) is the length of the sequence.
+
+   Notes:
+
+   -  The score normalisation function named GLE_ZSCORE has been described by
+      Gribskov, Luethy, and Eisenberg in [1].
+
+
+                 APPENDIX C): FREQUENTLY USED LOGARITHMIC BASES
+
+   Logarithmic base    Name of units        Used e.g. in:
+   --------------------------------------------------------------------------
+   10.000000000        Log10 units          PROSITE profile -log P-values
+    2.718281828        nats                 SAM HMM log-odds scores
+    2.000000000        bits                 BLAST, HMMER HMM log-odds scores
+    1.414213562        1/2 bit units        BLAST blosum62 matrix
+    1.259921050        1/3 bit units        BLAST blosum45, pam250 matrices
+    1.258925412        1/10 Log10 units     Dayhoff MDM78 matrix
+    1.189207115        1/4 bit units        BLAST blosum35, blosum40 matrices
+    1.148698355        1/5 bit units        BLAST blosum30 matrix
+    1.000693387        1/1000 bit units     HMMER integer arithmetics
+    1.023292992        1/100 Log10 units    Bowie 3D-profile
+   --------------------------------------------------------------------------
diff --git a/prosite13.prf b/prosite13.prf
new file mode 100644
index 0000000..6c3c1ce
--- /dev/null
+++ b/prosite13.prf
@@ -0,0 +1,3061 @@
+ID   DEATH_DOMAIN; MATRIX.
+AC   PS50017;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Death domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=85; TOPOLOGY=LINEAR;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=80;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=0.6073; R2=0.0231; TEXT='OrigScore';
+MA   /CUT_OFF: LEVEL=0; SCORE=340; N_SCORE=8.5; MODE=1;
+MA   /DEFAULT: B1=-50; E1=-50; MI=-105; MD=-105; IM=-105; DM=-105; I=-20; D=-20;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='P'; M=-2,-9,-23,-9,-1,-18,-16,-13,-12,-4,-13,-9,-5,6,-3,-3,2,1,-11,-28,-16,-4;
+MA   /M: SY='E'; M=-2,-5,-16,-3,7,-18,-16,-13,-13,-2,-4,-7,-10,-15,-4,-7,-8,-8,-9,-26,-14,2;
+MA   /M: SY='Y'; M=-3,-11,-22,-13,-1,-4,-20,-7,-5,-3,-6,0,-9,-16,-4,-4,-4,-3,-4,-16,4,-4;
+MA   /M: SY='V'; M=-4,-16,-23,-18,-13,-10,-24,-16,6,-7,6,4,-14,-21,-8,1,-12,-7,7,-23,-8,-12;
+MA   /M: SY='Y'; M=-13,-17,-26,-18,-7,4,-25,-2,-1,-13,5,6,-16,-15,-2,-11,-15,-8,-8,-5,11,-5;
+MA   /M: SY='A'; M=5,-6,-21,-8,-1,-17,-15,-10,-11,-1,-3,-4,-5,-16,2,0,-4,-4,-9,-23,-12,0;
+MA   /M: SY='V'; M=-8,-6,-10,-8,-16,-9,-24,-17,6,-16,0,-2,-7,-23,-17,-17,-7,1,11,-29,-8,-17;
+MA   /M: SY='I'; M=4,-24,-20,-29,-21,2,-24,-23,15,-20,8,7,-21,-11,-20,-21,-11,-6,15,-20,-6,-22;
+MA   /M: SY='E'; M=0,-1,-10,0,3,-23,-10,-4,-23,-6,-18,-15,-1,-5,-4,-6,0,-7,-18,-30,-18,-2;
+MA   /I: MD=-30;
+MA   /M: SY='D'; D=-5; M=-9,12,-23,14,4,-23,-3,-7,-23,1,-19,-15,10,-15,-3,-1,2,-3,-17,-30,-17,0;
+MA   /I: MI=-30; MD=-30; IM=-30; DM=-30; I=-10;
+MA   /M: SY='H'; D=-5; M=-8,-3,-23,-3,-3,-18,-12,10,-12,-6,-14,0,-1,-6,-3,-8,-2,-6,-9,-29,-9,-4;
+MA   /I: MD=-30; DM=-30;
+MA   /M: SY='L'; D=-5; M=2,-19,-18,-21,-14,-7,-21,-21,6,-15,7,2,-18,-6,-15,-16,-7,1,7,-25,-11,-15;
+MA   /I: DM=-30;
+MA   /M: SY='G'; M=-2,-14,-29,-14,-14,-21,23,-13,-19,-19,-13,-10,-8,-5,-15,-19,-7,-15,-18,-22,-20,-16;
+MA   /M: SY='A'; M=1,-3,-14,-2,1,-15,-15,-12,-14,-6,-7,-8,-5,-15,-3,-9,0,-1,-10,-27,-13,-1;
+MA   /M: SY='D'; M=-11,15,-24,22,10,-28,-14,-5,-25,5,-23,-17,6,-12,6,5,5,0,-17,-32,-15,7;
+MA   /M: SY='W'; M=-12,-37,-44,-38,-28,7,-19,-29,-16,-19,-17,-17,-37,-28,-20,-20,-33,-25,-23,124,23,-20;
+MA   /M: SY='R'; M=-7,-6,-20,-8,1,-24,-19,-10,-25,21,-22,-11,-4,-4,6,23,-4,-2,-17,-24,-14,2;
+MA   /M: SY='E'; M=-10,-5,-28,-3,13,-22,-12,-2,-19,6,-10,-6,-5,-13,9,7,-9,-12,-19,-23,-11,10;
+MA   /M: SY='L'; M=-12,-30,-19,-33,-23,29,-30,-21,15,-29,36,14,-27,-30,-26,-20,-26,-9,10,-12,8,-23;
+MA   /M: SY='A'; M=31,-13,-15,-20,-13,-18,2,-19,-7,-12,-9,-3,-12,-9,-12,-19,3,-4,1,-21,-19,-13;
+MA   /M: SY='R'; M=-14,-6,-28,-7,0,-21,-11,-4,-26,18,-20,-9,1,-13,5,39,-6,-6,-20,-23,-13,-1;
+MA   /M: SY='E'; M=-2,-1,-24,-1,17,-17,-17,-5,-18,5,-14,-10,-2,-11,8,1,-1,-6,-16,-22,-9,12;
+MA   /M: SY='L'; M=-10,-20,-20,-23,-18,4,-25,-10,14,-23,32,18,-17,-27,-15,-16,-22,-9,7,-23,-2,-17;
+MA   /M: SY='G'; M=-7,2,-29,2,2,-30,20,-2,-32,1,-27,-15,6,-15,3,-3,-1,-14,-28,-24,-19,3;
+MA   /M: SY='F'; M=-12,-27,-21,-30,-24,21,-30,-15,15,-20,18,11,-23,-28,-22,-13,-20,-8,14,-9,15,-23;
+MA   /M: SY='S'; M=-4,1,-24,2,4,-22,-7,-7,-23,1,-26,-16,3,3,2,-5,10,2,-20,-28,-13,2;
+MA   /M: SY='E'; M=-13,4,-20,12,18,-25,-20,-1,-23,-1,-19,-15,-3,-1,4,-4,-5,-10,-19,-29,-12,9;
+MA   /M: SY='H'; M=-5,1,-24,4,6,-18,-12,7,-21,-3,-13,-11,0,-15,0,0,-1,-5,-17,-25,-6,2;
+MA   /M: SY='E'; M=-8,6,-27,11,19,-26,-18,0,-22,9,-15,-11,-1,-11,10,1,-5,-9,-18,-27,-12,15;
+MA   /M: SY='I'; M=-6,-27,-27,-35,-26,-3,-36,-27,40,-26,17,17,-20,-20,-16,-26,-17,-9,25,-21,-2,-24;
+MA   /M: SY='D'; M=-16,21,-28,28,17,-25,-15,3,-31,7,-24,-19,13,-13,7,8,-3,-9,-26,-30,-13,11;
+MA   /M: SY='E'; M=-12,-2,-22,1,13,-17,-19,4,-22,4,-16,-10,-1,-15,13,10,-2,-7,-21,-23,-6,11;
+MA   /M: SY='I'; M=-7,-25,-25,-32,-24,5,-31,-24,28,-26,17,11,-18,-16,-20,-24,-18,-8,16,-19,-2,-24;
+MA   /M: SY='E'; M=-4,0,-23,0,18,-22,-16,-6,-22,10,-18,-11,0,-9,7,12,4,3,-16,-27,-15,12;
+MA   /M: SY='H'; M=-10,-6,-14,-10,-10,-7,-20,5,-6,-13,-3,0,-2,-21,-6,-8,-5,-1,-5,-28,-4,-9;
+MA   /M: SY='E'; M=-13,17,-29,22,25,-32,-15,2,-28,7,-24,-17,12,-4,18,6,0,-9,-29,-31,-17,21;
+MA   /I: MD=-20;
+MA   /M: SY='N'; D=-3; M=-5,9,-16,2,-4,-7,-3,1,-15,-2,-19,-12,18,-15,-3,-3,8,1,-16,-20,-3,-4;
+MA   /I: MD=-15;
+MA   /M: SY='P'; D=-3; M=-3,-14,-24,-11,-4,-17,-6,-14,-8,-11,-8,-6,-12,16,-6,-14,-7,-8,-11,-20,-16,-7;
+MA   /I: MD=-10;
+MA   /M: SY='R'; D=-3; M=-5,0,-18,-3,1,-16,-8,-1,-14,5,-12,-6,5,-7,9,14,-2,-5,-15,-17,-10,3;
+MA   /I: MI=0; MD=-10; IM=0; DM=-10; I=-5;
+MA   /M: SY='D'; D=-3; M=-6,10,3,12,-2,-14,-3,-7,-20,-8,-17,-15,6,-13,-7,-10,4,-3,-14,-25,-13,-4;
+MA   /I: DM=-15;
+MA   /M: SY='L'; D=-3; M=-3,-12,-15,-13,-11,-3,-12,-14,2,-17,16,6,-13,-18,-12,-14,-9,0,1,-19,-6,-11;
+MA   /I: DM=-20;
+MA   /M: SY='R'; M=1,-13,-16,-15,-7,-16,-14,-13,-13,-2,-11,-8,-11,-8,-5,2,-5,-5,-9,-21,-10,-8;
+MA   /M: SY='E'; M=-6,9,-16,14,27,-27,-14,-4,-26,3,-22,-16,3,-8,11,-4,8,-3,-22,-33,-19,19;
+MA   /M: SY='Q'; M=1,-7,-28,-6,9,-31,-16,-5,-19,3,-20,-9,-7,14,21,2,-1,-8,-23,-23,-18,14;
+MA   /M: SY='S'; M=6,-7,-9,-10,-5,-19,-14,-10,-13,-2,-15,-8,-4,-15,-1,-6,9,6,-4,-29,-13,-3;
+MA   /M: SY='R'; M=-12,-11,-23,-15,-11,0,-22,-1,-7,1,-9,-1,-5,-21,-5,8,-7,-4,-4,-15,7,-9;
+MA   /M: SY='Q'; M=9,-2,-20,-5,7,-22,-11,-4,-14,-3,-14,-7,-1,-11,14,-6,7,-1,-14,-24,-12,11;
+MA   /M: SY='L'; M=-9,-25,-19,-28,-19,10,-26,-16,15,-24,34,22,-24,-26,-16,-17,-21,-5,8,-20,0,-17;
+MA   /M: SY='L'; M=-10,-30,-20,-30,-20,10,-30,-20,20,-30,50,20,-30,-30,-20,-20,-30,-10,10,-20,0,-20;
+MA   /M: SY='R'; M=-5,4,-24,3,7,-23,-15,-5,-20,10,-16,-11,4,-14,7,14,-2,-5,-16,-26,-14,5;
+MA   /M: SY='A'; M=2,-12,-7,-17,-11,-12,-21,-18,1,-13,1,-2,-9,-19,-11,-12,-6,-3,0,-27,-12,-12;
+MA   /M: SY='W'; M=-20,-39,-48,-40,-30,14,-21,-29,-19,-21,-18,-19,-39,-30,-21,-20,-39,-29,-28,141,30,-21;
+MA   /M: SY='R'; M=-7,-13,-24,-14,-7,-12,-15,-4,-7,-4,-6,-2,-10,-20,-2,1,-7,-6,-4,-19,-1,-6;
+MA   /M: SY='Q'; M=-3,3,-25,2,5,-26,-5,0,-23,1,-19,-11,4,-13,11,4,1,-3,-20,-25,-14,7;
+MA   /M: SY='R'; M=-7,-8,-24,-9,-1,-18,-17,1,-18,6,-12,-6,-3,-17,10,19,0,-2,-15,-22,-5,3;
+MA   /M: SY='E'; M=-9,6,-26,10,15,-22,-13,10,-25,-1,-21,-15,3,-6,4,-5,3,-1,-22,-27,-6,8;
+MA   /I: MD=-10;
+MA   /M: SY='G'; D=10; M=-4,-6,-21,-6,-8,-19,27,-10,-25,0,-19,-11,0,-13,-7,3,-2,-11,-18,-14,-16,-8;
+MA   /I: MI=-10; MD=-10; IM=-10; DM=-10; I=-5;
+MA   /M: SY='K'; D=-5; M=-7,-1,-20,0,9,-19,-10,4,-19,13,-17,-8,0,-9,6,12,-2,-7,-14,-19,-8,7;
+MA   /I: DM=-10;
+MA   /M: SY='N'; M=-5,10,-23,7,9,-22,-8,4,-21,1,-22,-14,15,-13,2,0,6,-1,-20,-31,-14,4;
+MA   /M: SY='A'; M=23,-2,-17,-5,-2,-22,-3,-7,-17,-7,-13,-11,-4,-12,-5,-11,5,-4,-9,-24,-16,-4;
+MA   /M: SY='T'; M=10,1,-12,-9,-8,-14,-13,-17,-12,-7,-13,-11,3,-11,-8,-10,17,32,-4,-29,-13,-8;
+MA   /M: SY='L'; M=-8,-21,-14,-21,-18,-1,-22,-15,8,-18,12,8,-22,-21,-15,-16,-15,-6,11,-20,0,-18;
+MA   /M: SY='D'; M=-8,15,-28,21,19,-33,-6,-2,-29,1,-24,-17,7,-4,14,-5,1,-8,-27,-29,-19,17;
+MA   /M: SY='N'; M=0,5,-18,0,-6,-16,-13,-4,-12,-4,-13,-10,8,-17,-7,-2,3,5,-6,-30,-13,-7;
+MA   /M: SY='L'; M=-9,-30,-19,-30,-21,9,-30,-21,21,-29,46,19,-30,-30,-21,-20,-28,-9,14,-21,-1,-21;
+MA   /M: SY='I'; M=-6,-20,-22,-23,-21,2,-15,-19,11,-22,11,7,-18,-24,-19,-20,-14,-7,10,-18,0,-21;
+MA   /M: SY='E'; M=0,-1,-23,-2,11,-24,-11,-7,-19,5,-16,-10,0,-12,10,4,2,-2,-16,-26,-15,10;
+MA   /M: SY='A'; M=18,-12,-11,-16,-14,-15,-5,-20,-6,-12,-4,-5,-12,-18,-15,-17,-1,-2,4,-24,-16,-14;
+MA   /M: SY='L'; M=-11,-30,-20,-31,-21,15,-30,-20,19,-30,47,19,-29,-30,-21,-20,-29,-10,9,-18,2,-21;
+MA   /M: SY='R'; M=-10,-4,-20,-6,3,-20,-18,-4,-25,19,-21,-11,1,-16,6,31,-3,-3,-18,-22,-9,2;
+MA   /M: SY='K'; M=-9,3,-26,5,11,-26,-18,-7,-23,23,-21,-11,1,-12,8,15,-4,-7,-16,-26,-13,9;
+MA   /M: SY='I'; M=0,-19,-14,-27,-20,-5,-23,-18,18,-20,13,17,-14,-21,-13,-20,-12,-6,10,-24,-7,-18;
+MA   /M: SY='N'; M=-9,17,-27,16,9,-30,10,-2,-30,1,-27,-18,19,-14,7,-3,2,-10,-29,-30,-20,8;
+MA   /M: SY='R'; M=-15,-18,-18,-19,-10,-8,-24,-9,-9,3,8,4,-13,-25,-4,27,-18,-10,-7,-22,-7,-9;
+MA   /M: SY='S'; M=-2,-4,-9,-6,-4,-20,-10,-5,-19,-6,-16,-10,-1,-11,-5,-2,2,-2,-14,-30,-15,-6;
+MA   /M: SY='D'; M=-12,25,-26,34,10,-30,-1,-5,-31,-3,-24,-22,13,-13,-2,-6,2,-5,-24,-34,-19,3;
+MA   /M: SY='I'; M=2,-24,-3,-31,-24,-5,-28,-26,19,-25,13,7,-20,-23,-20,-25,-13,-4,15,-25,-9,-24;
+MA   /M: SY='V'; M=14,-22,-13,-27,-20,-4,-19,-22,13,-18,13,9,-22,-22,-19,-19,-9,-3,20,-23,-10,-19;
+MA   /M: SY='E'; M=-13,13,-28,19,31,-27,-17,3,-27,10,-20,-14,6,-8,11,8,-2,-8,-25,-30,-15,20;
+MA   /M: SY='E'; M=-7,0,-21,0,2,-15,-16,-9,-10,-2,-4,-3,-1,-17,-3,-5,-2,-3,-8,-29,-12,-1;
+MA   /M: SY='L'; M=-9,-28,-23,-33,-24,8,-32,-23,28,-28,30,18,-24,-25,-20,-23,-21,-8,18,-20,0,-23;
+MA   /M: SY='E'; M=-8,-7,-18,-6,11,-16,-22,-6,-15,2,-6,-5,-8,-15,10,1,-7,-7,-16,-21,-7,11;
+MA   /M: SY='E'; M=-4,6,-24,8,9,-23,-2,-7,-25,2,-23,-17,5,-12,0,-1,6,-1,-19,-27,-14,4;
+MA   /M: SY='A'; M=-1,-7,-21,-10,-6,-7,-12,-9,-6,-9,-6,-1,-4,-14,-8,-9,-3,-3,-6,-21,-5,-8;
+MA   /M: SY='V'; M=-1,-14,-19,-17,-12,-9,-16,-18,5,-16,3,1,-10,-19,-10,-15,-2,2,6,-27,-11,-12;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=13(13); /POSITIVE=13(13); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=0;
+CC   /TAXO-RANGE=??E??; /MAX-REPEAT=1;
+DR   P16157, ANK1_HUMAN, T; Q02357, ANK1_MOUSE, T; Q01485, ANKC_HUMAN, T;
+DR   P25445, FASA_HUMAN, T; P25446, FASA_MOUSE, T; Q05652, KPEL_DROME, T;
+DR   P22366, MY88_MOUSE, T; P18519, NGFR_CHICK, T; P08138, NGFR_HUMAN, T;
+DR   P07174, NGFR_RAT  , T; P19438, TNR1_HUMAN, T; P25118, TNR1_MOUSE, T;
+DR   P22934, TNR1_RAT  , T;
+DO   PDOC50017;
+//
+ID   FHA_DOMAIN; MATRIX.
+AC   PS50006;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Forkhead-associated (FHA) domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=53; TOPOLOGY=LINEAR;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=48;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=0.8473; R2=0.0187; TEXT='NScore';
+MA   /CUT_OFF: LEVEL=1; SCORE=409; N_SCORE=8.5; MODE=1;
+MA   /CUT_OFF: LEVEL=0; SCORE=329; N_SCORE=7.0; MODE=1;
+MA   /DEFAULT: B1=-50; E1=-50; MI=-105; MD=-105; IM=-105; DM=-105; I=-20; D=-20;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='V'; M=-6,-26,-15,-30,-25,5,-29,-24,16,-19,7,5,-24,-26,-22,-19,-16,-6,18,-6,3,-24;
+MA   /M: SY='T'; M=-8,-12,-22,-16,-11,-6,-19,-10,-6,-2,-7,-3,-6,-18,-8,3,-2,5,-2,-21,-3,-11;
+MA   /M: SY='I'; M=-10,-29,-24,-35,-27,16,-30,-25,28,-29,22,13,-22,-25,-25,-24,-20,-10,19,-15,3,-27;
+MA   /M: SY='G'; M=0,-10,-30,-10,-20,-30,70,-20,-40,-20,-30,-20,0,-20,-20,-20,0,-20,-30,-20,-30,-20;
+MA   /M: SY='R'; M=-19,-8,-30,-8,1,-21,-20,5,-30,29,-21,-9,1,-19,10,62,-10,-11,-21,-21,-8,1;
+MA   /M: SY='N'; M=-6,4,-23,-2,-6,-16,-7,1,-15,-3,-21,-12,15,-10,-3,2,4,-3,-16,-27,-9,-7;
+MA   /M: SY='S'; M=3,-1,-18,-4,-2,-18,-14,-14,-12,-3,-17,-12,1,-8,-4,-5,11,11,-5,-30,-15,-4;
+MA   /M: SY='D'; M=-6,16,-25,24,17,-29,-12,-7,-28,3,-26,-21,6,1,2,-6,7,1,-22,-34,-19,9;
+MA   /I: MI=-12; MD=-12; IM=-12; I=-4;
+MA   /M: SY='R'; D=-2; M=-6,1,-17,0,3,-16,-5,-2,-14,4,-13,-8,6,-6,6,7,1,-4,-15,-19,-11,4;
+MA   /I: DM=-12;
+MA   /M: SY='C'; M=-4,-20,45,-25,-23,-14,-22,-26,-9,-22,-10,-9,-18,-26,-23,-21,-6,-5,5,-38,-21,-24;
+MA   /M: SY='D'; M=-18,42,-29,56,20,-38,-10,2,-36,1,-29,-26,21,-11,7,-7,1,-9,-30,-38,-19,13;
+MA   /M: SY='V'; M=-5,-27,-10,-29,-25,-1,-26,-23,20,-22,15,10,-25,-28,-21,-20,-15,-6,25,-24,-5,-24;
+MA   /M: SY='A'; M=2,-3,-19,-6,-7,-12,-14,-6,-10,-4,-11,-8,0,-17,-7,-3,2,0,-5,-25,-7,-8;
+MA   /I: MD=-10;
+MA   /M: SY='L'; D=-3; M=-2,-11,-13,-11,-6,-3,-9,-5,1,-12,11,6,-10,-14,-6,-9,-7,-4,-1,-15,-4,-6;
+MA   /I: MI=0; IM=0; DM=-10; I=-5;
+MA   /M: SY='L'; M=-6,-21,-17,-25,-20,3,-2,-19,-2,-23,7,4,-16,-24,-17,-19,-14,-12,-4,-17,-6,-19;
+MA   /M: SY='E'; M=-10,9,-28,12,16,-27,-11,-5,-25,6,-22,-16,7,1,5,0,0,-5,-24,-30,-18,10;
+MA   /M: SY='S'; M=0,5,-22,6,0,-23,-2,-5,-20,-10,-21,-16,7,-3,-4,-12,10,-1,-17,-33,-18,-3;
+MA   /M: SY='P'; M=-8,-5,-29,-4,4,-26,-11,-9,-23,10,-26,-12,-2,15,3,5,-1,-6,-22,-27,-19,2;
+MA   /M: SY='V'; M=-8,-11,-19,-12,-12,1,-21,-15,0,-10,-3,-3,-8,-22,-14,-4,-4,-3,6,-24,-6,-13;
+MA   /M: SY='I'; M=-7,-30,-22,-35,-28,2,-35,-28,38,-27,22,17,-25,-25,-23,-25,-19,-7,33,-23,-3,-28;
+MA   /M: SY='S'; M=10,0,-10,0,0,-20,0,-10,-20,-10,-30,-20,10,-10,0,-10,40,20,-10,-40,-20,0;
+MA   /M: SY='R'; M=-14,-4,-27,-6,-2,-21,-8,-3,-29,20,-22,-12,6,-19,5,46,-4,-6,-21,-23,-13,-2;
+MA   /M: SY='R'; M=-10,-9,-15,-14,-11,-6,-22,-10,-5,2,-9,-2,-4,-22,-7,4,-8,-4,1,-22,-4,-10;
+MA   /M: SY='H'; M=-20,0,-30,0,0,-20,-20,100,-30,-10,-20,0,10,-20,10,0,-10,-20,-30,-30,20,0;
+MA   /M: SY='A'; M=23,-15,21,-24,-18,-10,-9,-23,-14,-18,-9,-11,-14,-21,-19,-23,0,-5,-3,-25,-18,-18;
+MA   /M: SY='Q'; M=-6,-7,-14,-8,4,-17,-21,-9,-12,-2,-10,-6,-7,-16,7,0,-5,-7,-10,-24,-11,5;
+MA   /M: SY='I'; M=-10,-30,-23,-36,-28,13,-35,-26,33,-29,25,16,-24,-25,-24,-25,-21,-9,24,-17,3,-28;
+MA   /M: SY='Y'; M=-11,-10,-23,-13,-5,3,-20,5,-16,-5,-11,-7,-5,-18,-4,0,-3,-1,-14,-10,6,-5;
+MA   /M: SY='Y'; M=-10,-21,-6,-24,-19,8,-27,-5,-2,-15,2,0,-19,-27,-14,-14,-16,-10,-2,-3,19,-18;
+MA   /M: SY='D'; M=-10,11,-26,12,6,-24,0,-1,-23,-3,-18,-14,9,-15,0,-6,-2,-7,-21,-30,-16,3;
+MA   /I: MD=-10;
+MA   /M: SY='P'; D=-3; M=-10,-5,-22,-6,-2,-3,-15,-3,-12,-7,-10,-6,-2,6,-5,-5,-6,-6,-15,-19,-6,-4;
+MA   /I: MD=-10;
+MA   /M: SY='Q'; D=-3; M=-8,0,-16,-2,0,-10,-10,2,-12,-2,-7,-3,1,-11,4,1,-2,0,-11,-16,-4,2;
+MA   /I: MI=0; IM=0; DM=-10; I=-5;
+MA   /M: SY='D'; M=-7,4,-23,6,5,-22,-9,-10,-18,-2,-18,-13,3,-13,0,-2,5,2,-13,-30,-16,2;
+MA   /M: SY='G'; M=-7,-1,-30,-3,-4,-22,10,-11,-27,-5,-26,-17,4,0,-5,-7,-4,-12,-27,-15,-18,-5;
+MA   /M: SY='R'; M=-4,-2,-24,-5,4,-20,-8,-2,-20,7,-16,-8,2,-15,1,10,-2,-6,-15,-25,-13,1;
+MA   /M: SY='W'; M=-10,-28,-27,-31,-24,15,-26,-17,4,-20,1,-1,-25,-27,-19,-18,-20,-12,4,27,14,-20;
+MA   /M: SY='Y'; M=-10,-10,-25,-10,-3,3,-16,3,-10,-9,-7,-6,-6,-19,-6,-9,-5,-6,-12,-10,15,-6;
+MA   /M: SY='L'; M=-8,-30,-21,-33,-24,6,-33,-24,30,-28,35,18,-27,-27,-22,-23,-24,-8,22,-22,-2,-24;
+MA   /M: SY='H'; M=-11,1,-27,2,11,-19,-19,14,-21,5,-18,-9,3,-14,8,8,-4,-9,-19,-26,-6,8;
+MA   /M: SY='D'; M=-16,27,-14,37,8,-30,-17,-7,-23,-7,-21,-20,10,-15,-6,-14,-3,-9,-17,-38,-18,0;
+MA   /I: MI=0; IM=0; I=-8;
+MA   /M: SY='A'; M=-8,-14,-18,-17,-14,-8,-5,-7,-10,-10,-6,-3,-8,-20,-13,-10,-8,-8,-8,-22,-7,-14;
+MA   /M: SY='S'; M=7,-3,-16,-3,-6,-23,20,-13,-26,-13,-30,-20,7,-13,-6,-13,29,9,-16,-34,-23,-6;
+MA   /M: SY='T'; M=-2,-4,-17,-7,-1,-16,-15,-11,-15,2,-14,-8,-1,-13,-1,5,11,14,-8,-29,-12,-1;
+MA   /M: SY='N'; M=-9,32,-20,16,1,-21,-2,13,-21,-1,-29,-18,50,-19,4,0,11,0,-28,-38,-17,2;
+MA   /M: SY='G'; M=-1,-12,-29,-11,-20,-28,59,-21,-35,-19,-28,-18,-3,-15,-20,-20,-1,-18,-25,-21,-29,-20;
+MA   /M: SY='T'; M=6,-5,-4,-13,-11,-11,-17,-20,-9,-12,-9,-9,-4,-13,-11,-13,16,32,1,-31,-13,-11;
+MA   /M: SY='F'; M=-16,-22,-25,-26,-18,29,-28,-9,-1,-13,6,1,-18,-26,-16,-8,-18,-8,-5,7,25,-17;
+MA   /M: SY='V'; M=-5,-29,-17,-32,-26,3,-31,-25,30,-24,25,18,-28,-28,-23,-21,-19,-5,32,-25,-5,-26;
+MA   /M: SY='N'; M=-11,38,-21,25,5,-23,-3,7,-23,0,-29,-21,49,-17,1,-2,9,1,-29,-39,-20,3;
+MA   /M: SY='G'; M=-8,2,-26,0,-10,-12,21,-1,-28,-11,-23,-16,10,-20,-12,-11,-1,-12,-24,-21,-10,-11;
+MA   /M: SY='Q'; M=-5,-7,-21,-10,-3,-17,-20,-5,-6,-1,-7,-2,-3,-18,4,4,-3,-3,-3,-26,-10,0;
+MA   /M: SY='R'; M=-15,-14,-27,-14,-5,-8,-22,-8,-18,15,-11,-6,-7,-16,-1,36,-11,-8,-11,-19,-7,-6;
+MA   /M: SY='L'; M=-9,-24,-22,-27,-18,-1,-30,-13,20,-22,24,17,-21,-24,-10,-17,-19,-7,13,-22,-2,-15;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=15(14); /POSITIVE=15(14); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=0;
+CC   /TAXO_RANGE=??EP?; /MAX-REPEAT=2;
+DR   Q09170, CDS1_SCHPO, T; P39009, DUN1_YEAST, T; P39521, FHL1_YEAST, T;
+DR   P40466, FKH1_YEAST, T; P41813, FKH2_YEAST, T; P46017, FRAH_ANASP, T;
+DR   P46014, KAPP_ARATH, T; P46013, KI67_HUMAN, T; P24719, MEK1_YEAST, T;
+DR   P42128, MNF_MOUSE , T; P22216, SPK1_YEAST, T; P38823, YHR5_YEAST, T;
+DR   P46012, YKI5_CAEEL, T; P34648, YOT2_CAEEL, T;
+DO   PDOC50006;
+//
+ID   C2_DOMAIN_2; MATRIX.
+AC   PS50004;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   C2-domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=106; TOPOLOGY=LINEAR;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=104;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=0.2888; R2=0.0148; TEXT='NScore';
+MA   /CUT_OFF: LEVEL=1;  SCORE=555; N_SCORE=8.5; MODE=1;
+MA   /CUT_OFF: LEVEL=0;  SCORE=453; N_SCORE=7.0; MODE=1;
+MA   /CUT_OFF: LEVEL=-1; SCORE=420; N_SCORE=6.5; MODE=1;
+MA   /DEFAULT: B1=-70; E1=-50; MI=-105; MD=-105; IM=-105; DM=-105; I=-70; D=-20;
+MA   /I: B1=0; BI=-105;
+MA   /M: SY='D'; M=-18,46,-29,60,21,-37,-10,1,-37,1,-29,-28,23,-10,2,-8,1,-9,-30,-39,-20,11;
+MA   /M: SY='P'; M=-9,-18,-38,-10,-1,-28,-20,-20,-19,-10,-28,-19,-18,82,-10,-19,-8,-5,-28,-30,-28,-10;
+MA   /M: SY='F'; M=-16,-23,-21,-31,-24,51,-20,-16,-6,-22,2,-3,-15,-26,-30,-13,-13,-4,-4,3,22,-24;
+MA   /M: SY='S'; M=6,11,-16,9,1,-23,-9,-10,-20,-6,-20,-16,8,-11,0,-10,16,14,-12,-32,-17,1;
+MA   /M: SY='E'; M=-10,4,-27,10,29,-25,-20,1,-22,6,-16,-13,-2,-3,8,-1,-3,-6,-20,-29,-14,18;
+MA   /M: SY='S'; M=4,5,-19,5,3,-21,-5,-11,-16,-8,-19,-15,5,-12,-4,-12,13,5,-10,-32,-18,-1;
+MA   /M: SY='T'; M=-5,-12,-24,-14,-7,-17,-21,-16,-3,-5,-13,-6,-6,1,-3,-4,3,6,-4,-27,-13,-8;
+MA   /M: SY='V'; M=-5,-27,-17,-29,-26,3,-25,-25,20,-19,11,8,-24,-28,-25,-14,-14,-5,29,-24,-6,-26;
+MA   /M: SY='D'; M=-13,26,-29,38,20,-34,-13,-3,-34,6,-26,-23,9,-4,4,2,-2,-9,-26,-33,-19,11;
+MA   /M: SY='G'; M=-2,-13,-26,-13,-19,-21,34,-12,-25,-18,-22,-14,-5,-21,-17,-17,-1,-11,-16,-15,-18,-18;
+MA   /M: SY='V'; M=-2,-21,-20,-23,-17,-7,-23,-20,12,-15,3,3,-16,-21,-11,-12,-5,-2,14,-18,-7,-15;
+MA   /M: SY='I'; M=-6,-23,-22,-26,-18,0,-30,-19,22,-18,13,12,-21,-22,-16,-18,-15,-5,19,-19,2,-19;
+MA   /M: SY='A'; M=14,-14,-19,-16,-9,-16,-11,-12,-9,-12,-9,-8,-12,4,-10,-15,2,-1,-5,-24,-14,-11;
+MA   /M: SY='N'; M=-3,10,-13,0,-6,-21,0,-1,-19,-3,-22,-11,20,-18,-2,-5,4,-3,-19,-32,-17,-4;
+MA   /M: SY='Q'; M=-3,0,-20,-3,5,-23,-15,-6,-20,9,-21,-11,3,-11,10,9,10,10,-14,-28,-12,7;
+MA   /M: SY='L'; M=-10,-30,-16,-32,-23,11,-31,-23,22,-29,37,17,-28,-29,-23,-22,-25,-9,16,-20,0,-23;
+MA   /M: SY='T'; M=-6,-5,-18,-9,-5,-15,-19,-5,-11,2,-13,-6,0,-16,-3,4,2,7,-5,-27,-9,-5;
+MA   /M: SY='V'; M=-4,-29,-14,-32,-29,0,-31,-29,32,-23,15,13,-27,-27,-26,-23,-14,-4,39,-27,-7,-29;
+MA   /M: SY='R'; M=-7,-1,-22,-3,-1,-21,-12,-6,-18,7,-18,-9,2,-15,0,8,0,3,-11,-26,-12,-2;
+MA   /M: SY='I'; M=-6,-28,-20,-33,-28,2,-34,-28,36,-25,17,14,-23,-25,-24,-24,-16,-6,35,-24,-4,-28;
+MA   /M: SY='I'; M=-9,-22,-21,-27,-18,-1,-27,-16,17,-18,15,11,-17,-23,-14,-14,-18,-10,9,-20,-1,-19;
+MA   /M: SY='E'; M=-2,2,-22,5,18,-27,-9,-5,-26,7,-24,-16,2,-9,11,6,8,-3,-21,-29,-18,14;
+MA   /M: SY='A'; M=34,-11,-3,-19,-14,-21,10,-21,-17,-14,-14,-12,-9,-15,-14,-21,6,-4,-6,-23,-22,-14;
+MA   /I: MD=-30;
+MA   /M: SY='R'; M=-9,-3,-25,-3,5,-23,-18,1,-18,12,-17,-6,-1,-14,14,15,-5,-7,-15,-20,-9,8;
+MA   /I: MI=0; MD=-10; IM=0; DM=-10; I=-8;
+MA   /M: SY='N'; M=-10,11,-23,6,0,-14,0,7,-23,-4,-21,-13,17,-17,-1,-4,1,-8,-23,-26,-10,0;
+MA   /M: SY='L'; M=-9,-29,-19,-29,-20,10,-29,-20,20,-29,46,19,-29,-29,-20,-20,-28,-9,11,-19,0,-20;
+MA   /I: MD=-20; DM=-20;
+MA   /M: SY='P'; M=-5,-10,-23,-9,-1,-19,-17,-12,-12,5,-18,-8,-8,15,-2,0,-3,-2,-12,-22,-13,-4;
+MA   /I: MD=-20;
+MA   /M: SY='K'; M=2,-3,-23,-2,1,-21,-9,-11,-20,9,-19,-12,-4,4,-2,2,-3,-6,-15,-18,-13,-1;
+MA   /I: MI=0; MD=-20; IM=0; DM=-20; I=-8;
+MA   /M: SY='M'; M=-5,-10,-19,-15,-9,-8,-12,-6,-3,0,0,12,-8,-16,-3,1,-8,-4,-3,-18,-5,-6;
+MA   /I: MD=-5; DM=-10;
+MA   /M: SY='D'; M=-11,26,-23,35,11,-28,-7,-1,-28,3,-22,-19,12,-9,1,-1,1,-6,-21,-28,-15,6;
+MA   /I: MD=-10; DM=-10;
+MA   /M: SY='A'; M=-4,-13,-19,-15,-8,-2,-14,-13,-4,-4,-6,-3,-11,-9,-8,-5,-7,-4,-3,-2,-3,-8;
+MA   /I: MD=-5;
+MA   /M: SY='N'; M=-1,5,-11,0,-6,-15,10,-7,-16,-8,-18,-12,14,-13,-6,-8,10,3,-14,-25,-15,-6;
+MA   /I: MI=0; MD=-10; IM=0; DM=-10; I=-5;
+MA   /M: SY='L'; M=-2,-13,-14,-17,-13,4,-18,-13,5,-14,7,3,-10,-16,-11,-12,-4,5,4,-15,1,-12;
+MA   /I: DM=-10;
+MA   /M: SY='S'; M=6,-13,-9,-16,-12,-11,-15,-19,-3,-15,-10,-8,-8,-12,-12,-16,10,8,3,-27,-14,-13;
+MA   /M: SY='D'; M=-14,36,-22,46,13,-34,-5,-2,-35,-1,-29,-26,20,-13,-1,-8,4,-7,-27,-38,-20,6;
+MA   /M: SY='P'; M=-6,-18,-31,-13,-4,-23,-20,-20,-14,-12,-21,-15,-17,60,-11,-19,-7,-5,-21,-29,-24,-11;
+MA   /M: SY='Y'; M=-20,-22,-28,-25,-22,41,-30,10,0,-14,2,0,-20,-30,-17,-12,-20,-10,-8,24,66,-22;
+MA   /M: SY='V'; M=2,-27,-2,-29,-28,-2,-28,-28,22,-21,8,7,-27,-28,-27,-21,-10,-1,37,-29,-10,-28;
+MA   /M: SY='K'; M=-7,3,-23,3,16,-24,-18,-7,-24,19,-22,-13,2,-10,6,11,-1,0,-18,-25,-13,11;
+MA   /M: SY='V'; M=-4,-29,-18,-33,-27,3,-32,-27,32,-24,21,16,-26,-26,-24,-23,-17,-5,33,-24,-5,-27;
+MA   /M: SY='E'; M=-9,3,-24,3,7,-9,-15,1,-21,-3,-18,-13,2,-14,1,-5,2,-1,-18,-17,-1,4;
+MA   /M: SY='L'; M=-7,-28,-20,-32,-24,9,-30,-22,24,-25,29,19,-26,-27,-21,-21,-21,-7,20,-18,0,-23;
+MA   /I: MD=-10;
+MA   /M: SY='Y'; D=-10; M=-5,-13,-14,-15,-12,2,-14,0,1,-12,4,5,-11,-17,-9,-11,-10,-7,0,-8,6,-12;
+MA   /I: MD=-10;
+MA   /M: SY='G'; D=-10; M=-2,-8,-19,-7,-6,-19,15,-10,-20,-10,-18,-12,-5,9,-7,-12,-2,-7,-18,-17,-16,-8;
+MA   /I: MD=-10;
+MA   /M: SY='D'; D=-10; M=-6,9,-17,13,0,-16,-7,-8,-12,-7,-7,-9,2,-9,-6,-10,-2,-3,-8,-23,-11,-4;
+MA   /I: MD=-10;
+MA   /M: SY='P'; D=-10; M=-3,-3,-19,1,4,-18,-5,-5,-15,-3,-16,-10,-3,16,-1,-6,1,-3,-15,-20,-14,0;
+MA   /I: MI=0; MD=-20; IM=0; DM=-20; I=-7;
+MA   /M: D=-2; M=-3,-9,-14,-11,-8,-6,-8,-7,-7,-1,-7,-3,-7,-12,-6,0,-3,-2,-2,-14,-2,-8;
+MA   /I: MD=-10;
+MA   /M: SY='D'; D=-2; M=-11,14,-21,18,7,-20,-8,0,-22,6,-18,-14,10,-9,3,8,-1,-4,-18,-23,-10,4;
+MA   /I: MD=-10;
+MA   /M: SY='T'; D=-2; M=-4,-5,-14,-6,-1,-11,-15,-11,-4,-7,-5,-4,-6,-11,-3,-9,0,3,-2,-21,-7,-3;
+MA   /I: MD=-10;
+MA   /M: SY='K'; D=-2; M=-1,-3,-19,-6,-3,-16,-4,-9,-16,6,-18,-9,2,-13,-2,5,2,-2,-10,-21,-12,-3;
+MA   /I: MD=-10;
+MA   /M: SY='K'; D=-2; M=-5,-2,-24,-2,5,-23,-14,-6,-21,24,-21,-9,-1,-10,6,17,-4,-7,-14,-21,-11,5;
+MA   /I: MD=-10;
+MA   /M: SY='R'; D=-2; M=-11,-4,-23,-5,4,-15,-18,1,-20,15,-17,-7,-1,-13,9,18,-5,-4,-16,-16,-3,6;
+MA   /I: MD=-10;
+MA   /M: SY='K'; D=-2; M=-8,-3,-23,-2,9,-20,-17,-7,-20,25,-19,-8,-3,-10,7,19,-6,-7,-13,-15,-8,8;
+MA   /I: MD=-10;
+MA   /M: SY='F'; D=-2; M=-3,-12,-13,-15,-11,8,-13,-7,-1,-8,2,0,-10,-14,-10,-7,-8,-4,0,-1,6,-10;
+MA   /I: MD=-10;
+MA   /M: SY='R'; D=-2; M=-7,-3,-14,-2,6,-13,-12,-2,-15,13,-13,-6,-1,-9,6,18,-3,-4,-12,-13,-5,5;
+MA   /I: MI=-20; MD=-10; IM=-20; DM=-10; I=-5;
+MA   /M: SY='T'; D=-2; M=1,0,-11,-8,-8,-11,-17,-18,-11,-5,-12,-10,0,-9,-8,-7,17,40,-2,-28,-10,-8;
+MA   /I: DM=-10;
+MA   /M: SY='K'; M=-5,-3,-24,-4,3,-24,-14,-7,-24,18,-24,-12,0,-8,6,18,3,3,-16,-25,-13,3;
+MA   /M: SY='T'; M=-3,-14,-14,-19,-18,-4,-24,-16,8,-16,0,2,-11,-19,-16,-15,3,18,17,-28,-6,-18;
+MA   /M: SY='V'; M=-6,-16,-22,-18,-14,-6,-25,-8,5,-5,-3,2,-12,-20,-11,-7,-8,-5,9,-22,-1,-14;
+MA   /M: SY='K'; M=-7,-1,-27,-3,5,-24,-16,-1,-22,17,-22,-9,2,-12,10,17,-4,-7,-18,-18,-10,7;
+MA   /I: MI=0; MD=-20; IM=0; DM=-20; I=-5;
+MA   /M: SY='N'; D=-5; M=-9,19,-17,12,4,-25,-5,-1,-26,12,-28,-17,26,-16,2,6,1,-6,-25,-32,-18,3;
+MA   /I: DM=-25;
+MA   /M: SY='T'; D=-5; M=-1,4,-16,-1,-6,-18,3,-14,-20,-10,-19,-15,6,-13,-8,-11,15,20,-12,-30,-17,-7;
+MA   /I: DM=-25;
+MA   /M: SY='L'; M=-9,-17,-22,-20,-16,4,-23,-16,7,-19,17,7,-14,-24,-15,-13,-16,-7,2,-14,-2,-15;
+MA   /M: SY='N'; M=-9,29,-19,16,3,-20,-5,9,-22,1,-27,-18,42,-18,1,0,8,0,-26,-37,-17,1;
+MA   /M: SY='P'; M=-9,-20,-40,-10,0,-30,-20,-20,-20,-10,-30,-20,-20,89,-10,-20,-10,-10,-30,-30,-30,-10;
+MA   /M: SY='V'; M=-8,-18,-22,-21,-14,-1,-27,-10,9,-10,1,4,-16,-22,-11,-8,-11,-4,11,-15,5,-14;
+MA   /M: SY='W'; M=-20,-34,-39,-37,-29,33,-24,-20,-11,-21,-9,-11,-31,-30,-24,-19,-31,-21,-19,93,37,-23;
+MA   /I: MI=0; IM=0; I=-4;
+MA   /M: SY='N'; M=-8,24,-22,16,6,-23,-1,3,-23,-1,-26,-18,32,-16,2,-3,8,-1,-25,-34,-18,4;
+MA   /M: SY='E'; M=-10,11,-28,19,48,-28,-19,-1,-28,9,-20,-19,2,-3,16,0,1,-7,-27,-29,-17,32;
+MA   /M: SY='E'; M=-2,1,-21,2,11,-20,-16,-11,-18,0,-18,-14,-1,-1,1,-5,9,11,-13,-29,-14,5;
+MA   /M: SY='F'; M=-16,-29,-17,-37,-27,58,-29,-20,5,-28,14,6,-21,-27,-33,-20,-20,-10,3,1,20,-27;
+MA   /M: SY='T'; M=-5,-8,-14,-9,-3,-12,-22,-7,-4,-9,-5,-4,-9,-18,-5,-10,-2,3,1,-27,-6,-5;
+MA   /M: SY='F'; M=-15,-27,-20,-36,-27,61,-29,-17,2,-27,9,1,-19,-28,-34,-19,-17,-8,2,6,27,-27;
+MA   /M: SY='E'; M=-11,6,-28,9,15,-21,-16,-3,-21,4,-18,-13,3,-5,6,-1,-3,-8,-21,-25,-10,9;
+MA   /I: MD=-20;
+MA   /M: SY='V'; D=-2; M=-5,-9,-12,-9,-9,-8,-12,-13,1,-8,1,0,-8,-16,-10,-9,-7,-4,4,-19,-8,-10;
+MA   /I: MI=0; MD=-10; IM=0; DM=-10; I=-5;
+MA   /M: SY='V'; D=-2; M=-4,-18,-15,-19,-17,-1,-21,-18,17,-14,9,7,-17,-19,-16,-14,-11,-5,19,-18,-3,-17;
+MA   /I: DM=-20;
+MA   /M: SY='P'; D=-2; M=-6,-11,-21,-7,0,-14,-16,-9,-6,-7,-10,-7,-10,24,-6,-11,-6,-4,-9,-21,-13,-5;
+MA   /I: DM=-20;
+MA   /M: SY='Y'; D=-2; M=-7,-7,-13,-7,-3,-1,-10,-3,-7,-7,-2,-3,-5,-8,-5,-4,-5,-4,-7,-11,1,-5;
+MA   /I: MD=-20; DM=-20;
+MA   /M: SY='E'; D=-2; M=-1,6,-16,9,10,-18,-7,-3,-16,-1,-14,-11,4,-6,5,-3,6,0,-14,-22,-12,7;
+MA   /I: MD=-20; DM=-20;
+MA   /M: SY='D'; D=-2; M=-7,6,-16,8,7,-17,-12,2,-14,1,-12,-7,3,-10,6,-1,0,-2,-12,-21,-7,6;
+MA   /I: MD=-20; DM=-20;
+MA   /M: SY='P'; D=-2; M=-6,-14,-20,-14,-9,-9,-18,-13,0,-13,-2,-1,-12,15,-10,-14,-8,-4,-5,-21,-11,-11;
+MA   /I: MD=-20;
+MA   /M: SY='E'; D=-2; M=-7,10,-21,14,18,-24,-10,-1,-20,1,-17,-13,6,-2,11,-3,2,-5,-20,-24,-14,14;
+MA   /I: MD=-20;
+MA   /M: SY='I'; D=-2; M=-7,-7,-23,-6,-5,-11,-3,-7,-13,-4,-4,-4,-5,-17,-5,-4,-9,-10,-12,-17,-6,-6;
+MA   /I: MI=0; MD=-10; IM=0; DM=-10; I=-2;
+MA   /M: SY='A'; D=-2; M=7,-7,-20,-12,-6,-18,-9,-10,-10,0,-12,-6,-3,-16,0,0,0,-4,-6,-22,-12,-4;
+MA   /I: DM=-20;
+MA   /M: SY='T'; M=-7,-9,-19,-11,-4,-11,-20,-8,-7,-4,-7,-2,-6,-13,-4,-1,-2,1,-5,-25,-8,-5;
+MA   /M: SY='L'; M=-9,-30,-19,-32,-23,8,-32,-23,26,-29,37,18,-28,-28,-21,-22,-25,-9,18,-21,-1,-23;
+MA   /M: SY='R'; M=-11,-7,-25,-8,2,-16,-19,-4,-14,7,-12,-6,-3,-17,2,18,-5,-5,-11,-21,-7,0;
+MA   /M: SY='F'; M=-12,-28,-21,-34,-25,28,-32,-23,21,-26,17,11,-23,-26,-26,-21,-19,-8,18,-12,8,-25;
+MA   /M: SY='T'; M=4,-5,-19,-7,2,-17,-14,-11,-11,-4,-8,-7,-5,-13,1,-7,4,5,-7,-25,-12,2;
+MA   /M: SY='V'; M=0,-29,-6,-30,-28,2,-29,-28,24,-22,12,9,-28,-29,-28,-21,-12,-2,38,-27,-8,-28;
+MA   /M: SY='Y'; M=-15,-21,-26,-24,-17,16,-25,-3,-3,-14,1,2,-19,-26,-13,-12,-20,-13,-8,22,25,-15;
+MA   /M: SY='D'; M=-17,38,-29,53,22,-36,-12,9,-36,0,-27,-25,17,-10,3,-8,0,-10,-29,-37,-16,12;
+MA   /M: SY='Y'; M=-11,-6,-28,-5,2,1,-20,-2,-17,-2,-12,-10,-8,-18,-3,-3,-10,-10,-17,3,13,-1;
+MA   /I: MI=0; MD=-10; IM=0; DM=-20; I=-7;
+MA   /M: SY='D'; D=-3; M=-11,30,-19,37,11,-30,-7,-3,-30,0,-25,-22,17,-11,0,-7,3,-4,-23,-34,-18,5;
+MA   /I: DM=-15;
+MA   /M: SY='R'; D=-3; M=-9,-6,-21,-8,-5,-11,-16,-5,-14,9,-13,-5,-2,-12,-2,17,-7,-6,-11,-18,-4,-5;
+MA   /I: MD=-15; DM=-15;
+MA   /M: SY='F'; D=-3; M=-5,-15,-20,-19,-16,5,-13,-17,1,-16,0,1,-11,-20,-16,-15,-7,-3,2,-18,-3,-16;
+MA   /I: MD=-15; DM=-15;
+MA   /M: SY='G'; D=-3; M=0,-7,-22,-8,-9,-20,15,-14,-23,-8,-22,-13,0,-12,-7,-7,9,0,-16,-22,-18,-8;
+MA   /I: MD=-15;
+MA   /M: SY='K'; M=-13,6,-29,9,7,-26,-16,2,-28,19,-25,-14,4,-8,6,19,-5,-8,-22,-24,-9,5;
+MA   /I: MI=0; MD=-20; IM=0; DM=-20; I=-5;
+MA   /M: SY='B'; D=-2; M=-12,29,-22,29,7,-24,-8,10,-24,-1,-22,-17,25,-11,1,-4,2,-4,-24,-32,-13,4;
+MA   /I: MD=-20; DM=-20;
+MA   /M: SY='D'; D=-2; M=-12,23,-25,32,20,-28,-12,0,-28,4,-22,-20,11,-8,4,1,0,-7,-23,-31,-16,12;
+MA   /I: MI=0; MD=-20; IM=0; DM=-20; I=-5;
+MA   /M: SY='F'; D=-2; M=-12,-24,-20,-29,-22,33,-28,-19,6,-23,10,3,-20,-19,-25,-18,-16,-6,5,-8,10,-22;
+MA   /I: DM=-20;
+MA   /M: SY='I'; M=-8,-29,-20,-34,-26,4,-33,-24,33,-26,25,21,-24,-24,-20,-24,-21,-8,24,-21,-2,-25;
+MA   /M: SY='G'; M=7,-10,-27,-11,-19,-29,60,-20,-36,-19,-27,-19,-1,-19,-19,-20,1,-17,-26,-20,-29,-19;
+MA   /M: SY='Q'; M=-8,3,-25,2,11,-25,-15,8,-21,7,-20,-8,5,-13,16,7,1,-4,-19,-27,-10,12;
+MA   /M: SY='V'; M=0,-19,3,-24,-19,-6,-19,-19,-1,-16,0,-2,-16,-24,-18,-12,-7,-1,7,-25,-9,-19;
+MA   /M: SY='T'; M=-5,-7,-14,-10,-7,-13,-21,-13,-6,-5,-8,-5,-5,-17,-2,-3,1,7,-3,-26,-8,-6;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL 83(67); /POSITIVE=83(67); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=9; /PARTIAL=0;
+CC   /TAXO-RANGE=??E??; /MAX-REPEAT=4;
+DR   P11274, BCR_HUMAN , T; P33314, BUD2_YEAST, T; P09851, GTPA_BOVIN, T;
+DR   P20936, GTPA_HUMAN, T; P05130, KPC1_DROME, T; P05771, KPC1_HUMAN, T;
+DR   P05772, KPC1_RABIT, T; P04410, KPC1_RAT  , T; P05126, KPC2_BOVIN, T;
+DR   P34885, KPC2_CAEEL, T; P13677, KPC2_DROME, T; P05127, KPC2_HUMAN, T;
+DR   P05773, KPC2_RABIT, T; P04411, KPC2_RAT  , T; P04409, KPCA_BOVIN, T;
+DR   P17252, KPCA_HUMAN, T; P20444, KPCA_MOUSE, T; P10102, KPCA_RABIT, T;
+DR   P05696, KPCA_RAT  , T; Q02156, KPCE_HUMAN, T; P16054, KPCE_MOUSE, T;
+DR   P10830, KPCE_RABIT, T; P09216, KPCE_RAT  , T; P05128, KPCG_BOVIN, T;
+DR   P05129, KPCG_HUMAN, T; P10829, KPCG_RABIT, T; P05697, KPCG_RAT  , T;
+DR   P24723, KPCL_HUMAN, T; P23298, KPCL_MOUSE, T; P46934, NED4_HUMAN, T;
+DR   P14222, PERF_HUMAN, T; P10820, PERF_MOUSE, T; P35763, PERF_RAT  , T;
+DR   P10894, PIP1_BOVIN, T; P25455, PIP1_DROME, T; P10687, PIP1_RAT  , T;
+DR   P40977, PIP1_SCHPO, T; P32383, PIP1_YEAST, T; Q00722, PIP2_HUMAN, T;
+DR   Q01970, PIP3_HUMAN, T; P08487, PIP4_BOVIN, T; P19174, PIP4_HUMAN, T;
+DR   P10686, PIP4_RAT  , T; P16885, PIP5_HUMAN, T; P24135, PIP5_RAT  , T;
+DR   P10895, PIP6_BOVIN, T; P10688, PIP6_RAT  , T; Q02158, PIPA_DICDI, T;
+DR   P13217, PIPA_DROME, T; P39940, RSP5_YEAST, T; P11792, SCH9_YEAST, T;
+DR   P24505, SY61_DISOM, T; P24506, SY62_DISOM, T; P24507, SY63_DISOM, T;
+DR   P41823, SY65_APLCA, T; P21521, SY65_DROME, T; P34693, SYT1_CAEEL, T;
+DR   P47191, SYT1_CHICK, T; P21579, SYT1_HUMAN, T; P46096, SYT1_MOUSE, T;
+DR   P21707, SYT1_RAT  , T; P46097, SYT2_MOUSE, T; P29101, SYT2_RAT  , T;
+DR   P40748, SYT3_RAT  , T; P40749, SYT4_MOUSE, T; P27715, UN13_CAEEL, T;
+DR   P41885, YPT7_CAEEL, T;
+DR   P24583, KPC1_YEAST, N; Q05655, KPCD_HUMAN, N; P28867, KPCD_MOUSE, N;
+DR   P09215, KPCD_RAT  , N; P32871, P11A_BOVIN, N; P42336, P11A_HUMAN, N;
+DR   P42337, P11A_MOUSE, N; P42347, P3K1_SOYBN, N; P42348, P3K2_SOYBN, N;
+DO   PDOC00380;
+//
+ID   PH_DOMAIN; MATRIX.
+AC   PS50003;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   PH domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=104;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=99;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=1.6564; R2=0.0227; TEXT='NScore';
+MA   /CUT_OFF: LEVEL=1;  SCORE=301; N_SCORE=8.5; MODE=1;
+MA   /CUT_OFF: LEVEL=0;  SCORE=222; N_SCORE=6.7; MODE=1;
+MA   /CUT_OFF: LEVEL=-1; SCORE=191; N_SCORE=6.0; MODE=1;
+MA   /DEFAULT: D=-20; I=-20; B1=-100; E1=-100; MI=-105; MD=-105; IM=-105; DM=-105;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='D'; M=-7,4,-22,5,3,-21,-10,-5,-20,0,-17,-11,3,-14,3,2,1,-2,-15,-26,-13,2;
+MA   /M: SY='V'; M=-3,-18,-16,-20,-14,-5,-22,-17,5,-14,3,2,-16,-13,-14,-14,-8,-2,8,-25,-9,-15;
+MA   /M: SY='V'; M=-5,-14,-22,-16,-9,-10,-20,-16,4,-9,1,3,-12,-17,-8,-9,-8,-4,5,-23,-8,-10;
+MA   /M: SY='R'; M=-12,-11,-21,-13,-3,-13,-22,-2,-8,5,-6,3,-7,-18,0,7,-12,-10,-9,-21,-3,-3;
+MA   /M: SY='E'; M=-7,-1,-17,1,11,-20,-15,-4,-20,0,-16,-11,-2,-12,4,-2,1,-4,-16,-28,-12,7;
+MA   /M: SY='G'; M=0,-9,-29,-9,-16,-28,57,-19,-35,-19,-27,-18,-1,-19,-17,-19,1,-17,-27,-21,-28,-17;
+MA   /M: SY='Y'; M=-13,-15,-27,-16,-11,10,-23,-6,-8,-12,-6,-6,-14,-21,-12,-12,-13,-7,-11,16,19,-11;
+MA   /M: SY='L'; M=-9,-28,-20,-31,-21,7,-29,-18,23,-26,38,24,-27,-28,-17,-19,-25,-9,15,-21,-1,-20;
+MA   /M: SY='Y'; M=-8,-12,-22,-15,-8,-2,-21,-5,-3,-8,-1,0,-9,-20,-7,-7,-7,-2,-4,-14,4,-8;
+MA   /M: SY='K'; M=-10,-11,-25,-13,-3,-11,-23,-9,-8,11,-6,2,-9,-17,-1,11,-11,-6,-5,-20,-4,-3;
+MA   /M: SY='R'; M=-10,-12,-26,-14,-4,-12,-21,-7,-10,8,-6,0,-9,-17,2,10,-11,-8,-9,-12,-1,-2;
+MA   /M: SY='G'; M=-3,0,-21,0,-2,-21,4,-6,-22,-8,-20,-14,2,-12,-5,-9,4,-2,-15,-28,-15,-4;
+MA   /I: MD=-20;
+MA   /M: SY='E'; M=-5,-2,-24,-1,3,-20,-7,-8,-18,0,-19,-11,0,-5,1,-2,2,-3,-15,-25,-13,1; D=-2;
+MA   /I: MD=-20;
+MA   /M: M=-5,-8,-22,-9,-8,-11,-2,-11,-14,-5,-13,-9,-4,-16,-10,-5,-2,-5,-8,-18,-8,-9; D=-2;
+MA   /I: I=-5; MI=0; MD=-11; IM=0; DM=-11;
+MA   /M: SY='S'; M=2,-4,-12,-6,-3,-8,-1,-7,-10,-1,-10,-5,-1,-9,-2,-2,3,-1,-7,-14,-8,-3; D=-2;
+MA   /I: DM=-11;
+MA   /M: SY='R'; M=-5,-7,-20,-9,-7,-10,-9,-10,-11,-2,-9,-6,-3,-13,-5,1,-5,-6,-10,-14,-9,-7; D=-2;
+MA   /I: DM=-11;
+MA   /M: SY='K'; M=-7,-4,-24,-5,3,-18,-10,-7,-19,11,-16,-8,-1,-13,3,11,-3,-6,-15,-21,-11,2; D=-2;
+MA   /I: DM=-11;
+MA   /M: SY='N'; M=-3,-2,-23,-5,-1,-20,-4,-10,-19,2,-19,-12,4,-13,1,3,4,1,-15,-23,-14,-1; D=-2;
+MA   /I: DM=-11;
+MA   /M: SY='W'; M=-16,-26,-38,-25,-15,4,-20,-19,-18,-10,-16,-14,-24,-15,-12,-8,-23,-17,-23,66,15,-12;
+MA   /M: SY='K'; M=-11,-1,-27,-1,7,-24,-18,3,-23,18,-21,-8,1,-10,10,17,-5,-6,-18,-24,-8,7;
+MA   /M: SY='R'; M=-12,0,-29,2,12,-25,-19,-5,-23,13,-19,-11,0,-1,9,15,-6,-7,-20,-26,-14,8;
+MA   /M: SY='R'; M=-15,-13,-24,-15,-8,-7,-21,0,-16,9,-9,-4,-7,-23,-2,30,-11,-8,-10,-16,2,-8;
+MA   /M: SY='W'; M=-16,-22,-32,-25,-18,18,-25,3,-8,-15,-4,-4,-20,-26,-12,-12,-22,-15,-14,39,36,-15;
+MA   /M: SY='F'; M=-5,-26,-1,-33,-26,27,-24,-22,4,-25,7,1,-21,-28,-28,-21,-14,-8,8,-11,5,-26;
+MA   /M: SY='V'; M=-6,-20,-17,-25,-18,9,-25,-16,6,-14,2,3,-17,-23,-17,-11,-10,-3,10,-13,3,-18;
+MA   /M: SY='L'; M=-9,-30,-20,-31,-22,10,-30,-22,23,-29,42,18,-29,-29,-21,-21,-27,-9,15,-20,0,-22;
+MA   /M: SY='Y'; M=-10,-8,-19,-12,-8,1,-21,0,-13,-5,-8,-5,-5,-17,-6,-1,-5,0,-10,-19,2,-7;
+MA   /M: SY='D'; M=-7,9,-25,11,11,-25,-9,-4,-25,3,-23,-17,9,-4,3,3,4,-2,-22,-30,-18,6;
+MA   /I: I=-6; MI=0; IM=0; MD=-25; DM=-25;
+MA   /M: SY='N'; M=-6,8,-22,6,1,-20,-5,-4,-24,2,-22,-15,9,-13,-2,1,3,-2,-19,-28,-14,-1;
+MA   /M: SY='A'; M=-3,-9,-12,-12,-6,-13,-14,-10,-11,-6,-9,-6,-6,-19,-4,-5,-3,-4,-7,-23,-8,-6;
+MA   /M: SY='L'; M=-10,-29,-21,-32,-22,8,-31,-21,25,-27,39,22,-27,-27,-19,-20,-26,-10,15,-20,0,-21;
+MA   /M: SY='Y'; M=-4,-16,-17,-18,-14,1,-19,-10,2,-17,2,-1,-12,-21,-13,-15,-4,1,3,-19,4,-14;
+MA   /M: SY='Y'; M=-14,-26,-17,-29,-23,21,-28,-10,4,-21,10,3,-23,-29,-19,-18,-21,-11,-1,14,28,-21;
+MA   /M: SY='Y'; M=-10,-17,-7,-21,-17,12,-22,-2,-10,-14,-7,-6,-14,-25,-14,-11,-8,-4,-9,1,22,-16;
+MA   /M: SY='K'; M=-7,1,-24,3,9,-25,-14,-6,-24,16,-23,-13,1,-9,5,9,0,-3,-17,-26,-12,6;
+MA   /M: SY='E'; M=-3,6,-24,8,9,-24,-11,-7,-21,2,-20,-15,4,-5,1,-2,3,-3,-17,-29,-15,4;
+MA   /M: SY='D'; M=-4,3,-24,4,1,-23,-6,-9,-20,2,-20,-12,2,-9,-1,0,2,-4,-15,-27,-16,-1;
+MA   /I: I=-1; MI=0; MD=-15; IM=0;
+MA   /M: SY='E'; M=0,0,-11,0,2,-10,-4,-4,-9,-1,-8,-6,1,-5,-1,-1,1,0,-7,-12,-7,0; D=-2;
+MA   /I: DM=-15;
+MA   /M: SY='E'; M=-3,-2,-14,-2,3,-11,-9,-4,-10,2,-9,-5,-1,-4,2,3,1,0,-9,-15,-7,2; D=-2;
+MA   /I: DM=-15;
+MA   /M: SY='E'; M=-4,-1,-17,-1,1,-11,-5,-4,-13,-1,-11,-7,-1,-6,-1,-4,-1,-2,-11,-12,-5,0; D=-2;
+MA   /I: DM=-15;
+MA   /M: SY='E'; M=-4,0,-21,0,3,-19,-12,-3,-15,2,-14,-7,-1,-5,3,0,0,-1,-12,-23,-10,2; D=-2;
+MA   /I: DM=-15;
+MA   /M: SY='D'; M=-6,2,-23,4,4,-19,-6,-6,-20,0,-16,-13,1,-7,-1,-1,0,-4,-17,-22,-12,1; D=-2;
+MA   /I: DM=-15;
+MA   /M: SY='E'; M=-7,-1,-23,0,1,-8,-13,-4,-16,-2,-13,-10,-1,-14,-2,-4,-1,-3,-14,-18,0,-1; D=-2;
+MA   /I: DM=-15;
+MA   /M: SY='E'; M=-4,-1,-22,-1,4,-19,-13,-5,-19,3,-17,-11,1,-12,2,4,3,2,-14,-27,-12,2;
+MA   /M: SY='P'; M=-9,-11,-19,-10,-5,-14,-20,-12,-13,-3,-11,-8,-11,5,-8,-5,-10,-8,-13,-22,-8,-8;
+MA   /M: SY='K'; M=-8,-5,-27,-6,5,-21,-19,-6,-17,13,-16,-7,-2,-9,9,12,-5,-5,-15,-22,-9,6;
+MA   /M: SY='G'; M=-8,-3,-26,-3,-2,-19,4,-3,-24,-3,-19,-12,0,-13,-3,-4,-4,-9,-20,-19,-10,-4;
+MA   /M: SY='T'; M=-1,-10,-18,-13,-8,-11,-14,-11,-6,-8,-6,-2,-7,-13,-7,-8,1,2,-3,-25,-9,-8;
+MA   /M: SY='I'; M=-8,-28,-24,-34,-26,10,-32,-22,28,-26,19,14,-23,-24,-22,-23,-19,-8,20,-12,6,-26;
+MA   /M: SY='P'; M=-8,2,-25,5,0,-20,-15,-10,-18,-6,-20,-15,0,14,-5,-11,0,-3,-18,-28,-16,-4;
+MA   /M: SY='L'; M=-9,-29,-20,-32,-23,8,-30,-21,25,-26,33,21,-27,-27,-20,-20,-23,-8,18,-19,0,-22;
+MA   /M: SY='E'; M=-6,2,-22,3,9,-22,-16,-6,-19,4,-17,-10,2,-10,5,6,2,-1,-15,-28,-14,6;
+MA   /M: SY='N'; M=-1,7,-24,7,5,-25,5,-6,-25,-2,-21,-14,8,-13,1,-6,3,-6,-21,-27,-18,3;
+MA   /M: SY='V'; M=1,-21,2,-26,-21,-4,-24,-20,8,-21,5,2,-18,-24,-18,-19,-8,-2,11,-26,-7,-21;
+MA   /M: SY='Q'; M=-5,-4,-23,-6,1,-18,-16,-6,-11,1,-13,-6,-1,-15,5,4,1,-2,-10,-25,-9,2;
+MA   /M: SY='V'; M=-5,-20,-12,-22,-17,-2,-24,-21,11,-19,8,4,-18,-22,-18,-17,-10,-4,14,-25,-7,-19;
+MA   /M: SY='T'; M=-5,-8,-15,-9,-6,-13,-19,-13,-4,-7,-7,-4,-7,-17,-8,-5,-2,2,2,-27,-10,-8;
+MA   /M: SY='E'; M=-8,-2,-23,0,5,-19,-19,-4,-15,1,-14,-9,-4,-7,0,1,-4,-5,-13,-23,-8,1;
+MA   /M: SY='T'; M=-4,-7,-17,-8,-6,-14,-19,-13,-6,-6,-8,-5,-6,-10,-8,-7,-4,-2,-3,-26,-11,-8;
+MA   /M: SY='E'; M=-5,-3,-22,0,4,-20,-12,-12,-15,-5,-13,-11,-7,-2,-4,-10,-2,-3,-11,-27,-15,-1;
+MA   /I: MD=-11;
+MA   /M: SY='D'; M=-6,9,-25,11,9,-25,-13,0,-23,5,-22,-14,6,-4,5,0,1,-4,-20,-29,-14,6; D=-2;
+MA   /I: MD=-11;
+MA   /M: M=-7,-4,-24,-4,-3,-19,-5,-6,-16,-9,-15,-11,-1,-3,-4,-10,-2,-5,-17,-23,-12,-5; D=-2;
+MA   /I: MD=-11;
+MA   /M: SY='E'; M=-7,2,-22,5,6,-17,-14,-8,-19,3,-17,-12,0,-6,0,0,1,-2,-15,-25,-11,2; D=-2;
+MA   /I: MD=-11;
+MA   /M: SY='D'; M=-4,0,-21,1,1,-18,-6,-4,-16,1,-15,-8,0,-8,-2,-1,-1,-4,-11,-23,-12,-1; D=-2;
+MA   /I: MD=-11;
+MA   /M: M=-4,-3,-18,-3,-1,-12,-8,-8,-12,-2,-10,-7,-2,-5,-3,-5,0,-2,-10,-18,-9,-2; D=-2;
+MA   /I: MD=-11;
+MA   /M: M=-4,-4,-16,-5,0,-10,-9,-6,-7,0,-8,-4,-2,-5,-1,0,-3,-4,-7,-16,-7,-1; D=-2;
+MA   /I: I=-1; MI=0; MD=-11; IM=0; DM=-11;
+MA   /M: M=-3,-1,-13,-2,-1,-8,-5,0,-8,-2,-7,-4,0,-6,0,-1,-1,-2,-8,-10,-4,-1; D=-2;
+MA   /I: DM=-11;
+MA   /M: SY='K'; M=-9,4,-26,6,8,-26,-15,-3,-25,12,-25,-14,4,0,5,9,-1,-5,-21,-29,-15,5;
+MA   /M: SY='H'; M=-12,-6,-22,-11,-10,3,-18,11,-13,-5,-8,-4,2,-22,-7,0,-10,-9,-14,-15,7,-9;
+MA   /M: SY='C'; M=-3,-13,5,-17,-15,-12,-17,-16,-8,-12,-10,-4,-10,-17,-14,-14,-2,1,0,-29,-12,-15;
+MA   /M: SY='F'; M=-17,-30,-19,-39,-29,59,-31,-22,8,-29,14,5,-21,-29,-35,-21,-21,-10,5,3,21,-29;
+MA   /M: SY='E'; M=-4,-6,-18,-7,8,-20,-21,-10,-11,4,-10,-6,-6,-14,5,2,-4,-5,-8,-26,-13,6;
+MA   /M: SY='I'; M=-7,-29,-22,-34,-26,3,-34,-26,34,-27,27,18,-25,-25,-21,-24,-21,-7,26,-22,-2,-26;
+MA   /M: SY='V'; M=-8,-14,-18,-17,-12,-5,-23,-10,-4,-5,-5,-3,-10,-21,-9,1,-5,-1,2,-18,-3,-12;
+MA   /M: SY='T'; M=-7,-9,-19,-13,-10,-7,-17,-2,-8,-12,-8,-4,-5,-12,-7,-10,-2,3,-8,-20,-2,-10;
+MA   /M: SY='N'; M=-5,1,-22,1,0,-21,-8,-5,-21,-1,-19,-13,3,-5,-2,-2,0,-3,-18,-28,-15,-2;
+MA   /M: SY='B'; M=-5,10,-22,9,5,-26,-3,-2,-23,-1,-21,-13,9,-13,4,-4,3,-3,-20,-30,-16,5;
+MA   /M: SY='R'; M=-6,-3,-26,-3,0,-21,-3,-8,-22,2,-19,-12,0,-11,0,5,-3,-7,-18,-19,-14,-1;
+MA   /I: MD=-11;
+MA   /M: SY='E'; M=-4,2,-19,1,6,-17,-6,-5,-19,6,-18,-11,3,-6,3,4,2,-1,-15,-21,-12,4; D=-2;
+MA   /I: I=-3; MI=0; MD=-11; IM=0; DM=-11;
+MA   /M: SY='E'; M=-5,-1,-15,-1,3,-10,-8,-3,-10,2,-10,-6,1,-6,1,2,-1,-3,-9,-12,-6,1; D=-2;
+MA   /I: DM=-11;
+MA   /M: SY='S'; M=-2,-4,-19,-6,0,-18,-13,-10,-12,-5,-13,-9,-2,-10,0,-3,8,8,-8,-29,-14,-1;
+MA   /M: SY='F'; M=-14,-25,-23,-28,-22,18,-29,-6,7,-20,11,6,-21,-26,-19,-14,-20,-11,4,1,18,-21;
+MA   /M: SY='Y'; M=-9,-16,-22,-18,-11,2,-26,-9,5,-14,6,2,-15,-21,-12,-13,-12,-4,3,-12,8,-13;
+MA   /M: SY='F'; M=-12,-29,-20,-34,-25,30,-31,-22,18,-28,27,13,-25,-28,-27,-21,-22,-8,14,-11,9,-25;
+MA   /M: SY='Q'; M=-2,-8,-13,-11,-2,-16,-17,-4,-16,1,-15,-7,-5,-17,6,3,-1,-4,-12,-22,-7,2;
+MA   /M: SY='A'; M=20,-13,2,-21,-16,-9,-8,-21,-9,-16,-8,-8,-11,-17,-16,-19,4,3,0,-24,-15,-16;
+MA   /M: SY='E'; M=-5,9,-24,11,13,-26,-13,-6,-23,5,-23,-16,6,0,3,-2,4,-1,-19,-31,-17,7;
+MA   /M: SY='S'; M=-2,15,-17,12,1,-21,-6,-4,-22,-6,-25,-19,19,-11,-2,-7,20,15,-16,-37,-17,-1;
+MA   /M: SY='E'; M=-5,1,-21,6,15,-25,-15,-7,-21,0,-19,-15,-3,0,4,-5,0,-6,-18,-29,-17,9;
+MA   /I: I=-8; MI=0; IM=0; DM=-25; MD=-25;
+MA   /M: SY='E'; M=-6,4,-25,8,19,-24,-17,-5,-20,4,-17,-12,-1,-8,11,-1,0,-5,-18,-26,-13,15;
+MA   /M: SY='E'; M=-8,8,-25,14,25,-24,-16,-2,-22,0,-17,-15,2,-9,8,-4,3,-2,-19,-31,-15,16;
+MA   /M: SY='R'; M=-4,-15,-21,-18,-9,-7,-20,-5,-7,2,0,7,-12,-20,-3,9,-12,-8,-5,-17,-3,-7;
+MA   /M: SY='Q'; M=-6,4,-25,3,7,-22,-15,-1,-19,8,-17,-8,5,-14,9,6,-2,-6,-17,-25,-10,7;
+MA   /M: SY='E'; M=-4,4,-19,4,8,-22,-13,-2,-18,-1,-16,-10,4,-13,5,-1,5,0,-15,-30,-14,6;
+MA   /M: SY='W'; M=-20,-40,-49,-40,-30,12,-20,-30,-19,-20,-19,-19,-39,-30,-21,-20,-39,-29,-29,145,30,-20;
+MA   /M: SY='I'; M=-8,-22,-20,-27,-20,5,-27,-17,17,-16,14,16,-18,-23,-15,-14,-14,-4,15,-19,1,-18;
+MA   /M: SY='K'; M=-1,3,-23,1,3,-23,-11,-5,-19,5,-19,-11,4,-13,5,2,3,-1,-15,-25,-12,3;
+MA   /M: SY='A'; M=19,-7,-12,-12,-7,-17,-4,-14,-12,-10,-13,-9,-5,-14,-7,-15,7,0,-5,-25,-16,-7;
+MA   /M: SY='L'; M=-10,-30,-21,-35,-25,11,-34,-24,30,-29,31,18,-25,-26,-22,-24,-24,-9,19,-18,2,-25;
+MA   /M: SY='R'; M=-9,-5,-24,-7,2,-19,-19,1,-14,5,-12,-4,-1,-16,10,12,-4,-5,-13,-24,-8,4;
+MA   /M: SY='R'; M=-3,-3,-22,-4,1,-17,-14,-7,-14,1,-12,-6,-2,-14,1,3,-1,-3,-12,-22,-9,0;
+MA   /M: SY='A'; M=7,-14,-14,-18,-11,-11,-12,-16,-2,-14,-1,-2,-11,-17,-10,-15,-2,-1,1,-24,-12,-11;
+MA   /M: SY='I'; M=-4,-18,-11,-23,-17,-7,-21,-16,6,-15,2,4,-13,-21,-12,-14,-7,-3,5,-24,-7,-16;
+MA   /M: SY='R'; M=-5,-3,-24,-5,-3,-13,-12,-2,-16,1,-15,-9,0,-16,-2,3,-2,-5,-13,-18,-5,-3;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL 76(71); /POSITIVE=76(71); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=0;
+CC   /TAXO-RANGE=??E?V; /MAX-REPEAT=2;
+DR   P21146, ARK1_BOVIN, T; P25098, ARK1_HUMAN, T; P26817, ARK1_RAT  , T;
+DR   P26818, ARK2_BOVIN, T; P35626, ARK2_HUMAN, T; P26819, ARK2_RAT  , T;
+DR   P11274, BCR_HUMAN , T; P39969, BEB1_YEAST, T; P39960, BEM2_YEAST, T;
+DR   P32873, BEM3_YEAST, T; P38041, BOB1_YEAST, T; Q06187, BTK_HUMAN , T;
+DR   P35991, BTK_MOUSE , T; P11433, CC24_YEAST, T; P35401, CRAC_DICDI, T;
+DR   P10911, DBL_HUMAN , T; P39055, DYN1_CAEEL, T; Q05193, DYN1_HUMAN, T;
+DR   P21575, DYN1_RAT  , T; P39052, DYN2_RAT  , T; P39053, DYNB_MOUSE, T;
+DR   Q08877, DYNT_RAT  , T; P39054, DYNU_MOUSE, T; P27619, DYN_DROME , T;
+DR   P28818, GNRP_RAT  , T; P32865, GPK1_DROME, T; P09851, GTPA_BOVIN, T;
+DR   P20936, GTPA_HUMAN, T; P35568, IRS1_HUMAN, T; P35569, IRS1_MOUSE, T;
+DR   P35570, IRS1_RAT  , T; Q08881, ITK_HUMAN , T; Q03526, ITK_MOUSE , T;
+DR   P31748, KAKT_MLVAT, T; Q01314, KRAC_BOVIN, T; P31749, KRAC_HUMAN, T;
+DR   P31750, KRAC_MOUSE, T; P31751, KRCB_HUMAN, T; P34400, MI10_CAEEL, T;
+DR   Q08942, NRKA_TRYBB, T; Q03428, NRKB_TRYBB, T; Q00402, NUM1_YEAST, T;
+DR   P35845, OSH1_YEAST, T; P22059, OXYB_HUMAN, T; P16258, OXYB_RABIT, T;
+DR   P08567, P47_HUMAN , T; P08487, PIP4_BOVIN, T; P19174, PIP4_HUMAN, T;
+DR   P10686, PIP4_RAT  , T; P16885, PIP5_HUMAN, T; P24135, PIP5_RAT  , T;
+DR   P10895, PIP6_BOVIN, T; P10688, PIP6_RAT  , T; P40995, SCD1_SCHPO, T;
+DR   P38717, SIP3_YEAST, T; P26675, SOS_DROME , T; Q00963, SPCB_DROME, T;
+DR   P42680, TEC_HUMAN , T; P24604, TEC_MOUSE , T; P23678, U104_CAEEL, T;
+DR   P15498, VAV_HUMAN , T; P27870, VAV_MOUSE , T; P38271, YBX9_YEAST, T;
+DR   P38713, YHN3_YEAST, T; P38851, YHV5_YEAST, T; P40485, YIK5_YEAST, T;
+DR   P34288, YKM1_CAEEL, T; P46941, YLE5_CAEEL, T; P34512, YMX4_CAEEL, T;
+DR   P34657, YOTB_CAEEL, T; P42331, YY03_HUMAN, T;
+DO   PDOC50003;
+//
+ID   SH2; MATRIX.
+AC   PS50001;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Src homology 2 (SH2) domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=92;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=87;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=0.3941; R2=0.01483; TEXT='OrigScore';
+MA   /CUT_OFF: LEVEL=0; SCORE=547; N_SCORE=8.5; MODE=1;
+MA   /DEFAULT: D=-20; I=-20; B1=-60; E1=-60; MI=-105; MD=-105; IM=-105; DM=-105;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='W'; M=-16,-34,-40,-35,-25,9,-21,-24,-17,-19,-16,-17,-34,-25,-18,-19,-33,-25,-25,111,26,-18;
+MA   /M: SY='Y'; M=-17,-24,-26,-29,-24,41,-30,-2,7,-20,6,2,-19,-28,-22,-16,-19,-10,-1,14,48,-24;
+MA   /M: SY='H'; M=-14,-14,-23,-18,-14,7,-23,31,-9,-15,-3,4,-8,-24,-9,-10,-15,-14,-11,-8,18,-12;
+MA   /M: SY='G'; M=-3,-9,-30,-8,-14,-26,45,-17,-36,-9,-28,-18,-1,-14,-14,-8,-3,-17,-27,-20,-24,-14;
+MA   /M: SY='K'; M=-8,-1,-25,-2,0,-10,-16,-5,-19,6,-18,-11,1,-7,-3,1,-4,-6,-16,-21,-6,-2;
+MA   /M: SY='I'; M=-8,-28,-24,-35,-27,4,-34,-25,36,-26,23,21,-23,-23,-20,-24,-19,-8,26,-21,-1,-26;
+MA   /I: I=-4; MI=0; IM=0;
+MA   /M: SY='S'; M=1,3,-18,1,0,-21,-4,-9,-20,-6,-25,-17,10,-3,0,-8,20,14,-16,-34,-19,0;
+MA   /M: SY='R'; M=-16,-9,-30,-9,-1,-23,-8,-5,-31,26,-23,-11,0,-18,6,51,-9,-11,-21,-18,-12,-1;
+MA   /M: SY='E'; M=-2,2,-25,1,12,-25,-12,-3,-21,6,-20,-12,2,-11,10,3,2,-4,-18,-23,-14,11;
+MA   /M: SY='E'; M=-10,10,-29,16,26,-30,-15,0,-26,10,-21,-14,3,-9,19,5,-2,-9,-25,-26,-13,22;
+MA   /M: SY='A'; M=36,-11,-11,-17,-7,-18,-6,-20,-6,-10,-9,-8,-11,-12,-10,-18,8,1,4,-23,-18,-9;
+MA   /M: SY='E'; M=-10,4,-28,9,36,-22,-20,2,-23,5,-16,-14,-1,-7,12,2,-2,-8,-22,-26,-12,23;
+MA   /M: SY='R'; M=-6,4,-25,5,10,-24,-14,-1,-23,10,-19,-11,3,-13,9,11,0,-5,-19,-25,-11,8;
+MA   /M: SY='L'; M=-10,-23,-23,-25,-15,1,-27,-12,13,-19,28,17,-22,-25,-8,-12,-22,-9,4,-18,2,-12;
+MA   /M: SY='L'; M=-10,-30,-20,-30,-20,10,-30,-20,20,-30,49,20,-30,-30,-20,-20,-30,-10,11,-20,0,-20;
+MA   /M: SY='R'; M=-8,-9,-23,-12,-6,-13,-19,-9,-6,1,-1,4,-6,-18,1,5,-8,-4,-6,-23,-7,-4;
+MA   /M: SY='N'; M=-4,9,-22,7,5,-23,-9,-2,-21,0,-21,-13,11,-10,5,-2,5,-1,-19,-30,-15,4;
+MA   /M: SY='K'; M=-8,-5,-27,-4,3,-22,-12,-9,-19,7,-20,-11,-2,-1,2,5,-3,-5,-16,-24,-13,1;
+MA   /I: I=-4; MI=-19; MD=-19; IM=-19;
+MA   /M: SY='G'; M=-4,-6,-21,-5,-1,-21,10,-11,-22,-9,-20,-12,-4,2,-6,-10,-1,-9,-19,-23,-19,-4; D=-4;
+MA   /I: I=-4; MI=-19; MD=-19; IM=-19; DM=-19;
+MA   /M: SY='B'; M=-11,10,-24,10,4,-20,-14,-1,-18,5,-18,-10,9,-4,1,3,-3,-6,-17,-26,-12,1; D=-4;
+MA   /I: I=-4; MI=-19; MD=-19; IM=-19; DM=-19;
+MA   /M: SY='E'; M=-4,3,-14,6,9,-14,-8,-2,-12,0,-12,-8,1,4,4,-2,1,-2,-12,-16,-9,6; D=-4;
+MA   /I: I=-4; MI=0; IM=0; DM=-19;
+MA   /M: SY='G'; M=-1,-11,-27,-11,-20,-29,66,-20,-39,-20,-30,-20,-1,-21,-20,-20,-1,-20,-30,-17,-29,-20;
+MA   /M: SY='T'; M=5,3,-13,0,-3,-18,-10,-13,-16,-9,-14,-13,1,-12,-6,-12,14,18,-8,-31,-15,-5;
+MA   /M: SY='F'; M=-20,-29,-21,-38,-29,74,-30,-15,0,-28,9,0,-20,-30,-37,-19,-20,-10,-1,12,36,-29;
+MA   /M: SY='L'; M=-9,-30,-20,-31,-22,8,-30,-21,23,-28,43,21,-29,-29,-20,-20,-27,-9,15,-21,-1,-21;
+MA   /M: SY='V'; M=-3,-29,-17,-32,-28,1,-32,-28,32,-24,19,14,-26,-26,-25,-23,-15,-4,36,-25,-6,-28;
+MA   /M: SY='R'; M=-20,-10,-30,-10,0,-20,-20,0,-30,30,-20,-10,0,-20,10,70,-10,-10,-20,-20,-10,0;
+MA   /M: SY='E'; M=-12,4,-29,10,23,-15,-20,-6,-22,1,-15,-14,-3,-2,6,-5,-6,-10,-22,-23,-11,15;
+MA   /M: SY='S'; M=8,-1,-10,-2,-1,-20,-2,-10,-20,-7,-28,-19,8,-11,0,-4,34,17,-10,-37,-19,-1;
+MA   /M: SY='E'; M=-8,9,-25,15,23,-26,-16,-1,-24,4,-20,-16,4,-9,10,2,4,-3,-20,-31,-16,16;
+MA   /M: SY='S'; M=-2,1,-18,-2,-1,-21,-6,-6,-22,1,-24,-15,8,-10,1,2,16,13,-15,-31,-15,-1;
+MA   /I: I=-5; MI=-27; MD=-27; IM=-27;
+MA   /M: SY='S'; M=-4,0,-22,-2,3,-15,-12,-2,-19,1,-18,-11,3,-8,1,-2,4,3,-16,-25,-8,1; D=-5;
+MA   /I: I=-5; MI=-27; MD=-27; IM=-27; DM=-27;
+MA   /M: SY='P'; M=-6,-11,-22,-10,-3,-14,-16,-12,-5,0,-9,-4,-10,19,-4,-3,-8,-5,-8,-17,-11,-6; D=-5;
+MA   /I: I=-5; MI=0; IM=0; DM=-27;
+MA   /M: SY='G'; M=-1,-2,-29,-3,-12,-30,50,-15,-36,-15,-29,-19,5,-15,-13,-16,1,-16,-29,-23,-27,-13;
+MA   /M: SY='D'; M=0,10,-20,15,8,-28,4,-9,-28,-6,-22,-19,5,-12,-1,-11,6,-5,-21,-31,-21,4;
+MA   /M: SY='Y'; M=-17,-22,-26,-26,-20,33,-30,3,4,-17,3,2,-18,-27,-18,-13,-17,-9,-2,11,46,-21;
+MA   /M: SY='T'; M=9,-8,-9,-13,-10,-14,-12,-18,-7,-12,-12,-9,-5,-11,-10,-14,15,21,3,-31,-15,-10;
+MA   /M: SY='L'; M=-10,-29,-18,-32,-24,10,-32,-23,24,-27,33,16,-26,-28,-22,-20,-24,-9,16,-20,0,-24;
+MA   /M: SY='S'; M=10,-4,-7,-7,-6,-17,-5,-13,-15,-12,-22,-15,3,-13,-5,-13,28,18,-6,-34,-16,-6;
+MA   /M: SY='V'; M=-8,-29,-20,-31,-26,11,-27,-22,16,-22,11,7,-26,-28,-25,-19,-18,-6,21,0,4,-25;
+MA   /M: SY='R'; M=-11,-16,-25,-17,-10,-7,-22,-10,-10,7,-7,-3,-11,-21,-5,18,-11,-8,-5,-10,-2,-9;
+MA   /M: M=-8,-1,-20,0,-4,-7,-19,-7,-14,-6,-11,-9,-5,-18,-8,-6,-5,-2,-9,-15,0,-6;
+MA   /M: SY='D'; M=-10,5,-25,7,3,-19,-6,-7,-25,0,-20,-15,3,-15,0,-1,-3,-9,-22,-16,-11,1;
+MA   /M: SY='G'; M=-4,7,-25,11,-3,-25,13,-11,-27,-9,-23,-18,4,-16,-8,-10,3,-7,-18,-25,-19,-5;
+MA   /I: I=-2; MI=0; IM=0;
+MA   /M: SY='Q'; M=-8,2,-23,1,4,-22,-13,0,-17,4,-16,-9,4,-15,5,4,-2,-6,-15,-28,-12,4;
+MA   /M: SY='V'; M=-4,-19,-17,-21,-21,-3,-23,-20,14,-16,0,2,-16,-19,-21,-14,-8,-3,23,-27,-9,-22;
+MA   /M: SY='K'; M=-10,-2,-28,-4,3,-23,-11,-4,-23,20,-21,-8,1,-14,9,18,-5,-6,-19,-21,-9,5;
+MA   /M: SY='H'; M=-18,-2,-29,-2,2,-18,-20,78,-26,-8,-16,-1,6,-19,8,1,-9,-17,-26,-29,14,1;
+MA   /M: SY='Y'; M=-15,-24,-14,-29,-24,26,-30,-9,3,-20,2,-1,-21,-23,-22,-18,-18,-8,-1,8,31,-24;
+MA   /M: SY='R'; M=-13,-4,-27,-5,0,-21,-21,-2,-16,16,-15,-4,-1,-17,7,22,-9,-8,-11,-24,-8,1;
+MA   /M: SY='I'; M=-9,-30,-25,-37,-29,4,-37,-29,41,-27,19,17,-22,-23,-22,-26,-19,-8,30,-20,0,-29;
+MA   /M: SY='Q'; M=-12,-3,-21,-5,4,-19,-20,3,-16,8,-13,-2,1,-17,12,12,-8,-9,-17,-23,-7,7;
+MA   /M: SY='K'; M=-4,-1,-19,-3,3,-20,-15,-3,-21,5,-21,-12,2,-6,2,5,4,2,-16,-26,-12,1;
+MA   /M: SY='T'; M=-6,-7,-19,-8,-6,-7,-21,-13,-3,-11,1,-2,-7,-17,-9,-8,-4,4,-1,-26,-8,-8;
+MA   /M: SY='D'; M=-5,11,-24,17,14,-29,-3,-7,-27,-3,-21,-17,3,-4,3,-9,1,-6,-23,-29,-19,8;
+MA   /I: I=-2; MI=-12; MD=-12; IM=-12;
+MA   /M: SY='N'; M=-6,13,-20,10,3,-22,0,-4,-22,0,-21,-15,16,-12,1,-1,7,3,-19,-28,-16,2; D=-2;
+MA   /I: I=-2; MI=-12; MD=-12; IM=-12; DM=-12;
+MA   /M: SY='G'; M=-1,-2,-14,-3,-4,-16,22,-8,-20,-6,-16,-11,2,-10,-6,-5,2,-7,-15,-14,-15,-5; D=-2;
+MA   /I: I=-2; MI=0; IM=0; DM=-12;
+MA   /M: SY='K'; M=-8,-6,-27,-5,-2,-20,-6,-7,-20,4,-17,-9,-4,-6,-2,0,-6,-7,-16,-24,-12,-3;
+MA   /M: SY='Y'; M=-17,-24,-26,-26,-23,35,-27,2,2,-18,7,2,-21,-30,-19,-14,-20,-10,-4,18,51,-23;
+MA   /M: SY='Y'; M=-9,-10,-17,-13,-13,6,-18,-4,-9,-9,-8,-5,-7,-22,-10,-4,-3,0,-7,-10,15,-13;
+MA   /M: SY='I'; M=-7,-25,-22,-29,-20,2,-31,-23,23,-19,17,12,-21,-20,-19,-19,-17,-7,19,-21,-3,-21;
+MA   /M: SY='S'; M=-2,1,-23,-1,-1,-20,0,-11,-23,-3,-22,-16,3,-9,-3,-5,6,4,-18,-20,-13,-3;
+MA   /M: SY='E'; M=-6,4,-26,6,9,-25,3,-7,-25,-4,-22,-16,5,-8,1,-5,3,-4,-21,-27,-18,4;
+MA   /I: I=-6; MI=-29; MD=-29; IM=-29;
+MA   /M: SY='R'; M=-5,-2,-16,-3,0,-13,-1,-5,-14,6,-11,-7,2,-7,0,10,-3,-5,-12,-14,-9,-1; D=-6;
+MA   /I: I=-6; MI=0; IM=0; DM=-29;
+MA   /M: M=-6,-6,-23,-5,-1,-15,-19,-1,-9,-4,-5,-3,-6,-13,-2,-1,-6,-5,-7,-26,-8,-2;
+MA   /M: SY='R'; M=-4,-4,-18,-8,-4,-16,-12,-9,-17,3,-16,-10,0,-13,0,4,2,3,-12,-24,-9,-3;
+MA   /M: SY='F'; M=-15,-26,-19,-34,-26,59,-28,-14,0,-26,8,0,-17,-28,-32,-19,-18,-9,-1,5,27,-26;
+MA   /M: SY='N'; M=-4,6,-19,5,1,-24,-1,-7,-23,-5,-22,-15,9,-6,-3,-5,3,-5,-20,-31,-20,-1;
+MA   /M: SY='S'; M=3,5,-9,2,-3,-19,-5,-12,-19,-9,-24,-18,9,-12,-5,-10,25,20,-11,-36,-18,-4;
+MA   /M: SY='L'; M=-10,-30,-22,-33,-23,11,-32,-23,26,-28,35,18,-26,-25,-21,-22,-25,-9,16,-19,1,-23;
+MA   /M: SY='P'; M=-1,-5,-24,-7,-3,-20,-10,-7,-14,-6,-16,-8,-3,2,2,-9,0,-2,-14,-22,-12,-2;
+MA   /M: SY='E'; M=-10,13,-28,21,30,-28,-18,1,-25,3,-17,-15,2,-8,15,-4,-2,-8,-24,-27,-12,22;
+MA   /M: SY='L'; M=-10,-29,-22,-31,-21,8,-31,-20,23,-27,41,22,-27,-28,-18,-18,-27,-10,12,-20,0,-20;
+MA   /M: SY='I'; M=-5,-30,-17,-35,-29,0,-35,-29,38,-25,16,15,-25,-25,-25,-25,-16,-5,37,-25,-5,-29;
+MA   /M: SY='E'; M=-8,3,-25,5,11,-20,-15,4,-19,2,-16,-8,2,-13,9,2,-1,-5,-18,-23,-6,9;
+MA   /M: SY='H'; M=-17,-5,-28,-5,-6,-2,-20,49,-17,-10,-12,-3,-1,-22,-1,-6,-11,-14,-19,-11,30,-7;
+MA   /M: SY='Y'; M=-19,-16,-29,-17,-15,19,-28,32,-6,-12,-1,1,-14,-27,-7,-9,-18,-12,-13,11,56,-15;
+MA   /M: SY='Q'; M=-6,-6,-23,-6,4,-20,-17,-6,-17,8,-15,-5,-3,-9,10,9,2,1,-14,-24,-10,6;
+MA   /M: SY='Q'; M=-11,0,-26,1,7,-23,-20,9,-18,10,-18,-6,1,-14,12,6,-4,-6,-15,-24,-4,8;
+MA   /M: SY='N'; M=-5,6,-21,1,1,-18,-12,4,-14,-3,-15,-6,11,-15,1,-2,3,0,-13,-31,-12,0;
+MA   /M: SY='S'; M=6,-5,-22,-5,0,-24,-5,-6,-20,-2,-21,-11,-2,1,2,-6,7,-2,-16,-27,-17,0;
+MA   /M: M=-2,-2,-20,-1,-6,-16,-12,-14,-6,-11,-1,-3,-7,-18,-8,-13,-8,-7,-4,-26,-13,-8;
+MA   /M: SY='G'; M=-2,-9,-26,-7,-6,-20,12,-15,-21,-9,-17,-12,-7,-8,-10,-10,-3,-9,-15,-22,-17,-9;
+MA   /M: SY='L'; M=-11,-12,-19,-13,-5,-7,-25,-11,3,-13,15,4,-10,-22,-6,-7,-16,-8,-3,-25,-7,-6;
+MA   /I: I=-4; MI=-19; MD=-19; IM=-19;
+MA   /M: SY='C'; M=-4,-14,11,-20,-17,-11,-22,-17,-3,-15,-4,-3,-12,-21,-15,-16,-6,0,3,-29,-11,-17; D=-4;
+MA   /I: I=-4; MI=-19; MD=-19; IM=-19; DM=-19;
+MA   /M: M=-9,-4,-6,-7,-3,-10,-17,-1,-16,-6,-15,-8,-1,-13,-4,-5,-1,-1,-13,-25,-6,-4; D=-4;
+MA   /I: I=-4; MI=0; IM=0; DM=-19;
+MA   /M: SY='R'; M=-11,-9,-24,-10,-2,-14,-22,-7,-14,14,-13,-5,-6,-15,0,17,-9,-5,-9,-20,-4,-3;
+MA   /M: SY='L'; M=-11,-29,-21,-29,-20,11,-30,-16,19,-27,43,19,-28,-29,-18,-19,-28,-10,9,-15,8,-20;
+MA   /M: SY='R'; M=-7,-11,-22,-13,-7,-11,-20,-9,-8,2,-4,-2,-8,-18,-3,8,-5,2,-4,-22,-4,-6;
+MA   /M: SY='Y'; M=-12,-4,-25,-5,-4,-4,-20,5,-12,-1,-12,-7,-4,-19,-1,1,-5,-3,-12,-10,16,-4;
+MA   /M: SY='P'; M=-5,-18,-34,-12,-3,-26,-19,-18,-15,-11,-24,-15,-17,65,-10,-19,-6,-6,-21,-29,-26,-10;
+MA   /M: SY='V'; M=-5,-22,7,-24,-20,-2,-28,-22,7,-18,4,2,-22,-26,-22,-18,-12,-6,17,-27,-8,-21;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=145(124); /POSITIVE=144(123); /UNKNOWN=1(1); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=1;
+CC   /TAXO-RANGE=??E??; /MAX-REPEAT=2;
+DR   P00519, ABL1_HUMAN, T; P00520, ABL_MOUSE , T; P00521, ABL_MLVAB , T;
+DR   P00522, ABL_DROME , T; P00523, SRC_CHICK , T; P00524, SRC_RSVSR , T;
+DR   P00525, SRC_AVISR , T; P00526, SRC_RSVP  , T; P00527, YES_AVISY , T;
+DR   P00528, SRC1_DROME, T; P00530, FPS_FUJSV , T; P00541, FPS_AVISP , T;
+DR   P00542, FES_FSVGA , T; P00543, FES_FSVST , T; P00544, FGR_FSVGR , T;
+DR   P03949, ABL1_CAEEL, T; P05433, GAGC_AVISC, T; P05480, SRCN_MOUSE, T;
+DR   P06239, LCK_HUMAN , T; P06240, LCK_MOUSE , T; P06241, FYN_HUMAN , T;
+DR   P07332, FES_HUMAN , T; P07947, YES_HUMAN , T; P07948, LYN_HUMAN , T;
+DR   P08103, HCK_MOUSE , T; P08487, PIP4_BOVIN, T; P08630, SRC2_DROME, T;
+DR   P08631, HCK_HUMAN , T; P09324, YES_CHICK , T; P09769, FGR_HUMAN , T;
+DR   P09851, GTPA_BOVIN, T; P10447, ABL_FSVHY , T; P10686, PIP4_RAT  , T;
+DR   P10936, YES_XENLA , T; P12931, SRC_HUMAN , T; P13115, SRC1_XENLA, T;
+DR   P13116, SRC2_XENLA, T; P13406, FYN_XENLA , T; P14084, SRC_AVISS , T;
+DR   P14085, SRC_AVIST , T; P14234, FGR_MOUSE , T; P14238, FES_FELCA , T;
+DR   P15054, SRC_AVIS2 , T; P15498, VAV_HUMAN , T; P16277, BLK_MOUSE , T;
+DR   P16333, NCK_HUMAN , T; P16591, FER_HUMAN , T; P16879, FES_MOUSE , T;
+DR   P16885, PIP5_HUMAN, T; P17713, STK_HYDAT , T; P18106, FPS_DROME , T;
+DR   P19174, PIP4_HUMAN, T; P20936, GTPA_HUMAN, T; P23615, SPT6_YEAST, T;
+DR   P23726, P85B_BOVIN, T; P23727, P85A_BOVIN, T; P24135, PIP5_RAT  , T;
+DR   P24604, TEC_MOUSE , T; P25020, SRC_RSVH1 , T; P25911, LYN_MOUSE , T;
+DR   P26450, P85A_MOUSE, T; P27446, FYN_XIPHE , T; P27447, YES_XIPHE , T;
+DR   P27870, VAV_MOUSE , T; P27986, P85A_HUMAN, T; P29349, CSW_DROME , T;
+DR   P29350, PTN6_HUMAN, T; P29351, PTN6_MOUSE, T; P29353, SHC_HUMAN , T;
+DR   P29354, GRB2_HUMAN, T; P29355, SEM5_CAEEL, T; P31693, SRC_RSVPA , T;
+DR   P32577, CSK_RAT   , T; P34265, YKF1_CAEEL, T; P35235, PTNB_MOUSE, T;
+DR   P35991, BTK_MOUSE , T; P39688, FYN_MOUSE , T; P40763, STA3_HUMAN, T;
+DR   P41239, CSK_CHICK , T; P41240, CSK_HUMAN , T; P41241, CSK_MOUSE , T;
+DR   P41242, CTK_MOUSE , T; P41243, CTK_RAT   , T; P41499, PTNB_RAT  , T;
+DR   P42224, STA1_HUMAN, T; P42225, STA1_MOUSE, T; P42226, STA2_HUMAN, T;
+DR   P42227, STA3_MOUSE, T; P42228, STA4_MOUSE, T; P42229, STA5_HUMAN, T;
+DR   P42230, STA5_MOUSE, T; P42231, STA5_SHEEP, T; P42232, STAB_MOUSE, T;
+DR   P42679, CTK_HUMAN , T; P42680, TEC_HUMAN , T; P42681, TXK_HUMAN , T;
+DR   P42682, TXK_MOUSE , T; P42683, LCK_CHICK , T; P42684, ABL2_HUMAN, T;
+DR   P42685, FRK_HUMAN , T; P42686, SRK1_SPOLA, T; P42687, SPK1_DUGTI, T;
+DR   P42688, SRK2_SPOLA, T; P42689, SRK3_SPOLA, T; P42690, SRK4_SPOLA, T;
+DR   P43403, ZA70_HUMAN, T; P43404, ZA70_MOUSE, T; P43405, SYK_HUMAN , T;
+DR   P46108, CRK_HUMAN , T; P46109, CRKL_HUMAN, T; Q00655, SYK_PIG   , T;
+DR   Q02977, YRK_CHICK , T; Q03526, ITK_MOUSE , T; Q04205, TENS_CHICK, T;
+DR   Q04736, YES_MOUSE , T; Q04929, CRK_CHICK , T; Q05876, FYN_CHICK , T;
+DR   Q06124, PTNB_HUMAN, T; Q06187, BTK_HUMAN , T; Q07014, LYN_RAT   , T;
+DR   Q07883, GRB2_CHICK, T; Q08012, DRK_DROME , T; Q08881, ITK_HUMAN , T;
+DR   P23458, JAK1_HUMAN, ?;
+DR   P09760, FLK_RAT   , P;
+DO   PDOC50001;
+//
+ID   SH3; MATRIX.
+AC   PS50002;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Src homology 3 (SH3) domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=62;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=57;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=0.9383; R2=0.016376; TEXT='OrigScore';
+MA   /CUT_OFF: LEVEL=0; SCORE=462; N_SCORE=8.5; MODE=1;
+MA   /DEFAULT: D=-20; I=-20; B1=-60; E1=-60; MI=-105; MD=-105; IM=-105; DM=-105;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='P'; M=-4,-8,-26,-7,-1,-19,-11,-11,-15,-3,-16,-9,-6,6,-3,-6,-2,-3,-14,-25,-15,-3;
+MA   /M: SY='E'; M=-5,-3,-25,0,4,-18,-8,-9,-17,-5,-15,-11,-4,-4,-3,-8,-1,-6,-14,-26,-14,0;
+MA   /M: M=-5,-8,-25,-8,-4,-17,-4,-14,-14,-5,-13,-8,-7,-6,-7,-6,-4,-7,-11,-24,-15,-6;
+MA   /M: M=-10,-6,-23,-7,-1,-9,-17,-8,-15,-1,-12,-6,-6,-6,-3,-1,-6,-4,-14,-21,-6,-2;
+MA   /M: SY='Y'; M=-5,-15,-21,-18,-9,-4,-24,-12,-1,-6,-1,1,-13,-17,-5,-5,-8,-1,0,-14,3,-8;
+MA   /M: SY='V'; M=2,-22,-14,-27,-23,7,-21,-17,11,-18,4,4,-20,-25,-22,-19,-9,-4,19,-15,4,-23;
+MA   /M: SY='R'; M=-9,-15,-24,-17,-9,-13,-25,-14,1,3,-6,1,-11,-19,-4,9,-9,-3,6,-22,-6,-8;
+MA   /M: SY='A'; M=38,-11,-9,-19,-11,-18,-5,-21,-7,-11,-9,-9,-11,-12,-12,-19,8,3,4,-23,-19,-11;
+MA   /M: SY='L'; M=-8,-20,-22,-22,-13,-2,-27,-14,11,-16,22,11,-18,-23,-11,-12,-18,-7,5,-21,-2,-13;
+MA   /M: SY='Y'; M=-17,-19,-26,-22,-20,30,-26,9,-2,-13,0,-1,-16,-28,-14,-11,-16,-9,-7,15,54,-19;
+MA   /M: SY='D'; M=-11,30,-28,43,14,-34,-6,-4,-33,-2,-27,-24,13,-4,0,-10,2,-8,-26,-35,-20,6;
+MA   /M: SY='Y'; M=-19,-23,-27,-26,-23,44,-29,6,1,-17,4,0,-20,-30,-20,-14,-20,-10,-6,22,61,-23;
+MA   /M: SY='E'; M=-6,5,-23,6,11,-22,-15,-3,-19,2,-18,-10,2,-7,6,-3,0,-4,-16,-28,-14,8;
+MA   /I: I=-6; MI=0; IM=0; B1=-50;
+MA   /M: SY='A'; M=16,-9,-20,-12,-5,-22,-2,-16,-17,-4,-18,-12,-6,2,-6,-8,5,-1,-11,-24,-20,-7;
+MA   /M: SY='E'; M=-4,-2,-25,-3,8,-23,-13,-6,-19,5,-19,-10,1,-7,7,6,2,-2,-16,-26,-15,6;
+MA   /M: SY='D'; M=-6,5,-24,7,7,-23,-10,-3,-22,2,-20,-12,4,-9,4,1,4,0,-18,-29,-14,5;
+MA   /M: SY='P'; M=-4,4,-24,9,9,-28,-6,-10,-26,-3,-25,-19,0,11,-2,-8,3,-4,-23,-31,-22,2;
+MA   /M: SY='D'; M=-10,18,-26,24,10,-29,-1,-4,-30,-1,-26,-20,10,-8,1,-6,3,-6,-25,-31,-17,5;
+MA   /M: SY='E'; M=-12,18,-28,28,35,-28,-14,3,-31,3,-22,-21,6,-6,9,-4,0,-9,-28,-31,-16,22;
+MA   /M: SY='L'; M=-8,-28,-18,-30,-21,7,-30,-21,21,-27,38,17,-27,-28,-20,-20,-24,-8,13,-21,-1,-21;
+MA   /M: SY='S'; M=3,0,-19,0,2,-22,-6,-10,-20,-5,-22,-15,3,-3,1,-5,15,8,-15,-30,-17,0;
+MA   /M: SY='F'; M=-12,-28,-20,-34,-25,36,-29,-20,13,-26,21,11,-22,-27,-27,-19,-20,-8,10,-8,11,-24;
+MA   /I: I=-6; MI=0; IM=0;
+MA   /M: SY='K'; M=-9,-1,-23,-2,5,-20,-17,-5,-20,14,-17,-8,1,-14,5,14,-4,-4,-16,-24,-11,4;
+MA   /M: SY='K'; M=-5,-4,-28,-3,9,-25,-16,-9,-22,17,-21,-11,-3,1,5,9,-5,-7,-18,-24,-15,6;
+MA   /M: SY='G'; M=-1,-3,-28,-3,-12,-29,50,-16,-37,-13,-29,-20,4,-18,-14,-14,1,-16,-28,-23,-27,-13;
+MA   /M: SY='D'; M=-14,30,-29,44,28,-34,-14,-1,-32,2,-24,-23,11,-8,7,-6,0,-9,-27,-35,-19,18;
+MA   /M: SY='I'; M=-8,-18,-23,-22,-14,-3,-27,-16,10,-7,2,6,-14,-18,-11,-7,-11,-4,10,-20,-2,-14;
+MA   /M: SY='I'; M=-10,-28,-18,-32,-25,11,-32,-19,24,-25,22,16,-24,-27,-21,-21,-20,-8,19,-18,4,-24;
+MA   /M: SY='Y'; M=-9,-7,-24,-10,-3,-8,-22,0,-7,-3,-7,-3,-4,-17,-1,-2,-5,-1,-8,-18,2,-3;
+MA   /M: SY='I'; M=-4,-27,-19,-32,-27,1,-32,-27,32,-24,19,14,-24,-26,-23,-23,-16,-5,32,-25,-5,-27;
+MA   /M: SY='L'; M=-7,-21,-18,-23,-16,-2,-26,-18,14,-20,18,9,-19,-23,-15,-17,-14,-5,11,-24,-5,-17;
+MA   /M: SY='E'; M=-6,14,-24,14,16,-24,-9,-2,-26,6,-23,-17,14,-11,5,3,3,-4,-23,-30,-16,10;
+MA   /M: SY='K'; M=-4,5,-22,6,6,-23,-14,-6,-21,11,-21,-11,3,-13,4,5,1,-2,-14,-26,-11,4;
+MA   /I: I=-5; MI=0; MD=-13; IM=0;
+MA   /M: SY='S'; M=-5,-1,-16,-1,-1,-12,-11,-5,-11,-5,-11,-8,0,-13,-3,-7,1,1,-8,-22,-7,-3; D=-3;
+MA   /I: I=-5; MI=-13; IM=-13; DM=-13;
+MA   /M: SY='D'; M=-10,22,-25,26,16,-27,-9,0,-26,-1,-23,-19,17,-8,3,-6,4,-4,-24,-34,-18,9;
+MA   /M: SY='D'; M=-4,6,-24,8,3,-27,3,-8,-25,-2,-23,-16,4,-7,-2,-7,1,-8,-20,-29,-19,0;
+MA   /M: SY='D'; M=-8,13,-27,16,7,-26,11,1,-31,-6,-26,-19,11,-13,-2,-9,2,-10,-27,-28,-16,2;
+MA   /M: SY='W'; M=-20,-40,-50,-40,-30,10,-20,-29,-20,-20,-20,-20,-40,-30,-20,-20,-40,-30,-30,148,31,-20;
+MA   /M: SY='W'; M=-16,-32,-32,-33,-26,11,-23,-20,-11,-19,-7,-9,-31,-29,-18,-18,-30,-19,-18,85,27,-20;
+MA   /M: SY='R'; M=-11,-5,-27,-5,4,-14,-21,-8,-15,9,-10,-6,-5,-15,2,10,-9,-7,-13,-18,-5,2;
+MA   /M: SY='G'; M=15,-16,-14,-20,-20,-19,17,-23,-11,-18,-12,-8,-11,-20,-19,-21,0,-8,0,-23,-21,-20;
+MA   /M: SY='R'; M=-12,-2,-26,-1,12,-23,-20,-2,-22,16,-17,-9,-1,-14,10,23,-5,-7,-17,-24,-10,9;
+MA   /M: SY='N'; M=-8,-2,-10,-6,-9,-11,-18,-5,-9,-9,-7,-6,2,-19,-9,-7,-3,-3,-7,-29,-8,-10;
+MA   /M: M=-8,-5,-22,-7,-4,-14,-15,-6,-8,-4,-6,-3,-3,-16,-5,-4,-7,-6,-7,-26,-9,-5;
+MA   /I: I=-4; MI=-12; MD=-12; IM=-12;
+MA   /M: SY='R'; M=-1,0,-12,-1,-2,-12,-4,-6,-11,1,-10,-7,1,-8,-2,3,3,3,-6,-16,-8,-3; D=-2;
+MA   /I: I=-4; MI=0; MD=-12; IM=0; DM=-12; E1=-50;
+MA   /M: SY='T'; M=-2,2,-13,-1,-2,-11,-7,-9,-11,-5,-10,-8,3,-10,-4,-7,7,12,-7,-21,-9,-3; D=-2;
+MA   /I: I=-4; MI=-12; IM=-12; DM=-12;
+MA   /M: SY='G'; M=-5,0,-23,0,-7,-26,28,-13,-30,-9,-23,-16,4,-19,-11,-9,-2,-13,-23,-26,-23,-9;
+MA   /M: SY='Q'; M=-10,3,-28,4,15,-28,-14,1,-24,13,-21,-10,3,-8,17,11,-2,-8,-23,-25,-13,15;
+MA   /M: SY='E'; M=-8,-6,-25,-6,10,-18,-21,-8,-13,4,-13,-7,-6,-10,8,7,-3,-3,-11,-22,-11,8;
+MA   /M: SY='G'; M=0,-10,-30,-10,-19,-29,67,-20,-39,-20,-28,-19,-1,-20,-19,-20,-1,-20,-29,-20,-29,-19;
+MA   /M: SY='Y'; M=-15,-27,-28,-30,-24,20,-29,-16,10,-23,14,7,-25,-27,-20,-19,-25,-13,2,20,21,-22;
+MA   /M: SY='I'; M=-8,-29,-21,-35,-28,22,-32,-25,26,-26,15,10,-23,-26,-28,-23,-17,-7,24,-14,7,-28;
+MA   /M: SY='P'; M=-8,-20,-38,-11,-1,-29,-19,-20,-19,-10,-29,-19,-20,84,-10,-20,-9,-9,-27,-30,-29,-10;
+MA   /M: SY='S'; M=11,-5,-10,-8,-5,-19,-3,-13,-17,-7,-20,-14,0,-12,-5,-10,17,8,-8,-31,-18,-5;
+MA   /M: SY='N'; M=-3,18,-19,8,-1,-21,-4,-2,-18,-2,-24,-16,28,-11,-1,-4,10,4,-19,-35,-19,-1;
+MA   /M: SY='Y'; M=-16,-20,-22,-23,-20,28,-28,6,-1,-13,1,-1,-17,-28,-15,-10,-17,-9,-6,13,50,-20;
+MA   /M: SY='V'; M=-5,-27,-15,-29,-25,1,-29,-25,23,-18,14,10,-25,-27,-23,-15,-14,-2,31,-25,-7,-25;
+MA   /M: SY='E'; M=-1,-1,-23,0,14,-24,-16,-6,-20,6,-16,-11,-3,-11,11,5,1,-1,-16,-24,-14,12;
+MA   /M: SY='E'; M=-9,-7,-27,-2,11,-20,-20,-10,-15,0,-14,-9,-9,11,0,-5,-7,-8,-17,-26,-14,4;
+MA   /M: M=-6,-13,-21,-15,-9,-8,-20,-11,0,-7,-3,0,-10,-17,-7,-6,-7,-5,0,-19,-3,-9;
+MA   /M: SY='D'; M=-8,9,-25,10,5,-23,-8,-5,-21,2,-19,-13,8,-10,-1,0,-1,-6,-18,-29,-15,1;
+MA   /M: SY='S'; M=-1,-4,-21,-5,-4,-18,-9,-6,-14,-7,-14,-10,-1,-7,-4,-5,4,-1,-11,-29,-14,-5;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=153(133); /POSITIVE=153(133); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=3;
+CC   /TAXO-RANGE=??E?V; /MAX-REPEAT=4;
+DR   P00519, ABL1_HUMAN, T; P00520, ABL_MOUSE , T; P00522, ABL_DROME , T;
+DR   P00523, SRC_CHICK , T; P00524, SRC_RSVSR , T; P00525, SRC_AVISR , T;
+DR   P00526, SRC_RSVP  , T; P00527, YES_AVISY , T; P00528, SRC1_DROME, T;
+DR   P02549, SPCA_HUMAN, T; P03949, ABL1_CAEEL, T; P04821, CC25_YEAST, T;
+DR   P05433, GAGC_AVISC, T; P05480, SRCN_MOUSE, T; P06239, LCK_HUMAN , T;
+DR   P06240, LCK_MOUSE , T; P06241, FYN_HUMAN , T; P07751, SPCN_CHICK, T;
+DR   P07947, YES_HUMAN , T; P07948, LYN_HUMAN , T; P08103, HCK_MOUSE , T;
+DR   P08487, PIP4_BOVIN, T; P08630, SRC2_DROME, T; P08631, HCK_HUMAN , T;
+DR   P09324, YES_CHICK , T; P09769, FGR_HUMAN , T; P09851, GTPA_BOVIN, T;
+DR   P10447, ABL_FSVHY , T; P10569, MYSC_ACACA, T; P10686, PIP4_RAT  , T;
+DR   P10936, YES_XENLA , T; P11710, FUS1_YEAST, T; P12931, SRC_HUMAN , T;
+DR   P13115, SRC1_XENLA, T; P13116, SRC2_XENLA, T; P13395, SPCA_DROME, T;
+DR   P13406, FYN_XENLA , T; P14084, SRC_AVISS , T; P14085, SRC_AVIST , T;
+DR   P14234, FGR_MOUSE , T; P14317, HS1_HUMAN , T; P14598, NCF1_HUMAN, T;
+DR   P14771, SC25_YEAST, T; P15054, SRC_AVIS2 , T; P15498, VAV_HUMAN , T;
+DR   P15891, ABP1_YEAST, T; P16277, BLK_MOUSE , T; P16333, NCK_HUMAN , T;
+DR   P16546, FODA_MOUSE, T; P16885, PIP5_HUMAN, T; P17713, STK_HYDAT , T;
+DR   P19174, PIP4_HUMAN, T; P19517, CICB_RABIT, T; P19706, MYSB_ACACA, T;
+DR   P19878, NCF2_HUMAN, T; P20936, GTPA_HUMAN, T; P23726, P85B_BOVIN, T;
+DR   P23727, P85A_BOVIN, T; P24135, PIP5_RAT  , T; P24604, TEC_MOUSE , T;
+DR   P25020, SRC_RSVH1 , T; P25911, LYN_MOUSE , T; P26450, P85A_MOUSE, T;
+DR   P26674, STE6_SCHPO, T; P27446, FYN_XIPHE , T; P27447, YES_XIPHE , T;
+DR   P27637, YAI4_YEAST, T; P27870, VAV_MOUSE , T; P27986, P85A_HUMAN, T;
+DR   P29354, GRB2_HUMAN, T; P29355, SEM5_CAEEL, T; P29366, BEM1_YEAST, T;
+DR   P31007, DLG1_DROME, T; P31016, PSD9_RAT  , T; P31693, SRC_RSVPA , T;
+DR   P32577, CSK_RAT   , T; P32790, SLA1_YEAST, T; P32793, YHH6_YEAST, T;
+DR   P34092, MYSB_DICDI, T; P34109, MYSD_DICDI, T; P34258, YKA7_CAEEL, T;
+DR   P34416, YLZ3_CAEEL, T; P35991, BTK_MOUSE , T; P36006, MYS3_YEAST, T;
+DR   P38041, BOB1_YEAST, T; P38479, ABP1_SACEX, T; P38753, YHA2_YEAST, T;
+DR   P38822, YHR4_YEAST, T; P39447, ZO1_MOUSE , T; P39688, FYN_MOUSE , T;
+DR   P39743, R167_YEAST, T; P39969, BEB1_YEAST, T; P40073, SS81_YEAST, T;
+DR   P40996, SCD2_SCHPO, T; P41239, CSK_CHICK , T; P41240, CSK_HUMAN , T;
+DR   P41241, CSK_MOUSE , T; P41242, CTK_MOUSE , T; P41243, CTK_RAT   , T;
+DR   P42522, MYSC_DICDI, T; P42679, CTK_HUMAN , T; P42680, TEC_HUMAN , T;
+DR   P42681, TXK_HUMAN , T; P42682, TXK_MOUSE , T; P42683, LCK_CHICK , T;
+DR   P42684, ABL2_HUMAN, T; P42685, FRK_HUMAN , T; P42686, SRK1_SPOLA, T;
+DR   P42687, SPK1_DUGTI, T; P42690, SRK4_SPOLA, T; P43069, CC25_CANAL, T;
+DR   P43603, YFJ4_YEAST, T; P46108, CRK_HUMAN , T; P46109, CRKL_HUMAN, T;
+DR   Q00013, MPP1_HUMAN, T; Q01406, SRC8_CHICK, T; Q02639, CICB_HUMAN, T;
+DR   Q02640, CICX_HUMAN, T; Q02641, CICY_HUMAN, T; Q02977, YRK_CHICK , T;
+DR   Q03526, ITK_MOUSE , T; Q04736, YES_MOUSE , T; Q04929, CRK_CHICK , T;
+DR   Q05876, FYN_CHICK , T; Q06187, BTK_HUMAN , T; Q07014, LYN_RAT   , T;
+DR   Q07157, ZO1_HUMAN , T; Q07883, GRB2_CHICK, T; Q08012, DRK_DROME , T;
+DR   Q08289, MSAB_HUMAN, T; Q08881, ITK_HUMAN , T; Q09014, NCF1_MOUSE, T;
+DR   Q09746, YA65_SCHPO, T;
+DR   P09760, FLK_RAT   , P; P42688, SRK2_SPOLA, P; P42689, SRK3_SPOLA, P;
+DO   PDOC50002;
+//
+ID   WW_DOMAIN_2; MATRIX.
+AC   PS50020;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   WW/rsp5/WWP domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=34;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=4; N2=31;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=0.2776; R2=0.0197; TEXT='OrigScore';
+MA   /CUT_OFF: LEVEL=0; SCORE=417; N_SCORE=8.5; MODE=1;
+MA   /DEFAULT: D=-20; I=-20; B1=-50; E1=-50; MI=-105; MD=-105; IM=-105; DM=-105;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='S'; M=-5,-9,-25,-10,-3,-21,-5,-13,-15,-7,-16,-9,-6,-1,0,-5,2,1,-13,-26,-17,-3;
+MA   /M: SY='P'; M=-7,-5,-30,-1,-1,-24,-5,-13,-22,-9,-24,-17,-4,27,-6,-13,0,-5,-24,-29,-22,-5;
+MA   /M: SY='L'; M=-8,-23,-19,-24,-18,2,-27,-18,15,-22,29,12,-22,-24,-16,-14,-21,-7,12,-24,-5,-18;
+MA   /M: SY='P'; M=-9,-10,-34,-5,7,-27,-18,-12,-18,-6,-23,-13,-10,49,1,-13,-5,-8,-26,-29,-23,1;
+MA   /M: SY='P'; M=-1,-1,-24,1,-2,-22,-6,-11,-21,-5,-24,-17,2,12,-5,-10,8,1,-19,-29,-17,-5;
+MA   /M: SY='G'; M=-4,-9,-31,-7,-11,-29,34,-14,-30,-16,-27,-18,-3,4,-12,-18,-1,-14,-27,-24,-25,-13;
+MA   /M: SY='W'; M=-20,-40,-50,-40,-30,10,-20,-30,-20,-20,-20,-20,-40,-30,-20,-20,-40,-30,-30,150,30,-20;
+MA   /M: SY='E'; M=-8,0,-25,3,24,-20,-20,-7,-21,15,-18,-10,-3,-8,9,5,-2,-3,-16,-25,-12,16;
+MA   /M: SY='E'; M=-1,-8,-15,-8,7,-19,-15,-11,-13,1,-11,-5,-9,-15,1,1,-3,-5,-6,-26,-15,3;
+MA   /M: SY='R'; M=-2,-16,-23,-18,-12,-7,-20,-4,-7,-1,-7,-3,-12,-21,-7,6,-9,-8,-2,-10,2,-11;
+MA   /M: SY='Y'; M=-11,-14,-24,-18,-8,4,-25,-10,-5,-4,-4,1,-12,-19,-4,-5,-10,-2,-5,-7,5,-6;
+MA   /M: SY='D'; M=-5,17,-20,19,3,-23,-11,1,-22,-6,-20,-14,10,-12,-2,-9,10,10,-15,-34,-13,0;
+MA   /M: SY='B'; M=-2,6,-25,6,3,-26,-6,-8,-23,-1,-23,-16,4,3,-3,-8,3,0,-19,-29,-18,-1;
+MA   /M: SY='N'; M=-7,10,-22,10,8,-21,-13,-6,-22,6,-22,-15,11,-13,1,2,7,2,-16,-31,-15,5;
+MA   /I: MD=-27;
+MA   /M: SY='G'; M=-3,-5,-26,-7,-11,-23,30,-13,-28,-3,-23,-12,2,-17,-10,-7,-2,-11,-22,-18,-17,-11; D=-5;
+MA   /I: I=-10; MI=-5; MD=-27; IM=-5; DM=-27;
+MA   /M: SY='R'; M=-13,-10,-25,-12,-3,-14,-17,-7,-18,14,-14,-7,-4,-18,3,34,-7,-4,-11,-20,-8,-3; D=-5;
+MA   /I: DM=-27;
+MA   /M: SY='P'; M=-7,-15,-25,-16,-9,-8,-23,-17,-5,-7,-11,-7,-13,5,-11,-9,-5,3,-4,-14,-5,-12;
+MA   /M: SY='Y'; M=-19,-24,-26,-27,-24,40,-30,5,4,-17,4,1,-20,-30,-19,-14,-20,-10,-3,20,59,-24;
+MA   /M: SY='Y'; M=-20,-24,-26,-28,-24,50,-30,4,0,-18,4,0,-20,-30,-22,-14,-20,-10,-6,22,60,-24;
+MA   /M: SY='Y'; M=-12,-26,-25,-29,-24,10,-29,-9,13,-21,7,5,-22,-26,-19,-18,-18,-8,10,6,14,-23;
+MA   /M: SY='N'; M=-12,40,-22,29,4,-24,-3,12,-24,0,-30,-21,51,-18,0,-2,7,-3,-30,-40,-18,2;
+MA   /M: SY='H'; M=-12,-5,-28,-5,-3,-18,-20,39,-19,-8,-12,-3,-1,-5,0,-4,-9,-10,-19,-28,2,-5;
+MA   /M: SY='E'; M=-5,2,-23,0,9,-19,-17,-8,-12,2,-13,-9,5,-10,2,-3,-1,-3,-11,-29,-15,5;
+MA   /M: SY='T'; M=-1,3,-13,-5,-8,-12,-17,-16,-10,-10,-11,-11,5,-12,-8,-11,17,34,-3,-32,-12,-8;
+MA   /M: SY='K'; M=-11,1,-29,-1,4,-28,-7,1,-29,25,-27,-10,6,-14,11,22,-6,-11,-24,-22,-12,7;
+MA   /M: SY='E'; M=-7,5,-23,5,17,-23,-19,-4,-23,10,-20,-13,2,-8,7,5,5,10,-17,-28,-12,12;
+MA   /M: SY='T'; M=3,0,-10,-7,-7,-13,-14,-17,-13,-10,-16,-13,3,-10,-7,-10,26,40,-3,-33,-13,-7;
+MA   /M: SY='Q'; M=-6,-5,-11,-8,0,-19,-19,-5,-16,-3,-14,-7,-3,-15,14,1,7,11,-14,-25,-7,6;
+MA   /M: SY='W'; M=-19,-36,-45,-37,-28,14,-21,-24,-17,-19,-16,-17,-35,-29,-20,-19,-34,-24,-25,124,33,-20;
+MA   /M: SY='E'; M=-9,4,-25,9,19,-22,-20,-6,-15,0,-14,-11,-2,-10,8,-5,0,-2,-14,-27,-10,13;
+MA   /M: SY='D'; M=-15,5,-32,12,8,-29,-18,4,-27,10,-25,-15,1,11,2,8,-8,-11,-24,-29,-14,2;
+MA   /M: SY='P'; M=-10,-20,-40,-10,0,-30,-20,-20,-20,-10,-30,-20,-20,90,-10,-20,-10,-10,-30,-30,-30,-10;
+MA   /M: SY='R'; M=-9,1,-23,0,1,-20,-14,-8,-21,10,-16,-11,2,-16,0,19,-1,0,-13,-27,-13,-1;
+MA   /M: SY='M'; M=-10,-15,-24,-17,-8,-2,-13,-10,-6,-11,-1,2,-12,-11,-11,-8,-11,-6,-6,-20,-6,-10;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=31(20); /POSITIVE=31(20); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=1;
+CC   /TAXO-RANGE=??E??; /MAX-REPEAT=4;
+DR   P46942, DB10_NICSY, T; P11533, DMD_CHICK , T; P11532, DMD_HUMAN , T;
+DR   P11531, DMD_MOUSE , T; P22696, ESS1_YEAST, T; P46933, FE65_RAT  , T;
+DR   P46940, IQGA_HUMAN, T; P46934, NED4_HUMAN, T; P46935, NED4_MOUSE, T;
+DR   P39940, RSP5_YEAST, T; P40318, SSM4_YEAST, T; P46939, UTRO_HUMAN, T;
+DR   P46936, YA65_CHICK, T; P46937, YA65_HUMAN, T; P46938, YA65_MOUSE, T;
+DR   Q09685, YA12_SCHPO, T; P43582, YFB0_YEAST, T; P33203, YKB2_YEAST, T;
+DR   P46941, YLE5_CAEEL, T; P34600, YO61_CAEEL, T;
+DR   P11530, DMD_RAT   , P;
+DO   PDOC50020;
+//
+ID   HTH_ARAC_FAMILY_2; MATRIX.
+AC   PS01124;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Bacterial regulatory proteins, araC family DNA-binding domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=99;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=94;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=1.5162; R2=0.0218; TEXT='OrigScore';
+MA   /CUT_OFF: LEVEL=0; SCORE=320; N_SCORE=8.5; MODE=1;
+MA   /DEFAULT: D=-20; I=-20; B1=-70; E1=-70; MI=-105; MD=-105; IM=-105; DM=-105;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='D'; M=-10,11,-25,14,13,-25,-12,2,-25,4,-22,-15,7,-13,8,4,0,-7,-23,-25,-10,10;
+MA   /M: SY='R'; M=-7,-1,-26,-1,5,-24,-15,-3,-24,15,-19,-11,0,-11,8,20,-3,-6,-18,-22,-11,5;
+MA   /M: SY='V'; M=8,-24,-17,-29,-22,-2,-24,-25,21,-21,15,9,-22,-22,-20,-22,-11,-3,22,-23,-8,-22;
+MA   /M: SY='V'; M=-7,-18,-10,-21,-13,-7,-25,-14,4,-11,5,4,-15,-23,-10,-5,-11,-2,6,-23,-5,-13;
+MA   /M: SY='Q'; M=-2,-1,-20,-3,2,-23,-10,1,-19,0,-14,-7,0,-15,7,1,-1,-4,-16,-26,-12,3;
+MA   /M: SY='Y'; M=-12,-25,-25,-28,-22,20,-27,-9,3,-16,5,1,-22,-27,-18,-13,-20,-10,-2,19,30,-21;
+MA   /M: SY='I'; M=-8,-28,-20,-35,-26,2,-34,-24,34,-27,24,21,-23,-23,-19,-25,-20,-9,22,-21,-2,-25;
+MA   /M: SY='E'; M=-8,3,-25,6,20,-21,-19,2,-19,1,-13,-11,0,-11,7,2,-1,-5,-17,-28,-12,13;
+MA   /M: SY='E'; M=-3,6,-24,8,12,-22,-10,-4,-23,3,-18,-14,4,-12,4,1,2,-3,-18,-28,-15,7;
+MA   /M: SY='N'; M=-12,21,-22,17,3,-23,-10,20,-24,-1,-23,-14,26,-17,3,0,2,-4,-24,-34,-10,2;
+MA   /M: SY='L'; M=-8,-25,-24,-26,-17,7,-28,-16,14,-22,20,10,-23,-14,-17,-19,-20,-9,5,-14,6,-18;
+MA   /M: SY='E'; M=3,0,-20,0,9,-24,-12,-1,-21,1,-18,-11,0,-10,9,-3,5,-1,-17,-27,-13,9;
+MA   /M: SY='R'; M=-9,4,-24,5,13,-26,-15,4,-26,12,-22,-12,5,-12,14,16,1,-5,-22,-27,-12,12;
+MA   /I: MD=-25;
+MA   /M: SY='P'; M=-4,-1,-25,1,5,-23,-6,-7,-22,4,-23,-15,1,7,0,1,3,-3,-20,-26,-17,1; D=-5;
+MA   /I: I=-7; MI=0; IM=0; DM=-25;
+MA   /M: SY='W'; M=-13,-31,-27,-34,-26,10,-27,-25,8,-24,10,2,-28,-26,-22,-20,-26,-14,2,33,9,-23;
+MA   /M: SY='T'; M=-3,3,-17,-1,-1,-18,-12,-5,-20,1,-20,-13,7,-13,-2,3,12,15,-13,-30,-12,-2;
+MA   /M: SY='L'; M=-8,-29,-22,-32,-23,4,-31,-24,25,-26,30,16,-27,-24,-20,-21,-23,-8,17,-16,-2,-23;
+MA   /M: SY='E'; M=0,12,-24,15,17,-27,-9,-5,-26,3,-21,-17,6,-8,3,-2,4,-4,-20,-30,-18,10;
+MA   /M: SY='D'; M=-6,11,-22,14,8,-24,-14,-6,-20,1,-18,-13,5,-12,4,0,3,-3,-16,-30,-15,5;
+MA   /M: SY='I'; M=-7,-29,-18,-32,-26,9,-32,-24,27,-26,26,16,-27,-28,-24,-21,-20,-6,27,-21,-1,-26;
+MA   /M: SY='A'; M=38,-11,-1,-19,-12,-19,-3,-20,-11,-12,-11,-10,-10,-13,-12,-20,10,2,0,-24,-20,-12;
+MA   /M: SY='E'; M=-5,9,-25,13,16,-27,-10,-1,-26,6,-21,-15,6,-11,9,5,2,-6,-22,-28,-16,12;
+MA   /M: SY='H'; M=-4,-4,-20,-5,5,-17,-17,9,-16,-2,-11,-6,-3,-15,5,-2,-3,-6,-15,-24,-4,4;
+MA   /M: SY='V'; M=5,-21,-11,-26,-19,6,-21,-19,8,-20,9,4,-19,-23,-19,-19,-8,-3,11,-19,-2,-19;
+MA   /M: SY='G'; M=-4,-5,-15,-9,-13,-15,14,-3,-23,-13,-18,-11,2,-20,-10,-12,-3,-11,-20,-21,-9,-13;
+MA   /M: SY='M'; M=-7,-23,-14,-28,-22,3,-26,-15,17,-18,16,18,-22,-25,-17,-17,-15,-3,17,-18,4,-20;
+MA   /M: SY='S'; M=7,1,-12,-1,-2,-19,0,-8,-20,-10,-27,-18,10,-11,-2,-10,33,20,-11,-37,-18,-2;
+MA   /M: SY='P'; M=-7,-9,-29,-5,9,-23,-18,-11,-18,5,-17,-12,-10,15,1,3,-7,-8,-17,-25,-17,3;
+MA   /M: SY='R'; M=-5,-9,-23,-12,-6,-11,-15,-10,-16,1,-17,-11,-2,-17,-2,13,4,1,-11,-11,-6,-6;
+MA   /M: SY='Y'; M=-6,-9,-18,-12,-10,-5,-20,10,-10,-9,-7,-4,-5,-20,-5,-5,-1,5,-8,-16,11,-10;
+MA   /M: SY='L'; M=-11,-30,-20,-32,-23,21,-30,-20,18,-29,38,16,-27,-29,-23,-20,-26,-10,11,-14,6,-23;
+MA   /M: SY='R'; M=-8,-5,-22,-7,2,-19,-18,8,-20,9,-18,-7,-1,-16,12,15,-1,-5,-17,-20,-1,5;
+MA   /I: I=-10; MI=-35; MD=-35; IM=-35;
+MA   /M: SY='R'; M=-9,-4,-26,-5,3,-22,-16,0,-22,17,-19,-9,1,-14,5,24,-4,-5,-16,-24,-10,2; D=-6;
+MA   /I: DM=-35;
+MA   /M: SY='L'; M=-8,-15,-22,-18,-9,-10,-21,-8,-2,-5,8,6,-12,-21,-3,4,-13,-7,-3,-22,-6,-7;
+MA   /M: SY='F'; M=-15,-28,-12,-35,-26,51,-29,-20,3,-29,17,5,-22,-30,-32,-20,-20,-9,2,-3,17,-26;
+MA   /M: SY='R'; M=-10,-2,-28,-1,12,-25,-16,-4,-26,23,-21,-10,0,-13,12,25,-5,-8,-21,-23,-12,11;
+MA   /M: SY='K'; M=-2,2,-24,2,11,-26,-14,-5,-24,16,-22,-12,2,-11,13,13,3,-2,-18,-25,-14,11; D=-6;
+MA   /M: SY='E'; M=-2,-6,-22,-6,7,-13,-19,1,-10,-7,-10,-7,-6,-14,2,-9,-1,-3,-8,-21,-3,3;
+MA   /M: SY='T'; M=-3,-8,-17,-13,-11,-7,-14,-13,-5,-10,-2,-2,-6,-19,-10,-9,-2,7,-2,-23,-5,-11;
+MA   /M: SY='G'; M=-1,-7,-25,-10,-17,-23,40,-16,-28,-16,-21,-15,1,-19,-16,-15,1,-8,-20,-23,-23,-16;
+MA   /I: I=-7; MI=-30; MD=-30; IM=-30;
+MA   /M: SY='M'; M=-4,-12,-14,-16,-9,-8,-18,-8,3,-7,2,7,-10,-15,-3,-6,-6,0,3,-18,-4,-7; D=-6;
+MA   /I: DM=-29;
+MA   /M: SY='T'; M=2,0,-14,-4,-5,-18,-4,-14,-18,-7,-22,-15,6,-6,-6,-9,19,22,-11,-32,-17,-6; D=-6;
+MA   /M: SY='P'; M=-10,-25,-26,-25,-16,8,-26,-20,1,-19,-2,-3,-22,18,-20,-19,-15,-9,-3,-16,-3,-20;
+MA   /M: SY='N'; M=-5,-3,-19,-8,-5,-17,-8,-6,-15,2,-13,-4,3,-17,-1,2,-1,-3,-13,-26,-12,-4;
+MA   /M: SY='Q'; M=-3,4,-25,4,16,-29,-11,0,-24,7,-21,-12,5,-10,21,7,3,-5,-23,-26,-15,18;
+MA   /M: SY='Y'; M=-16,-25,-31,-27,-21,15,-29,-4,7,-17,5,3,-23,-27,-12,-15,-23,-13,-3,28,37,-18;
+MA   /M: SY='L'; M=-9,-27,-23,-31,-22,4,-32,-21,26,-24,27,16,-23,-25,-17,-17,-21,-8,17,-19,1,-22;
+MA   /M: SY='R'; M=-10,-5,-23,-9,-2,-13,-18,-3,-12,3,-6,-1,1,-18,2,15,-5,-1,-11,-25,-9,-1;
+MA   /M: SY='D'; M=-7,9,-25,10,10,-25,-14,-1,-22,5,-19,-13,7,-13,9,8,1,-4,-19,-28,-13,8;
+MA   /M: SY='R'; M=-8,-18,-17,-20,-12,-8,-22,-12,-6,-5,-5,-2,-14,-22,-6,5,-11,-6,-3,-6,-1,-10; D=-6;
+MA   /M: SY='R'; M=-18,-9,-30,-9,2,-22,-20,-1,-29,32,-21,-9,0,-18,11,62,-10,-10,-20,-20,-10,2;
+MA   /M: SY='M'; M=-8,-26,-21,-32,-22,3,-28,-16,25,-22,29,31,-24,-24,-14,-18,-22,-9,16,-20,-1,-19;
+MA   /M: SY='E'; M=-5,-2,-17,-2,6,-20,-14,-5,-16,-3,-13,-9,-1,-13,3,-2,2,-1,-13,-29,-14,3;
+MA   /M: SY='R'; M=-10,-5,-21,-6,2,-16,-18,4,-18,7,-13,-5,-3,-17,6,8,-7,-8,-16,-20,-1,2;
+MA   /M: SY='A'; M=36,-13,-13,-21,-13,-17,-4,-21,-3,-13,-6,-6,-11,-13,-12,-20,6,0,4,-22,-17,-13;
+MA   /M: SY='R'; M=0,-10,-22,-13,-3,-18,-17,-4,-16,10,-10,-5,-6,-17,2,18,-7,-7,-10,-22,-10,-3;
+MA   /M: SY='R'; M=-3,-5,-23,-7,1,-17,-17,-4,-13,4,-8,-4,-3,-16,5,7,-5,-6,-11,-22,-8,2;
+MA   /M: SY='L'; M=-8,-13,-18,-13,-7,-3,-23,-12,0,-15,15,5,-16,-22,-9,-12,-16,-9,-3,-19,-2,-8;
+MA   /M: SY='L'; M=-8,-29,-20,-30,-20,8,-29,-20,21,-28,43,19,-28,-28,-19,-20,-26,-9,12,-21,-1,-20;
+MA   /M: SY='R'; M=-5,-12,-18,-14,-5,-10,-21,-12,-5,-5,-1,-1,-8,-19,-3,3,-5,-2,-4,-24,-9,-5;
+MA   /M: SY='B'; M=-9,4,-23,3,3,-14,-16,0,-16,-3,-11,-7,3,-15,0,-2,-1,-1,-14,-26,-7,1;
+MA   /M: SY='S'; M=-1,1,-20,-1,-2,-21,-3,-7,-21,-6,-22,-15,5,-3,-3,-8,13,12,-16,-30,-16,-3;
+MA   /I: MD=-23;
+MA   /M: SY='N'; M=-7,15,-24,15,9,-26,-2,-2,-27,2,-25,-18,16,-12,3,1,5,-4,-23,-29,-18,5; D=-4;
+MA   /I: MD=-23;
+MA   /M: SY='M'; M=-5,-10,-21,-12,-5,-8,-14,-3,-8,-3,-3,2,-8,-15,-1,-2,-9,-8,-10,-13,1,-4; D=-4;
+MA   /I: I=-7; MI=0; IM=0; DM=-23;
+MA   /M: SY='S'; M=1,-1,-20,-3,0,-21,-9,-8,-18,-3,-24,-14,5,3,2,-6,15,9,-16,-31,-16,0;
+MA   /M: SY='I'; M=-5,-29,-21,-35,-29,1,-34,-28,38,-25,17,16,-24,-24,-23,-25,-16,-6,35,-24,-4,-28;
+MA   /M: SY='T'; M=4,-6,-17,-11,-8,-9,-12,-14,-8,-9,-8,-7,-2,-16,-9,-10,6,10,-3,-25,-10,-8;
+MA   /M: SY='E'; M=-7,12,-25,17,21,-29,-14,-2,-25,4,-21,-15,5,-9,15,0,4,-2,-22,-29,-15,17;
+MA   /M: SY='I'; M=-2,-27,-23,-34,-27,-2,-32,-27,36,-25,15,15,-20,-21,-20,-25,-13,-5,28,-23,-4,-26;
+MA   /M: SY='A'; M=38,-9,-10,-16,-9,-20,3,-18,-12,-11,-14,-12,-6,-11,-9,-18,14,2,-3,-24,-20,-9;
+MA   /M: SY='H'; M=-9,-8,-22,-11,-5,-8,-19,5,-7,-6,-2,5,-5,-20,0,-2,-9,-7,-9,-18,2,-4;
+MA   /M: SY='R'; M=-8,3,-22,2,6,-21,-15,-3,-18,7,-14,-6,4,-15,7,11,-1,-4,-16,-27,-13,5;
+MA   /M: SY='C'; M=-4,-22,10,-26,-23,-1,-26,-17,2,-20,1,-2,-20,-29,-21,-20,-13,-7,8,-13,2,-23;
+MA   /M: SY='G'; M=-1,-10,-29,-10,-18,-27,62,-18,-38,-18,-28,-19,0,-20,-18,-17,0,-19,-29,-20,-27,-18;
+MA   /M: SY='F'; M=-18,-27,-24,-33,-26,52,-31,-8,6,-23,9,3,-20,-29,-27,-18,-20,-10,1,12,42,-26;
+MA   /M: SY='S'; M=0,3,-21,4,1,-20,-2,-8,-21,-7,-20,-15,4,-9,-4,-8,8,0,-16,-28,-16,-2;
+MA   /I: I=-10; MI=-35; MD=-35; IM=-35;
+MA   /M: SY='D'; M=-4,15,-19,20,7,-24,-6,7,-26,-6,-27,-19,13,-11,2,-8,19,5,-19,-37,-14,4; D=-6;
+MA   /I: DM=-35;
+MA   /M: SY='Q'; M=-1,-6,-21,-8,0,-20,-14,-9,-12,-6,-12,-7,-4,-3,6,-6,5,5,-11,-28,-14,2;
+MA   /M: SY='S'; M=6,-3,-18,-6,-4,-17,2,-10,-17,-10,-19,-13,5,-11,-1,-11,15,4,-14,-29,-16,-2;
+MA   /M: SY='Y'; M=-9,-10,-25,-12,-10,3,-20,15,-12,-4,-9,-5,-7,-22,-3,0,-6,-2,-13,-2,31,-10;
+MA   /M: SY='F'; M=-19,-29,-20,-38,-28,69,-30,-19,2,-29,14,3,-21,-30,-36,-19,-21,-10,1,7,27,-28;
+MA   /M: SY='S'; M=7,-10,-8,-15,-12,-12,-15,-16,-3,-14,-11,-8,-4,-15,-9,-15,13,11,1,-28,-10,-12;
+MA   /M: SY='R'; M=-9,-2,-23,-3,3,-21,-16,-4,-22,14,-19,-10,2,-16,6,23,-1,-2,-15,-25,-10,2;
+MA   /M: SY='V'; M=2,-10,-17,-12,-5,-11,-16,-14,-2,-10,-3,-3,-9,-18,-10,-11,-3,-2,4,-26,-12,-8;
+MA   /M: SY='F'; M=-17,-28,-20,-35,-28,62,-30,-13,2,-26,8,1,-20,-29,-32,-19,-19,-10,0,10,35,-28;
+MA   /M: SY='R'; M=-12,0,-28,-2,5,-25,-17,-6,-28,33,-25,-11,3,-13,8,35,-6,-7,-19,-22,-12,5;
+MA   /M: SY='R'; M=-9,0,-27,-1,8,-25,-17,-3,-26,24,-23,-11,2,-13,12,27,-2,-5,-20,-23,-11,9;
+MA   /M: SY='Y'; M=-11,-10,-20,-13,-6,-6,-23,5,-10,-2,-7,-3,-7,-20,-2,2,-8,-3,-9,-13,10,-6;
+MA   /M: SY='F'; M=-13,-21,-21,-27,-20,35,-27,-11,2,-20,8,2,-17,-25,-22,-15,-13,-1,0,-1,25,-20;
+MA   /M: SY='G'; M=-2,-1,-28,-3,-13,-29,51,-14,-36,-14,-29,-20,9,-19,-14,-15,3,-15,-29,-24,-27,-14;
+MA   /M: SY='M'; M=-6,-16,-13,-19,-8,-4,-24,-11,3,-11,1,7,-15,-20,-7,-11,-10,-5,5,-17,-1,-8;
+MA   /M: SY='T'; M=5,-3,-12,-9,-7,-13,-13,-16,-11,-11,-12,-11,0,-9,-7,-11,19,28,-4,-32,-14,-7;
+MA   /M: SY='P'; M=-7,-20,-38,-11,-1,-28,-19,-20,-18,-10,-27,-18,-19,80,-10,-19,-9,-9,-27,-29,-29,-10;
+MA   /M: SY='S'; M=3,-4,-17,-5,-2,-20,-5,-8,-19,1,-22,-12,3,-13,1,2,17,8,-12,-31,-15,-1;
+MA   /M: SY='E'; M=-7,6,-27,11,22,-28,-16,1,-24,7,-19,-12,1,-10,19,4,-1,-8,-23,-26,-12,20;
+MA   /M: SY='Y'; M=-14,-19,-23,-23,-20,29,-27,-6,0,-17,3,-1,-17,-25,-19,-15,-13,-1,-3,10,35,-20;
+MA   /M: SY='R'; M=-13,-14,-25,-15,-6,-9,-21,-7,-13,8,-3,-2,-7,-21,0,32,-11,-8,-9,-20,-6,-6;
+MA   /M: SY='R'; M=-4,-4,-24,-6,2,-20,-16,-1,-17,9,-14,-6,-1,-15,7,11,-3,-4,-14,-22,-9,3;
+MA   /M: SY='R'; M=-9,-7,-26,-8,-3,-17,-10,-2,-13,0,-12,-4,-2,-17,3,5,-4,-5,-12,-21,-6,-2;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=63(63); /POSITIVE=63(63); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=0;
+CC   /TAXO_RANGE=???P?; /MAX-REPEAT=1;
+DR   P06134, ADA_ECOLI , T; P26189, ADA_SALTY , T; P43463, AARP_PROST, T;
+DR   P19219, ADAA_BACSU, T; P33234, ADIY_ECOLI, T; P43464, AGGR_ECOLI, T;
+DR   P05052, APPY_ECOLI, T; P11765, ARAC_CITFR, T; P03021, ARAC_ECOLI, T;
+DR   P07642, ARAC_ERWCH, T; P03022, ARAC_SALTY, T; Q03320, ARAL_STRAT, T;
+DR   P35319, ARAL_STRLI, T; P26950, CAFR_YERPE, T; P17410, CELD_ECOLI, T;
+DR   P43460, CSVR_ECOLI, T; P10805, ENVY_ECOLI, T; P26993, EXSA_PSEAE, T;
+DR   P23774, FAPR_ECOLI, T; P31778, HRPB_BURSO, T; P39437, INVF_SALTY, T;
+DR   P28808, LCRF_YERPE, T; P27246, MARA_ECOLI, T; P10411, MELR_ECOLI, T;
+DR   P28809, MMSR_PSEAE, T; Q00753, MSMR_STRMU, T; Q04642, MXIE_SHIFL, T;
+DR   P40883, PCHR_PSEAE, T; P43459, PERA_ECOLI, T; Q05587, POCR_SALTY, T;
+DR   P43465, RAFR_PEDPE, T; P09378, RHAR_ECOLI, T; P40865, RHAR_SALTY, T;
+DR   P09377, RHAS_ECOLI, T; P27029, RHAS_SALTY, T; P16114, RNS_ECOLI , T;
+DR   P25393, CFAD_ECOLI, T; P27292, ROB_ECOLI , T; P22539, SOXS_ECOLI, T;
+DR   P29492, TCPN_VIBCH, T; P28816, TETD_ECOLI, T; P43462, THCR_RHOSO, T;
+DR   P32326, URER_ECOLI, T; Q02458, URER_PROMI, T; Q04248, VIRF_SHIDY, T;
+DR   P13225, VIRF_YEREN, T; P37390, XYLR_ECOLI, T; P45043, XYLR_HAEIN, T;
+DR   P07859, XYLS_PSEPU, T; Q04710, XYS1_PSEPU, T; Q05092, XYS2_PSEPU, T;
+DR   Q05335, XYS3_PSEPU, T; Q04713, XYS4_PSEPU, T; P36547, YFEG_ECOLI, T;
+DR   P37638, YHIW_ECOLI, T; P37639, YHIX_ECOLI, T; P31449, YIDL_ECOLI, T;
+DR   P32677, YIJO_ECOLI, T; P45008, YA52_HAEIN, T; P40331, YUXC_BACSU, T;
+DR   P40408, YZBC_BACSU, T; P43461, YCGK_ALTCA, T; P43458, YMCR_STRLA, T;
+DO   PDOC00040;
+//
+ID   BROMODOMAIN_2; MATRIX.
+AC   PS50014;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Bromodomain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=71;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=66;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=1.5830; R2=0.0138; TEXT='NScore';
+MA   /CUT_OFF: LEVEL=0; SCORE=501; N_SCORE=8.5; MODE=1;
+MA   /DEFAULT: D=-20; I=-20; B1=-70; E1=-70; MI=-105; MD=-105; IM=-105; DM=-105;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='K'; M=-7,4,-27,6,6,-25,-11,-6,-25,11,-24,-12,2,-13,8,9,0,-6,-20,-16,-12,7;
+MA   /M: SY='G'; M=-5,-2,-27,-2,-2,-23,11,4,-28,-1,-24,-13,3,-16,0,-2,0,-10,-23,-21,-9,-2;
+MA   /M: SY='H'; M=-6,-8,-22,-11,-8,-13,-19,4,-7,-2,-4,1,-5,-19,-4,4,-7,-6,-4,-25,-5,-8;
+MA   /M: SY='P'; M=-5,-4,-30,1,7,-25,-10,-9,-24,0,-24,-16,-5,20,1,-7,-2,-7,-24,-26,-19,3;
+MA   /M: SY='L'; M=-12,-6,-25,-6,-6,2,-24,-6,-3,-14,6,-1,-9,-21,-11,-11,-13,-7,-6,-17,5,-9;
+MA   /M: SY='S'; M=12,-3,-13,-7,-7,-14,-5,-15,-12,-12,-17,-13,2,-13,-8,-14,19,13,-4,-30,-16,-8;
+MA   /M: SY='W'; M=-11,-3,-30,0,0,-12,-17,-10,-20,-5,-16,-15,-7,-13,-5,-8,-9,-8,-20,14,2,-2;
+MA   /M: SY='P'; M=-10,-20,-35,-16,-9,-20,-25,-22,0,-16,-12,-7,-19,47,-13,-22,-13,-10,-10,-28,-20,-15;
+MA   /M: SY='F'; M=-20,-30,-20,-40,-30,80,-30,-20,0,-30,10,0,-20,-30,-40,-20,-20,-10,0,10,30,-30;
+MA   /M: SY='L'; M=-12,-14,-25,-16,-4,-5,-25,0,3,-12,11,8,-11,-21,-4,-5,-15,-9,-4,-20,2,-6;
+MA   /M: SY='E'; M=-10,2,-26,2,15,-22,-19,1,-21,12,-20,-9,2,-12,15,9,-2,-6,-19,-24,-10,15;
+MA   /M: SY='P'; M=-10,-22,-31,-17,-7,-15,-24,-19,-6,-12,0,-4,-22,35,-12,-15,-18,-10,-14,-25,-17,-12;
+MA   /M: SY='V'; M=-4,-26,-21,-22,-19,-11,-26,-26,11,-16,-5,-1,-26,15,-22,-20,-10,-4,20,-30,-18,-22;
+MA   /M: SY='D'; M=-6,24,-21,28,7,-28,-5,-4,-27,-5,-30,-24,20,-4,-1,-9,16,3,-22,-39,-21,3;
+MA   /I: I=-6; MI=0; IM=0; DM=-30; MD=-30;
+MA   /M: SY='K'; M=-3,-7,-26,-8,1,-22,-18,-11,-20,25,-16,-6,-5,-11,3,22,-7,-7,-14,-21,-11,1;
+MA   /M: SY='R'; M=-10,-7,-26,-7,1,-18,-20,-3,-16,14,-7,-1,-6,-17,3,16,-11,-9,-12,-22,-7,1;
+MA   /M: SY='E'; M=-12,3,-26,5,9,-12,-10,-5,-19,-1,-12,-11,2,-16,-1,0,-6,-9,-18,-23,-8,4;
+MA   /M: SY='L'; M=-7,-21,-20,-22,-20,6,-28,-11,15,-21,16,8,-21,-26,-19,-18,-17,-7,14,-15,10,-21;
+MA   /M: SY='P'; M=-7,-17,-37,-9,0,-29,-19,-13,-21,-6,-28,-18,-17,72,-8,-16,-9,-10,-28,-29,-25,-8;
+MA   /M: SY='D'; M=-16,33,-27,43,15,-29,-10,-1,-30,-1,-24,-19,16,-12,2,-8,0,-7,-25,-35,-17,9;
+MA   /M: SY='Y'; M=-20,-20,-30,-20,-20,30,-30,20,0,-10,0,0,-20,-30,-10,-10,-20,-10,-10,30,80,-20;
+MA   /M: SY='Y'; M=-19,-17,-28,-19,-16,23,-27,25,-8,-10,-2,0,-13,-27,-10,-4,-18,-12,-12,10,50,-16;
+MA   /M: SY='E'; M=-11,8,-28,11,13,-24,-18,-3,-21,11,-18,-9,2,-12,9,8,-5,-7,-18,-25,-9,10;
+MA   /M: SY='I'; M=-9,-26,-24,-32,-25,4,-33,-18,30,-21,16,16,-21,-24,-18,-21,-18,-8,23,-18,5,-24;
+MA   /M: SY='I'; M=-8,-30,-25,-38,-30,0,-38,-30,45,-28,18,18,-22,-22,-22,-28,-18,-8,35,-22,-2,-30;
+MA   /M: SY='K'; M=-7,-2,-26,-3,8,-27,-19,2,-23,24,-23,-7,0,-12,14,16,-4,-5,-17,-23,-8,10;
+MA   /M: SY='K'; M=-9,5,-26,2,9,-25,-14,3,-24,18,-25,-11,10,-13,15,18,2,-4,-22,-25,-10,11;
+MA   /M: SY='P'; M=-6,-19,-37,-10,-1,-29,-18,-20,-19,-10,-29,-19,-18,80,-10,-20,-7,-8,-27,-30,-29,-10;
+MA   /M: SY='M'; M=-8,-23,-19,-31,-23,1,-24,-9,24,-15,21,45,-23,-23,-9,-14,-19,-8,19,-22,-2,-16;
+MA   /M: SY='D'; M=-9,35,-20,48,12,-34,-9,-5,-34,-3,-27,-26,14,-11,-2,-12,6,-4,-23,-38,-20,5;
+MA   /M: SY='L'; M=-11,-29,-21,-32,-23,18,-31,-20,21,-28,36,18,-27,-28,-22,-20,-26,-9,13,-15,6,-23;
+MA   /M: SY='E'; M=-8,9,-26,12,13,-27,-5,-4,-27,5,-26,-17,9,-6,8,-1,4,-5,-25,-29,-17,10;
+MA   /M: SY='T'; M=-4,-2,-18,-9,-8,-13,-14,-17,-7,-8,-9,-4,-1,-13,-8,-10,7,23,-3,-27,-11,-9;
+MA   /M: SY='I'; M=-7,-29,-22,-35,-28,1,-34,-25,38,-25,20,22,-24,-24,-20,-24,-18,-7,31,-23,-3,-27;
+MA   /M: SY='K'; M=-9,-1,-27,-2,10,-23,-16,-4,-23,21,-17,-9,1,-14,8,20,-8,-9,-19,-23,-11,8;
+MA   /M: SY='K'; M=-11,1,-28,2,18,-28,-19,-4,-26,26,-23,-11,2,-10,16,23,-4,-7,-21,-24,-13,16;
+MA   /M: SY='R'; M=-14,4,-28,0,3,-22,-17,2,-27,30,-25,-11,11,-16,7,34,-7,-8,-22,-22,-7,3;
+MA   /I: MD=-15;
+MA   /M: SY='L'; M=-7,-25,-15,-30,-23,4,-28,-20,23,-24,25,19,-22,-25,-18,-20,-20,-8,17,-21,-3,-21; D=-2;
+MA   /I: MD=-15;
+MA   /M: SY='E'; M=-11,10,-28,13,18,-24,-15,-3,-27,12,-24,-17,7,-7,6,7,-3,-8,-24,-17,-12,11; D=-2;
+MA   /I: I=-4; MI=0; MD=-15; IM=0; DM=-15;
+MA   /M: SY='N'; M=-3,10,-18,6,2,-22,-11,-6,-16,0,-19,-12,12,-13,3,-4,6,4,-14,-30,-15,2; D=-2;
+MA   /I: DM=-15;
+MA   /M: SY='G'; M=-10,-8,-24,-11,-13,-13,17,0,-27,-9,-19,-12,0,-21,-10,-1,-6,-13,-22,-12,-6,-13; D=-2;
+MA   /I: DM=-15;
+MA   /M: SY='Q'; M=-8,-2,-27,-2,8,-21,-19,3,-21,14,-18,-8,0,-14,15,15,-4,-6,-20,-18,-2,10;
+MA   /M: SY='Y'; M=-20,-20,-30,-20,-20,30,-30,20,0,-10,0,0,-20,-30,-10,-10,-20,-10,-10,30,80,-20;
+MA   /M: SY='Q'; M=-7,-3,-25,-3,5,-21,-18,-5,-18,4,-16,-9,-2,-9,8,5,0,1,-16,-19,-10,6;
+MA   /M: SY='S'; M=1,8,-16,9,6,-22,-9,-9,-21,-3,-24,-18,9,-10,0,-7,22,15,-13,-36,-17,3;
+MA   /I: I=-6; MI=0; IM=0; DM=-30; MD=-30;
+MA   /M: SY='M'; M=-3,-20,-24,-21,-13,-3,-21,-14,-1,-8,1,3,-17,-2,-11,-5,-13,-8,-2,-18,-4,-14;
+MA   /M: SY='E'; M=-7,1,-28,4,20,-24,-12,-4,-22,4,-17,-12,-1,-9,12,-1,-2,-9,-23,-19,-12,16;
+MA   /M: SY='E'; M=-11,17,-28,25,34,-32,-14,1,-28,5,-23,-17,8,-6,19,-2,3,-8,-28,-31,-18,27;
+MA   /M: SY='F'; M=-17,-28,-16,-36,-28,60,-30,-18,2,-27,10,1,-20,-29,-34,-19,-18,-7,2,3,25,-28;
+MA   /M: SY='L'; M=-4,-15,-18,-16,-4,-9,-22,-13,1,-8,5,4,-14,-19,-5,-6,-8,-4,1,-23,-7,-5;
+MA   /M: SY='D'; M=-5,13,-26,16,14,-27,-15,-3,-23,8,-19,-14,6,-11,9,1,-2,-8,-20,-27,-13,11;
+MA   /M: SY='D'; M=-17,45,-29,64,19,-38,-10,2,-38,0,-29,-28,18,-10,0,-10,0,-10,-29,-39,-19,10;
+MA   /M: SY='I'; M=-5,-28,-20,-34,-27,16,-30,-25,25,-25,17,12,-23,-25,-25,-23,-17,-7,23,-16,2,-26;
+MA   /M: SY='R'; M=-11,1,-25,-3,5,-17,-17,0,-13,4,-13,-2,5,-17,6,8,-6,-8,-14,-20,-10,5;
+MA   /M: SY='L'; M=-9,-21,-21,-22,-12,-1,-27,-15,8,-17,30,13,-21,-24,-6,-11,-20,-5,2,-21,-3,-9;
+MA   /M: SY='I'; M=-9,-27,-23,-34,-25,2,-31,-19,34,-23,24,32,-22,-22,-14,-21,-21,-9,22,-21,-1,-22;
+MA   /M: SY='F'; M=-11,-27,-12,-32,-26,28,-29,-21,8,-25,11,3,-23,-25,-28,-20,-18,-7,8,-4,11,-25;
+MA   /M: SY='Q'; M=-5,4,-24,2,4,-23,-14,2,-21,6,-21,-11,7,-13,10,4,4,1,-18,-22,-10,6;
+MA   /M: SY='N'; M=-6,37,-20,20,0,-21,-1,7,-20,-1,-28,-20,52,-19,-1,-2,9,-1,-28,-38,-20,0;
+MA   /M: SY='C'; M=20,-12,31,-21,-16,-15,-12,-22,-17,-17,-15,-14,-10,-20,-16,-21,7,2,-4,-31,-20,-16;
+MA   /M: SY='Y'; M=-11,-13,-27,-16,-8,-8,-24,-3,-4,-2,-4,0,-9,-21,1,4,-13,-10,-6,-6,6,-5;
+MA   /M: SY='T'; M=-5,-9,-21,-17,-12,-8,-24,-17,5,-7,-2,2,-4,-16,-7,-9,-2,9,3,-24,-6,-11;
+MA   /M: SY='Y'; M=-16,-20,-25,-23,-20,33,-27,5,0,-15,0,-1,-16,-27,-16,-13,-13,-6,-6,14,52,-20;
+MA   /M: SY='N'; M=-11,33,-22,19,-1,-20,1,12,-22,-2,-28,-19,47,-20,-1,-2,6,-3,-29,-35,-13,-1;
+MA   /M: SY='G'; M=-4,-2,-27,0,-1,-25,9,-13,-25,-4,-20,-13,-2,-6,-6,-4,-1,-7,-20,-25,-20,-4;
+MA   /M: SY='P'; M=-7,-2,-31,4,9,-27,-6,-10,-27,2,-25,-18,-4,18,-1,-2,-3,-9,-25,-26,-19,1;
+MA   /M: SY='D'; M=-8,15,-27,19,9,-31,6,-3,-31,-3,-26,-19,10,-10,4,-7,3,-7,-26,-30,-19,6;
+MA   /M: SY='S'; M=3,-2,-18,-2,0,-21,-9,-3,-20,-7,-25,-16,3,2,-1,-6,20,12,-14,-34,-16,-2;
+MA   /M: SY='E'; M=-7,-7,-25,-5,5,-14,-16,-10,-10,-7,-5,-6,-9,-16,-3,-6,-7,-9,-8,-19,-10,1;
+MA   /M: SY='I'; M=-8,-27,-22,-32,-27,7,-33,-22,30,-23,12,11,-22,-25,-22,-22,-14,-5,27,-16,7,-27;
+MA   /M: SY='Y'; M=-10,-13,-23,-16,-15,4,-23,-3,-1,-4,-5,-2,-11,-23,-10,-6,-9,0,-1,-4,26,-15;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=19(14); /POSITIVE=19(14); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=0;
+CC   /TAXO-RANGE=??E??; /MAX-REPEAT=2;
+DR   P25439, BRM_DROME , T; P35817, BDF1_YEAST, T; Q03330, GCN5_YEAST, T;
+DR   P22082, SNF2_YEAST, T; P35177, SPT7_YEAST, T; P45481, CBP_MOUSE , T;
+DR   P21675, CCG1_HUMAN, T; P25440, RNG3_HUMAN, T; P13709, FSH_DROME , T;
+DR   P32597, STH1_YEAST, T; P34545, YNJ1_CAEEL, T; Q02206, YKY8_YEAST, T;
+DR   Q03164, HRX_HUMAN , T; P40340, TBP7_YEAST, T;
+DO   PDOC00633;
+//
+ID   CHROMO_2; MATRIX.
+AC   PS50013;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Chromo and chromo shadow domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=59;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=54;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=0.4848; R2=0.0181; TEXT='NScore';
+MA   /CUT_OFF: LEVEL=0; SCORE=443; N_SCORE=8.5; MODE=1;
+MA   /DEFAULT: D=-20; I=-20; B1=-70; E1=-70; MI=-105; MD=-105; IM=-105; DM=-105;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='Y'; M=-16,-17,-26,-17,-13,19,-27,0,-3,-13,4,0,-17,-25,-12,-11,-18,-11,-6,4,28,-13;
+MA   /M: SY='E'; M=3,-6,-20,-4,9,-18,-18,-15,-7,-7,-11,-9,-9,-6,-4,-12,3,1,0,-30,-17,2;
+MA   /M: SY='V'; M=3,-24,-21,-24,-17,-9,-23,-25,9,-16,-1,-1,-23,-1,-19,-20,-10,-6,14,-16,-12,-19;
+MA   /M: SY='E'; M=-10,7,-31,17,53,-30,-16,-2,-30,8,-21,-20,-1,4,17,-2,-1,-10,-30,-30,-21,34;
+MA   /M: SY='R'; M=-10,1,-24,3,7,-26,-17,-6,-29,28,-24,-13,1,-14,7,32,-6,-8,-19,-24,-13,5;
+MA   /M: SY='I'; M=-9,-28,-26,-35,-27,2,-35,-28,36,-27,16,14,-21,-15,-21,-26,-17,-6,25,-21,-2,-27;
+MA   /M: SY='L'; M=-9,-26,-22,-28,-18,2,-31,-21,22,-21,29,16,-24,-25,-17,-16,-22,-9,15,-22,-3,-19;
+MA   /I: I=-6; MI=0; IM=0; DM=-20; MD=-20;
+MA   /M: SY='D'; M=-4,14,-21,21,10,-32,1,-7,-31,-1,-24,-20,5,-12,3,-6,1,-10,-24,-30,-20,6;
+MA   /M: SY='A'; M=3,-8,-15,-13,-9,-17,-12,1,-14,-4,-12,-6,-4,-17,-6,-2,1,2,-7,-26,-9,-9;
+MA   /M: SY='R'; M=-11,-4,-26,-6,2,-21,-18,-6,-20,18,-20,-9,2,-15,7,29,-1,-1,-14,-25,-11,2;
+MA   /M: SY='B'; M=-8,5,-22,5,-1,-20,-11,-9,-13,2,-15,-6,4,-17,-5,-2,-3,-5,-6,-30,-15,-3;
+MA   /M: SY='R'; M=-5,-2,-17,-4,0,-22,-13,-9,-19,7,-20,-12,1,-12,1,10,0,-3,-13,-28,-16,-1;
+MA   /M: SY='R'; M=-10,5,-22,2,5,-27,-11,-4,-27,21,-27,-13,9,-15,10,22,0,-6,-22,-27,-14,7;
+MA   /I: I=-3; MI=0; MD=-15; IM=0;
+MA   /M: SY='G'; M=-2,-4,-25,-5,-10,-23,40,-11,-31,-12,-25,-17,5,-17,-11,-11,3,-12,-25,-20,-20,-11; D=-2;
+MA   /I: DM=-15;
+MA   /M: SY='R'; M=-9,1,-24,1,4,-21,-7,-6,-19,6,-14,-8,3,-14,6,8,-4,-5,-17,-23,-13,4; D=-2;
+MA   /I: DM=-15;
+MA   /M: SY='L'; M=-10,-23,-21,-23,-16,6,-25,-13,9,-17,16,6,-21,-14,-16,-11,-17,-7,6,-14,6,-17; D=-2;
+MA   /I: DM=-15;
+MA   /M: SY='E'; M=-9,0,-25,3,22,-18,-21,-5,-13,2,-11,-4,-5,-9,10,-4,-3,-5,-12,-25,-12,16; D=-2;
+MA   /I: DM=-15;
+MA   /M: SY='Y'; M=-18,-25,-25,-30,-25,46,-31,-2,5,-20,8,2,-21,-29,-23,-16,-20,-10,-1,15,49,-25;
+MA   /M: SY='L'; M=-13,-26,-23,-28,-20,19,-30,-11,12,-23,29,12,-24,-28,-17,-15,-25,-10,3,-7,18,-19;
+MA   /M: SY='V'; M=-6,-29,-10,-32,-27,1,-31,-25,28,-24,20,17,-26,-27,-23,-22,-17,-6,31,-26,-6,-26;
+MA   /M: SY='K'; M=-10,-1,-29,-1,9,-29,-20,-8,-28,42,-27,-9,0,-11,12,29,-7,-6,-19,-21,-10,10;
+MA   /M: SY='W'; M=-20,-39,-48,-40,-30,15,-21,-29,-19,-21,-18,-19,-39,-30,-21,-20,-39,-29,-28,140,30,-21;
+MA   /M: SY='K'; M=-7,-7,-25,-8,3,-21,-21,-11,-16,22,-11,-4,-7,-15,6,15,-10,-6,-11,-21,-9,4;
+MA   /M: SY='G'; M=-4,3,-29,3,-12,-29,49,-13,-37,-13,-30,-21,10,-19,-14,-13,1,-16,-30,-25,-27,-13;
+MA   /M: SY='Y'; M=-13,-21,-26,-21,-17,15,-20,-4,-2,-16,2,-2,-19,-26,-14,-14,-15,-8,-6,16,32,-17;
+MA   /M: SY='D'; M=-2,14,-22,18,3,-28,-1,-4,-27,-7,-27,-21,11,-2,-3,-12,12,1,-21,-35,-20,-1;
+MA   /M: SY='E'; M=-11,9,-28,12,15,-19,-18,13,-19,-2,-17,-11,5,-13,9,-5,-3,-9,-21,-21,2,10;
+MA   /I: I=-5; MI=0; MD=-20; IM=0;
+MA   /M: SY='A'; M=5,1,-18,0,-1,-16,-9,-11,-14,-3,-14,-11,0,-11,-4,-6,4,1,-10,-14,-11,-2; D=-5;
+MA   /I: DM=-20;
+MA   /M: SY='E'; M=-12,12,-26,20,29,-25,-16,22,-28,1,-20,-15,6,-8,10,-3,0,-10,-26,-28,-6,18; D=-5;
+MA   /I: DM=-20;
+MA   /M: SY='N'; M=-9,11,-7,1,-7,-17,-12,3,-14,-9,-14,-6,19,-13,-6,-9,-3,-6,-18,-35,-15,-7;
+MA   /M: SY='T'; M=0,-5,-11,-11,-11,-11,-18,-12,-6,-12,-11,-8,-3,-14,-10,-11,17,32,5,-32,-10,-11;
+MA   /M: SY='W'; M=-17,-34,-45,-33,-24,3,-21,-27,-17,-19,-17,-17,-34,-9,-18,-20,-32,-22,-26,101,16,-18;
+MA   /M: SY='E'; M=3,5,-24,10,39,-27,-14,-5,-25,4,-20,-18,0,-3,12,-5,8,-3,-22,-30,-20,26;
+MA   /M: SY='P'; M=-6,-5,-28,-2,1,-25,-16,-15,-21,0,-26,-17,-4,35,-5,-8,3,5,-21,-31,-21,-4;
+MA   /M: SY='E'; M=-4,-5,-26,-1,22,-19,-17,-8,-14,-1,-9,-10,-8,-7,3,-6,-5,-9,-13,-24,-12,12;
+MA   /M: SY='A'; M=11,-1,-19,-2,10,-20,-11,-12,-15,-3,-12,-12,-3,-10,-1,-10,6,2,-9,-27,-17,4;
+MA   /M: SY='N'; M=-11,25,-22,16,0,-18,-8,7,-18,-4,-20,-14,34,-19,1,-4,4,-1,-23,-33,-12,0;
+MA   /M: SY='L'; M=-9,-25,-18,-29,-19,0,-31,-21,23,-21,24,17,-23,-24,-17,-18,-21,-9,17,-23,-4,-19;
+MA   /M: SY='K'; M=-3,-2,-24,0,4,-22,-14,-13,-15,6,-15,-9,-4,-9,0,-2,-2,-4,-9,-27,-14,1;
+MA   /I: I=-5; MI=0; IM=0; DM=-25; MD=-25;
+MA   /M: SY='C'; M=-2,-5,31,-8,-15,-17,-13,-14,-22,-19,-16,-15,-8,-25,-18,-22,-5,-10,-11,-34,-18,-17;
+MA   /M: SY='P'; M=-3,-14,-28,-12,-2,-21,-18,-13,-13,-6,-14,-8,-13,28,0,-10,-4,-4,-17,-25,-16,-3;
+MA   /M: SY='Q'; M=-10,0,-26,2,15,-27,-20,-3,-19,11,-17,-8,-2,-12,21,14,-2,-4,-16,-25,-12,17;
+MA   /M: SY='M'; M=-8,-21,-14,-24,-16,-3,-26,-13,9,-11,16,17,-20,-24,-9,-8,-19,-9,6,-20,-2,-13;
+MA   /M: SY='I'; M=-8,-27,-21,-30,-22,3,-32,-21,28,-23,22,17,-25,-25,-19,-20,-19,-7,25,-20,1,-22;
+MA   /M: SY='D'; M=-9,1,-27,4,4,-19,-21,-9,-10,3,-9,-7,-3,-14,0,0,-8,-9,-10,-24,-7,1;
+MA   /M: SY='E'; M=-1,8,-23,5,13,-21,-12,6,-19,-1,-18,-12,10,-12,9,-2,2,-6,-20,-27,-12,10;
+MA   /M: SY='F'; M=-19,-26,-24,-32,-26,57,-30,-5,1,-22,6,0,-20,-30,-28,-16,-20,-10,-2,16,48,-26;
+MA   /M: SY='Y'; M=-15,-11,-22,-11,1,1,-25,9,-13,-3,-8,-3,-11,-20,5,-4,-13,-12,-17,-1,21,2;
+MA   /M: SY='K'; M=-7,4,-26,3,17,-26,-16,-3,-25,18,-22,-13,6,-11,12,16,0,-5,-21,-26,-14,14;
+MA   /M: SY='R'; M=-10,-3,-26,-1,14,-23,-17,-1,-25,16,-20,-12,0,-12,10,21,-1,-5,-20,-21,-11,11;
+MA   /M: SY='R'; M=-13,2,-27,-1,4,-13,-17,11,-21,4,-16,-10,8,-18,6,13,-6,-10,-22,-15,-1,4;
+MA   /M: SY='Q'; M=-8,-5,-27,-5,-2,-19,-14,-6,-12,0,-5,-3,-3,-13,4,-1,-10,-10,-14,-24,-10,0;
+MA   /M: SY='S'; M=0,-4,-19,-6,-4,-16,-9,-8,-10,-8,-11,-3,-3,-14,-5,-10,7,7,-6,-29,-12,-5;
+MA   /M: SY='W'; M=-10,-10,-28,-10,-4,-8,-17,-13,-17,3,-16,-11,-10,-18,-6,1,-9,-6,-13,9,1,-4;
+MA   /M: SY='H'; M=-12,0,-29,3,9,-20,-18,11,-21,5,-18,-8,-2,-5,4,4,-6,-8,-20,-23,-3,4;
+MA   /M: SY='E'; M=-2,-1,-21,-2,7,-21,-11,-10,-19,2,-18,-12,1,-5,2,0,7,6,-14,-28,-16,4;
+MA   /M: SY='P'; M=-11,-3,-24,-1,0,-20,-16,-6,-21,-2,-22,-15,-2,12,1,-4,-5,-6,-23,-17,-9,-1;
+MA   /M: SY='E'; M=-8,-2,-26,-1,5,-16,-18,-9,-11,-6,-14,-9,-2,5,-2,-8,-3,-6,-14,-28,-15,0;
+MA   /M: SY='K'; M=-5,-1,-27,-1,9,-22,-10,-7,-23,14,-20,-12,1,-7,3,9,-4,-8,-20,-22,-11,5;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=21(13); /POSITIVE=21(13); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=0;
+CC   /TAXO-RANGE=??E??; /MAX-REPEAT=2;
+DR   P05205, HP1_DROME , T; P29227, HP1_DROVI , T; P45973, HP1_HUMAN , T;
+DR   P23197, MOD1_MOUSE, T; P23198, MOD2_MOUSE, T; P40381, SWI6_SCHPO, T;
+DR   P26017, PC_DROME  , T; P30658, MOD3_MOUSE, T; P45975, SUV9_DROME, T;
+DR   P40201, CHD1_MOUSE, T; P32657, YEZ4_YEAST, T; P34618, YO82_CAEEL, T;
+DR   P45968, YNZ8_CAEEL, T;
+DO   PDOC00517;
+//
+ID   PROTEIN_KINASE_DOM; MATRIX.
+AC   PS50011;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Protein kinase domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=259;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=254;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=2.2664; R2=0.014134; TEXT='OrigScore';
+MA   /CUT_OFF: LEVEL=0; SCORE=434; N_SCORE=8.4; MODE=1;
+MA   /DEFAULT: D=-20; I=-20; B1=*; E1=*; MI=-105; MD=-105; IM=-105; DM=-105;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='Y'; M=-16,-25,-25,-29,-23,32,-29,-7,5,-19,8,3,-21,-29,-21,-15,-21,-10,1,15,35,-22;
+MA   /M: SY='E'; M=-5,-2,-21,-2,11,-23,-18,-2,-17,8,-16,-8,0,-13,9,6,-1,-4,-14,-27,-12,9;
+MA   /M: SY='L'; M=-10,-14,-23,-16,-8,-2,-23,-15,1,-9,7,2,-11,-17,-10,-6,-12,-6,-1,-22,-5,-10;
+MA   /M: SY='L'; M=-6,-16,-22,-17,-15,-6,-14,-17,5,-16,7,3,-14,-22,-15,-15,-11,-6,7,-23,-7,-16;
+MA   /M: SY='E'; M=-8,3,-25,6,12,-25,-16,-3,-23,10,-20,-12,1,-10,8,11,0,-4,-17,-28,-14,9;
+MA   /M: SY='K'; M=-8,-11,-21,-13,-5,-8,-24,-15,-5,2,-5,-3,-10,-16,-7,1,-8,-1,0,-22,-6,-6;
+MA   /M: SY='I'; M=-8,-29,-23,-33,-24,7,-33,-24,29,-27,29,17,-24,-25,-21,-23,-22,-9,19,-19,0,-24;
+MA   /M: SY='G'; M=4,-10,-29,-11,-19,-29,63,-20,-37,-19,-28,-19,-1,-17,-19,-20,1,-18,-28,-20,-29,-19;
+MA   /M: SY='Q'; M=0,-1,-20,-2,9,-24,-11,-5,-22,8,-22,-13,2,-12,10,9,8,-1,-17,-27,-14,9;
+MA   /M: SY='G'; M=0,-10,-30,-10,-20,-30,70,-20,-40,-20,-30,-20,0,-20,-20,-20,0,-20,-30,-20,-30,-20;
+MA   /M: SY='S'; M=9,-3,-16,-6,-2,-21,6,-13,-21,-6,-21,-15,2,-14,-5,-8,11,1,-13,-28,-19,-3;
+MA   /M: SY='F'; M=-15,-22,-20,-30,-23,52,-21,-13,-4,-23,1,-2,-13,-26,-28,-17,-10,-6,-4,2,24,-23;
+MA   /M: SY='G'; M=4,-8,-26,-9,-16,-27,51,-14,-34,-17,-28,-19,1,-18,-15,-18,6,-13,-25,-23,-26,-16;
+MA   /M: SY='E'; M=-4,-4,-17,-4,4,-20,-18,-10,-14,4,-16,-8,-4,-14,1,1,2,1,-7,-27,-12,2;
+MA   /M: SY='V'; M=0,-28,-7,-29,-29,-2,-29,-29,27,-20,8,8,-27,-29,-28,-20,-8,0,44,-30,-11,-29;
+MA   /M: SY='Y'; M=-14,-22,-21,-25,-19,22,-28,-5,0,-10,1,1,-19,-27,-16,-7,-18,-10,-1,8,32,-19;
+MA   /M: SY='K'; M=-10,-10,-26,-11,1,-15,-21,-11,-10,10,-3,0,-9,-16,3,9,-11,-7,-9,-21,-8,2;
+MA   /M: SY='A'; M=19,-14,-1,-20,-15,-17,0,-21,-9,-15,-10,-8,-13,-19,-15,-20,1,-5,2,-25,-18,-15;
+MA   /M: SY='K'; M=-10,-9,-25,-10,-2,-14,-22,-8,-7,6,-8,-2,-7,-16,2,5,-7,-2,-6,-20,-2,-2;
+MA   /M: SY='H'; M=-13,4,-28,5,1,-17,-16,8,-21,2,-15,-10,5,-18,0,3,-8,-10,-21,-12,-3,0;
+MA   /I: I=-2; MI=-12; MD=-12; IM=-12;
+MA   /M: SY='K'; M=-7,-10,-24,-12,-6,-13,-22,-6,-3,3,-7,0,-6,-15,-5,2,-8,-6,-1,-23,-6,-7; D=-2;
+MA   /I: I=-2; MI=-12; MD=-12; IM=-12; DM=-12;
+MA   /M: SY='S'; M=-5,-1,-19,0,1,-15,-9,-6,-13,-5,-12,-9,-2,-5,-2,-7,2,2,-11,-23,-9,-1; D=-2;
+MA   /I: I=-2; MI=0; MD=-12; IM=0; DM=-12;
+MA   /M: SY='B'; M=-5,13,-18,13,2,-20,-9,-6,-18,-2,-17,-13,9,-11,-2,-6,6,9,-13,-28,-13,0; D=-2;
+MA   /I: I=-2; MI=-12; MD=-12; IM=-12; DM=-12;
+MA   /M: SY='G'; M=-4,1,-22,0,-6,-23,21,-12,-28,-5,-24,-16,6,-14,-8,-7,3,-6,-22,-24,-20,-7; D=-2;
+MA   /I: I=-2; MI=-12; IM=-12; DM=-12;
+MA   /M: SY='E'; M=-10,-3,-22,-3,10,-20,-19,-5,-16,8,-12,-6,-3,-14,9,8,-5,-6,-14,-25,-11,9;
+MA   /M: M=-11,-11,-26,-11,-6,-12,-25,-7,-2,-3,-5,-1,-10,-11,-5,0,-10,-5,-2,-23,-4,-8;
+MA   /M: SY='V'; M=-8,-26,-15,-27,-26,14,-29,-14,17,-18,10,9,-24,-29,-23,-17,-15,-5,24,-12,16,-25;
+MA   /M: SY='A'; M=43,-12,-8,-21,-12,-18,-4,-21,-7,-11,-9,-8,-12,-11,-12,-20,7,0,4,-22,-19,-12;
+MA   /M: SY='V'; M=-1,-26,-17,-31,-25,-3,-27,-24,26,-19,12,15,-22,-24,-19,-18,-14,-6,27,-24,-7,-24;
+MA   /M: SY='K'; M=-10,0,-30,0,10,-30,-20,-10,-30,50,-30,-10,0,-10,10,30,-10,-10,-20,-20,-10,10;
+MA   /M: SY='I'; M=-9,-17,-23,-20,-9,-10,-29,-15,11,-6,2,6,-13,-18,-6,-6,-12,-6,7,-22,-5,-10;
+MA   /M: SY='I'; M=-8,-25,-22,-29,-19,5,-31,-21,24,-23,22,16,-22,-24,-17,-20,-18,-7,19,-21,-2,-19;
+MA   /M: SY='K'; M=-10,4,-24,3,4,-22,-15,1,-23,13,-23,-13,8,-6,2,10,-3,-6,-21,-27,-10,2;
+MA   /M: SY='K'; M=-8,-10,-25,-12,-5,-12,-22,-8,-7,6,-9,-3,-8,-12,-2,2,-8,-5,-6,-18,1,-5;
+MA   /I: I=-2; MI=-13; MD=-13; IM=-13;
+MA   /M: SY='E'; M=-5,1,-21,3,5,-21,-16,-9,-16,4,-16,-11,-3,-8,0,-1,-3,-4,-11,-23,-12,2; D=-2;
+MA   /I: I=-2; MI=-13; MD=-13; IM=-13; DM=-13;
+MA   /M: SY='S'; M=-3,-1,-19,-1,0,-14,-11,-8,-14,-2,-11,-8,-1,-11,-2,-2,1,1,-10,-22,-10,-1; D=-2;
+MA   /I: I=-2; MI=-13; MD=-13; IM=-13; DM=-13;
+MA   /M: SY='M'; M=-6,-8,-21,-9,-1,-10,-16,-7,-5,-2,-5,1,-7,-7,-1,-3,-6,-5,-6,-16,-6,-2; D=-2;
+MA   /I: I=-2; MI=-13; MD=-13; IM=-13; DM=-13;
+MA   /M: SY='N'; M=-1,0,-15,-3,-3,-13,-4,-7,-8,-2,-11,-6,4,-5,-3,-5,2,-1,-7,-20,-11,-4; D=-2;
+MA   /I: I=-2; MI=-13; MD=-13; IM=-13; DM=-13;
+MA   /M: SY='S'; M=-1,-1,-14,-1,2,-11,-10,-6,-10,1,-11,-6,-1,-4,0,-1,3,2,-7,-16,-7,0; D=-2;
+MA   /I: I=-2; MI=-13; MD=-13; IM=-13; DM=-13;
+MA   /M: SY='K'; M=-5,-1,-14,-1,1,-10,-8,-4,-11,4,-9,-5,-1,-7,1,3,-3,-3,-9,-11,-6,1; D=-2;
+MA   /I: I=-2; MI=0; IM=0; DM=-13;
+MA   /M: SY='E'; M=-7,2,-25,4,8,-20,-11,-5,-18,0,-14,-9,0,-13,6,-2,-1,-4,-16,-24,-9,6;
+MA   /M: SY='R'; M=-10,-9,-18,-9,-2,-15,-20,-4,-13,1,-11,-6,-6,-11,-3,4,-7,-7,-10,-26,-9,-4;
+MA   /M: SY='E'; M=-9,4,-27,4,15,-25,-15,-2,-22,8,-20,-12,4,-9,13,4,-1,-6,-22,-20,-12,14;
+MA   /M: SY='R'; M=-5,-6,-19,-9,0,-16,-18,-3,-16,5,-13,-4,-3,-14,6,7,-4,-5,-13,-23,-9,2;
+MA   /M: SY='I'; M=1,-18,-18,-24,-18,6,-22,-19,8,-19,8,3,-14,-20,-16,-17,-5,3,7,-19,-1,-17;
+MA   /M: SY='M'; M=-9,-10,-25,-11,-1,-11,-21,-7,-5,-5,1,2,-10,-16,0,-2,-10,-6,-7,-18,-5,-2;
+MA   /M: SY='R'; M=-5,-1,-22,-6,-3,-16,-14,-2,-14,5,-14,-6,5,-18,3,14,-1,-4,-12,-24,-8,-2;
+MA   /M: SY='E'; M=-10,11,-30,21,59,-30,-20,0,-30,10,-20,-20,0,0,20,0,0,-10,-30,-30,-20,39;
+MA   /M: SY='I'; M=1,-22,-18,-26,-18,-4,-25,-21,15,-15,10,7,-19,-22,-15,-13,-12,-6,15,-21,-5,-18;
+MA   /M: SY='Q'; M=-6,0,-21,-2,1,-17,-14,-3,-17,5,-17,-8,2,-16,7,4,0,-4,-15,-21,-4,3;
+MA   /M: SY='I'; M=-3,-25,-21,-29,-23,1,-29,-22,24,-20,15,11,-21,-23,-19,-19,-14,-6,21,-20,0,-23;
+MA   /M: SY='L'; M=-10,-20,-17,-22,-16,-1,-22,-2,6,-20,23,16,-19,-26,-11,-14,-21,-11,2,-22,0,-14;
+MA   /M: SY='K'; M=0,-4,-23,-8,0,-18,-14,-7,-14,6,-15,-7,0,-12,2,6,0,-2,-11,-23,-10,0;
+MA   /I: I=-3; MI=-17; MD=-17; IM=-17;
+MA   /M: SY='N'; M=-6,-2,-23,-5,-1,-15,-12,-4,-12,1,-11,-7,3,-16,-1,1,-2,-4,-11,-25,-8,-2; D=-3;
+MA   /I: I=-3; MI=-17; MD=-17; IM=-17; DM=-17;
+MA   /M: SY='L'; M=-6,-24,-16,-26,-19,3,-25,-19,16,-20,25,15,-23,-25,-17,-15,-18,-6,13,-22,-4,-19; D=-3;
+MA   /I: I=-3; MI=0; IM=0; DM=-17;
+MA   /M: SY='N'; M=-11,11,-27,10,2,-26,-1,0,-29,9,-27,-16,15,-12,3,11,-1,-8,-25,-28,-15,1;
+MA   /M: SY='H'; M=-17,0,-26,-1,-2,-17,-14,72,-29,-10,-21,-4,9,-18,5,-2,-6,-16,-27,-29,11,-3;
+MA   /M: SY='P'; M=-9,-8,-29,-1,7,-26,-18,-14,-18,-6,-22,-16,-10,38,-4,-12,-4,-7,-20,-31,-23,-1;
+MA   /M: SY='N'; M=-13,18,-21,6,-5,-8,-6,17,-20,-5,-23,-14,32,-22,-4,-3,0,-7,-25,-25,-3,-5;
+MA   /M: SY='I'; M=-8,-29,-24,-35,-27,1,-36,-28,39,-26,21,17,-22,-23,-21,-25,-18,-8,29,-22,-2,-27;
+MA   /M: SY='V'; M=0,-26,-12,-29,-25,-3,-29,-27,24,-22,10,8,-24,-20,-23,-22,-11,-1,30,-27,-9,-26;
+MA   /M: SY='R'; M=-9,-1,-24,-2,7,-23,-15,0,-22,11,-19,-9,3,-12,12,16,-2,-5,-20,-24,-11,8;
+MA   /M: SY='L'; M=-13,-27,-22,-30,-22,22,-30,-15,14,-23,26,13,-24,-28,-21,-15,-22,-8,9,-9,15,-22;
+MA   /M: SY='Y'; M=-13,-17,-21,-20,-15,6,-26,9,0,-13,4,4,-12,-25,-10,-9,-16,-11,-5,-7,21,-15;
+MA   /M: SY='G'; M=-6,3,-24,6,-2,-19,11,-6,-28,-9,-22,-17,1,-17,-9,-11,-2,-10,-21,-18,-10,-6;
+MA   /M: SY='A'; M=10,-15,-8,-21,-15,-6,-16,-16,-1,-14,-5,-1,-12,-19,-12,-16,0,0,3,-17,-4,-14;
+MA   /M: SY='F'; M=-10,-19,-11,-23,-17,15,-22,-16,-2,-18,-2,-3,-16,-24,-19,-17,-13,-9,-2,-1,8,-17;
+MA   /M: SY='E'; M=-7,-3,-22,-2,8,-17,-20,-1,-15,2,-12,-7,-3,-14,6,1,-2,-1,-13,-23,-5,6;
+MA   /M: SY='E'; M=-6,2,-23,3,8,-19,-16,-9,-17,0,-14,-12,-1,-11,-1,-1,2,4,-12,-26,-13,3;
+MA   /I: I=-3; MI=-17; MD=-17; IM=-17;
+MA   /M: SY='P'; M=-7,0,-26,2,3,-23,-1,-11,-23,-1,-24,-16,1,4,-3,-5,1,-5,-21,-23,-18,-1; D=-3;
+MA   /I: I=-3; MI=0; IM=0; DM=-17;
+MA   /M: SY='D'; M=-9,10,-26,14,4,-26,2,-5,-27,-2,-22,-17,8,-11,-1,-4,2,-6,-22,-29,-17,1;
+MA   /M: SY='H'; M=-11,1,-23,1,3,-13,-18,10,-19,0,-16,-8,2,-10,2,0,-3,-4,-19,-22,0,1;
+MA   /M: SY='L'; M=-10,-22,-21,-25,-20,2,-27,-16,16,-23,19,10,-19,-18,-18,-19,-19,-9,9,-21,-1,-20;
+MA   /M: SY='Y'; M=-12,-18,-19,-20,-16,11,-25,-2,-3,-15,-2,-3,-16,-26,-13,-14,-15,-8,-6,12,30,-16;
+MA   /M: SY='I'; M=-9,-28,-23,-33,-24,7,-31,-21,29,-25,28,22,-24,-25,-18,-22,-22,-9,19,-19,0,-22;
+MA   /M: SY='V'; M=-6,-24,-17,-27,-23,1,-30,-23,23,-21,11,9,-22,-25,-19,-20,-13,-5,27,-23,-4,-22;
+MA   /M: SY='M'; M=-9,-17,-19,-24,-18,6,-20,-10,8,-16,14,23,-15,-21,-10,-13,-12,1,4,-19,1,-13;
+MA   /M: SY='E'; M=-9,12,-30,21,42,-30,-17,-2,-29,6,-22,-19,2,-2,16,-3,0,-10,-28,-24,-18,29;
+MA   /M: SY='Y'; M=-15,-23,-24,-25,-20,24,-28,2,0,-16,9,2,-21,-28,-16,-10,-21,-11,-6,13,38,-20;
+MA   /M: SY='C'; M=-7,-21,30,-26,-24,-9,-21,-16,-4,-22,0,4,-19,-28,-19,-21,-12,-9,3,-31,-12,-22;
+MA   /M: SY='E'; M=-4,4,-26,6,11,-25,-4,-7,-24,-1,-23,-17,4,4,0,-6,2,-5,-22,-30,-20,4;
+MA   /I: I=-5; MI=-25; MD=-25; IM=-25;
+MA   /M: SY='G'; M=-6,-1,-24,-4,-9,-19,19,-8,-24,-7,-20,-12,6,-17,-9,-9,-3,-11,-21,-22,-15,-10; D=-5;
+MA   /I: I=-5; MI=0; MD=-25; IM=0; DM=-25;
+MA   /M: SY='G'; M=-1,-8,-24,-8,-12,-24,41,-15,-29,-12,-23,-15,-1,-13,-12,-10,0,-13,-22,-18,-22,-12; D=-5;
+MA   /I: I=-5; MI=-25; IM=-25; DM=-25;
+MA   /M: SY='D'; M=-5,17,-17,23,13,-27,-10,-6,-26,-4,-26,-21,11,-8,2,-8,16,8,-19,-37,-19,7;
+MA   /M: SY='L'; M=-8,-29,-19,-30,-21,11,-29,-20,18,-28,43,19,-28,-29,-20,-19,-26,-8,11,-19,0,-20;
+MA   /M: SY='F'; M=-8,-11,-22,-13,-7,7,-20,-3,-8,-9,-2,-1,-9,-20,-7,-6,-8,-6,-8,-12,7,-7;
+MA   /M: SY='D'; M=-7,14,-25,19,12,-26,-14,-3,-25,5,-21,-15,5,-11,7,1,2,-2,-20,-25,-12,9;
+MA   /M: SY='Y'; M=-11,-20,-24,-23,-17,12,-25,-4,2,-14,5,4,-17,-25,-14,-8,-16,-9,0,-1,16,-16;
+MA   /M: SY='L'; M=-9,-29,-23,-32,-24,7,-31,-20,24,-25,27,15,-25,-27,-20,-20,-23,-9,17,-12,4,-23;
+MA   /I: I=-6; MI=-32; MD=-32; IM=-32;
+MA   /M: SY='K'; M=-8,1,-23,-1,3,-18,-15,-1,-18,9,-18,-8,3,-14,3,8,1,0,-13,-25,-9,2; D=-6;
+MA   /I: I=-6; MI=-32; IM=-32; DM=-32;
+MA   /M: SY='E'; M=-3,2,-23,3,7,-22,-11,-3,-22,6,-20,-12,2,-13,6,6,3,-2,-16,-26,-12,6;
+MA   /I: I=-2; MI=-8; MD=-8; IM=-8;
+MA   /M: SY='H'; M=-9,-2,-17,-3,3,-17,-13,6,-20,1,-16,-9,2,-15,3,5,-5,-9,-18,-24,-7,2; D=-2;
+MA   /I: I=-2; MI=-8; MD=-8; IM=-8; DM=-8;
+MA   /M: SY='G'; M=-4,-1,-23,-2,-3,-20,5,-10,-21,4,-20,-12,3,-15,-5,-1,0,-6,-14,-24,-15,-4; D=-2;
+MA   /I: I=-2; MI=-8; MD=-8; IM=-8; DM=-8;
+MA   /M: M=-4,-7,-17,-8,-7,-11,-8,-8,-10,-3,-11,-6,-4,-12,-5,-1,-2,-3,-7,-19,-6,-7; D=-2;
+MA   /I: I=-2; MI=-8; MD=-8; IM=-8; DM=-8;
+MA   /M: SY='R'; M=-4,-2,-13,-5,-3,-6,-9,0,-7,-1,-4,-3,2,-10,-1,3,-3,-1,-7,-13,-3,-3; D=-2;
+MA   /I: I=-2; MI=0; IM=0; DM=-8;
+MA   /M: SY='L'; M=-9,-25,-22,-31,-21,18,-26,-17,15,-24,21,15,-21,-25,-18,-19,-19,-9,8,-13,6,-19;
+MA   /M: SY='S'; M=-5,2,-22,1,3,-21,-11,-7,-20,1,-21,-13,4,-4,3,1,9,7,-16,-28,-13,2;
+MA   /M: SY='E'; M=-8,-4,-29,0,20,-17,-19,-7,-17,-2,-13,-10,-8,-7,4,-7,-7,-10,-19,-6,-7,12;
+MA   /M: SY='E'; M=-7,-2,-27,-1,4,-15,-10,-3,-19,-4,-16,-11,-3,-6,-1,-8,-5,-8,-18,-16,-7,1;
+MA   /M: SY='E'; M=-10,2,-26,4,10,-17,-17,2,-16,-4,-10,-7,-2,-12,6,-5,-4,-4,-17,-24,-6,7;
+MA   /M: SY='I'; M=2,-22,-15,-27,-20,-5,-25,-22,15,-18,10,7,-18,-19,-16,-15,-10,-3,14,-23,-7,-20;
+MA   /M: SY='R'; M=-10,-16,-16,-18,-10,-10,-20,-14,-11,4,-7,-3,-12,-22,-6,11,-12,-9,-6,-13,-7,-9;
+MA   /M: SY='K'; M=-11,-5,-21,-7,-6,0,-17,-6,-17,2,-14,-8,-2,-19,-8,2,-5,-5,-12,-15,1,-7;
+MA   /M: SY='Y'; M=-13,-27,-20,-32,-26,19,-32,-13,18,-23,14,10,-23,-27,-21,-20,-21,-10,11,1,23,-25;
+MA   /M: SY='A'; M=7,-19,-12,-25,-18,5,-17,-20,3,-20,7,3,-16,-21,-18,-19,-5,0,5,-16,-5,-18;
+MA   /M: SY='Y'; M=-4,-12,-23,-13,-6,-6,-18,-5,-10,-3,-6,-5,-10,-19,-4,2,-7,-5,-7,-10,3,-7;
+MA   /M: SY='Q'; M=-8,4,-26,6,21,-34,-12,5,-25,5,-21,-9,2,-10,32,4,1,-9,-27,-25,-14,26;
+MA   /M: SY='I'; M=-7,-27,-21,-32,-26,1,-32,-25,32,-24,21,18,-22,-23,-20,-22,-16,-2,26,-23,-3,-25;
+MA   /M: SY='L'; M=7,-22,-1,-27,-20,-4,-20,-23,8,-22,12,3,-20,-24,-19,-22,-10,-4,10,-25,-11,-20;
+MA   /M: SY='R'; M=-9,0,-24,0,6,-20,-16,-6,-17,8,-13,-7,1,-14,5,10,-1,-3,-15,-27,-12,5;
+MA   /M: SY='G'; M=17,-10,-21,-14,-16,-24,34,-20,-25,-15,-20,-15,-5,-16,-15,-17,4,-9,-14,-21,-24,-16;
+MA   /M: SY='L'; M=-7,-28,-19,-31,-23,7,-29,-22,24,-25,30,19,-26,-27,-20,-20,-20,-6,20,-21,-2,-22;
+MA   /M: SY='E'; M=-2,5,-22,5,7,-20,-14,-4,-18,2,-15,-11,4,-14,3,-2,-2,-6,-16,-24,-9,4;
+MA   /M: SY='Y'; M=-17,-16,-27,-19,-15,24,-26,25,-7,-13,-3,-1,-12,-26,-11,-9,-15,-11,-12,7,47,-16;
+MA   /M: SY='L'; M=-8,-28,-3,-31,-23,3,-30,-22,18,-28,31,16,-27,-29,-21,-22,-23,-9,14,-25,-5,-23;
+MA   /M: SY='H'; M=-16,0,-29,0,1,-20,-19,84,-28,-8,-19,-2,9,-19,9,0,-8,-18,-28,-28,16,1;
+MA   /M: SY='S'; M=0,3,-19,4,5,-23,-7,-3,-23,2,-25,-16,7,-12,5,3,16,5,-16,-31,-14,4;
+MA   /M: SY='K'; M=-8,-2,-23,-5,0,-20,-16,-1,-15,9,-12,-1,1,-17,6,8,-8,-9,-14,-21,-9,2;
+MA   /I: I=-3; MI=0; IM=0;
+MA   /M: SY='G'; M=-6,1,-27,-2,-6,-24,16,-8,-29,0,-27,-17,9,-11,-6,1,0,-9,-25,-23,-19,-7;
+MA   /M: SY='I'; M=-8,-29,-18,-35,-28,5,-35,-26,34,-26,19,14,-24,-26,-23,-25,-18,-7,28,-20,2,-28;
+MA   /M: SY='I'; M=-5,-28,-18,-32,-26,1,-32,-25,31,-24,19,15,-24,-25,-22,-23,-16,-5,29,-23,-3,-26;
+MA   /M: SY='H'; M=-20,-2,-30,-2,-2,-15,-21,92,-27,-10,-18,0,7,-21,8,-1,-11,-19,-28,-24,26,-2;
+MA   /M: SY='R'; M=-17,-9,-25,-11,-3,-18,-18,0,-25,20,-15,-7,0,-21,6,52,-9,-8,-18,-22,-10,-3;
+MA   /M: SY='D'; M=-20,50,-30,70,20,-40,-10,0,-40,0,-30,-30,20,-10,0,-10,0,-10,-30,-40,-20,10;
+MA   /M: SY='L'; M=-9,-30,-23,-33,-24,6,-33,-24,31,-29,37,20,-26,-26,-20,-23,-25,-9,19,-21,-1,-24;
+MA   /M: SY='K'; M=-8,-1,-29,-1,9,-29,-19,-10,-29,46,-29,-10,0,-10,9,29,-8,-9,-19,-20,-11,9;
+MA   /M: SY='P'; M=-3,-17,-32,-11,-4,-24,-14,-19,-15,-13,-19,-15,-16,52,-10,-19,-5,-6,-21,-29,-24,-10;
+MA   /M: SY='E'; M=0,8,-24,12,17,-28,-6,-3,-26,2,-23,-17,4,-9,8,-1,7,-4,-21,-29,-18,12;
+MA   /M: SY='N'; M=-10,40,-20,20,0,-20,0,10,-20,0,-30,-20,60,-20,0,0,10,0,-30,-40,-20,0;
+MA   /M: SY='I'; M=-9,-30,-21,-37,-29,6,-36,-28,38,-28,20,16,-23,-24,-23,-26,-19,-8,28,-21,-1,-29;
+MA   /M: SY='L'; M=-11,-29,-19,-32,-23,19,-29,-19,18,-27,36,20,-27,-29,-22,-19,-25,-9,13,-16,4,-22;
+MA   /M: SY='L'; M=-10,-30,-19,-34,-25,13,-32,-24,26,-28,30,17,-26,-27,-23,-23,-23,-9,19,-19,1,-25;
+MA   /M: SY='D'; M=-8,18,-18,22,1,-26,-5,-6,-24,-3,-23,-17,12,-15,-5,-8,4,-2,-16,-35,-18,-2;
+MA   /M: SY='E'; M=-9,4,-24,4,10,-19,-17,2,-19,2,-17,-10,5,-11,5,3,2,-1,-17,-27,-9,6;
+MA   /I: I=-3; MI=-17; MD=-17; IM=-17;
+MA   /M: SY='B'; M=-5,9,-18,8,8,-24,-7,-2,-24,1,-22,-16,9,-9,3,-1,4,-1,-21,-30,-17,5; D=-3;
+MA   /I: I=-3; MI=0; IM=0; DM=-17;
+MA   /M: SY='G'; M=-5,-8,-23,-10,-13,-17,14,-12,-18,-12,-12,-8,-2,-16,-11,-10,-5,-10,-16,-23,-16,-13;
+MA   /M: SY='H'; M=-9,-2,-21,-4,1,-13,-20,6,-14,0,-11,-4,-1,-16,1,1,-4,-1,-11,-24,-3,0;
+MA   /M: SY='V'; M=-2,-26,-9,-30,-24,-3,-27,-26,19,-23,11,7,-24,-18,-23,-23,-14,-6,21,-26,-9,-25;
+MA   /M: SY='K'; M=-10,-6,-22,-6,3,-22,-22,-11,-22,32,-22,-7,-5,-15,4,21,-10,-9,-13,-21,-8,4;
+MA   /M: SY='L'; M=-9,-30,-23,-34,-25,5,-34,-25,33,-29,34,19,-26,-26,-21,-24,-24,-9,22,-21,-1,-25;
+MA   /M: SY='A'; M=7,-15,1,-21,-19,-15,-4,-23,-5,-19,-9,-7,-10,-20,-17,-21,2,1,2,-28,-17,-19;
+MA   /M: SY='D'; M=-20,50,-30,70,20,-40,-10,0,-40,0,-30,-30,20,-10,0,-10,0,-10,-30,-40,-20,10;
+MA   /M: SY='F'; M=-19,-30,-21,-39,-29,73,-30,-20,1,-30,12,1,-21,-30,-38,-20,-21,-10,0,11,28,-29;
+MA   /M: SY='G'; M=0,-10,-30,-10,-20,-30,70,-20,-40,-20,-30,-20,0,-20,-20,-20,0,-20,-30,-20,-30,-20;
+MA   /M: SY='L'; M=-7,-26,-17,-28,-20,8,-27,-17,15,-26,30,14,-23,-27,-18,-19,-19,-7,10,-21,-1,-19;
+MA   /M: SY='A'; M=26,-10,4,-16,-11,-19,-5,-15,-13,-13,-15,-12,-7,-16,-11,-18,12,3,-1,-29,-19,-11;
+MA   /M: SY='K'; M=-6,-4,-19,-7,0,-19,-17,-11,-18,14,-16,-9,-1,-15,0,14,-2,0,-11,-25,-12,-1;
+MA   /M: SY='R'; M=-10,-7,-25,-7,1,-14,-22,-9,-10,6,-7,-3,-6,-17,3,9,-9,-7,-7,-22,-7,1;
+MA   /M: SY='L'; M=-7,-21,-22,-24,-17,5,-24,-13,10,-18,14,10,-19,-23,-14,-16,-15,-7,6,-13,5,-16;
+MA   /I: I=-2; MI=-11; MD=-11; IM=-11;
+MA   /M: SY='D'; M=-8,5,-25,6,5,-23,-10,-1,-18,0,-19,-10,5,-5,2,-3,1,-4,-17,-29,-14,2; D=-2;
+MA   /I: I=-2; MI=-11; MD=-11; IM=-11; DM=-11;
+MA   /M: SY='D'; M=-5,3,-24,5,3,-19,-10,-5,-19,-1,-19,-13,2,-1,-1,-2,1,-4,-16,-25,-11,0; D=-2;
+MA   /I: I=-2; MI=-11; MD=-11; IM=-11; DM=-11;
+MA   /M: SY='D'; M=-7,6,-22,7,2,-20,1,-2,-22,-6,-18,-14,6,-7,-3,-7,2,-3,-19,-22,-12,-1; D=-2;
+MA   /I: I=-2; MI=-11; MD=-11; IM=-11; DM=-11;
+MA   /M: SY='E'; M=-5,-4,-18,-4,2,-13,-6,-6,-11,-2,-7,-4,-2,-12,0,-2,-3,-4,-9,-19,-10,1; D=-2;
+MA   /I: I=-2; MI=-11; MD=-11; IM=-11; DM=-11;
+MA   /M: SY='S'; M=-3,1,-11,1,2,-12,-6,-4,-13,-1,-12,-9,1,-5,-1,-3,4,2,-9,-17,-7,0; D=-2;
+MA   /I: I=-2; MI=0; IM=0; DM=-11;
+MA   /M: SY='K'; M=-7,-4,-24,-5,3,-15,-15,-2,-17,6,-16,-7,-1,-11,2,6,-3,-5,-13,-24,-9,1;
+MA   /M: M=0,-10,-19,-12,-7,-12,-16,-10,-9,-5,-4,-4,-9,-12,-7,-3,-6,-2,-6,-20,-7,-8;
+MA   /M: SY='N'; M=-7,1,-23,-2,-1,-16,-11,2,-19,-1,-17,-9,4,-16,2,-1,2,1,-16,-19,-5,0;
+MA   /M: SY='T'; M=-2,-1,-19,-4,-4,-18,-6,-10,-16,-7,-18,-12,2,-8,-5,-8,8,10,-10,-29,-15,-5;
+MA   /M: SY='F'; M=-7,-17,-17,-20,-12,3,-20,-14,-2,-12,0,0,-13,-18,-11,-8,-9,-6,-2,-18,-1,-12;
+MA   /M: SY='V'; M=-4,-18,8,-21,-17,-8,-21,-23,-2,-13,-6,-4,-16,-25,-18,-14,-7,-4,10,-29,-13,-18;
+MA   /M: SY='G'; M=1,-12,-25,-13,-20,-22,53,-20,-32,-20,-24,-17,-3,-21,-21,-20,-1,-17,-23,-20,-25,-20;
+MA   /M: SY='T'; M=0,1,-10,-5,-7,-15,-16,-17,-14,-10,-16,-13,1,-5,-8,-11,21,37,-5,-33,-14,-8;
+MA   /M: SY='P'; M=-5,-15,-25,-12,-3,-17,-21,-13,-9,-6,-9,-7,-13,12,-7,-4,-8,-7,-10,-26,-14,-8;
+MA   /M: M=-10,-4,-23,-4,0,-11,-11,-5,-17,-2,-15,-10,-1,-13,-4,-1,-4,-6,-16,-16,-4,-3;
+MA   /M: SY='Y'; M=-20,-24,-32,-26,-23,34,-28,7,-4,-15,-2,-3,-23,-30,-16,-13,-23,-13,-12,45,63,-21;
+MA   /M: SY='M'; M=-7,-19,-19,-25,-16,-5,-23,-11,11,-8,13,26,-17,-21,-6,-3,-16,-7,7,-22,-5,-12;
+MA   /M: SY='A'; M=37,-8,-12,-15,-7,-21,1,-18,-13,-10,-16,-13,-5,-6,-8,-18,16,4,-4,-25,-21,-8;
+MA   /M: SY='P'; M=-10,-19,-38,-11,-1,-28,-20,-20,-17,-11,-27,-18,-18,80,-10,-20,-10,-9,-27,-30,-28,-11;
+MA   /M: SY='E'; M=-10,11,-30,20,58,-30,-19,0,-30,10,-20,-20,2,-1,19,0,0,-10,-30,-30,-20,39;
+MA   /M: SY='V'; M=-2,-26,-16,-29,-23,-1,-28,-24,21,-20,12,8,-23,-25,-19,-18,-13,-5,23,-18,-5,-22;
+MA   /M: SY='L'; M=-8,-25,-12,-29,-22,0,-26,-20,17,-25,20,11,-21,-26,-18,-20,-18,-9,13,-23,-5,-22;
+MA   /I: I=-4; MI=-21; MD=-21; IM=-21;
+MA   /M: SY='M'; M=-5,-6,-12,-6,-1,-4,-12,-2,-2,-2,1,3,-6,-9,2,1,-5,-4,-2,-11,-3,0; D=-4;
+MA   /I: I=-4; MI=0; MD=-21; IM=0; DM=-21;
+MA   /M: M=-3,-3,-23,-5,-4,-13,-1,-11,-16,-5,-11,-8,-1,-16,-6,-6,-1,-5,-14,-22,-11,-5; D=-4;
+MA   /I: I=-4; MI=-21; IM=-21; DM=-21;
+MA   /M: SY='N'; M=-4,-1,-15,-6,-6,-14,-4,1,-19,-4,-19,-11,6,-19,-3,-2,1,-5,-16,-23,-7,-6;
+MA   /M: SY='R'; M=-10,0,-25,0,5,-21,-12,-4,-21,7,-17,-10,2,-12,4,10,-2,-4,-17,-25,-12,3;
+MA   /I: I=-6; MI=-32; MD=-32; IM=-32;
+MA   /M: SY='G'; M=-3,-10,-27,-9,-8,-17,5,-8,-18,-9,-16,-9,-7,-3,-6,-10,-4,-8,-17,-19,-10,-8; D=-6;
+MA   /I: I=-6; MI=-32; IM=-32; DM=-32;
+MA   /M: SY='Y'; M=-12,-9,-26,-8,-11,5,-23,15,-7,-11,-6,-3,-9,-23,-7,-11,-11,-9,-9,-1,31,-11;
+MA   /M: SY='S'; M=0,5,-18,4,-4,-21,2,-12,-21,-9,-21,-17,7,-11,-7,-10,16,12,-14,-32,-18,-6;
+MA   /I: I=-6; MI=-29; MD=-29; IM=-29;
+MA   /M: M=-7,-8,-24,-9,-3,-9,-15,-5,-15,-2,-14,-8,-4,-5,-5,-2,-3,-1,-12,-21,-6,-5; D=-6;
+MA   /I: I=-6; MI=0; IM=0; DM=-29;
+MA   /M: SY='K'; M=-5,-4,-26,-3,9,-25,-15,-7,-23,16,-22,-11,-2,-2,8,13,0,-5,-19,-25,-14,8;
+MA   /M: SY='A'; M=11,-13,-7,-17,-15,-12,-14,-21,2,-16,-6,-4,-10,-19,-15,-18,6,4,11,-30,-15,-16;
+MA   /M: SY='D'; M=-19,49,-30,68,19,-40,-10,0,-39,0,-30,-30,19,-10,0,-10,0,-10,-29,-40,-20,10;
+MA   /M: SY='I'; M=-7,-29,-23,-34,-27,2,-31,-24,28,-22,14,17,-26,-25,-21,-21,-18,-7,26,-6,1,-25;
+MA   /M: SY='W'; M=-20,-33,-42,-34,-25,21,-23,-18,-14,-18,-12,-14,-32,-29,-19,-17,-32,-23,-22,104,39,-20;
+MA   /M: SY='S'; M=19,-3,-10,-6,-3,-19,-1,-13,-16,-11,-22,-16,4,-11,-3,-13,30,14,-7,-34,-19,-3;
+MA   /M: SY='L'; M=-9,-26,-16,-29,-22,14,-28,-16,14,-24,28,15,-25,-28,-20,-18,-21,-7,10,-14,8,-21;
+MA   /M: SY='G'; M=4,-11,-28,-12,-19,-28,60,-20,-35,-19,-27,-18,-2,-19,-19,-20,1,-18,-25,-20,-28,-19;
+MA   /M: SY='V'; M=-4,-25,12,-31,-26,-4,-30,-26,16,-25,8,6,-23,-28,-23,-24,-12,-6,20,-29,-9,-26;
+MA   /M: SY='I'; M=-5,-23,-19,-29,-23,0,-30,-24,25,-22,15,14,-19,-22,-19,-20,-10,5,23,-24,-4,-23;
+MA   /M: SY='L'; M=-6,-26,-18,-30,-21,10,-27,-20,18,-25,33,18,-25,-26,-19,-19,-21,-5,13,-19,0,-20;
+MA   /M: SY='Y'; M=-9,-24,-26,-28,-22,18,-26,-6,7,-18,6,3,-22,-26,-17,-17,-18,-9,1,17,32,-21;
+MA   /M: SY='E'; M=-9,3,-18,7,27,-22,-20,2,-21,1,-17,-13,-2,-10,9,-5,-1,-6,-20,-27,-10,17;
+MA   /M: SY='M'; M=-7,-25,-15,-30,-20,5,-25,-13,17,-21,29,30,-24,-25,-13,-17,-22,-9,9,-20,0,-17;
+MA   /M: SY='L'; M=-2,-22,-11,-27,-20,6,-25,-19,11,-22,19,10,-19,-24,-18,-19,-14,-3,9,-20,-2,-19;
+MA   /I: I=-4; MI=-23; MD=-23; IM=-23;
+MA   /M: SY='T'; M=-1,-7,-8,-11,-7,-9,-15,-12,-11,-10,-8,-8,-6,-16,-8,-9,4,12,-4,-23,-6,-8; D=-4;
+MA   /I: I=-4; MI=0; MD=-23; IM=0; DM=-23;
+MA   /M: SY='G'; M=-3,-5,-25,-5,-11,-24,38,-14,-31,-6,-24,-15,2,-16,-11,-6,-1,-12,-23,-19,-21,-12; D=-4;
+MA   /I: I=-4; MI=-23; MD=-23; IM=-23; DM=-23;
+MA   /M: SY='R'; M=-8,-2,-23,-2,6,-15,-15,-2,-20,9,-17,-9,1,-13,7,13,-1,-4,-16,-20,-7,6; D=-4;
+MA   /I: I=-4; MI=-23; MD=-23; IM=-23; DM=-23;
+MA   /M: SY='P'; M=-7,-14,-26,-12,-3,-10,-21,-10,-8,-11,-7,-6,-12,15,-8,-12,-7,-3,-11,-24,-10,-7; D=-4;
+MA   /I: I=-4; MI=-23; IM=-23; DM=-23;
+MA   /M: SY='P'; M=-8,-21,-35,-14,-5,-23,-22,-21,-12,-10,-22,-14,-20,65,-12,-19,-11,-9,-18,-28,-24,-12;
+MA   /M: SY='F'; M=-17,-25,-21,-32,-25,49,-27,-14,-1,-24,5,-1,-18,-28,-27,-17,-19,-10,-4,16,28,-24;
+MA   /I: I=-4; MI=-18; MD=-18; IM=-18;
+MA   /M: SY='P'; M=-9,-2,-26,1,3,-18,-12,-5,-21,-5,-20,-14,-4,7,0,-8,-4,-8,-21,-20,-11,0; D=-4;
+MA   /I: I=-4; MI=-18; MD=-18; IM=-18; DM=-18;
+MA   /M: SY='G'; M=-2,4,-24,6,1,-25,9,-5,-25,-6,-20,-15,3,-9,-3,-7,1,-7,-20,-25,-17,-2; D=-4;
+MA   /I: I=-4; MI=-18; MD=-18; IM=-18; DM=-18;
+MA   /M: SY='H'; M=-6,-2,-16,-1,0,-9,-11,1,-5,-5,-5,-1,-1,-4,-3,-6,-5,-5,-6,-17,-5,-2; D=-4;
+MA   /I: I=-4; MI=0; IM=0; DM=-18;
+MA   /M: SY='D'; M=-10,7,-27,10,8,-24,-4,-6,-24,3,-21,-14,5,-10,2,4,-2,-8,-21,-28,-17,4;
+MA   /M: SY='Q'; M=-6,6,-24,7,5,-25,-12,-1,-20,0,-19,-11,5,-7,8,-3,3,0,-18,-28,-13,6;
+MA   /M: M=-6,-7,-21,-8,-4,-15,-15,-7,-10,-5,-8,-3,-6,-8,-1,-3,-4,-3,-10,-24,-9,-4;
+MA   /M: SY='E'; M=-6,-4,-24,-3,1,-13,-17,-2,-14,-1,-12,-6,-4,-14,-1,-2,-4,-7,-12,-17,-5,0;
+MA   /M: SY='Q'; M=-9,1,-26,0,10,-24,-16,8,-21,8,-18,-7,4,-11,13,9,-2,-6,-19,-26,-10,10;
+MA   /M: SY='I'; M=-7,-23,-23,-29,-19,3,-30,-22,22,-22,17,12,-19,-18,-17,-21,-15,-3,14,-20,-2,-20;
+MA   /M: SY='Y'; M=-9,-20,-20,-24,-19,10,-27,-6,11,-21,10,6,-16,-24,-16,-18,-14,-8,6,-13,12,-19;
+MA   /M: SY='R'; M=-8,2,-22,2,8,-20,-13,-6,-22,6,-18,-13,2,-12,4,9,-1,-3,-18,-25,-12,5;
+MA   /M: M=-3,-7,-22,-10,-6,-14,-15,-9,-5,-2,-8,-1,-3,-17,-3,-4,-3,-3,-4,-24,-8,-5;
+MA   /M: SY='I'; M=-6,-20,-22,-23,-16,-6,-19,-19,13,-19,10,8,-17,-19,-13,-19,-13,-9,8,-21,-5,-16;
+MA   /M: SY='R'; M=-9,-9,-25,-10,-5,-15,-11,-11,-13,1,-9,-2,-8,-12,-3,3,-8,-6,-10,-20,-10,-5;
+MA   /M: SY='R'; M=-5,-3,-22,-3,1,-18,-15,-5,-18,2,-16,-11,-1,-7,0,3,1,-2,-15,-25,-10,-1;
+MA   /M: M=-6,-10,-18,-11,-10,-13,-1,-9,-16,-13,-14,-10,-7,-10,-11,-12,-4,-6,-13,-19,-9,-12;
+MA   /I: I=-1; MI=-6; MD=-6; IM=-6;
+MA   /M: M=-9,-4,-25,-2,-4,-13,-18,-8,-10,-2,-12,-7,-7,-11,-7,-5,-7,-5,-6,-16,-3,-7; D=-1;
+MA   /I: I=-1; MI=-6; MD=-6; IM=-6; DM=-6;
+MA   /M: SY='Y'; M=-9,-12,-24,-14,-7,-5,-22,-4,-3,-5,-3,1,-9,-16,-5,1,-10,-8,-4,-14,2,-7; D=-1;
+MA   /I: I=-1; MI=-6; MD=-6; IM=-6; DM=-6;
+MA   /M: SY='E'; M=-9,-5,-24,-4,3,-13,-18,-3,-10,-1,-8,-1,-5,-5,0,-2,-7,-7,-10,-22,-7,1; D=-1;
+MA   /I: I=-1; MI=-6; MD=-6; IM=-6; DM=-6;
+MA   /M: SY='P'; M=-7,-7,-23,-5,2,-12,-15,-8,-11,-4,-12,-9,-7,14,-3,-5,-5,-6,-13,-17,-10,-2; D=-1;
+MA   /I: I=-1; MI=-6; MD=-6; IM=-6; DM=-6;
+MA   /M: SY='S'; M=-6,-3,-17,-2,-1,-16,-14,-10,-13,-6,-12,-9,-2,-8,-2,-6,1,-1,-10,-27,-12,-2; D=-1;
+MA   /I: I=-1; MI=-6; MD=-6; IM=-6; DM=-6;
+MA   /M: SY='P'; M=-6,-15,-19,-15,-9,-6,-16,-14,-5,-12,-4,-3,-11,2,-11,-11,-7,-4,-8,-19,-8,-11; D=-1;
+MA   /I: I=-1; MI=-6; MD=-6; IM=-6; DM=-6;
+MA   /M: SY='P'; M=-7,-7,-26,-2,2,-19,-14,-8,-17,0,-18,-12,-7,18,-2,-3,-4,-6,-17,-20,-13,-2; D=-1;
+MA   /I: I=-1; MI=-6; MD=-6; IM=-6; DM=-6;
+MA   /M: M=-6,-7,-17,-7,-2,-11,-14,-7,-10,-3,-6,-5,-6,-6,-3,-3,-5,-2,-9,-19,-6,-3; D=-1;
+MA   /I: I=-1; MI=-6; MD=-6; IM=-6; DM=-6;
+MA   /M: M=-6,-8,-16,-8,-5,-2,-15,-6,-7,-7,-6,-6,-8,-6,-7,-7,-6,-5,-6,-6,0,-7; D=-1;
+MA   /I: I=-1; MI=-6; MD=-6; IM=-6; DM=-6;
+MA   /M: SY='D'; M=-3,3,-13,4,2,-11,-7,-1,-9,-2,-8,-6,2,-5,-1,-3,0,-2,-8,-15,-6,0; D=-1;
+MA   /I: I=-1; MI=-6; MD=-6; IM=-6; DM=-6;
+MA   /M: M=-3,-3,-13,-5,-2,-7,-7,-7,-4,-2,-5,-3,-2,-5,-3,-1,-3,-3,-4,-12,-6,-4; D=-1;
+MA   /I: I=-1; MI=0; IM=0; DM=-6;
+MA   /M: SY='L'; M=-6,-20,-11,-23,-19,3,-19,-17,2,-19,6,2,-19,-23,-18,-17,-13,-6,4,-14,2,-19;
+MA   /M: SY='S'; M=1,-2,-16,-2,0,-20,-9,-7,-16,-8,-20,-12,2,-3,-1,-9,16,8,-12,-33,-16,-1;
+MA   /M: SY='E'; M=-5,0,-23,1,6,-23,-15,-8,-19,4,-19,-11,-1,-1,4,-1,2,-1,-17,-26,-13,4;
+MA   /M: SY='E'; M=-6,4,-23,7,20,-22,-12,-6,-23,1,-18,-13,0,-7,5,-4,-1,-7,-20,-23,-14,12;
+MA   /M: SY='L'; M=6,-20,-7,-25,-18,-2,-17,-18,3,-19,9,4,-18,-23,-16,-19,-11,-6,5,-18,-6,-17;
+MA   /M: SY='R'; M=-9,-5,-19,-8,-3,-15,-18,-6,-16,7,-14,-7,-2,-17,1,9,-6,-4,-12,-21,-6,-3;
+MA   /M: SY='D'; M=-10,16,-26,22,13,-28,-9,2,-28,3,-23,-17,10,-12,4,0,4,-5,-22,-32,-15,8;
+MA   /M: SY='L'; M=-9,-28,-19,-32,-23,21,-30,-22,18,-26,27,13,-24,-27,-23,-20,-20,-6,14,-15,4,-23;
+MA   /M: SY='I'; M=-7,-28,-17,-32,-25,1,-30,-24,27,-25,25,17,-24,-26,-20,-21,-20,-8,21,-23,-4,-24;
+MA   /M: SY='R'; M=-5,0,-20,-1,3,-19,-12,-9,-18,4,-17,-11,2,-14,2,5,3,0,-13,-28,-14,2;
+MA   /M: SY='K'; M=-9,0,-25,2,8,-25,-13,-5,-26,13,-22,-13,0,-14,8,13,-4,-9,-21,-16,-12,8;
+MA   /M: SY='C'; M=-7,-21,26,-27,-21,-5,-26,-19,1,-23,10,9,-19,-28,-17,-21,-15,-8,2,-31,-12,-19;
+MA   /M: SY='L'; M=-10,-29,-20,-32,-23,13,-28,-23,12,-27,26,10,-27,-28,-21,-21,-25,-10,5,5,5,-22;
+MA   /M: SY='E'; M=-6,0,-20,3,8,-23,-16,-5,-17,1,-15,-10,-3,-11,3,0,-2,-5,-12,-28,-14,4;
+MA   /I: I=-6; MI=-32; MD=-32; IM=-32;
+MA   /M: SY='K'; M=-11,-10,-25,-9,-4,-12,-23,-3,-9,5,-8,-3,-9,-10,-4,5,-10,-7,-6,-20,-1,-6; D=-6;
+MA   /I: I=-6; MI=-32; IM=-32; DM=-32;
+MA   /M: SY='D'; M=-12,28,-25,30,11,-27,-10,2,-27,3,-26,-21,23,-12,2,-1,4,-4,-25,-34,-15,6;
+MA   /M: SY='P'; M=-2,-17,-32,-13,-3,-22,-18,-15,-14,-8,-20,-11,-17,48,-8,-15,-8,-8,-18,-26,-20,-9;
+MA   /M: SY='E'; M=-2,6,-24,6,13,-23,-11,-3,-21,2,-18,-13,4,-12,7,-1,3,-4,-18,-26,-12,10;
+MA   /M: SY='E'; M=-5,6,-21,7,9,-23,-15,-3,-22,7,-19,-13,5,-13,4,4,2,-3,-17,-29,-12,6;
+MA   /M: SY='R'; M=-20,-10,-30,-10,0,-20,-20,0,-30,30,-20,-10,0,-20,10,70,-10,-10,-20,-20,-10,0;
+MA   /M: SY='P'; M=-7,-22,-29,-20,-11,-13,-22,-19,0,-17,-3,-3,-20,26,-12,-20,-13,-9,-9,-21,-13,-14;
+MA   /M: SY='S'; M=1,2,-17,0,-4,-19,0,-12,-19,-9,-19,-14,5,-11,-6,-9,17,14,-12,-32,-17,-5;
+MA   /M: SY='A'; M=9,-17,-13,-24,-17,2,-17,-19,3,-18,1,1,-12,-17,-16,-18,-4,-2,4,-18,-6,-17;
+MA   /M: SY='E'; M=-5,-2,-25,-3,3,-21,-8,-5,-18,2,-14,-8,1,-9,1,2,-3,-6,-16,-26,-14,1;
+MA   /M: SY='E'; M=-5,2,-22,5,23,-28,-15,-3,-23,3,-20,-13,-2,-2,16,-3,-1,-7,-23,-27,-16,19;
+MA   /M: SY='L'; M=4,-20,-17,-25,-18,-4,-21,-20,13,-21,18,8,-18,-22,-16,-19,-14,-7,11,-23,-8,-18;
+MA   /I: I=-4; MI=-18; MD=-18; IM=-18;
+MA   /M: SY='L'; M=-7,-20,-17,-22,-17,2,-12,-15,5,-19,18,11,-18,-23,-15,-13,-16,-9,4,-18,-4,-16; D=-4;
+MA   /I: I=-4; MI=-18; MD=-18; IM=-18; DM=-18;
+MA   /M: SY='E'; M=0,0,-18,-1,8,-20,-14,-5,-17,7,-14,-9,0,-12,3,4,-1,-4,-11,-24,-12,5; D=-4;
+MA   /I: I=-4; MI=0; IM=0; DM=-18;
+MA   /M: SY='H'; M=-14,0,-26,1,0,-17,-20,47,-19,-9,-14,-2,3,-18,4,-5,-6,-10,-17,-28,7,-1;
+MA   /M: SY='P'; M=-5,-13,-29,-9,0,-20,-18,-14,-10,-9,-14,-10,-14,23,-6,-14,-6,-7,-12,-26,-16,-5;
+MA   /M: SY='F'; M=-13,-24,-23,-29,-21,28,-24,-14,-7,-20,-1,-5,-20,-26,-22,-15,-17,-8,-7,27,19,-20;
+MA   /M: SY='F'; M=-12,-27,-22,-32,-24,26,-29,-20,15,-26,21,11,-22,-25,-25,-19,-21,-9,10,-9,8,-24;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=709(701); /POSITIVE=690(682); /UNKNOWN=16(16); /FALSE_POS=3(3);
+NR   /FALSE_NEG=3; /PARTIAL=13;
+CC   /TAXO-RANGE=??EPV; /MAX-REPEAT=2;
+DR   P13368, 7LES_DROME, T; P20806, 7LES_DROVI, T; Q02066, AAIP_WHEAT, T;
+DR   Q09136, AAKA_PIG  , T; Q09137, AAKA_RAT  , T; P03949, ABL1_CAEEL, T;
+DR   P00519, ABL1_HUMAN, T; P42684, ABL2_HUMAN, T; P11681, ABL_CALVI , T;
+DR   P00522, ABL_DROME , T; P10447, ABL_FSVHY , T; P00521, ABL_MLVAB , T;
+DR   P00520, ABL_MOUSE , T; P16066, ANPA_HUMAN, T; P18293, ANPA_MOUSE, T;
+DR   P18910, ANPA_RAT  , T; P46197, ANPB_BOVIN, T; P20594, ANPB_HUMAN, T;
+DR   P16067, ANPB_RAT  , T; Q06548, APKA_ARATH, T; P46573, APKB_ARATH, T;
+DR   P21146, ARK1_BOVIN, T; P25098, ARK1_HUMAN, T; P26817, ARK1_RAT  , T;
+DR   P26818, ARK2_BOVIN, T; P35626, ARK2_HUMAN, T; P26819, ARK2_RAT  , T;
+DR   P43291, ASK1_ARATH, T; P43292, ASK2_ARATH, T; P27037, AVR2_HUMAN, T;
+DR   P27038, AVR2_MOUSE, T; P38444, AVR2_RAT  , T; P27039, AVR2_XENLA, T;
+DR   P27040, AVRB_MOUSE, T; P38445, AVRB_RAT  , T; P27041, AVRB_XENLA, T;
+DR   Q01389, BCK1_YEAST, T; Q01742, BFR2_HUMAN, T; P16277, BLK_MOUSE , T;
+DR   Q06187, BTK_HUMAN , T; P35991, BTK_MOUSE , T; P41695, BUB1_YEAST, T;
+DR   P10506, BYR1_SCHPO, T; P28829, BYR2_SCHPO, T; Q08345, CAK_HUMAN , T;
+DR   P27636, CC15_YEAST, T; P24923, CC21_MEDSA, T; P29618, CC21_ORYSA, T;
+DR   P19026, CC21_PEA  , T; P35567, CC21_XENLA, T; Q05006, CC22_MEDSA, T;
+DR   P29619, CC22_ORYSA, T; P28567, CC22_PEA  , T; P24033, CC22_XENLA, T;
+DR   P43063, CC28_CANAL, T; P00546, CC28_YEAST, T; P24100, CC2A_ARATH, T;
+DR   P25859, CC2B_ARATH, T; P23573, CC2C_DROME, T; Q01917, CC2H_CRIFA, T;
+DR   P34117, CC2H_DICDI, T; Q07785, CC2H_PLAFK, T; P38973, CC2H_TRYBB, T;
+DR   P34556, CC2_CAEEL , T; P13863, CC2_CHICK , T; P34112, CC2_DICDI , T;
+DR   P23572, CC2_DROME , T; P06493, CC2_HUMAN , T; P23111, CC2_MAIZE , T;
+DR   P11440, CC2_MOUSE , T; P43290, CC2_PETHY , T; P39951, CC2_RAT   , T;
+DR   P04551, CC2_SCHPO , T; P32562, CC5_YEAST , T; P41892, CC7_SCHPO , T;
+DR   P06243, CC7_YEAST , T; P46551, CDK2_CAEEL, T; P43450, CDK2_CARAU, T;
+DR   Q04770, CDK2_ENTHI, T; P24941, CDK2_HUMAN, T; P23437, CDK2_XENLA, T;
+DR   Q00526, CDK3_HUMAN, T; P11802, CDK4_HUMAN, T; P30285, CDK4_MOUSE, T;
+DR   P35426, CDK4_RAT  , T; Q02399, CDK5_BOVIN, T; Q00535, CDK5_HUMAN, T;
+DR   Q03114, CDK5_RAT  , T; Q00534, CDK6_HUMAN, T; Q06850, CDP1_ARATH, T;
+DR   P28582, CDPK_DAUCA, T; P28583, CDPK_SOYBN, T; P07334, CDR1_SCHPO, T;
+DR   Q09170, CDS1_SCHPO, T; P38938, CEK1_SCHPO, T; P18460, CEK2_CHICK, T;
+DR   P18461, CEK3_CHICK, T; P34208, CHK1_SCHPO, T; P23291, CK11_YEAST, T;
+DR   P23292, CK12_YEAST, T; P39962, CK13_YEAST, T; P40233, CKI1_SCHPO, T;
+DR   P40234, CKI2_SCHPO, T; P38679, COT1_NEUCR, T; Q06309, CRK1_LEIME, T;
+DR   P36615, CSK1_SCHPO, T; P41239, CSK_CHICK , T; P41240, CSK_HUMAN , T;
+DR   P41241, CSK_MOUSE , T; P32577, CSK_RAT   , T; Q03957, CTK1_YEAST, T;
+DR   P42679, CTK_HUMAN , T; P41242, CTK_MOUSE , T; P41243, CTK_RAT   , T;
+DR   Q05609, CTR1_ARATH, T; Q09435, CYG3_CAEEL, T; P11528, CYGR_ARBPU, T;
+DR   Q02846, CYGR_HUMAN, T; P16065, CYGS_STRPU, T; P20792, DAF1_CAEEL, T;
+DR   P22204, DBF2_YEAST, T; P32328, DBFB_YEAST, T; P36616, DSK1_SCHPO, T;
+DR   P39009, DUN1_YEAST, T; P00533, EGFR_HUMAN, T; P32801, ELM1_YEAST, T;
+DR   P04626, ERB2_HUMAN, T; P21860, ERB3_HUMAN, T; P28869, ERK1_CANAL, T;
+DR   P42525, ERK1_DICDI, T; P27361, ERK1_HUMAN, T; P21708, ERK1_RAT  , T;
+DR   P46196, ERK2_BOVIN, T; P28482, ERK2_HUMAN, T; P27703, ERK2_RAT  , T;
+DR   P26696, ERK2_XENLA, T; P31152, ERK3_HUMAN, T; P27704, ERK3_RAT  , T;
+DR   P40417, ERKA_DROME, T; P35761, ESK_MOUSE , T; Q00944, FAK_CHICK , T;
+DR   Q05397, FAK_HUMAN , T; P34152, FAK_MOUSE , T; P16591, FER_HUMAN , T;
+DR   P14238, FES_FELCA , T; P00542, FES_FSVGA , T; P00543, FES_FSVST , T;
+DR   P07332, FES_HUMAN , T; P16879, FES_MOUSE , T; P21804, FGR1_CHICK, T;
+DR   Q07407, FGR1_DROME, T; P11362, FGR1_HUMAN, T; P16092, FGR1_MOUSE, T;
+DR   Q04589, FGR1_RAT  , T; P22182, FGR1_XENLA, T; Q09147, FGR2_DROME, T;
+DR   P21802, FGR2_HUMAN, T; Q03364, FGR2_XENLA, T; P22607, FGR3_HUMAN, T;
+DR   P22455, FGR4_HUMAN, T; P00544, FGR_FSVGR , T; P09769, FGR_HUMAN , T;
+DR   P14234, FGR_MOUSE , T; P09760, FLK_RAT   , T; P36888, FLT3_HUMAN, T;
+DR   Q00342, FLT3_MOUSE, T; P35916, FLT4_HUMAN, T; P35917, FLT4_MOUSE, T;
+DR   P00541, FPS_AVISP , T; P18106, FPS_DROME , T; P00530, FPS_FUJSV , T;
+DR   P42685, FRK_HUMAN , T; P16057, FRT_HUMAN , T; P16892, FUS3_YEAST, T;
+DR   P23647, FUSE_DROME, T; Q05876, FYN_CHICK , T; P06241, FYN_HUMAN , T;
+DR   P39688, FYN_MOUSE , T; P13406, FYN_XENLA , T; P27446, FYN_XIPHE , T;
+DR   P15442, GCN2_YEAST, T; P32865, GPK1_DROME, T; P32866, GPK2_DROME, T;
+DR   P32298, GRK4_HUMAN, T; P43249, GRK5_BOVIN, T; P34947, GRK5_HUMAN, T;
+DR   P43250, GRK6_HUMAN, T; P38970, HAL5_YEAST, T; P08631, HCK_HUMAN , T;
+DR   P08103, HCK_MOUSE , T; P40235, HHP1_SCHPO, T; P40236, HHP2_SCHPO, T;
+DR   P32485, HOG1_YEAST, T; P29295, HR25_YEAST, T; P25092, HSER_HUMAN, T;
+DR   P23897, HSER_RAT  , T; P46599, HST7_CANAL, T; P08069, IG1R_HUMAN, T;
+DR   P09208, INSR_DROME, T; P06213, INSR_HUMAN, T; P15208, INSR_MOUSE, T;
+DR   P15127, INSR_RAT  , T; P38991, IPL1_YEAST, T; P32361, IRE1_YEAST, T;
+DR   P14617, IRR_CAVPO , T; P14616, IRR_HUMAN , T; Q08881, ITK_HUMAN , T;
+DR   Q03526, ITK_MOUSE , T; P23458, JAK1_HUMAN, T; P45985, JKK1_HUMAN, T;
+DR   P45983, JNK1_HUMAN, T; P45984, JNK2_HUMAN, T; Q09690, KA23_SCHPO, T;
+DR   Q09792, KAA8_SCHPO, T; Q09815, KAB7_SCHPO, T; P31374, KAB7_YEAST, T;
+DR   P31748, KAKT_MLVAT, T; P00517, KAPA_BOVIN, T; P25321, KAPA_CRIGR, T;
+DR   P17612, KAPA_HUMAN, T; P05132, KAPA_MOUSE, T; P36887, KAPA_PIG  , T;
+DR   P27791, KAPA_RAT  , T; P06244, KAPA_YEAST, T; P05131, KAPB_BOVIN, T;
+DR   P22694, KAPB_HUMAN, T; P05206, KAPB_MOUSE, T; P05383, KAPB_PIG  , T;
+DR   P40376, KAPB_SCHPO, T; P06245, KAPB_YEAST, T; P21137, KAPC_CAEEL, T;
+DR   P34099, KAPC_DICDI, T; P12370, KAPC_DROME, T; P05986, KAPC_YEAST, T;
+DR   P22612, KAPG_HUMAN, T; P24256, KAPI_BOVIN, T; P21901, KAPL_APLCA, T;
+DR   P38147, KB9S_YEAST, T; P38070, KBN8_YEAST, T; P38080, KBQ9_YEAST, T;
+DR   P35506, KC1A_BOVIN, T; P35507, KC1B_BOVIN, T; P42158, KC1D_ARATH, T;
+DR   Q06486, KC1D_RAT  , T; P35509, KC1G_BOVIN, T; Q08467, KC21_ARATH, T;
+DR   P21868, KC21_CHICK, T; P19138, KC21_HUMAN, T; P33674, KC21_RABIT, T;
+DR   P19139, KC21_RAT  , T; P40231, KC21_SCHPO, T; P15790, KC21_YEAST, T;
+DR   Q08466, KC22_ARATH, T; P20427, KC22_BOVIN, T; P21869, KC22_CHICK, T;
+DR   P19784, KC22_HUMAN, T; P28020, KC22_XENLA, T; P19454, KC22_YEAST, T;
+DR   P18334, KC2A_CAEEL, T; Q02720, KC2A_DICDI, T; P08181, KC2A_DROME, T;
+DR   P28523, KC2A_MAIZE, T; P28547, KC2A_THEPA, T; P29620, KC47_ORYSA, T;
+DR   P27466, KCC1_YEAST, T; P22517, KCC2_YEAST, T; P08414, KCC4_MOUSE, T;
+DR   P13234, KCC4_RAT  , T; P25389, KCC4_YEAST, T; P11798, KCCA_MOUSE, T;
+DR   P11275, KCCA_RAT  , T; P28652, KCCB_MOUSE, T; P08413, KCCB_RAT  , T;
+DR   P15791, KCCD_RAT  , T; P11730, KCCG_RAT  , T; Q07250, KCCS_MALDO, T;
+DR   P22518, KCLK_MOUSE, T; P41279, KCOT_HUMAN, T; Q07174, KCOT_MOUSE, T;
+DR   P25333, KCR8_YEAST, T; P25390, KCW3_YEAST, T; P16912, KDC2_DROME, T;
+DR   P16910, KDCA_DROME, T; P16911, KDCB_DROME, T; P29317, KECK_HUMAN, T;
+DR   P29321, KEEK_RAT  , T; P33279, KEI2_RABIT, T; P29318, KEK4_CHICK, T;
+DR   P29319, KEK4_MOUSE, T; P28693, KEK5_CHICK, T; P09759, KELK_RAT  , T;
+DR   Q05512, KEMK_MOUSE, T; P21709, KEPH_HUMAN, T; P00534, KER1_CHICK, T;
+DR   P11273, KER2_CHICK, T; P00535, KERB_AVIER, T; P29323, KERK_HUMAN, T;
+DR   P43568, KFC9_YEAST, T; P43565, KFD3_YEAST, T; P13369, KFMS_FELCA, T;
+DR   P00545, KFMS_FSVMD, T; P07333, KFMS_HUMAN, T; P09581, KFMS_MOUSE, T;
+DR   Q00495, KFMS_RAT  , T; P43637, KG18_YEAST, T; P18265, KG3A_RAT  , T;
+DR   P18266, KG3B_RAT  , T; P21803, KGFR_MOUSE, T; Q03042, KGP1_DROME, T;
+DR   Q03043, KGP2_DROME, T; P32023, KGP3_DROME, T; P00516, KGPA_BOVIN, T;
+DR   P14619, KGPB_HUMAN, T; P29320, KHEK_HUMAN, T; P38692, KHQ2_YEAST, T;
+DR   P34891, KI15_CAEEL, T; P34892, KI16_CAEEL, T; P06242, KI28_YEAST, T;
+DR   P25341, KI82_YEAST, T; P40494, KIJ5_YEAST, T; P22987, KIN1_SCHPO, T;
+DR   P13185, KIN1_YEAST, T; P13186, KIN2_YEAST, T; P22209, KIN3_YEAST, T;
+DR   P20911, KIN4_XENLA, T; Q01919, KIN4_YEAST, T; Q04771, KIR1_HUMAN, T;
+DR   P37172, KIR1_MOUSE, T; P80201, KIR1_RAT  , T; P36896, KIR2_HUMAN, T;
+DR   P80202, KIR2_RAT  , T; P37023, KIR3_HUMAN, T; P80203, KIR3_RAT  , T;
+DR   P36897, KIR4_HUMAN, T; P80204, KIR4_RAT  , T; P36894, KIR5_HUMAN, T;
+DR   P36895, KIR5_MOUSE, T; P36898, KIR6_MOUSE, T; Q00532, KKIA_HUMAN, T;
+DR   P43481, KKIT_BOVIN, T; Q08156, KKIT_CHICK, T; P04048, KKIT_FSVHZ, T;
+DR   P10721, KKIT_HUMAN, T; P05532, KKIT_MOUSE, T; P34244, KKK1_YEAST, T;
+DR   P28708, KKL6_YEAST, T; P36005, KKQ1_YEAST, T; P36004, KKQ8_YEAST, T;
+DR   P36003, KKR1_YEAST, T; P36002, KKT8_YEAST, T; P29376, KLTK_HUMAN, T;
+DR   P08923, KLTK_MOUSE, T; P00531, KMIL_AVIMH, T; P05625, KMIL_CHICK, T;
+DR   P19038, KML2_CHICK, T; P11799, KMLC_CHICK, T; P25323, KMLC_DICDI, T;
+DR   P07313, KMLC_RABIT, T; P20689, KMLC_RAT  , T; P10650, KMOS_CERAE, T;
+DR   P10741, KMOS_CHICK, T; P00540, KMOS_HUMAN, T; P00536, KMOS_MOUSE, T;
+DR   P07331, KMOS_MSVMH, T; P00537, KMOS_MSVMM, T; P00538, KMOS_MSVMO, T;
+DR   P32593, KMOS_MSVMT, T; P10421, KMOS_MSVTS, T; P00539, KMOS_RAT  , T;
+DR   P12965, KMOS_XENLA, T; P32350, KNS1_YEAST, T; P21127, KP58_HUMAN, T;
+DR   P24788, KP58_MOUSE, T; P46892, KP58_RAT  , T; P19525, KP68_HUMAN, T;
+DR   P27448, KP78_HUMAN, T; P35465, KPAK_RAT  , T; P07934, KPBG_MOUSE, T;
+DR   P00518, KPBG_RABIT, T; P13286, KPBG_RAT  , T; P15735, KPBH_HUMAN, T;
+DR   P31325, KPBH_RAT  , T; P34722, KPC1_CAEEL, T; P43057, KPC1_CANAL, T;
+DR   P05130, KPC1_DROME, T; P05771, KPC1_HUMAN, T; P05772, KPC1_RABIT, T;
+DR   P04410, KPC1_RAT  , T; P24583, KPC1_YEAST, T; P05126, KPC2_BOVIN, T;
+DR   P34885, KPC2_CAEEL, T; P13677, KPC2_DROME, T; P05127, KPC2_HUMAN, T;
+DR   P05773, KPC2_RABIT, T; P04411, KPC2_RAT  , T; P13678, KPC3_DROME, T;
+DR   P04409, KPCA_BOVIN, T; P17252, KPCA_HUMAN, T; P20444, KPCA_MOUSE, T;
+DR   P10102, KPCA_RABIT, T; P05696, KPCA_RAT  , T; Q05655, KPCD_HUMAN, T;
+DR   P28867, KPCD_MOUSE, T; P09215, KPCD_RAT  , T; Q02156, KPCE_HUMAN, T;
+DR   P16054, KPCE_MOUSE, T; P10830, KPCE_RABIT, T; P09216, KPCE_RAT  , T;
+DR   P05128, KPCG_BOVIN, T; P05129, KPCG_HUMAN, T; P10829, KPCG_RABIT, T;
+DR   P05697, KPCG_RAT  , T; P41743, KPCI_HUMAN, T; P24723, KPCL_HUMAN, T;
+DR   P23298, KPCL_MOUSE, T; Q04759, KPCT_HUMAN, T; Q02111, KPCT_MOUSE, T;
+DR   Q05513, KPCZ_HUMAN, T; Q02956, KPCZ_MOUSE, T; P09217, KPCZ_RAT  , T;
+DR   Q05652, KPEL_DROME, T; P11309, KPIM_HUMAN, T; P06803, KPIM_MOUSE, T;
+DR   P26794, KPIM_RAT  , T; P42818, KPK1_ARATH, T; P15792, KPK1_PHAVU, T;
+DR   Q02595, KPK2_PLAFK, T; Q05999, KPK7_ARATH, T; P07557, KPKS_HUMAN, T;
+DR   P17801, KPRO_MAIZE, T; P11800, KPSC_HUMAN, T; P11801, KPSH_HUMAN, T;
+DR   Q00536, KPT1_HUMAN, T; Q04735, KPT1_MOUSE, T; Q00537, KPT2_HUMAN, T;
+DR   Q07002, KPT3_HUMAN, T; Q04899, KPT3_MOUSE, T; P15443, KR14_HSVI1, T;
+DR   Q00097, KR15_HSVI1, T; Q00098, KR16_HSVI1, T; P04413, KR1_HSV11 , T;
+DR   P13287, KR1_HSV2  , T; Q08097, KR1_HSVBS , T; P28926, KR1_HSVEB , T;
+DR   P32516, KR1_HSVEK , T; P17613, KR1_PRVKA , T; P24381, KR1_PRVN3 , T;
+DR   Q04543, KR1_SVVD  , T; P09251, KR1_VZVD  , T; P13288, KR2_EBV   , T;
+DR   P04290, KR2_HSV11 , T; P28966, KR2_HSVEB , T; P30662, KR2_PRVN3 , T;
+DR   P09296, KR2_VZVD  , T; Q00094, KR73_HSVI1, T; Q00095, KR74_HSVI1, T;
+DR   P10398, KRAA_HUMAN, T; P04627, KRAA_MOUSE, T; P14056, KRAA_RAT  , T;
+DR   P15056, KRAB_HUMAN, T; P28028, KRAB_MOUSE, T; Q01314, KRAC_BOVIN, T;
+DR   P31749, KRAC_HUMAN, T; P31750, KRAC_MOUSE, T; Q07292, KRAF_CAEEL, T;
+DR   P11346, KRAF_DROME, T; P04049, KRAF_HUMAN, T; P00532, KRAF_MSV36, T;
+DR   P11345, KRAF_RAT  , T; P09560, KRAF_XENLA, T; P20505, KRB1_VACCC, T;
+DR   P16913, KRB1_VACCV, T; P33800, KRB1_VARV , T; P21098, KRB2_VACCC, T;
+DR   P24362, KRB2_VACCV, T; P31751, KRCB_HUMAN, T; Q04859, KRCK_MOUSE, T;
+DR   P21095, KRF1_VACCC, T; P29884, KRF1_VACCP, T; P33801, KRF1_VARV , T;
+DR   P00529, KROS_AVISU, T; P08941, KROS_CHICK, T; P08922, KROS_HUMAN, T;
+DR   P18653, KS61_MOUSE, T; P18654, KS62_MOUSE, T; P18652, KS6A_CHICK, T;
+DR   P10665, KS6A_XENLA, T; P10666, KS6B_XENLA, T; P23443, KS6_HUMAN , T;
+DR   P21425, KS6_RAT   , T; Q03137, KSEK_MOUSE, T; P43288, KSGA_ARATH, T;
+DR   P43289, KSGG_ARATH, T; P23646, KSGM_DROME, T; P18431, KSGZ_DROME, T;
+DR   P38691, KSP1_YEAST, T; P14681, KSS1_YEAST, T; Q03963, KTIK_MOUSE, T;
+DR   P18160, KYK1_DICDI, T; P18161, KYK2_DICDI, T; P42683, LCK_CHICK , T;
+DR   P06239, LCK_HUMAN , T; P06240, LCK_MOUSE , T; P24348, LT23_CAEEL, T;
+DR   P07948, LYN_HUMAN , T; P25911, LYN_MOUSE , T; Q07014, LYN_RAT   , T;
+DR   P20794, MAK_HUMAN , T; P20793, MAK_RAT   , T; Q06060, MAPK_PEA  , T;
+DR   P21965, MCK1_YEAST, T; P38615, MDS1_YEAST, T; P24719, MEK1_YEAST, T;
+DR   P08581, MET_HUMAN , T; P16056, MET_MOUSE , T; P43294, MHK_ARATH , T;
+DR   P30290, MIK1_SCHPO, T; P43068, MKC1_CANAL, T; P32490, MKK1_YEAST, T;
+DR   P32491, MKK2_YEAST, T; P46734, MKK3_HUMAN, T; P80192, MLK1_HUMAN, T;
+DR   Q02779, MLK2_HUMAN, T; Q02750, MPK1_HUMAN, T; P31938, MPK1_MOUSE, T;
+DR   P29678, MPK1_RABIT, T; Q01986, MPK1_RAT  , T; Q05116, MPK1_XENLA, T;
+DR   P36507, MPK2_HUMAN, T; Q03143, MPK2_MOUSE, T; P36506, MPK2_RAT  , T;
+DR   Q07192, MPK2_XENLA, T; P39746, MPK3_XENLA, T; Q03145, MPK5_MOUSE, T;
+DR   Q03140, MPK9_MOUSE, T; Q03141, MPKA_MOUSE, T; Q03142, MPKB_MOUSE, T;
+DR   Q07176, MSK7_MEDSA, T; P43293, NAK_ARATH , T; P06494, NEU_RAT   , T;
+DR   P11837, NIMA_EMENI, T; P10676, NINL_DROME, T; P10677, NINS_DROME, T;
+DR   P22211, NPR1_YEAST, T; Q08942, NRKA_TRYBB, T; Q03428, NRKB_TRYBB, T;
+DR   P38990, PAK1_YEAST, T; P08018, PBS2_YEAST, T; P36582, PCK1_SCHPO, T;
+DR   P36583, PCK2_SCHPO, T; P09619, PGDR_HUMAN, T; P05622, PGDR_MOUSE, T;
+DR   P16234, PGDS_HUMAN, T; P26618, PGDS_MOUSE, T; P20786, PGDS_RAT  , T;
+DR   P26619, PGDS_XENLA, T; P17157, PH85_YEAST, T; P25848, PHY_CERPU , T;
+DR   P42493, PK1_ASFB7 , T; P34206, PK1_ASFM2 , T; P34101, PK1_DICDI , T;
+DR   P41415, PK1_NPVAC , T; P41719, PK1_NPVHZ , T; P41720, PK1_NPVLD , T;
+DR   P28178, PK2_DICDI , T; P41676, PK2_NPVAC , T; P34102, PK3_DICDI , T;
+DR   P34103, PK4_DICDI , T; P34104, PK5_DICDI , T; P34100, PKD1_DICDI, T;
+DR   P33973, PKN1_MYXXA, T; Q07832, PLK_MOUSE , T; Q07538, PRP4_SCHPO, T;
+DR   P40230, RAG8_KLULA, T; P08092, RAN1_SCHPO, T; P38622, RCK1_YEAST, T;
+DR   P38623, RCK2_YEAST, T; P07949, RET_HUMAN , T; P35546, RET_MOUSE , T;
+DR   Q02723, RKI1_SECCE, T; P28327, RK_BOVIN  , T; P27966, RMIL_AVEVR, T;
+DR   P10533, RMIL_AVII1, T; Q04982, RMIL_CHICK, T; P34908, RMIL_COTJA, T;
+DR   Q05823, RN5A_HUMAN, T; Q05921, RN5A_MOUSE, T; Q04912, RON_HUMAN , T;
+DR   P42159, RTK2_GEOCY, T; P34925, RYK1_HUMAN, T; Q04696, RYK2_HUMAN, T;
+DR   P33497, RYK_AVIR3 , T; Q01887, RYK_MOUSE , T; P11792, SCH9_YEAST, T;
+DR   P23049, SEA_AVIET , T; Q06226, SGK_RAT   , T; P23293, SGV1_YEAST, T;
+DR   Q00772, SLT2_YEAST, T; P32581, SME1_YEAST, T; P41808, SMK1_YEAST, T;
+DR   P06782, SNF1_YEAST, T; P42687, SPK1_DUGTI, T; P27638, SPK1_SCHPO, T;
+DR   P22216, SPK1_YEAST, T; P08458, SPS1_YEAST, T; P00528, SRC1_DROME, T;
+DR   P13115, SRC1_XENLA, T; P08630, SRC2_DROME, T; P13116, SRC2_XENLA, T;
+DR   P05480, SRCN_MOUSE, T; P15054, SRC_AVIS2 , T; P00525, SRC_AVISR , T;
+DR   P14084, SRC_AVISS , T; P14085, SRC_AVIST , T; P00523, SRC_CHICK , T;
+DR   P12931, SRC_HUMAN , T; P25020, SRC_RSVH1 , T; P00526, SRC_RSVP  , T;
+DR   P31693, SRC_RSVPA , T; P00524, SRC_RSVSR , T; P42686, SRK1_SPOLA, T;
+DR   P42688, SRK2_SPOLA, T; P42689, SRK3_SPOLA, T; P42690, SRK4_SPOLA, T;
+DR   Q09092, SRK6_BRAOL, T; P23561, ST11_YEAST, T; Q03497, ST20_YEAST, T;
+DR   P06784, STE7_YEAST, T; P17713, STK_HYDAT , T; P39745, SUR1_CAEEL, T;
+DR   P32944, SWE1_YEAST, T; P43405, SYK_HUMAN , T; Q00655, SYK_PIG   , T;
+DR   P42680, TEC_HUMAN , T; P24604, TEC_MOUSE , T; P37173, TGR2_HUMAN, T;
+DR   P38551, TGR2_PIG  , T; P38438, TGR2_RAT  , T; Q06805, TIE1_BOVIN, T;
+DR   P35590, TIE1_HUMAN, T; Q06806, TIE1_MOUSE, T; Q06807, TIE2_BOVIN, T;
+DR   Q02763, TIE2_HUMAN, T; Q02858, TIE2_MOUSE, T; P43298, TMK1_ARATH, T;
+DR   P33543, TML1_ARATH, T; P04412, TOP_DROME , T; P18475, TOR_DROME , T;
+DR   P04629, TRKA_HUMAN, T; P35739, TRKA_RAT  , T; P15209, TRKB_MOUSE, T;
+DR   P24786, TRKC_PIG  , T; Q03351, TRKC_RAT  , T; P33981, TTK_HUMAN , T;
+DR   P42681, TXK_HUMAN , T; P42682, TXK_MOUSE , T; P29597, TYK2_HUMAN, T;
+DR   Q05101, U120_HSVMG, T; P30530, UFO_HUMAN , T; Q00993, UFO_MOUSE , T;
+DR   P39073, UME5_YEAST, T; Q01015, VG36_HSVSA, T; P17948, VGR1_HUMAN, T;
+DR   P35969, VGR1_MOUSE, T; P35968, VGR2_HUMAN, T; P35918, VGR2_MOUSE, T;
+DR   P22219, VP15_YEAST, T; P30291, WEE1_HUMAN, T; P07527, WEE1_SCHPO, T;
+DR   P33886, WIS1_SCHPO, T; P13388, XMRK_XIPMA, T; P14680, YAK1_YEAST, T;
+DR   P00527, YES_AVISY , T; P09324, YES_CHICK , T; P07947, YES_HUMAN , T;
+DR   Q04736, YES_MOUSE , T; P10936, YES_XENLA , T; P27447, YES_XIPHE , T;
+DR   P34336, YK11_CAEEL, T; Q03563, YKD5_CAEEL, T; P34265, YKF1_CAEEL, T;
+DR   P42168, YKL1_CAEEL, T; P42169, YKL2_CAEEL, T; P34314, YKT3_CAEEL, T;
+DR   P41951, YLK3_CAEEL, T; P34509, YMX1_CAEEL, T; P45894, YNA3_CAEEL, T;
+DR   P32742, YNH4_CAEEL, T; P34633, YOO1_CAEEL, T; P46549, YP51_CAEEL, T;
+DR   P12688, YPK1_YEAST, T; P18961, YPK2_YEAST, T; Q05608, YPKA_YERPS, T;
+DR   Q09503, YQI1_CAEEL, T; Q09639, YR22_CAEEL, T; Q02977, YRK_CHICK , T;
+DR   P43403, ZA70_HUMAN, T; P43404, ZA70_MOUSE, T;
+DR   P13387, EGFR_CHICK, P; P21136, KGPB_BOVIN, P; P24062, IG1R_RAT  , P;
+DR   P29322, KEEK_HUMAN, P; P35508, KC1D_BOVIN, P; P80197, KAFK_PHYPO, P;
+DR   P80385, AAKG_RAT  , P; P80386, AAKB_RAT  , P; P80387, AAKB_PIG  , P;
+DR   Q01621, LCK_RAT   , P; Q03146, MPK6_MOUSE, P; Q03147, MPK7_MOUSE, P;
+DR   Q09138, AAKG_PIG  , P;
+DR   P32216, KRF1_SPVKA, N; P16788, UL97_HCMVA, N; P24446, U15R_HSV6U, N;
+DR   P27450, CX32_ARATH, F; P37562, YABT_BACSU, F; P36102, YKC5_YEAST, F;
+DO   PDOC00100;
+//
+ID   PIPLC_X_DOMAIN; MATRIX.
+AC   PS50007;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Phosphatidylinositol-specific phospholipase X-box domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ARNDCQEGHILKMFPSTWYVBZX';LENGTH=145;TOPOLOGY=LINEAR;
+MA   /DISJOINT: DEFINITION=PROTECT;N1=5;N2=140;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=1.2066; R2=0.0157; TEXT='NScore';
+MA   /CUT_OFF: LEVEL=0; SCORE=465; N_SCORE=8.5; MODE=1;
+MA   /DEFAULT: MI=-105; MD=-105; IM=-105; DM=-105; I=-20; D=-20;
+MA   /M: SY='Q'; M=-6,1,3,7,-16,19,10,-9,11,-15,-13,1,-5,-20,-6,2,-4,-17,-5,-16,5,14,-5;
+MA   /M: SY='D'; M=-11,-7,10,30,-19,0,10,-10,-3,-17,-15,-2,-14,-22,-7,0,-3,-25,-12,-14,23,4,-6;
+MA   /M: SY='M'; M=-7,-6,-12,-16,-16,0,-7,-15,0,8,9,-5,31,-1,-13,-11,-4,-13,2,2,-11,-3,-7;
+MA   /M: SY='S'; M=-4,0,14,11,-17,0,3,-5,-5,-21,-23,5,-15,-20,-10,10,5,-28,-14,-15,12,1,-5;
+MA   /M: SY='Q'; M=-5,8,2,-4,-22,17,4,-15,0,-12,-13,9,-2,-21,-11,-3,-7,-18,-7,-14,0,9,-7;
+MA   /M: SY='P'; M=-8,-17,-16,-10,-19,-10,-2,-17,-17,-17,-24,-10,-16,-24,64,-8,-8,-26,-25,-23,-16,-10,-9;
+MA   /M: SY='L'; M=-9,-18,-25,-27,-18,-17,-18,-27,-18,20,41,-26,19,7,-25,-25,-9,-18,0,10,-26,-18,-9;
+MA   /M: SY='S'; M=12,-10,10,-2,-12,-4,-4,4,-9,-17,-22,-8,-15,-18,-11,21,10,-30,-18,-10,2,-4,-2;
+MA   /M: SY='H'; M=-10,3,3,0,-25,11,6,-16,48,-22,-16,-2,-4,-18,-14,-5,-12,-21,8,-22,-1,6,-8;
+MA   /M: SY='Y'; M=-15,-13,-21,-23,-26,-13,-21,-30,5,10,7,-14,4,21,-27,-19,-8,13,53,2,-22,-21,-9;
+MA   /M: SY='F'; M=-13,-14,-13,-24,-22,-20,-20,-23,-9,-3,2,-19,-3,33,-25,-12,-5,13,26,-6,-19,-19,-9;
+MA   /M: SY='I'; M=-8,-26,-20,-36,-25,-18,-28,-35,-26,43,18,-26,21,0,-20,-18,-8,-20,-1,29,-28,-27,-9;
+MA   /M: SY='N'; M=-1,-9,13,0,-20,-5,-4,-8,-5,-13,-22,-7,-14,-16,4,8,1,-30,-13,-14,4,-6,-6;
+MA   /M: SY='S'; M=6,-12,6,-3,-15,-6,-6,19,-13,-24,-27,-12,-18,-21,-12,25,9,-32,-21,-14,-2,-6,-2;
+MA   /M: SY='S'; M=11,-11,5,-3,-11,-3,-3,1,-12,-18,-24,-10,-17,-18,-10,30,19,-34,-18,-8,-1,-3,0;
+MA   /M: SY='H'; M=-19,0,9,0,-29,9,0,-19,97,-29,-19,-9,0,-19,-19,-9,-19,-29,19,-29,0,0,-9;
+MA   /M: SY='N'; M=-11,-2,50,29,-21,0,4,-2,7,-23,-29,0,-21,-23,-17,7,-2,-38,-19,-29,40,2,-9;
+MA   /I: MI=0; MD=-32; IM=0; DM=-32; I=-5;
+MA   /M: SY='T'; M=-1,-12,-5,-13,-12,-11,-11,-19,-18,-4,0,-14,-4,-6,-14,11,33,-28,-8,1,-6,-11,-2;
+MA   /M: SY='Y'; M=-16,-7,-17,-18,-30,-4,-15,-26,8,-6,-6,-5,-3,15,-25,-16,-6,30,55,-13,-17,-12,-10;
+MA   /M: SY='L'; M=-8,-16,-17,-18,-18,-17,-15,-25,-17,11,29,-23,10,1,-26,-18,-2,-24,-4,7,-17,-16,-9;
+MA   /M: SY='T'; M=-3,-15,-11,-15,-18,-13,-11,-13,-19,-5,2,-17,-3,-9,-3,0,14,-26,-12,-4,-12,-13,-5;
+MA   /M: SY='G'; M=4,-18,-7,-14,-22,-17,-15,25,-21,-16,-15,-16,-10,-20,-18,0,-6,-23,-21,-7,-12,-16,-7;
+MA   /M: SY='K'; M=-11,10,10,13,-27,3,5,-5,7,-31,-27,14,-15,-28,-13,-1,-9,-28,-11,-24,10,3,-9;
+MA   /M: SY='Q'; M=-6,4,0,0,-26,44,15,-16,4,-20,-22,5,-4,-35,-4,7,-4,-24,-13,-26,-1,29,-8;
+MA   /M: SY='L'; M=-10,-13,-24,-31,-19,-23,-23,-30,-21,16,24,-22,11,18,-28,-21,-7,-15,3,15,-28,-23,-10;
+MA   /M: SY='A'; M=5,-10,-7,-16,-17,-10,-13,-2,-18,-20,-19,-8,-15,-13,-18,-1,-2,11,-8,-15,-11,-11,-8;
+MA   /M: SY='G'; M=3,-14,0,-6,-25,-6,-7,40,-14,-32,-27,-13,-17,-28,-15,6,-10,-23,-25,-25,-6,-6,-7;
+MA   /M: SY='K'; M=-9,12,-1,-4,-24,5,6,-19,-7,-17,-12,11,-4,-19,-7,-3,1,-24,-11,-14,-2,4,-8;
+MA   /M: SY='S'; M=3,-10,3,-4,-2,1,-1,-8,-11,-19,-25,-9,-16,-21,-7,26,16,-36,-19,-11,-2,0,-3;
+MA   /M: SY='S'; M=3,-3,6,-1,-15,12,3,-7,-6,-19,-25,-2,-14,-23,-10,26,15,-33,-16,-13,0,8,-2;
+MA   /M: SY='V'; M=-3,-14,-10,-12,-16,-13,-11,-21,-16,8,0,-13,4,-8,-18,-3,1,-29,-11,15,-10,-13,-8;
+MA   /M: SY='E'; M=-8,-1,-3,9,-27,11,38,-19,-1,-22,-14,5,-14,-21,-6,0,-7,-25,-10,-22,2,24,-9;
+MA   /M: SY='M'; M=1,-15,-8,-8,-21,-9,-10,-2,-12,-6,-3,-13,5,-15,-10,-4,-7,-25,-14,-4,-7,-10,-7;
+MA   /M: SY='Y'; M=-18,-14,-20,-25,-28,-15,-22,-31,7,7,4,-15,3,31,-28,-20,-10,19,61,-2,-22,-22,-10;
+MA   /M: SY='R'; M=-10,18,-9,-19,-25,0,-9,-25,-11,0,-2,1,1,-13,-19,-10,-5,-21,-7,0,-16,-7,-8;
+MA   /M: SY='Q'; M=-12,21,1,-3,-28,35,9,-19,6,-20,-18,11,-4,-27,-14,-2,-5,-18,-4,-24,-1,20,-9;
+MA   /I: MI=-32; MD=-32; IM=-32; I=-6;
+MA   /M: SY='v'; D=-6; M=6,-13,-12,-17,4,-6,-12,-17,-16,-2,-3,-12,-2,-12,-18,0,2,-25,-13,5,-13,-9,-6;
+MA   /I: DM=-32;
+MA   /M: SY='L'; M=-10,-18,-28,-29,-20,-17,-20,-28,-17,20,45,-27,25,8,-28,-28,-10,-20,0,10,-28,-18,-10;
+MA   /M: SY='L'; M=-13,10,-5,1,-18,4,5,-21,-6,-17,-4,4,-5,-19,-18,-11,-10,-25,-11,-15,-2,4,-10;
+MA   /M: SY='A'; M=5,1,-2,-9,-21,6,-1,-12,7,-17,-16,2,-4,-20,-13,2,-2,-20,-7,-13,-5,1,-5;
+MA   /M: SY='G'; M=0,-15,0,-10,-30,-18,-19,65,-19,-39,-29,-17,-19,-29,-20,0,-19,-20,-29,-29,-10,-19,-10;
+MA   /M: SY='C'; M=-3,-27,-21,-30,67,-27,-28,-28,-29,-7,-8,-26,-8,-13,-33,-9,-7,-40,-21,7,-22,-28,-15;
+MA   /M: SY='R'; M=-18,63,0,-8,-30,10,1,-20,-1,-30,-21,33,-10,-21,-18,-10,-10,-20,-10,-20,-8,1,-10;
+MA   /M: SY='C'; M=-11,-24,-19,-28,58,-24,-26,-29,-19,-12,-9,-24,-10,-1,-34,-11,-8,-27,-1,-2,-21,-26,-15;
+MA   /M: SY='V'; M=-7,-23,-25,-34,-19,-26,-28,-33,-26,30,20,-26,13,12,-26,-18,-6,-19,0,29,-30,-28,-10;
+MA   /M: SY='E'; M=-13,-3,6,36,-30,13,47,-16,0,-33,-23,6,-23,-33,-3,0,-10,-33,-20,-30,22,30,-10;
+MA   /M: SY='L'; M=-9,-23,-26,-33,-22,-20,-23,-33,-23,30,37,-29,19,6,-26,-25,-9,-20,0,18,-30,-23,-10;
+MA   /M: SY='D'; M=-20,15,13,44,-30,3,13,-13,0,-36,-26,9,-23,-33,-13,-3,-10,-33,-16,-26,30,6,-10;
+MA   /M: SY='C'; M=-1,-23,-16,-26,35,-22,-24,-12,-23,-10,-5,-23,-3,-10,-28,-8,-6,-31,-17,0,-19,-23,-12;
+MA   /M: SY='W'; M=-18,-1,-21,-26,-42,-11,-19,-18,-20,-22,-21,-4,-17,0,-25,-28,-22,93,16,-27,-25,-12,-16;
+MA   /M: SY='D'; M=-10,-7,7,29,-26,-3,8,-14,-6,-23,-19,0,-17,-28,-6,-3,-7,-33,-17,-17,20,2,-9;
+MA   /M: SY='G'; M=0,-14,9,-1,-24,-12,-12,41,-13,-32,-28,-14,-19,-26,-17,8,-6,-27,-25,-24,0,-12,-7;
+MA   /M: SY='P'; M=-8,0,-6,-2,-31,-2,3,-17,-12,-19,-18,3,-13,-24,26,-8,-8,-27,-19,-21,-6,-2,-9;
+MA   /M: SY='D'; M=-11,-7,19,33,-26,0,8,-4,-2,-29,-28,-1,-22,-30,-4,4,-2,-35,-20,-26,27,3,-8;
+MA   /M: SY='G'; M=-3,-11,4,-4,-28,1,-1,17,-9,-21,-21,-9,-12,-27,-9,0,-12,-24,-20,-23,-2,0,-9;
+MA   /I: MI=0; MD=-10; IM=0; DM=-32; I=-5;
+MA   /M: SY='e'; D=-4; M=-3,-2,-1,7,-19,7,24,-13,-3,-16,-11,4,-5,-18,-4,0,-2,-22,-12,-14,4,16,-6;
+MA   /I: MD=-23; DM=-10;
+MA   /M: SY='p'; D=-4; M=-4,-17,-10,-11,-30,-9,-4,-17,-16,-7,-18,-10,-11,-21,50,-7,-7,-25,-21,-16,-13,-10,-8;
+MA   /I: MD=-23; DM=-10;
+MA   /M: SY='v'; D=-4; M=-4,-14,-16,-22,-17,-16,-15,-26,-21,18,3,-12,5,-1,-19,-8,-3,-22,-5,21,-19,-16,-8;
+MA   /I: MD=-23; DM=-10;
+MA   /M: SY='i'; D=-4; M=-5,-23,-21,-32,-19,-21,-26,-32,-26,36,16,-23,14,0,-21,-15,-5,-21,-3,31,-27,-26,-9;
+MA   /I: DM=-10;
+MA   /M: SY='Y'; M=-13,-6,-10,-17,-8,-10,-15,-25,11,-10,-7,-10,-4,7,-24,-7,2,-6,28,-8,-13,-15,-8;
+MA   /M: SY='H'; M=-18,0,9,0,-28,8,0,-20,89,-28,-19,-10,0,-19,-19,-7,-13,-29,17,-27,0,0,-9;
+MA   /M: SY='G'; M=0,-19,0,-10,-28,-19,-19,62,-20,-37,-28,-19,-19,-28,-19,1,-13,-20,-28,-27,-9,-19,-9;
+MA   /M: SY='H'; M=-16,-1,-6,-15,-29,-8,-10,-21,15,-15,-11,-7,-3,5,-4,-13,-12,-6,11,-17,-13,-10,-10;
+MA   /I: MI=-32; MD=-32; IM=-32; I=-6;
+MA   /M: SY='t'; D=-6; M=3,-6,0,-6,-6,-6,-6,-11,-12,-6,-6,-6,-6,-6,-6,11,27,-18,-6,0,0,-6,0;
+MA   /I: DM=-32;
+MA   /M: SY='L'; M=-12,-15,-23,-32,-21,-20,-23,-28,-15,16,24,-22,20,22,-26,-22,-9,-11,8,10,-26,-21,-10;
+MA   /M: SY='T'; M=-7,-12,-7,-15,-1,-12,-14,-23,-3,-10,-8,-13,-7,0,-19,3,21,-19,8,-3,-8,-14,-5;
+MA   /M: SY='S'; M=0,-14,-6,-13,-15,-9,-10,-17,-17,-1,0,-16,-4,-8,-11,10,18,-30,-10,0,-10,-10,-3;
+MA   /M: SY='E'; M=-8,3,4,7,-26,9,13,-15,12,-23,-19,7,-9,-22,-12,-1,-7,-24,-4,-21,5,10,-8;
+MA   /M: SY='I'; M=-2,-22,-18,-29,-23,-16,-20,-31,-18,29,9,-21,10,-5,-19,-12,-7,-23,-4,23,-23,-21,-9;
+MA   /M: SY='L'; M=-7,-6,-8,-5,-25,-6,0,-19,-14,-13,-8,-1,-8,-12,4,-4,-1,-25,-11,-12,-8,-3,-7;
+MA   /M: SY='F'; M=-12,-20,-24,-34,-19,-29,-24,-28,-20,9,28,-29,9,43,-29,-23,-9,-5,14,4,-29,-24,-9;
+MA   /M: SY='K'; M=-7,9,5,1,-17,10,4,-10,0,-27,-26,15,-11,-28,-13,1,-6,-27,-12,-21,2,7,-9;
+MA   /M: SY='D'; M=-13,-2,8,32,-28,4,21,-6,1,-34,-25,5,-21,-32,-9,0,-8,-31,-16,-27,22,12,-9;
+MA   /M: SY='V'; M=-2,-21,-27,-31,2,-30,-29,-29,-28,18,6,-22,5,8,-30,-10,-2,-26,-6,35,-28,-29,-10;
+MA   /M: SY='L'; M=-8,-23,-26,-33,-14,-21,-24,-33,-24,28,32,-28,16,4,-27,-23,-8,-22,-2,19,-29,-24,-10;
+MA   /M: SY='E'; M=-8,8,6,12,-26,13,22,-16,2,-26,-21,9,-14,-27,-9,0,-2,-28,-13,-23,9,17,-8;
+MA   /M: SY='A'; M=20,-14,-3,-1,-14,-7,-1,-9,-16,-13,-12,-7,-12,-20,-10,9,10,-26,-16,-3,1,-4,-2;
+MA   /M: SY='I'; M=0,-26,-19,-34,-24,-19,-25,-32,-27,36,15,-25,13,-2,-19,-13,-5,-21,-3,25,-25,-25,-8;
+MA   /M: SY='K'; M=3,17,-3,-8,-23,1,0,-12,-12,-21,-21,24,-9,-23,-12,-3,-4,-20,-13,-11,-5,0,-7;
+MA   /M: SY='D'; M=-10,0,6,24,-28,15,24,-15,1,-27,-22,8,-16,-29,-9,-1,-8,-26,-10,-26,17,19,-9;
+MA   /M: SY='Y'; M=-13,-7,-5,-17,-12,-14,-15,-22,5,-10,-8,-13,-6,20,-24,-5,-2,-6,24,-10,-12,-15,-8;
+MA   /M: SY='A'; M=28,-20,-15,-22,-14,-13,-13,-5,-20,-2,8,-16,0,-10,-16,-3,-4,-20,-14,1,-16,-13,-3;
+MA   /M: SY='F'; M=-14,-9,-12,-28,-20,-26,-19,-25,-17,-7,-1,-13,-3,47,-23,-11,-2,-1,16,-4,-20,-19,-8;
+MA   /M: SY='K'; M=-4,0,-5,-3,-22,0,1,-21,-6,-10,-13,8,-5,-20,-14,-4,-2,-26,-9,-2,-4,0,-8;
+MA   /M: SY='T'; M=1,-11,0,-9,-16,-10,-10,-15,-9,-6,-12,-10,-8,-11,-7,8,15,-27,-7,-1,-3,-11,-4;
+MA   /M: SY='S'; M=8,-13,1,-4,-17,-3,0,-4,-13,-19,-28,-10,-19,-22,13,25,11,-35,-22,-13,-5,-3,-2;
+MA   /M: SY='P'; M=-7,-7,2,11,-28,0,13,-13,-8,-25,-28,1,-20,-28,24,4,-3,-33,-22,-25,5,5,-8;
+MA   /M: SY='Y'; M=-11,-9,-14,-12,-27,-5,-1,-25,7,-7,-4,-7,-5,16,-21,-12,-9,9,43,-12,-13,-6,-9;
+MA   /M: SY='P'; M=-7,-15,-8,-7,-31,-9,-2,-18,-17,-17,-25,-9,-17,-24,57,-1,4,-30,-24,-22,-10,-9,-7;
+MA   /I: MI=0; MD=-32; IM=0; DM=-32; I=-5;
+MA   /M: SY='V'; M=-4,-22,-27,-32,-17,-25,-28,-32,-28,34,19,-24,14,1,-27,-15,-4,-25,-5,38,-30,-28,-10;
+MA   /M: SY='I'; M=-9,-28,-20,-39,-27,-21,-29,-38,-29,45,19,-29,18,4,-21,-19,-9,-19,0,29,-30,-29,-9;
+MA   /M: SY='L'; M=-10,-19,-25,-31,-21,-15,-21,-29,-17,25,37,-25,29,5,-25,-25,-10,-20,0,13,-27,-19,-10;
+MA   /M: SY='S'; M=3,-2,9,4,-13,0,1,-4,-8,-22,-27,-5,-19,-21,-10,30,16,-37,-18,-12,3,0,-1;
+MA   /M: SY='L'; M=-13,-20,-25,-34,-20,-25,-24,-30,-19,15,31,-28,15,32,-28,-25,-10,-9,10,8,-29,-23,-10;
+MA   /M: SY='E'; M=-10,4,-1,13,-29,13,39,-20,-4,-26,-16,15,-14,-26,-5,-4,-10,-27,-15,-24,5,26,-10;
+MA   /M: SY='N'; M=-12,-2,23,17,-25,0,3,-13,6,-16,-21,1,-13,-22,-16,-1,-6,-33,-12,-17,20,0,-9;
+MA   /I: MD=-26;
+MA   /M: SY='h'; D=-5; M=-16,-1,7,1,-26,6,7,-18,61,-24,-16,-7,-4,-11,-16,-7,-15,-25,10,-25,1,4,-9;
+MA   /I: MD=-26;
+MA   /M: SY='c'; D=-5; M=-8,-19,-14,-21,53,-18,-20,-23,-17,-11,-7,-19,-8,-8,-29,-9,-6,-29,-10,-1,-15,-20,-13;
+MA   /I: MI=0; MD=-32; IM=0; DM=-32; I=-5;
+MA   /M: SY='S'; M=0,-8,10,3,-9,-4,-2,0,-9,-21,-25,-6,-17,-20,-6,16,7,-32,-18,-15,5,-3,-4;
+MA   /M: SY='P'; M=-7,-8,-11,-15,-24,-12,-11,-19,-13,-3,-7,-7,-5,-2,3,-10,-6,-10,-2,-4,-14,-13,-8;
+MA   /M: SY='D'; M=-7,2,6,17,-25,2,13,-12,-3,-25,-22,8,-16,-25,0,-2,-7,-25,-13,-21,13,7,-8;
+MA   /M: SY='Q'; M=-7,6,2,0,-24,34,15,-15,3,-16,-14,4,-3,-28,-10,1,-5,-21,-10,-22,0,24,-8;
+MA   /M: SY='Q'; M=-10,11,0,1,-25,39,13,-17,5,-18,-16,8,-2,-27,-10,-1,-8,-17,-7,-24,0,26,-8;
+MA   /M: SY='A'; M=1,10,-2,-6,-20,0,-2,-13,2,-15,-14,6,-7,-15,-13,-2,-5,-17,-2,-10,-4,-3,-5;
+MA   /M: SY='K'; M=-7,4,-3,-7,-20,4,-1,-18,-2,-9,-7,8,0,-13,-14,-5,0,-18,-2,-7,-4,1,-7;
+MA   /M: SY='M'; M=-4,-8,-18,-25,-16,-6,-17,-19,-7,15,15,-10,34,-1,-18,-14,-6,-18,-2,12,-18,-12,-8;
+MA   /M: SY='A'; M=26,-12,-6,-14,-11,-7,-8,-6,-16,-6,-9,-4,-7,-15,-10,7,3,-20,-14,1,-8,-8,-1;
+MA   /M: SY='K'; M=-9,17,4,0,-23,13,10,-15,2,-20,-17,16,-7,-21,-11,-2,-6,-21,-9,-19,1,11,-8;
+MA   /M: SY='Y'; M=-12,-9,-10,-16,-23,-8,-13,-22,17,-2,-2,-11,3,11,-16,-11,-6,0,30,-6,-14,-13,-7;
+MA   /M: SY='C'; M=-9,-18,-20,-27,19,-20,-22,-24,-17,2,11,-22,9,9,-27,-16,-7,-21,-4,5,-22,-20,-11;
+MA   /M: SY='R'; M=-11,19,0,0,-24,6,10,-18,0,-18,-15,14,-7,-19,-11,-5,-5,-21,-8,-14,-1,6,-8;
+MA   /M: SY='E'; M=-3,0,3,10,-22,9,24,-13,-3,-21,-16,7,-13,-23,-6,1,-3,-25,-14,-19,8,17,-7;
+MA   /M: SY='I'; M=-1,-18,-17,-26,-18,-14,-19,-25,-21,22,13,-19,9,0,-18,-11,-2,-18,-3,17,-21,-18,-7;
+MA   /M: SY='F'; M=-14,-13,-18,-26,-19,-18,-18,-25,-10,2,14,-20,4,37,-24,-18,-8,1,21,-1,-22,-16,-8;
+MA   /M: SY='G'; M=4,-3,-1,-9,-23,-10,-12,35,-14,-28,-22,-6,-14,-23,-15,0,-12,-17,-21,-20,-8,-12,-7;
+MA   /M: SY='D'; M=-9,-9,3,27,-25,0,17,-7,-5,-25,-16,-2,-17,-26,-3,-2,-8,-28,-16,-21,17,8,-8;
+MA   /M: SY='M'; M=-3,-9,-12,-16,-18,0,-5,-18,-5,2,7,-9,13,-2,-15,-8,-1,-14,0,-1,-12,-2,-6;
+MA   /M: SY='L'; M=-9,-15,-22,-21,-18,-14,-10,-25,-13,10,32,-21,11,9,-23,-22,-8,-13,4,3,-22,-12,-8;
+MA   /M: SY='L'; M=-11,-15,-22,-25,-19,-18,-18,-25,-11,9,22,-21,8,20,-19,-20,-8,-5,15,3,-24,-18,-8;
+MA   /M: SY='T'; M=-8,-1,2,-1,-18,-4,-5,-16,-5,-9,-9,-2,-3,-5,-14,0,6,-18,0,-7,1,-6,-6;
+MA   /M: SY='K'; M=-8,8,0,-2,-23,3,5,-18,-8,-12,-15,10,-7,-19,-5,-3,-2,-22,-11,-10,-1,3,-7;
+MA   /M: SY='P'; M=-2,-17,-15,-11,-27,-11,-5,-12,-18,-11,-16,-11,-12,-20,46,-6,-5,-24,-21,-15,-16,-11,-7;
+MA   /M: SY='L'; M=-4,-11,-13,-16,-16,-8,-10,-21,-15,4,9,-12,3,-5,-11,-6,5,-22,-6,4,-14,-10,-6;
+MA   /M: SY='E'; M=-9,-1,2,17,-22,4,21,-15,-2,-22,-17,2,-16,-20,-3,2,0,-24,-9,-19,11,12,-6;
+MA   /M: SY='G'; M=1,-6,-1,-1,-18,-2,-1,0,-11,-14,-16,-2,-9,-20,-12,4,-1,-23,-14,-8,-1,-2,-5;
+MA   /M: SY='S'; M=-5,-4,5,-2,-17,-3,-5,-12,7,-12,-13,-7,-8,-4,-16,4,1,-19,1,-10,0,-4,-5;
+MA   /M: SY='P'; M=-1,-6,-12,-10,-23,-5,0,-16,-14,-9,-6,-1,-6,-15,13,-6,-3,-22,-13,-10,-11,-4,-7;
+MA   /I: MD=-26;
+MA   /M: SY='l'; D=-5; M=-8,-10,-4,-2,-17,-8,-3,-17,-3,-4,4,-12,-1,-3,-15,-5,0,-21,-3,-4,-2,-6,-6;
+MA   /I: MD=-26;
+MA   /M: SY='k'; D=-5; M=-3,-1,0,3,-16,2,5,-8,-4,-13,-12,2,-8,-14,-8,1,0,-16,-4,-9,1,3,-5;
+MA   /I: MI=0; MD=-32; IM=0; DM=-32; I=-5;
+MA   /M: SY='L'; M=-9,-15,-19,-24,-17,-17,-17,-23,-14,12,32,-23,14,14,-25,-22,-8,-15,2,5,-21,-16,-8;
+MA   /M: SY='P'; M=-8,-18,-17,-10,-21,-10,-2,-18,-18,-18,-25,-10,-17,-25,67,-8,-8,-27,-26,-24,-17,-10,-9;
+MA   /M: SY='S'; M=3,-8,8,-1,-11,-2,-2,-5,-9,-15,-22,-7,-15,-16,-2,24,19,-32,-16,-9,1,-2,-1;
+MA   /M: SY='P'; M=-8,-17,-19,-13,-29,-11,-5,-19,-17,-7,-6,-13,-7,-16,48,-13,-8,-23,-18,-16,-19,-11,-8;
+MA   /M: SY='E'; M=-7,2,0,2,-19,6,12,-14,-3,-20,-17,5,-11,-17,-11,-4,-8,-7,-6,-19,1,9,-9;
+MA   /M: SY='Q'; M=-9,0,4,18,-24,22,24,-14,1,-23,-18,6,-10,-29,-6,1,-7,-25,-13,-23,12,23,-8;
+MA   /M: SY='L'; M=-6,-15,-20,-22,-15,-15,-15,-22,-16,12,33,-23,12,4,-23,-17,-2,-19,-2,6,-21,-15,-7;
+MA   /M: SY='K'; M=-11,27,2,-4,-24,5,1,-16,-4,-18,-15,25,-2,-18,-14,-8,-7,-19,-8,-14,-2,2,-8;
+MA   /M: SY='G'; M=-9,10,1,-5,-25,-3,-5,14,0,-26,-20,1,-11,-17,-17,-4,-12,-15,-7,-21,-5,-6,-8;
+MA   /M: SY='K'; M=-9,30,0,-1,-26,8,7,-17,-7,-26,-25,41,-8,-25,-9,-8,-8,-17,-8,-17,-1,7,-8;
+MA   /M: SY='I'; M=-8,-26,-17,-34,-26,-17,-26,-34,-26,43,17,-26,17,0,-17,-17,-8,-17,0,26,-26,-26,-8;
+MA   /M: SY='L'; M=-8,-18,-24,-27,-17,-19,-19,-27,-18,18,35,-25,15,13,-25,-23,-8,-15,1,11,-26,-19,-8;
+MA   /M: SY='L'; M=-7,-20,-22,-29,-19,-18,-22,-29,-22,28,28,-24,16,4,-22,-20,-7,-18,-1,20,-26,-22,-8;
+MA   /M: SY='K'; M=-6,14,-3,-5,-21,1,1,-16,-10,-17,-18,26,-6,-14,-11,-5,-5,-16,-6,-8,-4,1,-7;
+MA   /M: SY='N'; M=-4,-6,14,0,-16,-6,-7,3,2,-13,-17,-6,-9,-15,-16,3,0,-26,-12,-10,5,-7,-7;
+MA   /M: SY='K'; M=-9,28,0,-1,-23,9,6,-15,-5,-22,-21,34,-7,-22,-9,-7,-7,-15,-7,-15,-1,7,-7;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=21(21); /POSITIVE=21(21); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=1;
+CC   /TAXO-RANGE=??EP?; /MAX-REPEAT=1;
+DR   P09194, PHLC_TRYBB, T; P14262, PLC_BACCE , T; P08954, PLC_BACTU , T;
+DR   P34024, PLC_LISMO , T; P45723, PLC_STAAU , T; P10894, PIP1_BOVIN, T;
+DR   P10687, PIP1_RAT  , T; Q00722, PIP2_HUMAN, T; Q01970, PIP3_HUMAN, T;
+DR   P08487, PIP4_BOVIN, T; P19174, PIP4_HUMAN, T; P10686, PIP4_RAT  , T;
+DR   P16885, PIP5_HUMAN, T; P24135, PIP5_RAT  , T; P10895, PIP6_BOVIN, T;
+DR   P10688, PIP6_RAT  , T; Q02158, PIPA_DICDI, T; P13217, PIPA_DROME, T;
+DR   P25455, PIP1_DROME, T; P40977, PIP1_SCHPO, T; P32383, PIP1_YEAST, T;
+DR   P21671, PIP7_BOVIN, P;
+DO   PDOC50007;
+//
+ID   PIPLC_Y_DOMAIN; MATRIX.
+AC   PS50008;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Phosphatidylinositol-specific phospholipase Y-box domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=117;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=112;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=-1.2648; R2=0.0161; TEXT='NScore';
+MA   /CUT_OFF: LEVEL=1; SCORE=606; N_SCORE=8.5; MODE=1;
+MA   /CUT_OFF: LEVEL=0; SCORE=544; N_SCORE=7.5; MODE=1;
+MA   /DEFAULT: D=-20; I=-20; B1=0; E1=0; MI=-105; MD=-105; IM=-105; DM=-105;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='L'; M=-10,-28,-20,-30,-20,7,-28,-16,21,-25,42,29,-27,-27,-15,-18,-27,-10,11,-20,0,-18;
+MA   /M: SY='S'; M=8,0,-12,0,2,-22,-2,-8,-20,-8,-29,-18,9,-10,7,-8,36,17,-12,-38,-19,4;
+MA   /M: SY='B'; M=2,15,-20,15,10,-26,-9,-5,-22,-2,-22,-17,12,-10,6,-7,11,5,-18,-32,-18,8;
+MA   /M: SY='L'; M=-10,-27,-20,-30,-20,7,-27,-14,20,-24,42,31,-27,-27,-14,-17,-27,-10,10,-20,0,-17;
+MA   /M: SY='V'; M=2,-28,-14,-31,-27,-1,-29,-28,29,-22,13,11,-26,-26,-26,-22,-12,-3,39,-26,-8,-27;
+MA   /M: SY='N'; M=-5,0,-20,-8,-12,-13,-16,-12,4,-12,-12,-6,11,-10,-11,-13,3,0,1,-33,-15,-13;
+MA   /M: SY='Y'; M=-17,-20,-30,-20,-21,22,-21,13,0,-12,-1,-1,-18,-28,-12,-12,-18,-11,-9,22,64,-21;
+MA   /M: SY='C'; M=4,-22,26,-30,-24,-9,-26,-26,6,-25,4,0,-20,-26,-22,-26,-11,-7,9,-30,-15,-24;
+MA   /M: SY='Q'; M=-12,-4,-28,-4,10,-28,-21,9,-21,17,-19,-4,-2,-14,26,23,-6,-10,-19,-22,-8,16;
+MA   /M: SY='P'; M=3,-10,-25,-7,-3,-25,-3,-17,-21,-11,-28,-19,-6,32,-7,-16,11,3,-19,-32,-25,-7;
+MA   /M: SY='V'; M=-2,-25,-17,-28,-25,-2,-29,-17,24,-21,11,10,-22,-25,-22,-20,-11,-2,30,-26,-5,-25;
+MA   /M: SY='K'; M=-11,-5,-32,-3,4,-29,-13,9,-28,18,-27,-10,-2,8,7,9,-8,-13,-25,-24,-10,4;
+MA   /M: SY='F'; M=-20,-29,-21,-39,-29,77,-30,-17,0,-29,9,0,-20,-30,-38,-19,-20,-10,-1,11,33,-29;
+MA   /M: SY='R'; M=-12,2,-19,4,4,-27,-12,-6,-27,12,-22,-13,1,-16,7,19,-3,-6,-19,-27,-15,4;
+MA   /I: MD=-29;
+MA   /M: SY='N'; M=-1,9,-19,7,1,-23,13,-7,-25,-7,-26,-19,16,-13,-3,-9,16,2,-20,-31,-21,-1; D=-6;
+MA   /I: I=-7; MI=-29; MD=-29; IM=-29; DM=-29;
+MA   /M: SY='F'; M=-16,-23,-20,-30,-20,56,-19,-17,-6,-24,4,-3,-15,-25,-31,-17,-15,-10,-5,4,19,-21; D=-6;
+MA   /I: DM=-29;
+MA   /M: SY='E'; M=-6,9,-24,13,18,-26,-12,-1,-25,2,-26,-19,8,1,5,-4,10,1,-22,-34,-18,11;
+MA   /M: SY='L'; M=0,-13,-19,-18,-12,-5,-20,-11,2,-13,5,2,-9,-19,-9,-12,-5,1,2,-24,-5,-11;
+MA   /M: SY='P'; M=11,-9,-21,-9,-5,-23,-2,-9,-19,-11,-23,-15,-5,15,-7,-15,11,3,-15,-29,-20,-8;
+MA   /M: SY='E'; M=-5,-5,-27,-5,10,-22,-12,-11,-13,6,-13,-4,-5,-11,4,-1,-4,-6,-13,-24,-13,6;
+MA   /M: SY='E'; M=-6,3,-25,6,25,-23,-17,-4,-24,12,-22,-15,0,-7,11,4,5,1,-20,-25,-10,18;
+MA   /M: SY='K'; M=-10,2,-26,-2,1,-22,-15,-6,-20,21,-24,-11,10,-11,4,21,-1,-4,-17,-27,-13,1;
+MA   /I: I=-7; MI=0; MD=-23; IM=0;
+MA   /M: SY='N'; M=-4,13,-19,10,4,-19,-7,2,-15,0,-18,-11,16,-4,8,-3,2,-4,-19,-21,-9,5; D=-6;
+MA   /I: DM=-23;
+MA   /M: SY='T'; M=-1,-3,-12,-7,-7,-19,-18,-9,-14,-3,-15,-10,-1,-8,-6,-1,-1,2,-10,-28,-13,-8;
+MA   /M: SY='Y'; M=-8,-18,-14,-23,-19,19,-24,0,-1,-19,-3,-2,-12,-24,-16,-16,-7,-5,-3,-6,23,-19;
+MA   /M: SY='Y'; M=-11,-16,-27,-18,-14,12,-22,11,-10,-6,-8,-5,-13,-24,-7,1,-11,-9,-13,14,39,-14;
+MA   /M: SY='E'; M=-13,14,-28,19,30,-27,-17,16,-27,6,-22,-16,10,-9,10,0,-2,-10,-26,-32,-12,19;
+MA   /M: SY='M'; M=-10,-23,-11,-33,-24,-2,-28,-13,26,-18,16,40,-20,-22,-9,-18,-19,-10,15,-23,-3,-18;
+MA   /M: SY='S'; M=1,-9,2,-13,-10,-3,-12,-6,-19,-13,-19,-14,-1,-19,-10,-8,14,4,-10,-29,-9,-10;
+MA   /M: SY='S'; M=10,0,-10,0,0,-20,0,-10,-20,-10,-30,-20,10,-10,0,-10,40,20,-10,-40,-20,0;
+MA   /M: SY='F'; M=-18,-30,-20,-38,-28,65,-30,-19,4,-29,17,6,-22,-30,-35,-20,-22,-10,2,4,24,-28;
+MA   /M: SY='S'; M=3,-5,-14,-8,-11,-14,-13,-16,-3,-12,-14,-9,-1,-10,-12,-14,11,7,7,-34,-17,-12;
+MA   /M: SY='E'; M=-10,9,-30,18,57,-28,-20,1,-29,9,-19,-19,-1,-1,19,0,-1,-10,-29,-28,-16,38;
+MA   /M: SY='T'; M=-4,-1,-18,-5,-1,-16,-11,-11,-17,-1,-14,-11,3,-14,-3,5,9,15,-11,-29,-13,-3;
+MA   /I: MD=-29;
+MA   /M: SY='K'; M=-8,-2,-26,-2,10,-26,-18,-7,-23,33,-23,-8,-2,-10,11,24,-7,-8,-16,-19,-10,10; D=-6;
+MA   /I: I=-7; MI=0; IM=0; DM=-29;
+MA   /M: SY='A'; M=25,-10,-15,-15,-6,-19,0,-18,-11,-11,-8,-8,-10,-13,-8,-16,4,0,-3,-22,-18,-7;
+MA   /M: SY='Y'; M=-10,-6,-24,-4,-3,-8,-22,-8,-4,-6,2,0,-9,-18,-6,-8,-9,-5,-6,-19,3,-5;
+MA   /M: SY='R'; M=-9,4,-25,2,7,-24,-11,-3,-23,14,-22,-8,7,-13,9,15,1,-4,-19,-27,-14,7;
+MA   /M: SY='L'; M=-11,-23,-26,-25,-16,2,-31,-13,16,-14,20,12,-20,-24,-8,-13,-21,-10,5,-13,10,-14;
+MA   /M: SY='L'; M=-2,-20,-19,-21,-17,-4,-25,-12,11,-16,16,8,-19,-24,-16,-15,-15,-7,13,-24,-5,-17;
+MA   /M: SY='R'; M=-10,8,-26,8,12,-28,-9,-2,-27,13,-24,-14,10,-12,13,14,1,-4,-24,-27,-15,11;
+MA   /M: SY='K'; M=-7,4,-25,6,19,-28,-18,-7,-26,21,-24,-13,2,-8,13,10,3,1,-20,-26,-14,16;
+MA   /M: SY='A'; M=7,-4,-20,-6,0,-19,-6,5,-21,0,-20,-12,2,-14,0,2,6,-3,-15,-24,-8,-2;
+MA   /I: MD=-25;
+MA   /M: SY='P'; M=-3,-14,-28,-12,-8,-22,6,-16,-18,-9,-17,-8,-11,20,-10,-14,-5,-10,-19,-24,-21,-11; D=-5;
+MA   /I: I=-7; MI=0; MD=-25; IM=0; DM=-25;
+MA   /M: SY='M'; M=-8,-8,-23,-11,-5,-12,-20,-12,0,-4,-5,1,-5,-4,-6,-4,-8,-4,-1,-26,-12,-7; D=-5;
+MA   /I: DM=-25;
+MA   /M: SY='D'; M=-11,19,-26,28,22,-31,-8,-2,-31,6,-25,-20,10,-9,9,2,3,-7,-25,-31,-18,15; D=-5;
+MA   /I: DM=-25;
+MA   /M: SY='F'; M=-14,-30,-21,-36,-27,42,-31,-22,15,-29,24,10,-24,-29,-30,-21,-23,-9,10,-6,14,-27;
+MA   /M: SY='V'; M=-3,-23,-15,-22,-23,-2,-28,-25,22,-21,12,8,-23,-26,-23,-20,-10,-2,32,-29,-9,-24;
+MA   /M: SY='R'; M=-11,9,-27,8,13,-27,-14,-1,-27,17,-26,-15,11,-7,12,18,1,-5,-24,-28,-16,11;
+MA   /M: SY='Y'; M=-16,-17,-26,-20,-17,28,-26,27,-8,-15,-3,-1,-12,-26,-13,-11,-16,-12,-12,7,46,-17;
+MA   /M: SY='N'; M=-7,29,-17,12,-2,-18,-4,2,-18,-3,-26,-18,44,-17,-2,-3,14,12,-22,-38,-18,-2;
+MA   /M: SY='Q'; M=-7,-6,-26,-6,6,-26,-20,-5,-17,18,-16,-4,-4,-14,21,17,-5,-7,-15,-22,-10,13;
+MA   /M: SY='R'; M=-14,-4,-28,-6,1,-21,-16,3,-24,22,-18,-6,3,-18,7,36,-8,-9,-19,-23,-9,1;
+MA   /M: SY='Q'; M=-13,-1,-24,-5,1,-16,-14,15,-20,3,-18,-6,4,-18,18,8,-5,-10,-24,-16,4,8;
+MA   /M: SY='L'; M=-11,-29,-20,-31,-21,16,-29,-18,18,-28,42,23,-28,-29,-19,-19,-28,-10,9,-17,3,-20;
+MA   /M: SY='S'; M=0,-12,1,-14,-11,-10,-15,-15,-6,-17,-3,-3,-7,-19,-10,-15,10,10,-1,-34,-14,-11;
+MA   /M: SY='R'; M=-20,-10,-30,-10,0,-20,-20,0,-30,30,-20,-10,0,-20,10,70,-10,-10,-20,-20,-10,0;
+MA   /M: SY='I'; M=-5,-27,-21,-33,-28,-1,-34,-29,37,-24,13,13,-22,-23,-23,-24,-12,0,34,-25,-5,-28;
+MA   /M: SY='Y'; M=-20,-19,-30,-20,-18,27,-29,16,-3,-7,-2,-1,-18,-29,-9,-3,-19,-10,-11,24,69,-18;
+MA   /M: SY='P'; M=-10,-20,-40,-10,0,-30,-20,-20,-20,-10,-30,-20,-20,90,-10,-20,-10,-10,-30,-30,-30,-10;
+MA   /M: SY='K'; M=-2,0,-26,-2,4,-27,-9,-1,-26,22,-26,-10,3,-12,9,15,-1,-7,-20,-23,-12,6;
+MA   /M: SY='G'; M=0,-12,-27,-12,-16,-26,41,-19,-30,-14,-24,-16,-4,-13,-16,-11,-1,-13,-21,-22,-25,-17;
+MA   /M: SY='T'; M=-5,-10,-20,-14,-8,-11,-17,-15,-9,-6,-4,-2,-9,-16,-2,-7,0,13,-7,-12,-6,-4;
+MA   /M: SY='R'; M=-19,-12,-29,-12,-2,-17,-21,-2,-25,24,-13,-7,-3,-21,7,61,-12,-10,-17,-20,-9,-2;
+MA   /M: SY='V'; M=-4,-24,-17,-29,-24,12,-28,-21,17,-21,14,9,-22,-25,-23,-19,-12,1,21,-17,4,-24;
+MA   /M: SY='D'; M=-15,30,-28,42,9,-32,-9,-7,-28,-2,-23,-21,12,-12,-3,-10,-1,-5,-21,-34,-17,2;
+MA   /M: SY='S'; M=7,-2,-12,-2,-2,-15,-3,-7,-18,-10,-27,-18,7,-12,-1,-10,34,17,-10,-33,-10,-2;
+MA   /M: SY='S'; M=12,1,-10,-2,-2,-19,-1,-11,-18,-10,-27,-18,10,-10,-2,-10,34,19,-9,-37,-19,-2;
+MA   /M: SY='N'; M=-10,34,-22,17,0,-21,-2,7,-20,-1,-30,-20,52,-9,-1,-2,8,-1,-30,-39,-21,-1;
+MA   /M: SY='Y'; M=-20,-23,-27,-25,-22,40,-30,9,1,-15,5,1,-20,-30,-17,-13,-20,-10,-7,23,65,-22;
+MA   /M: SY='B'; M=-10,18,-22,16,1,-21,-10,-1,-16,1,-18,-3,17,-15,0,-4,2,-3,-15,-33,-14,0;
+MA   /M: SY='P'; M=-10,-20,-40,-10,0,-30,-20,-20,-20,-10,-30,-20,-20,90,-10,-20,-10,-10,-30,-30,-30,-10;
+MA   /M: SY='Q'; M=-10,-13,-25,-15,-2,-15,-25,-1,0,-7,1,9,-11,-18,20,-4,-10,-9,-6,-20,-4,9;
+MA   /M: SY='P'; M=-10,-16,-26,-12,-4,-15,-24,-16,-2,-7,-5,-2,-16,6,-9,-3,-11,-8,0,-27,-14,-9;
+MA   /M: SY='F'; M=-7,-20,-22,-27,-22,22,-7,-8,-5,-20,3,8,-15,-24,-20,-16,-14,-11,-5,-5,11,-20;
+MA   /M: SY='W'; M=-20,-40,-50,-40,-30,10,-20,-30,-20,-20,-20,-20,-40,-30,-20,-20,-40,-30,-30,150,30,-20;
+MA   /M: SY='N'; M=-8,11,-21,-1,-6,-14,-11,-2,-7,-2,-14,-4,23,-19,-2,0,2,0,-13,-32,-13,-5;
+MA   /M: SY='A'; M=10,-13,4,-19,-15,-17,-10,4,-13,-17,-9,-6,-9,-21,-12,-18,-3,-8,-6,-28,-11,-15;
+MA   /M: SY='G'; M=0,-10,-30,-10,-20,-30,70,-20,-40,-20,-30,-20,0,-20,-20,-20,0,-20,-30,-20,-30,-20;
+MA   /M: SY='C'; M=7,-17,58,-24,-22,-17,-20,-25,-16,-22,-15,-14,-16,-28,-22,-24,0,-3,0,-40,-24,-22;
+MA   /M: SY='Q'; M=-10,0,-30,0,19,-39,-20,14,-20,9,-20,0,0,-10,58,10,0,-10,-30,-20,-9,38;
+MA   /M: SY='M'; M=-10,-24,-21,-31,-21,3,-25,-10,24,-18,29,43,-23,-23,-8,-15,-23,-10,13,-20,0,-15;
+MA   /M: SY='V'; M=2,-29,-12,-30,-29,-1,-29,-29,30,-20,10,10,-28,-28,-28,-21,-10,-1,45,-28,-10,-29;
+MA   /M: SY='A'; M=46,-9,-10,-18,-9,-20,0,-19,-11,-10,-12,-11,-8,-10,-9,-19,13,2,-1,-22,-20,-9;
+MA   /M: SY='L'; M=-11,-27,-19,-30,-21,16,-28,-18,16,-27,38,19,-26,-28,-20,-18,-24,-6,8,-17,3,-20;
+MA   /M: SY='N'; M=-8,36,-19,18,0,-20,0,8,-20,-1,-30,-20,55,-19,0,-1,13,2,-28,-40,-20,0;
+MA   /M: SY='F'; M=-18,-25,-26,-31,-22,37,-25,-11,-4,-16,2,6,-20,-26,-18,-7,-21,-13,-7,21,23,-17;
+MA   /M: SY='Q'; M=-10,0,-30,0,19,-39,-20,8,-21,14,-21,-1,0,-10,55,12,-1,-10,-29,-20,-10,37;
+MA   /M: SY='T'; M=0,0,-9,-7,-4,-15,-11,-17,-16,-9,-15,-13,0,-11,-8,-10,17,34,-7,-31,-14,-6;
+MA   /M: SY='P'; M=-6,-5,-26,-4,-6,-13,-12,0,-15,-11,-15,-9,-4,8,-8,-13,-3,-6,-16,-23,-5,-9;
+MA   /M: SY='D'; M=-11,25,-29,36,6,-35,13,-7,-38,-1,-30,-25,12,-13,-5,-9,1,-11,-28,-32,-22,1;
+MA   /M: SY='E'; M=-8,-11,-25,-10,3,-16,-23,-14,-8,3,-5,-4,-10,-5,-3,2,-8,-4,-8,-25,-12,-1;
+MA   /M: SY='P'; M=2,-11,-28,-10,-1,-20,-4,-11,-19,-3,-20,-10,-10,15,-4,-11,-3,-8,-19,-19,-11,-4;
+MA   /M: SY='M'; M=-10,-21,-21,-28,-17,0,-23,-5,17,-14,26,44,-21,-22,-2,-11,-21,-10,7,-20,-1,-9;
+MA   /M: SY='Q'; M=-14,-3,-31,0,4,-25,-19,-4,-24,-1,-22,-11,-8,-17,25,-3,-11,-16,-29,23,-1,16;
+MA   /M: SY='L'; M=-9,-27,-22,-31,-22,3,-30,-19,27,-24,31,25,-25,-25,-15,-20,-23,-9,18,-21,-1,-20;
+MA   /M: SY='N'; M=-11,18,-16,3,-7,-12,-9,11,-11,-5,-16,0,31,-22,-1,-4,-1,-4,-19,-30,-6,-5;
+MA   /M: SY='Q'; M=-11,1,-26,3,7,-26,-20,6,-13,-2,-7,2,-3,-15,24,-2,-6,-7,-18,-25,-8,15;
+MA   /M: SY='G'; M=14,-8,-24,-11,-16,-27,47,-19,-31,-17,-24,-17,-2,-17,-17,-20,3,-14,-21,-21,-27,-16;
+MA   /M: SY='M'; M=-10,-21,-19,-26,-17,-3,-24,-12,10,-7,14,26,-20,-23,-8,-5,-20,-10,6,-13,-2,-13;
+MA   /M: SY='F'; M=-20,-30,-20,-39,-30,78,-30,-19,0,-29,10,0,-20,-30,-39,-20,-20,-10,0,11,32,-30;
+MA   /M: SY='E'; M=-10,-7,-26,-5,12,-19,-20,-5,-13,5,-7,-3,-5,-14,11,11,-4,-6,-14,-25,-11,10;
+MA   /M: SY='A'; M=7,-6,-22,-8,-8,-7,-13,-7,-8,-11,-6,-6,-9,-17,-5,-14,-4,-6,-7,-11,7,-8;
+MA   /M: SY='N'; M=-10,33,-21,18,-1,-20,2,5,-20,-3,-25,-18,48,-20,-3,-3,6,-3,-27,-37,-19,-2;
+MA   /M: SY='G'; M=-1,-7,-30,-5,-15,-30,53,-18,-37,-15,-29,-20,0,-12,-16,-15,-1,-18,-29,-22,-28,-16;
+MA   /M: SY='G'; M=-5,-9,-24,-9,-9,-26,22,0,-32,-6,-25,-14,-1,-12,-6,1,-2,-14,-25,-24,-18,-9;
+MA   /I: I=-5; MI=0; IM=0; MD=-25; DM=-25;
+MA   /M: SY='C'; M=-3,-12,68,-19,-19,-19,-21,-23,-25,-22,-21,-19,-9,-28,-19,-22,7,6,-9,-45,-25,-19;
+MA   /M: SY='G'; M=0,-10,-30,-10,-20,-30,70,-20,-40,-20,-30,-20,0,-20,-20,-20,0,-20,-30,-20,-30,-20;
+MA   /M: SY='Y'; M=-20,-20,-30,-20,-20,30,-30,20,0,-10,0,0,-20,-30,-10,-10,-20,-10,-10,30,80,-20;
+MA   /M: SY='V'; M=-4,-29,-15,-30,-26,3,-30,-26,26,-22,23,13,-29,-29,-25,-18,-17,-4,34,-26,-6,-26;
+MA   /M: SY='L'; M=-10,-23,-22,-23,-13,1,-28,-18,9,-12,32,13,-23,-26,-13,-9,-26,-10,3,-20,-2,-13;
+MA   /M: SY='K'; M=-10,0,-30,0,11,-31,-20,-7,-29,44,-28,-9,0,-10,16,30,-9,-10,-21,-20,-10,13;
+MA   /M: SY='P'; M=-10,-19,-40,-10,0,-30,-20,-16,-20,-10,-30,-19,-19,86,-9,-19,-10,-10,-30,-30,-28,-10;
+MA   /M: SY='D'; M=-7,15,-28,24,22,-31,-13,-6,-29,4,-25,-21,4,5,4,-4,3,-6,-24,-32,-20,12;
+MA   /M: SY='F'; M=-13,-23,-3,-30,-24,33,-28,-20,0,-21,2,-2,-17,-27,-27,-17,-13,-5,3,-10,11,-24;
+MA   /M: SY='M'; M=-10,-23,-21,-28,-17,2,-25,-9,17,-18,31,38,-23,-24,-5,-13,-23,-10,7,-20,-1,-11;
+MA   /M: SY='R'; M=-20,-10,-30,-10,0,-20,-20,0,-30,30,-20,-10,0,-20,10,70,-10,-10,-20,-20,-10,0;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=17(17); /POSITIVE=17(17); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=0;
+CC   /TAXO-RANGE=??E??; /MAX-REPEAT=1;
+DR   P10894, PIP1_BOVIN, T; P10687, PIP1_RAT  , T; Q00722, PIP2_HUMAN, T;
+DR   Q01970, PIP3_HUMAN, T; P08487, PIP4_BOVIN, T; P19174, PIP4_HUMAN, T;
+DR   P10686, PIP4_RAT  , T; P16885, PIP5_HUMAN, T; P24135, PIP5_RAT  , T;
+DR   P10895, PIP6_BOVIN, T; P10688, PIP6_RAT  , T; P21671, PIP7_BOVIN, T;
+DR   Q02158, PIPA_DICDI, T; P13217, PIPA_DROME, T; P25455, PIP1_DROME, T;
+DR   P40977, PIP1_SCHPO, T; P32383, PIP1_YEAST, T;
+DO   PDOC50007;
+//
+ID   GLOBIN; MATRIX.
+AC   PS01033;
+DT   JUN-1994 (CREATED); JUN-1994 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Globins profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=154;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=1; N2=154;
+MA   /NORMALIZATION: MODE=1; FUNCTION=GLE_ZSCORE;
+MA    R1=200.0; R2=-0.0041; R3=0.9030; R4=1.011; R5=0.149;
+MA   /CUT_OFF: LEVEL=0; SCORE=0; N_SCORE=7.0; MODE=1;
+MA   /DEFAULT: MI=-210; MD=-210; IM=0; DM=0; I=-20; D=-20;
+MA   /I: MI=-59; MD=-59; I=-6;
+MA   /M: SY='A'; D=-6; M=7,-7,-8,-10,-10,-8,3,-12,-4,-8,-6,-4,-6,-10,-10,-10,3,4,3,-14,-10,-10;
+MA   /I: MI=-59; MD=-59; I=-6;
+MA   /M: SY='H'; D=-6; M=1,-3,-21,0,-6,-20,0,2,-16,-10,-16,-10,-4,0,-8,-12,-2,-9,-11,-23,-13,-8;
+MA   /M: SY='L'; M=-10,-27,-2,-30,-21,4,-28,-18,13,-26,36,22,-27,-30,-18,-20,-26,-10,7,-24,-4,-20;
+MA   /M: SY='T'; M=2,-7,-14,-9,-9,-13,-2,-16,-13,-15,-10,-10,-1,-15,-9,-13,17,18,-6,-31,-15,-9;
+MA   /M: SY='P'; M=-5,8,-30,15,10,-28,-17,-12,-18,-6,-19,-17,-3,16,-4,-15,-4,-9,-18,-31,-20,1;
+MA   /M: SY='A'; M=10,-7,-21,-8,4,-23,1,-10,-17,-8,-11,-9,-5,-13,5,-10,4,-5,-14,-24,-17,4;
+MA   /M: SY='E'; M=-11,10,-30,17,37,-36,-19,5,-27,9,-21,-12,2,-6,36,3,0,-10,-30,-27,-15,36;
+MA   /M: SY='K'; M=-2,-9,-27,-12,-4,-18,-17,-15,-22,17,-21,-12,-8,-14,-1,13,-6,-1,-15,4,-5,-2;
+MA   /M: SY='T'; M=1,-5,-21,-15,-10,-14,-20,-14,5,-12,-5,-1,1,-14,-1,-13,2,8,0,-25,-10,-7;
+MA   /M: SY='N'; M=-2,1,-21,-6,-5,-14,-14,-8,-9,3,-3,-4,7,-19,-5,-1,-7,-6,-11,-26,-11,-5;
+MA   /M: SY='V'; M=-3,-30,-16,-33,-30,0,-33,-30,36,-23,13,13,-27,-27,-27,-23,-13,-3,44,-27,-7,-30;
+MA   /M: SY='K'; M=-10,-11,-26,-14,-6,-14,-25,-15,-5,13,-5,0,-8,-16,-3,12,-11,-2,-4,-21,-7,-6;
+MA   /M: SY='S'; M=4,5,-18,-1,2,-23,-9,-7,-19,5,-24,-13,11,-12,7,0,15,10,-15,-30,-16,4;
+MA   /M: SY='A'; M=20,-13,-14,-17,-9,-15,-11,-16,-2,-12,-3,-3,-12,-16,-4,-15,4,0,4,-24,-14,-7;
+MA   /M: SY='W'; M=-16,-33,-43,-35,-26,6,-20,-28,-18,-18,-18,-18,-33,-26,-18,-18,-29,-16,-25,118,23,-18;
+MA   /M: SY='G'; M=12,-11,-21,-12,-7,-22,21,-19,-18,-13,-16,-12,-8,-16,-13,-17,1,-10,-8,-23,-22,-10;
+MA   /M: SY='P'; M=-10,-5,-33,0,15,-31,-20,-9,-26,20,-27,-13,-6,23,12,7,-7,-10,-26,-25,-18,12;
+MA   /M: SY='V'; M=-3,-30,-11,-31,-30,12,-30,-29,26,-21,10,9,-29,-30,-31,-20,-11,-1,43,-24,-4,-30;
+MA   /I: MI=-55; MD=-55; I=-5;
+MA   /M: SY='L'; D=-5; M=-2,-5,-4,-5,-4,2,-5,-4,4,-5,9,4,-5,-5,-4,-4,-5,-2,2,-4,0,-4;
+MA   /I: MI=-55; MD=-55; I=-5;
+MA   /M: SY='K'; D=-5; M=-7,3,-20,2,6,-12,-2,0,-18,7,-16,-10,6,-11,1,2,-3,-7,-17,-12,0,3;
+MA   /I: MI=-55; MD=-55; I=-5;
+MA   /M: SY='A'; D=-5; M=18,-5,-15,-7,4,-12,-7,-7,-12,-5,-12,-10,-5,-9,-2,-11,7,0,-8,-15,-4,0;
+MA   /M: SY='H'; M=-11,19,-22,15,2,-22,-10,28,-25,-6,-24,-14,24,-16,2,-4,8,2,-23,-36,-7,0;
+MA   /M: SY='V'; M=0,-23,-22,-27,-24,-4,-12,-20,15,-20,2,4,-18,-23,-20,-22,-10,-8,16,-16,1,-24;
+MA   /M: SY='P'; M=-7,-5,-29,2,1,-26,2,-16,-20,-10,-22,-16,-8,15,-11,-16,-5,-11,-16,-29,-24,-6;
+MA   /M: SY='E'; M=-5,2,-24,3,19,-24,-6,-11,-25,5,-20,-15,0,-8,3,-2,5,7,-19,-27,-17,11;
+MA   /M: SY='H'; M=-7,-12,-22,-14,-12,-8,-21,20,-1,-15,-9,0,-4,-20,-6,-12,0,-4,-1,-24,9,-12;
+MA   /M: SY='G'; M=-3,-7,-24,-10,-14,-22,29,-17,-29,-10,-22,-15,0,-17,-13,-5,5,4,-19,-23,-21,-14;
+MA   /M: SY='T'; M=2,-7,-19,-11,-8,-19,-6,1,-13,-10,-13,-6,-4,-16,0,-9,4,8,-6,-26,-10,-5;
+MA   /M: SY='E'; M=-12,16,-26,24,28,-28,-17,-4,-29,7,-21,-19,5,-7,8,6,2,1,-23,-31,-17,17;
+MA   /M: SY='F'; M=3,-25,-17,-33,-25,31,-24,-23,9,-23,6,2,-19,-23,-28,-21,-11,-6,12,-8,7,-25;
+MA   /M: SY='L'; M=-5,-26,-20,-28,-20,20,-26,-13,10,-24,28,10,-24,-27,-20,-18,-22,-9,4,-7,16,-20;
+MA   /M: SY='I'; M=-7,-17,-27,-20,-11,-13,-17,-22,11,-8,-2,3,-13,-17,-11,-13,-12,-10,8,-23,-10,-13;
+MA   /M: SY='R'; M=-15,5,-27,4,1,-20,-17,-3,-22,15,-14,-10,9,-19,3,29,-8,-8,-19,-26,-12,0;
+MA   /M: SY='L'; M=-9,-29,-17,-31,-24,16,-29,-20,20,-25,30,19,-27,-29,-23,-19,-22,-7,20,-19,1,-23;
+MA   /M: SY='F'; M=-17,-30,-20,-37,-27,60,-30,-20,6,-30,21,6,-23,-30,-34,-20,-23,-10,3,1,21,-27;
+MA   /M: SY='E'; M=2,-3,-20,-7,2,-14,-16,-12,-10,-2,-2,-5,-2,-15,-4,-5,-4,1,-9,-25,-12,-1;
+MA   /M: SY='S'; M=-2,-5,-21,-9,-10,-18,-3,-15,-8,-4,-17,-8,3,-17,-8,-8,5,-1,-3,-29,-15,-10;
+MA   /M: SY='H'; M=-7,-12,-22,-17,-13,13,-21,25,-13,-15,-7,-3,-6,-21,-11,-11,-7,-4,-11,-10,21,-13;
+MA   /M: SY='P'; M=-11,-21,-37,-14,-4,-16,-21,-20,-17,-13,-25,-17,-20,74,-14,-20,-11,-10,-26,-25,-22,-13;
+MA   /M: SY='E'; M=5,-6,-25,-7,12,-18,-14,-12,-21,0,-16,-15,-8,-11,1,0,-2,-3,-17,-1,-11,6;
+MA   /M: SY='T'; M=14,-8,-10,-16,-14,-11,-16,-22,-3,-12,-6,-6,-8,-14,-14,-15,12,27,9,-27,-13,-14;
+MA   /M: SY='R'; M=-12,-1,-27,-4,5,-24,-19,-2,-18,17,-13,-4,3,-16,18,20,-8,-9,-19,-23,-10,11;
+MA   /M: SY='P'; M=-12,3,-31,10,19,-28,-19,-9,-26,3,-23,-19,-3,22,3,1,-2,-3,-25,-30,-20,9;
+MA   /M: SY='F'; M=-15,-14,-24,-14,-13,19,-26,-11,-3,-11,10,1,-15,-24,-17,-10,-19,-10,-5,-8,14,-14;
+MA   /M: SY='F'; M=-20,-27,-21,-36,-26,67,-29,-17,-4,-22,6,-1,-17,-29,-33,-8,-19,-10,-3,6,25,-26;
+MA   /M: SY='D'; M=-8,13,-27,23,15,-31,-11,-8,-28,-4,-29,-23,4,17,0,-11,8,-2,-24,-36,-23,6;
+MA   /M: SY='M'; M=-10,-12,-23,-15,-8,-1,-20,2,-9,2,-4,7,-8,-18,-4,0,-9,-7,-8,-20,1,-6;
+MA   /M: SY='F'; M=-15,-26,-22,-33,-27,50,-12,-20,-4,-28,9,-1,-18,-28,-34,-20,-18,-12,-4,0,15,-27;
+MA   /I: MI=-42; MD=-42; I=-4;
+MA   /M: SY='K'; D=-4; M=-9,2,-25,-1,2,-23,-3,-6,-27,24,-25,-12,8,-13,3,23,-5,-9,-20,-20,-13,2;
+MA   /I: MI=-42; MD=-42; I=-4;
+MA   /M: SY='G'; D=-4; M=-8,3,-21,6,-3,-20,13,10,-25,-3,-18,-11,4,-13,-3,2,-3,-11,-20,-18,-9,-4;
+MA   /I: MI=-42; MD=-42; I=-4;
+MA   /M: SY='L'; D=-4; M=-4,-17,-11,-18,-14,3,-20,-15,11,-17,21,8,-17,-18,-14,-13,-11,3,11,-17,-3,-14;
+MA   /I: MI=-42; MD=-42; I=-4;
+MA   /M: SY='S'; D=-4; M=0,5,-11,1,0,-14,-6,-6,-14,4,-18,-11,11,-8,0,0,14,11,-10,-24,-11,0;
+MA   /I: MI=-42; MD=-42; I=-4;
+MA   /M: SY='S'; D=-4; M=3,-1,-8,-3,-4,-11,6,-8,-12,-7,-14,-10,3,-7,-4,-7,14,10,-7,-18,-11,-4;
+MA   /I: MI=-42; MD=-42; I=-4;
+MA   /M: SY='P'; D=-4; M=4,-3,-12,-1,8,-12,-6,-6,-9,-1,-9,-7,-4,11,0,-6,0,-3,-9,-12,-10,3;
+MA   /I: MI=-42; MD=-42; I=-4;
+MA   /M: SY='D'; D=-4; M=-14,29,-26,41,23,-33,-12,2,-30,3,-23,-19,11,-7,13,-4,0,-9,-26,-30,-16,18;
+MA   /M: SY='E'; M=-2,0,-23,5,17,-22,-19,-8,-12,-3,-7,-8,-7,-12,7,-8,-4,-7,-9,-27,-15,12;
+MA   /M: SY='S'; M=-3,-9,-19,-12,-10,-12,-14,-11,-1,-13,-6,2,-3,-4,-8,-13,3,2,-1,-31,-14,-10;
+MA   /M: SY='M'; M=-10,-12,-24,-13,-4,-15,-23,3,-5,6,-1,10,-11,-19,5,3,-13,-10,-4,-22,-3,0;
+MA   /M: SY='G'; M=1,1,-25,-2,3,-19,8,-6,-24,1,-21,-14,5,-15,-3,-5,-1,-10,-21,-18,-8,-1;
+MA   /M: SY='S'; M=1,11,-16,6,4,-24,-4,-1,-20,-4,-28,-16,22,-13,11,-4,24,9,-19,-36,-18,7;
+MA   /M: SY='P'; M=5,-13,-31,-8,7,-27,-15,-17,-19,-7,-23,-17,-14,51,-5,-17,-3,-7,-22,-27,-26,-2;
+MA   /M: SY='E'; M=-13,17,-30,26,28,-34,-17,-2,-32,20,-26,-17,6,-7,16,8,-3,-10,-27,-29,-16,22;
+MA   /M: SY='V'; M=3,-26,-14,-30,-23,10,-25,-24,16,-23,18,8,-25,-26,-25,-20,-14,-4,23,-20,-4,-23;
+MA   /M: SY='K'; M=-11,-7,-28,-7,5,-23,-22,-7,-20,27,-13,-3,-5,-15,12,24,-12,-10,-16,-20,-8,8;
+MA   /M: SY='A'; M=25,-13,-21,-18,-11,-19,3,-20,-18,-3,-17,-13,-11,-14,-9,-12,-1,-8,-11,3,-13,-9;
+MA   /M: SY='H'; M=-18,-4,-28,-5,-4,-16,-20,82,-21,-10,-13,11,5,-20,8,-2,-12,-18,-23,-28,16,-2;
+MA   /M: SY='G'; M=13,-10,-20,-15,-15,-20,23,-17,-18,-14,-14,-5,-5,-15,-13,-17,4,-1,-11,-22,-20,-14;
+MA   /M: SY='A'; M=4,-11,-21,-11,-3,-19,-7,-18,-10,4,-13,-7,-11,-16,-8,-4,-4,-7,2,-24,-16,-6;
+MA   /M: SY='R'; M=-11,-8,-25,-9,-1,-17,-22,-11,-18,21,-10,-5,-5,-16,2,26,-9,-1,-12,-22,-8,-1;
+MA   /I: MI=-44; MD=-44; I=-4;
+MA   /M: SY='V'; D=-4; M=-1,-25,-11,-26,-25,0,-26,-25,27,-18,10,10,-23,-23,-23,-18,-10,-1,38,-23,-7,-25;
+MA   /I: MI=-44; MD=-44; I=-4;
+MA   /M: SY='F'; D=-4; M=-4,-22,-17,-28,-19,23,-23,-18,11,-22,19,7,-18,-21,-21,-18,-16,-7,7,-8,6,-19;
+MA   /I: MI=-44; MD=-44; I=-4;
+MA   /M: SY='N'; D=-4; M=1,9,-18,6,-2,-20,3,-9,-20,2,-19,-13,9,-11,-4,-4,4,2,-15,-23,-15,-3;
+MA   /I: MI=-44; MD=-44; I=-4;
+MA   /M: SY='A'; D=-4; M=26,-11,-12,-17,-11,-13,5,-16,-8,-12,-2,-5,-10,-12,-11,-16,1,-4,-2,-16,-15,-11;
+MA   /I: MI=-44; MD=-44; I=-4;
+MA   /M: SY='F'; D=-4; M=-8,-25,-14,-27,-22,24,-25,-19,14,-22,19,8,-22,-25,-25,-16,-16,-5,17,-11,5,-22;
+MA   /I: MI=-44; MD=-44; I=-4;
+MA   /M: SY='N'; D=-4; M=-5,8,-18,6,-5,-12,3,-3,-18,-7,-18,-14,9,-14,-6,-8,6,3,-15,-19,-2,-6;
+MA   /M: SY='D'; M=-1,13,-25,14,5,-26,0,-9,-19,-7,-19,-16,8,-13,-5,-13,0,-9,-17,-29,-19,0;
+MA   /M: SY='A'; M=26,-16,-17,-23,-16,-14,0,-22,-1,-17,0,-3,-13,-16,-14,-22,-1,-6,2,-20,-16,-16;
+MA   /M: SY='V'; M=12,-24,-16,-28,-21,-3,-22,-24,17,-21,17,8,-22,-22,-19,-21,-11,-4,20,-23,-9,-21;
+MA   /M: SY='A'; M=8,-1,-21,-8,-2,-22,-12,-9,-9,1,-16,-7,4,-13,7,-4,5,-2,-9,-25,-14,2;
+MA   /M: SY='H'; M=-9,3,-23,0,1,-22,-15,22,-18,3,-21,-6,11,-17,9,2,2,-5,-15,-30,-5,3;
+MA   /M: SY='L'; M=-9,-24,-22,-27,-18,0,-29,-19,19,-14,24,20,-22,-24,-14,-13,-21,-9,14,-21,-3,-17;
+MA   /M: SY='D'; M=-14,28,-30,42,27,-35,-1,-3,-37,0,-27,-25,10,-8,3,-8,0,-12,-30,-34,-22,15;
+MA   /I: MI=-46; MD=-46; I=-4;
+MA   /M: SY='D'; D=-4; M=-7,16,-13,18,1,-14,-7,-3,-10,-3,-12,-10,12,-11,-4,-6,0,-3,-6,-22,-10,-2;
+MA   /I: MI=-46; MD=-46; I=-4;
+MA   /M: SY='T'; D=-4; M=-3,-5,-10,-8,-5,-5,-14,-10,-3,-2,2,-1,-5,-9,-5,-2,-1,11,-1,-15,-4,-5;
+MA   /I: MI=-46; MD=-46; I=-4;
+MA   /M: SY='P'; D=-4; M=-4,-6,-21,-2,5,-18,1,-9,-16,-5,-16,-12,-6,25,-3,-9,-3,-7,-18,-16,-16,-1;
+MA   /I: MI=-46; MD=-46; I=-4;
+MA   /M: SY='V'; D=-4; M=0,-4,-1,-4,-4,0,-4,-4,4,-3,1,1,-4,-4,-4,-3,-1,0,7,-4,-1,-4;
+MA   /I: MI=-46; MD=-46; I=-4;
+MA   /M: SY='V'; D=-4; M=0,-4,-1,-4,-4,0,-4,-4,4,-3,1,1,-4,-4,-4,-3,-1,0,7,-4,-1,-4;
+MA   /M: SY='H'; M=1,1,-20,-1,-6,-18,-15,4,-10,-2,-14,-7,2,-18,-7,-6,-3,-6,-1,-29,-10,-7;
+MA   /M: SY='M'; M=-9,-18,-22,-23,-16,-3,-23,3,12,-19,15,21,-14,-21,-7,-15,-12,-7,4,-24,0,-13;
+MA   /M: SY='D'; M=-10,8,-27,16,13,-24,-16,-9,-21,1,-14,-14,-1,0,0,-6,-2,-6,-19,-31,-16,6;
+MA   /M: SY='A'; M=9,-6,-23,-11,-6,-23,1,-10,-14,-8,-16,-4,-2,4,0,-12,0,-7,-16,-24,-19,-4;
+MA   /M: SY='A'; M=18,-3,-16,-8,4,-20,-11,-16,-16,1,-14,-12,-4,-8,-3,-7,9,11,-7,-24,-16,0;
+MA   /M: SY='L'; M=-10,-30,-20,-33,-25,16,-32,-23,24,-28,33,15,-27,-28,-25,-22,-24,-8,19,-18,2,-25;
+MA   /M: SY='K'; M=7,-4,-22,-7,2,-25,-12,-11,-23,24,-23,-11,-2,-11,3,17,1,-4,-13,-22,-14,2;
+MA   /M: SY='Q'; M=-6,8,-28,9,6,-29,-13,9,-25,6,-25,-13,8,3,9,0,-2,-9,-25,-28,-13,6;
+MA   /M: SY='L'; M=-11,-29,-23,-30,-22,11,-32,-17,23,-27,38,17,-27,-28,-19,-20,-27,-10,11,-13,10,-22;
+MA   /M: SY='A'; M=27,-6,-13,-11,-8,-21,10,-16,-18,-11,-21,-15,-1,-11,-8,-16,20,5,-8,-28,-21,-8;
+MA   /M: SY='S'; M=3,-1,-21,2,5,-25,-3,-11,-16,-6,-17,-12,-3,-13,3,-10,5,-4,-9,-28,-18,4;
+MA   /M: SY='V'; M=-7,-16,-20,-17,-10,1,-22,-17,-3,-1,2,0,-13,-21,-12,-3,-9,-4,2,-21,-4,-10;
+MA   /M: SY='H'; M=-20,0,-30,0,0,-20,-20,100,-30,-10,-20,0,10,-20,10,0,-10,-20,-30,-30,20,0;
+MA   /M: SY='C'; M=16,-15,28,-22,-17,-18,-16,-23,-13,-10,-13,-10,-15,-22,-17,-17,-2,-4,2,-31,-20,-17;
+MA   /M: SY='Q'; M=-8,7,-24,8,9,-29,-16,9,-24,6,-23,-10,5,-11,19,3,6,2,-21,-28,-9,13;
+MA   /M: SY='K'; M=2,-6,-22,-9,0,-13,-15,-13,-21,21,-21,-10,-3,-13,-1,9,-1,-4,-13,-19,-8,0;
+MA   /M: SY='G'; M=-8,-16,-26,-18,-18,-3,17,-1,-18,-22,-2,-4,-9,-24,-18,-17,-12,-16,-16,-17,-6,-18;
+MA   /M: SY='R'; M=-8,-11,-21,-12,-7,-17,-23,1,-7,4,-11,-1,-8,-19,1,7,-5,0,2,-26,-6,-4;
+MA   /M: SY='V'; M=13,-24,-16,-30,-24,-6,-23,-27,23,-20,6,6,-21,-21,-21,-23,-6,-3,28,-24,-10,-24;
+MA   /M: SY='D'; M=-5,20,-29,31,9,-34,-11,-9,-29,-5,-26,-24,3,18,-5,-15,-1,-8,-25,-34,-23,1;
+MA   /I: MI=-55; MD=-55; I=-5;
+MA   /M: SY='P'; D=-5; M=-4,-13,-17,-9,-5,-12,-13,-13,-3,-7,-10,-6,-13,31,-9,-11,-5,-4,-4,-16,-13,-9;
+MA   /I: MI=-55; MD=-55; I=-5;
+MA   /M: SY='A'; D=-5; M=12,-5,-17,-7,6,-21,-12,-10,-11,5,-12,-6,-7,-10,6,-3,0,-4,-5,-20,-13,6;
+MA   /I: MI=-55; MD=-55; I=-5;
+MA   /M: SY='H'; D=-5; M=-15,5,-24,-1,-6,-3,-15,41,-15,-6,-14,-5,13,-20,0,-3,-6,-9,-20,-11,24,-6;
+MA   /M: SY='F'; M=-18,-28,-22,-35,-27,60,-30,-13,3,-26,14,3,-22,-30,-32,-18,-22,-10,0,9,34,-27;
+MA   /M: SY='K'; M=-10,-5,-33,0,15,-30,-20,-12,-27,25,-28,-15,-6,24,5,9,-8,-10,-25,-25,-18,8;
+MA   /M: SY='V'; M=-1,-27,-18,-32,-25,12,-28,-25,21,-25,19,10,-24,-26,-25,-22,-16,-6,22,-18,-1,-25;
+MA   /M: SY='L'; M=-8,-30,-18,-33,-26,14,-32,-25,25,-27,27,14,-27,-28,-26,-22,-21,-7,25,-19,1,-26;
+MA   /M: SY='G'; M=8,-6,-22,-7,-9,-26,28,-16,-29,-6,-27,-17,1,-14,-9,-10,11,-5,-19,-25,-23,-9;
+MA   /M: SY='Q'; M=-3,7,-26,6,23,-29,-14,14,-23,4,-20,-10,8,-10,24,0,2,-8,-26,-27,-12,23;
+MA   /M: SY='C'; M=3,-13,22,-17,-9,-15,-23,-22,-8,-15,-9,-9,-15,-22,-16,-18,-1,2,6,-34,-19,-12;
+MA   /M: SY='I'; M=-10,-29,-24,-34,-24,4,-33,-22,33,-27,33,25,-24,-24,-17,-23,-24,-10,19,-20,0,-23;
+MA   /M: SY='L'; M=-2,-27,-19,-31,-23,12,-27,-23,19,-26,26,12,-24,-26,-23,-22,-19,-7,16,-17,0,-23;
+MA   /M: SY='Q'; M=-8,-1,-7,0,-1,-29,-5,-10,-23,0,-21,-11,-4,-18,7,-4,-4,-11,-16,-28,-18,3;
+MA   /M: SY='T'; M=9,-11,-10,-18,-16,-9,-19,-23,2,-13,-4,-4,-11,-16,-16,-15,9,27,15,-28,-12,-16;
+MA   /M: SY='I'; M=-9,-30,-23,-35,-26,4,-35,-26,35,-29,31,19,-25,-25,-21,-25,-23,-9,24,-21,-1,-26;
+MA   /M: SY='A'; M=21,-5,-20,-10,1,-26,-10,-12,-18,12,-18,-8,-5,-10,7,1,2,-5,-11,-20,-15,4;
+MA   /M: SY='E'; M=7,2,-22,4,25,-25,-12,7,-23,-1,-19,-15,0,-7,8,-7,7,-4,-19,-29,-14,16;
+MA   /M: SY='H'; M=-9,-11,-24,-11,-11,-16,-11,25,-12,-5,-13,-1,-6,-22,-7,-5,-9,-12,-3,-27,-1,-11;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='L'; D=-4; M=-10,-21,-19,-24,-18,11,-26,-2,12,-21,17,10,-17,-23,-17,-15,-17,-9,10,-16,6,-18;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='G'; D=-4; M=-5,-10,-29,-7,-9,-25,24,-2,-28,-13,-25,-15,-4,13,-11,-15,-4,-15,-26,-21,-19,-12;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='G'; D=-4; M=8,3,-21,4,-3,-25,15,-12,-25,-1,-21,-15,1,-11,-7,-9,1,-9,-17,-21,-19,-5;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='E'; D=-4; M=2,9,-18,12,18,-22,-10,-5,-20,8,-16,-13,1,-5,5,-1,0,-6,-15,-20,-13,12;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='F'; D=-4; M=-2,-20,-17,-26,-18,31,-15,-16,-5,-17,-1,-5,-16,-18,-21,-15,-12,-8,-4,22,13,-17;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='T'; D=-4; M=1,-2,-10,-6,-7,-12,2,-13,-13,-9,-13,-10,1,-9,-7,-9,14,22,-6,-22,-12,-7;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='P'; D=-4; M=0,4,-22,10,11,-22,-10,-8,-18,-3,-17,-15,-3,20,-1,-10,-1,-6,-17,-22,-17,3;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='D'; D=-4; M=3,15,-21,21,16,-28,-9,-4,-23,0,-18,-15,4,-7,9,-7,2,-6,-18,-25,-16,12;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='V'; D=-4; M=2,-12,-16,-13,-15,-7,-20,-19,13,-16,8,4,-15,-18,-16,-18,-9,-5,16,-22,-8,-16;
+MA   /M: SY='Q'; M=-13,3,-27,2,1,-21,-20,9,-8,-7,-5,-1,5,-17,13,-6,-8,-10,-15,-27,-6,6;
+MA   /M: SY='G'; M=18,2,-19,2,-6,-26,18,-15,-25,-11,-22,-18,1,-13,-10,-17,10,-5,-15,-26,-23,-8;
+MA   /M: SY='A'; M=38,-9,-13,-16,-10,-21,10,-19,-15,-11,-15,-13,-6,-11,-10,-19,12,0,-5,-22,-21,-10;
+MA   /M: SY='W'; M=-17,-32,-35,-34,-26,21,-24,-16,-4,-20,1,3,-30,-28,-18,-17,-30,-19,-12,68,29,-20;
+MA   /M: SY='N'; M=-9,10,-26,10,8,-27,0,-3,-27,2,-23,-16,12,-13,7,4,3,-1,-24,-28,-18,7;
+MA   /M: SY='K'; M=-2,-6,-27,-8,2,-24,-20,-14,-16,31,-20,-6,-4,-11,3,15,-9,-9,-10,-20,-10,2;
+MA   /M: SY='A'; M=19,-19,4,-26,-19,-1,-16,-23,-2,-19,2,-3,-18,-22,-20,-21,-4,-4,7,-22,-11,-19;
+MA   /M: SY='Y'; M=-13,-24,-23,-25,-21,16,-29,-1,12,-17,18,15,-24,-29,-14,-14,-21,-9,7,1,35,-20;
+MA   /M: SY='A'; M=16,3,-20,4,5,-26,8,-13,-24,-7,-21,-18,0,-10,-4,-14,9,-4,-16,-27,-22,0;
+MA   /M: SY='E'; M=-4,-11,-21,-10,3,-13,-8,-12,-5,-11,-1,2,-11,-17,-6,-12,-4,-6,-2,-27,-14,-1;
+MA   /M: SY='I'; M=-9,-26,-22,-31,-22,9,-32,-22,24,-22,15,12,-21,-24,-15,-19,-16,-7,20,-18,1,-19;
+MA   /M: SY='A'; M=18,-13,2,-20,-13,-17,-12,-18,-9,-9,-11,-9,-9,-17,-10,-8,4,-2,-2,-26,-17,-13;
+MA   /M: SY='V'; M=-9,2,-24,-1,-8,-16,-22,-15,2,-5,-8,-4,2,-17,-9,-9,-5,0,2,-29,-10,-10;
+MA   /M: SY='V'; M=3,-11,-14,-11,-16,-9,-21,-21,7,-16,4,0,-16,-22,-19,-17,-4,4,19,-29,-12,-17;
+MA   /M: SY='L'; M=-10,-26,-23,-31,-23,14,-17,-18,13,-26,24,17,-21,-26,-20,-20,-21,-11,6,-15,1,-22;
+MA   /M: SY='A'; M=7,-13,-22,-21,-12,-14,-20,-19,3,-2,-5,-1,-9,-14,-7,-2,-4,0,4,-21,-10,-12;
+MA   /I: MI=-50; MD=-50; I=-5;
+MA   /M: SY='Q'; D=-5; M=-3,0,-18,-1,4,-21,-12,9,-19,4,-20,-8,4,-10,12,2,11,6,-15,-25,-7,7;
+MA   /I: MI=-50; MD=-50; I=-5;
+MA   /M: SY='K'; D=-5; M=-6,2,-17,1,6,-15,-13,-6,-10,11,-14,-7,4,-11,0,4,-3,-4,-5,-21,-10,3;
+MA   /I: MI=-50; MD=-50; I=-5;
+MA   /M: SY='Y'; D=-5; M=-11,-9,-21,-9,-1,7,-19,8,-2,-4,-1,5,-11,-15,-1,-6,-11,-7,-8,4,29,-3;
+MA   /I: MI=-50; MD=-50; I=-5;
+MA   /M: SY='H'; D=-5; M=-1,4,-18,5,3,-19,-10,9,-20,8,-16,-9,3,-10,2,8,-2,-7,-14,-19,-6,1;
+MA   /I: MI=*; MD=*; I=0;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=684(682); /POSITIVE=684(682); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=3;
+CC   /TAXO-RANGE=??EP?; /MAX-REPEAT=9;
+DR   P01922, HBA_HUMAN , T; P01923, HBA_GORGO , T; P01924, HBA_PREEN , T;
+DR   P01925, HBA_MACMU , T; P01926, HBA_CERAE , T; P01927, HBA_ATEGE , T;
+DR   P01928, HBA_CEBAP , T; P01929, HBA_SAGFU , T; P01930, HBA_COLBA , T;
+DR   P01931, HBA_PAPCY , T; P01932, HBA_THEGE , T; P01933, HBA_CERTO , T;
+DR   P01934, HBA3_GORGO, T; P01935, HBA3_PANTR, T; P01936, HBA_EULFU , T;
+DR   P01937, HBA_NYCCO , T; P01938, HBA_LORTA , T; P01939, HBA2_GALCR, T;
+DR   P01940, HBA_TARBA , T; P01941, HBA_TUPGL , T; P01942, HBA_MOUSE , T;
+DR   P01943, HBA_SPAEH , T; P01944, HBA_ONDZI , T; P01945, HBA_MESAU , T;
+DR   P01946, HBA_RAT   , T; P01947, HBA_CAVPO , T; P01948, HBA_RABIT , T;
+DR   P01949, HBA_ERIEU , T; P01950, HBA_SUNMU , T; P01951, HBA_TALEU , T;
+DR   P01952, HBA_CANFA , T; P01953, HBA_MELME , T; P01954, HBA_ELEMA , T;
+DR   P01955, HBA_LOXAF , T; P01956, HBA_ROUAE , T; P01957, HBA_PROHA , T;
+DR   P01958, HBA_HORSE , T; P01959, HBA_EQUAS , T; P01960, HBA_EQUZE , T;
+DR   P01961, HBA_EQUHE , T; P01962, HBA_TAPTE , T; P01963, HBA_CERSI , T;
+DR   P01964, HBA_DASNO , T; P01965, HBA_PIG   , T; P01966, HBA_BOVIN , T;
+DR   P01967, HBA1_BOSMU, T; P01968, HBA2_BOSMU, T; P01969, HBA_BOSGA , T;
+DR   P01970, HBA_CAPHI , T; P01971, HBA_ALCAA , T; P01972, HBA_ODOVI , T;
+DR   P01973, HBA_LAMGL , T; P01974, HBA_CAMDR , T; P01975, HBA_MACGI , T;
+DR   P01976, HBA_DIDMA , T; P01977, HBA1_TACAC, T; P01978, HBA2_TACAC, T;
+DR   P01979, HBA_ORNAN , T; P01980, HBA_APTFO , T; P01981, HBA_STRCA , T;
+DR   P01982, HBA_RHEAM , T; P01983, HBA_CICCI , T; P01984, HBA_PHORU , T;
+DR   P01985, HBA_ANSSE , T; P01986, HBA_ANAPL , T; P01987, HBA_CAIMO , T;
+DR   P01988, HBA_ANAPP , T; P01989, HBA_ANSAN , T; P01990, HBA_ANSIN , T;
+DR   P01991, HBA_BRACA , T; P01992, HBA_CYGOL , T; P01993, HBA_AQUCH , T;
+DR   P01994, HBA_CHICK , T; P01995, HBA_PHACO , T; P01996, HBA_ARAAR , T;
+DR   P01997, HBA_STUVU , T; P01998, HBA_CRONI , T; P01999, HBA_ALLMI , T;
+DR   P02000, HBA_CAICR , T; P02001, HBAD_CHICK, T; P02002, HBAD_PHACO, T;
+DR   P02003, HBAD_CAIMO, T; P02004, HBAD_STUVU, T; P02005, HBAD_CHRPI, T;
+DR   P02006, HBAD_PHRHI, T; P02007, HBPI_CHICK, T; P02008, HBAZ_HUMAN, T;
+DR   P02009, HBAZ_PIG  , T; P02010, HBA_VIPAS , T; P02011, HBA3_RANCA, T;
+DR   P02012, HBA1_XENLA, T; P02013, HBA2_XENLA, T; P02014, HBA_TARGR , T;
+DR   P02015, HBA_AMBME , T; P02016, HBA_CYPCA , T; P02017, HBA_CATCL , T;
+DR   P02018, HBA_CARAU , T; P02019, HBA1_SALIR, T; P02020, HBA_LEPPA , T;
+DR   P02021, HBA_HETPO , T; P02022, HBAM_RANCA, T; P02023, HBB_HUMAN , T;
+DR   P02024, HBB_GORGO , T; P02025, HBB_HYLLA , T; P02026, HBB_MACMU , T;
+DR   P02027, HBB_MACFU , T; P02028, HBB_CERAE , T; P02029, HBB_THEGE , T;
+DR   P02030, HBB_PAPCY , T; P02031, HBB_CERTO , T; P02032, HBB_PREEN , T;
+DR   P02033, HBB_COLBA , T; P02034, HBB_ATEGE , T; P02035, HBB_AOTTR , T;
+DR   P02036, HBB_SAISC , T; P02037, HBB_SAGNI , T; P02038, HBB_SAGMY , T;
+DR   P02039, HBB_SAGFU , T; P02040, HBB_CEBAL , T; P02041, HBB_CEBAP , T;
+DR   P02042, HBD_HUMAN , T; P02043, HBD_PANTR , T; P02044, HBD_ATEGE , T;
+DR   P02045, HBD_SAGMY , T; P02046, HBD_AOTTR , T; P02047, HBD_SAISC , T;
+DR   P02048, HBB_LORTA , T; P02049, HBB_NYCCO , T; P02050, HBB_GALCR , T;
+DR   P02051, HBB_TARBA , T; P02052, HBB_TUPGL , T; P02053, HBB_EULFU , T;
+DR   P02054, HBB_LEMCA , T; P02055, HBB_MELME , T; P02056, HBB_CANFA , T;
+DR   P02057, HBB_RABIT , T; P02058, HBB_ROUAE , T; P02059, HBB_ERIEU , T;
+DR   P02060, HBB_SUNMU , T; P02061, HBB_TALEU , T; P02062, HBB_HORSE , T;
+DR   P02063, HBB_EQUHE , T; P02064, HBB1_TAPTE, T; P02065, HBB2_TAPTE, T;
+DR   P02066, HBB_CERSI , T; P02067, HBB_PIG   , T; P02068, HBB_LAMGL , T;
+DR   P02069, HBB_CAMDR , T; P02070, HBB_BOVIN , T; P02071, HBB_BOSGA , T;
+DR   P02072, HBB_BOSMU , T; P02073, HBB_ALCAA , T; P02074, HBB_ODOVI , T;
+DR   P02075, HBB_SHEEP , T; P02076, HBB_OVIMU , T; P02077, HBBA_CAPHI, T;
+DR   P02078, HBBC_CAPHI, T; P02079, HBBC_SHEEP, T; P02080, HBBN_AMMLE, T;
+DR   P02081, HBBF_BOVIN, T; P02082, HBBF_CAPHI, T; P02083, HBBF_SHEEP, T;
+DR   P02084, HBB_ELEMA , T; P02085, HBB_LOXAF , T; P02086, HBB_PROHA , T;
+DR   P02087, HBB_DASNO , T; P02088, HBB1_MOUSE, T; P02089, HBB2_MOUSE, T;
+DR   P02090, HBB_SPAEH , T; P02091, HBB1_RAT  , T; P02092, HBB_MICXA , T;
+DR   P02093, HBB_ONDZI , T; P02094, HBB_MESAU , T; P02095, HBB_CAVPO , T;
+DR   P02096, HBG_HUMAN , T; P02097, HBG_MACNE , T; P02098, HBG_MACMU , T;
+DR   P02099, HBG_RABIT , T; P02100, HBE_HUMAN , T; P02101, HBE_PIG   , T;
+DR   P02102, HBE1_CAPHI, T; P02103, HBE_RABIT , T; P02104, HBE_MOUSE , T;
+DR   P02105, HBE2_CAPHI, T; P02106, HBB_MACGI , T; P02107, HBB_MACRU , T;
+DR   P02108, HBB_POTTR , T; P02109, HBB_DIDMA , T; P02110, HBB_TACAC , T;
+DR   P02111, HBB_ORNAN , T; P02112, HBB_CHICK , T; P02113, HBB_PHACO , T;
+DR   P02114, HBB_ANAPL , T; P02115, HBB_ANAPP , T; P02116, HBB_ARAAR , T;
+DR   P02117, HBB_ANSAN , T; P02118, HBB_ANSIN , T; P02119, HBB_BRACA , T;
+DR   P02120, HBB_ANSSE , T; P02121, HBB_PHORU , T; P02122, HBB_AQUCH , T;
+DR   P02123, HBB_STRCA , T; P02124, HBB_RHEAM , T; P02125, HBB_CICCI , T;
+DR   P02126, HBB_STUVU , T; P02127, HBRH_CHICK, T; P02128, HBE_CHICK , T;
+DR   P02129, HBB_CRONI , T; P02130, HBB_ALLMI , T; P02131, HBB_CAICR , T;
+DR   P02132, HBB1_XENLA, T; P02133, HBB2_XENLA, T; P02134, HBB_RANES , T;
+DR   P02135, HBBC_RANCA, T; P02136, HBBL_RANCA, T; P02137, HBBL_XENLA, T;
+DR   P02138, HBB_LEPPA , T; P02139, HBB_CYPCA , T; P02140, HBB_CARAU , T;
+DR   P02141, HBB4_SALIR, T; P02142, HBB1_SALIR, T; P02143, HBB_HETPO , T;
+DR   P02144, MYG_HUMAN , T; P02145, MYG_PANTR , T; P02146, MYG_HYLAG , T;
+DR   P02147, MYG_GORBE , T; P02148, MYG_PONPY , T; P02149, MYG_PAPAN , T;
+DR   P02150, MYG_MACFA , T; P02151, MYG_AOTTR , T; P02152, MYG_CALJA , T;
+DR   P02153, MYG_CEBAP , T; P02154, MYG_LAGLA , T; P02155, MYG_SAISC , T;
+DR   P02156, MYG_ERIEU , T; P02157, MYG_MELME , T; P02158, MYG_CANFA , T;
+DR   P02159, MYG_LYCPI , T; P02160, MYG_VULCH , T; P02161, MYG_ZALCA , T;
+DR   P02162, MYG_HALGR , T; P02163, MYG_ROUAE , T; P02164, MYG_ORYAF , T;
+DR   P02165, MYG_TUPGL , T; P02166, MYG_PERPO , T; P02167, MYG_NYCCO , T;
+DR   P02168, MYG_GALCR , T; P02169, MYG_LEPMU , T; P02170, MYG_RABIT , T;
+DR   P02171, MYG_OCHPR , T; P02172, MYG_TURTR , T; P02173, MYG_ORCOR , T;
+DR   P02174, MYG_GLOME , T; P02176, MYG_PHOPH , T; P02177, MYG_ESCGI , T;
+DR   P02178, MYG_MEGNO , T; P02179, MYG_BALAC , T; P02180, MYG_BALPH , T;
+DR   P02181, MYG_INIGE , T; P02182, MYG_ZIPCA , T; P02183, MYG_MESCA , T;
+DR   P02184, MYG_KOGSI , T; P02185, MYG_PHYCA , T; P02186, MYG_ELEMA , T;
+DR   P02187, MYG_LOXAF , T; P02188, MYG_HORSE , T; P02189, MYG_PIG   , T;
+DR   P02190, MYG_SHEEP , T; P02191, MYG_CEREL , T; P02192, MYG_BOVIN , T;
+DR   P02193, MYG_DIDMA , T; P02194, MYG_MACRU , T; P02195, MYG_TACAC , T;
+DR   P02196, MYG_ORNAN , T; P02197, MYG_CHICK , T; P02199, MYG_APTFO , T;
+DR   P02200, MYG_ALLMI , T; P02201, MYG_GRAGE , T; P02202, MYG_CHEMY , T;
+DR   P02203, MYG_VARVA , T; P02204, MYG_CYPCA , T; P02205, MYG_THUAL , T;
+DR   P02206, MYG_HETPO , T; P02207, GLB_LAMFL , T; P02208, GLB5_PETMA, T;
+DR   P02209, GLB3_MYXGL, T; P02210, GLB_APLLI , T; P02211, GLB_APLKU , T;
+DR   P02212, GLB1_ANABR, T; P02213, GLB1_SCAIN, T; P02214, GLB_BUSCA , T;
+DR   P02215, GLB_CERRH , T; P02216, GLB1_GLYDI, T; P02217, GLB2_GLYDI, T;
+DR   P02218, GLB2_LUMTE, T; P02219, GLB1_TYLHE, T; P02220, GLB4_TYLHE, T;
+DR   P02221, GLB1_CHITH, T; P02222, GLB2_CHITH, T; P02223, GLB9_CHITH, T;
+DR   P02224, GLB6_CHITH, T; P02226, GLB7_CHITH, T; P02227, GLB8_CHITH, T;
+DR   P02228, GLBX_CHITH, T; P02229, GLB3_CHITH, T; P02230, GLB4_CHITH, T;
+DR   P02231, GLBT_CHITH, T; P02232, LGB1_VICFA, T; P02233, LGB1_PEA  , T;
+DR   P02234, LGBA_PHAVU, T; P02235, LGB1_SOYBN, T; P02236, LGB2_SOYBN, T;
+DR   P02237, LGB3_SOYBN, T; P02238, LGBA_SOYBN, T; P02239, LGB1_LUPLU, T;
+DR   P02240, LGB2_LUPLU, T; P04236, HBA_PANPO , T; P04237, HBA_TRAST , T;
+DR   P04238, HBAD_ANSAN, T; P04239, HBAD_ANSIN, T; P04240, HBAD_BRACA, T;
+DR   P04241, HBAD_RHEAM, T; P04242, HBAD_STRCA, T; P04243, HBPI_CAIMO, T;
+DR   P04244, HBB_PANPO , T; P04245, HBB_TRAST , T; P04246, HBT_PIG   , T;
+DR   P04247, MYG_MOUSE , T; P04248, MYG_SPAEH , T; P04249, MYG_PROGU , T;
+DR   P04250, MYG_LAGMA , T; P04251, GLBB_ANATR, T; P04252, BAHG_VITST, T;
+DR   P04346, HBBA_BOSJA, T; P04396, HBPL_PARAD, T; P04442, HBAD_ANAPL, T;
+DR   P04443, HBB0_MOUSE, T; P04444, HBBZ_MOUSE, T; P06148, HBF1_URECA, T;
+DR   P06347, HBAZ_PANTR, T; P06467, HBAZ_MOUSE, T; P06635, HBA_PONPY , T;
+DR   P06636, HBA3_XENLA, T; P06637, HBA4_XENLA, T; P06638, HBA5_XENLA, T;
+DR   P06639, HBA1_PLEWA, T; P06640, HBA2_PLEWA, T; P06641, HBG_GORGO , T;
+DR   P06642, HBE2_BOVIN, T; P06643, HBE4_BOVIN, T; P06714, HBAT_HORSE, T;
+DR   P06890, HBAT_PONPY, T; P06891, HBG_ATEGE , T; P07034, HBA_CHLME , T;
+DR   P07035, HBAD_CHLME, T; P07036, HBB_CHLME , T; P07402, HBA_MACSP , T;
+DR   P07403, HBA_SPETO , T; P07404, HBA_VULGR , T; P07405, HBA_FELCA , T;
+DR   P07406, HBB_PASMO , T; P07407, HBA_PASMO , T; P07408, HBA_SQUAC , T;
+DR   P07409, HBB_SQUAC , T; P07410, HBB_SPETO , T; P07411, HBB_VULGR , T;
+DR   P07412, HBB_FELCA , T; P07413, HBAD_PASMO, T; P07414, HBA_TRIIN , T;
+DR   P07415, HBB_TRIIN , T; P07416, HBAD_AEGMO, T; P07417, HBA_AEGMO , T;
+DR   P07418, HBB_AEGMO , T; P07419, HBA_DASVI , T; P07420, HBB_DASVI , T;
+DR   P07421, HBA_CEBCA , T; P07422, HBB_URSMA , T; P07423, HBA_URSMA , T;
+DR   P07425, HBA_LAMVI , T; P07426, HBA_LAMPA , T; P07428, HBA_XENTR , T;
+DR   P07429, HBB1_XENTR, T; P07430, HBA1_XENBO, T; P07431, HBA2_XENBO, T;
+DR   P07432, HBB1_XENBO, T; P07433, HBB2_XENBO, T; P07803, HBPL_TRETO, T;
+DR   P08054, HBP1_CASGL, T; P08223, HBE_EULFU , T; P08224, HBG_CHEME , T;
+DR   P08225, HBG_EULFU , T; P08256, HBA_GYPRU , T; P08257, HBAD_GYPRU, T;
+DR   P08258, HBA_MANSP , T; P08259, HBB_MANSP , T; P08260, HBA_LARRI , T;
+DR   P08261, HBB_LARRI , T; P08422, HBA3_XENTR, T; P08423, HBB2_XENTR, T;
+DR   P08535, HBB_LEPEU , T; P08849, HBAD_ACCGE, T; P08850, HBA_ACCGE , T;
+DR   P08851, HBB_ACCGE , T; P08852, HBA_MARMA , T; P08853, HBB_MARMA , T;
+DR   P08924, GLB1_LUMTE, T; P09105, HBAT_HUMAN, T; P09106, HBAT_PAPAN, T;
+DR   P09187, LGB1_MEDSA, T; P09420, HBA_SPECI , T; P09421, HBB_SPECI , T;
+DR   P09422, HBB_BISBO , T; P09423, HBA_BISBO , T; P09839, HBA_MACCA , T;
+DR   P09840, HBB_MACCA , T; P09904, HBA_PHYCA , T; P09905, HBB_PHYCA , T;
+DR   P09906, HBA_RHIUN , T; P09907, HBB_RHIUN , T; P09908, HBA_PHOVI , T;
+DR   P09909, HBB_PHOVI , T; P09965, GLB_DOLAU , T; P09966, GLB2_TYLHE, T;
+DR   P09967, GLB1_PETMA, T; P09968, GLB3_PETMA, T; P10057, HBA_EUDCR , T;
+DR   P10058, HBB_EUDCR , T; P10059, HBA_SPHPU , T; P10060, HBB1_SPHPU, T;
+DR   P10061, HBB2_SPHPU, T; P10062, HBAD_SPHPU, T; P10777, HBA1_NOTCO, T;
+DR   P10778, HBA_ODORO , T; P10779, HBB_ODORO , T; P10780, HBA_PHACA , T;
+DR   P10781, HBAD_PHACA, T; P10782, HBB_PHACA , T; P10783, HBA1_TRICR, T;
+DR   P10784, HBA2_TRICR, T; P10785, HBB1_TRICR, T; P10786, HBB2_TRICR, T;
+DR   P10816, LGB3_SESRO, T; P10883, HBA_PANTS , T; P10884, HBB_PANTS , T;
+DR   P10885, HBA_PTEBR , T; P10886, HBB_PTEBR , T; P10892, HBA_LUTLU , T;
+DR   P10893, HBB_LUTLU , T; P11025, HBE_DIDMA , T; P11069, GLB3_LUMTE, T;
+DR   P11251, HBA_SALSA , T; P11342, HBB_COLLI , T; P11343, MYG_LUTLU , T;
+DR   P11517, HBB2_RAT  , T; P11582, GLBZ_CHITH, T; P11583, GLBE_CHITH, T;
+DR   P11740, GLB1_PHESE, T; P11748, HBA_THUTH , T; P11749, HBB_THUTH , T;
+DR   P11750, HBA_SPEPA , T; P11751, HBA_MEGLY , T; P11752, HBB_MEGLY , T;
+DR   P11753, HBA_CYNSP , T; P11754, HBB_CYNSP , T; P11755, HBA1_TADBR, T;
+DR   P11756, HBB_TADBR , T; P11757, HBA_MYOVE , T; P11758, HBB_MYOVE , T;
+DR   P11896, HBA3_PLEWA, T; P12292, GLBD_CHITH, T; P12548, GLBC_CHITH, T;
+DR   P12549, GLBF_CHITH, T; P12550, GLBH_CHITH, T; P13273, HBA_CHRPI , T;
+DR   P13274, HBB_CHRPI , T; P13557, HBB_TARSY , T; P13558, HBD_TARSY , T;
+DR   P13578, GLB3_TYLHE, T; P13579, GLB4_LUMTE, T; P13786, HBAZ_CAPHI, T;
+DR   P13787, HBAZ_HORSE, T; P14259, HBA1_GALCR, T; P14260, HBB_CAIMO , T;
+DR   P14261, HBE_CAIMO , T; P14387, HBA_ANTPA , T; P14388, HBB_ANTPA , T;
+DR   P14389, HBA_PTEAL , T; P14390, HBA_PTEPO , T; P14391, HBB_PTEAL , T;
+DR   P14392, HBB_PTEPO , T; P14393, GLB_APLJU , T; P14394, GLB2_ANATR, T;
+DR   P14395, GLBA_ANATR, T; P14396, MYG_CASFI , T; P14397, MYG_GALAU , T;
+DR   P14398, MYG_GALJA , T; P14399, MYG_MUSAN , T; P14520, HBA_ELEEL , T;
+DR   P14521, HBB_ELEEL , T; P14522, HBA_TURME , T; P14523, HBAD_TURME, T;
+DR   P14524, HBB_TURME , T; P14525, HBA_BRATR , T; P14526, HBB_BRATR , T;
+DR   P14527, HBA4_SALIR, T; P14528, GLB2_CALSO, T; P14805, GLB1_CALSO, T;
+DR   P14821, GLBA_SCAIN, T; P14822, GLBB_SCAIN, T; P14848, LGB2_SESRO, T;
+DR   P14962, LGB3_MEDSA, T; P15161, GLB1_PARCH, T; P15162, HBA_APUAP , T;
+DR   P15163, HBA_LEPWE , T; P15164, HBAD_APUAP, T; P15165, HBB_APUAP , T;
+DR   P15166, HBB_LEPWE , T; P15447, GLB4_GLYDI, T; P15448, HBA_MELCA , T;
+DR   P15449, HBB_MELCA , T; P15469, GLB3_LAMSP, T; P16175, HBG_HYLLA , T;
+DR   P16308, HBA2_NOTCO, T; P16309, HBB_NOTCO , T; P16417, HBA_LIOMI , T;
+DR   P16418, HBB_LIOMI , T; P17689, HBA_MARFO , T; P18202, GLB_TUBTU , T;
+DR   P18435, HBE_TARSY , T; P18436, HBG_TARSY , T; P18707, HBB_MESBR , T;
+DR   P18966, GLBI_CHITP, T; P18968, GLBY_CHITP, T; P18969, HBA_AILFU , T;
+DR   P18970, HBA_AILME , T; P18971, HBA_BALAC , T; P18972, HBA_CALAR , T;
+DR   P18973, HBA_CROCR , T; P18974, HBA1_IGUIG, T; P18975, HBA_PANLE , T;
+DR   P18976, HBA_PANPS , T; P18977, HBA_PROLO , T; P18978, HBA_TURTR , T;
+DR   P18979, HBA1_UROHA, T; P18980, HBA2_UROHA, T; P18981, HBA2_VAREX, T;
+DR   P18982, HBB_AILFU , T; P18983, HBB_AILME , T; P18984, HBB_BALAC , T;
+DR   P18985, HBB_CALAR , T; P18986, HBB_CROCR , T; P18987, HBB1_IGUIG, T;
+DR   P18988, HBB2_PANLE, T; P18989, HBB_PROLO , T; P18990, HBB_TURTR , T;
+DR   P18991, HBB1_UROHA, T; P18993, HBB1_VAREX, T; P18994, HBE_PONPY , T;
+DR   P18995, HBG1_PONPY, T; P18996, HBG2_PONPY, T; P19002, HBA_MACNE , T;
+DR   P19014, HBA_CRIGA , T; P19015, HBA_HIPAM , T; P19016, HBB_HIPAM , T;
+DR   P19017, HBB_MUSPF , T; P19363, GLB1_ARTSX, T; P19364, GLB7_ARTSX, T;
+DR   P19645, HBA_PAGLA , T; P19646, HBB_PAGLA , T; P19759, HBE_GALCR , T;
+DR   P19760, HBG_GALCR , T; P19789, HBA_EUDSC , T; P19831, HBA_PSIKR , T;
+DR   P19832, HBA_TRIOC , T; P19885, HBB_COLPO , T; P19886, HBD_COLPO , T;
+DR   P20018, HBA1_LEMVA, T; P20019, HBA2_LEMVA, T; P20243, HBA_MUSPF , T;
+DR   P20244, HBA1_TORMA, T; P20245, HBA2_TORMA, T; P20246, HBB1_TORMA, T;
+DR   P20247, HBB2_TORMA, T; P20412, GLB1_LAMSP, T; P20854, HBA_CTEGU , T;
+DR   P20855, HBB_CTEGU , T; P20856, MYG_CTEGU , T; P21197, GLB1_MORMR, T;
+DR   P21198, GLB2_MORMR, T; P21199, GLB3_MORMR, T; P21200, HBA_VULVV , T;
+DR   P21201, HBB_VULVV , T; P21379, HBA_RANTA , T; P21380, HBB_RANTA , T;
+DR   P21659, GLP2_GLYDI, T; P21660, GLP3_GLYDI, T; P21667, HBB_LEMVA , T;
+DR   P21668, HBB_PSIKR , T; P21766, HBA_MACAS , T; P21767, HBA_MACFA , T;
+DR   P21768, HBA_MACSI , T; P21871, HBA_COLLI , T; P22431, GLB3_CHITP, T;
+DR   P22740, HBA_ANAPE , T; P22741, HBA_FRAPO , T; P22742, HBB_FRAPO , T;
+DR   P22743, HBB2_NAJNA, T; P23016, HBA_CYGMA , T; P23017, HBB1_CYGMA, T;
+DR   P23018, HBB2_CYGMA, T; P23019, HBA_PROCR , T; P23020, HBB_PROCR , T;
+DR   P23216, GLP1_GLYDI, T; P23244, HBP2_CASGL, T; P23600, HBA_MUSLU , T;
+DR   P23601, HBA_MUSPU , T; P23602, HBB_MUSLU , T; P23740, HBA_LATCH , T;
+DR   P23741, HBB_LATCH , T; P24232, HMPA_ECOLI, T; P24291, HBA_ECHTE , T;
+DR   P24292, HBB_ECHTE , T; P24589, HBA_COTJA , T; P24659, HBA_MACGG , T;
+DR   P24660, HBB_MACGG , T; P25165, GLBM_ANATR, T; P26914, GLB_PSEDC , T;
+DR   P26915, HBA_NASNA , T; P26916, HBB_NASNA , T; P27199, LGB_PSOTE , T;
+DR   P27613, GLBH_TRICO, T; P27992, LGB1_MEDTR, T; P27993, LGB2_MEDTR, T;
+DR   P28010, LGB4_MEDSA, T; P28316, GLB_ASCSU , T; P28780, HBA_TAPGE , T;
+DR   P28781, HBB_TAPGE , T; P29242, GLBH_CHITP, T; P29243, GLBV_CHITP, T;
+DR   P29244, GLBW_CHITP, T; P29245, GLBZ_CHITP, T; P29287, GLB_BURLE , T;
+DR   P29623, HBA_GYMAC , T; P29624, HBA1_NOTAN, T; P29625, HBB_GYMAC , T;
+DR   P29626, HBBY_MESAU, T; P29627, HBAZ_MESAU, T; P29628, HBB_NOTAN , T;
+DR   P30562, MYG_PHOSI , T; P30627, GLBH_CAEEL, T; P30892, HBAD_COTJA, T;
+DR   P30893, HBB_COTJA , T; P31331, GLB_NASMU , T; P32428, MYG_ONDZI , T;
+DR   P33499, HBD_ATEFU , T; P39662, HMPA_ALCEU, T; P39676, FHP_YEAST , T;
+DR   P40609, HMPA_VIBPA, T; P41260, GLB1_LUCPE, T; P41261, GLB2_LUCPE, T;
+DR   P41262, GLB3_LUCPE, T; P41327, HBA_LYNLY , T; P41328, HBB_LYNLY , T;
+DR   P41329, HBA1_ARCGA, T; P41330, HBA2_ARCGA, T; P41331, HBA_MICGA , T;
+DR   P41332, HBB_MICGA , T; P42511, HBP_CANLI , T; P80017, GLBD_CAUAR, T;
+DR   P80018, GLBC_CAUAR, T; P80043, HBA_PAGBE , T; P80044, HBB_PAGBE , T;
+DR   P80216, HBB_APTFO , T; P80270, HBA_CHEKU , T; P80271, HBB_CHEKU , T;
+DR   Q03331, FHP_CANNO , T; P45718, HBA1_TRENE, T; P45719, HBA2_TRENE, T;
+DR   P45722, HBBC_PAGBE, T; P45720, HBB_TRENE , T; P45721, HBBC_TRENE, T;
+DR   P43350, HBE_AOTAZ , T;
+DR   P26353, HMPA_SALTY, P; P18992, HBB2_UROHA, P; P20413, GLB4_LAMSP, P;
+3D   1BAB; 1BBB; 2CMM; 1CMY; 1COH; 2DHB; 1DXT; 1DXU; 1DXV; 1ECA; 1ECD; 1ECN;
+3D   1ECO; 2FAL; 2FAM; 1FCS; 1FDH; 1HBA; 1HBB; 1HBS; 1HBG; 2HBG; 1HCO; 2HCO;
+3D   1HDS; 1HGA; 1HGB; 1HGC; 2HHB; 3HHB; 4HHB; 1HHO; 1ITH; 1LH1; 2LH1; 1LH2;
+3D   2LH2; 1LH3; 2LH3; 1LH4; 2LH4; 1LH5; 2LH5; 1LH6; 2LH6; 1LH7; 2LH7; 2LHB;
+3D   2MB5; 1MBA; 3MBA; 4MBA; 5MBA; 1MBC; 1MBD; 1MBI; 1MBN; 4MBN; 5MBN; 1MBO;
+3D   1MBS; 1MBW; 2MGA; 2MGB; 2MGC; 2MGD; 2MGE; 2MGF; 2MGG; 2MGH; 2MGI; 2MGJ;
+3D   2MGK; 2MGL; 2MGM; 1MGN; 2MHB; 2MM1; 2MYA; 2MYB; 2MYC; 2MYD; 2MYE; 1MYG;
+3D   1MYH; 1MYI; 1MYJ; 1MYM; 1MYT; 1NIH; 1PBX; 1PMB; 3SDH; 4SDH; 2SPL; 2SPM;
+3D   2SPN; 2SPO; 1SWM; 1THB; 1YCA; 1YCB; 1YMA; 1YMB; 1YMC;
+DO   PDOC00793;
+//
+ID   HSP20; MATRIX.
+AC   PS01031;
+DT   JUN-1994 (CREATED); JUN-1994 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Heat shock hsp20 proteins family profile.
+MA   /GENERAL_SPEC: ALPHABET='ACDEFGHIKLMNPQRSTVWY'; LENGTH=97;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=2; N2=96;
+MA   /NORMALIZATION: MODE=1; FUNCTION=GLE_ZSCORE;
+MA    R1=239.0; R2=-0.0036; R3=0.8341; R4=1.016; R5=0.169;
+MA   /CUT_OFF: LEVEL=0; SCORE=400; N_SCORE=10.0; MODE=1;
+MA   /DEFAULT: MI=-210; MD=-210; IM=0; DM=0; I=-20; D=-20;
+MA   /M: SY='R'; M=-12,-44,-11,-13,-13,-22,-2,-7,18,-12,5,-3,-11,0,21,-6,-5,-11,-16,-34;
+MA   /M: SY='D'; M=1,-41,17,16,-41,-3,3,-11,-1,-22,-12,8,-7,12,-7,0,-2,-19,-53,-36;
+MA   /M: SY='D'; M=2,-37,15,13,-36,2,5,-15,-3,-26,-17,10,-6,7,-10,3,2,-17,-53,-28;
+MA   /M: SY='P'; M=1,-41,6,8,-38,-4,2,-20,9,-30,-14,6,13,9,8,3,0,-22,-48,-45;
+MA   /M: SY='D'; M=2,-43,23,20,-42,2,9,-18,2,-30,-18,14,-5,14,-6,2,0,-21,-57,-35;
+MA   /M: SY='D'; M=4,-34,9,8,-34,6,0,-17,5,-29,-14,8,-1,5,1,5,2,-17,-47,-38;
+MA   /M: SY='F'; M=-28,-32,-38,-38,50,-42,-1,2,-11,6,-6,-21,-35,-27,-27,-24,-23,-14,-3,47;
+MA   /M: SY='Q'; M=0,-33,-2,-7,-26,-9,-4,1,1,-10,1,-1,-5,2,0,-2,1,0,-44,-37;
+MA   /M: SY='L'; M=-13,-36,-34,-37,23,-31,-21,28,-15,29,24,-24,-25,-24,-27,-20,-10,22,-33,0;
+MA   /M: SY='K'; M=-8,-32,-5,-5,-19,-16,3,-11,13,-19,-2,1,-9,2,12,-3,-3,-15,-32,-28;
+MA   /M: SY='L'; M=-10,-39,-30,-32,15,-26,-20,20,-16,27,20,-21,-20,-21,-27,-17,-9,16,-32,-5;
+MA   /M: SY='D'; M=3,-48,33,27,-51,4,6,-19,0,-35,-22,18,-10,13,-13,2,0,-16,-65,-41;
+MA   /I: MI=-55; MD=-55; I=-5;
+MA   /M: SY='V'; D=-5; M=-3,-33,-23,-32,-5,-19,-21,28,-16,26,30,-17,-14,-15,-19,-12,-1,30,-48,-28;
+MA   /I: MI=-55; MD=-55; I=-5;
+MA   /M: SY='P'; D=-5; M=1,-2,-1,0,-3,0,0,-1,-1,-2,-2,0,4,0,0,1,0,-1,-4,-4;
+MA   /I: MI=-55; MD=-55; I=-5;
+MA   /M: SY='P'; D=-5; M=5,-32,-2,-1,-33,-2,-2,-19,3,-27,-15,2,28,3,4,7,3,-15,-48,-44;
+MA   /M: SY='G'; M=3,-35,6,3,-38,18,7,-20,-10,-29,-21,6,-4,4,-11,3,-4,-13,-56,-36;
+MA   /M: SY='F'; M=-22,-45,-40,-39,43,-38,-18,17,-9,28,18,-26,-31,-28,-30,-25,-18,6,-17,19;
+MA   /M: SY='K'; M=3,-28,2,0,-19,2,-7,-14,14,-27,-7,6,0,-1,8,7,7,-13,-39,-37;
+MA   /M: SY='P'; M=2,-36,-3,-2,-26,-7,-2,-17,12,-26,-10,3,21,4,11,5,3,-16,-44,-44;
+MA   /M: SY='E'; M=2,-48,25,26,-45,4,4,-19,1,-31,-18,12,-6,16,-8,1,-2,-30,-62,-41;
+MA   /M: SY='D'; M=3,-49,34,33,-52,4,6,-22,2,-37,-22,17,-8,18,-10,2,-1,-29,-65,-42;
+MA   /M: SY='L'; M=-8,-36,-29,-34,5,-28,-22,34,-25,36,27,-22,-19,-19,-26,-18,-6,32,-40,-18;
+MA   /M: SY='K'; M=-5,-43,5,1,-17,-10,0,-15,27,-27,-3,9,-7,5,19,2,4,-17,-37,-39;
+MA   /M: SY='V'; M=0,-20,-22,-38,-7,-17,-22,39,-23,21,19,-17,-14,-19,-24,-11,2,41,-56,-29;
+MA   /I: MI=-55; MD=-55; I=-5;
+MA   /M: SY='E'; D=-5; M=1,-18,10,11,-21,0,4,-8,0,-13,-8,5,0,10,-1,1,0,-13,-24,-17;
+MA   /I: MI=-55; MD=-55; I=-5;
+MA   /M: SY='Y'; D=-5; M=-3,0,-3,-3,5,-4,0,-1,-3,-1,-2,-2,-4,-3,-3,-2,-2,-3,0,7;
+MA   /I: MI=-55; MD=-55; I=-5;
+MA   /M: SY='K'; D=-5; M=-4,-34,-2,-7,-9,-12,-2,1,9,-8,5,1,-9,1,4,-4,0,-1,-39,-28;
+MA   /M: SY='I'; M=-1,-36,-4,-7,-22,-12,-9,12,-13,3,5,-6,-10,-1,-16,-7,0,6,-52,-30;
+MA   /M: SY='D'; M=-1,-46,17,16,-36,-5,2,-10,-1,-19,-10,8,-9,11,-9,-2,-2,-15,-56,-35;
+MA   /M: SY='D'; M=3,-47,25,23,-48,10,1,-23,2,-37,-22,14,-8,11,-8,3,-2,-25,-61,-44;
+MA   /M: SY='D'; M=0,-39,17,13,-43,1,9,-21,11,-33,-17,14,-6,9,7,4,0,-19,-38,-35;
+MA   /M: SY='I'; M=-4,-24,-18,-26,-7,-17,-13,15,-12,5,7,-13,-13,-14,-17,-8,-2,14,-43,-18;
+MA   /M: SY='L'; M=-10,-41,-31,-34,7,-30,-22,32,-26,41,29,-23,-20,-19,-27,-20,-8,30,-36,-17;
+MA   /M: SY='M'; M=-4,-41,-6,-8,-20,-16,-7,7,-8,5,8,-6,-10,1,-11,-8,-2,2,-45,-30;
+MA   /M: SY='I'; M=-2,-21,-23,-30,0,-21,-23,41,-21,22,20,-18,-16,-20,-22,-12,2,40,-54,-21;
+MA   /M: SY='H'; M=-1,-24,6,6,-31,-5,10,-17,6,-27,-14,8,0,9,7,4,2,-20,-35,-28;
+MA   /M: SY='G'; M=14,-29,5,2,-45,40,-19,-22,-15,-37,-25,3,-2,-10,-23,11,3,-11,-65,-48;
+MA   /M: SY='E'; M=-2,-51,20,22,-34,-4,4,-17,13,-30,-12,11,-8,17,3,-1,-2,-30,-57,-42;
+MA   /M: SY='H'; M=-11,-34,-2,-1,-28,-20,31,-16,12,-21,-10,6,-3,17,28,-5,-8,-17,-15,-23;
+MA   /I: MI=-44; MD=-44; I=-4;
+MA   /M: SY='R'; D=-4; M=0,-12,-1,-1,-9,-3,1,-6,5,-9,-3,2,5,2,6,1,0,-6,-12,-13;
+MA   /I: MI=-44; MD=-44; I=-4;
+MA   /M: SY='T'; D=-4; M=1,-7,-2,-4,-5,0,-4,0,-2,-2,0,-1,-1,-3,-3,0,1,1,-11,-9;
+MA   /I: MI=-44; MD=-44; I=-4;
+MA   /M: SY='T'; D=-4; M=2,-7,2,1,-8,0,-2,0,-1,-4,-2,1,0,0,-3,1,2,-2,-13,-8;
+MA   /I: MI=-44; MD=-44; I=-4;
+MA   /M: SY='Q'; D=-4; M=-2,-12,-1,0,-6,-5,2,-2,0,-1,0,0,-2,2,1,-2,-2,-2,-8,-7;
+MA   /I: MI=-44; MD=-44; I=-4;
+MA   /M: SY='E'; D=-4; M=3,-27,15,15,-30,3,3,-12,0,-20,-12,8,0,9,-6,3,1,-18,-39,-24;
+MA   /I: MI=-44; MD=-44; I=-4;
+MA   /M: SY='E'; D=-4; M=2,-45,24,26,-42,0,7,-18,4,-30,-16,12,-5,18,-4,2,0,-31,-58,-38;
+MA   /M: SY='R'; M=-8,-42,-3,-2,-30,-14,6,-18,26,-27,-4,4,-5,9,33,-1,-3,-22,-16,-41;
+MA   /M: SY='E'; M=1,-47,22,26,-45,-1,10,-19,4,-29,-16,11,-3,23,-1,1,-2,-29,-57,-41;
+MA   /M: SY='D'; M=3,-45,23,20,-41,3,1,-17,5,-31,-15,13,-7,10,-6,3,2,-19,-59,-40;
+MA   /M: SY='D'; M=3,-49,26,26,-47,6,2,-20,-1,-32,-19,13,-8,14,-12,1,-2,-27,-64,-42;
+MA   /M: SY='H'; M=-5,-39,8,8,-26,-6,22,-21,8,-27,-15,11,-4,14,10,-1,-5,-22,-38,-27;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='K'; D=-4; M=-1,-9,2,2,-3,-2,0,-3,5,-5,-1,2,-2,2,3,0,0,-5,-8,-7;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='G'; D=-4; M=1,-5,2,1,-7,5,-1,-4,-1,-6,-4,2,-1,-1,-2,2,0,-2,-9,-6;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='D'; D=-4; M=2,-12,6,4,-14,4,-1,-5,-2,-9,-6,3,-2,1,-5,1,0,-3,-19,-13;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='K'; D=-4; M=-2,-16,3,3,-6,-4,2,-6,9,-10,-2,4,-2,4,5,0,1,-8,-16,-13;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='W'; D=-4; M=-12,-17,-16,-19,2,-16,-7,-7,-13,-5,-9,-10,-16,-14,-5,-7,-11,-10,16,2;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='H'; D=-4; M=-10,-17,-9,-9,-2,-15,6,-8,-4,-3,-5,-4,-9,-2,2,-6,-8,-9,0,-4;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='W'; D=-4; M=-11,-21,-12,-14,-13,-16,0,-9,5,-10,-4,-5,-8,-3,19,-4,-8,-11,19,-16;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='M'; D=-4; M=0,-16,-6,-9,-8,-4,-8,4,0,-1,7,-3,-4,-5,-3,-1,2,5,-25,-19;
+MA   /I: MI=-38; MD=-38; I=-4;
+MA   /M: SY='E'; D=-4; M=6,-41,19,19,-48,19,-4,-21,-6,-35,-22,8,-5,8,-13,5,-2,-28,-62,-44;
+MA   /M: SY='R'; M=-18,-26,-19,-19,-1,-29,6,-13,7,-19,-8,-6,-17,-6,15,-10,-12,-23,-1,3;
+MA   /M: SY='T'; M=2,-11,-10,-11,-22,-8,-10,3,-6,-11,-3,-4,-1,-8,-4,2,5,3,-35,-25;
+MA   /M: SY='T'; M=0,-13,-7,-10,-16,-6,-7,-6,-2,-17,-6,0,-4,-7,-2,4,4,-8,-25,-17;
+MA   /M: SY='R'; M=-2,-30,-5,-6,-39,6,-2,-21,8,-33,-15,1,-4,-1,16,4,-4,-19,-21,-39;
+MA   /M: SY='K'; M=-5,-24,3,1,-24,-11,5,-17,10,-30,-12,5,-7,5,9,1,-2,-22,-42,-31;
+MA   /M: SY='F'; M=-34,-38,-53,-51,83,-48,-16,8,-5,17,1,-33,-45,-44,-43,-31,-29,-13,2,69;
+MA   /M: SY='M'; M=-6,-30,-7,-10,-18,-15,0,-3,-4,-7,2,-2,-11,-3,-4,-4,-3,-3,-35,-22;
+MA   /M: SY='R'; M=-11,-35,-11,-10,-40,-20,10,-17,28,-27,-3,0,-2,9,47,-1,-5,-20,7,-40;
+MA   /M: SY='R'; M=-10,-41,-8,-9,-25,-20,5,-10,25,-18,5,0,-6,8,33,-4,-4,-13,-15,-40;
+MA   /M: SY='F'; M=-26,-26,-42,-41,55,-43,-14,13,-22,17,3,-26,-38,-34,-36,-26,-20,-4,-14,50;
+MA   /M: SY='R'; M=-4,-34,-8,-11,-23,-15,-2,-1,8,-11,2,-2,-5,1,12,-2,1,-3,-29,-34;
+MA   /M: SY='L'; M=-18,-57,-39,-34,16,-39,-21,25,-28,56,36,-28,-24,-18,-29,-27,-16,21,-21,-10;
+MA   /M: SY='P'; M=11,-28,-9,-6,-45,-3,-3,-19,-11,-25,-21,-4,54,1,-3,9,4,-11,-56,-48;
+MA   /M: SY='E'; M=4,-43,22,22,-45,2,3,-19,2,-32,-19,12,2,14,-5,4,0,-25,-59,-42;
+MA   /M: SY='D'; M=2,-33,15,10,-33,9,5,-19,-1,-31,-21,13,-8,1,-10,5,1,-19,-48,-22;
+MA   /M: SY='V'; M=-2,-8,-21,-26,-10,-15,-17,8,-25,-2,-3,-15,-8,-19,-24,-6,-3,9,-49,-13;
+MA   /M: SY='D'; M=0,-47,25,21,-38,2,5,-22,6,-35,-20,15,-10,11,-6,2,-2,-24,-58,-35;
+MA   /M: SY='M'; M=1,-36,-8,-11,-20,-11,-8,3,-3,-4,4,-4,3,-2,-5,-3,2,4,-50,-36;
+MA   /M: SY='D'; M=4,-38,19,18,-42,3,0,-14,-3,-26,-16,11,-4,8,-11,4,2,-17,-55,-35;
+MA   /M: SY='Q'; M=3,-37,8,8,-32,-1,0,-13,5,-22,-9,6,0,9,2,3,2,-13,-47,-38;
+MA   /M: SY='V'; M=-1,-26,-18,-29,-8,-16,-20,31,-21,17,16,-15,-15,-16,-23,-11,0,33,-54,-27;
+MA   /M: SY='K'; M=-1,-31,-1,-4,-16,-7,-3,-8,13,-19,-2,5,-3,0,9,3,6,-8,-35,-32;
+MA   /M: SY='S'; M=7,7,-8,-9,-31,1,-16,-7,-15,-26,-16,-4,1,-13,-14,8,5,-3,-51,-25;
+MA   /M: SY='T'; M=6,-22,3,0,-30,2,-7,-8,1,-22,-9,4,1,-1,-2,7,7,-8,-42,-33;
+MA   /M: SY='L'; M=-13,-36,-29,-26,3,-30,-19,15,-20,29,26,-21,-21,-17,-22,-17,-11,10,-34,-11;
+MA   /I: MI=-59; MD=-59; I=-6;
+MA   /M: SY='D'; D=-6; M=0,-4,3,2,-4,0,1,-2,0,-3,-2,2,-1,1,-1,0,0,-2,-5,-3;
+MA   /I: MI=-59; MD=-59; I=-6;
+MA   /M: SY='S'; D=-6; M=2,-3,-3,-4,-9,-1,-5,-5,-4,-11,-6,1,-1,-6,-5,4,4,-6,-14,-6;
+MA   /M: SY='E'; M=3,-37,13,14,-37,0,3,-17,6,-28,-13,9,2,11,2,4,2,-19,-49,-39;
+MA   /M: SY='D'; M=2,-46,31,26,-46,4,10,-21,6,-35,-21,19,-8,14,-6,4,0,-23,-58,-35;
+MA   /M: SY='G'; M=13,-34,6,2,-48,48,-21,-26,-17,-41,-28,3,-5,-12,-26,11,0,-14,-70,-52;
+MA   /M: SY='V'; M=0,-25,-20,-36,-9,-16,-20,31,-16,17,21,-15,-13,-16,-19,-10,2,34,-54,-33;
+MA   /M: SY='L'; M=-19,-59,-40,-34,18,-41,-21,24,-29,58,37,-29,-25,-18,-30,-28,-17,19,-19,-9;
+MA   /M: SY='T'; M=4,-25,-6,-8,-18,-8,-10,0,-1,-12,-2,0,-4,-8,-8,5,14,-1,-43,-20;
+MA   /M: SY='I'; M=-7,-31,-29,-37,8,-25,-22,34,-22,29,22,-21,-19,-21,-27,-17,-5,32,-43,-15;
+MA   /M: SY='T'; M=7,-20,4,2,-33,0,-8,-8,1,-24,-12,5,0,-2,-6,10,14,-10,-49,-30;
+MA   /M: SY='V'; M=5,-20,-14,-24,-18,-3,-21,20,-21,4,6,-11,-8,-16,-23,-4,3,24,-58,-32;
+MA   /M: SY='P'; M=9,-30,-6,-2,-45,-5,2,-20,-9,-25,-20,-2,50,5,-1,8,2,-14,-55,-46;
+MA   /M: SY='K'; M=-11,-52,1,-1,-1,-17,2,-18,43,-28,3,9,-10,8,33,-2,-1,-23,-33,-43;
+MA   /I: MI=*; MD=*; I=0;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=130(129); /POSITIVE=130(129); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=1;
+CC   /TAXO-RANGE=??EP?; /MAX-REPEAT=2;
+DR   P30223, 14KD_MYCTU, T; P46729, 18K1_MYCAV, T; P46730, 18K1_MYCIT, T;
+DR   P46731, 18K2_MYCAV, T; P46732, 18K2_MYCIT, T; P12809, 18KD_MYCLE, T;
+DR   P02497, CRA2_MESAU, T; P24622, CRA2_MOUSE, T; P24623, CRA2_RAT  , T;
+DR   P15990, CRA2_SPAEH, T; P06904, CRAA_ALLMI, T; P02482, CRAA_ARTJA, T;
+DR   P02474, CRAA_BALAC, T; P02470, CRAA_BOVIN, T; P02487, CRAA_BRAVA, T;
+DR   P02472, CRAA_CAMDR, T; P02473, CRAA_CANFA, T; P02491, CRAA_CAVPO, T;
+DR   P02479, CRAA_CERSI, T; P02504, CRAA_CHICK, T; P02486, CRAA_CHOHO, T;
+DR   P02503, CRAA_DIDMA, T; P02494, CRAA_EULFU, T; P02471, CRAA_GIRCA, T;
+DR   P02478, CRAA_HORSE, T; P02489, CRAA_HUMAN, T; P02498, CRAA_LOXAF, T;
+DR   P02488, CRAA_MACMU, T; P02502, CRAA_MACRU, T; P02484, CRAA_MANJA, T;
+DR   P02483, CRAA_MUSVI, T; P02492, CRAA_OCHPR, T; P02501, CRAA_ORYAF, T;
+DR   P02495, CRAA_PERPO, T; P02477, CRAA_PHOPH, T; P02475, CRAA_PIG  , T;
+DR   P02499, CRAA_PROCA, T; P02493, CRAA_RABIT, T; P02507, CRAA_RANES, T;
+DR   P02508, CRAA_RANTE, T; P02490, CRAA_RAT  , T; P02505, CRAA_RHEAM, T;
+DR   P02509, CRAA_SQUAC, T; P02485, CRAA_TAMME, T; P02476, CRAA_TAPIN, T;
+DR   P02500, CRAA_TRIIN, T; P02506, CRAA_TUPTE, T; P02480, CRAA_URSUR, T;
+DR   P02481, CRAA_ZALCA, T; Q05557, CRAB_ANAPL, T; P02510, CRAB_BOVIN, T;
+DR   Q05713, CRAB_CHICK, T; P02511, CRAB_HUMAN, T; P05811, CRAB_MESAU, T;
+DR   P23927, CRAB_MOUSE, T; P41316, CRAB_RABIT, T; P23928, CRAB_RAT  , T;
+DR   P02512, CRAB_SQUAC, T; P19036, HS11_ARATH, T; P34696, HS11_CAEEL, T;
+DR   Q05832, HS11_CHERU, T; P27396, HS11_DAUCA, T; P30693, HS11_HELAN, T;
+DR   P30221, HS11_LYCES, T; P27879, HS11_MEDSA, T; P27777, HS11_ORYSA, T;
+DR   P19243, HS11_PEA  , T; P02519, HS11_SOYBN, T; P12810, HS11_WHEAT, T;
+DR   P13853, HS12_ARATH, T; P06582, HS12_CAEEL, T; P27397, HS12_DAUCA, T;
+DR   P27880, HS12_MEDSA, T; P31673, HS12_ORYSA, T; P02520, HS12_SOYBN, T;
+DR   P19037, HS13_ARATH, T; P04793, HS13_SOYBN, T; P04794, HS14_SOYBN, T;
+DR   P04795, HS15_SOYBN, T; P06581, HS16_CAEEL, T; P05478, HS16_SOYBN, T;
+DR   P02513, HS17_CAEEL, T; Q03928, HS18_CLOAB, T; Q07160, HS20_NIPBR, T;
+DR   P29830, HS21_ARATH, T; P46516, HS21_HELAN, T; P24631, HS21_MAIZE, T;
+DR   P19242, HS21_PEA  , T; Q01544, HS21_PHANI, T; P05477, HS21_SOYBN, T;
+DR   P02515, HS22_DROME, T; P24632, HS22_MAIZE, T; Q01545, HS22_PHANI, T;
+DR   P02516, HS23_DROME, T; Q08275, HS23_MAIZE, T; Q00649, HS25_CHICK, T;
+DR   P02517, HS26_DROME, T; P15992, HS26_YEAST, T; P42929, HS27_CANFA, T;
+DR   P15991, HS27_CRILO, T; P02518, HS27_DROME, T; P04792, HS27_HUMAN, T;
+DR   P14602, HS27_MOUSE, T; P42930, HS27_RAT  , T; P31170, HS2C_ARATH, T;
+DR   P11890, HS2C_CHERU, T; P12811, HS2C_CHLRE, T; P09886, HS2C_PEA  , T;
+DR   P30222, HS2C_PETHY, T; P09887, HS2C_SOYBN, T; Q00445, HS2C_WHEAT, T;
+DR   P46254, HS2M_PEA  , T; P40920, HS30_EMENI, T; P19752, HS30_NEUCR, T;
+DR   P42931, HS30_ONCTS, T; P04120, HS3A_XENLA, T; P30218, HS3C_XENLA, T;
+DR   P30219, HS3D_XENLA, T; P19244, HS41_PEA  , T; P30236, HS41_SOYBN, T;
+DR   P05812, HS6A_DROME, T; P22979, HS6C_DROME, T; P29209, IBPA_ECOLI, T;
+DR   P29210, IBPB_ECOLI, T; P29778, OV21_ONCVO, T; P29779, OV22_ONCVO, T;
+DR   P12812, P40_SCHMA , T; Q06823, SP21_STIAU, T; P34328, YKZ1_CAEEL, T;
+DR   P30220, HS3E_XENLA, P;
+DO   PDOC00791;
+//
+ID   RAS_GTPASE_ACTIV_2; MATRIX.
+AC   PS50018;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Ras GTPase-activating proteins profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=195;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=190;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=1.4110; R2=0.0141; TEXT='OrigScore';
+MA   /CUT_OFF: LEVEL=0; SCORE=0; N_SCORE=6.5; MODE=1;
+MA   /DEFAULT: D=-20; I=-20; B1=-100; E1=-100; MI=-105; MD=-105; IM=-105; DM=-105;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='D'; M=-16,31,-30,43,20,-40,-14,4,-32,4,-26,-18,12,-10,23,-2,0,-10,-30,-32,-16,22;
+MA   /M: SY='W'; M=-14,-23,-34,-24,-16,-7,-24,-20,-9,4,-13,-7,-20,-22,-9,6,-22,-16,-8,37,5,-12;
+MA   /M: SY='D'; M=-12,27,-23,35,13,-28,-15,-7,-28,-3,-22,-22,10,-9,-2,-9,7,12,-19,-35,-16,6;
+MA   /M: SY='E'; M=-6,-3,-24,0,15,-8,-21,-8,-13,-7,0,-6,-8,-14,3,-9,-8,-9,-14,-22,-8,10;
+MA   /M: SY='L'; M=-9,-21,-19,-23,-18,8,-28,-13,10,-21,23,8,-21,-25,-17,-16,-15,5,7,-13,12,-18;
+MA   /M: SY='A'; M=38,-11,-11,-19,-10,-16,-4,-19,-7,-13,-4,-7,-10,-13,-10,-19,8,1,0,-22,-17,-10;
+MA   /M: SY='R'; M=-3,-10,-24,-13,-8,-13,-10,-7,-13,-1,-14,-7,-4,-17,0,9,1,0,-10,-17,-2,-6;
+MA   /M: SY='V'; M=-4,-13,-22,-18,-19,-13,-5,-20,6,-18,-8,-3,-6,-12,-17,-19,-3,-5,7,-28,-15,-20;
+MA   /M: SY='L'; M=-13,-29,-21,-31,-22,25,-30,-15,14,-28,37,14,-27,-30,-23,-19,-27,-10,6,-9,15,-22;
+MA   /M: SY='V'; M=2,-28,-15,-30,-25,1,-27,-26,24,-23,21,12,-27,-27,-24,-21,-15,-4,30,-25,-7,-25;
+MA   /M: SY='R'; M=-9,9,-21,5,0,-20,-13,-5,-23,9,-22,-15,14,-15,1,18,8,10,-17,-30,-14,-1;
+MA   /M: SY='L'; M=2,-18,-20,-25,-19,-2,-23,-20,17,-22,20,9,-14,-23,-17,-20,-14,-6,11,-23,-7,-19;
+MA   /M: SY='F'; M=-17,-26,-21,-34,-22,53,-28,-15,1,-24,11,7,-19,-27,-23,-16,-19,-10,-2,1,20,-19;
+MA   /M: SY='D'; M=-15,6,-27,12,7,-18,-20,-3,-19,1,-8,-10,-1,-16,4,7,-8,-6,-17,-24,-5,4;
+MA   /M: SY='H'; M=-5,2,-21,2,11,-21,-14,18,-24,-1,-22,-13,6,-11,6,-2,12,6,-18,-32,-7,7;
+MA   /M: SY='R'; M=-15,-3,-28,-1,16,-20,-21,12,-24,10,-13,-9,-1,-14,9,24,-7,-7,-21,-25,-8,10;
+MA   /M: SY='H'; M=-12,11,-25,6,3,-16,-13,35,-23,1,-23,-11,21,-18,5,1,0,-7,-25,-27,4,2;
+MA   /M: SY='L'; M=-2,-21,-21,-23,-13,-3,-23,-16,4,-11,23,8,-20,-24,-11,-2,-19,-8,1,-20,-6,-13;
+MA   /M: SY='L'; M=-3,-19,-20,-21,-10,-2,-25,-19,11,-21,22,8,-18,-20,-12,-18,-12,-2,6,-23,-6,-12;
+MA   /M: SY='Y'; M=-7,-13,-23,-12,-5,-3,-21,11,-6,-8,0,-1,-11,-21,-5,-8,-9,-7,-6,-15,14,-7;
+MA   /M: SY='Q'; M=-9,-10,-28,-9,7,-21,-22,-9,-7,-3,-8,-4,-8,1,11,-1,-5,-7,-13,-25,-13,7;
+MA   /M: SY='L'; M=-12,-31,-23,-33,-24,19,-30,-22,16,-28,32,13,-29,-29,-24,-21,-27,-11,10,-1,6,-23;
+MA   /M: SY='L'; M=-11,-30,-20,-34,-26,27,-31,-23,20,-28,28,13,-26,-29,-27,-21,-22,-8,16,-13,7,-26;
+MA   /M: SY='W'; M=-7,-13,-2,-17,-11,-16,-20,-9,-22,-3,-19,-12,-12,-21,-4,-7,-9,-5,-17,9,-3,-7;
+MA   /M: SY='N'; M=1,7,-18,1,0,-18,-13,-7,-10,-5,-13,-5,8,-14,0,-8,5,7,-8,-30,-14,0;
+MA   /M: SY='L'; M=-2,-26,-17,-29,-21,3,-25,-17,19,-22,30,24,-26,-26,-16,-18,-20,-7,16,-22,-4,-19;
+MA   /M: SY='L'; M=-3,-20,-21,-28,-21,15,-25,-19,14,-24,17,7,-13,-24,-21,-20,-15,-7,7,-16,1,-21;
+MA   /M: SY='D'; M=-8,16,-23,21,8,-28,-12,-5,-24,5,-23,-12,7,-11,7,-1,7,2,-18,-32,-15,7;
+MA   /M: SY='K'; M=-11,1,-26,-1,9,-23,-19,1,-23,20,-18,-8,3,-13,10,17,-5,-4,-19,-24,-9,9;
+MA   /M: SY='E'; M=-11,13,-30,24,57,-31,-19,0,-31,9,-21,-21,2,-1,18,-1,0,-10,-30,-31,-20,38;
+MA   /M: SY='I'; M=-8,-30,-21,-35,-28,9,-34,-27,34,-27,21,15,-25,-26,-25,-24,-19,-7,30,-20,0,-28;
+MA   /M: SY='E'; M=-1,4,-25,8,30,-27,-15,-6,-26,15,-24,-17,1,-5,11,4,5,-4,-21,-28,-17,21;
+MA   /M: SY='K'; M=-4,-7,-23,-7,-3,-15,-17,-3,-12,4,-4,2,-6,-17,-1,4,-7,-7,-9,-24,-7,-3;
+MA   /M: SY='A'; M=11,-9,-18,-13,-3,-14,-16,-17,-5,-6,-3,-5,-8,-13,-6,-11,2,6,-2,-24,-12,-5;
+MA   /M: SY='D'; M=-5,21,-21,29,7,-29,-11,-7,-23,-5,-22,-19,8,-12,0,-10,8,1,-14,-35,-17,3;
+MA   /M: SY='D'; M=-10,19,-25,26,12,-29,-3,-3,-31,2,-27,-22,14,-12,2,4,8,-4,-24,-34,-19,6;
+MA   /M: SY='A'; M=4,-8,-20,-10,-6,-18,-15,-11,-5,-8,-9,4,-10,1,-1,-12,0,0,-4,-27,-14,-4;
+MA   /I: I=-4; MI=0; IM=0; DM=-25; MD=-25;
+MA   /M: SY='Q'; M=-9,8,-22,3,3,-22,-17,6,-16,-3,-13,-6,9,-14,16,-2,3,6,-18,-28,-9,9;
+MA   /M: SY='T'; M=1,6,-16,6,3,-18,-14,-13,-16,-8,-13,-14,2,-11,-4,-10,14,20,-9,-32,-14,0;
+MA   /M: SY='L'; M=-10,-29,-24,-34,-24,5,-33,-23,32,-28,35,23,-25,-25,-18,-23,-25,-10,18,-20,0,-23;
+MA   /M: SY='F'; M=-15,-30,-19,-36,-27,53,-30,-21,8,-29,20,6,-24,-30,-34,-20,-22,-9,8,-2,18,-27;
+MA   /M: SY='R'; M=-18,-9,-28,-10,-1,-19,-20,-2,-28,26,-19,-10,0,-19,8,62,-7,-4,-18,-21,-10,-1;
+MA   /M: SY='G'; M=7,-10,-26,-12,-15,-26,41,-17,-32,-10,-24,-16,-2,-18,-13,-6,0,-14,-22,-20,-25,-15;
+MA   /M: SY='N'; M=-9,36,-19,17,-1,-19,-2,7,-19,-1,-28,-19,54,-19,-1,-1,11,5,-27,-39,-19,-1;
+MA   /M: SY='S'; M=4,-2,-13,-5,-4,-18,-9,-15,-16,-10,-23,-16,3,1,-5,-11,28,27,-9,-35,-18,-5;
+MA   /M: SY='L'; M=-9,-24,1,-27,-19,-2,-29,-22,8,-26,22,7,-23,-17,-20,-21,-19,-4,4,-27,-9,-20;
+MA   /M: SY='A'; M=31,-17,-11,-24,-16,-12,-11,-23,4,-14,1,-2,-17,-17,-16,-20,1,-1,15,-23,-16,-16;
+MA   /M: SY='T'; M=4,-3,-12,-8,-7,-14,-12,-16,-9,-12,-17,-12,3,-11,-6,-12,26,29,-2,-34,-14,-7;
+MA   /M: SY='K'; M=-11,-3,-28,-4,6,-26,-20,-7,-27,35,-24,-9,0,-13,12,34,-6,-4,-19,-21,-10,8;
+MA   /M: SY='M'; M=3,-18,-8,-26,-18,-7,-20,-16,11,-18,7,16,-14,-19,-10,-19,-5,-3,8,-26,-9,-15;
+MA   /M: SY='M'; M=-9,-25,-20,-31,-22,3,-26,-12,24,-20,29,38,-24,-24,-12,-16,-22,-9,16,-21,-1,-17;
+MA   /M: SY='T'; M=-3,3,-17,3,11,-18,-17,-13,-15,-5,-15,-14,0,-9,-2,-8,13,19,-7,-32,-15,5;
+MA   /M: SY='Z'; M=-8,-9,-21,-12,2,1,-19,-8,-10,-9,-6,-1,-6,-15,3,-8,1,1,-10,-20,-3,4;
+MA   /M: SY='Y'; M=-10,-21,8,-27,-23,19,-26,-7,-5,-20,1,0,-19,-29,-20,-18,-14,-8,-4,-5,24,-22;
+MA   /M: SY='F'; M=-6,-12,-17,-23,-18,19,-19,-10,2,-15,4,15,-7,-20,-15,-13,-7,2,0,-15,4,-15;
+MA   /M: SY='R'; M=-15,-7,-29,-8,2,-16,-21,-7,-27,34,-22,-9,-2,-16,6,43,-11,-10,-18,-17,-6,2;
+MA   /M: SY='V'; M=1,-17,-19,-19,-15,-11,-10,-18,-1,-10,-2,-2,-12,-21,-12,-2,-2,-3,6,-25,-13,-15;
+MA   /I: I=-10; MI=0; IM=0; DM=-25; MD=-25;
+MA   /M: SY='Y'; M=-9,-15,-23,-16,-12,-5,-23,-9,-5,0,-10,-5,-13,-11,-9,5,-5,1,1,-15,7,-13;
+MA   /M: SY='G'; M=9,-10,-26,-12,-18,-28,57,-20,-34,-18,-26,-18,-2,-18,-18,-20,2,-16,-24,-20,-28,-18;
+MA   /M: SY='N'; M=4,9,-20,2,-1,-23,-4,-5,-17,-5,-16,-11,12,-15,6,-7,5,0,-17,-28,-16,3;
+MA   /M: SY='E'; M=-4,9,-23,7,12,-24,-15,10,-22,2,-19,-12,8,-11,9,-1,4,4,-20,-29,-10,10;
+MA   /M: SY='Y'; M=-13,-20,-27,-22,-20,30,-27,11,-1,-12,0,-1,-19,-28,-13,-12,-17,-9,-8,23,64,-20;
+MA   /M: SY='L'; M=-9,-30,-19,-30,-21,9,-30,-21,21,-29,46,19,-30,-30,-21,-20,-28,-9,14,-21,-1,-21;
+MA   /M: SY='Q'; M=-13,-3,-28,-3,2,-23,-21,13,-15,5,-16,-4,1,-15,14,12,-4,-9,-16,-25,-5,5;
+MA   /M: SY='K'; M=-8,-3,-25,-3,5,-26,-17,5,-22,19,-23,-7,1,-13,14,16,1,-5,-16,-25,-9,9;
+MA   /M: SY='T'; M=6,-15,-16,-22,-16,-6,-22,-22,9,-18,9,3,-13,-16,-14,-18,-1,15,8,-24,-8,-16;
+MA   /M: SY='L'; M=-10,-30,-20,-30,-20,10,-30,-20,20,-30,50,20,-30,-30,-20,-20,-30,-10,10,-20,0,-20;
+MA   /M: SY='K'; M=-5,6,-25,10,5,-23,-13,-3,-25,11,-23,-14,3,-13,6,10,2,-4,-18,-23,-6,4;
+MA   /M: SY='P'; M=-7,-4,-35,5,5,-32,-16,-13,-23,-6,-27,-19,-10,53,-1,-15,-5,-9,-27,-30,-25,-1;
+MA   /M: SY='V'; M=-5,-26,-3,-28,-24,5,-28,-24,15,-25,16,7,-23,-28,-24,-21,-12,-3,20,-26,-6,-24;
+MA   /M: SY='L'; M=-9,-30,-22,-33,-24,6,-33,-24,30,-29,37,19,-27,-27,-21,-23,-25,-9,20,-21,-1,-24;
+MA   /M: SY='R'; M=-12,2,-27,2,4,-23,-17,-5,-23,21,-18,-9,5,-15,8,23,-5,-7,-19,-25,-11,5;
+MA   /M: SY='E'; M=-9,0,-26,3,12,-23,-15,-10,-14,4,-15,-9,-3,-12,4,-1,-4,-5,-11,-26,-14,7;
+MA   /M: SY='I'; M=-8,-30,-26,-38,-30,0,-38,-30,46,-28,18,18,-22,-22,-22,-28,-18,-8,34,-22,-2,-30;
+MA   /M: SY='I'; M=-3,-25,-11,-33,-25,-3,-29,-22,26,-22,15,21,-21,-23,-17,-22,-16,-8,21,-24,-6,-23;
+MA   /M: SY='E'; M=-6,8,-24,11,17,-25,-19,-7,-17,-1,-15,-12,1,-8,10,-7,3,4,-16,-29,-14,13;
+MA   /M: SY='S'; M=-2,11,-7,10,4,-23,-7,4,-25,-8,-28,-19,16,-14,0,-8,19,5,-19,-39,-17,1;
+MA   /M: SY='K'; M=-5,2,-24,2,8,-25,-12,-8,-25,17,-28,-16,6,-1,5,12,7,0,-20,-29,-17,6;
+MA   /M: SY='D'; M=-13,24,-28,35,19,-35,-13,-2,-33,13,-28,-20,11,-9,10,2,2,-7,-26,-32,-17,15;
+MA   /I: I=-3; MI=0; IM=0; DM=-25; MD=-25;
+MA   /M: SY='S'; M=3,-6,-16,-6,-3,-13,-8,-14,-17,-12,-25,-17,1,6,-6,-13,24,15,-12,-33,-17,-5;
+MA   /M: SY='C'; M=-14,-23,37,-31,-28,22,-20,-20,-17,-27,-8,-10,-18,-33,-31,-23,-14,-11,-8,-16,4,-28;
+MA   /M: SY='E'; M=-11,13,-30,23,52,-32,-19,1,-30,9,-21,-19,2,-2,22,0,0,-10,-30,-30,-19,37;
+MA   /M: SY='I'; M=-6,-30,-19,-33,-27,3,-33,-27,33,-26,25,16,-27,-27,-24,-23,-19,-6,32,-24,-4,-27;
+MA   /M: SY='D'; M=-11,31,-24,43,16,-32,-10,-4,-32,-2,-27,-25,14,-9,1,-9,10,3,-23,-38,-19,8;
+MA   /M: SY='P'; M=-10,-17,-38,-8,2,-30,-20,-18,-22,0,-30,-18,-17,74,-7,-12,-10,-10,-28,-28,-27,-7;
+MA   /M: SY='T'; M=4,-6,-15,-9,-1,-15,-14,-12,-8,-9,-9,-4,-4,-13,0,-10,11,13,-3,-29,-13,0;
+MA   /M: SY='R'; M=-13,-2,-30,-1,13,-28,-20,-4,-29,36,-25,-10,0,-12,16,37,-8,-10,-22,-21,-11,13;
+MA   /I: I=-6; MI=0; MD=-25; IM=0;
+MA   /M: SY='L'; M=-1,-18,-16,-21,-16,1,-20,-16,13,-20,24,10,-15,-22,-15,-16,-15,-6,9,-19,-5,-16;D=-10;
+MA   /I: DM=-25;
+MA   /M: SY='E'; M=-9,-8,-28,-4,15,-20,-23,-12,-14,6,-7,-7,-12,4,1,-2,-11,-9,-13,-26,-14,7;
+MA   /M: SY='E'; M=-1,0,-27,4,14,-27,-9,-12,-24,1,-23,-18,-3,13,0,-7,3,-2,-21,-29,-21,6;
+MA   /M: SY='N'; M=-6,14,-21,10,1,-23,-1,8,-26,1,-28,-17,23,-15,1,2,12,0,-23,-34,-15,0;
+MA   /M: SY='E'; M=-7,14,-25,24,40,-29,-14,-2,-29,4,-24,-22,6,-4,12,-4,9,-3,-25,-34,-20,26;
+MA   /M: SY='D'; M=-2,18,-21,21,21,-27,-8,-3,-26,-1,-26,-21,15,-9,5,-6,14,1,-22,-36,-20,13;
+MA   /M: SY='V'; M=2,-26,-13,-27,-23,0,-25,-25,20,-21,17,9,-25,-27,-23,-19,-10,-1,29,-27,-9,-23;
+MA   /M: SY='E'; M=-9,13,-27,18,35,-29,-15,-2,-29,14,-25,-19,9,-6,13,4,3,-6,-26,-31,-18,24;
+MA   /M: SY='E'; M=-6,2,-23,3,18,-23,-18,-9,-24,14,-20,-14,1,-8,7,9,5,9,-17,-28,-14,12;
+MA   /I: I=-5; MI=0; IM=0; DM=-25; MD=-25;
+MA   /M: SY='N'; M=-9,23,-21,9,0,-20,-5,6,-18,2,-24,-11,38,-18,6,6,8,0,-24,-35,-17,2;
+MA   /M: SY='L'; M=-10,-16,-25,-18,-7,-9,-25,-9,4,-7,5,5,-12,-20,5,-3,-11,-7,-3,-18,1,-3;
+MA   /M: SY='R'; M=0,0,-24,0,9,-24,-14,0,-25,12,-19,-12,0,-12,5,19,-2,-6,-17,-24,-13,5;
+MA   /M: SY='N'; M=-12,11,-23,1,-3,-15,-13,12,-12,-5,-8,-5,22,-21,3,2,-4,-6,-20,-30,-9,-1;
+MA   /M: SY='L'; M=-12,-29,-20,-32,-22,20,-29,-18,17,-28,40,21,-27,-29,-21,-19,-27,-10,8,-15,5,-21;
+MA   /M: SY='L'; M=-12,-20,-23,-20,-10,2,-27,-7,6,-12,18,11,-20,-24,-6,-4,-19,-9,1,-13,9,-9;
+MA   /M: SY='Q'; M=-3,0,-24,-1,3,-21,-15,-2,-17,7,-15,-7,2,-15,12,6,0,-5,-17,-21,-6,6;
+MA   /M: SY='Y'; M=-14,-25,-27,-28,-23,13,-28,-3,13,-16,11,16,-24,-27,-13,-15,-22,-11,5,13,32,-20;
+MA   /M: SY='T'; M=-3,-16,-13,-22,-19,-3,-24,-20,11,-15,8,11,-16,-20,-16,-14,-1,18,18,-27,-7,-17;
+MA   /M: SY='E'; M=-8,16,-24,20,25,-27,-14,-5,-27,6,-23,-19,10,-7,7,-2,8,4,-22,-33,-17,16;
+MA   /M: SY='K'; M=-12,-3,-28,-1,14,-25,-21,-7,-25,32,-23,-10,-2,-12,9,30,-8,-9,-16,-23,-12,10;
+MA   /M: SY='F'; M=-8,-28,-19,-34,-26,35,-29,-22,13,-27,20,8,-23,-28,-29,-21,-19,-8,13,-9,10,-26;
+MA   /M: SY='F'; M=-14,-32,-25,-36,-27,33,-29,-24,10,-27,17,5,-27,-29,-28,-21,-25,-12,6,18,15,-25;
+MA   /M: SY='E'; M=-10,11,-25,17,19,-26,-15,17,-28,2,-24,-16,8,-10,7,-2,6,-2,-23,-33,-10,12;
+MA   /M: SY='A'; M=29,-7,-15,-14,-5,-22,-5,-16,-16,5,-16,-11,-6,-11,-4,-2,7,-1,-6,-22,-17,-5;
+MA   /M: SY='I'; M=-9,-30,-27,-38,-29,1,-38,-29,45,-29,22,19,-22,-22,-21,-28,-20,-9,30,-21,-1,-29;
+MA   /M: SY='I'; M=-7,-22,-19,-27,-22,10,-28,-20,17,-22,12,7,-18,-23,-20,-19,-9,3,16,-17,5,-22;
+MA   /M: SY='S'; M=4,6,-17,-1,-4,-19,2,-5,-17,-4,-23,-10,16,-14,-2,-6,17,5,-14,-33,-18,-3;
+MA   /M: SY='S'; M=12,2,-11,-1,-2,-19,-2,-10,-18,-9,-26,-18,11,-11,-2,-10,33,19,-10,-37,-19,-2;
+MA   /M: SY='S'; M=7,-14,-14,-16,-14,-11,-15,-20,6,-16,-9,-4,-7,-17,-12,-17,14,8,14,-32,-14,-14;
+MA   /M: SY='D'; M=-8,20,-22,26,11,-27,-10,3,-25,-4,-25,-20,14,-12,1,-8,11,0,-18,-37,-16,6;
+MA   /M: SY='E'; M=-12,6,-28,11,20,-23,-20,-3,-19,6,-18,-12,0,-10,10,2,-2,-8,-19,-24,-7,14;
+MA   /M: SY='F'; M=-14,-29,-2,-36,-27,30,-32,-23,11,-30,19,7,-23,-29,-29,-23,-21,-10,7,-13,7,-27;
+MA   /M: SY='P'; M=-10,-20,-40,-10,0,-30,-20,-20,-20,-10,-30,-20,-20,90,-10,-20,-10,-10,-30,-30,-30,-10;
+MA   /M: SY='P'; M=-8,-14,-27,-14,-8,-10,-22,-10,-5,-4,-14,-7,-10,8,-7,-10,-3,0,-9,-16,4,-11;
+MA   /M: SY='Q'; M=-5,-3,-25,-3,5,-25,-2,-9,-17,-5,-18,-10,-1,-6,6,-8,1,-3,-15,-27,-18,5;
+MA   /M: SY='L'; M=-10,-28,-22,-32,-22,6,-30,-18,26,-26,39,27,-26,-26,-16,-20,-26,-10,14,-20,0,-20;
+MA   /M: SY='R'; M=-17,-15,-6,-17,-9,-10,-23,-8,-23,12,-15,-9,-7,-25,-3,41,-11,-9,-11,-23,-10,-9;
+MA   /M: SY='Y'; M=-12,4,-26,6,-4,-3,-15,-2,-19,-8,-18,-15,2,-19,-4,-10,0,-5,-19,-2,10,-4;
+MA   /M: SY='I'; M=-5,-30,-20,-35,-30,0,-35,-30,40,-25,15,15,-25,-25,-25,-25,-15,-5,40,-25,-5,-30;
+MA   /M: SY='C'; M=-7,-22,46,-30,-26,10,-27,-20,-14,-26,-4,-9,-20,-33,-27,-24,-13,-9,-5,-22,-1,-26;
+MA   /M: SY='H'; M=-11,-3,-28,-3,2,-23,-9,24,-27,13,-24,-7,2,-15,8,8,-5,-12,-23,-21,3,3;
+MA   /M: SY='C'; M=-3,-9,27,-15,-18,-14,-22,-21,-8,-20,-7,-9,-8,-25,-18,-20,-3,0,0,-36,-18,-18;
+MA   /M: SY='L'; M=-11,-30,-23,-33,-23,14,-33,-23,26,-30,39,18,-27,-27,-22,-23,-27,-10,14,-17,3,-23;
+MA   /M: SY='R'; M=-18,-12,-30,-12,-4,-4,-24,8,-18,15,-14,-5,-8,-22,8,29,-13,-10,-17,-1,24,-2;
+MA   /M: SY='Q'; M=-11,11,-17,10,13,-32,-16,1,-25,12,-25,-12,11,-13,24,6,-1,-8,-27,-29,-15,19;
+MA   /M: SY='A'; M=7,-13,-6,-17,-11,-14,-14,-16,-6,-6,-7,-2,-10,-19,-9,-6,3,0,2,-28,-14,-10;
+MA   /M: SY='A'; M=13,-17,-13,-22,-16,-6,-18,-22,5,-17,11,2,-17,-19,-16,-18,-2,8,11,-24,-10,-16;
+MA   /M: SY='C'; M=-3,0,7,-3,4,-25,-9,3,-26,-8,-22,-15,4,-17,3,-10,4,-6,-21,-34,-17,3;
+MA   /M: SY='H'; M=-8,-4,-27,-4,12,-21,-21,16,-15,3,-14,-5,-3,-13,7,4,-6,-11,-13,-26,-5,7;
+MA   /M: SY='R'; M=-10,-4,-26,-6,0,-20,-19,0,-14,12,-14,-5,2,-16,6,13,-4,-6,-13,-25,-8,2;
+MA   /M: SY='F'; M=-17,-24,-10,-33,-26,46,-26,-20,-4,-26,5,-3,-17,-30,-31,-19,-20,-11,-6,13,17,-25;
+MA   /M: SY='P'; M=-11,-21,-36,-15,-5,-21,-23,-19,-9,-11,-15,-11,-20,56,-11,-13,-13,-10,-19,-27,-22,-12;
+MA   /M: SY='D'; M=-8,24,-22,27,16,-27,-9,-2,-26,-1,-26,-21,20,-10,5,-5,11,4,-23,-36,-18,10;
+MA   /M: SY='N'; M=-1,11,-23,3,-4,-17,-12,5,-13,-1,-18,-10,16,-17,-3,-5,-1,-6,-15,-25,-5,-5;
+MA   /M: SY='A'; M=13,-7,-17,-12,-9,-18,-1,-16,-15,-9,-13,-11,-3,-6,-9,-9,9,7,-9,-26,-18,-9;
+MA   /M: SY='T'; M=-5,-2,-23,-3,2,-12,-22,-2,-7,-10,-4,-6,-5,-14,-4,-12,-2,4,-7,-23,-1,-2;
+MA   /I: MD=-15;
+MA   /M: SY='V'; M=-7,-4,-21,-3,-9,-15,-16,-12,3,-11,-4,4,-7,-17,-5,-13,-4,-5,6,-27,-10,-8; D=-2;
+MA   /I: MD=-15;
+MA   /M: SY='R'; M=-7,-4,-18,-5,4,-14,-16,-6,-9,6,-9,-5,-2,-9,6,11,-1,4,-8,-17,-7,4; D=-2;
+MA   /I: MD=-15;
+MA   /M: SY='Y'; M=-7,-12,-16,-14,-9,3,-19,-7,9,-11,7,4,-10,-13,-8,-11,-8,1,4,-7,10,-10; D=-2;
+MA   /I: MD=-15;
+MA   /M: SY='C'; M=-5,-10,2,-11,-7,-7,-13,-9,-7,-5,0,-3,-7,-15,-6,2,-3,-2,-4,-19,-8,-7; D=-2;
+MA   /I: I=-4; MI=0; IM=0; DM=-20;
+MA   /M: SY='A'; M=15,-21,-16,-26,-20,-8,-11,-24,10,-19,8,3,-19,-21,-19,-21,-7,-5,15,-23,-12,-20;
+MA   /M: SY='V'; M=0,-28,-18,-33,-28,-2,-31,-29,35,-23,12,12,-24,-24,-24,-24,-12,-4,37,-25,-7,-28;
+MA   /M: SY='G'; M=5,-5,-20,-5,-10,-25,36,-15,-30,-15,-30,-20,5,-15,-10,-15,19,-1,-20,-30,-25,-10;
+MA   /M: SY='G'; M=3,1,-19,-2,-8,-24,29,-12,-28,-13,-30,-20,12,-15,-8,-13,20,1,-21,-32,-24,-8;
+MA   /M: SY='F'; M=-8,-25,-18,-32,-23,45,-24,-19,2,-26,13,2,-18,-26,-29,-19,-14,-6,1,-4,14,-23;
+MA   /M: SY='V'; M=-7,-29,-18,-33,-27,11,-31,-23,27,-24,22,18,-26,-27,-24,-21,-18,-6,28,-21,-1,-26;
+MA   /M: SY='F'; M=-20,-29,-21,-38,-29,74,-30,-15,0,-28,9,0,-20,-30,-36,-19,-20,-10,-1,12,36,-29;
+MA   /M: SY='L'; M=-11,-29,-21,-29,-20,12,-30,-15,18,-28,44,18,-29,-30,-19,-19,-29,-10,8,-14,10,-20;
+MA   /M: SY='R'; M=-20,-10,-30,-10,0,-20,-20,0,-30,30,-20,-10,0,-20,10,70,-10,-10,-20,-20,-10,0;
+MA   /M: SY='F'; M=-19,-29,-21,-36,-28,65,-30,-15,2,-28,14,2,-21,-30,-34,-19,-21,-10,0,9,32,-28;
+MA   /M: SY='F'; M=-12,-29,-22,-37,-28,30,-32,-22,24,-26,18,17,-22,-26,-26,-22,-20,-9,17,-10,10,-27;
+MA   /M: SY='C'; M=1,3,37,-10,-16,-21,-6,-14,-24,-16,-23,-18,11,-26,-16,-17,1,-6,-17,-39,-25,-16;
+MA   /M: SY='P'; M=-9,-21,-37,-12,-3,-27,-21,-21,-16,-11,-27,-17,-21,80,-12,-20,-10,-9,-23,-30,-28,-12;
+MA   /M: SY='A'; M=45,-12,-10,-21,-12,-18,-3,-21,-6,-11,-8,-8,-12,-12,-12,-20,8,0,5,-21,-19,-12;
+MA   /M: SY='I'; M=-10,-30,-28,-38,-28,2,-38,-28,45,-30,25,20,-22,-22,-20,-28,-22,-10,26,-20,0,-28;
+MA   /M: SY='L'; M=-6,-30,-17,-31,-25,5,-31,-25,27,-26,30,16,-29,-29,-24,-21,-21,-6,29,-24,-4,-25;
+MA   /M: SY='S'; M=10,7,-14,1,-3,-21,6,-8,-20,-9,-28,-19,18,-13,-3,-10,27,10,-15,-36,-21,-3;
+MA   /M: SY='P'; M=-10,-20,-40,-10,0,-30,-20,-20,-20,-10,-30,-20,-20,90,-10,-20,-10,-10,-30,-30,-30,-10;
+MA   /M: SY='D'; M=-14,12,-28,18,8,-25,-16,9,-28,11,-24,-14,6,-14,10,10,-2,-8,-23,-23,-2,7;
+MA   /M: SY='A'; M=7,-12,-16,-15,-5,-9,-15,-14,-2,-13,5,4,-11,-16,-6,-14,1,4,-1,-26,-11,-6;
+MA   /M: SY='F'; M=-7,-17,-20,-22,-8,38,-22,-15,-9,-18,-2,-7,-12,-20,-21,-15,-6,-6,-7,-6,10,-12;
+MA   /M: SY='N'; M=-12,22,-25,17,1,-24,0,10,-24,1,-24,-10,26,-17,0,-2,0,-8,-25,-33,-14,0;
+MA   /M: SY='I'; M=-11,-29,-26,-34,-25,7,-35,-21,34,-28,29,18,-24,-25,-19,-24,-24,-10,19,-15,8,-25;
+MA   /M: SY='I'; M=-8,-26,-22,-31,-24,0,-33,-24,28,-21,19,13,-21,-23,-18,-16,-16,-3,23,-23,-4,-24;
+MA   /M: SY='D'; M=-7,17,-23,25,5,-27,-11,-9,-22,-7,-24,-20,8,-2,-3,-13,11,4,-16,-37,-18,0;
+MA   /I: I=-6; MI=0; MD=-23; IM=0;
+MA   /M: SY='E'; M=-7,7,-22,11,13,-25,-2,5,-25,4,-21,-13,4,-9,9,-1,3,-7,-21,-24,-12,11; D=-4;
+MA   /I: DM=-23;
+MA   /M: SY='Y'; M=-9,-8,-8,-12,-9,-11,-21,-5,-8,-2,-13,-6,-3,-21,-1,-1,-3,-4,-7,-20,2,-6;
+MA   /M: SY='P'; M=-7,-19,-29,-15,-7,-15,-21,-19,-7,-16,-4,-7,-18,36,-12,-18,-9,-2,-13,-28,-18,-12;
+MA   /M: SY='S'; M=-6,10,-21,11,2,-23,-10,11,-24,-7,-26,-17,12,-2,0,-8,13,6,-20,-36,-13,-1;
+MA   /M: SY='P'; M=1,-4,-25,-2,3,-22,-16,-16,-16,-9,-14,-14,-9,21,-7,-15,0,4,-15,-29,-19,-4;
+MA   /M: SY='N'; M=-9,6,-23,3,0,-21,-17,3,-14,-3,-16,-8,8,-14,8,1,4,4,-14,-29,-9,2;
+MA   /M: SY='A'; M=5,0,-19,-4,-1,-19,-16,-12,-6,-7,-10,-7,-1,-13,0,-11,3,4,-3,-27,-14,-1;
+MA   /M: SY='R'; M=1,-8,-22,-9,3,-20,-15,-9,-20,14,-17,-10,-4,-15,3,26,-1,-5,-10,-24,-14,0;
+MA   /M: SY='R'; M=-18,-8,-30,-8,2,-22,-20,-2,-30,34,-22,-10,0,-18,10,62,-10,-10,-20,-20,-10,2;
+MA   /M: SY='T'; M=-4,10,-18,-1,-7,-17,-4,-11,-17,-8,-20,-15,17,-5,-8,-9,12,22,-15,-32,-17,-8;
+MA   /M: SY='L'; M=-12,-30,-20,-32,-22,23,-30,-20,16,-30,43,16,-28,-30,-24,-20,-28,-10,8,-15,5,-22;
+MA   /M: SY='T'; M=2,-9,-19,-17,-14,-13,-11,-21,-2,-9,-8,-4,-6,-13,-11,-13,4,16,1,-24,-11,-14;
+MA   /M: SY='L'; M=-4,-18,-16,-20,-14,0,-22,-18,5,-22,21,5,-15,-22,-14,-16,-5,8,4,-26,-6,-14;
+MA   /M: SY='I'; M=-9,-29,-25,-36,-27,2,-35,-25,39,-27,24,23,-23,-23,-19,-25,-21,-9,27,-21,-1,-26;
+MA   /M: SY='A'; M=35,-6,-10,-13,-6,-20,0,-16,-14,-10,-17,-14,-3,-10,-6,-16,21,7,-4,-27,-20,-6;
+MA   /M: SY='K'; M=-10,0,-30,0,10,-30,-20,-10,-30,50,-30,-10,0,-10,10,30,-10,-10,-20,-20,-10,10;
+MA   /M: SY='V'; M=-2,-17,-14,-23,-20,-5,-24,-21,16,-17,3,9,-15,-20,-16,-17,1,12,22,-28,-8,-19;
+MA   /M: SY='I'; M=-9,-30,-23,-35,-26,4,-35,-26,35,-29,31,19,-25,-25,-21,-25,-23,-9,24,-21,-1,-26;
+MA   /M: SY='Q'; M=-10,-3,-29,-3,16,-35,-21,7,-16,6,-13,2,-3,-12,52,7,-3,-10,-26,-20,-9,34;
+MA   /M: SY='N'; M=-3,14,-18,5,-3,-18,-6,10,-15,-8,-24,-14,28,-16,-1,-6,17,4,-17,-37,-13,-3;
+MA   /M: SY='L'; M=-2,-28,-21,-32,-23,2,-29,-24,26,-26,30,15,-25,-25,-20,-23,-20,-8,19,-21,-4,-23;
+MA   /M: SY='A'; M=38,-9,-13,-16,-11,-22,12,-19,-16,-12,-15,-13,-6,-12,-11,-19,11,-1,-6,-22,-22,-11;
+MA   /M: SY='N'; M=-7,31,-18,15,-1,-19,-2,5,-19,-2,-28,-19,48,-18,-1,-2,15,7,-25,-39,-19,-1;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=9(9); /POSITIVE=9(9); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=1;
+CC   /TAXO-RANGE=??E??; /MAX-REPEAT=1;
+DR   P09851, GTPA_BOVIN, T; P20936, GTPA_HUMAN, T; P46940, IQGA_HUMAN, T;
+DR   P33314, BUD2_YEAST, T; P18963, IRA1_YEAST, T; P19158, IRA2_YEAST, T;
+DR   P33277, GAP1_SCHPO, T; P21359, NF1_HUMAN , T; Q04690, NF1_MOUSE , T;
+DR   P35608, NF1_CHICK , P;
+DO   PDOC00438;
+//
diff --git a/prsp.f b/prsp.f
new file mode 100644
index 0000000..5de16e3
--- /dev/null
+++ b/prsp.f
@@ -0,0 +1,65 @@
+*----------------------------------------------------------------------*     
+* $Id: prsp.f,v 1.4 2003/07/03 13:08:58 vflegel Exp $
+*----------------------------------------------------------------------*     
+*        Print sequence or psa alignment
+*        Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine PRSP
+     *   (CABC,ISEQ,CALI,IABG,IAED,NW,OPTS,OPTX)
+      
+      Character         CABC(0:26)
+      Integer*2         ISEQ(*)
+      Character*01      CALI(*)
+      Integer           IABG
+      Integer           IAED
+      Logical           OPTS
+      Logical           OPTX
+
+      Character*512     RCOUT
+
+
+      INL=IAED-IABG+1
+      INB=INL/NW
+      INR=INL-INB*NW
+      IN1=IABG-1
+
+* write sequence of aligned region
+
+      If(OPTS) then
+         Do IN2=1,INB
+            Do ii1=1,NW
+               RCOUT(ii1:ii1)=CABC(ISEQ(IN1+ii1))
+            End do
+            IN1=IN1+NW
+            Write(6,'(512A)')(RCOUT(ii1:ii1),ii1=1,NW)
+         End do
+         If(INR.GT.0) then
+            Do ii1=1,INR
+               RCOUT(ii1:ii1)=CABC(ISEQ(IN1+ii1))
+            End do
+            Write(6,'(512A)')(RCOUT(ii1:ii1),ii1=1,INR)
+         End if            
+
+* write psa style alignment
+* Do NOT use to display individual matches of a circular profile
+* use prxp() instead.
+
+      Else if(OPTX) then
+         Do IN2=1,INB
+            Do ii1=1,NW
+               RCOUT(ii1:ii1)=CALI(IN1+ii1)
+            End do
+            IN1=IN1+NW
+            Write(6,'(512A)')(RCOUT(ii1:ii1),ii1=1,NW)
+         End do
+         If(INR.GT.0) then
+            Do ii1=1,INR
+               RCOUT(ii1:ii1)=CALI(IN1+ii1)
+            End do
+            Write(6,'(512A)')(RCOUT(ii1:ii1),ii1=1,INR)
+         End if            
+      End if
+
+      Return
+
+      End
diff --git a/prxp.f b/prxp.f
new file mode 100644
index 0000000..e580a2c
--- /dev/null
+++ b/prxp.f
@@ -0,0 +1,63 @@
+*----------------------------------------------------------------------*     
+* $Id: prxp.f,v 1.2 2003/07/03 13:08:58 vflegel Exp $
+*----------------------------------------------------------------------*     
+*        Print psa alignment for multiple matches
+*        Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine PRXP
+     *   (CALI,IABG,IAED,IPBG,IPED,LPRF,NW)
+      
+      Character*01      CALI(*)
+      Integer           IABG
+      Integer           IAED
+      Integer           LPRF
+      Integer           IPBG
+      Integer           IPED
+
+      Character*512     RCOUT
+
+      IIDE=LPRF-IPED
+
+      INL=IAED-IABG+IPBG+IIDE
+      INB=INL/NW
+      INR=INL-INB*NW
+C      IN1=IABG-1
+      ii2=IABG
+
+      IPOS=1
+
+* write psa style alignment
+
+      Do IN2=1,INB
+         Do ii1=1,NW
+            If(IPOS.LT.IPBG.OR.IPOS.GT.IPED) then
+               RCOUT(ii1:ii1)='-'
+               IPOS=IPOS+1
+            Else
+               RCOUT(ii1:ii1)=CALI(ii2)
+               ii2=ii2+1
+               K1=Ichar(RCOUT(ii1:ii1))
+               If(K1.GE.65.AND.K1.LE. 90) IPOS=IPOS+1
+            End if
+         End do
+C         IN1=IN1+NW
+         Write(6,'(512A)')(RCOUT(ii1:ii1),ii1=1,NW)
+      End do
+      If(INR.GT.0) then
+         Do ii1=1,INR
+            If(IPOS.LT.IPBG.OR.IPOS.GT.IPED) then
+               RCOUT(ii1:ii1)='-'
+               IPOS=IPOS+1
+            Else
+               RCOUT(ii1:ii1)=CALI(ii2)
+               ii2=ii2+1
+               K1=Ichar(RCOUT(ii1:ii1))
+               If(K1.GE.65.AND.K1.LE. 90) IPOS=IPOS+1
+            End if
+         End do
+         Write(6,'(512A)')(RCOUT(ii1:ii1),ii1=1,INR)
+      End if            
+      
+      Return
+
+      End
diff --git a/psa.5 b/psa.5
new file mode 100644
index 0000000..fc66a4f
--- /dev/null
+++ b/psa.5
@@ -0,0 +1,197 @@
+.\"
+.\" $Id: psa.5,v 1.1 2003/04/28 13:46:55 vflegel Exp $
+.\" Copyright (c) 2003 Volker Flegel <Volker.Flegel at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH PSA 5 "April 2003" "pftools 2.3" "File formats"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+psa \- biological sequence alignment file format
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B psa
+is an output format used by the
+.B pftools
+package to describe alignments between biological sequences (DNA or protein) and
+.I PROSITE
+profiles.
+.PP
+.B psa
+is apparented to the widely used biological sequence file format
+.IR fasta .
+Nevertheless it does not only describe a biological sequence, it is especially used to include
+information of alignments between a motif descriptor like a
+.I PROSITE
+profile and a given sequence. This information is included in the header and reflected
+in the structure of the sequence following the header line.
+.\" ------------------------------------------------
+.\" Syntax section
+.\" ------------------------------------------------
+.SH SYNTAX
+Each sequence in a
+.B psa
+alignment file or output must be preceded by a
+.I fasta
+header line.
+.br
+The general syntax of such a
+.I fasta
+header line is as follows:
+.sp
+.RS
+.BI > seq_id
+.RI "[ " free_text " ]" 
+.RE
+.sp
+The header must start with a
+.RB ' > '
+character which is directly followed by the
+.I seq_id
+field. This field is interpreted by most programs as the sequence's
+.I identifier
+and/or
+.I accession
+number. It ends at the first encountered whitespace character.
+.br
+The
+.B pftools
+programs will use the
+.I free_text
+to add information about the match score, position and description of the sequence or motif.
+Please refer to the man page of the corresponding programs for further information about
+the output formats.
+.br
+The header can only extend over one line. The following lines up to a new line starting with a
+.RB ' > '
+character or the end of the file are interpreted as sequence data.
+.sp
+The line following the header, starts the alignment data between a sequence and a 
+.I PROSITE
+profile. This data can span over several lines of different length.
+.br
+The data is formed by
+.I upper
+or
+.IR lower -case
+characters of the corresponding sequence alphabet (DNA or protein).
+The gap characters
+.RB ' . "' and '" - '
+are also supported.
+.br
+The alignment always has at least the length of the matching profile. Insertions or deletions
+detected during the motif/sequence alignment step will vary the length of the data reported,
+and can be identified using the following conventions:
+.RS
+.\" --- upper-case character ---
+.TP
+.I upper-case character
+Any upper-case character of the sequence alphabet identifies a
+.I match
+position between the sequence and the motif descriptor.
+.\" --- lower-case character ---
+.TP
+.I lower-case character
+A lower-case character of the sequence alphabet is used to symbolize an
+.I insertion
+in the sequence compared to the motif descriptor.
+.\" --- dash '-' character ---
+.TP
+.I '-' (dash) character
+A
+.RB ' - '
+character in the output identifies the presence of a
+.I deletion
+in the sequence compared to the motif descriptor.
+.RE
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+>YD28_SCHPO 556 pos. 291 - 332 sp|Q10256|YD28_SCHPO
+.br
+PTDPGlnsKIAQLVSMGFDPLEAAQALDAANGDLDVAASFLL--
+.br
+
+This is an example of the output produced by
+.BR pfsearch (1)
+using the '-x' (i.e. 
+.B psa
+output) option. The first line starting with the
+.RB ' > '
+character is the
+.I fasta
+header. It also contains information about the raw score of the alignment as well as its
+position in the input sequence.
+.br
+On the next line you find the alignment proper. Starting at position 6, we can find an
+.I insertion
+of the
+.RI ' lns '
+residues in the sequence compared to the motif. The last two positions of the motif are
+not present in the sequence (i.e. they are
+.IR deleted ).
+This is indicated by the presence of two 
+.RB ' - '
+(dash) characters at the end of the alignment.
+.RE
+.\" ------------------------------------------------
+.\" Notes section
+.\" ------------------------------------------------
+.SH "NOTES"
+.TP
+(1)
+The
+.BR xpsa (5)
+format defines a more strict syntax of the header line, allowing the exchange of information between
+different sequence analysis tools. It uses
+.IR keyword = value
+pairs to annotate the current match between a sequence and a motif descriptor. This syntax can be
+easily parsed and extended, according to the needs of bioinformatic tools.
+.RE
+
+.TP
+(2)
+The current implementation of the
+.B pftools
+package does not use the
+.RB ' . '
+(dot) character in the 
+.B psa
+output. Nevertheless
+.BR psa2msa (1)
+will read it and interpret it in the same manner as the
+.RB ' - '
+(dash) character.
+.RE
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR xpsa (5),
+.BR pfsearch (1),
+.BR pfscan (1),
+.BR pfw (1),
+.BR pfmake (1),
+.BR psa2msa (1)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH "AUTHOR"
+This manual page was originally written by Volker Flegel.
+.br
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
+
diff --git a/psa2msa.f b/psa2msa.f
new file mode 100644
index 0000000..8397646
--- /dev/null
+++ b/psa2msa.f
@@ -0,0 +1,540 @@
+*       Program psa2msa
+*----------------------------------------------------------------------*     
+* $Id: psa2msa.f,v 2.11 2003/11/28 11:53:33 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Function: Converts a pfsearch -x output file into Pearson/Fasta
+*                 multiple sequence alignment format  
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* DATA
+*----------------------------------------------------------------------*     
+
+      Include          'ardim.f' 
+
+      Parameter        (NSEQ=  11)
+
+      Character*512     FSEQ
+      Character*01      CSEQ(IDMS) 
+      Integer           IPRF(0:IDMP)
+
+      Character*512     RCIO
+      Character         B
+
+      Logical           OPTL
+      Logical           OPTU
+      Logical           OPTP
+      Logical           OPTD
+      Logical           LEOF
+
+      Integer           Getc
+
+      Include          'sterr.f' 
+
+*----------------------------------------------------------------------*     
+* INPUT SECTION  
+*----------------------------------------------------------------------*     
+
+      RC=0
+      LPRF=0
+      RCIO=' '
+      IRC=0
+      LEOF=.FALSE.
+      NBSQ=0
+
+* command line arguments
+      
+      Call Repar
+     *   (FSEQ,OPTL,OPTU,OPTP,OPTD,NM,NW,IRC)
+      If(IRC.NE.0) then
+         Write(NERR,'(/,
+     *      ''psa2msa 2.3 revision 5.d'',//
+     *      ''Usage: psa2msa [ -dhlpuMW ] [ psa-file | - ] '',
+     *      ''[ parameters ]'',//
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -d: replace periods by dashes on output.'',/
+     *      ''    -h: print usage help text.'',/
+     *      ''    -l: replace upper case letters by lower case.'',/
+     *      ''    -p: replace dashes by periods on output.'',/
+     *      ''    -u: replace lower case letters by upper case.''
+     *      )')
+         Write(NERR,'(
+     *      ''    -M<value>:'',/
+     *      ''        maximal insertion length (default: -1).'',/
+     *      ''    -W<value>:'',/
+     *      ''        specifies the output width (default: 60).'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   valid (but deprecated) parameters are:'',/,
+     *      ''    [M=max-insert-length]  use option -M instead'',/
+     *      ''    [W=output-width]       use option -W instead'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+
+* open input file
+
+      If(FSEQ.EQ.'-') then
+ 1       Open(NSEQ,Status='SCRATCH',Err=901)
+ 2       Continue 
+         Do I1=1,512
+            If(Getc(B).NE.0) go to 3 
+            If(Ichar(B).EQ.10) then 
+               Write(NSEQ,'(512A)')(CSEQ(ii1),ii1=1,I1-1)
+               Go to   2 
+            Else 
+               CSEQ(I1)=B
+            End if
+         End do
+         Go to   2
+ 3       Rewind(NSEQ)
+      Else 
+         Open(NSEQ,File=FSEQ,Status='OLD',Err=900)
+      End if
+      
+* first sequence:
+
+      Call GetSeq(NSEQ,CSEQ,LSEQ,RCIO,LDES,NBSQ,IDMS,IRC)
+      If(IRC.GT.0.OR.NBSQ.EQ.0) go to 100
+      If(IRC.LT.0) LEOF=.TRUE.
+
+      Call UpdIPRF(CSEQ,LSEQ,LPRF,IPRF,IDMP,IRC)
+      If(IRC.NE.0) Go to 100
+
+* next sequence
+
+ 10   If(.NOT.LEOF) then
+         Call GetSeq(NSEQ,CSEQ,LSEQ,RCIO,LDES,NBSQ,IDMS,IRC)
+         If     (IRC.EQ.-1) then
+            LEOF=.TRUE.
+         Else if(IRC.NE. 0) then 
+            Go to 100
+         End if 
+         
+         Call UpdIPRF(CSEQ,LSEQ,LPRF,IPRF,IDMP,IRC)
+         If(IRC.NE.0) Go to 100
+         
+         Go to  10
+      End if
+
+ 50   Continue     
+
+      Rewind(NSEQ)
+      NBSQ=0
+      LEOF=.FALSE.
+
+      LMSA=LPRF 
+      Do I1=0,LPRF
+         LMSA=LMSA+IPRF(I1)
+      End do 
+      LMSB=LMSA
+      
+ 60   Call GetSeq(NSEQ,CSEQ,LSEQ,RCIO,LDES,NBSQ,IDMS,IRC)
+      If     (IRC.EQ.-1) then
+         LEOF=.TRUE.
+         IRC=0
+         Go to  70
+      Else if(IRC.NE. 0) then 
+         Go to 100
+      End if 
+
+ 70   Call UpdSeq(CSEQ,LSEQ,LMSA,IPRF,LPRF,IDMP)
+      Call EdtSeq(CSEQ,LMSA,OPTL,OPTU,OPTP,OPTD)
+      If(NM.GE.0) Call CutSeq(CSEQ,LMSA,LMSB,IPRF,LPRF,NM,IDMP)
+
+      Write(6,'((512A))')(RCIO(ii1:ii1),ii1=1,LDES)
+      Call PRSQ(CSEQ,LMSB,NW)
+
+      If(.NOT.LEOF) Go to  60
+      
+ 100  Call Exit(IRC)
+
+* errors
+ 
+ 900  Write(NERR,*) 'Error: Unable to open PSA file'//
+     *   ' ''',FSEQ(1:Lblnk(FSEQ)),'''.'
+      IRC=1
+      Go to 100
+ 901  Write(NERR,*) 'Error: Unable to create temporary file.'
+      IRC=1
+      Go to 100
+      End
+*----------------------------------------------------------------------*
+      Subroutine Repar
+     *   (FSEQ,OPTL,OPTU,OPTP,OPTD,NM,NW,IRC)
+
+      Character*(*)     FSEQ
+      Character*512     CARG 
+
+      Logical           OPTL
+      Logical           OPTU
+      Logical           OPTP
+      Logical           OPTD
+
+      IRC=0
+
+      OPTL=.FALSE.
+      OPTU=.FALSE.
+      OPTP=.FALSE.
+      OPTD=.FALSE.
+
+      NM=-1
+      NW=60
+
+      N1=Iargc()
+      K1=0
+      I2=1
+      Do  I1=1,N1
+         Call GetArg(I2,CARG)
+         If(CARG(1:1).EQ.'-'.AND.CARG(2:2).NE.' ') then 
+            If(Index(CARG,'h').NE.0) go to 900
+            If(Index(CARG,'l').NE.0) OPTL=.TRUE.
+            If(Index(CARG,'u').NE.0) OPTU=.TRUE.
+            If(Index(CARG,'p').NE.0) OPTP=.TRUE.
+            If(Index(CARG,'d').NE.0) OPTD=.TRUE.
+            If(Index(CARG,'M').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) NM
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) NM
+               End if
+            End if
+            If(Index(CARG,'W').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) NW
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) NW
+               End if
+            End if
+         Else if(CARG(1:2).EQ.'M=') then
+            Read(CARG(3:),*,Err=900) NM
+         Else if(CARG(1:2).EQ.'W=') then
+            Read(CARG(3:),*,Err=900) NW
+         Else
+            FSEQ=CARG 
+            K1=K1+1
+         End if
+         I2=I2+1
+         If(I2.GT.N1) Go to 20
+      End do 
+
+ 20   If(K1.LT.1) then
+         FSEQ='-'
+      Else if(K1.GT.1) then
+         Go to 900
+      End if 
+      If(NM.LT.0) NM=-1
+      If(NW.LE.0.OR.NW.GT.512) NW=60
+      
+ 100  Return
+ 900  IRC=-1
+      Go to 100
+      End
+*----------------------------------------------------------------------*
+      Subroutine GetSeq(NSEQ,CSEQ,LSEQ,RCIO,LDES,NBSQ,IDMS,IRC)
+
+      Include          'sterr.f'
+
+      Character*01      CSEQ(*)
+      Character*(*)     RCIO
+
+      Character*512     RCIN
+      Save              RCIN
+
+      IRC=0
+      LSEQ=0
+      LDES=0
+
+ 1    Continue 
+      If(RCIN(1:1).NE.'>') then 
+         Read(NSEQ,'(A)',Err=901,End=902) RCIN
+         Go to   1
+      End if
+
+      LDES=Lblnk(RCIN)
+      RCIO(1:LDES)=RCIN(1:LDES)
+      
+ 2    RCIN=' '
+      Read(NSEQ,'(A)',Err=901,End=900) RCIN
+ 5    L1=Lblnk(RCIN)
+      If(RCIN(1:1).EQ.'>') then 
+         Go to 90
+      Else
+         Do I1=1,L1
+            K1=Ichar(RCIN(I1:I1))
+            If((K1.GE.65.AND.K1.LE. 90).OR.
+     *         (K1.GE.97.AND.K1.LE.122).OR.
+     *         (RCIN(I1:I1).EQ.'-').OR.
+     *         (RCIN(I1:I1).EQ.'.')) then
+               LSEQ=LSEQ+1
+               If(LSEQ.GT.IDMS) go to 903
+               CSEQ(LSEQ)=RCIN(I1:I1)
+            End if
+         End do
+      End if
+      If(IRC.NE.-1) go to   2
+
+ 90   If(LSEQ.EQ.0) go to 904
+      NBSQ=NBSQ+1
+
+ 100  Return
+
+ 110  Write(NERR,*) '       While processing sequence ',
+     *   RCIO(1:LDES)
+      Go to 100
+
+* errors
+
+ 900  If(RCIN.EQ.' '.AND.LSEQ.EQ.0) then
+         Write(NERR,*) 'Error: Unexpected end of sequence.'//
+     *      ' Sequence has zero length.'
+         IRC=1
+      Else
+         IRC=-1
+         Go to 5
+      End if
+      Go to 110
+
+ 901  Write(NERR,*) 'Error: Unable to read PSA sequence file.'
+      IRC=1
+      Go to 100
+ 902  If(NBSQ.EQ.0) then
+         Write(NERR,*) 'Error: Unable to find sequences in PSA file.'
+         IRC=1
+      Else
+         IRC=-1
+      End if
+      Go to 100
+ 903  Write(NERR,*) 'Error: Sequence length exceeds buffer ',
+     *   'size (',IDMS,').'
+      IRC=1
+      Go to 110
+ 904  Write(NERR,*) 'Error: Unexpected end of sequence.'//
+     *   ' Sequence has zero length.'
+      IRC=1
+      Go to 110
+
+      End
+*----------------------------------------------------------------------*
+      Subroutine UpdIPRF(CSEQ,LSEQ,LPRF,IPRF,IDMP,IRC)
+
+      Include          'sterr.f'
+
+      Character*01      CSEQ(*)
+      Integer           IPRF(0:IDMP)
+
+      IRC=0
+
+      If(LPRF.EQ.0) then
+         Do I1=1,LSEQ
+            K1=Ichar(CSEQ(I1))
+            If((K1.GE.65.AND.K1.LE. 90).OR.
+     *         (CSEQ(I1).EQ.'-')) then
+               LPRF=LPRF+1
+            End if 
+         End do
+         If(LPRF.GT.IDMP) go to 901
+         Do I1=0,LPRF
+            IPRF(I1)=0
+         End do
+      End if 
+
+      J1=0
+      M1=0
+      Do I1=1,LSEQ
+         K1=Ichar(CSEQ(I1))
+         If((K1.GE.65.AND.K1.LE. 90).OR.
+     *      (CSEQ(I1).EQ.'-')) then
+            IPRF(J1)=MAX(IPRF(J1),M1)
+            J1=J1+1
+            M1=0
+         Else
+            M1=M1+1  
+         End if
+      End do 
+      IPRF(J1)=MAX(IPRF(J1),M1)
+
+      If(J1.NE.LPRF) go to 900
+ 
+ 100  Return
+
+* errors
+
+ 900  Write(NERR,*) 'Error: Conflicting sequence length after ',
+     *   'insertion removal.'
+      IRC=1
+      Go to 100
+ 901  Write(NERR,*) 'Error: Sequence length exceeds buffer ',
+     *   'size (',IDMP,').'
+      IRC=1
+      Go to 100
+      End        
+*----------------------------------------------------------------------*
+      Subroutine UpdSeq(CSEQ,LSEQ,LMSA,IPRF,LPRF,IDMP)
+
+      Character*01      CSEQ(*)
+      Integer           IPRF(0:IDMP)
+
+      J1=LPRF
+      M1=LMSA
+      N1=0
+
+      Do I1=LSEQ,1,-1
+         K1=Ichar(CSEQ(I1))
+         If((K1.GE.65.AND.K1.LE. 90).OR.
+     *      (CSEQ(I1).EQ.'-')) then
+            K1=IPRF(J1)-N1
+            M1=M1-K1
+            Do I2=M1+1,M1+K1
+               CSEQ(I2)='.'
+            End do
+            If(J1.EQ.LPRF) then 
+               Do I2=M1+1,M1+N1
+                  CSEQ(I2)=CSEQ(I2+K1)
+               End do
+               Do I2=M1+N1+1,M1+N1+K1
+                  CSEQ(I2)='.'
+               End do
+            Else
+
+* place dots at the center of insert region  
+
+               L1=(N1+1)/2
+               Do I2=M1+1,M1+L1
+                  CSEQ(I2)=CSEQ(I2+K1)
+               End do
+               Do I2=M1+L1+1,M1+L1+K1
+                  CSEQ(I2)='.'
+               End do
+            End if 
+            CSEQ(M1)=CSEQ(I1)
+            M1=M1-1
+            N1=0
+            J1=J1-1
+         Else 
+            CSEQ(M1)=CSEQ(I1)
+            M1=M1-1
+            N1=N1+1
+         End if
+      End do 
+      Do I2=N1+1,IPRF(J1)
+         CSEQ(M1)='.'
+         M1=M1-1
+      End do
+     
+ 100  Return
+      End
+*----------------------------------------------------------------------*
+      Subroutine EdtSeq(CSEQ,LMSA,OPTL,OPTU,OPTP,OPTD)
+
+      Character*01      CSEQ(*)
+
+      Logical           OPTU
+      Logical           OPTL
+      Logical           OPTP
+      Logical           OPTD
+
+      If(OPTU) then
+         Do  I1=1,LMSA
+            K1=Ichar(CSEQ(I1))
+            If(K1.LE.122.AND.K1.GE.97) CSEQ(I1)=Char(K1-32) 
+         End do 
+      End if 
+
+      If(OPTL) then
+         Do  I1=1,LMSA
+            K1=Ichar(CSEQ(I1))
+            If(K1.LE.90.AND.K1.GE.65) CSEQ(I1)=Char(K1+32) 
+         End do 
+      End if 
+
+      If(OPTP) then
+         Do  I1=1,LMSA
+            If(CSEQ(I1).EQ.'-') CSEQ(I1)='.'
+         End do 
+      End if 
+
+      If(OPTD) then
+         Do  I1=1,LMSA
+            If(CSEQ(I1).EQ.'.') CSEQ(I1)='-'
+         End do 
+      End if 
+
+      Return
+      End
+*----------------------------------------------------------------------*
+      Subroutine CutSeq(CSEQ,LMSA,LMSB,IPRF,LPRF,NM,IDMP)
+
+      Character*01      CSEQ(*)
+      Integer           IPRF(0:IDMP)
+
+      M1=NM/2
+      L1=NM-M1
+      J1=0
+      K1=0
+      Do I1=0,LPRF
+         If(IPRF(I1).GT.NM) then
+            Do I2=1,M1
+               J1=J1+1
+               K1=K1+1
+               CSEQ(J1)=CSEQ(K1)
+            End do 
+            K1=K1+IPRF(I1)-NM
+            Do I2=1,L1
+               J1=J1+1
+               K1=K1+1
+               CSEQ(J1)=CSEQ(K1)
+            End do 
+         Else
+            Do I2=1,IPRF(I1)
+               J1=J1+1
+               K1=K1+1
+               CSEQ(J1)=CSEQ(K1)
+            End do 
+         End if 
+         If(I1.NE.LPRF) then
+            J1=J1+1
+            K1=K1+1
+            CSEQ(J1)=CSEQ(K1)
+         End if
+      End do 
+      LMSB=J1
+
+      Return
+      End
+*----------------------------------------------------------------------*
+      Subroutine PRSQ(CSEQ,LMSB,NW)
+
+      Character*01      CSEQ(*)
+      Character*512     RCOUT
+
+      INB=LMSB/NW
+      INR=LMSB-INB*NW
+      IN1=0
+
+      Do IN2=1,INB
+         Do ii1=1,NW
+            RCOUT(ii1:ii1)=CSEQ(IN1+ii1)
+         End do
+         IN1=IN1+NW
+         Write(6,'(512A)')(RCOUT(ii1:ii1),ii1=1,NW)
+      End do
+      If(INR.GT.0) then
+         Do ii1=1,INR
+            RCOUT(ii1:ii1)=CSEQ(IN1+ii1)
+         End do
+         Write(6,'(512A)')(RCOUT(ii1:ii1),ii1=1,INR)
+      End if            
+
+ 100  Return
+      End
+
+*----------------------------------------------------------------------*
+      Include          'lblnk.f'
diff --git a/psdat.f b/psdat.f
new file mode 100644
index 0000000..9e8637e
--- /dev/null
+++ b/psdat.f
@@ -0,0 +1,20 @@
+*----------------------------------------------------------------------*     
+* $Id: psdat.f,v 2.5 2003/07/03 13:08:58 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* PROSITE 
+      
+      Character*64      CPID
+      Character*64      CPAC
+      Character*132     CPDT
+      Character*512     CPDE
+      
+* header lines to be inserted after DE line
+      
+      Character*132     CHDR(512)
+      
+* footer lines to be inserted after  lines
+      
+      Character*132     CFTR(1024)
+      
diff --git a/ptof.f b/ptof.f
new file mode 100644
index 0000000..2986797
--- /dev/null
+++ b/ptof.f
@@ -0,0 +1,584 @@
+*       Program ptof 
+*----------------------------------------------------------------------*     
+* $Id: ptof.f,v 2.12 2003/12/01 13:33:04 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Function: converts a protein profile into a framesearch profile
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* DATA
+*----------------------------------------------------------------------*     
+
+* array dimensions and I/O units
+
+      Include          'ardim.f' 
+
+      Parameter        (NOUT=   6)    
+
+      Parameter        (NPRF=  11)
+      Parameter        (NNUL=  12)
+
+* profile 
+
+      Character*512     FPRF
+
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'pfdat.f'
+      Include          'dfdat.f'
+
+      Include          'sterr.f'
+
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+* parameters and options
+
+      Logical           OPTR
+      Logical           LLLT
+
+      Real              RB
+      Real              RF
+      Real              RI
+      Real              RX 
+      Real              RY 
+      Real              RZ 
+
+      Integer           INBP
+      Logical           LEOF
+      Logical           LRNM
+
+* initialization of controlled vocabularies
+
+      Include          'cvini.f' 
+
+*----------------------------------------------------------------------*     
+* INPUT SECTION 
+*----------------------------------------------------------------------*     
+
+      IRC=0
+      FPRF='stdout'
+      LRNM=.FALSE.
+      INBP=0
+
+* command line arguments
+      
+      Call Repar(FPRF,OPTR,LLLT,RB,RF,RI,RX,RY,RZ,IRC)
+      If(IRC.NE.0) then
+         Write(NERR,'(/,
+     *      ''ptof 2.3 revision 5.d'',//
+     *      ''Usage: ptof [ -hlrBFIXYZ ] [ profile | - ] '',
+     *      ''[ parameters ]'',//
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -h: print usage help text.'',/
+     *      ''    -l: do not impose limit on line length.'',/
+     *      ''    -r: parameters given as normalized score units.''
+     *      )')
+         Write(NERR,'(
+     *      ''    -B<value>:'',/
+     *      ''        minimal initiation/termination score (default: '',
+     *      ''-50 or -0.5 with option -r).'',/
+     *      ''    -F<value>:'',/
+     *      ''        frameshift error penalty (default: '',
+     *      ''-100 or -1.0 with option -r).'',/
+     *      ''    -I<value>:'',/
+     *      ''        insert score multiplier (default: 1/3).'',/
+     *      ''    -X<value>:'',/
+     *      ''        stop codon penalty (default: '',
+     *      ''-100 or -1.0 with option -r).'',/
+     *      ''    -Y<value>:'',/
+     *      ''        intron opening penalty (default: '',
+     *      ''-300 or -3.0 with option -r).'',/
+     *      ''    -Z<value>:'',/
+     *      ''        intron extension penalty (default: '',
+     *      ''-1 or -0.01 with option -r).'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   valid (but deprecated) parameters are:'',/,
+     *      ''    [B=min-beg-end-score]   use option -B instead'',/
+     *      ''    [F=deletion-frameshift] use option -F instead'',/
+     *      ''    [I=insert-score-mult]   use option -I instead'',/
+     *      ''    [X=stop-codon-score]    use option -X instead'',/
+     *      ''    [Y=intron-open-penalty] use option -Y instead'',/
+     *      ''    [Z=intron-ext-penalty]  use option -Z instead'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+
+* read profile
+      
+      If(FPRF.EQ.'-') then
+         MPRF=5
+      Else
+         MPRF=NPRF
+      End if
+
+      Call REPRF
+     *   (MPRF,FPRF,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   BLOG,FABC,P0,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,CHIL,IIPL,ILIP,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   INBP,LEOF,.FALSE.,IRC)
+
+      If(IRC.NE.0) go to 100
+
+* expanded profile size check
+
+      If(LPRF*3.GT.IDMP) go to 901
+      If(NABC.LE.4) go to 920
+
+* add command-line to footer lines
+
+ 10   Continue
+      LFTR=LFTR+1
+      If(LFTR.GT.1024) LFTR=1024
+      Do I1=LFTR,2,-1
+         CFTR(I1)=CFTR(I1-1)
+      End do 
+
+      CFTR(1)='CC   /GENERATED_BY="'
+      Call Recmd(CFTR(1)(21:130))
+      IC=Lblnk(CFTR(1))
+      CFTR(1)(IC+1:)='";'
+
+*----------------------------------------------------------------------*     
+* CONVERSION SECTION
+*----------------------------------------------------------------------*     
+
+* Adjust frame search parameters to normalization function      
+
+      If(OPTR) then
+         R2=0.01 
+         K1=1
+         J1=NNPR( 1)
+         Do I1=2,JNOR
+            If(NNPR(I1).LT.J1) then
+               K1=I1
+               JN=NNPR(I1) 
+            End if
+         End do
+         If(MNOR(K1).EQ.1) R2=RNOP(2,K1)
+         
+         RB=RB / R2
+         RF=RF / R2
+         RX=RX / R2
+         RY=RY / R2
+         RZ=RZ / R2
+      End if 
+
+* Expand alphabet
+
+      NABC=NABC+1
+      CABC(NABC)='O'
+      NX=NINT(RX)
+      J2=0
+      Do I2=1,NABC-1
+         J2=J2+IIPD(I2)
+      End do
+      IIPD(NABC)=J2/(NABC-1)
+      J2=0
+      Do I2=1,NABC-1
+         J2=J2+IIPP(I2,0)
+      End do
+      IIPP(NABC,0)=J2/(NABC-1)
+      Do I1=1,LPRF
+         IMPP(NABC,I1)=NX
+         J2=0
+         Do I2=1,NABC-1
+            J2=J2+IIPP(I2,I1)
+         End do
+         IIPP(NABC,I1)=J2/(NABC-1)
+      End do 
+
+* - default begin, end score
+
+      IIPD(B0)=MAX(IIPD(B0),NINT(RB))
+      IIPD(B1)=MAX(IIPD(B1),NINT(RB))
+      IIPD(E0)=MAX(IIPD(E0),NINT(RB))
+      IIPD(E1)=MAX(IIPD(E1),NINT(RB))
+
+* - eliminate II transitions
+
+      Do I1=0,LPRF
+         If(IIPP(BI,I1).NE.NLOW) IIPP(BI,I1)=IIPP(BI,I1)-IIPP(II,I1)
+         If(IIPP(MI,I1).NE.NLOW) IIPP(MI,I1)=IIPP(MI,I1)-IIPP(II,I1)
+         If(IIPP(DI,I1).NE.NLOW) IIPP(DI,I1)=IIPP(DI,I1)-IIPP(II,I1)
+         Do I2=0,26
+            If(IIPP(I2,I1).NE.NLOW)
+     *         IIPP(I2,I1)=IIPP(I2,I1)+IIPP(II,I1)
+         End do
+         IIPP(II,I1)=0
+      End do       
+
+* Expand profile
+
+* -define architecture of profile according to topology 
+
+      If(LPCI) then 
+         NBB=1
+         NB=2
+         NE=3*LPRF-1
+         NEE=3*LPRF
+      Else 
+         NBB=1
+         NB=1
+         NE=3*LPRF-2
+         NEE=3*LPRF-2
+      End if       
+
+* - move last insert position to new end of profile
+
+      Do I1=0,46
+         IIPP(I1,NEE)=IIPP(I1,LPRF)
+      End do 
+      CHIP(NEE)=CHIP(LPRF)
+
+* - move other positions 
+
+      K1=NE
+      Do I1=LPRF,1,-1
+         Do I2=0,27
+            IMPP(I2,K1)=IMPP(I2,I1) 
+         End do
+         CHMP(K1)=CHMP(I1)
+         K1=K1-3
+      End do 
+
+      K1=NE-2
+      Do I1=LPRF-1,1,-1
+         Do I2= 0,26
+            IIPP(I2,K1)=NINT(IIPP(I2,I1)*RI)
+         End do
+         Do I2=27,46
+            IIPP(I2,K1)=IIPP(I2,I1)
+         End do
+         CHIP(K1)=CHIP(I1)
+         K1=K1-3
+      End do 
+
+* - fill in m-1, m+1 positions
+
+      Do I1=NB+1,NEE,3
+         Do I2=0,27
+            IMPP(I2,I1)=0
+         End do
+         CHMP(I1)='>'
+      End do
+
+      J1=NB-1
+      If(J1.LE.0) J1=J1+3
+      Do I1=J1,NEE,3
+         Do I2=0,27
+            IMPP(I2,I1)=0
+         End do
+         CHMP(I1)='<'
+      End do
+      
+*- fill i-1 position 
+      
+      Do I2= 0,26
+         IIPP(I2,NB)=0
+      End do
+      Do I2=27,46
+         IIPP(I2,NB)=NLOW
+      End do
+      IIPP(MM,NB)=0
+      IIPP(DD,NB)=0
+      IIPP(MI,NB)=NINT(RF/2)
+      IIPP(II,NB)=NINT(RF)
+      IIPP(IM,NB)=NINT(RF/2)
+      CHIP(NB)='*'
+      Do I1=NB+3,NEE-1,3
+         Do I2= 0,47
+            IIPP(I2,I1)=IIPP(I2,NB)
+         End do
+         CHIP(I1)='*'
+      End do 
+
+* - fill i+1 position 
+      
+      J1=3
+      If(LPCI) J1=1
+      Do I2= 0,26
+         IIPP(I2,J1)=0
+      End do
+      Do I2=27,46
+         IIPP(I2,J1)=NLOW
+      End do
+      IIPP(MM,J1)=0
+      IIPP(DD,J1)=0
+      IIPP(MI,J1)=NINT(RY/2)
+      IIPP(II,J1)=MIN(-1,NINT(RZ))
+      IIPP(IM,J1)=NINT(RY/2)
+      CHIP(J1)=':'
+      Do I1=J1+3,NEE-1,3
+         Do I2=0,46
+            IIPP(I2,I1)=IIPP(I2,J1)
+         End do
+         CHIP(I1)=':'
+      End do 
+
+* frameshift deletetion scores: 
+
+      J1=2   
+      If(LPCI) J1=1
+      K1=3
+      If(LPCI) K1=1
+      Do I1=J1,LPRF-1
+         IIPP(MD,K1)=(NINT(RF-IMPP( D,K1+1))/2)
+         IIPP(DM,K1+1)=NINT(RF-IIPP(MD,K1)-IMPP( D,K1+1))
+         K1=K1+3
+      End do 
+
+* begin and end scores
+
+      If(.NOT.LPCI) then
+         Do I1=2,NEE,3
+            IIPP(B0,I1-1)=IIPP(B0,I1)
+            IIPP(B1,I1-1)=IIPP(B1,I1) 
+            IIPP(BM,I1-1)=IIPP(BM,I1) 
+            IIPP(BI,I1-1)=IIPP(BI,I1) 
+            IIPP(BD,I1-1)=IIPP(BD,I1) 
+            IIPP(E0,I1-1)=IIPP(E0,I1)
+            IIPP(E1,I1-1)=IIPP(E1,I1)
+            IIPP(ME,I1-1)=IIPP(ME,I1) 
+            IIPP(IE,I1-1)=IIPP(IE,I1) 
+            IIPP(DE,I1-1)=IIPP(DE,I1) 
+            IIPP(B0,I1+1)=IIPP(B0,I1)
+            IIPP(B1,I1+1)=IIPP(B1,I1)
+            IIPP(BM,I1+1)=IIPP(BM,I1) 
+            IIPP(BI,I1+1)=IIPP(BI,I1) 
+            IIPP(BD,I1+1)=IIPP(BD,I1) 
+            IIPP(E0,I1+1)=IIPP(E0,I1)
+            IIPP(E1,I1+1)=IIPP(E1,I1)
+            IIPP(ME,I1+1)=IIPP(ME,I1) 
+            IIPP(IE,I1+1)=IIPP(IE,I1) 
+            IIPP(DE,I1+1)=IIPP(DE,I1) 
+         End do
+      Else
+         Do I1=2,NEE,3
+            IIPP(B0,I1-1)=IIPP(B0,I1-2)
+            IIPP(B1,I1-1)=IIPP(B1,I1-2) 
+            IIPP(BM,I1-1)=IIPP(BM,I1-2) 
+            IIPP(BI,I1-1)=IIPP(BI,I1-2) 
+            IIPP(BD,I1-1)=IIPP(BD,I1-2) 
+            IIPP(E0,I1-1)=IIPP(E0,I1-2)
+            IIPP(E1,I1-1)=IIPP(E1,I1-2)
+            IIPP(ME,I1-1)=IIPP(ME,I1-2) 
+            IIPP(IE,I1-1)=IIPP(IE,I1-2) 
+            IIPP(DE,I1-1)=IIPP(DE,I1-2) 
+            IIPP(B0,I1  )=IIPP(B0,I1+1)
+            IIPP(B1,I1  )=IIPP(B1,I1+1)
+            IIPP(BM,I1  )=IIPP(BM,I1+1) 
+            IIPP(BI,I1  )=IIPP(BI,I1+1) 
+            IIPP(BD,I1  )=IIPP(BD,I1+1) 
+            IIPP(E0,I1  )=IIPP(E0,I1+1)
+            IIPP(E1,I1  )=IIPP(E1,I1+1)
+            IIPP(ME,I1  )=IIPP(ME,I1+1) 
+            IIPP(IE,I1  )=IIPP(IE,I1+1) 
+            IIPP(DE,I1  )=IIPP(DE,I1+1) 
+         End do
+      End if 
+
+      Do I1=NBB,NEE-1
+         IIPP(B0,I1)=MAX(IIPD(B0),IIPP(B0,I1)) 
+         IIPP(B1,I1)=MAX(IIPD(B1),IIPP(B1,I1)) 
+         IIPP(E0,I1)=MAX(IIPD(E0),IIPP(E0,I1)) 
+         IIPP(E1,I1)=MAX(IIPD(E1),IIPP(E1,I1)) 
+      End do
+
+* disjointness definition
+
+      If(MDIS.EQ.2) then
+         NDIP(1)=NDIP(1)*3-2
+         NDIP(2)=NDIP(2)*3-2
+      End if
+
+* adjust length
+
+      LPRF=NEE
+
+*----------------------------------------------------------------------*     
+* OUTPUT SECTION
+*----------------------------------------------------------------------*     
+
+* write profile
+
+      Call WRPRF
+     *   (NOUT,LLLT,LRNM,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,
+     *   BLOG,FABC,P0,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   IRC)
+
+ 100  Call Exit(IRC)
+
+* errors
+
+ 901  Write(NERR,*) 'Error: Expanded profile length exceeds buffer ',
+     *   'size (',IDMP,').'
+      IRC=1
+      Go to 100
+
+* warnings
+
+ 920  Write(NERR,*) 'Warning: Profile seems to be DNA. Check input '//
+     *   'file.'
+      Go to 10
+
+      End
+*----------------------------------------------------------------------*
+      Subroutine Repar
+     *   (FPRF,OPTR,LLLT,RB,RF,RI,RX,RY,RZ,IRC)
+
+      Character*(*)     FPRF
+      Character*512     CARG 
+
+      Logical           OPTR
+      Logical           LLLT
+      Real              RB
+      Real              RF
+      Real              RI
+      Real              RX
+      Real              RY
+      Real              RZ
+
+      IRC=0
+      
+* initializations
+
+      FPRF='-'
+
+      OPTR=.FALSE.
+      LLLT=.TRUE.
+      RB=-50
+      RF=-100
+      RI=1/3.0
+      RX=-100
+      RY=-300
+      RZ=-1
+      
+      N1=Iargc()
+
+      K1=0
+      I2=1
+      Do I1=1,N1
+         Call GetArg(I2,CARG)
+         If     (CARG(1:1).EQ.'-'.AND.CARG(2:2).NE.' ') then
+            If(Index(CARG,'h').NE.0) go to 900
+            If(Index(CARG,'l').NE.0) LLLT=.FALSE.
+            If(Index(CARG,'r').NE.0) then
+               OPTR=.TRUE.
+               RB=-0.5
+               RF=-1.0
+               RX=-1.0
+               RY=-3.0
+               RZ=-0.01
+            End if
+            If(Index(CARG,'B').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RB
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RB
+               End if
+            End if
+            If(Index(CARG,'F').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RF
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RF
+               End if
+            End if
+            If(Index(CARG,'I').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RI
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RI
+               End if
+            End if
+            If(Index(CARG,'X').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RX
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RX
+               End if
+            End if
+            If(Index(CARG,'Y').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RY
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RY
+               End if
+            End if
+            If(Index(CARG,'Z').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RZ
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RZ
+               End if
+            End if
+         Else if(CARG(1:2).EQ.'B=') then
+            Read(CARG(3:),*,Err=900) RB 
+         Else if(CARG(1:2).EQ.'F=') then
+            Read(CARG(3:),*,Err=900) RF 
+         Else if(CARG(1:2).EQ.'I=') then
+            Read(CARG(3:),*,Err=900) RI
+         Else if(CARG(1:2).EQ.'X=') then
+            Read(CARG(3:),*,Err=900) RX
+         Else if(CARG(1:2).EQ.'Y=') then
+            Read(CARG(3:),*,Err=900) RY
+         Else if(CARG(1:2).EQ.'Z=') then
+            Read(CARG(3:),*,Err=900) RZ
+         Else if(K1.LE.0) then
+            K1=K1+1
+            If     (K1.EQ.1) then
+               FPRF=CARG
+            End if
+         Else
+            Go to 900
+         End if
+         I2=I2+1
+         If(I2.GT.N1) Go to 20
+      End do
+
+ 20   Continue
+      
+ 100  Return
+ 900  IRC=-1   
+      Go to 100
+      End
+*----------------------------------------------------------------------*
+      Include          'reprf.f'
+      Include          'recmd.f'
+      Include          'wrprf.f'
+      Include          'lblnk.f' 
+      Include          'Xblnk.f'
diff --git a/ptoh.f b/ptoh.f
new file mode 100644
index 0000000..d07d3e2
--- /dev/null
+++ b/ptoh.f
@@ -0,0 +1,413 @@
+*       Program ptoh 
+*----------------------------------------------------------------------*     
+* $Id: ptoh.f,v 2.11 2003/12/01 13:33:05 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Function: Reformats profile -> hmm: in-fmt=PROSITE / out-fmt=SAM    
+*       Author:   Philipp Bucher
+*       Contact:  pftools at isb-sib.ch
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* DATA
+*----------------------------------------------------------------------*     
+
+      Include          'ardim.f' 
+
+* array dimensions and I/O units
+
+      Parameter        (NOUT=   6)    
+
+      Parameter        (NPRF=  11)
+      Parameter        (NNUL=  12)
+
+* profile 
+
+      Character*512     FPRF
+
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'pfdat.f'
+      Include          'dfdat.f'
+
+      Include          'sterr.f'
+
+* null model 
+
+      Character*512     FNUL
+
+      Integer           IABC(26)
+      Integer           JABC(26)
+      Character*20      DABC
+
+* HMM 
+
+      Include          'hmdat.f' 
+
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+* parameters and options
+
+      Logical           OPTF
+      Logical           OPFF
+      Logical           OPTH
+      Logical           OPTS
+      Logical           LEOF
+
+      Real              RD 
+      Real              RI
+      Real*8            DL
+      Integer           INBP
+
+* initialization of controlled vocabularies
+
+      Include          'cvini.f' 
+
+*----------------------------------------------------------------------*     
+* INPUT SECTION 
+*----------------------------------------------------------------------*     
+
+      IRC=0
+      FPRF='stdout'
+      INBP=0
+
+* command line arguments
+      
+      Call Repar(FPRF,FNUL,OPTF,OPFF,OPTH,OPTS,RD,RI,DL,IRC)
+      If(IRC.NE.0) then
+         Write(NERR,'(/,
+     *      ''ptoh 2.3 revision 5.d'',//
+     *      ''Usage: ptoh [ -fhsFDIL ] [ profile-file | - ] '',
+     *      ''[ random-model-file ] [ parameters ]'',//
+     *      )')
+         Write(NERR,'(
+     *      ''   options:'',/,
+     *      ''    -f: emulate domain- or semi-global alignment mode.'',/
+     *      ''    -h: print usage help text.'',/
+     *      ''    -s: output in SAM format (if not set: HMMER1 '',
+     *      ''format).'',/
+     *      ''    -F: emulate local alignment mode.''
+     *      )')
+         Write(NERR,'(
+     *      ''    -D<value>:'',/
+     *      ''        delete-to-delete transition probabilities '',
+     *      ''(default: 0.9).'',/
+     *      ''    -I<value>:'',/
+     *      ''        insert-to-insert transition probabilities '',
+     *      ''(default: 0.99).'',/
+     *      ''    -L<value>:'',/
+     *      ''        logarithmic base (default: 1.0233739).'',/
+     *      )')
+         Write(NERR,'(
+     *      ''   valid (but deprecated) parameters are:'',/,
+     *      ''    [D=del-to-del-prob]  use option -D instead'',/
+     *      ''    [I=ins-to-ins-prob]  use option -I instead'',/
+     *      ''    [L=log-base]         use option -L instead'',/
+     *      )')
+         Call Exit(IRC)
+      End if
+
+* read profile
+      
+      If(FPRF.EQ.'-') then
+         MPRF=5
+      Else
+         MPRF=NPRF
+      End if
+
+      Call REPRF
+     *   (MPRF,FPRF,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   BLOG,FABC,P0,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,CHIL,IIPL,ILIP,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   INBP,LEOF,.FALSE.,IRC)
+
+      If(IRC.NE.0) go to 100
+
+      If(NABC.GE.20) then 
+         DABC='ACDEFGHIKLMNPQRSTVWY'
+         MABC=20
+      Else
+         DABC='ACGT'
+         MABC=4
+      End if
+
+* read null model
+
+      If     (FNUL.NE.' ') then 
+         Call RHNUL(NNUL,FNUL,FABC,MABC,IRC)
+         If(IRC.NE.0) go to 100
+      Else if(P0.GT.0.0) then
+         Call NRNUL(NABC,CABC,FABC,P0,DABC,MABC) 
+      Else
+         Call DFNUL(FABC,P0,DABC,MABC)
+      End if
+
+* reduce / rearrange alphabet
+
+      K1=0
+      Do I1=1,NABC
+         N1=Index(DABC(1:MABC),CABC(I1)) 
+         If(N1.NE.0) then
+            IABC(N1)=I1
+            K1=K1+1
+         End if
+      End do 
+
+      If(K1.NE.MABC) go to 901
+
+      Do I1=0,LPRF
+         Do I2=1,MABC
+            JABC(I2)=IIPP(IABC(I2),I1)
+         End do
+         Do I2=1,MABC
+            IIPP(I2,I1)=JABC(I2)
+         End do
+         If(I1.NE.0) then  
+            Do I2=1,MABC
+               JABC(I2)=IMPP(IABC(I2),I1)
+            End do
+            Do I2=1,MABC
+               IMPP(I2,I1)=JABC(I2)
+            End do
+         End if
+      End do 
+      NABC=MABC
+      Do I1=1,NABC
+         CABC(I1)=DABC(I1:I1) 
+      End do 
+
+* convert profile into Log(Prob) 
+
+      If     (DL  .NE.0.0) then 
+         DL=LOG(DL)
+      Else if(BLOG.NE.0.0) then 
+         DL=LOG(BLOG)
+      Else
+         DL=(LOG(2.0)/30.0)
+      End if
+
+      Do I1=0,LPRF
+         Do I2=0,46 
+            If(I1.EQ.0.OR.I2.GT.27) then
+               RIHM(I2,I1)=Real(IIPP(I2,I1))*DL
+            Else
+               RMHM(I2,I1)=Real(IMPP(I2,I1))*DL
+               RIHM(I2,I1)=Real(IIPP(I2,I1))*DL
+            End if
+         End do 
+      End do 
+      FLOW=Real(NLOW)*DL
+
+* subtract null model
+
+      Do I1=1,NABC
+         R1=LOG(FABC(I1))
+         RIHM(I1, 0)=RIHM(I1, 0)+R1
+         Do I2=1,LPRF
+            RIHM(I1,I2)=RIHM(I1,I2)+R1
+            RMHM(I1,I2)=RMHM(I1,I2)+R1
+         End do
+      End do
+      
+* modify begin state
+
+      RIHM(MM,   0)=RIHM(BM,   0)
+      RIHM(MI,   0)=RIHM(BI,   0)
+      RIHM(MD,   0)=RIHM(BD,   0)
+      RIHM(DM,   0)=FLOW
+      RIHM(DI,   0)=FLOW
+      RIHM(DD,   0)=FLOW
+
+* modify end state 
+
+      RIHM(MM,LPRF)=RIHM(ME,LPRF)
+      RIHM(IM,LPRF)=RIHM(IE,LPRF)
+      RIHM(DM,LPRF)=RIHM(DE,LPRF)
+      RIHM(MD,   0)=FLOW
+      RIHM(ID,   0)=FLOW
+      RIHM(DD,   0)=FLOW
+      
+* scale HMM
+
+      If(OPTS) then 
+         Call SCHMM(NOUT,
+     *      IDMP,RIHM,RMHM,LPRF,NABC,FLOW,FSCA,OPTF,OPFF,RD,RI)  
+      Else 
+         Call SCHMM(NERR,
+     *      IDMP,RIHM,RMHM,LPRF,NABC,FLOW,FSCA,OPTF,OPFF,RD,RI)  
+      End if
+
+* print HMM  
+
+      If(OPTS) then
+         If(NABC.EQ.4) then
+            R         =RIHM(3, 0) 
+            RIHM(3, 0)=RIHM(2, 0) 
+            RIHM(2, 0)=R
+            Do I1=1,LPRF
+               R         =RIHM(3,I1) 
+               RIHM(3,I1)=RIHM(2,I1) 
+               RIHM(2,I1)=R
+               R         =RMHM(3,I1) 
+               RMHM(3,I1)=RMHM(2,I1) 
+               RMHM(2,I1)=R
+            End do
+         End if
+         Call WRSAM(NOUT,
+     *      IDMP,RIHM,RMHM,LPRF,NABC,FABC,FLOW,FSCA,DL) 
+      Else
+         Call WRHMR(NOUT,NERR,
+     *      IDMP,RIHM,RMHM,LPRF,NABC,CABC,FLOW,FSCA,DL) 
+      End if
+
+ 100  Call Exit(IRC)
+
+* errors
+      
+ 901  Write(NERR,*) 'Error: Incompatible alphabets between profile and',
+     *   ' null model.'
+      IRC=1
+      Go to 100
+      End
+*----------------------------------------------------------------------*
+      Subroutine Repar
+     *   (FPRF,FNUL,OPTF,OPFF,OPTH,OPTS,RD,RI,DL,IRC)
+
+      Character*(*)     FPRF
+      Character*(*)     FNUL
+      Character*512     CARG 
+
+      Logical           OPTF
+      Logical           OPFF
+      Logical           OPTH
+      Logical           OPTS
+
+      Real*8            DL
+
+      IRC=0
+
+* initializations
+
+      FPRF='-'
+      FNUL=' '
+
+      OPTF=.FALSE.
+      OPFF=.FALSE.
+      OPTH=.TRUE.
+      OPTS=.FALSE.
+
+      DL=1.0233739
+      RI=0.99
+      RD=0.9
+      
+      N1=Iargc()
+
+      K1=0
+      I2=1
+      Do I1=1,N1
+         Call GetArg(I2,CARG)
+         If     (CARG(1:1).EQ.'-'.AND.CARG(2:2).NE.' ') then
+            If(Index(CARG,'h').NE.0) go to 900
+            If(Index(CARG,'f').NE.0) OPTF=.TRUE.
+            If(Index(CARG,'F').NE.0) OPFF=.TRUE.
+            If(Index(CARG,'s').NE.0) then
+               OPTS=.TRUE.
+               OPTH=.FALSE.
+            End if
+            If(Index(CARG,'D').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RD
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RD
+               End if
+            End if
+            If(Index(CARG,'I').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) RI
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) RI
+               End if
+            End if
+            If(Index(CARG,'L').NE.0) then
+               If(CARG(3:3).NE.' ') then
+                  Read(CARG(3:),*,Err=900) DL
+               Else
+                  I2=I2+1
+                  Call GetArg(I2,CARG)
+                  Read(CARG,*,Err=900) DL
+               End if
+            End if
+         Else if(CARG(1:2).EQ.'D=') then
+            Read(CARG(3:),*,Err=900) RD 
+         Else if(CARG(1:2).EQ.'I=') then
+            Read(CARG(3:),*,Err=900) RI
+         Else if(CARG(1:2).EQ.'L=') then
+            Read(CARG(3:),*,Err=900) DL
+         Else if(K1.LE.1) then
+            K1=K1+1
+            If     (K1.EQ.1) then
+               FPRF=CARG
+            Else if(K1.EQ.2) then
+               FNUL=CARG
+            End if
+         Else
+            Go to 900
+         End if
+         I2=I2+1
+         If(I2.GT.N1) Go to 20
+      End do
+
+ 20   Continue
+
+ 100  Return
+ 900  IRC=-1
+      Go to 100
+      End
+*----------------------------------------------------------------------*
+      Subroutine NRNUL(NABC,CABC,FABC,P0,DABC,MABC) 
+
+      Character         CABC(0:26)
+      Real              FABC(0:26)
+      Character*(*)     DABC
+      Real              RABC(20)
+
+      X=0
+      Do I1=1,NABC
+         N1=Index(DABC(1:MABC),CABC(I1))
+         If(N1.NE.0) then
+            RABC(N1)=FABC(I1)
+            X=X+RABC(N1)
+         End if
+      End do
+
+      X=P0/X 
+
+      Do I1=1,MABC
+         FABC(I1)=RABC(I1)*X
+      End do
+
+      Return
+      End
+*----------------------------------------------------------------------*
+      Include          'reprf.f'
+      Include          'rhnul.f'
+      Include          'wrsam.f' 
+      Include          'wrhmr.f' 
+      Include          'schmm.f' 
+      Include          'dfnul.f'
+      Include          'lblnk.f' 
+      Include          'Xblnk.f'
diff --git a/pxdat.f b/pxdat.f
new file mode 100644
index 0000000..ca7f57b
--- /dev/null
+++ b/pxdat.f
@@ -0,0 +1,35 @@
+*----------------------------------------------------------------------*     
+* $Id: pxdat.f,v 2.4 2003/04/10 11:58:37 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+* PROFILE EXTRA PARAMETERS  
+
+      Integer           XM 
+      Integer           XI 
+      Integer           XD 
+      Integer           YM 
+      Integer           YI 
+      Integer           YD 
+      Integer           MX 
+      Integer           IX 
+      Integer           DX 
+      Integer           MY 
+      Integer           IY 
+      Integer           DY 
+
+      Parameter        (XM=   1) 
+      Parameter        (XI=   2)
+      Parameter        (XD=   3)
+      Parameter        (YM=   4)
+      Parameter        (YI=   5)
+      Parameter        (YD=   6)
+      Parameter        (MX=   7)
+      Parameter        (IX=   8)
+      Parameter        (DX=   9)
+      Parameter        (MY=  10)
+      Parameter        (IY=  11)
+      Parameter        (DY=  12)
+* 
+      Integer           IIPX(1:12,0:IDMP)     
+      
diff --git a/recmd.f b/recmd.f
new file mode 100644
index 0000000..7b381b9
--- /dev/null
+++ b/recmd.f
@@ -0,0 +1,30 @@
+*----------------------------------------------------------------------*     
+* $Id: recmd.f,v 2.4 2003/07/03 13:08:58 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine RECMD(RCEX)
+
+      Character*(*)     RCEX
+
+      Character*512     CARG
+      Character*512     CMDL
+
+      LCMD=LEN(RCEX)
+
+* Concatenate arguments of command-line
+
+      N=Iargc()
+
+      IC=1
+      Do I1=0,N
+         Call GetArg(I1,CARG)
+         CMDL(IC:)=CARG
+         IC=Lblnk(CMDL)+2
+      End do
+
+      RCEX=CMDL
+      If(IC.GT.LCMD) RCEX(LCMD-1:LCMD)='..'
+
+      Return
+      End 
diff --git a/regpr.f b/regpr.f
new file mode 100644
index 0000000..e6e0af8
--- /dev/null
+++ b/regpr.f
@@ -0,0 +1,285 @@
+*----------------------------------------------------------------------*     
+* $Id: regpr.f,v 2.5 2003/07/03 13:08:58 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine REGPR
+     *   (NGPR,FGPR,
+     *   RG,RE,RF,RO,LSYM,
+     *   CPID,CPAC,CPDE,NABC,CABC,LPRF,LPCI,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP, 
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT, 
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   IRC)
+
+      Character*(*)     FGPR
+      Character*512     RCIN  
+      Character         B
+
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'pfdat.f'
+      Include          'dfdat.f'
+
+      Include          'sterr.f'
+      
+      Integer           IPRF(32)
+      Character         CPRF
+
+      Logical           LSYM
+
+      Integer           Getc
+
+      IRC=0
+
+* open input file
+      
+      If(FGPR.EQ.'-') then
+ 1       Open(NGPR,Status='SCRATCH',Err=901)
+ 2       Continue 
+         Do I1=1,512
+            If(Getc(B).NE.0) go to 3
+            If(Ichar(B).EQ.10) then
+               Write(NGPR,'(512A)',Err=903)(RCIN(ii1:ii1),ii1=1,I1-1)
+               Go to   2  
+            Else
+               RCIN(I1:I1)=B
+            End if
+         End do 
+         Go to 905
+ 3       Rewind(NGPR)
+      Else
+         Open(NGPR,File=FGPR,Status='OLD',Err=900)
+      End if
+      
+* initialize 
+
+* - profile header
+
+      CPID='GCG_PROFILE'
+      CPAC='GC99999'
+      CPDE='Automatically reformatted from file ''' 
+     *   // FGPR(1:Lblnk(FGPR))
+     *   // '''.' 
+
+* - accessories
+
+      LPCI=.FALSE.
+
+      JNOR=1
+      MNOR(1)=1
+      NNOR(1)=1
+      NNPR(1)=1   
+      CNTX(1)='OrigScore'
+      RNOP(1,1)=0.0
+      RNOP(2,1)=1/RF
+
+      JCUT=1
+      MCLE(1)=0
+      CCUT(1)=' '
+      ICUT(1)=0
+      JCNM(1)=1
+      RCUT(1,1)=0.0
+      MCUT(1,1)=1 
+
+* - defaults for match and insert position  
+
+      CHID='-'
+      Do  15 I1=1,26 
+         IIPD(I1)=0
+ 15   Continue
+      
+      IIPD(B0)=0
+      IIPD(B1)=NLOW
+      IIPD(E0)=0
+      IIPD(E1)=NLOW
+
+      IIPD(BM)=0
+      IIPD(BI)=NLOW
+      IIPD(BD)=NLOW
+      IIPD(BE)=NLOW
+      IIPD(MM)=0
+      IIPD(MI)=NLOW
+      IIPD(MD)=NLOW
+      IIPD(ME)=0
+      IIPD(IM)=0
+      IIPD(II)=0
+      IIPD(ID)=NLOW
+      IIPD(IE)=NLOW
+      IIPD(DM)=0
+      IIPD(DI)=NLOW
+      IIPD(DD)=0
+      IIPD(DE)=NLOW
+
+      IIPD(I0)=0
+
+      CHMD='X'
+      Do  16 I1=1,26 
+         IMPD(I1)=0
+ 16   Continue
+
+      IIPD(M0)=0 
+      IMPD(D )=0
+
+      Do  18 I1=0,27
+         IMPP(I1,0)=NLOW
+ 18   Continue 
+
+* read alphabet
+
+ 25   Read(NGPR,'(A)',End=905,Err=902) RCIN
+      If(RCIN( 1: 4).NE.'Cons') go to  25
+      
+      IC1=Index(RCIN,'Gap')
+      K1=0
+      Do  29 I1=5,IC1-1
+         If(RCIN(I1:I1).NE.' ') then
+            K1=K1+1
+            CABC(K1)=RCIN(I1:I1)
+         End if
+ 29   Continue
+      NABC=K1
+
+* read numbers
+
+      K1=0
+ 30   Read(NGPR,'(A)',End= 50,Err=902) RCIN
+      If(RCIN( 1: 1).EQ.'!') go to  30
+
+* - input line
+
+C      RCIN(1024:1024)='@'
+      CPRF=RCIN(2:2)
+      Read(RCIN(3:512),*,Err=910,End= 50)
+     *   (IPRF(ii1),ii1=1,NABC+2)
+      Do  34 I2=1,NABC
+         IPRF(I2)=NINT(Real(IPRF(I2))/100*RF+RO)
+ 34   Continue
+      If(LSYM) then 
+         NGO=-NINT(Real(IPRF(NABC+1))/200*RF*RG)
+      Else
+         NGO=-NINT(Real(IPRF(NABC+1))/100*RF*RG)
+      End if 
+      NGE=-NINT(Real(IPRF(NABC+2))/100*RF*RE)
+
+* - build insert position 
+
+      CHIP(K1)=CHID 
+      Do  36 I1=0,46
+         IIPP(I1,K1)=IIPD(I1)
+ 36   Continue
+      Do  37 I1=1,NABC
+         IIPP(I1,K1)=NGE
+ 37   Continue
+      IIPP(MI,K1)=NGO
+      IIPP(MD,K1)=NGO
+      If(LSYM) then
+         IIPP(IM,K1)=NGO
+         IIPP(DM,K1)=NGO
+      End if 
+
+* - build match position
+
+      K1=K1+1
+      If(K1.GT.IDMP) go to 915
+      CHMP(K1)=CPRF
+      Do  43 I1=1,NABC
+         IMPP(I1,K1)=IPRF(I1)
+ 43   Continue 
+      IMPP( 0,K1)=0
+      IMPP(D ,K1)=NGE
+
+      Go to  30
+
+ 50   LPRF=K1
+      If(LPRF.LE.0) go to 920
+
+* - disjointness definition
+
+      MDIS=2
+      NDIP(1)=1+LPRF/10
+      NDIP(2)=LPRF-LPRF/10
+
+* - defaults for gap weights
+
+      NGO=IIPP(MI,0) 
+      NGE=IMPP( D,1) 
+      Do  53 I1=1,LPRF-1
+         NGO=MIN(NGO,IIPP(MI,I1))
+         NGE=MIN(NGE,IMPP( D,I1+1))
+ 53   Continue
+
+      IIPD(MI)=NGO
+      IIPD(MD)=NGO
+      If(LSYM) then 
+         IIPD(DM)=NGO
+         IIPD(IM)=NGO
+      End if
+      
+      Do  54 I1=1,NABC
+         IIPD(I1)=NGE
+ 54   Continue 
+      IMPD( D)=NGE
+
+* - last insert position 
+
+      CHIP(K1)=CHID 
+      Do  60 I1=0,46
+         IIPP(I1,K1)=IIPD(I1)
+ 60   Continue
+
+* - domain global mode:
+
+      IIPP(B1,   0)=0
+      IIPP(E1,LPRF)=0
+
+* - move DM scores one position forward: 
+
+      If(LSYM) then
+         IIPP(DM, 0)=IIPD(DM)
+         Do  65 I1=LPRF, 1,-1
+            IIPP(DM,I1)=IIPP(DM,I1-1)
+ 65      Continue
+      End if  
+
+ 100  Return 
+
+* errors
+ 
+ 900  Write(NERR,*) 'Error: Unable to open profile file'//
+     *   ' ''',FGPR(1:Lblnk(FGPR)),'''.'
+      IRC=1
+      Go to 100
+ 901  Write(NERR,*) 'Error: Unable to create temporary file.'
+      IRC=1
+      Go to 100
+ 902  Write(NERR,*) 'Error: Unable to read profile file.'
+      IRC=1
+      Go to 100
+ 903  Write(NERR,*) 'Error: Unable to write to temporary file.'
+      IRC=1
+      Go to 100
+ 905  Write(NERR,*) 'Error: Unexpected end of file. '//
+     *   'Unable to find profile alphabet.'
+      IRC=1
+      Go to 100
+ 910  Write(NERR,*) 'Error: Unable to read profile values.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      IRC=1
+      Go to 100
+ 915  Write(NERR,*) 'Error: Profile length exceeds buffer size (',
+     *   IDMP,').'
+      IRC=1
+      Go to 100
+ 920  Write(NERR,*) 'Error: Unexpected end of profile. Profile has '//
+     *   'zero length. Check profile syntax.'
+      IRC=1
+      Go to 100
+
+      End
diff --git a/remsa.f b/remsa.f
new file mode 100644
index 0000000..353fb52
--- /dev/null
+++ b/remsa.f
@@ -0,0 +1,128 @@
+*----------------------------------------------------------------------*     
+* $Id: remsa.f,v 1.2 2003/07/03 13:08:58 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine REMSA
+     *   (NERR,NMSF,FMSF,
+     *   IDMS,CSEQ,NSEQ,LSEQ,
+     *   IDMF,RWGT,SQID,
+     *   IRC)
+
+      Character*(*)    FMSF
+
+      Character        CSEQ(*) 
+      Real*4           RWGT(*)
+      Character*(*)    SQID(*) 
+
+      Character*512    RCIN 
+
+      IRC=0
+      NSEQ=0
+      LSEQ=0
+
+      If(FMSF.NE.'-') then 
+         Open(NMSF,File=FMSF,Status='OLD',Err=900)
+      End if 
+
+ 1    Read(NMSF,'(A)',Err=901,End=999,Iostat=IOS) RCIN
+ 2    If(RCIN(1:1).NE.'>') go to   1   
+
+* read sequence weight in xpsa header if available
+
+      If(NSEQ+1.GT.IDMF) go to 906
+      IW=Index(RCIN,'weight=')
+      If(IW.NE.0) then
+         Read(RCIN(IW+7:),*,Err=905) RWGT(NSEQ+1)
+      Else
+         RWGT(NSEQ+1)=1.0
+      End if
+
+* read sequence identifier
+
+      L=Lblnk(RCIN)
+      Do I1=2,L
+         If(RCIN(I1:I1).NE.' ') go to 3
+      End do
+ 3    Do I2=I1,L
+         If(RCIN(I2:I2).EQ.' ') go to 4
+      End do
+ 4    If(I2-I1.GT.64) I2=I1+64
+      SQID(NSEQ+1)=RCIN(I1:I2)
+
+* read sequences in multiple alignment
+
+      J1=NSEQ*LSEQ
+ 10   RCIN=' '
+      Read(NMSF,'(A)',Err=901,Iostat=IOS) RCIN
+      L=Lblnk(RCIN)
+      If((RCIN(1:1).EQ.'>').OR.
+     *   (L.EQ.0.AND.IOS.EQ.-1)) go to 20
+      Do 15 I1=1,L
+         If(RCIN(I1:I1).NE.' ') then
+            J1=J1+1
+            If(J1.GT.IDMS) go to 902
+            CSEQ(J1)=RCIN(I1:I1)
+         End if
+ 15   Continue
+      Go to 10
+
+ 20   If(J1.EQ.(NSEQ*LSEQ)) go to 903
+      If(NSEQ.EQ.0) then
+         LSEQ=J1
+      Else if(J1.NE.(NSEQ+1)*LSEQ) then
+         go to 904
+      End if
+      NSEQ=NSEQ+1
+      
+      If(IOS.NE.-1) go to 2
+
+ 100  Return
+
+ 110  IX=Lblnk(SQID(NSEQ+1))
+      If(IX.GT.1) then
+         Write(NERR,*) '       While processing sequence ',
+     *      SQID(NSEQ+1)(1:IX)
+      End if
+      Go to 100
+
+* errors
+
+ 900  Write(NERR,*) 'Error: Unable to open MSA file'//
+     *   ' ''',FMSF(1:Lblnk(FMSF)),'''.'
+      IRC=1
+      Go to 100
+ 901  Write(NERR,*) 'Error: Unable to read MSA file'//
+     *   ' ''',FMSF(1:Lblnk(FMSF)),'''.'
+      IRC=1
+      Go to 100
+ 902  Write(NERR,*) 'Error: MSA length exceeds buffer ',
+     *   'size (',IDMS,').'
+      IRC=1
+      Go to 110
+ 903  Write(NERR,*) 'Error: Unexpected end of sequence.'//
+     *   ' Sequence has zero length.'
+      IRC=1
+      Go to 110
+ 904  Write(NERR,*) 'Error: Sequence length differs from expected ',
+     *   'length.'
+      IRC=1
+      Go to 110
+ 905  Write(NERR,*) 'Error: Unable to read weight in sequence ',
+     *   'header.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      IRC=1
+      Go to 100
+ 906  Write(NERR,*) 'Error: Number of sequences in MSA file exceeds ',
+     *   'buffer size (',IDMF,').'
+      IRC=1
+      Go to 100
+
+ 999  If(NSEQ.EQ.0) then
+         Write(NERR,*) 'Error: No sequence has been read.'
+         IRC=1
+      End if
+      Go to 100
+
+      End
diff --git a/remsf.f b/remsf.f
new file mode 100644
index 0000000..5dc6f30
--- /dev/null
+++ b/remsf.f
@@ -0,0 +1,191 @@
+*----------------------------------------------------------------------*     
+* $Id: remsf.f,v 2.7 2003/07/03 13:08:58 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine REMSF
+     *   (NERR,NMSF,FMSF,
+     *   IDMS,CSEQ,NSEQ,LSEQ,
+     *   IDMF,RWGT,SQID,
+     *   IRC)
+
+      Character*(*)    FMSF
+
+      Character        CSEQ(*) 
+      Real*4           RWGT(*)
+      Character*(*)    SQID(*) 
+
+      Logical          LBKS
+      Character*512    RCIN 
+      Character*32     CMIS
+
+      IRC=0
+      LBKS=.FALSE.
+
+      If(FMSF.NE.'-') then 
+         Open(NMSF,File=FMSF,Status='OLD',Err=900)
+      End if 
+
+      CMIS='..'
+ 1    Read(NMSF,'(A)',Err=901,End=902) RCIN        
+      If(Index(RCIN,'..').EQ.0) go to   1
+
+* read length
+
+      CMIS='MSF'
+      IX=Index(RCIN,'MSF:')
+      If(IX.EQ.0) Go to 904
+      CMIS='length'
+      Read(RCIN(IX+4:),*,Err=903) LSEQ
+
+* names
+
+      NSEQ=0
+ 2    Read(NMSF,'(A)',Err=901,End=905) RCIN        
+      If(RCIN(1:2).EQ.'//') go to   3
+      IX1=Index(RCIN,'Name: ')
+      If(IX1.EQ.0) go to   2 
+      IX2=Index(RCIN,'Len: ')
+      If(IX2.EQ.0) go to   2 
+      NSEQ=NSEQ+1
+      If(NSEQ.GT.IDMF) go to 910
+      SQID(NSEQ)=RCIN(IX1+5:IX2-1)
+      IX=Index(RCIN,'Weight: ') 
+      CMIS='Weight'
+      If(IX.EQ.0) go to 904
+      Read(RCIN(IX+9:),*,Err=903)  RWGT(NSEQ)
+      Go to   2
+
+* sequence offset -> NOFS
+
+ 3    Read(NMSF,'(A)',Err=901,End=905) RCIN        
+      If(RCIN.EQ.' ') go to   3
+      N1=1
+      N2=0
+
+* read sequences 
+
+ 10   Read(RCIN,*,Iostat=IOS) K1,K2
+      If(IOS.NE.0.OR.K1.LE.0.OR.K2.LE.0) then 
+         L1=Lblnk(RCIN) 
+         Do I1=1,L1
+            If(RCIN(I1:I1).NE.' ') go to  11
+         End do
+ 11      J1=I1
+         Do I1=J1,L1
+            If(RCIN(I1:I1).EQ.' ') go to  12
+         End do
+ 12      J1=I1
+         Do I1=J1+1,L1
+            If(RCIN(I1:I1).NE.' ') go to  13
+         End do 
+ 13      NOFS=I1-1
+         J1=I1
+         Do I1=J1,L1
+            If(RCIN(I1:I1).NE.' ') N2=N2+1 
+         End do 
+C          Backspace(NMSF,Err=907)
+         LBKS=.TRUE.
+      Else if(NOFS.EQ.0) then
+         NOFS=Index(RCIN,' 1')
+         N2=K2
+         If(NOFS.EQ.0) go to   3
+      Else
+         N1=K1
+         N2=K2
+      End if 
+
+      Do  20 I1=0,NSEQ-1
+
+         If(LBKS) then
+            LBKS=.FALSE.
+            Go to 16
+         End if           
+
+ 15      Read(NMSF,'(A)',Err=901,End=905) RCIN        
+ 16      If(RCIN(1:NOFS).EQ.' ') go to  15
+
+         J1=I1*LSEQ+N1
+         N5=(I1+1)*LSEQ
+         Do  19 I2=NOFS+1,Lblnk(RCIN) 
+            If(RCIN(I2:I2).NE.' ') then
+               If(J1.GT.IDMS) go to 906
+               If(J1.GT.N5) go to 911
+               CSEQ(J1)=RCIN(I2:I2)
+               J1=J1+1
+            End if 
+ 19      Continue
+         If(I1.NE.0.AND.N4.NE.N2-N1+1) go to 909
+         
+         If(J1.NE.I1*LSEQ+N2+1) then
+            N3=J1-I1*LSEQ-1
+            If(N3.NE.LSEQ) then
+               Go to 909
+            End if
+         End if 
+         N4=N2-N1+1
+
+ 20   Continue
+
+      If(N2.GE.LSEQ) go to 100 
+
+ 25   Read(NMSF,'(A)',Err=901,End=905) RCIN        
+      If(RCIN.EQ.' ') go to  25 
+      N1=N2+1
+      Go to  10
+
+ 100  Return
+
+* errors
+
+ 900  Write(NERR,*) 'Error: Unable to open MSF file'//
+     *   ' ''',FMSF(1:Lblnk(FMSF)),'''.'
+      IRC=1
+      Go to 100
+ 901  Write(NERR,*) 'Error: Unable to read MSF file'//
+     *   ' ''',FMSF(1:Lblnk(FMSF)),'''.'
+      IRC=1
+      Go to 100
+ 902  Write(NERR,*) 'Error: Unexpected end of MSF file. '//
+     *   'Unable to find ''',CMIS(1:Lblnk(CMIS)),''' keyword.'
+      Write(NERR,*) '       No sequences read.'
+      IRC=1
+      Go to 100
+ 903  Write(NERR,*) 'Error: Badly formatted MSF file. '//
+     *   'Unable to read ''',CMIS(1:Lblnk(CMIS)),''' parameter.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      Write(NERR,*) '       No sequences read.'
+      IRC=1
+      Go to 100
+ 904  Write(NERR,*) 'Error: Badly formatted MSF file. '//
+     *   'Unable to find ''',CMIS(1:Lblnk(CMIS)),''' keyword.'
+      Write(NERR,*) '       No sequences read.'
+      IRC=1
+      Go to 100
+ 905  Write(NERR,*) 'Error: Unexpected end of MSF file. '//
+     *   'Unable to read sequences in MSF file.'
+      IRC=1
+      Go to 100
+ 906  Write(NERR,*) 'Error: Multiple sequence length exceeds ',
+     *   'buffer size (',IDMS,').'
+      IRC=1
+      Go to 100
+ 909  Write(NERR,*) 'Error: Sequence length differs from expected ',
+     *   'length.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      IRC=1
+      Go to 100
+ 910  Write(NERR,*) 'Error: Number of sequences in MSF file exceeds ',
+     *   'buffer size (',IDMF,').'
+      IRC=1
+      Go to 100
+ 911  Write(NERR,*) 'Error: Sequence length exceeds expected ',
+     *   'length.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      IRC=1
+      Go to 100
+
+      End
diff --git a/reprf.f b/reprf.f
new file mode 100644
index 0000000..0391941
--- /dev/null
+++ b/reprf.f
@@ -0,0 +1,1140 @@
+*----------------------------------------------------------------------*     
+* $Id: reprf.f,v 2.17 2003/11/18 10:50:07 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine REPRF
+     *   (NPRF,FPRF,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   BLOG,FABC,P0,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,CHIL,IIPL,ILIP,
+     *   CHID,IIPD,CHMD,IMPD,
+     *   INBP,LEOF,OPTV,IRC)
+
+* profile data fields
+
+      Character*(*)     FPRF
+
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'dfdat.f'
+      Include          'pfdat.f'
+      Include          'sterr.f'
+
+      Character*512     RCIN
+
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+* work fields
+
+      Integer           NKEY 
+      Character*64      CPAR
+      Character*512     CVAL 
+      Logical           LNEW
+      Logical           LIDF
+      Logical           LZCO
+      Integer           ISCO(26)
+
+      Character*64      CH64
+      Character*2       CMIS
+      Logical           LOPN
+      Logical           LEOF
+      Logical           OPTV
+      
+      IRC=0
+      RCIN=' '
+      LZCO=.FALSE.
+      LEOF=.FALSE.
+
+* open profile file 
+
+      Inquire(File=FPRF,OPENED=LOPN)
+      If(LOPN) go to   1
+      If(FPRF.NE.'-'.OR.NPRF.NE.5)
+     *   Open(NPRF,File=FPRF,Status='OLD',Err=900)
+
+* profile-id 
+      
+ 1    LIDF=.FALSE.
+      CMIS='ID'
+      Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920
+      If(RCIN(1:2).NE.'ID') go to   1   
+      LR=Xblnk(RCIN,64)
+      IC=Index(RCIN,';')
+      If(IC.LE.0) go to 916
+      CPID=RCIN( 6:IC-1)
+      If(Index(RCIN(IC:LR),'MATRIX').EQ.0) go to 924 
+      LIDF=.TRUE.
+
+* ac-number 
+      
+      CMIS='AC'
+ 2    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920
+      If(RCIN(1:2).NE.'AC') go to   2   
+      IX=Index(RCIN,';')-1
+      If(IX.LE.0) go to 916
+C      CPAC=RCIN( 6:IC-1)
+      CPAC=RCIN(6:IX) // '|'
+
+* date, description 
+
+      CMIS='DE'
+      CPDT=' '
+ 3    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920
+      If(RCIN(1:2).EQ.'DT') then 
+         LR=Xblnk(RCIN,64)
+         CPDT=RCIN( 6:LR)
+         Go to   3
+      End if 
+      If(RCIN(1:2).NE.'DE') go to   3   
+      LR=Xblnk(RCIN,64)
+      CPDE=RCIN( 6:LR)
+
+* go to first MA line, read additional header lines 
+      
+      LHDR=0
+      CMIS='MA'
+ 5    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920 
+      If(RCIN(1:2).NE.'MA') then
+         If(LHDR.LT.512) then
+            LHDR=LHDR+1
+            CHDR(LHDR)=RCIN
+         End if
+         go to   5   
+      End if
+*      LR=Lblnk(RCIN)
+
+* initialize position-independent profile parameters
+
+* - general specifications
+
+      CVAL='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+      NABC=26
+      Read(CVAL,'(26A)')(CABC(ii1),ii1=1,NABC)
+
+      LPRF=0
+      LENP=0
+
+      LPCI=.FALSE.
+      P0=0.0
+
+* - disjoint mode
+
+      MDIS=1
+
+* - normalization modes
+
+      JNOR=0 
+      Do  11 I1=1,MAXN
+         NNOR(I1)=I1
+         NNPR(I1)=I1
+ 11   Continue
+
+* - cut-off
+
+      JCUT=0
+
+* - defaults for match and insert position  
+
+      JI=-1
+      JM=0
+      
+      Call INITD(IIPD,IMPD,CHMD,CHID,NLOW)
+
+      Do  18 I1=0,27
+         IMPP(I1,0)=NLOW
+ 18   Continue 
+
+* intialize profile input buffers.
+
+      LR=Xblnk(RCIN,64)
+      If(Ichar(RCIN(LR:LR)).EQ.13)LR=LR-1 
+      JR=5
+
+* read next parameter 
+
+ 20   Continue
+      LFTR=0
+      Call NEXTP(NPRF,RCIN,LR,JR,NKEY,LNEW,CPAR,CVAL,LFTR,CFTR,IRC) 
+      If(IRC.GT.0) go to 940
+      If(IRC.LT.0) go to 930
+
+* interpret parameters
+
+* - GENERAL_SPEC:
+
+      If     (NKEY.EQ.1) then 
+
+         If     (CPAR.EQ.'ALPHABET') then
+            Read(CVAL,*,Err=910) CH64
+            NABC=Lblnk(CH64)
+            If(NABC.GT.26) Go to 908
+            Read(CH64,'(64A)',Err=910)(CABC(ii1),ii1=1,NABC)
+
+            If(NABC.LT.20) then
+               CABC(0)='N'
+            Else
+               CABC(0)='X'
+            End if
+         Else if(CPAR.EQ.'LENGTH') then
+            Read(CVAL,*,Err=910) LENP
+         Else if(CPAR.EQ.'TOPOLOGY'.AND.CVAL.EQ.'CIRCULAR') then 
+            LPCI=.TRUE.
+         Else if(CPAR.EQ.'LOG_BASE') then
+            Read(CVAL,*,Err=910) BLOG
+            If(P0.EQ.0.0) P0=1.0
+         Else if(CPAR.EQ.'P0') then
+            Read(CVAL,*,Err=910) P0 
+         Else if(CPAR.EQ.'P') then
+            L1=Xblnk(CVAL,64) 
+            J1=1
+            Do  I1=1,L1
+               If(CVAL(I1:I1).EQ.',') J1=J1+1
+            End do 
+            If(J1.GT.26) Go to 908
+            Read(CVAL,*,Err=910)(FABC(ii1),ii1=1,J1)
+         End if
+         
+* - DISJOINT:
+
+      Else if(NKEY.EQ.2) then 
+
+         If     (CPAR.EQ.'DEFINITION') then 
+            Do  31 I1=1,KDIS
+               If(CVAL.EQ.CDIS(I1)) MDIS=I1
+ 31         Continue
+         Else
+            If     (CPAR.EQ.'N1') then
+               Read(CVAL,*,Err=910) NDIP(1) 
+            Else if(CPAR.EQ.'N2') then
+               Read(CVAL,*,Err=910) NDIP(2) 
+            End if
+         End if           
+
+* - NORMALIZATION:
+
+      Else if(NKEY.EQ.3) then 
+
+         If(LNEW) then
+            If(JNOR.GE.MAXN) Go to 912
+            JNOR=JNOR+1
+            CNTX(JNOR)=' '
+         End if
+
+         If     (CPAR.EQ.'FUNCTION') then
+            If(CVAL.EQ.'GRIBSKOV') CVAL='GLE_ZSCORE'
+            Do  41 I1=1,KNOR
+               If(CVAL.EQ.CNOR(I1)) MNOR(JNOR)=I1
+ 41         Continue
+            If (MNOR(JNOR).EQ.0) Go to 911
+         Else if(CPAR.EQ.'MODE') then
+            Read(CVAL,*,Err=910) NNOR(JNOR)
+         Else if(CPAR.EQ.'PRIORITY') then
+            Read(CVAL,*,Err=910) NNPR(JNOR)
+         Else if(CPAR.EQ.'TEXT') then
+            Read(CVAL,*,Err=910) CNTX(JNOR)
+         Else
+            If     (CPAR.EQ.'R1') then
+               Read(CVAL,*,Err=910) RNOP(1,JNOR) 
+            Else if(CPAR.EQ.'R2') then
+               Read(CVAL,*,Err=910) RNOP(2,JNOR) 
+            Else if(CPAR.EQ.'R3') then
+               Read(CVAL,*,Err=910) RNOP(3,JNOR) 
+            Else if(CPAR.EQ.'R4') then
+               Read(CVAL,*,Err=910) RNOP(4,JNOR) 
+            Else if(CPAR.EQ.'R5') then
+               Read(CVAL,*,Err=910) RNOP(5,JNOR) 
+            End if
+         End if
+
+* - CUT_OFF:
+
+      Else if(NKEY.EQ.4) then 
+
+         If(LNEW) then 
+            If(JCUT.GE.MAXC) Go to 913
+            JCUT=JCUT+1
+            MCLE(JCUT)=0
+            CCUT(JCUT)=' '
+            JCNM(JCUT)=0
+         End if
+
+         If     (CPAR.EQ.'LEVEL') then
+            Read(CVAL,*,Err=910) MCLE(JCUT)
+            If(MCLE(JCUT).EQ.0) LZCO=.TRUE.
+         Else if(CPAR.EQ.'SCORE') then
+            Read(CVAL,*,Err=910) ICUT(JCUT)
+         Else if(CPAR.EQ.'TEXT') then
+            Read(CVAL,*,Err=910) CCUT(JCUT)
+         Else if(CPAR.EQ.'N_SCORE') then
+            L1=Xblnk(CVAL,64) 
+            J1=1
+            Do  51 I1=1,L1
+               If(CVAL(I1:I1).EQ.',') J1=J1+1
+ 51         Continue
+            Read(CVAL,*,Err=910)(RCUT(ii1,JCUT),ii1=1,J1)
+            JCNM(JCUT)=J1
+         Else if(CPAR.EQ.'MODE') then
+            L1=Xblnk(CVAL,64) 
+            J1=1
+            Do  52 I1=1,L1
+               If(CVAL(I1:I1).EQ.',') J1=J1+1
+ 52         Continue
+            Read(CVAL,*,Err=910)(MCUT(ii1,JCUT),ii1=1,J1)
+         End if
+
+* - DEFAULT:
+
+      Else if(NKEY.EQ.5) then 
+
+         If     (CPAR.EQ.' ') then
+            Call INITD(IIPD,IMPD,CHMD,CHID,NLOW)
+         Else if(CPAR.EQ.'SY_I') then
+            Read(CVAL,*,Err=910) CHID 
+         Else if(CPAR.EQ.'SY_M') then
+            Read(CVAL,*,Err=910) CHMD
+         Else if(CPAR.EQ.'M0'.OR.CPAR.EQ.'M'.OR.CPAR.EQ.'D') then
+            Call GETPM(CPAR,CVAL,INDX,ISCO,NABC,NLOW,IRC)
+            If(IRC.NE.0) Go to 950
+            If(INDX.EQ.1) then
+               Do  61 I1=1,NABC
+                  IMPD(I1)=ISCO(I1)
+ 61            Continue
+            Else
+               IMPD(INDX)=ISCO(1)
+            End if
+         Else
+            Call GETPI(CPAR,CVAL,INDX,ISCO,NABC,NLOW,IRC)
+            If(IRC.NE.0) Go to 950
+            If(INDX.EQ.1) then
+               Do  62 I1=1,NABC
+                  IIPD(I1)=ISCO(I1)
+ 62            Continue
+            Else
+               IIPD(INDX)=ISCO(1)
+            End if
+         End if
+         
+* - I:
+
+      Else if(NKEY.EQ.6) then 
+
+         If(LNEW) then
+            JI=JI+1
+
+            If (JI.GE.IDMP.OR.JM.GT.IDMP) then
+               Go to 915
+            End if
+
+            CHIP(JI)=CHID 
+            Do  71 I1=0,46
+               IIPP(I1,JI)=IIPD(I1)
+ 71         Continue
+            If(JI.GT.JM) then
+               JM=JM+1
+               CHMP(JM)=CHMD 
+               Do  72 I1=0,27
+                  IMPP(I1,JM)=IMPD(I1)
+ 72            Continue
+            End if
+         End if 
+
+         If     (CPAR.EQ.' ') then
+            Go to  20
+         Else if(CPAR.EQ.'SY') then
+            Read(CVAL,*,Err=910) CHIP(JI) 
+         Else
+            Call GETPI(CPAR,CVAL,INDX,ISCO,NABC,NLOW,IRC)
+            If(IRC.NE.0) Go to 950
+            If(INDX.EQ.1) then
+               Do  73 I1=1,NABC
+                  IIPP(I1,JI)=ISCO(I1)
+ 73            Continue
+            Else
+               IIPP(INDX,JI)=ISCO(1)
+            End if
+         End if
+
+* - M:
+
+      Else if(NKEY.EQ.7) then 
+
+         If(LNEW) then
+            JM=JM+1
+
+            If (JI.GE.IDMP.OR.JM.GT.IDMP) then
+               Go to 915
+            End if
+
+            CHMP(JM)=CHMD 
+            Do  81 I1=0,27
+               IMPP(I1,JM)=IMPD(I1)
+ 81         Continue
+            If(JM-1.GT.JI) then
+               JI=JI+1
+               CHIP(JI)=CHID 
+               Do  82 I1=0,46
+                  IIPP(I1,JI)=IIPD(I1)
+ 82            Continue
+            End if
+         End if 
+
+         If     (CPAR.EQ.' ') then
+            Go to  20
+         Else if(CPAR.EQ.'SY') then
+            Read(CVAL,*,Err=910) CHMP(JM) 
+         Else
+            Call GETPM(CPAR,CVAL,INDX,ISCO,NABC,NLOW,IRC)
+            If(IRC.NE.0) Go to 950
+            If(INDX.EQ.1) then
+               Do  83 I1=1,NABC
+                  IMPP(I1,JM)=ISCO(I1)
+ 83            Continue
+            Else
+               IMPP(INDX,JM)=ISCO(1)
+            End if
+         End if
+      Else 
+         Continue
+      End if  
+
+C      Print *,JI,JM,NKEY,' ',LNEW,' ',
+C     *   CPAR(1:Lblnk(CPAR)),'=',
+C     *   CVAL(1:Lblnk(CVAL))
+
+      Go to  20
+
+ 90   Continue
+      IRC=0
+
+* last insert position 
+* store values for multiple matches of circular profiles
+
+      If(LPCI) then
+         If(JI.EQ.JM) then 
+            ILIP=0
+            CHIL=CHIP(0)
+            CHIP(    0)=CHIP(   JI)
+            Do  91 I1=0,46
+               IIPL(I1)=IIPP(I1, 0)
+               IIPP(I1, 0)=IIPP(I1,JI)
+ 91         Continue
+         Else
+            JI=JI+1
+            ILIP=JI
+            CHIL=CHID
+            CHIP(   JI)=CHIP(    0)
+            Do  92 I1=0,46
+               IIPL(I1)=IIPD(I1)
+               IIPP(I1,JI)=IIPP(I1, 0)
+ 92         Continue
+         End if
+      Else if(JI.LT.JM) then 
+         JI=JI+1
+         CHIP(   JI)=CHID
+         Do  93 I1=0,46
+            IIPP(I1,JI)=IIPD(I1)
+ 93      Continue
+      End if
+
+
+* set length of profile
+ 
+      LPRF=JI
+
+* check consistency of some parameters
+
+ 94   If(.NOT.LZCO.OR.JCUT.EQ.0) go to 919
+      If(LPRF.LT.1) then
+         Go to 918
+      Else
+         INBP=INBP+1
+      End if
+      If(NDIP(1).LE.0.OR.NDIP(1).GT.LPRF) then
+         NDIP(1)=1
+         Go to 923
+      End if
+      If(NDIP(2).LE.0.OR.NDIP(2).GT.LPRF) then
+         NDIP(2)=LPRF
+         Go to 923
+      End if
+      If(NDIP(2).LT.NDIP(1)) then
+         I1=NDIP(2)
+         NDIP(2)=NDIP(1)
+         NDIP(1)=I1
+      End if
+C      Do 95 I1=0,JI
+C         Write(NERR,*) 'I[',I1,']: '
+C         Write(NERR,*)(IIPP(ii1,I1),ii1=0,46)
+C 95   Continue
+C
+C      Do 96 I1=0,JM
+C         Write(NERR,*) 'M[',I1,']: '
+C         Write(NERR,*)(IMPP(ii1,I1),ii1=0,27)
+C 96   Continue
+
+ 100  Return
+
+ 110  If(LIDF.AND.IRC.NE.0) then
+         Write(NERR,*) '       While processing profile ',
+     *      CPID(1:Lblnk(CPID))
+      End if
+      Go to 100
+
+* errors
+
+ 900  Write(NERR,*) 'Error: Unable to open profile file'//
+     *   ' ''',FPRF(1:Xblnk(FPRF,64)),'''.'
+      IRC=1
+      Go to 110
+ 901  Write(NERR,*) 'Error: Unable to read profile file'//
+     *   ' ''',FPRF(1:Xblnk(FPRF,64)),'''.'
+      IRC=1
+      Go to 110
+ 902  If(INBP.LT.1.OR.LIDF) then
+         Write(NERR,*) 'Error: Unexpected end of file. '//
+     *      'Unable to find profile ',CMIS,' line.'
+         If(INBP.LT.1)
+     *      Write(NERR,*) '       No profile read.'
+         IRC=1
+      Else
+         LEOF=.TRUE.
+         IRC=0
+      End if
+      Go to 110
+ 906  Write(NERR,*) 'Error: Unknown data block at line: ',
+     *   RCIN(1:Xblnk(RCIN,64))
+      IRC=1
+      Go to 110
+ 908  Write(NERR,*) 'Error: Too many values for parameter '//
+     *   CPAR(1:Lblnk(CPAR))
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Xblnk(RCIN,64))
+      IRC=1
+      Go to 110
+ 910  Write(NERR,*) 'Error: Unable to read value of parameter '//
+     *   CPAR(1:Lblnk(CPAR))
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Xblnk(RCIN,64))
+      IRC=1
+      Go to 110
+ 911  Write(NERR,*) 'Error: Unknown value '//
+     *   CVAL(1:Xblnk(CVAL,64)),' for parameter '//
+     *   CPAR(1:Lblnk(CPAR))
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Xblnk(RCIN,64))
+      IRC=1
+      Go to 110
+ 912  Write(NERR,*) 'Error: Maximum number of NORMALIZATION '//
+     *   'data blocks exceeded '
+      IRC=1
+      Go to 110
+ 913  Write(NERR,*) 'Error: Maximum number of CUT_OFF '//
+     *   'data blocks exceeded '
+      IRC=1
+      Go to 110
+ 914  Write(NERR,*) 'Error: Unknown parameter '//
+     *   CPAR(1:Lblnk(CPAR))
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Xblnk(RCIN,64))
+      IRC=1
+      Go to 110
+ 915  Write(NERR,*) 'Error: Profile length exceeds buffer size (',
+     *   IDMP,').'
+      IRC=1
+      Go to 110
+ 916  Write(NERR,*) 'Error: Missing semicolon.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Xblnk(RCIN,64))
+      IRC=1
+      Go to 110
+ 917  Write(NERR,*) 'Error: Missing ''MATRIX'' keyword in ID line.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Xblnk(RCIN,64))
+      IRC=1
+      Go to 110
+ 918  Write(NERR,*) 'Error: Unexpected end of profile. Profile has '//
+     *   'zero length. Check profile syntax.'
+      IRC=1
+      Go to 110
+
+ 919  Write(NERR,*) 'Error: No level 0 ''CUT-OFF'' data-block'//
+     *   ' in profile.'
+      Write(NERR,*) '       Check profile syntax.'
+      IRC=1
+      Go to 110
+
+* warnings
+
+ 920  If(.NOT.OPTV) then
+         Write(NERR,*)'Warning: Unexpected profile separator (''//'')'//
+     *      ' found. Unable to find ',CMIS,' line.'
+         If(LIDF) then
+            Write(NERR,*) '         While processing profile ',
+     *         CPID(1:Lblnk(CPID))
+         End if
+         Write(NERR,*) '         Reading next profile.'
+      End if
+      IRC=0
+      Go to 1
+
+ 921  If(.NOT.OPTV) then
+         Write(NERR,*) 'Warning: Parameter name too long at line: ',
+     *      RCIN(1:Xblnk(RCIN,64))
+         If(LIDF) then
+            Write(NERR,*) '         While processing profile ',
+     *         CPID(1:Lblnk(CPID))
+         End if
+         Write(NERR,*) '         Skipping parameter.'
+      End if
+      IRC=0
+      Go to 20
+      
+ 922  If(.NOT.OPTV) then
+         Write(NERR,*) 'Warning: Parameter value too long at line: ',
+     *      RCIN(1:Xblnk(RCIN,64))
+         If(LIDF) then
+            Write(NERR,*) '         While processing profile ',
+     *         CPID(1:Lblnk(CPID))
+         End if
+         Write(NERR,*) '         Skipping parameter.'
+      End if
+      IRC=0
+      Go to 20
+
+ 923  If(.NOT.OPTV) then
+         Write(NERR,*) 'Warning: Disjointness parameter out of bound. '
+         Write(NERR,*) '         Setting parameter to acceptable value.'
+         If(LIDF) then
+            Write(NERR,*) '         While processing profile ',
+     *         CPID(1:Lblnk(CPID))
+         End if
+      End if
+      Go to 94
+
+ 924  If(.NOT.OPTV) then
+         Write(NERR,*) 'Warning: Missing ''MATRIX'' keyword in ID line.'
+         Write(NERR,*) '         at line: ',
+     *      RCIN(1:Xblnk(RCIN,64))
+         IRC=0
+         If(LIDF) then
+            Write(NERR,*) '         While processing profile ',
+     *         CPID(1:Lblnk(CPID))
+         End if
+         Write(NERR,*) '         Reading next profile.'
+      End if
+      IRC=0
+      Go to 1
+
+
+* process warnings occuring in NEXTP()
+
+ 930  If(IRC.EQ.-3) Go to 921
+      If(IRC.EQ.-4) Go to 922
+      Go to 90
+
+* process errors occuring in NEXTP()
+
+ 940  If(IRC.EQ.2) Go to 906
+      Go to 901
+
+* process errors occuring in GETPI() or GETPM()
+
+ 950  If(IRC.GT.0) Go to 910
+      If(IRC.EQ.-1) Go to 914
+      If(IRC.EQ.-2) Go to 908
+      Go to 90
+
+      End
+
+
+*----------------------------------------------------------------------*
+* Initializes all parameters to their implicit defaults
+*----------------------------------------------------------------------*
+
+      Subroutine INITD(IIPD,IMPD,CHMD,CHID,NLOW)
+
+      Integer           B0 
+      Integer           B1 
+      Integer           E0 
+      Integer           E1 
+      Integer           BM 
+      Integer           BI 
+      Integer           BD 
+      Integer           BE 
+      Integer           MM 
+      Integer           MI 
+      Integer           MD 
+      Integer           ME 
+      Integer           DM 
+      Integer           DI 
+      Integer           DD 
+      Integer           DE 
+      Integer           IM 
+      Integer           II 
+      Integer           ID 
+      Integer           IE 
+
+      Integer           M0
+      Integer           I0
+      Integer           D 
+
+      Parameter        (B0=  27) 
+      Parameter        (B1=  28)
+      Parameter        (E0=  29)
+      Parameter        (E1=  30)
+      Parameter        (BM=  31)
+      Parameter        (BI=  32)
+      Parameter        (BD=  33)
+      Parameter        (BE=  34)
+      Parameter        (MM=  35)
+      Parameter        (MI=  36)
+      Parameter        (MD=  37)
+      Parameter        (ME=  38)
+      Parameter        (IM=  39)
+      Parameter        (II=  40)
+      Parameter        (ID=  41)
+      Parameter        (IE=  42)
+      Parameter        (DM=  43)
+      Parameter        (DI=  44)
+      Parameter        (DD=  45)
+      Parameter        (DE=  46)
+
+      Parameter        (M0=   0)
+      Parameter        (I0=   0)
+      Parameter        (D =  27)
+
+      Integer           IIPD(0:46)
+      Integer           IMPD(0:27)
+      Character         CHMD
+      Character         CHID
+
+      CHID='-'
+      Do  10 I1=1,26 
+         IIPD(I1)=0
+ 10   Continue
+
+      IIPD(B0)=0
+      IIPD(B1)=0
+      IIPD(E0)=0
+      IIPD(E1)=0
+
+      IIPD(BM)=0
+      IIPD(BI)=NLOW
+      IIPD(BD)=NLOW
+      IIPD(BE)=NLOW
+      IIPD(MM)=0
+      IIPD(MI)=NLOW
+      IIPD(MD)=NLOW
+      IIPD(ME)=0
+      IIPD(IM)=NLOW
+      IIPD(II)=0
+      IIPD(ID)=NLOW
+      IIPD(IE)=NLOW
+      IIPD(DM)=NLOW
+      IIPD(DI)=NLOW
+      IIPD(DD)=0
+      IIPD(DE)=NLOW
+
+      IIPD(I0)=0
+
+      CHMD='X'
+      Do  15 I1=1,26 
+         IMPD(I1)=0
+ 15   Continue
+
+      IMPD(M0)=0 
+      IMPD(D )=0
+
+ 100  Return
+
+      End
+
+*----------------------------------------------------------------------*
+      Subroutine NEXTP(NPRF,RCIN,LR,JR,NKEY,LNEW,CPAR,CVAL,LFTR,
+     *   CFTR,IRC) 
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+      Character*(*)     RCIN
+      Character*(*)     CPAR 
+      Character*(*)     CVAL 
+      Character*(*)     CFTR(1024)
+      Logical           LNEW 
+
+      LNEW=.FALSE.
+ 3    Do  4 I1=JR+1,LR
+         JR=JR+1
+         If(Index(' ;,.        ',RCIN(JR:JR)).EQ.0) go to 10
+ 4    Continue
+
+ 5    Read(NPRF,'(A)',Err=999,End=901) RCIN
+      If     (RCIN(1:2).EQ.'MA') then
+         LFTR=0
+      Else if(RCIN(1:2).EQ.'CC') then
+         If(LFTR.LT.1024) then 
+            LFTR=LFTR+1
+            CFTR(LFTR)=RCIN
+         End if
+         Go to   5 
+      Else if(RCIN(1:2).EQ.'//') then
+         Go to 902
+      Else
+         Go to 102
+      End if 
+
+      LR=Xblnk(RCIN,64)
+      If(Ichar(RCIN(LR:LR)).EQ.13) LR=LR-1 
+      JR=5
+      Go to   3
+
+* identify keyword 
+
+ 10   If(RCIN(JR:JR).EQ.'/') then 
+         LNEW=.TRUE.
+         If     (RCIN(JR:JR+13).EQ.'/GENERAL_SPEC:') then
+            NKEY=1
+            JR=JR+13
+         Else if(RCIN(JR:JR+ 9).EQ.'/DISJOINT:') then
+            NKEY=2
+            JR=JR+ 9
+         Else if(RCIN(JR:JR+14).EQ.'/NORMALIZATION:') then
+            NKEY=3
+            JR=JR+14
+         Else if(RCIN(JR:JR+ 8).EQ.'/CUT_OFF:') then
+            NKEY=4
+            JR=JR+ 8
+         Else if(RCIN(JR:JR+ 8).EQ.'/DEFAULT:') then
+            NKEY=5
+            JR=JR+ 8
+         Else if(RCIN(JR:JR+ 2).EQ.'/I:') then
+            NKEY=6
+            JR=JR+ 2
+         Else if(RCIN(JR:JR+ 2).EQ.'/M:') then
+            NKEY=7
+            JR=JR+ 2
+         Else
+            Go to 900
+         End if
+      Else 
+         JR=JR-1
+      End if 
+
+* read parameter 
+
+      LPAR=0
+      CPAR=' '  
+
+ 20   JR=JR+1  
+
+      If(JR.GT.LR) then 
+ 21      Read(NPRF,'(A)',Err=999,End=901) RCIN
+         If(RCIN(1:2).EQ.'CC') then
+            If(LFTR.LT.1024) then
+               LFTR=LFTR+1
+               CFTR(LFTR)=RCIN
+            End if
+            Go to  21
+         End if
+         LR=Xblnk(RCIN,64)
+         If(Ichar(RCIN(LR:LR)).EQ.13) LR=LR-1 
+         If(RCIN(1:2).NE.'MA') then 
+            JR=LR
+            CVAL=' '
+            Go to  100
+         End if
+         LFTR=0
+         JR=6
+      End if  
+
+      If(RCIN(JR:JR).EQ.'/') then
+         JR=JR-1
+         CVAL=' '
+         Go to  100
+      End if   
+
+      If(RCIN(JR:JR).NE.'=') then
+         If(LPAR.NE.0.OR.RCIN(JR:JR).NE.' ') then 
+            LPAR=LPAR+1
+            If(LPAR.LE.64) then
+               CPAR(LPAR:LPAR)=RCIN(JR:JR)
+            End if
+         End if 
+         Go to  20
+      End if
+
+* read value 
+
+      LVAL=0
+      CVAL=' '  
+
+ 30   JR=JR+1  
+
+      If(JR.GT.LR) then 
+ 31      Read(NPRF,'(A)',Err=999,End=901) RCIN
+         If(RCIN(1:2).EQ.'CC') then 
+            If(LFTR.LT.1024) then
+               LFTR=LFTR+1 
+               CFTR(LFTR)=RCIN 
+            End if
+            Go to  31
+         End if
+         LR=Xblnk(RCIN,64)
+         If(Ichar(RCIN(LR:LR)).EQ.13) LR=LR-1
+         If(RCIN(1:2).NE.'MA') go to 102
+         LFTR=0
+         JR=6
+      End if  
+
+      If(Index('/;',RCIN(JR:JR)).EQ.0) then
+         If(LVAL.NE.0.OR.RCIN(JR:JR).NE.' ') then 
+            LVAL=LVAL+1
+            If(LVAL.LE.512) then
+               CVAL(LVAL:LVAL)=RCIN(JR:JR)
+            End if
+         End if
+         Go to  30
+      End if
+
+* check parameter length against buffer size and exit
+      
+ 100  If(LPAR.GT.64) Go to 903
+      If(LVAL.GT.512) Go to 904
+ 101  Return
+
+ 102  If(LFTR.LT.1024) then 
+         LFTR=LFTR+1
+         CFTR(LFTR)=RCIN
+      End if
+ 103  Read(NPRF,'(A)',Err=999,End=901) RCIN
+      If(RCIN(1:2).NE.'//') then
+         Go to 102
+      Else 
+         Go to 902
+      End if 
+
+* Error unknown data block
+
+ 900  IRC=2
+      Go to 101
+
+* Warn end of file
+
+ 901  IRC=-1
+      Go to 101
+
+* Warn profile separator found
+
+ 902  IRC=-2
+      Go to 101
+
+* Warn parameter name too long
+
+ 903  IRC=-3
+      Go to 101
+
+* Warn parameter value too long
+
+ 904  IRC=-4
+      Go to 101
+
+* Error reading file
+
+ 999  IRC=1
+      Go to 101
+
+      End
+*----------------------------------------------------------------------*
+      Integer Function PINTR(CVAL,NLOW,IRC)
+
+      Integer           NLOW
+      Character*(*)     CVAL 
+
+      If(Index(CVAL,'*').NE.0) then
+         PINTR=NLOW
+      Else     
+         Read(CVAL,*,Err= 101) PINTR
+      End if
+ 100  Return
+ 101  IRC=1
+      Go to 100
+      End
+*----------------------------------------------------------------------*
+      Subroutine PINTS(NSCO,ISCO,CVAL,NLOW,NABC,IRC)
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+      Integer           ISCO(*)
+      Character*(*)     CVAL 
+      Integer           NLOW
+
+      L1=Xblnk(CVAL,64) 
+      NSCO=0
+      J1=1
+      Do  10 I1=1,L1
+         If(CVAL(I1:I1).EQ.',') then
+            J2=I1-1
+            NSCO=NSCO+1
+            If(NSCO.GT.NABC) Go to 102
+            If(J2.LT.J1) then 
+               ISCO(NSCO)=0 
+            Else
+               If(Index(CVAL(J1:J2),'*').NE.0) then
+                  ISCO(NSCO)=NLOW
+               Else
+                  Read(CVAL(J1:J2),*,Err=101) ISCO(NSCO) 
+               End if
+            End if 
+            J1=I1+1
+         End if
+ 10   Continue
+      J2=L1
+      NSCO=NSCO+1
+      If(NSCO.GT.NABC) Go to 102
+      If(J2.LT.J1) then 
+         ISCO(NSCO)=0 
+      Else
+         If(Index(CVAL(J1:J2),'*').NE.0) then
+            ISCO(NSCO)=NLOW
+         Else
+            Read(CVAL(J1:J2),*,Err=101) ISCO(NSCO) 
+         End if
+      End if 
+      
+ 100  Return
+      
+ 101  IRC=1
+      Go to 100
+ 102  IRC=-2
+      Go to 100
+      End
+*----------------------------------------------------------------------*
+      Subroutine GETPI(CPAR,CVAL,INDX,ISCO,NABC,NLOW,IRC)
+
+      Character*(*)     CPAR
+      Character*(*)     CVAL
+      Integer           ISCO(*)
+      Integer           NLOW
+      Integer           PINTR
+
+      If     (CPAR.EQ.'I0') then
+         INDX= 0
+      Else if(CPAR.EQ.'I' ) then
+         INDX= 1
+      Else if(CPAR.EQ.'B0') then
+         INDX=27 
+      Else if(CPAR.EQ.'B1') then
+         INDX=28
+      Else if(CPAR.EQ.'E0') then
+         INDX=29
+      Else if(CPAR.EQ.'E1') then
+         INDX=30
+
+      Else if(CPAR.EQ.'BM') then
+         INDX=31
+      Else if(CPAR.EQ.'BI') then
+         INDX=32
+      Else if(CPAR.EQ.'BD') then
+         INDX=33
+      Else if(CPAR.EQ.'BE') then
+         INDX=34
+
+      Else if(CPAR.EQ.'MM') then
+         INDX=35
+      Else if(CPAR.EQ.'MI') then
+         INDX=36
+      Else if(CPAR.EQ.'MD') then
+         INDX=37
+      Else if(CPAR.EQ.'ME') then
+         INDX=38
+
+      Else if(CPAR.EQ.'IM') then
+         INDX=39
+      Else if(CPAR.EQ.'II') then
+         INDX=40
+      Else if(CPAR.EQ.'ID') then
+         INDX=41
+      Else if(CPAR.EQ.'IE') then
+         INDX=42
+
+      Else if(CPAR.EQ.'DM') then
+         INDX=43
+      Else if(CPAR.EQ.'DI') then
+         INDX=44
+      Else if(CPAR.EQ.'DD') then
+         INDX=45
+      Else if(CPAR.EQ.'DE') then
+         INDX=46
+      Else 
+         Go to 900
+      End if 
+
+      If(INDX.EQ.1) then
+         Call PINTS(NSCO,ISCO,CVAL,NLOW,NABC,IRC)
+         If(NSCO.EQ.1) then
+            Do  10 I1=2,NABC
+               ISCO(I1)=ISCO( 1)
+ 10         Continue
+         End if
+      Else
+         ISCO(1)=PINTR(CVAL,NLOW,IRC)
+      End if 
+
+ 100  Return 
+ 900  IRC=-1
+      Go to 100
+      End 
+*----------------------------------------------------------------------*
+      Subroutine GETPM(CPAR,CVAL,INDX,ISCO,NABC,NLOW,IRC)
+
+      Character*(*)     CPAR
+      Character*(*)     CVAL
+      Integer           ISCO(*)
+      Integer           NLOW
+      Integer           PINTR
+
+      If     (CPAR.EQ.'M0') then
+         INDX= 0
+      Else if(CPAR.EQ.'M' ) then
+         INDX= 1
+      Else if(CPAR.EQ.'D ') then
+         INDX=27 
+      Else
+         Go to 900
+      End if
+
+      If(INDX.EQ.1) then
+         Call PINTS(NSCO,ISCO,CVAL,NLOW,NABC,IRC)
+         If(NSCO.EQ.1) then
+            Do  10 I1=2,NABC
+               ISCO(I1)=ISCO( 1)
+ 10         Continue
+         End if
+      Else
+         ISCO(1)=PINTR(CVAL,NLOW,IRC)
+      End if 
+
+ 100  Return 
+ 900  IRC=-1
+      Go to 100
+      End 
diff --git a/reseq.f b/reseq.f
new file mode 100644
index 0000000..003b7a9
--- /dev/null
+++ b/reseq.f
@@ -0,0 +1,185 @@
+*----------------------------------------------------------------------*     
+* $Id: reseq.f,v 2.12 2003/11/18 10:50:07 vflegel Exp $
+*----------------------------------------------------------------------*     
+*        Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine RESEQ
+     *   (NSEQ,FSEQ,NABC,CABC,CSID,CSAC,CSDE,LSEQ,ISEQ,LEOF,
+     *   INBS,OPTV,IRC)
+
+      Include          'ardim.f'
+      Include          'sterr.f'
+     
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+* reads sequence file in Swiss-Prot/EMBL format 
+
+      Character*(*)     FSEQ
+      Character         CABC(0:26)
+      Character*(*)     CSID
+      Character*(*)     CSAC
+      Character*(*)     CSDE
+      Integer*2         ISEQ(*)
+      Logical           LEOF 
+      Logical           LOPN
+      Logical           LIDF
+      Logical           OPTV
+      Character*2       CMIS
+      Character*256     RCIN
+      
+      IRC=0
+      LIDF=.FALSE.
+      LEOF=.FALSE.
+      CMIS='ID'
+      Inquire(File=FSEQ,OPENED=LOPN)
+      If(LOPN) go to   1
+      If(FSEQ.NE.'-') Open(NSEQ,File=FSEQ,Status='OLD',Err=900)
+ 1    Read(NSEQ,'(A)',Err=901,End=999,Iostat=IOS) RCIN
+      If(RCIN(1:1).EQ.'>') go to 903
+      If(RCIN(1:2).EQ.'//') go to 920
+      If(RCIN(1:2).NE.'ID') go to   1   
+      IC=Index(RCIN(6:17),' ')+5
+      CSID=RCIN( 6:IC)
+      LIDF=.TRUE.
+
+      CMIS='AC'
+ 2    Read(NSEQ,'(A)',Err=901,End=902,Iostat=IOS) RCIN
+      If(RCIN(1:2).NE.'AC'.AND.RCIN(1:2).NE.'DE') go to   2   
+      If(RCIN(1:2).EQ.'AC') then 
+         IX=Index(RCIN,';')-1
+         If(IX.LE.0) go to 916
+         CSAC=RCIN(6:IX) // '|'
+      Else
+         CSDE=RCIN( 6:Xblnk(RCIN,64))
+         Go to   4
+      End if 
+
+      CMIS='DE'
+ 3    Read(NSEQ,'(A)',Err=901,End=902,Iostat=IOS) RCIN
+      If(RCIN(1:2).NE.'DE') go to   3   
+      CSDE=RCIN( 6:Xblnk(RCIN,64))
+
+      CMIS='SQ'
+ 4    Read(NSEQ,'(A)',Err=901,End=902,Iostat=IOS) RCIN
+      If(RCIN(1:2).NE.'DE') go to   5   
+      LR=Xblnk(CSDE,64)
+      If(CSDE(LR:LR).EQ.Char(13)) LR=LR-1
+      JN=Xblnk(RCIN,64)
+      If((LR+JN-4).LT.512)
+     *   CSDE=CSDE(1:LR) // ' ' // RCIN( 6:JN)
+
+ 5    Continue
+      If(RCIN(1:2).EQ.'SQ') go to   7
+
+ 6    Read(NSEQ,'(A)',Err=901,End=902,Iostat=IOS) RCIN
+      If(RCIN(1:2).NE.'SQ') go to   6   
+
+ 7    Continue
+
+      J1=0
+ 10   Read(NSEQ,'(A)',Err=901,End= 20,Iostat=IOS) RCIN
+      If(RCIN(1:2).EQ.'//') go to  20
+
+      Do 15 I1=1,Xblnk(RCIN,64)
+         N1=0
+         K1=Ichar(RCIN(I1:I1))
+         If(K1.GE.97) then 
+            K1=K1-32
+            RCIN(I1:I1)=Char(K1)
+         End if
+         If(K1.GT.90.OR.K1.LT.65) go to  15 
+
+         Do 13 I2=1,NABC
+            If(CABC(I2).EQ.RCIN(I1:I1)) then
+               N1=I2
+               Go to   14
+            End if
+ 13      Continue
+ 14      J1=J1+1
+         If(J1.GT.IDMS) go to 915
+         ISEQ(J1)=N1
+ 15   Continue
+      Go to  10 
+
+ 20   LSEQ=J1
+      If(LSEQ.LE.0) go to 917
+      INBS=INBS+1
+
+ 100  If(IOS.EQ.-1.AND.IRC.LT.1) then
+         LEOF=.TRUE.
+         If(INBS.LT.1) go to 921
+      End if
+
+ 105  Return
+
+ 110  If(LIDF) then
+         Write(NERR,*) '       While processing sequence ',
+     *      CSID(1:Lblnk(CSID))
+      End if
+      Go to 100
+
+
+* errors
+
+ 900  Write(NERR,*) 'Error: Unable to open sequence file'//
+     *   ' ''',FSEQ(1:Xblnk(FSEQ,64)),'''.'
+      IRC=1
+      Go to 110
+ 901  Write(NERR,*) 'Error: Unable to read sequence file'//
+     *   ' ''',FSEQ(1:Xblnk(FSEQ,64)),'''.'
+      IRC=1
+      Go to 110
+ 902  Write(NERR,*) 'Error: Unexpected end of file. '//
+     *   'Unable to find sequence ',CMIS,' line.'
+      Write(NERR,*) '       No sequence read.'
+      IRC=1
+      Go to 110
+ 903  Write(NERR,*) 'Error: Sequence file in wrong format.'//
+     *   ' Try option -f.'
+      IRC=1
+      Go to 110
+ 915  Write(NERR,*) 'Error: Sequence length exceeds buffer ',
+     *   'size (',IDMS,').'
+      IRC=1
+      Go to 110
+ 916  Write(NERR,*) 'Error: Missing semicolon.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Xblnk(RCIN,64))
+      IRC=1
+      Go to 110
+ 917  Write(NERR,*) 'Error: Unexpected end of sequence.'//
+     *   ' Sequence has zero length.'
+      IRC=1
+      Go to 110
+
+* warnings
+
+ 920  If(.NOT.OPTV) then
+         Write(NERR,*)'Warning: Unexpected sequence separator (''//'')',
+     *      ' found. Unable to find sequence '//CMIS//' line.'
+         If(LIDF) then
+            Write(NERR,*) '       While processing sequence ',
+     *         CSID(1:Lblnk(CSID))
+         End if
+         Write(NERR,*) '         Reading next sequence.'
+      End if
+      IRC=0
+      LIDF=.FALSE.
+      CMIS='ID'
+      Go to 1
+ 921  If(.NOT.OPTV) then
+         Write(NERR,*) 'Warning: No sequence has been read.'
+         Write(NERR,*) '         No alignment produced.'
+      End if
+      IRC=1
+      Go to 105
+
+ 999  IRC=-1
+      Go to 100
+
+      End
+
diff --git a/rfseq.f b/rfseq.f
new file mode 100644
index 0000000..b5079b6
--- /dev/null
+++ b/rfseq.f
@@ -0,0 +1,137 @@
+*----------------------------------------------------------------------*     
+* $Id: rfseq.f,v 2.10 2003/11/18 10:50:07 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine RFSEQ
+     *   (NSEQ,FSEQ,NABC,CABC,CSID,CSAC,CSDE,CSFH,LSEQ,ISEQ,LEOF,
+     *   INBS,OPTV,IRC)
+      
+      Include          'ardim.f'
+      Include          'sterr.f'
+
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+* reads sequence file in Pearson Fasta format 
+
+      Character*(*)     FSEQ
+      Character         CABC(0:26)
+      Character*(*)     CSID
+      Character*(*)     CSAC
+      Character*(*)     CSFH
+      Character*(*)     CSDE
+      Integer*2         ISEQ(*)
+      Logical           LEOF
+      Logical           LOPN
+      Logical           OPTV
+      Character*512     RCIN
+      
+      IRC=0
+      LEOF=.FALSE.
+      CSID=' '
+      CSAC=' '
+      CSDE=' '
+
+      If(RCIN(1:1).EQ.'>') Go to  2
+
+      Inquire(File=FSEQ,OPENED=LOPN)
+      If(LOPN) go to   1
+      If(FSEQ.NE.'-') Open(NSEQ,File=FSEQ,Status='OLD',Err=900)
+ 1    Read(NSEQ,'(A)',Err=901,End=999,Iostat=IOS) RCIN
+      If(RCIN(1:1).NE.'>') go to   1   
+
+ 2    L=Xblnk(RCIN,64)
+      IX2=Index(RCIN(1:L),' ')-1
+      If(IX2.LE.0) IX2=L
+      Do I1=IX2,2,-1
+         If(Index(':;|',RCIN(I1:I1)).NE.0) go to   3
+      End do
+ 3    IX1=I1
+      Do I1=IX2+1,L
+         If(RCIN(I1:I1).NE.' ') go to  4
+      End do
+ 4    IX3=I1 
+      CSAC=RCIN(2:IX1)
+*      FIXME
+*      Write(NERR,*) 'SEQUENCE_READ=',CSAC
+      CSID=RCIN(IX1+1:IX2)
+      CSDE=RCIN(IX3:L)
+      CSFH=RCIN(2:IX2)
+
+      J1=0
+ 10   Read(NSEQ,'(A)',Err=901,End= 20,Iostat=IOS) RCIN
+      L=Xblnk(RCIN,64)
+      If(RCIN(1:1).EQ.'>') go to  20
+
+      Do 15 I1=1,L
+         N1=0
+         K1=Ichar(RCIN(I1:I1))
+         If(K1.GE.97) then 
+            K1=K1-32
+            RCIN(I1:I1)=Char(K1)
+         End if
+         If(K1.GT.90.OR.K1.LT.65) go to  15 
+         
+         Do 13 I2=1,NABC
+            If(CABC(I2).EQ.RCIN(I1:I1)) then
+               N1=I2
+               Go to   14
+            End if
+ 13      Continue
+ 14      J1=J1+1
+         If(J1.GT.IDMS) go to 915
+         ISEQ(J1)=N1
+ 15   Continue
+      Go to  10 
+
+ 20   LSEQ=J1
+      If(LSEQ.LE.0) go to 916
+      INBS=INBS+1
+ 100  If(IOS.EQ.-1.AND.IRC.LT.1) then
+         LEOF=.TRUE.
+         If(INBS.LT.1) go to 920
+      End if
+
+ 105  Return
+
+ 110  IX=Lblnk(CSID)
+      If(IX.GT.1) then
+         Write(NERR,*) '       While processing sequence ',
+     *      CSID(1:IX)
+      End if
+      Go to 100
+
+* errors
+
+ 900  Write(NERR,*) 'Error: Unable to open sequence file'//
+     *   ' ''',FSEQ(1:Xblnk(FSEQ,64)),'''.'
+      IRC=1
+      Go to 110
+ 901  Write(NERR,*) 'Error: Unable to read sequence file'//
+     *   ' ''',FSEQ(1:Xblnk(FSEQ,64)),'''.'
+      IRC=1
+      Go to 110
+ 915  Write(NERR,*) 'Error: Sequence length exceeds buffer ',
+     *   'size (',IDMS,').'
+      IRC=1
+      Go to 110
+ 916  Write(NERR,*) 'Error: Unexpected end of sequence.'//
+     *   ' Sequence has zero length.'
+      IRC=1
+      Go to 110
+
+ 920  If(.NOT.OPTV) then
+         Write(NERR,*) 'Warning: No sequence has been read.'
+         Write(NERR,*) '         No alignment produced.'
+      End if
+      IRC=-1
+      Go to 105
+
+ 999  IRC=-1
+      Go to 100 
+      End
+
diff --git a/rhmmer.f b/rhmmer.f
new file mode 100644
index 0000000..f46de77
--- /dev/null
+++ b/rhmmer.f
@@ -0,0 +1,153 @@
+*----------------------------------------------------------------------*     
+* $Id: rhmmer.f,v 2.5 2003/07/03 13:08:58 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine RHMMER(NPRF,FPRF,LPRF,RIHM,RMHM,IDMP,NABC,CABC,
+     *   INBP,IRC)
+
+      Include          'pfind.f' 
+      Include          'sterr.f'
+
+      Character*(*)     FPRF
+
+      Include          'hmdat.f'
+
+      Character         CABC(0:26)
+
+      Character*512     RCIN
+      Character*32      CMIS
+
+* initializatons 
+      
+      IRC=0
+
+* open HMM file
+
+      If(FPRF.NE.'-') then
+         Open(NPRF,File=FPRF,Status='OLD',Err=900)
+      End if
+
+* read header lines
+
+ 1    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:8).EQ.'HMMER2.0') Go to 910
+      If(RCIN(1:1).EQ.'#') Go to   1
+      CMIS='profile length'
+      Read(RCIN,*,Err=903,End=903) LPRF 
+      If(LPRF.GT.IDMP) Go to 904
+
+ 2    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:1).EQ.'#') Go to   2
+      CMIS='alphabet length'
+      Read(RCIN,*,Err=903,End=903) NABC
+      If(NABC.GT.26) Go to 904
+
+ 3    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:1).EQ.'#') Go to   3
+
+ 4    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:1).EQ.'#') Go to   4
+      CMIS='alphabet'
+      Read(RCIN,'(26A)',Err=903,End=903)
+     *   (CABC(ii1),ii1=1,NABC)
+
+ 5    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:1).EQ.'#') Go to   5
+
+ 6    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:1).EQ.'#') Go to   6
+
+* read model parameters
+
+      CMIS=' '
+      Do I1=0,LPRF
+
+* - match state
+
+         If(next(NPRF,RCIN).NE.0) Go to 902 
+         Read(RCIN,*,Err=903) RIHM(MM,I1)
+         If(next(NPRF,RCIN).NE.0) Go to 902 
+         Read(RCIN,*,Err=903) RIHM(MD,I1)
+         If(next(NPRF,RCIN).NE.0) Go to 902 
+         Read(RCIN,*,Err=903) RIHM(MI,I1)
+
+         Do I2=1,NABC
+            If(next(NPRF,RCIN).NE.0) Go to 902
+            Read(RCIN,*,Err=903) RMHM(I2,I1)
+         End do 
+
+* - delete state
+
+         If(next(NPRF,RCIN).NE.0) Go to 902
+         Read(RCIN,*,Err=903) RIHM(DM,I1)
+         If(next(NPRF,RCIN).NE.0) Go to 902 
+         Read(RCIN,*,Err=903) RIHM(DD,I1)
+         If(next(NPRF,RCIN).NE.0) Go to 902 
+         Read(RCIN,*,Err=903) RIHM(DI,I1)
+
+         RMHM( D,I1)=1.0
+
+* - insert state
+
+         If(next(NPRF,RCIN).NE.0) Go to 902 
+         Read(RCIN,*,Err=903) RIHM(IM,I1)
+         If(next(NPRF,RCIN).NE.0) Go to 902 
+         Read(RCIN,*,Err=903) RIHM(ID,I1)
+         If(next(NPRF,RCIN).NE.0) Go to 902 
+         Read(RCIN,*,Err=903) RIHM(II,I1)
+
+         Do I2=1,NABC
+            If(next(NPRF,RCIN).NE.0) Go to 902 
+            Read(RCIN,*,Err=903) RIHM(I2,I1)
+         End do 
+
+      End do 
+
+ 100  Return
+
+ 900  Write(NERR,*) 'Error: Unable to open profile file'//
+     *   ' ''',FPRF(1:Lblnk(FPRF)),'''.'
+      IRC=1
+      Go to 100
+
+ 901  Write(NERR,*) 'Error: Unable to read profile file'//
+     *   ' ''',FPRF(1:Lblnk(FPRF)),'''.'
+      IRC=1
+      Go to 100
+
+ 902  Write(NERR,*) 'Error: Unexpected end of file.'
+      Write(NERR,*) '       No profile read.'
+      IRC=1
+      Go to 100
+
+ 903  Write(NERR,*) 'Error: Unable to read value of parameter(s) '//
+     *   CMIS(1:Lblnk(CMIS))
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      IRC=1
+      Go to 100
+
+ 904  Write(NERR,*) 'Error: Value of parameter '''//
+     *   CMIS(1:Lblnk(CMIS)),''' exceeds buffer size.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      IRC=1
+      Go to 100
+
+ 910  Write(NERR,*) 'Error: HMM profile file in wrong format.'//
+     *   ' Try without option -o.'
+      IRC=1
+      Go to 100
+
+      End
+*----------------------------------------------------------------------*
+      Integer function next(NPRF,RCIN)
+
+      Character*(*)     RCIN       
+
+ 1    Read(NPRF,'(A)',Iostat=NEXT) RCIN
+      If(RCIN(1:1).EQ.'#') go to   1
+      Return
+
+      End
diff --git a/rhmmer2.f b/rhmmer2.f
new file mode 100644
index 0000000..d98ab18
--- /dev/null
+++ b/rhmmer2.f
@@ -0,0 +1,540 @@
+*----------------------------------------------------------------------*     
+* $Id: rhmmer2.f,v 2.7 2003/11/28 11:57:32 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine RHMMER2 
+     *   (NPRF,FPRF,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,NABC,CABC,LPRF,LPCI,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,
+     *   BLOG,FABC,P0,
+     *   CHID,IIPD,CHMD,IMPD, 
+     *   INBP,LEOF,IRC)
+
+      Character*(*)     FPRF
+
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'pfdat.f'
+      Include          'dfdat.f'
+      Include          'sterr.f'
+
+* work fields
+
+      Character*512     RCIN
+      Logical           LOPN
+      Logical           LIDF
+      Logical           LEOF
+      Logical           LRPF
+      Character*8       CHIN(0:26)
+      Character*32      CMIS
+      Integer           LREA
+
+* initializatons 
+      
+      IRC=0
+      BL=LOG(2.0)
+      LEOF=.FALSE.
+      LRPF=.FALSE.
+
+* open hmm file 
+      
+      LIDF=.FALSE.
+      CMIS='HMMER2.0'
+      Inquire(File=FPRF,OPENED=LOPN)
+      If(LOPN) go to   1
+      If(FPRF.NE.'-'.OR.NPRF.NE.5)
+     *   Open(NPRF,File=FPRF,Status='OLD',Err=900)
+
+* read first line
+
+ 1    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920
+      If(RCIN(1:8).NE.'HMMER2.0') go to   1
+
+* name (Id)
+      
+      CMIS='NAME'
+ 2    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920
+      If(RCIN(1:4).NE.'NAME') go to   2
+
+      K2=Lblnk(RCIN)
+      Do I1=K2,5,-1
+         If(RCIN(I1:I1).EQ.' ') then
+            K1=I1+1
+*** To be modified into goto ?
+            go to 3
+***
+         End if
+      End do 
+
+* - lower case to upper, dash to underscore
+
+ 3    CPID=' '
+      J1=0
+      Do I1=K1,K2
+         J1=J1+1
+         M1=Ichar(RCIN(I1:I1))
+         If(M1.LE.122.AND.M1.GE.97) then
+            CPID(J1:J1)=Char(M1-32)
+         Else
+            CPID(J1:J1)=RCIN(I1:I1)
+            If(CPID(J1:J1).EQ.'-') CPID(J1:J1)='_'
+         End if
+      End do 
+      LIDF=.TRUE.
+
+* AC, DE
+
+      CPAC=' '
+      CPDT=' '
+      CPDE=' '
+      CMIS='LENG'
+
+ 4    Read(NPRF,'(A)',Err=901,End=902) RCIN
+
+      If(RCIN(1:2).EQ.'//') then 
+         go to 920
+      Else if(RCIN(1:4).EQ.'ACC ') then
+         CPAC=RCIN(7:)
+         Go to   4
+      Else if(RCIN(1:4).EQ.'LENG') then
+         Go to   6
+      Else if(RCIN(1:4).NE.'DESC') then
+         Go to   4
+      Else 
+         CPDE=RCIN(7:)
+      End if
+
+* length
+
+ 5    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920
+      If(RCIN(1:4).NE.'LENG') go to   5
+
+ 6    Read(RCIN(5:),*,Err=910) LPRF
+      If(LPRF.GE.IDMP.OR.LPRF.LE.0) go to 904
+
+* alphabet
+
+      CMIS='ALPH'
+ 7    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920
+      If(RCIN(1:4).NE.'ALPH') go to   7
+
+      If(Index(RCIN,'Amino').NE.0) then 
+         NABC=20
+         RCIN='ACDEFGHIKLMNPQRSTVWY'
+         Read(RCIN,'(26A)')(CABC(ii1),ii1=1,NABC)
+      Else if(Index(RCIN,'Nucleic').NE.0) then 
+         NABC=4
+         RCIN='ACGT'
+         Read(RCIN,'(26A)')(CABC(ii1),ii1=1,NABC)
+      Else
+         Go to 911
+      End if 
+
+* comment lines 
+
+      LHDR=0
+      CMIS='XT'
+ 8    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920
+      If(RCIN(1:2).NE.'XT') then 
+         LHDR=LHDR+1
+         If(LHDR.LT.512)
+     *      CHDR(LHDR)='CC   ' // RCIN
+         Go to   8
+      End if 
+      
+* XT (only NB and EC are relevant)
+
+      Read(RCIN(3:),*,Err=910) NXNB,NXNN,NXEC,NXEJ,NXCT,NXCC,NXJB,NXJJ
+
+* Null model (NI is null model residue extension score).
+
+      CMIS='NULT'
+ 9    Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920
+      If(RCIN(1:4).NE.'NULT') Go to 9
+
+      Read(RCIN(5:),*,Err=910) NI
+      BLOG=EXP(BL/1000) 
+      P0=EXP(Real(NI)/1000.0*BL)
+      
+      CMIS='NULE'
+ 10   Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920
+      If(RCIN(1:4).NE.'NULE') Go to  10
+
+      Read(RCIN(5:),*,Err=910)(IIPP(ii1,0),ii1=1,NABC)
+      Do I1=1,NABC
+         FABC(I1)=(EXP(Real(IIPP(I1,0))/1000*BL))/20.0
+      End do 
+
+* Normalization parameters, cut-off values        
+
+      RNOP(1,1)=-LOG10(350.0)
+      RNOP(2,1)=1.0
+      CMIS='HMM'
+ 11   Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920
+      If(RCIN(1:3).EQ.'EVD') then 
+         CMIS='EVD'
+         Read(RCIN(4:),*,Err=910) RNOP(1,1),RNOP(2,1)
+      Else if(RCIN(1:3).NE.'HMM') then
+         Go to  11 
+      End if 
+
+      MDIS=2
+      NDIP(1)=1
+      NDIP(2)=LPRF
+
+      JNOR=1
+      MNOR(1)=1
+      NNOR(1)=1
+      NNPR(1)=1
+      CNTX(1)='bitscore'
+
+      RNOP(1,1)=-RNOP(1,1)*RNOP(2,1)/LOG(10.0)
+      RNOP(2,1)= RNOP(2,1)*0.001/LOG(10.0)
+
+* cut-off value
+
+      JCUT=1
+      MCLE(1)=0
+      CCUT(1)=' '
+      JCNM(1)=1
+      MCUT(1,1)=1
+
+*** This is done in htop.f:
+C     RCUT(1,1)=RC
+C     ICUT(1)=NINT((RCUT(1,1)-RNOP(1,1))/RNOP(2,1))+1
+***
+      
+* defaults
+
+      CHID='-'
+      Do I1=0,26
+         IIPD(I1)=0
+      End do   
+      
+      IIPD(B0)=NLOW
+      IIPD(B1)=NLOW
+      IIPD(E0)=NLOW
+      IIPD(E1)=NLOW
+      
+      IIPD(BM)=0
+      IIPD(BI)=NLOW
+      IIPD(BD)=NLOW
+      IIPD(BE)=NLOW
+      IIPD(MM)=NLOW
+      IIPD(MI)=NLOW
+      IIPD(MD)=NLOW
+      IIPD(ME)=0
+      IIPD(IM)=NLOW
+      IIPD(II)=NLOW
+      IIPD(ID)=NLOW
+      IIPD(IE)=NLOW
+      IIPD(DM)=NLOW
+      IIPD(DI)=NLOW
+      
+      IIPD(DD)=0
+      IIPD(DE)=NLOW
+
+      CHMD='X'
+      Do I1=0,26
+         IMPD(I1)=0
+      End do   
+      IMPD(D )=0
+
+* initialize main model
+
+      LPCI=.FALSE.
+
+      Do I1=0,LPRF
+         CHIP(I1)='-' 
+         Do I2=0,47
+            IIPP(I2,I1)=IIPD(I2)
+         End do 
+      End do 
+      Do I2=0,NABC
+         IIPP(I2, 0)=NLOW
+      End do
+      Do I1=1,LPRF
+         CHMP(I1)='X'
+         Do I2=0,47
+            IMPP(I2,I1)=IMPD(I2)
+         End do 
+      End do 
+
+* main model parameters
+
+      CMIS='HMM'
+      Go to  13
+ 12   Read(NPRF,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:2).EQ.'//') go to 920
+ 13   If(RCIN(1:3).NE.'HMM') Go to  12 
+      Read(NPRF,'(A)',Err=901,End=903) RCIN
+      If(RCIN(1:2).EQ.'//') go to 903
+
+* first line (position zero) 
+
+      Read(NPRF,'(A)',Err=901,End=903) RCIN
+      If(RCIN(1:2).EQ.'//') go to 903
+      Call c2i(RCIN,CHIN,1,3)
+      If(CHIN(1).EQ.'*') then
+         IIPP(BM, 0)=NLOW
+      Else
+         Read(CHIN(1),*,Err=912) IIPP(BM, 0)
+      End if 
+      If(CHIN(2).EQ.'*') then
+         IIPP(BI, 0)=NLOW
+      Else
+         Read(CHIN(2),*,Err=912) IIPP(BI, 0)
+      End if 
+      If(CHIN(3).EQ.'*') then
+         IIPP(BD, 0)=NLOW
+      Else
+         Read(CHIN(3),*,Err=912) IIPP(BD, 0)
+      End if 
+
+* subsequent lines (positions 1 to LPRF) 
+
+      LREA=0
+      Do I1=1,LPRF
+         Read(NPRF,'(A)',Err=901,End=903) RCIN
+         If(RCIN(1:2).EQ.'//') go to 903
+         Call c2i(RCIN,CHIN,0,NABC)
+         Do I2=1,NABC
+            If(CHIN(I2).EQ.'*') then
+               IMPP(I2,I1)=NLOW
+            Else
+               Read(CHIN(I2),*,Err=912) IMPP(I2,I1)
+            End if 
+         End do
+         Read(NPRF,'(A)',Err=901,End=903) RCIN
+         Call c2i(RCIN,CHIN,0,NABC)
+         Do I2=1,NABC
+            If(CHIN(I2).EQ.'*') then
+               IIPP(I2,I1)=NLOW
+            Else
+               Read(CHIN(I2),*,Err=912) IIPP(I2,I1)
+            End if 
+         End do
+         Read(NPRF,'(A)',Err=901,End=903) RCIN
+         Call c2i(RCIN,CHIN,0,9)
+         Do I2=1,NABC
+            If(CHIN(I2).EQ.'*') then
+               IIPP(I2,I1+1)=NLOW
+            Else
+               Read(CHIN(I2),*,Err=912) IIPP(I2,I1+1)
+            End if 
+         End do
+         IIPP(MM,I1)=IIPP( 1,I1+1)
+         IIPP(MI,I1)=IIPP( 2,I1+1)
+         IIPP(MD,I1)=IIPP( 3,I1+1)
+         IIPP(IM,I1)=IIPP( 4,I1+1)
+         IIPP(II,I1)=IIPP( 5,I1+1)
+         IIPP(DM,I1)=IIPP( 6,I1+1)
+         IIPP(DD,I1)=IIPP( 7,I1+1)
+         IIPP(B1,I1-1)=IIPP( 8,I1+1)
+         IIPP(B0,I1-1)=IIPP( 8,I1+1)
+         IIPP(E1,I1)=IIPP( 9,I1+1)
+         IIPP(E0,I1)=IIPP( 9,I1+1)
+         LREA=LREA+1
+      End do     
+
+      IIPP(BM,   0)=IIPP(B0,   0)
+      IIPP(B0,   0)=0
+      IIPP(B1,   0)=0
+
+      IIPP(BM,LPRF)=IIPP(B0,LPRF)
+      IIPP(E0,LPRF)=0
+      IIPP(E1,LPRF)=0
+
+* null model corrections, other modifications:
+
+      Do I1=0,LPRF
+         If(IIPP(B0,I1).NE.NLOW)
+     *      IIPP(B0,I1)=IIPP(B0,I1)+NXNB
+         If(IIPP(B1,I1).NE.NLOW)
+     *      IIPP(B1,I1)=IIPP(B1,I1)+NXNB
+         If(IIPP(E0,I1).NE.NLOW)
+     *      IIPP(E0,I1)=IIPP(E0,I1)+NXEC
+         If(IIPP(E1,I1).NE.NLOW) 
+     *      IIPP(E1,I1)=IIPP(E1,I1)+NXEC
+         X=0
+         Do I2=1,NABC
+            If(IIPP(I2,I1).NE.NLOW) then
+               IIPP(I2,I1)=IIPP(I2,I1)-NI
+            End if 
+            X=X+FABC(I2)*IIPP(I2,I1) 
+         End do 
+         IIPP(I0,I1)=NINT(X)
+         If(IIPP(I0,I1).LE.NLOW+27) IIPP(I0,I1)=NLOW
+      End do 
+      Do I1=1,LPRF
+         X=0
+         Do I2=1,NABC
+            If(IMPP(I2,I1).NE.NLOW) then
+               IMPP(I2,I1)=IMPP(I2,I1)-NI
+            End if 
+            X=X+FABC(I2)*IMPP(I2,I1) 
+         End do 
+         IMPP(I0,I1)=NINT(X)
+         If(IMPP(I0,I1).LE.NLOW+27) IMPP(I0,I1)=NLOW
+      End do 
+
+* add consensus characters: 
+
+      Do I1=1,LPRF
+         K1=IMPP( 0,I1) 
+         Do I2=1,NABC
+            If(IMPP(I2,I1).GE.K1) then
+               K1=IMPP(I2,I1)
+               CHMP(I1)=CABC(I2)
+            End if
+         End do
+      End do  
+      
+      INBP=INBP+1
+      LIDF=.FALSE.
+      LRPF=.TRUE.
+      If(LREA.NE.LPRF) Go to 921
+
+ 15   Read(NPRF,'(A)',Err=901,End=905) RCIN
+      If(RCIN(1:2).NE.'//') go to  15
+
+ 100  If(LRPF) IRC=0
+      Return
+
+ 110  If(LIDF) then
+         Write(NERR,*) '       While processing profile ',
+     *      CPID(1:Lblnk(CPID))
+      End if
+      Go to 100
+
+* errors
+
+ 900  Write(NERR,*) 'Error: Unable to open profile file'//
+     *   ' ''',FPRF(1:Lblnk(FPRF)),'''.'
+      IRC=1
+      Go to 110
+ 901  Write(NERR,*) 'Error: Unable to read profile file'//
+     *   ' ''',FPRF(1:Lblnk(FPRF)),'''.'
+      IRC=1
+      Go to 110
+ 902  LEOF=.TRUE.
+      If(INBP.LT.1.OR.CMIS.NE.'HMMER2.0') then
+         Write(NERR,*) 'Error: Unexpected end of file. '//
+     *      'Unable to find profile ',CMIS(1:Lblnk(CMIS)),' line.'
+         Write(NERR,*) '       No profile read.'
+         IRC=1
+      Else
+C         LEOF=.TRUE.
+         IRC=-1
+      End if
+      Go to 110
+ 903  LEOF=.TRUE.
+      If(INBP.LT.1) then
+         Write(NERR,*) 'Error: Unexpected end of file. '
+         Write(NERR,*) '       Profile length does not match ',
+     *      'expected length (',LPRF,').'
+         Write(NERR,*) '       No profile read.'
+         IRC=1
+      Else
+C         LEOF=.TRUE.
+         IRC=0
+      End if
+      Go to 110
+ 904  Write(NERR,*) 'Error: Profile length exceeds buffer size (',
+     *   IDMP,').'
+      IRC=1
+      Go to 110
+ 905  LEOF=.TRUE.
+      Go to 100
+
+ 910  Write(NERR,*) 'Error: Unable to read value of parameter(s) '//
+     *   CMIS(1:Lblnk(CMIS))
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      IRC=1
+      Go to 110
+ 911  Write(NERR,*) 'Error: Unknown alphabet type defined.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      IRC=1
+      Go to 110
+ 912  Write(NERR,*) 'Error: Unable to read profile values.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      IRC=1
+      Go to 110
+
+* warnings
+
+ 920  Write(NERR,*) 'Warning: Unexpected profile separator (''//'')',
+     *   ' found.'
+      Write(NERR,*) '         Unable to find ',
+     *   CMIS(1:Lblnk(CMIS)),' line.'
+      If(LIDF) then
+         Write(NERR,*) '         While processing profile ',
+     *      CPID(1:Lblnk(CPID))
+      End if
+      Write(NERR,*) '         Reading next profile.'
+      IRC=0
+      LIDF=.FALSE.
+      CMIS='HMMER2.0'
+      Go to 1
+ 921  Write(NERR,*) 'Warning: Expected (',LPRF,' and ',
+     *   'actual (',LREA,') profile sizes do not match.'
+      Write(NERR,*) '         Check profile syntax.'
+      If(LIDF) then
+         Write(NERR,*) '         While processing profile ',
+     *      CPID(1:Lblnk(CPID))
+      End if
+      Go to 15
+      
+      End
+*----------------------------------------------------------------------*
+      Subroutine c2i(RCIN,CHIN,N1,N2)
+      
+      Character*(*)     RCIN
+      Character*8       CHIN(0:26)
+      Logical           LSTR
+
+      K1=N1-1
+      J1=1
+      LSTR=.FALSE.
+      Do I1=1,Lblnk(RCIN)+1
+         If(LSTR) then
+            If(RCIN(I1:I1).NE.' ') then
+               Continue
+            Else
+               CHIN(K1)=RCIN(J1:I1-1)
+               LSTR=.FALSE.
+            End if 
+         Else
+            If(RCIN(I1:I1).NE.' ') then
+               K1=K1+1
+*** To be modified into Go to ?
+               If(K1.GT.N2) Return
+***
+               J1=I1
+               LSTR=.TRUE.
+            Else
+               Continue
+            End if
+         End if 
+      End do 
+      Return
+      End    
+
diff --git a/rhnul.f b/rhnul.f
new file mode 100644
index 0000000..6086ac1
--- /dev/null
+++ b/rhnul.f
@@ -0,0 +1,90 @@
+*----------------------------------------------------------------------*     
+* $Id: rhnul.f,v 2.5 2003/07/03 13:08:58 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine RHNUL(NNUL,FNUL,FABC,NABC,IRC)   
+
+      Include          'sterr.f'
+
+      Character*(*)     FNUL 
+
+      Real              FABC(0:26)
+
+      Character*512     RCIN
+      Character*512     CBUF     
+      Integer           IOST
+
+      IOST=0
+
+      Open(NNUL,File=FNUL,Status='OLD',Err=900)
+
+ 1    Read(NNUL,'(A)',Err=901,End=902) RCIN
+      If(RCIN(1:1).EQ.'#') Go to   1
+
+      If(RCIN(1:5).EQ.'Amino'.AND.NABC.LT.20) then
+         Go to 903
+      Else if(RCIN(1:5).EQ.'Amino'.AND.NABC.GE.20) then
+         Continue
+      Else if(RCIN(1:7).EQ.'Nucleic'.AND.NABC.NE.4) then
+         Go to 903
+      Else if(RCIN(1:7).EQ.'Nucleic'.AND.NABC.EQ.4) then
+         Continue
+      Else 
+         Go to 1
+      End if 
+
+      M=0
+ 2    RCIN=' '
+      Read(NNUL,'(A)',Err=901,Iostat=IOST) RCIN
+      If(IOST.NE.0.AND.RCIN.EQ.' ') Go to 5
+      If(RCIN(1:1).EQ.'#'.OR.Lblnk(RCIN).EQ.0) Go to   2
+      
+      L=Index(RCIN,'#')
+      If(L.EQ.0) then 
+         L=Lblnk(RCIN)
+      Else
+         L=Lblnk(RCIN(1:L-1))
+      End if 
+      CBUF(M+1:)=RCIN(1:L)
+      M=M+L+1
+      If(M.GT.512) Go to 907
+      Go to 2
+      
+ 5    Read(CBUF(1:M+1),*,End=905,Err=906)(FABC(ii1),ii1=1,NABC)
+ 
+ 100  Return
+
+ 900  Write(NERR,*) 'Error: Unable to open random model file'//
+     *   ' ''',FNUL(1:Lblnk(FNUL)),'''.'
+      IRC=1
+      Go to 100
+ 901  Write(NERR,*) 'Error: Unable to read random model file'//
+     *   ' ''',FNUL(1:Lblnk(FNUL)),'''.'
+      IRC=1
+      Go to 100
+ 902  Write(NERR,*) 'Error: Unexpected end of file. '//
+     *      'Unable to read random model.'
+      IRC=1
+      Go to 100
+ 903  Write(NERR,*) 'Error: Random model alphabet does not match '//
+     *      'profile alphabet.'
+      Write(NERR,*) '       at line: ',
+     *   RCIN(1:Lblnk(RCIN))
+      IRC=1
+      Go to 100
+ 905  Write(NERR,*) 'Error: Not enough values in random model.'
+      Write(NERR,*) '       values read: ',
+     *   CBUF(1:Lblnk(CBUF))
+      IRC=1
+      Go to 100
+ 906  Write(NERR,*) 'Error: Unable to read random model values.'
+      IRC=1
+      Go to 100
+ 907  Write(NERR,*) 'Error: Random model exceeds buffer size.'
+      Write(NERR,*) '       at line: ',
+     *   CBUF(1:Lblnk(CBUF))
+      IRC=1
+      Go to 100
+
+      End
diff --git a/schmm.f b/schmm.f
new file mode 100644
index 0000000..b97e20d
--- /dev/null
+++ b/schmm.f
@@ -0,0 +1,270 @@
+*----------------------------------------------------------------------*     
+* $Id: schmm.f,v 2.3 2003/03/24 14:46:10 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine SCHMM 
+     *   (NOUT,IDMP,RIHM,RMHM,LHMM,NABC,FLOW,FSCA,OPTF,OPFF,RD,RI)
+      
+
+      Real             FNOR(26)
+
+      Include         'pfind.f'
+      Include         'hmdat.f'
+      Include         'sterr.f'
+
+      Logical          OPTF
+      Logical          OPFF
+
+* rescale emission probabilities
+
+      Do  20 I1=0,LHMM
+         Do I2=1,NABC
+            FNOR(I2)=RIHM(I2,I1)
+         End do 
+         Call GetNP(FNOR,NABC,RNOR,FLOW)
+         If(RNOR.NE.0.0) then 
+            Do I2=1,NABC
+               If(RIHM(I2,I1).GT.FLOW) RIHM(I2,I1)=RIHM(I2,I1)+RNOR
+            End do 
+            If(RIHM(IM,I1).GT.FLOW) RIHM(IM,I1)=RIHM(IM,I1)-RNOR
+            If(RIHM(II,I1).GT.FLOW) RIHM(II,I1)=RIHM(II,I1)-RNOR
+            If(RIHM(ID,I1).GT.FLOW) RIHM(ID,I1)=RIHM(ID,I1)-RNOR
+         End if 
+
+         If(RIHM(II,I1).GE.0) then 
+            Write(NOUT,'(''# Insert position '',I4,
+     *         '': Log Prob(I->I)='',F8.4,'' reset to -0.01'')')
+     *         I1,RIHM(II,I1)
+            RIHM(II,I1)=-0.01
+         End if 
+
+         If(I1.EQ.0) then
+            Do I2=1,NABC
+               RMHM(I2,I1)=FLOW
+            End do
+            Go to  20 
+         End if
+
+         Do I2=1,NABC
+            FNOR(I2)=RMHM(I2,I1)
+         End do 
+         Call GetNP(FNOR,NABC,RNOR,FLOW)
+         If(RNOR.NE.0.0) then 
+            Do I2=1,NABC
+               If(RMHM(I2,I1).GT.FLOW) RMHM(I2,I1)=RMHM(I2,I1)+RNOR
+            End do 
+            If(RIHM(MM,I1).GT.FLOW) RIHM(MM,I1)=RIHM(MM,I1)-RNOR
+            If(RIHM(MI,I1).GT.FLOW) RIHM(MI,I1)=RIHM(MI,I1)-RNOR
+            If(RIHM(MD,I1).GT.FLOW) RIHM(MD,I1)=RIHM(MD,I1)-RNOR
+         End if
+
+         If(RMHM( D,I1).GT.FLOW) then
+            RNOR=-RMHM( D,I1)
+            RMHM( D,I1)=0.0
+            RIHM(DM,I1)=RIHM(DM,I1)-RNOR
+            RIHM(DI,I1)=RIHM(DI,I1)-RNOR
+            RIHM(DD,I1)=RIHM(DD,I1)-RNOR
+         End if 
+
+ 20   Continue
+
+* transitions 
+
+      Do  50 I1=LHMM,0,-1
+
+* - insert positions
+
+         FNOR( 1)=RIHM(IM,I1)
+         FNOR( 2)=RIHM(ID,I1)
+         Call GetNP(FNOR, 2,RNOR,FLOW)
+         If(RIHM(II,  I1).GT.FLOW)
+     *      RNOR=RNOR+LOG(1.0-EXP(RIHM(II,I1)))
+         If(RIHM(IM,I1).GT.FLOW) RIHM(IM,I1)=RIHM(IM,I1)+RNOR
+         If(RIHM(ID,I1).GT.FLOW) RIHM(ID,I1)=RIHM(ID,I1)+RNOR
+         If(RIHM(MI,I1).GT.FLOW) RIHM(MI,I1)=RIHM(MI,I1)-RNOR
+         If(RIHM(DI,I1).GT.FLOW) RIHM(DI,I1)=RIHM(DI,I1)-RNOR
+
+         If(I1.EQ.0) go to 50
+
+* -match positions 
+
+         FNOR( 1)=RIHM(MM,I1)
+         FNOR( 2)=RIHM(MI,I1)
+         FNOR( 3)=RIHM(MD,I1)
+         Call GetNP(FNOR, 3,RNOR,FLOW)
+         If(RIHM(MM,I1).GT.FLOW) RIHM(MM,I1)=RIHM(MM,I1)+RNOR
+         If(RIHM(MI,I1).GT.FLOW) RIHM(MI,I1)=RIHM(MI,I1)+RNOR
+         If(RIHM(MD,I1).GT.FLOW) RIHM(MD,I1)=RIHM(MD,I1)+RNOR
+         J1=I1-1
+         If(RIHM(MM,J1).GT.FLOW) RIHM(MM,J1)=RIHM(MM,J1)-RNOR
+         If(RIHM(IM,J1).GT.FLOW) RIHM(IM,J1)=RIHM(IM,J1)-RNOR
+         If(RIHM(DM,J1).GT.FLOW) RIHM(DM,J1)=RIHM(DM,J1)-RNOR
+
+* - delete positions 
+
+         FNOR( 1)=RIHM(DM,I1)
+         FNOR( 2)=RIHM(DI,I1)
+         FNOR( 3)=RIHM(DD,I1)
+         Call GetNP(FNOR, 3,RNOR,FLOW)
+         If(RIHM(DM,I1).GT.FLOW) RIHM(DM,I1)=RIHM(DM,I1)+RNOR
+         If(RIHM(DI,I1).GT.FLOW) RIHM(DI,I1)=RIHM(DI,I1)+RNOR
+         If(RIHM(DD,I1).GT.FLOW) RIHM(DD,I1)=RIHM(DD,I1)+RNOR
+         J1=I1-1
+         If(RIHM(MD,J1).GT.FLOW) RIHM(MD,J1)=RIHM(MD,J1)-RNOR
+         If(RIHM(ID,J1).GT.FLOW) RIHM(ID,J1)=RIHM(ID,J1)-RNOR
+         If(RIHM(DD,J1).GT.FLOW) RIHM(DD,J1)=RIHM(DD,J1)-RNOR
+
+ 50   Continue 
+
+      FNOR( 1)=RIHM(MM, 0)
+      FNOR( 2)=RIHM(MI, 0)
+      FNOR( 3)=RIHM(MD, 0)
+      Call GetNP(FNOR, 3,RNOR,FLOW)
+      If(RIHM(MM, 0).GT.FLOW) RIHM(MM, 0)=RIHM(MM, 0)+RNOR
+      If(RIHM(MI, 0).GT.FLOW) RIHM(MI, 0)=RIHM(MI, 0)+RNOR
+      If(RIHM(MD, 0).GT.FLOW) RIHM(MD, 0)=RIHM(MD, 0)+RNOR
+
+      FSCA=-RNOR
+
+* add FIMs
+
+      If(OPTF.OR.OPFF) then
+
+         If(RD.GT.0.99999) RD=0.99999
+         If(RI.GT.0.99999) RI=0.99999
+
+         If(RD.GT.0.0) then
+            RD=LOG(RD)
+         Else
+            RD=FLOW
+         End if 
+         If(RI.GT.0.0) then
+            RI=LOG(RI)
+         Else
+            RI=FLOW
+         End if 
+
+* - state M(   0)
+
+         RIHM(MD,   0)=RD
+         FNOR( 1)=RIHM(MI,   0)
+         FNOR( 2)=RIHM(MM,   0)
+         Call GetNP(FNOR, 2,RNOR,FLOW)
+         If(RIHM(MD,   0).GT.FLOW)
+     *      RNOR=RNOR+LOG(1.0-EXP(RIHM(MD,   0)))
+         RIHM(MI,   0)=RIHM(MI,   0)+RNOR
+         RIHM(MM,   0)=RIHM(MM,   0)+RNOR
+
+         RIHM(MI,   0)=RD
+         FNOR( 1)=RIHM(MD,   0)
+         FNOR( 2)=RIHM(MM,   0)
+         Call GetNP(FNOR, 2,RNOR,FLOW)
+         If(RIHM(MI,   0).GT.FLOW)
+     *      RNOR=RNOR+LOG(1.0-EXP(RIHM(MI,   0)))
+         RIHM(MD,   0)=RIHM(MD,   0)+RNOR
+         RIHM(MM,   0)=RIHM(MM,   0)+RNOR
+
+* - state I(   0)
+
+         RIHM(ID,   0)=RD
+         FNOR( 1)=RIHM(II,   0)
+         FNOR( 2)=RIHM(IM,   0)
+         Call GetNP(FNOR, 2,RNOR,FLOW)
+         If(RIHM(ID,   0).GT.FLOW)
+     *      RNOR=RNOR+LOG(1.0-EXP(RIHM(ID,   0)))
+         RIHM(II,   0)=RIHM(II,   0)+RNOR
+         RIHM(IM,   0)=RIHM(IM,   0)+RNOR
+
+         RIHM(II,   0)=RI
+         FNOR( 1)=RIHM(ID,   0)
+         FNOR( 2)=RIHM(IM,   0)
+         Call GetNP(FNOR, 2,RNOR,FLOW)
+         If(RIHM(II,   0).GT.FLOW)
+     *      RNOR=RNOR+LOG(1.0-EXP(RIHM(II,   0)))
+         RIHM(ID,   0)=RIHM(ID,   0)+RNOR
+         RIHM(IM,   0)=RIHM(IM,   0)+RNOR
+
+* - state M(LHMM)
+
+         RIHM(ID,LHMM)=RD
+         FNOR( 1)=RIHM(II,LHMM)
+         FNOR( 2)=RIHM(IM,LHMM)
+         Call GetNP(FNOR, 2,RNOR,FLOW)
+         If(RIHM(ID,LHMM).GT.FLOW)
+     *      RNOR=RNOR+LOG(1.0-EXP(RIHM(ID,LHMM)))
+         RIHM(II,LHMM)=RIHM(II,LHMM)+RNOR
+         RIHM(IM,LHMM)=RIHM(IM,LHMM)+RNOR
+
+         RIHM(II,LHMM)=RI
+         FNOR( 1)=RIHM(ID,LHMM)
+         FNOR( 2)=RIHM(IM,LHMM)
+         Call GetNP(FNOR, 2,RNOR,FLOW)
+         If(RIHM(II,LHMM).GT.FLOW)
+     *      RNOR=RNOR+LOG(1.0-EXP(RIHM(II,LHMM)))
+         RIHM(ID,LHMM)=RIHM(ID,LHMM)+RNOR
+         RIHM(IM,LHMM)=RIHM(IM,LHMM)+RNOR
+
+* - state D(LHMM)
+
+         RIHM(DI,LHMM)=RI
+         If(RI.GT.FLOW) then
+            RIHM(DM,LHMM)=1-EXP(RI) 
+         Else
+            RIHM(DM,LHMM)=1.0
+         End if
+         
+
+* - state I(LHMM)
+
+         RIHM(II,LHMM)=RI
+         If(RI.GT.FLOW) then
+            RIHM(IM,LHMM)=1-EXP(RI) 
+         Else
+            RIHM(IM,LHMM)=1.0
+         End if
+
+      End if
+
+* - internal delete states
+
+      If(OPFF.AND.RD.GT.FLOW) then
+         RD=LOG(EXP(RD)/(1-EXP(RD)))
+         Do I1=1,LHMM-1
+            RIHM(DD,I1)=RD
+            FNOR( 1)=RIHM(DD,I1)
+            FNOR( 2)=RIHM(DI,I1)
+            FNOR( 3)=RIHM(DM,I1)
+            Call GetNP(FNOR, 3,RNOR,FLOW)
+            RIHM(DD,I1)=RIHM(DD,I1)+RNOR
+            RIHM(DI,I1)=RIHM(DI,I1)+RNOR
+            RIHM(DM,I1)=RIHM(DM,I1)+RNOR
+         End do
+      End if 
+
+ 100  Return
+      End
+*----------------------------------------------------------------------*
+      Subroutine GetNP(FNOR,INOR,RNOR,FLOW)
+
+      Real              FNOR(*)
+
+      RNOR=0.0
+
+      RMAX=FLOW
+      Do I1=1,INOR
+         RMAX=MAX(RMAX,FNOR(I1))
+      End do 
+
+      If(RMAX.LE.FLOW) go to 100
+
+      RSUM=0.0
+      RCUT=MAX(FLOW,RMAX-20.0)
+      Do I1=1,INOR
+         If(FNOR(I1).GT.RCUT) RSUM=RSUM+EXP(FNOR(I1)-RMAX)
+      End do 
+      RNOR=-RMAX-LOG(RSUM) 
+
+ 100  Return
+      End
+*----------------------------------------------------------------------*
diff --git a/score.lis b/score.lis
new file mode 100644
index 0000000..a2e6bfd
--- /dev/null
+++ b/score.lis
@@ -0,0 +1,2023 @@
+   621 pos.     19 -    61 swiss|P21715|CYB_AKOJE shuffled
+   614 pos.   2905 -  2946 swiss|P37276|DYHC_DROME shuffled
+   606 pos.    205 -   244 swiss|P03873|CYBM_YEAST shuffled
+   581 pos.    315 -   356 swiss|P12689|REV1_YEAST shuffled
+   576 pos.    279 -   326 swiss|P14906|NPL1_YEAST shuffled
+   572 pos.    188 -   216 swiss|P05050|ALKB_ECOLI shuffled
+   569 pos.    506 -   550 swiss|P34231|YKS7_YEAST shuffled
+   569 pos.     56 -   117 swiss|P24740|POL_HV1U4 shuffled
+   561 pos.     77 -   114 swiss|P18011|IPAB_SHIFL shuffled
+   557 pos.   1977 -  2019 swiss|P23456|RRPL_HANTV shuffled
+   554 pos.    573 -   616 swiss|P06761|GR78_RAT shuffled
+   551 pos.      1 -    23 swiss|P34869|CYB_HETFR shuffled
+   548 pos.     75 -   119 swiss|P35384|CASR_BOVIN shuffled
+   539 pos.    453 -   496 swiss|P28886|VGLF_PHODV shuffled
+   532 pos.   1390 -  1431 swiss|P17779|RRPO_PVXX3 shuffled
+   527 pos.    338 -   382 swiss|P11475|ERR2_HUMAN shuffled
+   526 pos.    469 -   502 swiss|P37966|LPLA_BACSU shuffled
+   525 pos.   2984 -  3031 swiss|P29991|POLG_DEN27 shuffled
+   523 pos.    552 -   592 swiss|Q06248|HS74_PARLI shuffled
+   523 pos.    353 -   391 swiss|P34609|YO60_CAEEL shuffled
+   519 pos.    160 -   199 swiss|P09319|PRL1_OREMO shuffled
+   517 pos.     28 -    68 swiss|P31295|CH10_CHRVI shuffled
+   511 pos.    261 -   298 swiss|P36120|YK04_YEAST shuffled
+   508 pos.     12 -    47 swiss|Q03426|KIME_HUMAN shuffled
+   506 pos.   3323 -  3368 swiss|P30427|PLEC_RAT shuffled
+   501 pos.   1486 -  1523 swiss|P09975|YCF2_MARPO shuffled
+   501 pos.     91 -   134 swiss|P33359|YEHW_ECOLI shuffled
+   500 pos.      1 -    26 swiss|P08035|VS06_ROTHS shuffled
+   498 pos.    143 -   177 swiss|P38348|YB9Q_YEAST shuffled
+   497 pos.    536 -   577 swiss|Q04957|DPO1_BACCA shuffled
+   496 pos.     53 -   101 swiss|P12828|VE41_NPVAC shuffled
+   493 pos.     82 -   123 swiss|P29483|TCPR_VIBCH shuffled
+   489 pos.     13 -    60 swiss|P29407|PGK1_YARLI shuffled
+   485 pos.    498 -   525 swiss|Q08823|NCAP_PPRV shuffled
+   483 pos.    230 -   271 swiss|P06273|RPOC_MARPO shuffled
+   483 pos.    132 -   173 swiss|P00355|G3P_PIG shuffled
+   481 pos.    239 -   290 swiss|P31760|GSPK_AERHY shuffled
+   479 pos.   1502 -  1538 swiss|P34241|YKB4_YEAST shuffled
+   478 pos.    779 -   819 swiss|P13587|ATN1_YEAST shuffled
+   478 pos.     83 -   140 swiss|P17380|VP8_WTV shuffled
+   474 pos.    621 -   637 swiss|P10802|ODP2_AZOVI shuffled
+   471 pos.    195 -   238 swiss|P29885|VENV_VACCP shuffled
+   468 pos.    190 -   242 swiss|P27575|CH60_BORBU shuffled
+   467 pos.    214 -   266 swiss|P32332|PMT1_YEAST shuffled
+   467 pos.     14 -    66 swiss|P31401|VATB_MANSE shuffled
+   466 pos.      1 -    17 swiss|P21985|FLA2_SPIAU shuffled
+   463 pos.    542 -   573 swiss|P15484|CS32_ECOLI shuffled
+   461 pos.    713 -   752 swiss|P38297|YB29_YEAST shuffled
+   461 pos.    448 -   489 swiss|P38280|YBZ8_YEAST shuffled
+   461 pos.     89 -   124 swiss|P18431|KSGZ_DROME shuffled
+   460 pos.    469 -   506 swiss|P30738|RRPO_TMVKR shuffled
+   457 pos.     68 -   117 swiss|P13581|HEM1_SALTY shuffled
+   455 pos.     45 -    89 swiss|P35346|SSR5_HUMAN shuffled
+   453 pos.    160 -   197 swiss|P35020|ABCX_GALSU shuffled
+   452 pos.    183 -   227 swiss|P28073|PRCD_RAT shuffled
+   451 pos.     36 -    78 swiss|P20513|YVAD_VACCC shuffled
+   447 pos.    302 -   343 swiss|P21239|RUB1_BRANA shuffled
+   446 pos.    880 -   914 swiss|P22523|MUKB_ECOLI shuffled
+   446 pos.    343 -   359 swiss|P34273|YKH5_CAEEL shuffled
+   445 pos.    347 -   380 swiss|P12849|KAP1_MOUSE shuffled
+   445 pos.    145 -   184 swiss|P28438|RBL_PASGU shuffled
+   444 pos.    371 -   415 swiss|P22224|SC15_YEAST shuffled
+   443 pos.   3648 -  3696 swiss|P14688|GRSB_BACBR shuffled
+   442 pos.   2162 -  2198 swiss|P13395|SPCA_DROME shuffled
+   442 pos.     59 -   101 swiss|P38615|MDS1_YEAST shuffled
+   442 pos.     54 -    96 swiss|P06773|DCTD_YEAST shuffled
+   442 pos.      1 -    16 swiss|P01554|ELT1_ECOLI shuffled
+   441 pos.      1 -    27 swiss|P20505|KRB1_VACCC shuffled
+   439 pos.    348 -   395 swiss|P21062|VA39_VACCC shuffled
+   439 pos.    272 -   312 swiss|P16900|GAG_OMVVS shuffled
+   439 pos.    117 -   165 swiss|P15889|YR33_THEPE shuffled
+   439 pos.     29 -    71 swiss|P29056|TF3B_YEAST shuffled
+   438 pos.    738 -   779 swiss|P00723|BGAL_KLULA shuffled
+   438 pos.    110 -   165 swiss|P34111|TFC3_YEAST shuffled
+   438 pos.     95 -   135 swiss|P37056|YAEF_ECOLI shuffled
+   437 pos.    572 -   612 swiss|P36336|VGLH_HSVMD shuffled
+   437 pos.     94 -   138 swiss|P27121|DCOR_NEUCR shuffled
+   436 pos.    986 -  1027 swiss|P30002|TEGU_HSV6G shuffled
+   436 pos.    630 -   680 swiss|P25167|RPC2_DROME shuffled
+   434 pos.      1 -    29 swiss|P25335|ALC_YEAST shuffled
+   431 pos.   1424 -  1463 swiss|P12847|MYSE_RAT shuffled
+   431 pos.    399 -   443 swiss|P27615|LIM2_RAT shuffled
+   430 pos.    590 -   637 swiss|P17547|ADHE_ECOLI shuffled
+   430 pos.    531 -   566 swiss|P38150|YB9Z_YEAST shuffled
+   429 pos.    298 -   334 swiss|P32998|VG09_VARV shuffled
+   429 pos.    247 -   294 swiss|P28931|V1A_TAV shuffled
+   429 pos.     21 -    66 swiss|P34483|YMJ8_CAEEL shuffled
+   428 pos.    284 -   324 swiss|P35170|AROF_CORGL shuffled
+   428 pos.     85 -   100 swiss|P19167|RL23_EUGGR shuffled
+   427 pos.      1 -    20 swiss|P03440|HEMA_IAEN7 shuffled
+   426 pos.      1 -    22 swiss|P08302|YCO2_PARDE shuffled
+   425 pos.     28 -    72 swiss|P05963|MLR_CHLNI shuffled
+   424 pos.   1207 -  1250 swiss|P09547|ADR6_YEAST shuffled
+   424 pos.    160 -   215 swiss|P17296|MPC2_ALCEU shuffled
+   424 pos.     74 -   116 swiss|P35740|HEMA_NDVC shuffled
+   423 pos.    999 -  1038 swiss|P27502|POL_RTBVP shuffled
+   423 pos.    494 -   537 swiss|P29388|NU5M_ARATH shuffled
+   423 pos.      1 -    41 swiss|P11107|VD10_BPT5 shuffled
+   423 pos.      1 -    19 swiss|P21345|GLTP_ECOLI shuffled
+   421 pos.    734 -   774 swiss|Q02158|PIPA_DICDI shuffled
+   421 pos.      1 -    16 swiss|P31377|YA14_YEAST shuffled
+   420 pos.     98 -   143 swiss|P14686|GRST_BACBR shuffled
+   420 pos.     93 -   132 swiss|P17896|SP4B_BACSU shuffled
+   419 pos.    113 -   156 swiss|P34191|ATP6_CROLA shuffled
+   419 pos.     20 -    65 swiss|Q02256|PVH1_YEAST shuffled
+   419 pos.      1 -    35 swiss|P26251|NIF1_RHISO shuffled
+   418 pos.    485 -   520 swiss|P38156|MA3T_YEAST shuffled
+   418 pos.    158 -   199 swiss|P15994|ATP6_PODAN shuffled
+   417 pos.      1 -    20 swiss|P35451|MI17_BOVIN shuffled
+   416 pos.     77 -   117 swiss|P33031|NUPC_ECOLI shuffled
+   415 pos.    508 -   566 swiss|P12823|POLG_DEN2P shuffled
+   415 pos.    262 -   301 swiss|P25167|RPC2_DROME shuffled
+   415 pos.    261 -   296 swiss|P08659|LUCI_PHOPY shuffled
+   415 pos.      1 -    40 swiss|P34719|T2M1_MORBO shuffled
+   413 pos.    247 -   289 swiss|P32151|YIIG_ECOLI shuffled
+   413 pos.     80 -   121 swiss|P36057|YKP4_YEAST shuffled
+   413 pos.      1 -    30 swiss|P06637|HBA4_XENLA shuffled
+   412 pos.    236 -   257 swiss|P33498|ENV_AVIR3 shuffled
+   410 pos.    869 -   893 swiss|Q01107|DSC1_BOVIN shuffled
+   410 pos.    766 -   813 swiss|P18963|IRA1_YEAST shuffled
+   410 pos.    755 -   802 swiss|P22137|CLH_YEAST shuffled
+   410 pos.    158 -   211 swiss|P25294|SIS1_YEAST shuffled
+   409 pos.    449 -   472 swiss|P17563|SBP_MOUSE shuffled
+   409 pos.    359 -   398 swiss|P18812|MALF_ENTAE shuffled
+   409 pos.    128 -   174 swiss|Q04778|ALSR_BACSU shuffled
+   409 pos.    121 -   159 swiss|P23964|ALUF_HUMAN shuffled
+   409 pos.     85 -   101 swiss|P38161|YBK8_YEAST shuffled
+   408 pos.    466 -   509 swiss|P25644|YCW7_YEAST shuffled
+   408 pos.    386 -   417 swiss|P16708|UFBP_PIG shuffled
+   408 pos.    121 -   161 swiss|P19817|RFAJ_SALTY shuffled
+   408 pos.      1 -    44 swiss|P09959|SWI6_YEAST shuffled
+   407 pos.    235 -   244 swiss|P02979|MLS2_STAAU shuffled
+   406 pos.    324 -   365 swiss|P15729|GLCP_SYNY3 shuffled
+   406 pos.    206 -   245 swiss|Q00537|KPT2_HUMAN shuffled
+   406 pos.    135 -   179 swiss|Q05961|25A1_RAT shuffled
+   405 pos.    934 -   956 swiss|P32504|CB31_YEAST shuffled
+   404 pos.    360 -   381 swiss|P05149|MURO_ACICA shuffled
+   403 pos.   1637 -  1685 swiss|P06447|RRPL_SENDZ shuffled
+   403 pos.   1004 -  1020 swiss|P28956|UL37_HSVEB shuffled
+   403 pos.    402 -   442 swiss|P20592|MX2_HUMAN shuffled
+   402 pos.      9 -    49 swiss|P16239|ICEN_ERWHE shuffled
+   400 pos.    345 -   370 swiss|P06575|CR41_BACSH shuffled
+   399 pos.    220 -   264 swiss|P15193|CB2A_PINSY shuffled
+   397 pos.    440 -   458 swiss|P23868|TRKA_ECOLI shuffled
+   397 pos.     55 -    80 swiss|P04307|YVDE_VACCV shuffled
+   396 pos.    741 -   793 swiss|Q00496|BXE_CLOBO shuffled
+   395 pos.    220 -   259 swiss|P32138|YIHQ_ECOLI shuffled
+   395 pos.    177 -   220 swiss|P33893|PT12_YEAST shuffled
+   395 pos.     31 -    71 swiss|P07614|VL03_VACCV shuffled
+   395 pos.      1 -    49 swiss|P08263|GTH1_HUMAN shuffled
+   394 pos.    616 -   682 swiss|P20635|ETF2_VACCC shuffled
+   394 pos.    191 -   233 swiss|P08770|TRA1_MAIZE shuffled
+   394 pos.    102 -   124 swiss|P26708|V125_ASFL5 shuffled
+   394 pos.      1 -    37 swiss|P07817|DCOP_ASPNG shuffled
+   393 pos.    192 -   232 swiss|Q01444|YSR1_MYCMY shuffled
+   393 pos.    179 -   219 swiss|P07974|HEMA_INCTA shuffled
+   393 pos.     50 -    66 swiss|P15405|V07K_WCMVO shuffled
+   392 pos.    502 -   537 swiss|P26896|IL2B_RAT shuffled
+   392 pos.    483 -   502 swiss|P08776|K2C8_XENLA shuffled
+   391 pos.    627 -   671 swiss|P25339|YGL3_YEAST shuffled
+   391 pos.    158 -   212 swiss|Q08382|MODB_RHOCA shuffled
+   390 pos.    312 -   353 swiss|P15650|ACDL_RAT shuffled
+   390 pos.    258 -   305 swiss|P32361|IRE1_YEAST shuffled
+   390 pos.     67 -   107 swiss|P34455|ACON_CAEEL shuffled
+   390 pos.      1 -    31 swiss|P38271|YBX9_YEAST shuffled
+   389 pos.    103 -   136 swiss|P14994|VAL3_BCTV shuffled
+   388 pos.    466 -   510 swiss|P15937|ACU8_NEUCR shuffled
+   388 pos.    215 -   249 swiss|P37493|YR20_BACSU shuffled
+   387 pos.    255 -   294 swiss|P05116|ACC3_LYCES shuffled
+   387 pos.     33 -    81 swiss|P28872|CAR3_CANAL shuffled
+   387 pos.      1 -    12 swiss|P34128|NGF_BUNMU shuffled
+   386 pos.     92 -   135 swiss|P24378|NCAP_VHSV0 shuffled
+   385 pos.    602 -   651 swiss|P05519|CRYS_BACTI shuffled
+   385 pos.    516 -   561 swiss|P36028|YK83_YEAST shuffled
+   385 pos.    461 -   513 swiss|P14248|RPB1_PLAFD shuffled
+   385 pos.    454 -   493 swiss|P05453|SUP2_YEAST shuffled
+   385 pos.    405 -   450 swiss|P07218|PAL1_PHAVU shuffled
+   385 pos.    101 -   141 swiss|P19014|HBA_CRIGA shuffled
+   384 pos.    667 -   707 swiss|P16383|GCF_HUMAN shuffled
+   384 pos.     70 -    98 swiss|P34771|RL23_ASTLO shuffled
+   383 pos.    968 -  1025 swiss|P18293|ANPA_MOUSE shuffled
+   383 pos.    204 -   232 swiss|P22468|GDL_DROME shuffled
+   383 pos.    104 -   151 swiss|P23970|MENC_BACSU shuffled
+   383 pos.     54 -    94 swiss|P34823|EF12_DAUCA shuffled
+   383 pos.     43 -    85 swiss|P23890|CADC_ECOLI shuffled
+   382 pos.    570 -   603 swiss|P34260|YKA9_CAEEL shuffled
+   382 pos.    313 -   334 swiss|P24242|ASCG_ECOLI shuffled
+   381 pos.    239 -   290 swiss|P15046|ACKA_ECOLI shuffled
+   381 pos.     77 -   124 swiss|P20489|FCEA_MOUSE shuffled
+   381 pos.     17 -    62 swiss|P16996|HEMA_IAHK7 shuffled
+   380 pos.    383 -   405 swiss|P07157|EFTU_THETH shuffled
+   380 pos.    249 -   290 swiss|P16355|RPA1_TRYBB shuffled
+   380 pos.    237 -   276 swiss|P28582|CDPK_DAUCA shuffled
+   380 pos.    142 -   188 swiss|P15625|SYFB_YEAST shuffled
+   380 pos.     93 -   129 swiss|P17806|GB02_CRILO shuffled
+   379 pos.   1078 -  1143 swiss|P17376|VL3_REOVL shuffled
+   379 pos.    236 -   284 swiss|P04934|MSAP_PLAFC shuffled
+   379 pos.    229 -   271 swiss|P16497|KINA_BACSU shuffled
+   379 pos.    154 -   193 swiss|P25379|STDH_YEAST shuffled
+   379 pos.     72 -   112 swiss|P21206|LCRV_YERPE shuffled
+   379 pos.     62 -    97 swiss|P13745|GTA2_MOUSE shuffled
+   378 pos.    237 -   278 swiss|P08318|PP15_HCMVA shuffled
+   378 pos.    183 -   251 swiss|P23878|FEPC_ECOLI shuffled
+   378 pos.    117 -   156 swiss|P10866|HEMA_MUMPR shuffled
+   378 pos.     26 -    61 swiss|P35892|DNAA_SPIAP shuffled
+   377 pos.      6 -    46 swiss|P32707|NRFB_ECOLI shuffled
+   377 pos.      1 -    39 swiss|P24674|RBL_PICPU shuffled
+   376 pos.   1554 -  1607 swiss|P08964|MYS1_YEAST shuffled
+   376 pos.    349 -   389 swiss|P38164|YBK4_YEAST shuffled
+   376 pos.    178 -   208 swiss|P26967|AC20_TENMO shuffled
+   376 pos.    143 -   191 swiss|P31605|YCP1_CYAPA shuffled
+   376 pos.     75 -   114 swiss|P20459|IF2A_YEAST shuffled
+   376 pos.      4 -    44 swiss|P11725|OTC_MOUSE shuffled
+   375 pos.     82 -    96 swiss|P31844|YGLN_BACSU shuffled
+   374 pos.    238 -   290 swiss|P11559|MCRA_METVO shuffled
+   373 pos.    161 -   175 swiss|P14357|VN02_VACCV shuffled
+   373 pos.     63 -   109 swiss|P14318|MP20_DROME shuffled
+   372 pos.    132 -   180 swiss|P19748|PAP2_CAPVK shuffled
+   371 pos.    260 -   298 swiss|P36377|SPRC_CHICK shuffled
+   371 pos.    232 -   247 swiss|P14229|T2SM_SERMA shuffled
+   371 pos.    115 -   163 swiss|P07365|CHEW_ECOLI shuffled
+   371 pos.     85 -   127 swiss|P24485|CD53_RAT shuffled
+   370 pos.    609 -   640 swiss|P06445|ENV_RMCFV shuffled
+   370 pos.    367 -   408 swiss|P29915|NQO3_PARDE shuffled
+   370 pos.    321 -   351 swiss|P06166|VMAT_PI3B shuffled
+   370 pos.    165 -   180 swiss|P09466|PP14_HUMAN shuffled
+   370 pos.      6 -    52 swiss|Q05017|PHLX_RABIT shuffled
+   370 pos.      1 -     8 swiss|P23212|MSRA_STAEP shuffled
+   369 pos.    733 -   749 swiss|P07861|NEP_RAT shuffled
+   369 pos.    330 -   367 swiss|P22591|RRPO_PVXCP shuffled
+   369 pos.    229 -   274 swiss|P16528|ICLR_ECOLI shuffled
+   369 pos.     75 -    93 swiss|P03755|VE85_LAMBD shuffled
+   368 pos.   1572 -  1595 swiss|P26675|SOS_DROME shuffled
+   368 pos.     80 -   119 swiss|P10668|COFI_PIG shuffled
+   368 pos.     68 -    87 swiss|P15817|NXL4_BUNMU shuffled
+   368 pos.      1 -    37 swiss|P38357|YB8F_YEAST shuffled
+   368 pos.      1 -    36 swiss|P29460|I12B_HUMAN shuffled
+   368 pos.      1 -    25 swiss|P19833|LIP1_MORSP shuffled
+   368 pos.      1 -    17 swiss|P04119|LACB_PIG shuffled
+   367 pos.    233 -   281 swiss|P05500|ATP6_OENBE shuffled
+   367 pos.    176 -   216 swiss|P09938|RIR2_YEAST shuffled
+   367 pos.     23 -    72 swiss|P04306|YVDD_VACCV shuffled
+   367 pos.      1 -    22 swiss|Q06240|VANS_ENTFC shuffled
+   366 pos.    359 -   392 swiss|P21549|SPYA_HUMAN shuffled
+   366 pos.    198 -   240 swiss|P31776|YORI_HAEIN shuffled
+   366 pos.    125 -   169 swiss|P07005|PROB_ECOLI shuffled
+   366 pos.    106 -   160 swiss|P01011|AACT_HUMAN shuffled
+   365 pos.   3350 -  3391 swiss|P04114|APB_HUMAN shuffled
+   365 pos.    347 -   387 swiss|P07604|TYRR_ECOLI shuffled
+   365 pos.    282 -   308 swiss|P26903|DCIB_BACSU shuffled
+   365 pos.      1 -    21 swiss|P38146|YB9J_YEAST shuffled
+   365 pos.      1 -    11 swiss|P08622|DNAJ_ECOLI shuffled
+   364 pos.    635 -   670 swiss|P16641|SMC7_SCHMA shuffled
+   364 pos.    314 -   361 swiss|Q00104|VG46_HSVI1 shuffled
+   364 pos.    197 -   216 swiss|P00572|KTHY_YEAST shuffled
+   364 pos.    159 -   192 swiss|P24078|PE21_NPVOP shuffled
+   364 pos.    131 -   170 swiss|P23426|POL_VILV1 shuffled
+   364 pos.      1 -    20 swiss|P37639|YHIX_ECOLI shuffled
+   363 pos.    575 -   592 swiss|P09217|KPCZ_RAT shuffled
+   363 pos.    107 -   172 swiss|P24615|VMAT_BRSVA shuffled
+   363 pos.      1 -    24 swiss|P18617|IBMP_CAMVP shuffled
+   362 pos.    595 -   636 swiss|P21445|ENV_FSVSM shuffled
+   362 pos.    458 -   490 swiss|P18164|TA53_TREDE shuffled
+   362 pos.    201 -   242 swiss|P14646|CNA4_RAT shuffled
+   362 pos.    127 -   155 swiss|P04868|V17K_BSMV shuffled
+   362 pos.    109 -   156 swiss|P07166|VIC2_AGRT5 shuffled
+   362 pos.     75 -    89 swiss|Q08513|NTP1_SPVKA shuffled
+   362 pos.      6 -    46 swiss|P09537|SOMA_PAROL shuffled
+   362 pos.      1 -    35 swiss|P37434|UVRA_SALTY shuffled
+   361 pos.    405 -   434 swiss|P21026|VG05_VACCC shuffled
+   361 pos.    134 -   173 swiss|P33657|RPSE_CLOAB shuffled
+   361 pos.    107 -   142 swiss|P26045|PTN3_HUMAN shuffled
+   360 pos.    724 -   765 swiss|P00365|DHE2_NEUCR shuffled
+   360 pos.    303 -   339 swiss|Q04696|KRY2_HUMAN shuffled
+   360 pos.    215 -   251 swiss|P19405|PPB3_BACSU shuffled
+   360 pos.    197 -   248 swiss|P13880|VMT1_INBAD shuffled
+   359 pos.    960 -  1003 swiss|P18522|POL1_TBRVS shuffled
+   359 pos.    606 -   649 swiss|P06546|SLPM_BACBR shuffled
+   359 pos.    580 -   631 swiss|P23073|ENV_SFV1 shuffled
+   359 pos.    475 -   545 swiss|P36775|LONM_YEAST shuffled
+   359 pos.    289 -   326 swiss|P23351|RMS5_NEUCR shuffled
+   359 pos.    178 -   216 swiss|P34976|AG2R_RABIT shuffled
+   359 pos.    109 -   149 swiss|P16809|IR11_HCMVA shuffled
+   359 pos.    107 -   148 swiss|P00472|MTE1_ECOLI shuffled
+   359 pos.     69 -   109 swiss|P16121|HS26_LUPPO shuffled
+   359 pos.      1 -    18 swiss|Q02752|PHPA_PLACH shuffled
+   358 pos.   1540 -  1582 swiss|Q04575|RRPO_SHVX shuffled
+   358 pos.    468 -   476 swiss|P30827|RBL_LIRTU shuffled
+   358 pos.    349 -   365 swiss|P28353|RF2_SALTY shuffled
+   358 pos.    168 -   196 swiss|P32680|YJAG_ECOLI shuffled
+   358 pos.    137 -   177 swiss|P30011|NADC_ECOLI shuffled
+   357 pos.    296 -   335 swiss|P24442|UL16_HSV6U shuffled
+   357 pos.    293 -   313 swiss|P34621|YO85_CAEEL shuffled
+   357 pos.    243 -   284 swiss|P20509|DPOL_VACCC shuffled
+   357 pos.      1 -    12 swiss|P80275|NLT1_VITSX shuffled
+   356 pos.    114 -   155 swiss|P19818|VAT_CAMVP shuffled
+   356 pos.      1 -    16 swiss|P29566|T2MZ_METTF shuffled
+   355 pos.    327 -   385 swiss|P08468|PT11_YEAST shuffled
+   355 pos.    121 -   160 swiss|P29397|NUSG_THEMA shuffled
+   354 pos.    445 -   486 swiss|Q00918|TGFB_RAT shuffled
+   354 pos.    218 -   232 swiss|P03738|VMTL_LAMBD shuffled
+   354 pos.     86 -    93 swiss|P03625|VG93_BPPF3 shuffled
+   353 pos.    291 -   301 swiss|P34799|URID_CANLI shuffled
+   353 pos.    250 -   299 swiss|P38154|AMPY_YEAST shuffled
+   353 pos.     82 -   128 swiss|Q00254|VS09_ROTBK shuffled
+   353 pos.     74 -   110 swiss|P02010|HBA_VIPAS shuffled
+   353 pos.      1 -    38 swiss|P37275|NIL2_HUMAN shuffled
+   353 pos.      1 -    26 swiss|P80084|ATP3_SPIOL shuffled
+   353 pos.      1 -    19 swiss|P12610|CYSZ_ECOLI shuffled
+   352 pos.    129 -   150 swiss|P14777|IN24_UROAP shuffled
+   351 pos.   1094 -  1104 swiss|P07806|SYV_YEAST shuffled
+   351 pos.    550 -   595 swiss|P37089|SCAA_RAT shuffled
+   351 pos.    204 -   251 swiss|P26106|RRP3_IAHLO shuffled
+   351 pos.    111 -   153 swiss|P35842|PPAB_YEAST shuffled
+   351 pos.     11 -    51 swiss|P23761|GVPA_HALME shuffled
+   351 pos.      1 -    35 swiss|P36165|YK69_YEAST shuffled
+   350 pos.    193 -   228 swiss|P29881|COX2_ZOOAN shuffled
+   350 pos.    160 -   169 swiss|P12199|NUGC_MARPO shuffled
+   350 pos.     85 -   127 swiss|P20370|DC4C_ACICA shuffled
+   350 pos.     42 -    88 swiss|P80317|TCPZ_MOUSE shuffled
+   349 pos.    705 -   766 swiss|P06839|RAD3_YEAST shuffled
+   349 pos.    236 -   283 swiss|P32370|BAIH_EUBSP shuffled
+   349 pos.    115 -   160 swiss|P12627|VNFA_AZOVI shuffled
+   349 pos.    109 -   133 swiss|P22029|BOTA_BOTJA shuffled
+   349 pos.     74 -   124 swiss|Q00966|VMP_CAMVN shuffled
+   348 pos.   1061 -  1095 swiss|P08678|CYAA_YEAST shuffled
+   348 pos.      1 -    35 swiss|P26425|LACD_STRMU shuffled
+   348 pos.      1 -    14 swiss|P06967|YCCA_ECOLI shuffled
+   347 pos.    270 -   309 swiss|P19001|K1CS_MOUSE shuffled
+   347 pos.    266 -   306 swiss|P24869|CG22_YEAST shuffled
+   347 pos.    257 -   298 swiss|Q01726|MSHR_HUMAN shuffled
+   347 pos.    225 -   274 swiss|P35470|CH62_RHIME shuffled
+   347 pos.    178 -   210 swiss|Q04642|MXIE_SHIFL shuffled
+   347 pos.     32 -    87 swiss|P22370|YPC5_CLAPU shuffled
+   347 pos.      1 -    17 swiss|P19093|NGF_CAVPO shuffled
+   345 pos.    929 -   968 swiss|Q02773|RPM2_YEAST shuffled
+   345 pos.    833 -   860 swiss|P22430|ENV_EIAV5 shuffled
+   345 pos.    343 -   347 swiss|P17179|PER2_ARMRU shuffled
+   345 pos.    327 -   363 swiss|P26684|ET1R_RAT shuffled
+   345 pos.    167 -   207 swiss|Q08276|HS7M_SOLTU shuffled
+   345 pos.     91 -   132 swiss|Q00128|VG68_HSVI1 shuffled
+   345 pos.     79 -   115 swiss|P22241|DRPD_CRAPL shuffled
+   345 pos.     75 -    99 swiss|P27230|VE7_HPV35 shuffled
+   345 pos.     71 -   104 swiss|P34782|YC67_ASTLO shuffled
+   345 pos.     58 -   100 swiss|P16153|YTOX_CLODI shuffled
+   345 pos.     21 -    79 swiss|P16823|UL71_HCMVA shuffled
+   345 pos.      1 -    35 swiss|Q03874|VS09_ROTE2 shuffled
+   344 pos.    262 -   276 swiss|Q00462|TRA2_FREDI shuffled
+   344 pos.    162 -   174 swiss|P06941|VNSC_CDVO shuffled
+   344 pos.    151 -   195 swiss|P27500|YP24_RTBVP shuffled
+   344 pos.     35 -    64 swiss|P34789|RS48_ARATH shuffled
+   343 pos.    996 -  1049 swiss|P25870|CLH_DICDI shuffled
+   343 pos.    467 -   488 swiss|Q07158|TPS1_KLULA shuffled
+   343 pos.    318 -   357 swiss|P14829|GYRA_KLEPN shuffled
+   343 pos.    251 -   308 swiss|P32541|ENV_EIAVC shuffled
+   343 pos.    241 -   305 swiss|P18935|CYB_DROME shuffled
+   343 pos.      1 -    29 swiss|Q00967|VDBP_CAMVN shuffled
+   343 pos.      1 -     8 swiss|Q04655|YMA6_VICFA shuffled
+   342 pos.    647 -   681 swiss|P30996|BXF_CLOBO shuffled
+   342 pos.    347 -   383 swiss|P21339|MSB1_YEAST shuffled
+   342 pos.    268 -   300 swiss|P36378|SPRC_XENLA shuffled
+   342 pos.    214 -   256 swiss|P27509|YPQQ_KLEPN shuffled
+   342 pos.    172 -   189 swiss|P05090|APD_HUMAN shuffled
+   342 pos.     76 -   123 swiss|P10138|RL15_MYCCA shuffled
+   342 pos.     21 -    63 swiss|P31122|YDEA_ECOLI shuffled
+   342 pos.      1 -    15 swiss|P35983|E1BS_ADEC2 shuffled
+   341 pos.    570 -   612 swiss|P27237|OPDA_SALTY shuffled
+   341 pos.    554 -   601 swiss|P16522|CC23_YEAST shuffled
+   341 pos.    329 -   377 swiss|P20649|ATH1_ARATH shuffled
+   341 pos.    264 -   319 swiss|P08400|PHOR_ECOLI shuffled
+   341 pos.    147 -   172 swiss|P20601|ATPF_BACME shuffled
+   341 pos.    114 -   153 swiss|P16188|1A25_HUMAN shuffled
+   341 pos.     15 -    51 swiss|P15653|IPT_AGRT2 shuffled
+   340 pos.    311 -   328 swiss|P25947|VT5_SFVKA shuffled
+   340 pos.    308 -   368 swiss|P19367|HXK1_HUMAN shuffled
+   340 pos.    209 -   250 swiss|P03556|POL_CAMVD shuffled
+   340 pos.    198 -   241 swiss|P17790|BASI_CHICK shuffled
+   340 pos.    197 -   231 swiss|P36710|E434_ADE12 shuffled
+   340 pos.    103 -   147 swiss|P01870|GC_RABIT shuffled
+   340 pos.      1 -    15 swiss|P04235|CD3D_MOUSE shuffled
+   340 pos.      1 -    12 swiss|P14817|VG4A_BPPH8 shuffled
+   339 pos.   2023 -  2063 swiss|P04114|APB_HUMAN shuffled
+   339 pos.    506 -   572 swiss|P14105|MYSN_CHICK shuffled
+   339 pos.    125 -   173 swiss|P17688|AROA_BRANA shuffled
+   339 pos.    105 -   125 swiss|P16737|ULA6_HCMVA shuffled
+   339 pos.     38 -    79 swiss|P12582|HEMA_IADH1 shuffled
+   338 pos.    513 -   552 swiss|Q03845|FLBF_CAUCR shuffled
+   338 pos.    238 -   279 swiss|P25552|GPPA_ECOLI shuffled
+   338 pos.    147 -   184 swiss|P35016|ENPL_CATRO shuffled
+   338 pos.    105 -   149 swiss|P19185|Y19K_BPCHP shuffled
+   338 pos.      1 -    16 swiss|P32564|SCM4_YEAST shuffled
+   338 pos.      1 -    15 swiss|P17366|YH22_VACCV shuffled
+   337 pos.    963 -  1005 swiss|P09874|PPOL_HUMAN shuffled
+   337 pos.    725 -   734 swiss|P06512|PSAB_SPIOL shuffled
+   337 pos.    573 -   616 swiss|P20979|MCEL_VACCC shuffled
+   337 pos.    457 -   493 swiss|P05099|CAMA_CHICK shuffled
+   337 pos.    411 -   433 swiss|P09104|ENOG_HUMAN shuffled
+   337 pos.    239 -   244 swiss|P04769|PROR_MOUSE shuffled
+   337 pos.     76 -    84 swiss|P26553|VE5_HPV51 shuffled
+   336 pos.    371 -   409 swiss|P09195|F16P_WHEAT shuffled
+   336 pos.    317 -   344 swiss|Q05404|MYCL_XENLA shuffled
+   336 pos.    293 -   299 swiss|Q00556|COAT_HEVS shuffled
+   336 pos.    266 -   293 swiss|P21136|KGPB_BOVIN shuffled
+   336 pos.    136 -   201 swiss|P36512|UDBD_RABIT shuffled
+   336 pos.     36 -    79 swiss|P09814|POLG_TVMV shuffled
+   335 pos.    276 -   321 swiss|P24814|GRR1_YEAST shuffled
+   335 pos.    127 -   166 swiss|P29344|RS1_SPIOL shuffled
+   335 pos.    121 -   156 swiss|P03580|COAT_TMVHR shuffled
+   335 pos.    118 -   143 swiss|P20143|PSAH_HORVU shuffled
+   335 pos.    100 -   112 swiss|P01659|KV3G_MOUSE shuffled
+   335 pos.     93 -    98 swiss|P35696|ELIA_PHYDR shuffled
+   335 pos.     57 -   115 swiss|P10924|PROF_MOUSE shuffled
+   335 pos.      1 -    15 swiss|P29670|CYB_POMNI shuffled
+   335 pos.      1 -    12 swiss|P12577|RRPL_PI3H4 shuffled
+   334 pos.    220 -   282 swiss|P29339|RIP2_MOMBA shuffled
+   334 pos.    174 -   235 swiss|P24559|PILT_PSEAE shuffled
+   334 pos.    133 -   168 swiss|P16289|RRPL_RABVS shuffled
+   334 pos.     82 -   127 swiss|P29145|NECB_HYDAT shuffled
+   334 pos.     79 -   115 swiss|Q07703|METC_BORAV shuffled
+   334 pos.     46 -    90 swiss|P04633|UCP_RAT shuffled
+   334 pos.      1 -    29 swiss|Q03298|PHHY_ACICA shuffled
+   333 pos.    546 -   580 swiss|P18799|ENV_HV1ND shuffled
+   333 pos.    526 -   568 swiss|P27565|RRPP_SEND5 shuffled
+   333 pos.    399 -   438 swiss|P08183|MDR1_HUMAN shuffled
+   333 pos.    129 -   171 swiss|P28379|RBL_APHSI shuffled
+   333 pos.     90 -   158 swiss|P29953|YPMI_RHIME shuffled
+   333 pos.     73 -   108 swiss|P34552|YNK1_CAEEL shuffled
+   333 pos.      1 -    35 swiss|P05915|VPX_HV2NZ shuffled
+   333 pos.      1 -    20 swiss|P15631|VMP_SOCMV shuffled
+   333 pos.      1 -     9 swiss|P18058|YHO1_BPT4 shuffled
+   332 pos.    488 -   505 swiss|P13356|ATPB_BACFR shuffled
+   332 pos.    390 -   433 swiss|P20695|PC4_RAT shuffled
+   332 pos.    145 -   184 swiss|P21047|VE06_VACCC shuffled
+   332 pos.     89 -   127 swiss|P31915|RL12_EUGGR shuffled
+   332 pos.     34 -    76 swiss|Q02399|CDK5_BOVIN shuffled
+   332 pos.     34 -    54 swiss|P05571|IOVO_COSCO shuffled
+   331 pos.    504 -   514 swiss|P02916|MALF_ECOLI shuffled
+   331 pos.    364 -   401 swiss|P26002|VNSS_TSWV1 shuffled
+   331 pos.    336 -   378 swiss|P21345|GLTP_ECOLI shuffled
+   331 pos.    323 -   349 swiss|P34015|VC22_VARV shuffled
+   331 pos.     50 -    91 swiss|P25399|LIVJ_CITFR shuffled
+   331 pos.     37 -    70 swiss|Q00361|ATPJ_BOVIN shuffled
+   331 pos.      1 -    25 swiss|P26935|IDH_BACSU shuffled
+   331 pos.      1 -    18 swiss|P36284|COAT_SMSV1 shuffled
+   330 pos.   1337 -  1369 swiss|Q00107|VG67_HSVI1 shuffled
+   330 pos.    524 -   574 swiss|P09523|POL_FMVD shuffled
+   330 pos.    507 -   553 swiss|P17462|VP2_ROTBU shuffled
+   330 pos.    445 -   454 swiss|P14244|MTMV_MICVA shuffled
+   330 pos.    240 -   284 swiss|P19529|REPN_STAAU shuffled
+   330 pos.    153 -   193 swiss|P32375|ALLA_YEAST shuffled
+   330 pos.    136 -   183 swiss|P28262|RBL_PHORE shuffled
+   330 pos.    119 -   141 swiss|P05076|V16K_TRVTC shuffled
+   330 pos.    109 -   141 swiss|P14389|HBA_PTEAL shuffled
+   330 pos.     52 -    94 swiss|P07105|FANB_ECOLI shuffled
+   329 pos.   1616 -  1646 swiss|P19523|RRPO_CGMVS shuffled
+   329 pos.    363 -   403 swiss|P07983|GUN1_BACSU shuffled
+   329 pos.    193 -   234 swiss|Q02514|VL1_HPV17 shuffled
+   329 pos.    124 -   175 swiss|P38224|YBP0_YEAST shuffled
+   329 pos.     71 -   116 swiss|P24052|MK_CHICK shuffled
+   329 pos.     43 -    94 swiss|P20613|SSP2_BOMMO shuffled
+   329 pos.      1 -    10 swiss|Q00917|SUSY_ARATH shuffled
+   328 pos.    218 -   269 swiss|P19179|FIMB_CHICK shuffled
+   328 pos.    196 -   240 swiss|P23064|ENV_HTL1M shuffled
+   328 pos.    179 -   219 swiss|P15206|CG2B_MARGL shuffled
+   328 pos.    100 -   112 swiss|P13338|VG33_BPT4 shuffled
+   327 pos.    519 -   553 swiss|P21277|NCAP_MUMP1 shuffled
+   327 pos.    384 -   423 swiss|P19100|CPT7_PIG shuffled
+   327 pos.    327 -   353 swiss|P05175|VAL1_BGMV shuffled
+   327 pos.    259 -   299 swiss|P01879|ALC_RABIT shuffled
+   327 pos.    258 -   285 swiss|P38486|LEG3_CANFA shuffled
+   327 pos.    227 -   247 swiss|P10908|UGPQ_ECOLI shuffled
+   327 pos.    226 -   262 swiss|P38179|YBI2_YEAST shuffled
+   327 pos.     45 -    80 swiss|P38380|SECA_CAUCR shuffled
+   327 pos.      1 -    14 swiss|P27352|IF_HUMAN shuffled
+   326 pos.    351 -   391 swiss|P15443|KR14_HSVI1 shuffled
+   326 pos.    264 -   305 swiss|P37666|YIAE_ECOLI shuffled
+   326 pos.    213 -   254 swiss|P18342|TPMX_RAT shuffled
+   326 pos.     92 -   100 swiss|P34813|YAPC_AGLNE shuffled
+   326 pos.     78 -   100 swiss|P16939|YIS1_SHISO shuffled
+   326 pos.     76 -   116 swiss|P23351|RMS5_NEUCR shuffled
+   326 pos.     74 -   101 swiss|P20327|Y53_BPT3 shuffled
+   326 pos.     62 -   100 swiss|P35719|RT08_YEAST shuffled
+   326 pos.     55 -    86 swiss|P26250|NIFH_NOSCO shuffled
+   326 pos.      1 -    14 swiss|P09399|STRH_STRGR shuffled
+   326 pos.      1 -    12 swiss|P24278|ZN46_HUMAN shuffled
+   326 pos.      1 -     9 swiss|P13771|VPB_BPD10 shuffled
+   325 pos.    741 -   794 swiss|P33314|BUD2_YEAST shuffled
+   325 pos.    717 -   751 swiss|P36124|YK09_YEAST shuffled
+   325 pos.    431 -   474 swiss|P29402|CALX_ARATH shuffled
+   325 pos.    406 -   449 swiss|P32050|NRFA_ECOLI shuffled
+   325 pos.    338 -   375 swiss|P19631|ADH3_COTJA shuffled
+   325 pos.    165 -   209 swiss|P12753|RA50_YEAST shuffled
+   325 pos.     78 -   114 swiss|P25584|YCF6_YEAST shuffled
+   325 pos.     76 -   115 swiss|P34609|YO60_CAEEL shuffled
+   325 pos.     16 -    63 swiss|P27713|NIFA_HERSE shuffled
+   325 pos.      1 -    24 swiss|Q07588|ADH_DROIM shuffled
+   325 pos.      1 -    20 swiss|P20201|Y15K_SSV1 shuffled
+   324 pos.    817 -   826 swiss|P09327|VIL1_HUMAN shuffled
+   324 pos.    794 -   830 swiss|P30999|P120_MOUSE shuffled
+   324 pos.    614 -   659 swiss|P04415|DPOL_BPT4 shuffled
+   324 pos.    341 -   374 swiss|P25328|RRPW_YEAST shuffled
+   324 pos.    250 -   285 swiss|P29219|MYOP_XENLA shuffled
+   324 pos.    197 -   239 swiss|Q01180|NIFU_RHOSH shuffled
+   324 pos.    101 -   108 swiss|P00274|THIO_ECOLI shuffled
+   324 pos.     46 -    84 swiss|P07048|CPPA_NEIGO shuffled
+   324 pos.     43 -    63 swiss|P12100|ANP1_AUSBR shuffled
+   324 pos.      1 -    31 swiss|P20332|SOM2_ONCMY shuffled
+   324 pos.      1 -    28 swiss|P37928|FIMW_SALTY shuffled
+   324 pos.      1 -    12 swiss|P22819|BIOY_BACSH shuffled
+   323 pos.   1614 -  1660 swiss|P33334|PR08_YEAST shuffled
+   323 pos.    317 -   356 swiss|P02919|PBPB_ECOLI shuffled
+   323 pos.    125 -   141 swiss|P12937|X_WHV8 shuffled
+   323 pos.     88 -   122 swiss|P38508|RL14_THEMA shuffled
+   323 pos.     72 -   112 swiss|P07934|KPBG_MOUSE shuffled
+   323 pos.     26 -    59 swiss|P12566|HEMA_PI3HX shuffled
+   323 pos.      1 -    32 swiss|P11278|PELP_YERPS shuffled
+   323 pos.      1 -    16 swiss|P15418|VG1_BPI22 shuffled
+   322 pos.    643 -   685 swiss|P05844|POLS_IPNVJ shuffled
+   322 pos.    335 -   351 swiss|P04922|CSP_PLAKN shuffled
+   322 pos.    309 -   357 swiss|P21133|AAAA_EMENI shuffled
+   322 pos.    291 -   298 swiss|P05141|ADT2_HUMAN shuffled
+   322 pos.    240 -   301 swiss|P06406|PSAA_MARPO shuffled
+   322 pos.      1 -    45 swiss|P30141|MRP4_STRPY shuffled
+   322 pos.      1 -    40 swiss|P24038|NIRT_PSEST shuffled
+   322 pos.      1 -    14 swiss|Q07905|ARGB_BACST shuffled
+   322 pos.      1 -     8 swiss|P20220|Y13K_SSV1 shuffled
+   321 pos.    561 -   606 swiss|Q02206|YKY8_YEAST shuffled
+   321 pos.    416 -   442 swiss|P27622|TAGC_BACSU shuffled
+   321 pos.    206 -   248 swiss|P10872|TBA_TETPY shuffled
+   321 pos.    191 -   227 swiss|P29879|COX2_SITGR shuffled
+   321 pos.    158 -   163 swiss|P07121|PHCA_ANASP shuffled
+   321 pos.     77 -   104 swiss|P14327|VSH7_DICDI shuffled
+   321 pos.     44 -    87 swiss|P18196|MINC_ECOLI shuffled
+   321 pos.     34 -    86 swiss|P31769|YORB_HAEIN shuffled
+   321 pos.      1 -    18 swiss|P17622|RIBT_BACSU shuffled
+   321 pos.      1 -    15 swiss|Q02458|URER_PROMI shuffled
+   320 pos.    998 -  1043 swiss|P36594|RPB1_SCHPO shuffled
+   320 pos.    572 -   613 swiss|P15073|ENV_MCFF shuffled
+   320 pos.    303 -   343 swiss|P30000|CSCB_ECOLI shuffled
+   320 pos.    243 -   257 swiss|P10425|BLA2_BACSP shuffled
+   320 pos.    237 -   269 swiss|P32144|YIHW_ECOLI shuffled
+   320 pos.     83 -   124 swiss|P25099|AA1R_RAT shuffled
+   320 pos.     76 -   113 swiss|P00093|CY2_RHOPH shuffled
+   320 pos.      1 -    19 swiss|P33789|TRY8_ECOLI shuffled
+   320 pos.      1 -    16 swiss|P00138|CYCP_ALCSP shuffled
+   320 pos.      1 -    14 swiss|P13125|DN7E_SULAC shuffled
+   319 pos.    699 -   723 swiss|P30336|CADA_BACFI shuffled
+   319 pos.    513 -   518 swiss|P21458|SP3E_BACSU shuffled
+   319 pos.    367 -   374 swiss|P30678|GB15_MOUSE shuffled
+   319 pos.    355 -   402 swiss|P10928|VG10_BPT4 shuffled
+   319 pos.    325 -   364 swiss|P24313|RBL_ECTSI shuffled
+   319 pos.    256 -   291 swiss|P29084|T2EB_HUMAN shuffled
+   319 pos.    188 -   233 swiss|P34226|SKT5_YEAST shuffled
+   319 pos.    182 -   195 swiss|P37290|IND1_HUMAN shuffled
+   319 pos.    115 -   151 swiss|P27649|HUPD_RHILV shuffled
+   319 pos.    107 -   150 swiss|P12815|CAP4_MOUSE shuffled
+   319 pos.     94 -   133 swiss|P00806|NAAA_BPT7 shuffled
+   319 pos.     65 -   109 swiss|P18173|DHGL_DROME shuffled
+   319 pos.     35 -    76 swiss|P12091|RPOB_ORYSA shuffled
+   319 pos.      1 -    29 swiss|P35068|H2B1_TIGCA shuffled
+   319 pos.      1 -    18 swiss|P03454|HEMA_IAWIL shuffled
+   318 pos.    759 -   803 swiss|P20126|POLR_EPMV shuffled
+   318 pos.    448 -   495 swiss|Q06561|UN52_CAEEL shuffled
+   318 pos.    434 -   466 swiss|P16203|NRAM_INBSI shuffled
+   318 pos.    255 -   298 swiss|P04883|VGLG_VSVIG shuffled
+   318 pos.    111 -   121 swiss|P13148|VNS2_IAPI0 shuffled
+   317 pos.   2259 -  2304 swiss|P03305|POLG_FMDVO shuffled
+   317 pos.    763 -   779 swiss|P26685|RIR1_ASFM2 shuffled
+   317 pos.    457 -   490 swiss|P22687|CETP_RABIT shuffled
+   317 pos.    289 -   336 swiss|P16141|CP5D_CANMA shuffled
+   317 pos.    265 -   279 swiss|P19368|TYSY_LACLA shuffled
+   317 pos.    252 -   259 swiss|P04639|APA1_RAT shuffled
+   317 pos.    186 -   193 swiss|P15577|NU2M_PARTE shuffled
+   317 pos.    176 -   216 swiss|P35973|VGLF_MEASA shuffled
+   317 pos.    165 -   199 swiss|P27764|NHAA_PSECL shuffled
+   317 pos.    159 -   195 swiss|P13466|GELA_DICDI shuffled
+   317 pos.    151 -   193 swiss|P18471|TRAU_ECOLI shuffled
+   317 pos.     74 -   108 swiss|P33662|YORX_CLOAB shuffled
+   317 pos.     57 -    70 swiss|P31861|DP3B_RHOCA shuffled
+   317 pos.     54 -    88 swiss|Q05114|ADH_DROWI shuffled
+   317 pos.     35 -    78 swiss|P28049|LAB_XENLA shuffled
+   317 pos.      5 -    57 swiss|P33384|YORY_LISMO shuffled
+   317 pos.      1 -    54 swiss|P33969|BACR_HALHM shuffled
+   317 pos.      1 -    15 swiss|P31721|C1QB_RAT shuffled
+   317 pos.      1 -    15 swiss|P10163|PRP4_HUMAN shuffled
+   316 pos.    745 -   780 swiss|P10568|MYSH_BOVIN shuffled
+   316 pos.    594 -   605 swiss|P07153|RIB1_RAT shuffled
+   316 pos.    277 -   324 swiss|P33051|VI08_VARV shuffled
+   316 pos.    210 -   256 swiss|P37101|KPPR_SYNY3 shuffled
+   316 pos.    199 -   242 swiss|P15988|CA26_CHICK shuffled
+   316 pos.    124 -   162 swiss|P14692|KAF8_SORBI shuffled
+   316 pos.     72 -   111 swiss|P06808|VLYS_BPT4 shuffled
+   316 pos.     23 -    37 swiss|P16515|VG65_BPPH2 shuffled
+   316 pos.     13 -    63 swiss|P26328|VSI3_TRYBB shuffled
+   316 pos.     12 -    54 swiss|P08754|GBAK_HUMAN shuffled
+   316 pos.      6 -    49 swiss|P31327|CPSM_HUMAN shuffled
+   315 pos.    327 -   377 swiss|P35820|PSC_DROME shuffled
+   315 pos.    281 -   286 swiss|P02863|GDA0_WHEAT shuffled
+   315 pos.    215 -   229 swiss|Q04685|VP8_BTV13 shuffled
+   315 pos.      1 -    20 swiss|P20732|COGA_PARCM shuffled
+   314 pos.    675 -   688 swiss|P38338|YB9F_YEAST shuffled
+   314 pos.    510 -   517 swiss|P36852|HEX_ADE08 shuffled
+   314 pos.    336 -   363 swiss|P17731|HIS8_BACSU shuffled
+   314 pos.    297 -   337 swiss|P30723|DNAK_PORUM shuffled
+   314 pos.    244 -   279 swiss|P21328|RTJK_DROME shuffled
+   314 pos.    127 -   132 swiss|P05473|YKP7_KLULA shuffled
+   314 pos.     59 -   113 swiss|P28951|UL31_HSVEB shuffled
+   314 pos.      1 -    30 swiss|P36521|RM11_YEAST shuffled
+   314 pos.      1 -    30 swiss|P03744|VG37_BPT4 shuffled
+   314 pos.      1 -    13 swiss|P07104|FANA_ECOLI shuffled
+   313 pos.   1170 -  1213 swiss|P27314|RRPL_SEOU8 shuffled
+   313 pos.   1061 -  1103 swiss|P08266|RPB2_DROME shuffled
+   313 pos.    987 -  1023 swiss|Q06194|FA8_MOUSE shuffled
+   313 pos.    801 -   840 swiss|P12387|CO3_CAVPO shuffled
+   313 pos.    706 -   746 swiss|P17472|VGLB_HSVE4 shuffled
+   313 pos.    417 -   437 swiss|P38159|ROG_HUMAN shuffled
+   313 pos.    220 -   252 swiss|P05073|V29K_TRVSY shuffled
+   313 pos.    198 -   245 swiss|P29053|TF2B_RAT shuffled
+   313 pos.    186 -   198 swiss|P27174|YRG2_LACLA shuffled
+   313 pos.    106 -   141 swiss|P01950|HBA_SUNMU shuffled
+   313 pos.     88 -   134 swiss|P29821|VS09_ROTCC shuffled
+   313 pos.     76 -   121 swiss|P35401|CRAC_DICDI shuffled
+   313 pos.     20 -    29 swiss|P31540|HS98_NEUCR shuffled
+   313 pos.      1 -    17 swiss|P05922|VPU_HV1PV shuffled
+   312 pos.   1035 -  1078 swiss|P22432|VGL2_CVM4 shuffled
+   312 pos.    550 -   597 swiss|P20585|DUG_HUMAN shuffled
+   312 pos.    261 -   308 swiss|P18139|PP65_HCMVT shuffled
+   312 pos.    213 -   268 swiss|P25414|RBL_AEGSQ shuffled
+   312 pos.    140 -   176 swiss|P24505|SY61_DISOM shuffled
+   312 pos.    102 -   122 swiss|P01361|ELHL_APLCA shuffled
+   312 pos.      1 -    15 swiss|P01166|SMS1_HUMAN shuffled
+   312 pos.      1 -    13 swiss|P17218|TRPF_LACCA shuffled
+   311 pos.   1294 -  1314 swiss|P25390|KCW3_YEAST shuffled
+   311 pos.    618 -   658 swiss|P33453|RRPL_UUK shuffled
+   311 pos.    609 -   660 swiss|P00452|RIR1_ECOLI shuffled
+   311 pos.    286 -   327 swiss|P22136|ATPU_YEAST shuffled
+   311 pos.    244 -   261 swiss|P28078|RNG6_MOUSE shuffled
+   311 pos.    196 -   235 swiss|P06441|POLG_HPAVL shuffled
+   311 pos.    193 -   237 swiss|P06869|UROK_MOUSE shuffled
+   311 pos.    121 -   149 swiss|P14533|CABO_LOLPE shuffled
+   311 pos.     74 -   118 swiss|P30066|RL16_EPIVI shuffled
+   311 pos.     13 -    48 swiss|P10050|NCAP_MEASH shuffled
+   311 pos.      1 -    14 swiss|P13713|FLIC_SERMA shuffled
+   310 pos.   1883 -  1922 swiss|P32600|TOR2_YEAST shuffled
+   310 pos.    302 -   342 swiss|Q02775|SLU7_YEAST shuffled
+   310 pos.    207 -   233 swiss|P13827|MSAP_PLAFD shuffled
+   310 pos.    166 -   207 swiss|P04712|SUS1_MAIZE shuffled
+   310 pos.    128 -   193 swiss|P37617|YHHO_ECOLI shuffled
+   310 pos.    127 -   149 swiss|P06427|VE6_HPV33 shuffled
+   310 pos.    119 -   136 swiss|P11315|E314_ADE03 shuffled
+   310 pos.     37 -    56 swiss|P05585|IOVO_BONUM shuffled
+   310 pos.      1 -    28 swiss|P25842|SODC_HAEPA shuffled
+   310 pos.      1 -    13 swiss|P27471|NK13_RAT shuffled
+   310 pos.      1 -     8 swiss|P32452|PHA2_YEAST shuffled
+   310 pos.      1 -     8 swiss|P28285|5HTA_DROME shuffled
+   309 pos.   2587 -  2633 swiss|Q01499|POLG_BVDVS shuffled
+   309 pos.    863 -   905 swiss|P09619|PGDR_HUMAN shuffled
+   309 pos.    703 -   745 swiss|P31554|YABG_ECOLI shuffled
+   309 pos.    564 -   605 swiss|P32833|ORC2_YEAST shuffled
+   309 pos.    540 -   579 swiss|P34930|HS71_PIG shuffled
+   309 pos.    202 -   238 swiss|P14346|UL52_HSVSA shuffled
+   309 pos.    182 -   189 swiss|P11322|E321_ADE03 shuffled
+   309 pos.    117 -   158 swiss|P13843|VGLF_HRSV1 shuffled
+   309 pos.      1 -    37 swiss|P06334|TCC3_MOUSE shuffled
+   309 pos.      1 -    13 swiss|P35647|HAG1_EIKCO shuffled
+   308 pos.   1754 -  1789 swiss|P04114|APB_HUMAN shuffled
+   308 pos.    604 -   654 swiss|P06694|TRA3_ECOLI shuffled
+   308 pos.    393 -   449 swiss|Q02111|KPCT_MOUSE shuffled
+   308 pos.    359 -   398 swiss|P18884|RRP3_IAKIE shuffled
+   308 pos.    281 -   326 swiss|P08810|ENV_SIVM2 shuffled
+   308 pos.    219 -   258 swiss|P12977|EBN3_EBV shuffled
+   308 pos.    199 -   221 swiss|P15959|NU6M_PODAN shuffled
+   308 pos.    138 -   175 swiss|P12722|VGL2_IBVD2 shuffled
+   308 pos.     93 -   136 swiss|P36349|VNS1_IACKB shuffled
+   308 pos.     48 -    68 swiss|P31279|VGC_BPAL3 shuffled
+   308 pos.      1 -    15 swiss|P11801|KPSH_HUMAN shuffled
+   307 pos.    669 -   703 swiss|P12861|HS83_TRYBB shuffled
+   307 pos.    606 -   651 swiss|P32558|CC68_YEAST shuffled
+   307 pos.    496 -   516 swiss|P04347|GLC5_SOYBN shuffled
+   307 pos.    416 -   458 swiss|P30129|COAT_PAVC2 shuffled
+   307 pos.    387 -   413 swiss|P19926|AGP_ECOLI shuffled
+   307 pos.    286 -   352 swiss|P36146|YK43_YEAST shuffled
+   307 pos.    199 -   237 swiss|P25301|RA57_YEAST shuffled
+   307 pos.     80 -   116 swiss|P28653|PGS1_MOUSE shuffled
+   307 pos.     74 -   110 swiss|Q04211|TS21_MOUSE shuffled
+   307 pos.     44 -    98 swiss|P08316|TP1_SHEEP shuffled
+   307 pos.     18 -    98 swiss|P19927|MBHL_ECOLI shuffled
+   307 pos.      1 -    10 swiss|P33723|YPT1_NEUCR shuffled
+   306 pos.    490 -   544 swiss|P33341|YEHB_ECOLI shuffled
+   306 pos.    381 -   394 swiss|Q06060|MAPK_PEA shuffled
+   306 pos.    181 -   186 swiss|Q02175|CPEZ_SYNPY shuffled
+   306 pos.    121 -   141 swiss|P07408|HBA_SQUAC shuffled
+   306 pos.    108 -   123 swiss|P00870|RBS_SPIOL shuffled
+   306 pos.     98 -   124 swiss|P34386|YLS1_CAEEL shuffled
+   306 pos.     78 -   114 swiss|P25537|CAFA_ECOLI shuffled
+   306 pos.     28 -    66 swiss|P12854|ADH1_DRONA shuffled
+   305 pos.    657 -   696 swiss|Q03497|ST20_YEAST shuffled
+   305 pos.    563 -   584 swiss|P25472|GUND_CLOCE shuffled
+   305 pos.    550 -   589 swiss|P09299|UL09_VZVD shuffled
+   305 pos.    353 -   396 swiss|P15907|CAG1_HUMAN shuffled
+   305 pos.    332 -   371 swiss|P00525|KSRC_AVISR shuffled
+   305 pos.    317 -   338 swiss|P19454|KC22_YEAST shuffled
+   305 pos.    279 -   318 swiss|P17666|CPCE_RABIT shuffled
+   305 pos.    170 -   215 swiss|P05459|PDXB_ECOLI shuffled
+   305 pos.     99 -   134 swiss|P10352|ACP1_BRANA shuffled
+   305 pos.     61 -   111 swiss|P18957|UVP1_ECOLI shuffled
+   305 pos.     53 -   104 swiss|P05982|DHQU_RAT shuffled
+   305 pos.     50 -    91 swiss|P04444|HBBZ_MOUSE shuffled
+   305 pos.      1 -    29 swiss|P21358|RMAR_CANGA shuffled
+   304 pos.    208 -   231 swiss|P33936|YOJB_ECOLI shuffled
+   304 pos.    178 -   202 swiss|P19253|RL13_MOUSE shuffled
+   304 pos.    148 -   193 swiss|P11222|VME1_IBVB2 shuffled
+   304 pos.    138 -   149 swiss|P18382|VK07_VACCV shuffled
+   304 pos.     10 -    30 swiss|P20837|VTTA_BPT3 shuffled
+   304 pos.      1 -    24 swiss|P07993|COAT_PEMV shuffled
+   304 pos.      1 -    17 swiss|P33831|SPI3_VARV shuffled
+   304 pos.      1 -    15 swiss|P07232|LYC_PREEN shuffled
+   304 pos.      1 -    12 swiss|P02490|CRAA_RAT shuffled
+   303 pos.    423 -   460 swiss|P06800|CD45_MOUSE shuffled
+   303 pos.    338 -   378 swiss|P34644|YOQ6_CAEEL shuffled
+   303 pos.    287 -   325 swiss|P25190|VGL2_CVBF shuffled
+   303 pos.    241 -   277 swiss|P23475|KU70_MOUSE shuffled
+   303 pos.    232 -   243 swiss|P31605|YCP1_CYAPA shuffled
+   303 pos.    230 -   283 swiss|P20484|MK11_YEAST shuffled
+   303 pos.    200 -   223 swiss|Q03664|ARP3_TOBAC shuffled
+   303 pos.    116 -   162 swiss|Q06610|RBCR_THIFE shuffled
+   303 pos.      4 -    44 swiss|Q03158|NUCE_STRPN shuffled
+   303 pos.      1 -    10 swiss|P24859|SC14_KLULA shuffled
+   303 pos.      1 -     8 swiss|P00420|COX3_YEAST shuffled
+   302 pos.   1037 -  1068 swiss|P12221|YCF0_MARPO shuffled
+   302 pos.   1002 -  1046 swiss|P14771|SC25_YEAST shuffled
+   302 pos.    531 -   571 swiss|P21131|TACY_STRPY shuffled
+   302 pos.    530 -   560 swiss|P36002|KKT8_YEAST shuffled
+   302 pos.    427 -   455 swiss|P22604|RRB1_MOUSE shuffled
+   302 pos.    314 -   353 swiss|P04900|GB01_RAT shuffled
+   302 pos.    209 -   260 swiss|Q00866|MATK_PINTH shuffled
+   302 pos.    113 -   205 swiss|P11284|GAG_MMTVC shuffled
+   302 pos.      1 -    26 swiss|P31727|CYTA_SARPE shuffled
+   302 pos.      1 -    13 swiss|P22106|ASNB_ECOLI shuffled
+   302 pos.      1 -    11 swiss|P38617|YDP1_SULAC shuffled
+   302 pos.      1 -    11 swiss|P38051|YFBA_ECOLI shuffled
+   301 pos.    574 -   625 swiss|P20103|NISB_LACLA shuffled
+   301 pos.    547 -   585 swiss|P38289|YB13_YEAST shuffled
+   301 pos.    455 -   469 swiss|P06713|NTRC_ECOLI shuffled
+   301 pos.    385 -   430 swiss|P13382|DPOA_YEAST shuffled
+   301 pos.    367 -   375 swiss|P04809|HS83_DROPS shuffled
+   301 pos.    314 -   344 swiss|P38115|YBZ9_YEAST shuffled
+   301 pos.    274 -   298 swiss|P28811|MMSB_PSEAE shuffled
+   301 pos.    256 -   277 swiss|Q04699|MALD_STRPN shuffled
+   301 pos.    234 -   310 swiss|P34028|DNAA_SPICI shuffled
+   301 pos.    209 -   263 swiss|P16263|ODO2_BACSU shuffled
+   301 pos.    156 -   204 swiss|P19559|GAG_BIV27 shuffled
+   301 pos.    122 -   129 swiss|P03562|VAL2_TGMV shuffled
+   301 pos.    113 -   146 swiss|P24292|HBB_ECHTE shuffled
+   301 pos.     78 -    89 swiss|P14069|CLCY_MOUSE shuffled
+   301 pos.     20 -    56 swiss|P16330|CN37_MOUSE shuffled
+   301 pos.      1 -    15 swiss|P30854|EVGA_ECOLI shuffled
+   300 pos.    658 -   694 swiss|P32886|POLG_JAEVJ shuffled
+   300 pos.    580 -   624 swiss|Q01365|POL2_BAYMG shuffled
+   300 pos.    302 -   310 swiss|Q00716|HEMA_RACVI shuffled
+   300 pos.    229 -   273 swiss|P21909|EDD_ZYMMO shuffled
+   300 pos.    211 -   224 swiss|P15329|GUNX_CLOTM shuffled
+   300 pos.    182 -   200 swiss|P28148|TF22_ARATH shuffled
+   300 pos.    162 -   203 swiss|P02353|RS3_MYCCA shuffled
+   300 pos.    119 -   141 swiss|P03167|X_WHV1 shuffled
+   300 pos.    116 -   141 swiss|P01924|HBA_PREEN shuffled
+   300 pos.    103 -   142 swiss|P22796|HRL2_LACMU shuffled
+   300 pos.     93 -   147 swiss|P10168|IL7_MOUSE shuffled
+   300 pos.     56 -    90 swiss|P22376|YPA3_ASCIM shuffled
+   300 pos.     34 -    71 swiss|P05088|PHAE_PHAVU shuffled
+   300 pos.     17 -    66 swiss|P09003|MI25_TOBAC shuffled
+   300 pos.      1 -    18 swiss|P17160|RP5M_AZOVI shuffled
+   300 pos.      1 -    16 swiss|P18109|INS_DIDMA shuffled
+   300 pos.      1 -     9 swiss|P28762|SODM_EPTST shuffled
+   299 pos.   3415 -  3432 swiss|P32886|POLG_JAEVJ shuffled
+   299 pos.   3024 -  3059 swiss|P12823|POLG_DEN2P shuffled
+   299 pos.    654 -   693 swiss|P06701|SIR3_YEAST shuffled
+   299 pos.    401 -   409 swiss|P13452|TODA_PSEPU shuffled
+   299 pos.    362 -   374 swiss|P07331|KMOS_MSVMH shuffled
+   299 pos.    190 -   225 swiss|P08403|AROM_ECOLI shuffled
+   299 pos.    163 -   183 swiss|P26394|RFBC_SALTY shuffled
+   299 pos.    153 -   191 swiss|P36210|R12A_ARATH shuffled
+   299 pos.    131 -   181 swiss|P31425|PAL1_SOLTU shuffled
+   299 pos.    101 -   141 swiss|P29882|UL07_EBV shuffled
+   299 pos.     98 -   141 swiss|P01934|HBA3_GORGO shuffled
+   299 pos.     32 -    84 swiss|P18947|VIT4_CAEEL shuffled
+   299 pos.     26 -    78 swiss|P10662|RT01_YEAST shuffled
+   299 pos.      4 -    45 swiss|Q00020|V1A_BBMV shuffled
+   299 pos.      1 -    22 swiss|P23619|HLYX_ACTPL shuffled
+   299 pos.      1 -    11 swiss|P30195|EPIB_STAEP shuffled
+   298 pos.   2193 -  2243 swiss|P29991|POLG_DEN27 shuffled
+   298 pos.   1467 -  1482 swiss|Q01097|NME2_MOUSE shuffled
+   298 pos.   1161 -  1207 swiss|P13887|POLN_RRVN shuffled
+   298 pos.    476 -   511 swiss|P29981|CP4C_BLADI shuffled
+   298 pos.    445 -   483 swiss|P20301|APRN_ENTHI shuffled
+   298 pos.    205 -   240 swiss|P34298|YKQ3_CAEEL shuffled
+   298 pos.    197 -   232 swiss|P09070|HXB4_XENLA shuffled
+   298 pos.    186 -   210 swiss|P03936|YAC9_MAIZE shuffled
+   298 pos.    155 -   201 swiss|P17548|BPHD_PSES1 shuffled
+   298 pos.      1 -    42 swiss|P03628|VG71_BPPF3 shuffled
+   298 pos.      1 -    30 swiss|P33185|RIPB_BRYDI shuffled
+   298 pos.      1 -    13 swiss|P30221|HS11_LYCES shuffled
+   297 pos.    734 -   776 swiss|P26675|SOS_DROME shuffled
+   297 pos.    562 -   568 swiss|P14252|RRPP_SENDF shuffled
+   297 pos.    483 -   496 swiss|P28568|GTR3_CHICK shuffled
+   297 pos.    421 -   438 swiss|P23085|HVC2_HETFR shuffled
+   297 pos.    377 -   405 swiss|P31572|CAIB_ECOLI shuffled
+   297 pos.    150 -   198 swiss|P23256|MALY_ECOLI shuffled
+   297 pos.    138 -   165 swiss|P16048|GCSH_PEA shuffled
+   297 pos.    123 -   162 swiss|P21068|VA49_VACCC shuffled
+   297 pos.     81 -   102 swiss|P36822|VE7_HPV19 shuffled
+   297 pos.     71 -    90 swiss|P04315|YVDG_VACCV shuffled
+   297 pos.     40 -    80 swiss|P32285|YDX1_BPT4 shuffled
+   297 pos.      6 -    57 swiss|P14198|AAC4_DICDI shuffled
+   297 pos.      1 -    23 swiss|P80078|GLMS_CLOCO shuffled
+   297 pos.      1 -    17 swiss|P29733|PYG3_MASLA shuffled
+   297 pos.      1 -    15 swiss|P29827|CINA_STRGV shuffled
+   296 pos.    626 -   640 swiss|P32801|ELM1_YEAST shuffled
+   296 pos.    584 -   626 swiss|P19821|DPO1_THEAQ shuffled
+   296 pos.    569 -   574 swiss|P11209|VGLF_HRSVR shuffled
+   296 pos.    308 -   350 swiss|Q06278|XDH_HUMAN shuffled
+   296 pos.    251 -   294 swiss|P16425|Y2R2_DROME shuffled
+   296 pos.    190 -   232 swiss|P05087|PHAL_PHAVU shuffled
+   296 pos.      1 -    22 swiss|P03012|TNP1_ECOLI shuffled
+   295 pos.   1216 -  1258 swiss|P12866|STE6_YEAST shuffled
+   295 pos.   1030 -  1057 swiss|P18910|ANPA_RAT shuffled
+   295 pos.    863 -   907 swiss|P35917|FLT4_MOUSE shuffled
+   295 pos.    695 -   705 swiss|P27028|PPCE_FLAME shuffled
+   295 pos.    414 -   425 swiss|Q03613|YN84_CAEEL shuffled
+   295 pos.    383 -   404 swiss|P15698|NANH_CLOSO shuffled
+   295 pos.    331 -   341 swiss|P33915|YEJE_ECOLI shuffled
+   295 pos.    271 -   310 swiss|P07717|DNLI_BPT3 shuffled
+   295 pos.    237 -   264 swiss|P13059|RCII_BPP4 shuffled
+   295 pos.    212 -   233 swiss|P14066|CBS1_YEAST shuffled
+   295 pos.    211 -   256 swiss|P37565|YRD4_BACSU shuffled
+   295 pos.    100 -   129 swiss|P04648|RS22_YEAST shuffled
+   295 pos.     75 -   118 swiss|P23338|GPT_CRILO shuffled
+   295 pos.     59 -   108 swiss|Q00126|VG02_HSVI1 shuffled
+   295 pos.      9 -    45 swiss|P37321|BLE1_PSEAE shuffled
+   295 pos.      1 -    10 swiss|P16328|FLID_SALTY shuffled
+   294 pos.    610 -   615 swiss|P27736|UGST_WHEAT shuffled
+   294 pos.    320 -   359 swiss|P37474|MFD_BACSU shuffled
+   294 pos.    297 -   319 swiss|P04194|DCHS_CLOPE shuffled
+   294 pos.    258 -   264 swiss|P32199|LPXA_RICRI shuffled
+   294 pos.    213 -   226 swiss|P37884|PRL_MESAU shuffled
+   294 pos.    182 -   197 swiss|Q05229|VG23_BPML5 shuffled
+   294 pos.    174 -   209 swiss|P33096|PRL_ANGAN shuffled
+   294 pos.    154 -   201 swiss|P26055|VNUC_IADMA shuffled
+   294 pos.     81 -   123 swiss|P35188|STS1_YEAST shuffled
+   294 pos.     52 -   101 swiss|P10607|SOMA_ONCKI shuffled
+   294 pos.      1 -    22 swiss|P05579|IOVO_CIRAE shuffled
+   294 pos.      1 -    13 swiss|P06341|HB2A_RAT shuffled
+   294 pos.      1 -     8 swiss|P00823|ATPA_TOBAC shuffled
+   293 pos.   2007 -  2052 swiss|P03303|POLG_HRV14 shuffled
+   293 pos.   1410 -  1451 swiss|P02549|SPCA_HUMAN shuffled
+   293 pos.   1013 -  1054 swiss|P25172|SUZ2_DROME shuffled
+   293 pos.    530 -   553 swiss|P07961|MCRA_METVA shuffled
+   293 pos.    456 -   498 swiss|P00825|ATPB_SPIOL shuffled
+   293 pos.    437 -   482 swiss|P34243|YKB7_YEAST shuffled
+   293 pos.    307 -   347 swiss|P34544|YNCA_CAEEL shuffled
+   293 pos.    219 -   254 swiss|P23248|RS3B_YEAST shuffled
+   293 pos.    212 -   222 swiss|P31853|ATPX_SPIOL shuffled
+   293 pos.    150 -   196 swiss|P10869|AK_YEAST shuffled
+   293 pos.    109 -   138 swiss|P23929|OSMC_ECOLI shuffled
+   293 pos.     12 -    53 swiss|P19201|YOR2_COYMV shuffled
+   293 pos.      1 -    12 swiss|P23934|NUMM_BOVIN shuffled
+   293 pos.      1 -    11 swiss|P21003|VB07_VACCV shuffled
+   293 pos.      1 -    11 swiss|P19914|DCMM_PSECF shuffled
+   293 pos.      1 -     7 swiss|P31890|FAF2_ASCSU shuffled
+   292 pos.    978 -   994 swiss|P35524|CIC1_RAT shuffled
+   292 pos.    761 -   776 swiss|Q02945|VP4_ROTEH shuffled
+   292 pos.    714 -   756 swiss|P15989|CA36_CHICK shuffled
+   292 pos.    314 -   359 swiss|P33420|NI80_YEAST shuffled
+   292 pos.    251 -   272 swiss|P25047|DNRI_STRPE shuffled
+   292 pos.    131 -   182 swiss|P37268|FDFT_HUMAN shuffled
+   292 pos.     60 -   100 swiss|P33298|TBP2_YEAST shuffled
+   292 pos.      1 -    25 swiss|P06112|PHAA_SYNP6 shuffled
+   292 pos.      1 -    20 swiss|P25736|END1_ECOLI shuffled
+   292 pos.      1 -    14 swiss|P16326|FLGL_SALTY shuffled
+   291 pos.    739 -   746 swiss|Q04657|CATA_MYCIT shuffled
+   291 pos.    604 -   626 swiss|P15279|DHM1_METOR shuffled
+   291 pos.    492 -   498 swiss|P15664|VNUC_IADNZ shuffled
+   291 pos.    422 -   463 swiss|P35220|CTNA_DROME shuffled
+   291 pos.    320 -   330 swiss|P10518|HEM2_MOUSE shuffled
+   291 pos.    243 -   286 swiss|P31407|VAT1_BOVIN shuffled
+   291 pos.    126 -   168 swiss|P34041|HIS7_TRIHA shuffled
+   291 pos.    116 -   151 swiss|P02277|H2A3_WHEAT shuffled
+   291 pos.     87 -   129 swiss|P20671|H2A3_MOUSE shuffled
+   291 pos.      1 -    38 swiss|Q01818|VMT1_RAT shuffled
+   291 pos.      1 -    29 swiss|P08748|COX2_PARPR shuffled
+   290 pos.   3678 -  3717 swiss|P36022|DYHC_YEAST shuffled
+   290 pos.   3020 -  3061 swiss|Q02963|POLG_PVYHU shuffled
+   290 pos.    634 -   675 swiss|P25611|YCZ6_YEAST shuffled
+   290 pos.    388 -   412 swiss|P37144|DHON_METGL shuffled
+   290 pos.    281 -   329 swiss|P13915|CVCA_PEA shuffled
+   290 pos.    260 -   295 swiss|P17712|HXKP_RAT shuffled
+   290 pos.    230 -   281 swiss|Q02897|GLUC_ORYSA shuffled
+   290 pos.    114 -   133 swiss|Q04745|IL4_PIG shuffled
+   290 pos.    106 -   156 swiss|P06250|PETD_MARPO shuffled
+   290 pos.     92 -    98 swiss|P00819|ACYM_PIG shuffled
+   290 pos.     59 -   115 swiss|P12611|WHI2_YEAST shuffled
+   290 pos.     48 -    95 swiss|P06220|LACI_KLEPN shuffled
+   290 pos.     29 -    94 swiss|P36164|YK68_YEAST shuffled
+   290 pos.     17 -    52 swiss|Q04353|YHSB_CLOAB shuffled
+   290 pos.      1 -    40 swiss|P33399|LAH1_YEAST shuffled
+   290 pos.      1 -    25 swiss|P17877|GUN1_CLOJO shuffled
+   290 pos.      1 -    10 swiss|Q06461|SECA_ANTSP shuffled
+   289 pos.    604 -   634 swiss|P17372|VC09_VACCV shuffled
+   289 pos.    486 -   543 swiss|P14099|CNAG_BOVIN shuffled
+   289 pos.    326 -   374 swiss|P35169|TOR1_YEAST shuffled
+   289 pos.    293 -   320 swiss|P28643|FABG_CUPLA shuffled
+   289 pos.    263 -   299 swiss|P34975|OPRK_RAT shuffled
+   289 pos.    165 -   211 swiss|P30858|ARTP_ECOLI shuffled
+   289 pos.    135 -   178 swiss|P16393|HMDH_STRPU shuffled
+   289 pos.     94 -   141 swiss|P11533|DMD_CHICK shuffled
+   289 pos.     43 -    88 swiss|P23087|HVCS_HETFR shuffled
+   289 pos.      1 -    17 swiss|P03902|NULM_BOVIN shuffled
+   289 pos.      1 -    10 swiss|P34991|URA8_HUMAN shuffled
+   289 pos.      1 -    10 swiss|P27531|YP46_RTBV shuffled
+   288 pos.   1038 -  1045 swiss|P09489|PRTS_SERMA shuffled
+   288 pos.    969 -   999 swiss|P18596|ATCF_RAT shuffled
+   288 pos.    710 -   749 swiss|P15001|PHYA_PEA shuffled
+   288 pos.    566 -   602 swiss|P30730|LSHR_MOUSE shuffled
+   288 pos.    529 -   552 swiss|P34135|HMD1_DICDI shuffled
+   288 pos.    472 -   511 swiss|P26238|CHLB_MARPO shuffled
+   288 pos.    441 -   486 swiss|P06272|RPOB_MARPO shuffled
+   288 pos.    382 -   430 swiss|P18594|VID4_AGRT5 shuffled
+   288 pos.    355 -   381 swiss|P38405|GBAF_HUMAN shuffled
+   288 pos.    270 -   332 swiss|P11426|ACT_ENTHI shuffled
+   288 pos.    253 -   301 swiss|P17177|CP27_RABIT shuffled
+   288 pos.    222 -   244 swiss|P13956|MLSB_BACSU shuffled
+   288 pos.    214 -   260 swiss|P24412|VME1_CVPRM shuffled
+   288 pos.    198 -   237 swiss|P26208|BGLA_CLOTM shuffled
+   288 pos.    192 -   239 swiss|P09034|ASSY_RAT shuffled
+   288 pos.    162 -   205 swiss|P24801|ANX2_XENLA shuffled
+   288 pos.    159 -   204 swiss|P38544|RAN_ONCVO shuffled
+   288 pos.    148 -   191 swiss|P11618|VNS1_IACHI shuffled
+   288 pos.    142 -   146 swiss|Q00676|LUQ1_APLCA shuffled
+   288 pos.    128 -   137 swiss|P15580|NU3M_PODAN shuffled
+   288 pos.     97 -   140 swiss|P08881|S3AD_KLEPN shuffled
+   288 pos.      1 -    33 swiss|P29874|COX2_GALME shuffled
+   288 pos.      1 -    29 swiss|P32217|VC18_SFVKA shuffled
+   288 pos.      1 -    19 swiss|Q07465|RNI_AERHY shuffled
+   288 pos.      1 -    12 swiss|P36207|RS16_GINBI shuffled
+   287 pos.   2145 -  2157 swiss|P12916|POLG_HRV1B shuffled
+   287 pos.   1582 -  1617 swiss|P35194|YBA4_YEAST shuffled
+   287 pos.    731 -   737 swiss|P21604|VE02_VACCV shuffled
+   287 pos.    543 -   582 swiss|P22983|PODK_BACSY shuffled
+   287 pos.    489 -   540 swiss|P10666|KS6B_XENLA shuffled
+   287 pos.    488 -   527 swiss|P22622|AMA1_PLAFR shuffled
+   287 pos.    365 -   402 swiss|P32951|CAR1_CANPA shuffled
+   287 pos.    333 -   345 swiss|P34973|D2D2_XENLA shuffled
+   287 pos.    298 -   346 swiss|P29598|UROK_RAT shuffled
+   287 pos.    288 -   304 swiss|P12843|IBP2_RAT shuffled
+   287 pos.    236 -   260 swiss|P27771|PROC_TREPA shuffled
+   287 pos.    229 -   268 swiss|P21747|EA92_VICFA shuffled
+   287 pos.    193 -   238 swiss|P33342|YEHC_ECOLI shuffled
+   287 pos.    185 -   231 swiss|P26198|ACTM_STYCL shuffled
+   287 pos.    140 -   184 swiss|P26370|UGA3_YEAST shuffled
+   287 pos.    137 -   176 swiss|P03582|MOVP_TMVOM shuffled
+   287 pos.     81 -   118 swiss|P26449|BUB3_YEAST shuffled
+   287 pos.     48 -    89 swiss|P21177|FADB_ECOLI shuffled
+   287 pos.      1 -    17 swiss|P35634|FLA2_BARBA shuffled
+   286 pos.    663 -   697 swiss|P28561|APCE_AGLNE shuffled
+   286 pos.    561 -   565 swiss|P17002|HEMA_IAHUR shuffled
+   286 pos.    340 -   392 swiss|P32896|PDC2_YEAST shuffled
+   286 pos.    319 -   365 swiss|Q00506|NU4M_PHOVI shuffled
+   286 pos.    230 -   259 swiss|P00922|CAH2_SHEEP shuffled
+   286 pos.    228 -   259 swiss|P00918|CAH2_HUMAN shuffled
+   286 pos.    224 -   241 swiss|P28066|PRCZ_HUMAN shuffled
+   286 pos.    201 -   233 swiss|P24405|SOML_ONCKE shuffled
+   286 pos.     45 -    74 swiss|P01378|NXL1_BUNMU shuffled
+   286 pos.      1 -    41 swiss|P33873|VF15_VARV shuffled
+   286 pos.      1 -    12 swiss|P00783|SUBT_BACSA shuffled
+   285 pos.   1081 -  1127 swiss|P09547|ADR6_YEAST shuffled
+   285 pos.    658 -   709 swiss|P07742|RIR1_MOUSE shuffled
+   285 pos.    587 -   624 swiss|P08987|GTFB_STRMU shuffled
+   285 pos.    495 -   507 swiss|P34158|CFTR_RAT shuffled
+   285 pos.    492 -   499 swiss|P14323|GLU4_ORYSA shuffled
+   285 pos.    488 -   498 swiss|P07381|VNUC_IAPAR shuffled
+   285 pos.    482 -   491 swiss|P30546|HH1R_BOVIN shuffled
+   285 pos.    440 -   485 swiss|P19227|P60_RAT shuffled
+   285 pos.    375 -   414 swiss|P16502|RRP1_IABEI shuffled
+   285 pos.    276 -   298 swiss|P22885|XERC_ECOLI shuffled
+   285 pos.    259 -   269 swiss|P29729|PECE_MASLA shuffled
+   285 pos.    197 -   237 swiss|P26196|P54_HUMAN shuffled
+   285 pos.    158 -   168 swiss|P12729|PSA_DICDI shuffled
+   285 pos.    153 -   199 swiss|P03107|VL2_HPV16 shuffled
+   285 pos.    105 -   144 swiss|P08978|RL2A_NEUCR shuffled
+   285 pos.     93 -   130 swiss|P38061|RL3P_YEAST shuffled
+   285 pos.     30 -    64 swiss|P07085|RL35_ECOLI shuffled
+   285 pos.      1 -    40 swiss|P10658|EPIP_RABIT shuffled
+   285 pos.      1 -    24 swiss|P22702|Y3KD_NEUCR shuffled
+   285 pos.      1 -    22 swiss|P19296|YORL_TTV1 shuffled
+   285 pos.      1 -    18 swiss|P19697|HEMA_IADNZ shuffled
+   285 pos.      1 -    17 swiss|P33787|TRM7_ECOLI shuffled
+   285 pos.      1 -    12 swiss|P18086|FLAV_DESSA shuffled
+   285 pos.      1 -    12 swiss|P07275|PUT2_YEAST shuffled
+   285 pos.      1 -     9 swiss|P22878|GLN2_STRHY shuffled
+   284 pos.   2277 -  2314 swiss|P23471|PTPZ_HUMAN shuffled
+   284 pos.   1184 -  1191 swiss|Q05481|ZN91_HUMAN shuffled
+   284 pos.    731 -   782 swiss|Q02440|MYSD_CHICK shuffled
+   284 pos.    569 -   576 swiss|P02879|RICI_RICCO shuffled
+   284 pos.    541 -   550 swiss|P12582|HEMA_IADH1 shuffled
+   284 pos.    498 -   507 swiss|P06283|ATPA_MARPO shuffled
+   284 pos.    488 -   533 swiss|Q06473|COX1_SYNY3 shuffled
+   284 pos.    384 -   412 swiss|P36008|EF1H_YEAST shuffled
+   284 pos.    298 -   306 swiss|P10424|BLA1_BACCE shuffled
+   284 pos.    276 -   298 swiss|P29823|LACF_AGRRD shuffled
+   284 pos.    245 -   274 swiss|P15194|CB2B_PINSY shuffled
+   284 pos.    180 -   191 swiss|P13087|MIRA_RICDU shuffled
+   284 pos.    104 -   143 swiss|P29755|AG2S_MOUSE shuffled
+   284 pos.     78 -   128 swiss|P07871|THI1_RAT shuffled
+   284 pos.     59 -    90 swiss|P03639|VGE_BPPHX shuffled
+   284 pos.     26 -    67 swiss|P20463|TRPE_LEPBI shuffled
+   283 pos.   1082 -  1088 swiss|P21615|RRPO_ROTBU shuffled
+   283 pos.    680 -   725 swiss|P09547|ADR6_YEAST shuffled
+   283 pos.    616 -   646 swiss|Q05133|VE1_HPV07 shuffled
+   283 pos.    275 -   309 swiss|P12155|PSAA_ORYSA shuffled
+   283 pos.    270 -   310 swiss|P15489|HS60_GIALA shuffled
+   283 pos.    200 -   240 swiss|P22044|RRPP_PI4HA shuffled
+   283 pos.    167 -   201 swiss|P38448|ALKH_ERWCH shuffled
+   283 pos.    141 -   183 swiss|P26095|HEMA_IAHC7 shuffled
+   283 pos.    117 -   134 swiss|P06322|TVA1_RABIT shuffled
+   283 pos.    106 -   148 swiss|P24452|MBH1_MOUSE shuffled
+   283 pos.     70 -    83 swiss|P04662|HEMA_IATRA shuffled
+   283 pos.     35 -    58 swiss|P13315|Y627_BPT4 shuffled
+   283 pos.     13 -    63 swiss|P19146|ARF2_YEAST shuffled
+   283 pos.      1 -    11 swiss|P13886|POLN_ONNVG shuffled
+   282 pos.   2852 -  2894 swiss|P29846|POLG_HCVTW shuffled
+   282 pos.   1702 -  1708 swiss|P09977|YCFX_TOBAC shuffled
+   282 pos.   1066 -  1105 swiss|P25648|YCX1_YEAST shuffled
+   282 pos.    598 -   657 swiss|P31636|NAAA_PIG shuffled
+   282 pos.    593 -   616 swiss|P17520|RRPO_PLRV1 shuffled
+   282 pos.    570 -   610 swiss|P15101|DOPO_BOVIN shuffled
+   282 pos.    548 -   586 swiss|P24786|TRKC_PIG shuffled
+   282 pos.    540 -   567 swiss|P33819|VE06_VARV shuffled
+   282 pos.    465 -   469 swiss|P03484|NRAM_IARI5 shuffled
+   282 pos.    313 -   359 swiss|P25834|RBL_RIVHU shuffled
+   282 pos.    288 -   330 swiss|Q04652|KELC_DROME shuffled
+   282 pos.    199 -   238 swiss|Q05741|TRXB_STRCL shuffled
+   282 pos.    170 -   209 swiss|P13017|AMPE_ECOLI shuffled
+   282 pos.    143 -   191 swiss|P27444|COAT_SLCV shuffled
+   282 pos.    139 -   144 swiss|Q01994|RISB_PHOLE shuffled
+   282 pos.    132 -   175 swiss|P09368|PUT1_YEAST shuffled
+   282 pos.     62 -   108 swiss|P34286|YKK9_CAEEL shuffled
+   282 pos.      1 -    50 swiss|P22009|PX18_CANTR shuffled
+   281 pos.    514 -   561 swiss|P09884|DPOA_HUMAN shuffled
+   281 pos.    466 -   502 swiss|P03233|UL25_EBV shuffled
+   281 pos.    222 -   248 swiss|P03218|VGL2_EBV shuffled
+   281 pos.    202 -   235 swiss|P32460|DCG1_YEAST shuffled
+   281 pos.    177 -   210 swiss|P03020|CRP_ECOLI shuffled
+   281 pos.    153 -   200 swiss|P14439|HA23_MOUSE shuffled
+   281 pos.    119 -   123 swiss|P28144|WN7B_SCEOC shuffled
+   281 pos.     96 -   104 swiss|P23082|NDOA_PSEPU shuffled
+   281 pos.     77 -   125 swiss|P03906|NU4M_PANTR shuffled
+   281 pos.     57 -   104 swiss|P03418|NCAP_HRSVA shuffled
+   281 pos.     33 -    43 swiss|P16485|Y5K_CYMV shuffled
+   281 pos.      8 -    40 swiss|P37674|YIAM_ECOLI shuffled
+   281 pos.      1 -    30 swiss|P03760|VRXA_LAMBD shuffled
+   281 pos.      1 -    21 swiss|P11000|WAPA_STRMU shuffled
+   280 pos.   1272 -  1313 swiss|P31635|RPB0_ARATH shuffled
+   280 pos.    711 -   754 swiss|Q99323|MYSN_DROME shuffled
+   280 pos.    346 -   387 swiss|P06407|PSAB_TOBAC shuffled
+   280 pos.    260 -   296 swiss|P19013|K2C4_HUMAN shuffled
+   280 pos.    247 -   269 swiss|Q07587|ADHR_DROLE shuffled
+   280 pos.    168 -   211 swiss|P31378|YA15_YEAST shuffled
+   280 pos.    156 -   165 swiss|P17079|RL12_YEAST shuffled
+   280 pos.    136 -   141 swiss|P36128|YK13_YEAST shuffled
+   280 pos.    124 -   159 swiss|P17449|VRP1_SALCH shuffled
+   280 pos.     92 -   132 swiss|P03563|VAL3_TGMV shuffled
+   280 pos.     64 -   106 swiss|P07351|INA4_MOUSE shuffled
+   280 pos.     63 -   102 swiss|P36814|VE6_HPV52 shuffled
+   280 pos.      1 -    19 swiss|P17629|HPR1_YEAST shuffled
+   280 pos.      1 -    14 swiss|P04205|MAST_VESMA shuffled
+   279 pos.    468 -   500 swiss|P06189|ARAA_SALTY shuffled
+   279 pos.    338 -   379 swiss|P27961|POLG_HCVJ7 shuffled
+   279 pos.    283 -   294 swiss|P13158|UNG_HSV23 shuffled
+   279 pos.    158 -   204 swiss|P22010|GR78_KLULA shuffled
+   279 pos.    132 -   174 swiss|P03995|GFAP_MOUSE shuffled
+   279 pos.     49 -   101 swiss|P11023|RB3A_BOVIN shuffled
+   279 pos.     23 -    58 swiss|P34440|YL82_CAEEL shuffled
+   279 pos.      1 -    31 swiss|P29791|VGLF_BRSVA shuffled
+   279 pos.      1 -    17 swiss|P26954|IL3B_MOUSE shuffled
+   279 pos.      1 -    11 swiss|P03891|NU2M_HUMAN shuffled
+   279 pos.      1 -    10 swiss|P28767|SODM_PETMA shuffled
+   278 pos.   2063 -  2108 swiss|P26582|POLG_HPAV8 shuffled
+   278 pos.   1336 -  1342 swiss|P06173|RPOB_SALTY shuffled
+   278 pos.    642 -   682 swiss|P34545|YNJ1_CAEEL shuffled
+   278 pos.    548 -   552 swiss|P27585|VNS1_EHDV2 shuffled
+   278 pos.    498 -   505 swiss|P30612|CP5J_CANTR shuffled
+   278 pos.    492 -   528 swiss|P21802|FGR2_HUMAN shuffled
+   278 pos.    407 -   430 swiss|P35531|SP47_SHIFL shuffled
+   278 pos.    381 -   402 swiss|Q07849|VE2_HPV04 shuffled
+   278 pos.    365 -   410 swiss|P04819|DNLI_YEAST shuffled
+   278 pos.    323 -   388 swiss|P36875|2AAA_PEA shuffled
+   278 pos.    264 -   303 swiss|P30140|THIH_ECOLI shuffled
+   278 pos.    248 -   256 swiss|P27268|VBR1_PYMVV shuffled
+   278 pos.    236 -   275 swiss|P11851|VS09_ROTHH shuffled
+   278 pos.    229 -   270 swiss|P32237|GRHR_SHEEP shuffled
+   278 pos.    196 -   254 swiss|P22025|NCAP_UUK shuffled
+   278 pos.    195 -   202 swiss|P08671|VMAT_RABVP shuffled
+   278 pos.    153 -   198 swiss|P13778|REP1_ZYGRO shuffled
+   278 pos.    153 -   192 swiss|P80316|TCPE_MOUSE shuffled
+   278 pos.    137 -   169 swiss|P34147|RACA_DICDI shuffled
+   278 pos.     85 -   108 swiss|P26155|RNPH_SALTY shuffled
+   278 pos.     80 -   121 swiss|P37532|YR81_BACSU shuffled
+   278 pos.     74 -   110 swiss|P24737|VIF_HV1U4 shuffled
+   278 pos.      1 -    31 swiss|P22214|SC22_YEAST shuffled
+   278 pos.      1 -     9 swiss|P23360|XYNA_THEAU shuffled
+   277 pos.   1910 -  1955 swiss|P11075|SEC7_YEAST shuffled
+   277 pos.   1751 -  1790 swiss|P13529|POLG_PPVD shuffled
+   277 pos.   1750 -  1781 swiss|P34431|YL51_CAEEL shuffled
+   277 pos.    490 -   526 swiss|P25179|VP5_BTV13 shuffled
+   277 pos.    453 -   503 swiss|P32901|PTR2_YEAST shuffled
+   277 pos.    435 -   477 swiss|P12541|TERM_ADE12 shuffled
+   277 pos.    363 -   399 swiss|P20082|PARC_ECOLI shuffled
+   277 pos.    362 -   379 swiss|P16847|UL28_HCMVA shuffled
+   277 pos.    329 -   373 swiss|P29098|RRPO_PPMVS shuffled
+   277 pos.    200 -   237 swiss|P12910|VMSA_WHV59 shuffled
+   277 pos.    116 -   135 swiss|P11105|H32_MEDSA shuffled
+   277 pos.    105 -   144 swiss|P15921|190K_RICRI shuffled
+   277 pos.     80 -   101 swiss|Q00244|NULC_PLEBO shuffled
+   277 pos.     61 -    87 swiss|P29907|YNQ1_PARDE shuffled
+   277 pos.     47 -    60 swiss|P16754|UL02_HCMVA shuffled
+   277 pos.     39 -   101 swiss|P12774|NU3M_PARLI shuffled
+   277 pos.      1 -    36 swiss|P33983|RP54_ACICA shuffled
+   277 pos.      1 -    21 swiss|P31233|CH10_PEA shuffled
+   277 pos.      1 -    15 swiss|P36100|T2EA_YEAST shuffled
+   277 pos.      1 -    15 swiss|P12179|YCF7_MARPO shuffled
+   277 pos.      1 -     8 swiss|Q02264|VE2_PCPV1 shuffled
+   276 pos.    746 -   781 swiss|P16730|UL87_HCMVA shuffled
+   276 pos.    633 -   655 swiss|P07975|HEMA_INCJH shuffled
+   276 pos.    598 -   640 swiss|P14090|GUNC_CELFI shuffled
+   276 pos.    539 -   586 swiss|P13060|EF2_DROME shuffled
+   276 pos.    523 -   569 swiss|P36724|VE1_HPV32 shuffled
+   276 pos.    423 -   441 swiss|P25781|CYSP_THEAN shuffled
+   276 pos.    369 -   422 swiss|P32497|NIP1_YEAST shuffled
+   276 pos.    361 -   401 swiss|P05181|CPE1_HUMAN shuffled
+   276 pos.    341 -   367 swiss|P16529|PEL1_ERWCA shuffled
+   276 pos.    194 -   223 swiss|P29087|YSO3_DESAM shuffled
+   276 pos.    104 -   148 swiss|P00517|KAPA_BOVIN shuffled
+   276 pos.     84 -   123 swiss|P21583|SCF_HUMAN shuffled
+   276 pos.     79 -   118 swiss|Q01442|SRP4_MYCMY shuffled
+   276 pos.     76 -    88 swiss|P26836|YNGE_CLOPE shuffled
+   276 pos.     57 -    95 swiss|P19759|HBE_GALCR shuffled
+   276 pos.     34 -    77 swiss|P28547|KC2A_THEPA shuffled
+   276 pos.      1 -    42 swiss|P38071|MRF1_YEAST shuffled
+   276 pos.      1 -    17 swiss|P02853|PHSB_PHAVU shuffled
+   276 pos.      1 -    11 swiss|P35075|CYB_COTJA shuffled
+   276 pos.      1 -    10 swiss|P08420|PYRB_SALTY shuffled
+   275 pos.    675 -   708 swiss|P05335|CAO4_CANMA shuffled
+   275 pos.    660 -   717 swiss|P24183|FDNG_ECOLI shuffled
+   275 pos.    615 -   638 swiss|P16519|NEC2_HUMAN shuffled
+   275 pos.    411 -   439 swiss|Q02354|YAD2_YEAST shuffled
+   275 pos.    366 -   408 swiss|P27565|RRPP_SEND5 shuffled
+   275 pos.    355 -   379 swiss|P00333|ADH1_MAIZE shuffled
+   275 pos.    333 -   367 swiss|P10827|THA2_HUMAN shuffled
+   275 pos.    293 -   337 swiss|P33906|DEAD_KLEPN shuffled
+   275 pos.    171 -   176 swiss|P08189|FIMF_ECOLI shuffled
+   275 pos.    169 -   223 swiss|P38623|RCK2_YEAST shuffled
+   275 pos.    158 -   204 swiss|P32383|PIP1_YEAST shuffled
+   275 pos.    142 -   172 swiss|P08214|ATPF_PEA shuffled
+   275 pos.    124 -   160 swiss|P13955|DYRA_STAAU shuffled
+   275 pos.    104 -   141 swiss|P27874|MAS1_AGRRA shuffled
+   275 pos.     60 -    99 swiss|P07650|DEOA_ECOLI shuffled
+   275 pos.     44 -    86 swiss|P32311|OPSG_CARAU shuffled
+   275 pos.     36 -    84 swiss|P35993|HX7P_XENLA shuffled
+   275 pos.     23 -    65 swiss|P36537|UDBA_HUMAN shuffled
+   275 pos.      1 -    29 swiss|P23255|TSM1_YEAST shuffled
+   275 pos.      1 -    15 swiss|P35807|AKH2_SCHNI shuffled
+   274 pos.   2002 -  2040 swiss|P27314|RRPL_SEOU8 shuffled
+   274 pos.   1645 -  1689 swiss|P25391|LMA1_HUMAN shuffled
+   274 pos.   1154 -  1191 swiss|P36328|POLN_EEVVP shuffled
+   274 pos.    912 -   960 swiss|P18874|ATN3_PIG shuffled
+   274 pos.    679 -   718 swiss|P15390|CINS_RAT shuffled
+   274 pos.    603 -   642 swiss|P07969|HEMA_INCYA shuffled
+   274 pos.    394 -   433 swiss|P19483|ATP0_BOVIN shuffled
+   274 pos.    295 -   331 swiss|P28795|PAS3_YEAST shuffled
+   274 pos.    291 -   328 swiss|P35561|IRK1_MOUSE shuffled
+   274 pos.    259 -   298 swiss|P07561|TCR_BACST shuffled
+   274 pos.    224 -   266 swiss|P09153|YCFA_ECOLI shuffled
+   274 pos.    190 -   224 swiss|Q02049|VE1_HPV25 shuffled
+   274 pos.    179 -   212 swiss|P09457|ATPO_YEAST shuffled
+   274 pos.    178 -   199 swiss|Q01931|DS22_CRAPL shuffled
+   274 pos.    176 -   219 swiss|P25181|VGLF_SV41 shuffled
+   274 pos.    156 -   167 swiss|Q01044|VG71_HSVSA shuffled
+   274 pos.    150 -   194 swiss|P06574|RPSB_BACSU shuffled
+   274 pos.    137 -   180 swiss|P18343|TPMY_RAT shuffled
+   274 pos.    122 -   176 swiss|P27135|RHAT_SALTY shuffled
+   274 pos.    118 -   165 swiss|P38110|YBI8_YEAST shuffled
+   274 pos.     74 -   118 swiss|P16893|TRAP_PLAFA shuffled
+   274 pos.     65 -   119 swiss|P37711|VANY_ENTFC shuffled
+   274 pos.     43 -    87 swiss|P27473|P44_PANTR shuffled
+   274 pos.     33 -    74 swiss|P22213|SLY1_YEAST shuffled
+   274 pos.      1 -    26 swiss|P32023|KGP3_DROME shuffled
+   274 pos.      1 -    17 swiss|P00276|THIO_BPT4 shuffled
+   274 pos.      1 -    16 swiss|Q02210|YMOR_PSEPU shuffled
+   274 pos.      1 -    13 swiss|P14959|RBL_OLILU shuffled
+   274 pos.      1 -    10 swiss|P24461|CPG1_RABIT shuffled
+   274 pos.      1 -     9 swiss|P26880|YPA1_LEGPN shuffled
+   274 pos.      1 -     8 swiss|P38289|YB13_YEAST shuffled
+   273 pos.    556 -   599 swiss|P03314|POLG_YEFV1 shuffled
+   273 pos.    482 -   500 swiss|P12495|GAG_HV1Z2 shuffled
+   273 pos.    478 -   517 swiss|P07575|ENV_MPMV shuffled
+   273 pos.    471 -   507 swiss|P38427|TSL1_YEAST shuffled
+   273 pos.    421 -   427 swiss|P00891|CISY_ECOLI shuffled
+   273 pos.    335 -   370 swiss|P20932|MDLB_PSEPU shuffled
+   273 pos.    320 -   361 swiss|P35397|ROR1_HUMAN shuffled
+   273 pos.    310 -   326 swiss|P28951|UL31_HSVEB shuffled
+   273 pos.    293 -   332 swiss|P37074|GUB_CLOTM shuffled
+   273 pos.    236 -   271 swiss|P19409|BAIB_EUBSP shuffled
+   273 pos.    225 -   243 swiss|Q05259|VG48_BPML5 shuffled
+   273 pos.    126 -   183 swiss|P20103|NISB_LACLA shuffled
+   273 pos.     80 -   134 swiss|P23464|YI11_HALHA shuffled
+   273 pos.     50 -   102 swiss|P00518|KPBG_RABIT shuffled
+   273 pos.     50 -    89 swiss|P80061|DPOL_PYRFU shuffled
+   273 pos.     40 -    84 swiss|P12945|NAT1_YEAST shuffled
+   273 pos.     21 -    66 swiss|Q01681|POLG_PPVEA shuffled
+   273 pos.     11 -    53 swiss|P12961|7B2_MOUSE shuffled
+   273 pos.      1 -    49 swiss|P14185|EXOX_RHISN shuffled
+   273 pos.      1 -    34 swiss|P13360|GLAS_DROME shuffled
+   273 pos.      1 -    20 swiss|P03640|VGE_BPG4 shuffled
+   273 pos.      1 -    12 swiss|Q08020|YMI1_SALTY shuffled
+   272 pos.   1764 -  1815 swiss|Q01056|TEGU_HSVSA shuffled
+   272 pos.   1392 -  1429 swiss|P11881|IP3R_MOUSE shuffled
+   272 pos.    680 -   705 swiss|P32562|CC5_YEAST shuffled
+   272 pos.    397 -   447 swiss|P26016|FURS_DROME shuffled
+   272 pos.    346 -   353 swiss|P21279|GBQ_MOUSE shuffled
+   272 pos.    336 -   377 swiss|Q07176|MSK7_MEDSA shuffled
+   272 pos.    307 -   351 swiss|P03418|NCAP_HRSVA shuffled
+   272 pos.    206 -   242 swiss|P12726|ALT_BPT4 shuffled
+   272 pos.    194 -   204 swiss|P30202|VPRT_ADEM1 shuffled
+   272 pos.    193 -   234 swiss|P17177|CP27_RABIT shuffled
+   272 pos.    176 -   214 swiss|P08438|VCL_VICFA shuffled
+   272 pos.    154 -   159 swiss|P19825|LATX_PAPSO shuffled
+   272 pos.    133 -   143 swiss|P38183|YBH7_YEAST shuffled
+   272 pos.     23 -    67 swiss|P38228|YBP4_YEAST shuffled
+   272 pos.     14 -    54 swiss|P24934|E1A6_ADE02 shuffled
+   272 pos.      5 -    46 swiss|P22071|3BH1_RAT shuffled
+   272 pos.      1 -    37 swiss|P29491|TCPD_VIBCH shuffled
+   272 pos.      1 -    22 swiss|P18550|RS19_PETHY shuffled
+   272 pos.      1 -    15 swiss|P24254|YZPU_ECOLI shuffled
+   271 pos.    687 -   717 swiss|Q02225|SKI_XENLA shuffled
+   271 pos.    454 -   494 swiss|P03133|VNCS_PAVHH shuffled
+   271 pos.    312 -   339 swiss|P06915|CSP_PLABE shuffled
+   271 pos.    255 -   279 swiss|P22070|BLAD_KLEPN shuffled
+   271 pos.    240 -   246 swiss|P29987|PYG2_ANASP shuffled
+   271 pos.    193 -   235 swiss|P30153|2AAA_HUMAN shuffled
+   271 pos.    127 -   165 swiss|P12342|IL2A_BOVIN shuffled
+   271 pos.    125 -   164 swiss|P26367|PAX6_HUMAN shuffled
+   271 pos.    120 -   147 swiss|P16681|PHNB_ECOLI shuffled
+   271 pos.    116 -   155 swiss|P38271|YBX9_YEAST shuffled
+   271 pos.      1 -    11 swiss|P17881|NCAP_SEOUS shuffled
+   271 pos.      1 -     7 swiss|P06777|RAD1_YEAST shuffled
+   270 pos.    815 -   869 swiss|P15207|ANDR_RAT shuffled
+   270 pos.    542 -   563 swiss|Q08890|IDS_MOUSE shuffled
+   270 pos.    485 -   518 swiss|P20621|NIFK_BRAJA shuffled
+   270 pos.    429 -   441 swiss|Q03181|PPAS_HUMAN shuffled
+   270 pos.    342 -   355 swiss|P31672|NIFS_LACDE shuffled
+   270 pos.    337 -   355 swiss|Q00796|DHSO_HUMAN shuffled
+   270 pos.    332 -   373 swiss|P00328|ADHS_HORSE shuffled
+   270 pos.    251 -   262 swiss|P33464|VGL1_CVPR8 shuffled
+   270 pos.     74 -   101 swiss|P12128|NULC_ORYSA shuffled
+   270 pos.     67 -   122 swiss|P33156|RECA_AGRTU shuffled
+   270 pos.     49 -   118 swiss|P31891|MBHL_ALCEU shuffled
+   270 pos.     38 -    93 swiss|P23798|ME18_MOUSE shuffled
+   270 pos.     35 -    76 swiss|P12531|TOP2_TRYBB shuffled
+   270 pos.     28 -    67 swiss|Q03101|CYAG_DICDI shuffled
+   270 pos.     26 -    58 swiss|P22755|SINI_BACLI shuffled
+   270 pos.     26 -    48 swiss|P19651|TXA1_STOHE shuffled
+   270 pos.      1 -    35 swiss|Q02956|KPCZ_MOUSE shuffled
+   270 pos.      1 -    25 swiss|Q00673|NUGM_CANMA shuffled
+   270 pos.      1 -    25 swiss|P23918|YMES_BACST shuffled
+   270 pos.      1 -    12 swiss|P36354|NCAP_PI1HA shuffled
+   270 pos.      1 -    11 swiss|P18768|CHVA_AGRTU shuffled
+   269 pos.    654 -   711 swiss|P36033|YKW0_YEAST shuffled
+   269 pos.    619 -   657 swiss|P00561|AK1H_ECOLI shuffled
+   269 pos.    537 -   574 swiss|P22167|VGLF_BRSVC shuffled
+   269 pos.    531 -   547 swiss|P08663|MERA_STAAU shuffled
+   269 pos.    393 -   444 swiss|P17649|GATA_YEAST shuffled
+   269 pos.    279 -   304 swiss|P08512|CIK3_DROME shuffled
+   269 pos.    252 -   296 swiss|P26182|ACT_ACHBI shuffled
+   269 pos.    247 -   295 swiss|P04272|ANX2_BOVIN shuffled
+   269 pos.    211 -   250 swiss|Q08942|NRKA_TRYBB shuffled
+   269 pos.    190 -   210 swiss|P02851|BAR2_CHITE shuffled
+   269 pos.    132 -   176 swiss|P11926|DCOR_HUMAN shuffled
+   269 pos.    105 -   146 swiss|P07251|ATPA_YEAST shuffled
+   269 pos.     53 -    73 swiss|P33872|VF14_VARV shuffled
+   269 pos.     50 -    93 swiss|Q01232|VA35_VACCV shuffled
+   269 pos.     18 -    58 swiss|P26866|RT04_MARPO shuffled
+   269 pos.     13 -    36 swiss|P12161|PSBI_ORYSA shuffled
+   269 pos.      1 -    26 swiss|P32293|ARG3_PHAAU shuffled
+   269 pos.      1 -    26 swiss|P11996|LP1B_DROME shuffled
+   269 pos.      1 -    13 swiss|P20385|CF2_DROME shuffled
+   269 pos.      1 -    10 swiss|P28785|TNAB_PROVU shuffled
+   268 pos.    515 -   553 swiss|P33614|VGLF_NDVL shuffled
+   268 pos.    332 -   346 swiss|P24113|LUXA_PHOPO shuffled
+   268 pos.    225 -   270 swiss|Q07157|ZO1_HUMAN shuffled
+   268 pos.    210 -   236 swiss|P22177|PCNA_SOYBN shuffled
+   268 pos.    173 -   215 swiss|P24943|GLTT_BACST shuffled
+   268 pos.    162 -   202 swiss|P09019|HXB5_XENLA shuffled
+   268 pos.    160 -   168 swiss|P21057|VA34_VACCC shuffled
+   268 pos.    143 -   147 swiss|P37240|TSHB_ONCMY shuffled
+   268 pos.    136 -   174 swiss|P30969|GRHR_RAT shuffled
+   268 pos.     87 -   126 swiss|P35875|PPOL_DROME shuffled
+   268 pos.     52 -    87 swiss|P35402|ERD2_ARATH shuffled
+   268 pos.      3 -    58 swiss|P27362|PGK_PLAFA shuffled
+   268 pos.      1 -    36 swiss|P80314|TCPB_MOUSE shuffled
+   268 pos.      1 -    26 swiss|P35937|VMT1_IAUSS shuffled
+   268 pos.      1 -    12 swiss|P22014|TBB2_COLGR shuffled
+   268 pos.      1 -    12 swiss|P03709|VPF1_LAMBD shuffled
+   267 pos.   1685 -  1693 swiss|Q04610|POLN_HEVMY shuffled
+   267 pos.    949 -   983 swiss|P08968|RPC1_TRYBB shuffled
+   267 pos.    723 -   779 swiss|P09977|YCFX_TOBAC shuffled
+   267 pos.    689 -   735 swiss|P17192|DPOL_HPBDB shuffled
+   267 pos.    569 -   608 swiss|P33302|PDR5_YEAST shuffled
+   267 pos.    429 -   468 swiss|P09855|UL21_HSV1E shuffled
+   267 pos.    364 -   407 swiss|P18311|IF2_ENTFC shuffled
+   267 pos.    362 -   405 swiss|P32068|TRPE_ARATH shuffled
+   267 pos.    341 -   387 swiss|P36584|RL3_SCHPO shuffled
+   267 pos.    330 -   334 swiss|P23464|YI11_HALHA shuffled
+   267 pos.    318 -   376 swiss|P20583|HS71_TRYCR shuffled
+   267 pos.    306 -   335 swiss|P25445|FASA_HUMAN shuffled
+   267 pos.    294 -   302 swiss|P09118|URIC_RAT shuffled
+   267 pos.    276 -   311 swiss|P33301|XRS2_YEAST shuffled
+   267 pos.    240 -   248 swiss|P11041|PYHD_CPVBM shuffled
+   267 pos.    233 -   240 swiss|P34326|HM16_CAEEL shuffled
+   267 pos.    204 -   229 swiss|P09497|CLCB_HUMAN shuffled
+   267 pos.    161 -   196 swiss|P11432|ELI_PEA shuffled
+   267 pos.    144 -   155 swiss|P37861|RECX_PSEFL shuffled
+   267 pos.    129 -   135 swiss|P08526|RL27_HUMAN shuffled
+   267 pos.    111 -   141 swiss|P21498|YJEB_ECOLI shuffled
+   267 pos.    111 -   118 swiss|P12139|RL20_ORYSA shuffled
+   267 pos.     97 -   105 swiss|P36532|RM37_YEAST shuffled
+   267 pos.     96 -   117 swiss|P15404|VMEM_WCMVO shuffled
+   267 pos.     92 -   133 swiss|P09366|VN35_ROTP5 shuffled
+   267 pos.     91 -   100 swiss|P11996|LP1B_DROME shuffled
+   267 pos.     86 -    95 swiss|P00234|FER1_EQUTE shuffled
+   267 pos.     50 -    89 swiss|P09836|UHPC_ECOLI shuffled
+   267 pos.     46 -    51 swiss|P05562|IOVO_EUDEL shuffled
+   267 pos.     39 -    78 swiss|Q05013|LIPA_NEIME shuffled
+   267 pos.     12 -    36 swiss|P11495|TXAM_METSE shuffled
+   267 pos.      1 -    26 swiss|P06223|RP54_KLEPN shuffled
+   267 pos.      1 -    13 swiss|P35882|TRA1_MYCBO shuffled
+   267 pos.      1 -     9 swiss|P32265|NFXB_PSEAE shuffled
+   267 pos.      1 -     8 swiss|P19270|COA1_TTV1 shuffled
+   266 pos.    720 -   763 swiss|P26342|TGR3_RAT shuffled
+   266 pos.    654 -   696 swiss|P27801|PEP3_YEAST shuffled
+   266 pos.    650 -   693 swiss|P27195|PPCF_FLAME shuffled
+   266 pos.    592 -   645 swiss|P38254|YBU4_YEAST shuffled
+   266 pos.    492 -   514 swiss|Q00612|G6PD_MOUSE shuffled
+   266 pos.    450 -   472 swiss|P12698|ATPB_BACME shuffled
+   266 pos.    428 -   459 swiss|P05508|NU4M_RAT shuffled
+   266 pos.    422 -   429 swiss|P05133|NCAP_HANTV shuffled
+   266 pos.    414 -   438 swiss|P28541|SECY_METVA shuffled
+   266 pos.    389 -   412 swiss|P31058|YADC_ECOLI shuffled
+   266 pos.    382 -   425 swiss|P34509|YMX1_CAEEL shuffled
+   266 pos.    374 -   413 swiss|P13433|RPOM_YEAST shuffled
+   266 pos.    322 -   357 swiss|P36101|YKC7_YEAST shuffled
+   266 pos.    287 -   332 swiss|P37120|CP75_SOLME shuffled
+   266 pos.    203 -   211 swiss|P25780|EUM1_EURMA shuffled
+   266 pos.    200 -   206 swiss|P04604|NEF_HV1EL shuffled
+   266 pos.    187 -   198 swiss|P37928|FIMW_SALTY shuffled
+   266 pos.    182 -   187 swiss|P08085|BNZB_PSEPU shuffled
+   266 pos.    140 -   180 swiss|P22626|ROA2_HUMAN shuffled
+   266 pos.    136 -   145 swiss|P28626|YIM2_YEAST shuffled
+   266 pos.    126 -   165 swiss|P00590|CUTI_FUSSO shuffled
+   266 pos.    106 -   159 swiss|P21182|DCAM_YEAST shuffled
+   266 pos.     91 -   146 swiss|P30896|BLA3_KLEPN shuffled
+   266 pos.     61 -    70 swiss|P33997|ALPA_ECOLI shuffled
+   266 pos.     48 -   105 swiss|Q05597|CBIP_SALTY shuffled
+   266 pos.     48 -    87 swiss|P05008|INAB_BOVIN shuffled
+   266 pos.     17 -    66 swiss|P23630|DCDA_BACSU shuffled
+   266 pos.     12 -    18 swiss|P20860|FMF1_ECOLI shuffled
+   266 pos.      3 -    44 swiss|P26122|RRP2_IALE1 shuffled
+   266 pos.      1 -    11 swiss|P21367|YCAC_ECOLI shuffled
+   266 pos.      1 -    10 swiss|P14470|FIBB_SHEEP shuffled
+   265 pos.    874 -   929 swiss|P19321|BXD_CLOBO shuffled
+   265 pos.    748 -   759 swiss|P26113|RRP3_IAZI1 shuffled
+   265 pos.    693 -   700 swiss|P29719|GUNA_BACLA shuffled
+   265 pos.    546 -   550 swiss|P12589|HEMA_IAME6 shuffled
+   265 pos.    522 -   533 swiss|P24133|INV_SCHOC shuffled
+   265 pos.    469 -   516 swiss|P20374|COX1_APIME shuffled
+   265 pos.    436 -   488 swiss|P16785|TEGU_HCMVA shuffled
+   265 pos.    406 -   414 swiss|Q07805|OAT_PLAFA shuffled
+   265 pos.    343 -   378 swiss|P32214|CLRB_RAT shuffled
+   265 pos.    338 -   401 swiss|P32915|S61A_YEAST shuffled
+   265 pos.    310 -   358 swiss|P04341|NODC_RHIME shuffled
+   265 pos.    296 -   303 swiss|P15212|PLR1_MOUSE shuffled
+   265 pos.    254 -   313 swiss|P00640|T2PS_PROST shuffled
+   265 pos.    241 -   261 swiss|P01920|HB24_HUMAN shuffled
+   265 pos.    230 -   240 swiss|P18421|PRC5_RAT shuffled
+   265 pos.    228 -   261 swiss|P23953|EST_MOUSE shuffled
+   265 pos.    194 -   224 swiss|P29873|COX2_EXERO shuffled
+   265 pos.    176 -   232 swiss|P20876|POL_HV2ST shuffled
+   265 pos.    142 -   149 swiss|P17893|AHRC_BACSU shuffled
+   265 pos.     87 -   128 swiss|Q03245|VN35_ROTHW shuffled
+   265 pos.     69 -   103 swiss|P12605|VGLF_PI1HC shuffled
+   265 pos.     60 -    80 swiss|P04301|YVDB_VACCV shuffled
+   265 pos.     57 -   103 swiss|Q08715|URE1_HELFE shuffled
+   265 pos.     13 -    36 swiss|P05968|RL10_HALCU shuffled
+   265 pos.      4 -    52 swiss|P31926|SUSY_VICFA shuffled
+   265 pos.      1 -    27 swiss|P09573|NRAM_IACKQ shuffled
+   265 pos.      1 -    21 swiss|P09327|VIL1_HUMAN shuffled
+   265 pos.      1 -    11 swiss|P05450|YAT7_RHOBL shuffled
+   265 pos.      1 -    11 swiss|P03044|RPC3_LAMBD shuffled
+   265 pos.      1 -    10 swiss|P16492|VGLH_HSVSA shuffled
+   264 pos.   3096 -  3165 swiss|P19751|RRPA_CVMJH shuffled
+   264 pos.   1060 -  1107 swiss|P33527|MRP_HUMAN shuffled
+   264 pos.   1036 -  1065 swiss|P06272|RPOB_MARPO shuffled
+   264 pos.    679 -   696 swiss|P08047|TFS1_HUMAN shuffled
+   264 pos.    447 -   483 swiss|P09824|NIFB_RHIME shuffled
+   264 pos.    434 -   439 swiss|P29758|OAT_MOUSE shuffled
+   264 pos.    390 -   423 swiss|Q04967|HS76_PIG shuffled
+   264 pos.    360 -   382 swiss|P07676|TRFA_ECOLI shuffled
+   264 pos.    290 -   325 swiss|P07727|GRA1_RAT shuffled
+   264 pos.    289 -   333 swiss|P12612|TCPA_YEAST shuffled
+   264 pos.    254 -   299 swiss|P28441|RBL_PLAOC shuffled
+   264 pos.    233 -   286 swiss|P31205|CHLI_EUGGR shuffled
+   264 pos.    219 -   235 swiss|P01194|COLI_RAT shuffled
+   264 pos.    179 -   223 swiss|P27237|OPDA_SALTY shuffled
+   264 pos.    135 -   169 swiss|P34863|CYB_RABIT shuffled
+   264 pos.     74 -   124 swiss|P02025|HBB_HYLLA shuffled
+   264 pos.     64 -    87 swiss|P06373|RS15_TOBAC shuffled
+   264 pos.     51 -    64 swiss|P29662|COX2_SCAPL shuffled
+   264 pos.     12 -    67 swiss|P16687|PHNI_ECOLI shuffled
+   264 pos.      1 -    29 swiss|P04842|ALOX_PICPA shuffled
+   264 pos.      1 -    13 swiss|P36230|LECA_IRIHO shuffled
+   263 pos.    573 -   627 swiss|P07224|PRTS_BOVIN shuffled
+   263 pos.    502 -   529 swiss|P26031|VGLF_MEASI shuffled
+   263 pos.    336 -   347 swiss|P23093|CSP_PLABA shuffled
+   263 pos.    200 -   249 swiss|P16154|TOXA_CLODI shuffled
+   263 pos.    164 -   226 swiss|P36006|YKM9_YEAST shuffled
+   263 pos.    163 -   167 swiss|P34008|FLIL_CAUCR shuffled
+   263 pos.    142 -   170 swiss|P22902|YME1_THIFE shuffled
+   263 pos.     64 -   126 swiss|P37191|GATZ_ECOLI shuffled
+   263 pos.     34 -    75 swiss|P23216|GLP1_GLYDI shuffled
+   263 pos.      1 -    23 swiss|P15124|GLNA_METCA shuffled
+   263 pos.      1 -    17 swiss|P23298|KPCL_MOUSE shuffled
+   263 pos.      1 -     9 swiss|P23797|YAE2_YEAST shuffled
+   263 pos.      1 -     8 swiss|P09389|MTBB_BPSPB shuffled
+   262 pos.    774 -   797 swiss|P30322|DPOM_AGABT shuffled
+   262 pos.    679 -   719 swiss|P20345|VG12_BPPH2 shuffled
+   262 pos.    598 -   644 swiss|P32742|YNH4_CAEEL shuffled
+   262 pos.    556 -   571 swiss|P12556|HEMA_NDVI shuffled
+   262 pos.    492 -   544 swiss|P20438|CG12_YEAST shuffled
+   262 pos.    410 -   421 swiss|P12906|TAMI_POVMC shuffled
+   262 pos.    152 -   161 swiss|P26144|RRP1_IACAO shuffled
+   262 pos.    100 -   151 swiss|P12645|BMP3_HUMAN shuffled
+   262 pos.      1 -    41 swiss|P28093|WNT8_EVATR shuffled
+   262 pos.      1 -    33 swiss|P07353|ING_BOVIN shuffled
+   262 pos.      1 -    18 swiss|P25144|GRAR_BACSU shuffled
+   262 pos.      1 -    17 swiss|P30521|GLGC_ANASP shuffled
+   262 pos.      1 -    17 swiss|P12833|DYR3_SALTY shuffled
+   262 pos.      1 -     8 swiss|P17904|SIBW_BACSU shuffled
+   262 pos.      1 -     7 swiss|P11458|NADA_ECOLI shuffled
+   262 pos.      1 -     7 swiss|P02538|K2CA_HUMAN shuffled
+   261 pos.   3815 -  3863 swiss|P19751|RRPA_CVMJH shuffled
+   261 pos.   2234 -  2241 swiss|P16785|TEGU_HCMVA shuffled
+   261 pos.    978 -  1017 swiss|P25439|BRM_DROME shuffled
+   261 pos.    869 -   878 swiss|P38149|YB9X_YEAST shuffled
+   261 pos.    712 -   737 swiss|P32580|SUV3_YEAST shuffled
+   261 pos.    677 -   700 swiss|P10244|MYBB_HUMAN shuffled
+   261 pos.    560 -   603 swiss|P22967|ACET_MOUSE shuffled
+   261 pos.    520 -   560 swiss|P15690|NUAM_BOVIN shuffled
+   261 pos.    504 -   531 swiss|P16801|UL95_HCMVA shuffled
+   261 pos.    475 -   501 swiss|P31023|DLDH_PEA shuffled
+   261 pos.    454 -   510 swiss|P15822|ZEP1_HUMAN shuffled
+   261 pos.    387 -   397 swiss|Q06386|VS06_ROTPY shuffled
+   261 pos.    383 -   424 swiss|P06210|POLG_POL2L shuffled
+   261 pos.    341 -   396 swiss|P38570|ITAE_HUMAN shuffled
+   261 pos.    285 -   291 swiss|Q00286|HMP1_MOUSE shuffled
+   261 pos.    233 -   288 swiss|P38280|YBZ8_YEAST shuffled
+   261 pos.    149 -   183 swiss|Q01584|LIPO_BUFMA shuffled
+   261 pos.    114 -   129 swiss|P31287|WNT6_XENLA shuffled
+   261 pos.     64 -   110 swiss|P38263|YBV5_YEAST shuffled
+   261 pos.     55 -   132 swiss|P34707|SKN1_CAEEL shuffled
+   261 pos.     41 -    84 swiss|P03984|KAC6_RABIT shuffled
+   261 pos.     39 -   113 swiss|P07248|ADR1_YEAST shuffled
+   261 pos.      1 -    16 swiss|P31917|YC30_EUGGR shuffled
+   261 pos.      1 -    16 swiss|P17309|VR3_BPT4 shuffled
+   261 pos.      1 -    11 swiss|P15474|AROD_STRCO shuffled
+   261 pos.      1 -    10 swiss|P07128|KHSE_BRELA shuffled
+   261 pos.      1 -     9 swiss|P08799|MYS2_DICDI shuffled
+   261 pos.      1 -     9 swiss|P04903|GTA2_RAT shuffled
+   261 pos.      1 -     7 swiss|P14198|AAC4_DICDI shuffled
+   260 pos.   1258 -  1299 swiss|P11055|MYSE_HUMAN shuffled
+   260 pos.   1188 -  1228 swiss|P06209|POLG_POL32 shuffled
+   260 pos.    747 -   773 swiss|P16954|GLGB_SYNP7 shuffled
+   260 pos.    504 -   544 swiss|P14543|NIDO_HUMAN shuffled
+   260 pos.    470 -   510 swiss|P20228|DCE_DROME shuffled
+   260 pos.    458 -   503 swiss|P01026|CO3_RAT shuffled
+   260 pos.    438 -   490 swiss|P16950|APU_THEET shuffled
+   260 pos.    399 -   429 swiss|P23999|MYCS_RAT shuffled
+   260 pos.    398 -   409 swiss|P24813|CAD1_YEAST shuffled
+   260 pos.    372 -   416 swiss|P15089|CBPC_MOUSE shuffled
+   260 pos.    366 -   379 swiss|P24962|CYBA_STELO shuffled
+   260 pos.    288 -   294 swiss|Q01984|HMT_RAT shuffled
+   260 pos.    251 -   308 swiss|P19021|AMD_HUMAN shuffled
+   260 pos.    248 -   287 swiss|P12982|PP1B_DROME shuffled
+   260 pos.    231 -   275 swiss|Q01023|UL95_HSVSA shuffled
+   260 pos.    226 -   241 swiss|P23724|PRC5_YEAST shuffled
+   260 pos.    220 -   245 swiss|P03206|BZLF_EBV shuffled
+   260 pos.    206 -   230 swiss|P32960|RACX_BACSU shuffled
+   260 pos.    171 -   196 swiss|P08022|FMR4_APLCA shuffled
+   260 pos.    147 -   155 swiss|P25985|PR1_PHAVU shuffled
+   260 pos.    115 -   157 swiss|P34569|YNV6_CAEEL shuffled
+   260 pos.     90 -   129 swiss|P29434|DNAA_BUCAP shuffled
+   260 pos.     88 -   142 swiss|P27684|RL40_SPIOL shuffled
+   260 pos.     33 -    64 swiss|P26841|CAT4_PSEAE shuffled
+   260 pos.     15 -    55 swiss|P36864|YPT5_VOLCA shuffled
+   260 pos.     10 -    63 swiss|P11620|YPT1_SCHPO shuffled
+   260 pos.      1 -    28 swiss|P33561|RHO_BORBU shuffled
+   260 pos.      1 -    18 swiss|P27351|ADB_YEAST shuffled
+   260 pos.      1 -    16 swiss|P26835|YNGD_CLOPE shuffled
+   260 pos.      1 -    13 swiss|P25606|YCZ0_YEAST shuffled
+   260 pos.      1 -    11 swiss|P25877|PSBK_HORVU shuffled
+   259 pos.   1183 -  1224 swiss|P29995|IP3S_RAT shuffled
+   259 pos.    717 -   747 swiss|Q03319|PRH1_SCHPO shuffled
+   259 pos.    710 -   752 swiss|P33338|SLA2_YEAST shuffled
+   259 pos.    596 -   641 swiss|P12351|CYP1_YEAST shuffled
+   259 pos.    547 -   553 swiss|P25705|ATPA_HUMAN shuffled
+   259 pos.    525 -   539 swiss|P32826|CBPX_ARATH shuffled
+   259 pos.    371 -   420 swiss|P06877|MYC_FELCA shuffled
+   259 pos.    363 -   385 swiss|P32792|YS83_YEAST shuffled
+   259 pos.    361 -   426 swiss|P36336|VGLH_HSVMD shuffled
+   259 pos.    302 -   336 swiss|P26434|NAH4_RAT shuffled
+   259 pos.    299 -   342 swiss|P22892|ADG_MOUSE shuffled
+   259 pos.    271 -   309 swiss|P34195|NU5M_CROLA shuffled
+   259 pos.    246 -   286 swiss|P03664|VG4_BPFD shuffled
+   259 pos.    232 -   236 swiss|P18582|CD81_HUMAN shuffled
+   259 pos.    227 -   269 swiss|P07384|CAP1_HUMAN shuffled
+   259 pos.    186 -   221 swiss|P34295|YKO7_CAEEL shuffled
+   259 pos.    168 -   208 swiss|P29926|NQOE_PARDE shuffled
+   259 pos.    168 -   186 swiss|P14498|TRS2_ECOLI shuffled
+   259 pos.    159 -   165 swiss|P10758|LITH_RAT shuffled
+   259 pos.    155 -   160 swiss|P16181|RS1X_ARATH shuffled
+   259 pos.    114 -   164 swiss|P34624|YOJ1_CAEEL shuffled
+   259 pos.     79 -   102 swiss|P04638|APA2_RAT shuffled
+   259 pos.     17 -    59 swiss|P08831|IL1A_BOVIN shuffled
+   259 pos.      4 -    55 swiss|P01469|CX2_NAJMO shuffled
+   259 pos.      1 -     8 swiss|P00252|FER1_NOSMU shuffled
+   258 pos.   1015 -  1030 swiss|Q04691|FBP1_DROME shuffled
+   258 pos.    521 -   581 swiss|P36727|VE1_HPV40 shuffled
+   258 pos.    443 -   447 swiss|P34429|YL38_CAEEL shuffled
+   258 pos.    437 -   472 swiss|P20115|CISY_ARATH shuffled
+   258 pos.    423 -   469 swiss|P22478|ATPB_BACFI shuffled
+   258 pos.    412 -   468 swiss|P04711|CAPP_MAIZE shuffled
+   258 pos.    396 -   443 swiss|P09270|UL52_VZVD shuffled
+   258 pos.    396 -   442 swiss|P28706|RA13_SCHPO shuffled
+   258 pos.    370 -   417 swiss|P34268|YKF5_CAEEL shuffled
+   258 pos.    368 -   389 swiss|P23569|CHSY_PUELO shuffled
+   258 pos.    283 -   296 swiss|P28033|CEBB_MOUSE shuffled
+   258 pos.    276 -   322 swiss|P36345|VP40_NPVHZ shuffled
+   258 pos.    274 -   313 swiss|P17124|HH2R_CANFA shuffled
+   258 pos.    260 -   309 swiss|P20709|VINT_BPL54 shuffled
+   258 pos.    183 -   204 swiss|P07778|YPQL_ACICA shuffled
+   258 pos.    170 -   192 swiss|P02635|SCPB_PENSP shuffled
+   258 pos.    151 -   202 swiss|P10822|ICW3_PSOTE shuffled
+   258 pos.    131 -   177 swiss|Q01389|SLK1_YEAST shuffled
+   258 pos.    123 -   152 swiss|P03638|VGD_BPG4 shuffled
+   258 pos.    102 -   149 swiss|P35536|FLIZ_BACSU shuffled
+   258 pos.     92 -   106 swiss|P06889|LV4E_HUMAN shuffled
+   258 pos.     87 -   126 swiss|P04718|RBL2_RHORU shuffled
+   258 pos.     80 -   127 swiss|P37622|YHHT_ECOLI shuffled
+   258 pos.     72 -   108 swiss|P12781|NIFN_RHIME shuffled
+   258 pos.     55 -    99 swiss|P23361|ADH_DROPI shuffled
+   258 pos.     46 -    94 swiss|P19454|KC22_YEAST shuffled
+   258 pos.     43 -    90 swiss|P21553|CISY_THEAC shuffled
+   258 pos.     20 -    26 swiss|P37817|SP5M_BACSU shuffled
+   258 pos.     15 -    62 swiss|P06573|MLSB_STRSA shuffled
+   258 pos.      1 -    59 swiss|P36039|YKU7_YEAST shuffled
+   258 pos.      1 -    32 swiss|P10996|NIFE_CLOPA shuffled
+   258 pos.      1 -    15 swiss|P20208|Y14K_SSV1 shuffled
+   258 pos.      1 -    10 swiss|P31122|YDEA_ECOLI shuffled
+   258 pos.      1 -     7 swiss|P14739|UNGI_BPPB2 shuffled
+   257 pos.    877 -   912 swiss|P03303|POLG_HRV14 shuffled
+   257 pos.    645 -   681 swiss|P32565|SEN3_YEAST shuffled
+   257 pos.    634 -   674 swiss|P25302|SWI4_YEAST shuffled
+   257 pos.    627 -   644 swiss|P12258|YHOB_DROME shuffled
+   257 pos.    563 -   616 swiss|P14650|PERT_RAT shuffled
+   257 pos.    460 -   495 swiss|P14339|POLG_DEN23 shuffled
+   257 pos.    386 -   428 swiss|P24151|NODC_RHILP shuffled
+   257 pos.    386 -   391 swiss|P18209|PELD_ERWCH shuffled
+   257 pos.    376 -   416 swiss|P14228|PGK_TRIRE shuffled
+   257 pos.    341 -   381 swiss|P02824|HS72_DROME shuffled
+   257 pos.    320 -   356 swiss|Q04574|POL1_BAYMG shuffled
+   257 pos.    267 -   312 swiss|P26925|TRPD_METTH shuffled
+   257 pos.    253 -   274 swiss|P00781|SUBT_BACSD shuffled
+   257 pos.    245 -   277 swiss|Q00465|RIPA_LUFCY shuffled
+   257 pos.    175 -   199 swiss|P12420|PRL_HORSE shuffled
+   257 pos.    135 -   168 swiss|P08845|SULA_SERMA shuffled
+   257 pos.    132 -   141 swiss|P02002|HBAD_PHACO shuffled
+   257 pos.    113 -   129 swiss|Q04788|HMP1_PIG shuffled
+   257 pos.    107 -   130 swiss|P27238|YFED_ECOLI shuffled
+   257 pos.     33 -    77 swiss|P09827|GLNB_RHILV shuffled
+   257 pos.      5 -    41 swiss|Q06848|ANCA_CLOTM shuffled
+   257 pos.      1 -    39 swiss|P38620|KPR2_YEAST shuffled
+   257 pos.      1 -    24 swiss|P09997|YIDA_ECOLI shuffled
+   257 pos.      1 -    12 swiss|P36533|RM39_YEAST shuffled
+   256 pos.   1625 -  1673 swiss|P08955|PYR1_MESAU shuffled
+   256 pos.    857 -   908 swiss|P23466|CYAA_SACKL shuffled
+   256 pos.    754 -   759 swiss|P12445|RRP3_IAFPR shuffled
+   256 pos.    640 -   683 swiss|P05135|VGL2_IBV6 shuffled
+   256 pos.    587 -   594 swiss|P19705|T1SE_ECOLI shuffled
+   256 pos.    579 -   608 swiss|P17169|GLMS_ECOLI shuffled
+   256 pos.    543 -   590 swiss|P05646|DNAK_BACME shuffled
+   256 pos.    540 -   559 swiss|P27696|ILVB_KLEPN shuffled
+   256 pos.    483 -   508 swiss|P08892|PGKD_TRYBB shuffled
+   256 pos.    413 -   449 swiss|P26562|HEMA_IADA4 shuffled
+   256 pos.    380 -   419 swiss|P23634|ATCR_HUMAN shuffled
+   256 pos.    357 -   366 swiss|Q02284|5H1F_MOUSE shuffled
+   256 pos.    221 -   234 swiss|P24800|PRRB_RAT shuffled
+   256 pos.    208 -   249 swiss|P25199|NOLI_RHIME shuffled
+   256 pos.    157 -   194 swiss|P37058|DHB3_HUMAN shuffled
+   256 pos.    107 -   121 swiss|P13144|VNS2_IAMA8 shuffled
+   256 pos.    103 -   138 swiss|P23741|HBB_LATCH shuffled
+   256 pos.     76 -   120 swiss|Q00160|VG37_HSVI1 shuffled
+   256 pos.     63 -   101 swiss|P33245|TATR_NPVBM shuffled
+   256 pos.     60 -    98 swiss|P23613|PH20_CAVPO shuffled
+   256 pos.     42 -    92 swiss|P11532|DMD_HUMAN shuffled
+   256 pos.     40 -    79 swiss|P11730|KCCG_RAT shuffled
+   256 pos.     35 -    78 swiss|P32348|TBG_USTVI shuffled
+   256 pos.      2 -    14 swiss|P01514|MAST_VESLE shuffled
+   256 pos.      1 -    21 swiss|P14578|COX1_ORYSA shuffled
+   256 pos.      1 -    18 swiss|P27178|ATP6_SYNY3 shuffled
+   256 pos.      1 -     9 swiss|Q02448|VM03_BORHE shuffled
+   255 pos.   1622 -  1626 swiss|Q02880|TOPB_HUMAN shuffled
+   255 pos.   1403 -  1445 swiss|P22082|SNF2_YEAST shuffled
+   255 pos.    769 -   825 swiss|P06577|CRYS_BACTB shuffled
+   255 pos.    732 -   765 swiss|P20918|PLMN_MOUSE shuffled
+   255 pos.    598 -   612 swiss|P33900|NUOG_SALTY shuffled
+   255 pos.    543 -   568 swiss|P21330|GAGJ_DROME shuffled
+   255 pos.    470 -   500 swiss|P30100|CPN3_RAT shuffled
+   255 pos.    430 -   480 swiss|P24298|ALAT_HUMAN shuffled
+   255 pos.    416 -   468 swiss|P06115|CATT_YEAST shuffled
+   255 pos.    325 -   330 swiss|P13445|RPOS_ECOLI shuffled
+   255 pos.    316 -   369 swiss|P12131|NUCC_MARPO shuffled
+   255 pos.    276 -   318 swiss|P10028|STB2_ECOLI shuffled
+   255 pos.    240 -   293 swiss|P11209|VGLF_HRSVR shuffled
+   255 pos.    231 -   241 swiss|P12046|PUR7_BACSU shuffled
+   255 pos.    228 -   269 swiss|Q08352|DHA_BACSU shuffled
+   255 pos.    189 -   202 swiss|P22645|YDH1_XANAU shuffled
+   255 pos.    180 -   215 swiss|P37527|YR75_BACSU shuffled
+   255 pos.    148 -   190 swiss|P19097|FAS2_YEAST shuffled
+   255 pos.    124 -   141 swiss|P01971|HBA_ALCAA shuffled
+   255 pos.    114 -   126 swiss|P14205|COM2_BACSU shuffled
+   255 pos.    105 -   111 swiss|P02629|PRVA_LATCH shuffled
+   255 pos.    103 -   132 swiss|P26835|YNGD_CLOPE shuffled
+   255 pos.     95 -   165 swiss|P06227|RP34_BPSP1 shuffled
+   255 pos.     77 -    84 swiss|P20920|TAT_EIAVY shuffled
+   255 pos.     39 -    78 swiss|P11399|PYR2_MASLA shuffled
+   255 pos.     36 -    56 swiss|P05592|IOVO_CYRMO shuffled
+   255 pos.     31 -    87 swiss|P06968|DUT_ECOLI shuffled
+   255 pos.     23 -    63 swiss|P27910|POLG_DEN18 shuffled
+   255 pos.     21 -    32 swiss|P31590|PSAM_MARPO shuffled
+   255 pos.      6 -    40 swiss|Q03524|SP5D_BACSU shuffled
+   255 pos.      1 -    41 swiss|P25706|NU1C_MAIZE shuffled
+   255 pos.      1 -    20 swiss|P35035|TRY1_ANOGA shuffled
+   255 pos.      1 -    17 swiss|P32179|HAL2_YEAST shuffled
+   255 pos.      1 -    12 swiss|P06153|RPC_BPPH1 shuffled
+   254 pos.   1607 -  1663 swiss|P29846|POLG_HCVTW shuffled
+   254 pos.   1580 -  1632 swiss|Q03396|RRPL_SV5WR shuffled
+   254 pos.    651 -   671 swiss|P27406|COAT_FCVF9 shuffled
+   254 pos.    577 -   618 swiss|P09469|VATA_DAUCA shuffled
+   254 pos.    436 -   447 swiss|P00370|DHE4_ECOLI shuffled
+   254 pos.    418 -   465 swiss|P28412|RBL_EPASP shuffled
+   254 pos.    404 -   448 swiss|P05472|RPOL_KLULA shuffled
+   254 pos.    374 -   379 swiss|P24956|CYB_EQUGR shuffled
+   254 pos.    361 -   395 swiss|P13417|CHS3_SINAL shuffled
+   254 pos.    302 -   314 swiss|P29538|MTH1_HAEPA shuffled
+   254 pos.    298 -   336 swiss|P15909|VFP1_FOWPV shuffled
+   254 pos.    293 -   317 swiss|P17408|TLM_MOUSE shuffled
+   254 pos.    264 -   310 swiss|P32000|PRIM_BUCAP shuffled
+   254 pos.    245 -   295 swiss|P38071|MRF1_YEAST shuffled
+   254 pos.    176 -   212 swiss|P28869|ERK1_CANAL shuffled
+   254 pos.    162 -   169 swiss|Q00277|GSHC_SCHMA shuffled
+   254 pos.    136 -   177 swiss|P35010|ATPD_GALSU shuffled
+   254 pos.     93 -   116 swiss|P04489|E411_ADE05 shuffled
+   254 pos.     82 -   122 swiss|P22967|ACET_MOUSE shuffled
+   254 pos.     68 -   113 swiss|P10960|SAP_RAT shuffled
+   254 pos.     61 -   102 swiss|P07659|RPOL_BPT3 shuffled
+   254 pos.     35 -    83 swiss|P23139|YPE2_RHORU shuffled
+   254 pos.     28 -    58 swiss|Q04646|ATNG_MOUSE shuffled
+   254 pos.     23 -    66 swiss|P37748|RFC_ECOLI shuffled
+   254 pos.      1 -    10 swiss|P05333|PSBE_EUGGR shuffled
+   254 pos.      1 -     8 swiss|P12112|ATPA_WHEAT shuffled
+   253 pos.   1008 -  1019 swiss|P35559|IDE_RAT shuffled
+   253 pos.    966 -  1000 swiss|P34367|YLJ2_CAEEL shuffled
+   253 pos.    824 -   864 swiss|P11001|GTF1_STRDO shuffled
+   253 pos.    643 -   678 swiss|P20504|RPO1_VACCC shuffled
+   253 pos.    559 -   602 swiss|P26190|RRPO_ROTPC shuffled
+   253 pos.    503 -   544 swiss|P23533|PT1_STACA shuffled
+   253 pos.    370 -   413 swiss|P13806|CIC2_RABIT shuffled
+   253 pos.    290 -   329 swiss|P13876|RRP3_INBAD shuffled
+   253 pos.    285 -   324 swiss|P09938|RIR2_YEAST shuffled
+   253 pos.    269 -   309 swiss|Q05764|ADDL_RAT shuffled
+   253 pos.    261 -   278 swiss|P03627|VG27_BPPF3 shuffled
+   253 pos.    220 -   267 swiss|P11561|MCRB_METVO shuffled
+   253 pos.    180 -   188 swiss|P37470|SP5C_BACSU shuffled
+   253 pos.    135 -   153 swiss|P02186|MYG_ELEMA shuffled
+   253 pos.    132 -   164 swiss|P17572|PRL_MELGA shuffled
+   253 pos.    122 -   174 swiss|P25732|CFAA_ECOLI shuffled
+   253 pos.    117 -   162 swiss|P15187|RRPO_CNV shuffled
+   253 pos.    117 -   139 swiss|P27349|GOS9_ORYSA shuffled
+   253 pos.     63 -    90 swiss|Q01049|UL73_HSVSA shuffled
+   253 pos.     60 -    83 swiss|P01479|SCX1_ANDAU shuffled
+   253 pos.     55 -    89 swiss|P35352|CAR3_DICDI shuffled
+   253 pos.     53 -    92 swiss|P04924|TNFA_RABIT shuffled
+   253 pos.     48 -    68 swiss|P08854|MOP2_CLOPA shuffled
+   253 pos.     36 -    72 swiss|P32868|VSIS_REOVJ shuffled
+   253 pos.     31 -    66 swiss|P33310|MDL1_YEAST shuffled
+   253 pos.     29 -    71 swiss|P37002|YBEI_ECOLI shuffled
+   253 pos.     26 -    59 swiss|P37673|YIAL_ECOLI shuffled
+   253 pos.     22 -    58 swiss|P13300|KITH_BPT4 shuffled
+   253 pos.      4 -    45 swiss|P24855|DRN1_HUMAN shuffled
+   253 pos.      1 -    36 swiss|P02203|MYG_VARVA shuffled
+   253 pos.      1 -    13 swiss|P26681|ATPF_ENTFA shuffled
+   253 pos.      1 -     8 swiss|P26843|LEPA_PSEFL shuffled
+   252 pos.    985 -  1054 swiss|P25356|YCS2_YEAST shuffled
+   252 pos.    813 -   868 swiss|P11531|DMD_MOUSE shuffled
+   252 pos.    703 -   732 swiss|P26752|EF2_THEAC shuffled
+   252 pos.    641 -   682 swiss|P31016|PSD9_RAT shuffled
+   252 pos.    633 -   644 swiss|P17279|LEU2_RHIRA shuffled
+   252 pos.    564 -   570 swiss|P26102|HEMA_IAHSP shuffled
+   252 pos.    344 -   352 swiss|P25294|SIS1_YEAST shuffled
+   252 pos.    341 -   380 swiss|P19835|BAL_HUMAN shuffled
+   252 pos.    262 -   297 swiss|P29439|DP3B_BUCAP shuffled
+   252 pos.    235 -   254 swiss|P15980|HA2C_PIG shuffled
+   252 pos.    231 -   262 swiss|P32201|LPXA_YEREN shuffled
+   252 pos.    189 -   225 swiss|Q04982|RMIL_CHICK shuffled
+   252 pos.    184 -   201 swiss|P28280|UL04_HSV2H shuffled
+   252 pos.    148 -   192 swiss|P17046|LMP2_RAT shuffled
+   252 pos.    146 -   157 swiss|P24667|PA1S_HUMAN shuffled
+   252 pos.    142 -   193 swiss|P07464|THGA_ECOLI shuffled
+   252 pos.    134 -   174 swiss|P37249|PEDC_PEDAC shuffled
+   252 pos.    110 -   161 swiss|P16863|CXA1_XENLA shuffled
+   252 pos.    109 -   117 swiss|P18930|NU3M_DROME shuffled
+   252 pos.     82 -   107 swiss|Q03198|IPIA_TOBAC shuffled
+   252 pos.     67 -    80 swiss|P06251|PSAC_MARPO shuffled
+   252 pos.     14 -    64 swiss|P37344|YCJB_ECOLI shuffled
+   252 pos.     10 -    50 swiss|Q04626|YANA_PSEAE shuffled
+   252 pos.      1 -    49 swiss|P21013|VF03_VACCC shuffled
+   252 pos.      1 -    46 swiss|P32830|MRS5_YEAST shuffled
+   252 pos.      1 -    21 swiss|P80194|DPO1_THECA shuffled
+   252 pos.      1 -    15 swiss|P18875|HEMA_IAKIE shuffled
+   252 pos.      1 -    12 swiss|P25015|YNIX_RHOCA shuffled
+   252 pos.      1 -    11 swiss|P11472|PSBO_ANANI shuffled
+   252 pos.      1 -    10 swiss|Q07271|TFS2_SULAC shuffled
+   252 pos.      1 -     7 swiss|P00274|THIO_ECOLI shuffled
+   251 pos.    805 -   826 swiss|Q01443|SSP2_PLAYO shuffled
+   251 pos.    751 -   773 swiss|P38112|YBZ2_YEAST shuffled
+   251 pos.    738 -   776 swiss|P36305|VP4_ROTB5 shuffled
+   251 pos.    684 -   746 swiss|P12445|RRP3_IAFPR shuffled
+   251 pos.    545 -   550 swiss|P12588|HEMA_IADH7 shuffled
+   251 pos.    473 -   477 swiss|P00876|RBL_TOBAC shuffled
+   251 pos.    387 -   412 swiss|P33097|AATC_BOVIN shuffled
+   251 pos.    229 -   264 swiss|P36655|CYCZ_ECOLI shuffled
+   251 pos.    198 -   206 swiss|P35990|VPRT_ADECU shuffled
+   251 pos.    139 -   174 swiss|P17846|CYSI_ECOLI shuffled
+   251 pos.    135 -   144 swiss|P24873|NU6M_ASCSU shuffled
+   251 pos.    133 -   141 swiss|P19832|HBA_TRIOC shuffled
+   251 pos.    119 -   162 swiss|P22892|ADG_MOUSE shuffled
+   251 pos.     95 -   117 swiss|P11906|STBB_ECOLI shuffled
+   251 pos.     42 -    84 swiss|P11440|CC2_MOUSE shuffled
+   251 pos.     13 -    64 swiss|P04539|GENA_ECOLI shuffled
+   251 pos.      1 -    29 swiss|P20724|ELYA_BACSU shuffled
+   251 pos.      1 -    16 swiss|P00180|CPC1_RABIT shuffled
+   251 pos.      1 -    10 swiss|P15161|GLB1_PARCH shuffled
+   251 pos.      1 -     8 swiss|P34612|YOG3_CAEEL shuffled
+   251 pos.      1 -     7 swiss|P17743|T2H2_HAEIN shuffled
+   250 pos.    964 -  1001 swiss|P09851|GTPA_BOVIN shuffled
+   250 pos.    897 -   919 swiss|P10275|ANDR_HUMAN shuffled
+   250 pos.    668 -   675 swiss|P33215|NED1_MOUSE shuffled
+   250 pos.    630 -   673 swiss|Q03386|GNDS_RAT shuffled
+   250 pos.    608 -   617 swiss|P23975|NTNO_HUMAN shuffled
+   250 pos.    572 -   608 swiss|P36033|YKW0_YEAST shuffled
+   250 pos.    389 -   409 swiss|P35577|THBG_RAT shuffled
+   250 pos.    203 -   262 swiss|P22609|PILC_PSEAE shuffled
+   250 pos.    203 -   248 swiss|P08132|ANX4_PIG shuffled
+   250 pos.    195 -   235 swiss|Q08877|DYNT_RAT shuffled
+   250 pos.    195 -   199 swiss|Q07108|CD69_HUMAN shuffled
+   250 pos.    105 -   151 swiss|P09888|OMPC_NEIGO shuffled
+   250 pos.     97 -   140 swiss|P36811|VE6_HPV34 shuffled
+   250 pos.     91 -   121 swiss|P07857|NLTP_BOVIN shuffled
+   250 pos.     87 -   137 swiss|P14279|CB25_LYCES shuffled
+   250 pos.     68 -   113 swiss|P02245|HEMT_THEZO shuffled
+   250 pos.     65 -   113 swiss|P09556|PYR5_DICDI shuffled
+   250 pos.     54 -    91 swiss|P06678|ZEAA_MAIZE shuffled
+   250 pos.     38 -    63 swiss|P32272|YE2_BPT4 shuffled
+   250 pos.      1 -    30 swiss|P10746|HEM4_HUMAN shuffled
+   250 pos.      1 -    19 swiss|P25077|MDH_SALTY shuffled
+   250 pos.      1 -    14 swiss|P08806|VPU_HV1ZH shuffled
+   249 pos.   1153 -  1175 swiss|P12954|SRS2_YEAST shuffled
+   249 pos.    898 -   909 swiss|P36859|NIA_PETHY shuffled
+   249 pos.    845 -   873 swiss|P22413|PC1_HUMAN shuffled
+   249 pos.    376 -   416 swiss|P32259|SIN4_YEAST shuffled
+   249 pos.    369 -   433 swiss|P23678|U104_CAEEL shuffled
+   249 pos.    297 -   336 swiss|P15966|VASS_BPFR shuffled
+   249 pos.    286 -   296 swiss|P24734|AMPR_PSEAE shuffled
+   249 pos.    234 -   267 swiss|P18845|ACH3_CARAU shuffled
+   249 pos.    212 -   260 swiss|P16444|MDP1_HUMAN shuffled
+   249 pos.    200 -   251 swiss|P01855|EPC_RAT shuffled
+   249 pos.    143 -   186 swiss|P32592|ITB2_BOVIN shuffled
+   249 pos.    142 -   198 swiss|P28566|5H1E_HUMAN shuffled
+   249 pos.    108 -   147 swiss|P05302|MTD1_DESDN shuffled
+   249 pos.     81 -   120 swiss|P04392|DMA_BPT4 shuffled
+   249 pos.     60 -   100 swiss|P09347|FDEH_PSEPU shuffled
+   249 pos.     37 -    78 swiss|P30952|MASY_YEAST shuffled
+   249 pos.      1 -    16 swiss|P22198|PP1_MAIZE shuffled
+   249 pos.      1 -    14 swiss|P35672|INVG_SALTY shuffled
+   248 pos.   2045 -  2086 swiss|Q01886|HTS1_COCCA shuffled
+   248 pos.   1422 -  1427 swiss|P30622|REST_HUMAN shuffled
+   248 pos.   1212 -  1248 swiss|P09884|DPOA_HUMAN shuffled
+   248 pos.    553 -   558 swiss|P33823|VB04_VARV shuffled
+   248 pos.    544 -   550 swiss|P12583|HEMA_IADH2 shuffled
+   248 pos.    495 -   529 swiss|P37013|YGAA_ECOLI shuffled
+   248 pos.    432 -   459 swiss|P28452|RBL_SAXIN shuffled
+   248 pos.    357 -   377 swiss|P16333|NCK_HUMAN shuffled
+   248 pos.    356 -   392 swiss|P33450|FAT_DROME shuffled
+   248 pos.    319 -   362 swiss|P38539|DHM1_METME shuffled
+   248 pos.    317 -   335 swiss|P13844|VMAT_MEASU shuffled
+   248 pos.    282 -   322 swiss|P37630|YHIM_ECOLI shuffled
+   248 pos.    250 -   295 swiss|P14104|ACTB_ANSAN shuffled
+   248 pos.    224 -   228 swiss|P04159|CB21_PEA shuffled
+   248 pos.    186 -   221 swiss|P37297|STT4_YEAST shuffled
+   248 pos.    180 -   222 swiss|P35538|FLHB_BACSU shuffled
+   248 pos.    174 -   211 swiss|Q06927|VBR1_PHUV shuffled
+   248 pos.    172 -   205 swiss|P16592|VS06_ROTE1 shuffled
+   248 pos.    157 -   198 swiss|P34892|KI16_CAEEL shuffled
+   248 pos.    128 -   158 swiss|P31690|YJAE_ECOLI shuffled
+   248 pos.    125 -   166 swiss|Q01514|GBP1_MOUSE shuffled
+   248 pos.    112 -   148 swiss|Q01478|VE05_VACCD shuffled
+   248 pos.     98 -   117 swiss|P33844|VA21_VARV shuffled
+   248 pos.     81 -   145 swiss|P24732|MLRT_RABIT shuffled
+   248 pos.     73 -   141 swiss|P20234|POLG_OMV shuffled
+   248 pos.     66 -    71 swiss|P01390|NXL1_NAJNI shuffled
+   248 pos.     64 -    77 swiss|P24886|NULM_CAEEL shuffled
+   248 pos.      8 -    52 swiss|P12065|LCA_PAPCY shuffled
+   248 pos.      7 -    55 swiss|P13099|TOP3_YEAST shuffled
+   248 pos.      1 -    35 swiss|P03890|NU1M_XENLA shuffled
+   248 pos.      1 -    34 swiss|P36399|UPP_STRSL shuffled
+   248 pos.      1 -    32 swiss|P29180|TXW6_NAJNA shuffled
+   248 pos.      1 -    24 swiss|P31025|VEGP_HUMAN shuffled
+   248 pos.      1 -    23 swiss|P09790|IGA_NEIGO shuffled
+   248 pos.      1 -    20 swiss|P35779|VA3_SOLRI shuffled
+   248 pos.      1 -    17 swiss|P35466|CAPL_BOVIN shuffled
+   248 pos.      1 -     8 swiss|P16294|FA9_MOUSE shuffled
+   247 pos.   1011 -  1022 swiss|P15988|CA26_CHICK shuffled
+   247 pos.    915 -   951 swiss|Q02224|CENE_HUMAN shuffled
+   247 pos.    911 -   923 swiss|P31542|CD4B_LYCES shuffled
+   247 pos.    874 -   934 swiss|P04275|VWF_HUMAN shuffled
+   247 pos.    745 -   775 swiss|P11198|VP4_ROTH1 shuffled
+   247 pos.    700 -   728 swiss|P17945|HGF_RAT shuffled
+   247 pos.    656 -   705 swiss|P09294|VTER_VZVD shuffled
+   247 pos.    539 -   551 swiss|Q02216|MASY_CANTR shuffled
+   247 pos.    525 -   574 swiss|P23892|DCLY_ECOLI shuffled
+   247 pos.    512 -   516 swiss|P30397|YC64_EUGGR shuffled
+   247 pos.    427 -   510 swiss|P13637|ATN3_HUMAN shuffled
+   247 pos.    345 -   370 swiss|P38615|MDS1_YEAST shuffled
+   247 pos.    343 -   385 swiss|P21373|FRE2_YEAST shuffled
+   247 pos.    305 -   342 swiss|P28791|SC20_YEAST shuffled
+   247 pos.    214 -   235 swiss|P04873|NCAP_BUNLC shuffled
+   247 pos.    187 -   234 swiss|P35425|VN53_ROTSP shuffled
+   247 pos.    175 -   215 swiss|P23643|VPS3_YEAST shuffled
+   247 pos.    170 -   222 swiss|P13972|TRJ4_ECOLI shuffled
+   247 pos.    163 -   201 swiss|P29781|STRL_STRGR shuffled
+   247 pos.    149 -   169 swiss|P06334|TCC3_MOUSE shuffled
+   247 pos.    126 -   153 swiss|P16427|HYCA_ECOLI shuffled
+   247 pos.    121 -   150 swiss|P20674|COXA_HUMAN shuffled
+   247 pos.    111 -   151 swiss|P15886|YRL1_METVA shuffled
+   247 pos.    106 -   158 swiss|P38619|YRL2_SULAC shuffled
+   247 pos.     48 -    90 swiss|P33541|RPOM_NEUIN shuffled
+   247 pos.     14 -    25 swiss|P34171|OBP2_BOMMO shuffled
+   247 pos.      3 -    51 swiss|P34202|MOPE_ERWCA shuffled
+   247 pos.      1 -    10 swiss|P38466|YM23_MARPO shuffled
+   246 pos.    796 -   808 swiss|P27175|DHG_GLUOX shuffled
+   246 pos.    678 -   697 swiss|P21421|RPOB_PLAFA shuffled
+   246 pos.    544 -   566 swiss|P26140|HEMA_IAZIN shuffled
+   246 pos.    503 -   554 swiss|P03427|RRP3_IAWIL shuffled
+   246 pos.    479 -   530 swiss|P34152|KFAK_MOUSE shuffled
+   246 pos.    416 -   455 swiss|P11090|CRUA_BRANA shuffled
+   246 pos.    411 -   460 swiss|P24554|SMS_ECOLI shuffled
+   246 pos.    380 -   426 swiss|P24116|DNAA_MYCCA shuffled
+   246 pos.    329 -   375 swiss|P27828|NFRC_ECOLI shuffled
+   246 pos.    324 -   341 swiss|Q01147|CREB_MOUSE shuffled
+   246 pos.    237 -   260 swiss|Q00492|SUM1_LYTVA shuffled
+   246 pos.    234 -   239 swiss|P27648|CYBH_RHILV shuffled
+   246 pos.    149 -   206 swiss|P00807|BLAC_STAAU shuffled
+   246 pos.    149 -   177 swiss|P17364|VC08_VACCV shuffled
+   246 pos.    144 -   149 swiss|P02888|DISD_DICDI shuffled
+   246 pos.    126 -   132 swiss|P21943|VAL3_ABMVW shuffled
+   246 pos.    108 -   129 swiss|P20670|H2A2_MOUSE shuffled
+   246 pos.    102 -   144 swiss|P32999|VI01_VARV shuffled
+   246 pos.    100 -   126 swiss|Q02425|YMTF_STRMU shuffled
+   246 pos.     95 -   132 swiss|P20054|PYR1_DICDI shuffled
+   246 pos.     89 -   136 swiss|P26015|VS06_ROTGA shuffled
+   246 pos.     87 -   109 swiss|P38458|YM14_MARPO shuffled
+   246 pos.     70 -    77 swiss|P09361|YC08_MARPO shuffled
+   246 pos.     64 -   111 swiss|P00075|CYC_ENTIN shuffled
+   246 pos.     57 -    98 swiss|P08483|ACM3_RAT shuffled
+   246 pos.     22 -    70 swiss|P13097|ESM7_DROME shuffled
+   246 pos.      1 -    36 swiss|P19130|FRI1_PIG shuffled
+   246 pos.      1 -    26 swiss|P34136|HMD2_DICDI shuffled
+   246 pos.      1 -    17 swiss|P27506|PQQD_KLEPN shuffled
+   246 pos.      1 -    10 swiss|P32167|YIIX_ECOLI shuffled
+   246 pos.      1 -     8 swiss|P04366|IATR_PIG shuffled
+   245 pos.   2914 -  2963 swiss|P23098|DYHC_TRIGR shuffled
+   245 pos.    955 -   961 swiss|P03588|V1A_BMV shuffled
+   245 pos.    886 -   932 swiss|P08004|CHS1_YEAST shuffled
+   245 pos.    766 -   775 swiss|P13842|VP4_ROTHK shuffled
+   245 pos.    719 -   770 swiss|P23579|RPOB_EUGGR shuffled
+   245 pos.    609 -   633 swiss|P08150|PBP2_ECOLI shuffled
+   245 pos.    554 -   601 swiss|P22056|POLS_ONNVG shuffled
+   245 pos.    382 -   417 swiss|P33161|PGK_PENCI shuffled
+   245 pos.    358 -   402 swiss|P22326|SYY1_BACSU shuffled
+   245 pos.    357 -   398 swiss|Q00798|RBP1_PLAVB shuffled
+   245 pos.    336 -   355 swiss|Q05424|GBA1_NEUCR shuffled
+   245 pos.    331 -   340 swiss|P04901|GBB1_HUMAN shuffled
+   245 pos.    296 -   324 swiss|P22980|MYOD_CAEEL shuffled
+   245 pos.    249 -   285 swiss|P15576|NU1M_LEITA shuffled
+   245 pos.    236 -   284 swiss|P34982|OLFE_HUMAN shuffled
+   245 pos.    236 -   255 swiss|P01150|THYL_RAT shuffled
+   245 pos.    183 -   211 swiss|P21337|TER5_ECOLI shuffled
+   245 pos.    180 -   190 swiss|P31894|COOF_RHORU shuffled
+   245 pos.    179 -   219 swiss|P01024|CO3_HUMAN shuffled
+   245 pos.    118 -   167 swiss|P25785|TIM2_MOUSE shuffled
+   245 pos.    114 -   130 swiss|P31491|YERA_YERPE shuffled
+   245 pos.    109 -   145 swiss|P10587|MYSG_CHICK shuffled
+   245 pos.     72 -   121 swiss|P37439|PTGB_SALTY shuffled
+   245 pos.     41 -    80 swiss|P20551|YVDB_VACCC shuffled
+   245 pos.     40 -    79 swiss|P06735|REMA_STAEP shuffled
+   245 pos.     31 -    39 swiss|P35808|AKH2_SCHGR shuffled
+   245 pos.     15 -    56 swiss|P23764|GSHP_RAT shuffled
+   245 pos.      1 -    35 swiss|P34983|OLF4_MOUSE shuffled
+   245 pos.      1 -    20 swiss|P16218|GUNH_CLOTM shuffled
+   245 pos.      1 -    18 swiss|P31835|CDG2_BACMA shuffled
+   245 pos.      1 -    16 swiss|P12284|AGNX_APLSP shuffled
+   245 pos.      1 -    11 swiss|P26851|NULM_MARPO shuffled
+   244 pos.    828 -   869 swiss|P04415|DPOL_BPT4 shuffled
+   244 pos.    514 -   524 swiss|Q05047|CP72_CATRO shuffled
+   244 pos.    487 -   537 swiss|P33066|NTP1_VARV shuffled
+   244 pos.    484 -   518 swiss|P36124|YK09_YEAST shuffled
+   244 pos.    350 -   360 swiss|P24725|PSBA_GALSU shuffled
+   244 pos.    319 -   358 swiss|P08103|KHCK_MOUSE shuffled
+   244 pos.    294 -   331 swiss|Q06464|YCS4_ANTSP shuffled
+   244 pos.    287 -   326 swiss|P17194|VMSA_HPBDB shuffled
+   244 pos.    257 -   296 swiss|P19624|PDXA_ECOLI shuffled
+   244 pos.    245 -   292 swiss|P25490|TYY1_HUMAN shuffled
+   244 pos.    205 -   219 swiss|P14715|SPR1_IPOBA shuffled
+   244 pos.    131 -   152 swiss|P08700|IL3_HUMAN shuffled
+   244 pos.    121 -   132 swiss|P35225|IL13_HUMAN shuffled
+   244 pos.    108 -   147 swiss|Q05005|BRB2_RABIT shuffled
+   244 pos.     96 -   104 swiss|P01845|LAC3_MOUSE shuffled
+   244 pos.     91 -   147 swiss|Q05144|RAC1_MOUSE shuffled
+   244 pos.     87 -   123 swiss|Q06486|KC1D_RAT shuffled
+   244 pos.     79 -   126 swiss|P13836|AVRC_PSESG shuffled
+   244 pos.     71 -    94 swiss|P30013|AMPD_SALTY shuffled
+   244 pos.     57 -    61 swiss|P11794|VP8_CARMV shuffled
+   244 pos.     36 -    76 swiss|P20473|CB23_TETTH shuffled
+   244 pos.     19 -    59 swiss|P10797|RBS3_ARATH shuffled
+   244 pos.      1 -    42 swiss|P03027|NIFA_KLEPN shuffled
+   244 pos.      1 -    30 swiss|P80212|SDHA_CLOPR shuffled
+   244 pos.      1 -    21 swiss|P35481|CYT_CYPCA shuffled
+   244 pos.      1 -    13 swiss|P09900|RS10_RAT shuffled
+   244 pos.      1 -    11 swiss|P35587|HYPA_HYPLI shuffled
+   244 pos.      1 -     9 swiss|P20199|Y9K5_SSV1 shuffled
+   243 pos.    810 -   859 swiss|P21615|RRPO_ROTBU shuffled
+   243 pos.    760 -   796 swiss|P11325|SYLM_YEAST shuffled
+   243 pos.    633 -   672 swiss|P03261|DPOL_ADE02 shuffled
+   243 pos.    342 -   377 swiss|P11569|HGDA_ACIFE shuffled
+   243 pos.    339 -   373 swiss|P03880|MBI1_EMENI shuffled
+   243 pos.    335 -   341 swiss|P17330|G3P3_CAEEL shuffled
+   243 pos.    327 -   352 swiss|P06005|PSBD_SPIOL shuffled
+   243 pos.    311 -   336 swiss|P28860|GLPX_ECOLI shuffled
+   243 pos.    306 -   345 swiss|P04000|OPSR_HUMAN shuffled
+   243 pos.    301 -   314 swiss|P37738|FATD_VIBAN shuffled
+   243 pos.    290 -   329 swiss|P08185|CBG_HUMAN shuffled
+   243 pos.    236 -   247 swiss|P37543|YR98_BACSU shuffled
+   243 pos.    182 -   216 swiss|P05984|METR_SALTY shuffled
+   243 pos.    168 -   207 swiss|P27574|PYP1_SCHPO shuffled
+   243 pos.    161 -   202 swiss|P13595|NCA1_MOUSE shuffled
+   243 pos.    150 -   183 swiss|P31166|APT_ARATH shuffled
+   243 pos.    122 -   145 swiss|P02132|HBB1_XENLA shuffled
+   243 pos.    108 -   121 swiss|P13205|ANFB_RAT shuffled
+   243 pos.     96 -   115 swiss|P20857|THIO_ANASP shuffled
+   243 pos.     72 -   114 swiss|P23489|RCA_CHLRE shuffled
+   243 pos.     50 -    54 swiss|P15854|VG66_BPPH5 shuffled
+   243 pos.      4 -    43 swiss|P06461|VE5B_HPV6B shuffled
+   243 pos.      1 -    35 swiss|P19370|ACHN_CARAU shuffled
+   243 pos.      1 -    35 swiss|P13485|TAGF_BACSU shuffled
+   243 pos.      1 -    31 swiss|Q01036|VG51_HSVSA shuffled
+   243 pos.      1 -    19 swiss|P10656|GLNA_CLOAB shuffled
+   243 pos.      1 -    14 swiss|Q01329|PTA1_YEAST shuffled
+   243 pos.      1 -    14 swiss|P04528|REGA_BPT4 shuffled
+   243 pos.      1 -    12 swiss|P23859|POTC_ECOLI shuffled
+   242 pos.   2385 -  2422 swiss|Q02224|CENE_HUMAN shuffled
+   242 pos.   1292 -  1340 swiss|P18177|TOXB_CLODI shuffled
+   242 pos.    979 -  1032 swiss|P03370|POL_VILV shuffled
+   242 pos.    693 -   735 swiss|P06593|PHY3_AVESA shuffled
+   242 pos.    543 -   577 swiss|P17376|VL3_REOVL shuffled
+   242 pos.    508 -   550 swiss|P38280|YBZ8_YEAST shuffled
+   242 pos.    470 -   522 swiss|P26136|HEMA_IAMAB shuffled
+   242 pos.    443 -   492 swiss|P80317|TCPZ_MOUSE shuffled
+   242 pos.    404 -   440 swiss|P04587|POL_HV1B5 shuffled
+   242 pos.    402 -   438 swiss|P38274|YBY3_YEAST shuffled
+   242 pos.    375 -   410 swiss|P33260|CPCI_HUMAN shuffled
+   242 pos.    352 -   365 swiss|P37119|C713_SOLME shuffled
+   242 pos.    260 -   270 swiss|Q01479|VMT1_DHVI1 shuffled
+   242 pos.    194 -   237 swiss|Q01035|VG74_HSVSA shuffled
+   242 pos.    150 -   193 swiss|P33819|VE06_VARV shuffled
+   242 pos.    146 -   170 swiss|P11069|GLB3_LUMTE shuffled
+   242 pos.    135 -   176 swiss|P04802|SYDC_YEAST shuffled
+   242 pos.    133 -   162 swiss|P13613|LACB_EQUAS shuffled
+   242 pos.    123 -   162 swiss|P31776|YORI_HAEIN shuffled
+   242 pos.    117 -   121 swiss|P28265|SBP_BACSU shuffled
+   242 pos.     85 -   127 swiss|P22123|RAPA_DISOM shuffled
+   242 pos.     42 -    90 swiss|Q08479|KADA_ORYSA shuffled
+   242 pos.      1 -    17 swiss|P25176|VS09_ROTEL shuffled
+   242 pos.      1 -    16 swiss|P00911|TRPC_ACICA shuffled
+   242 pos.      1 -    14 swiss|P15569|ELIB_PHYCI shuffled
+   242 pos.      1 -    12 swiss|P34631|YOJ8_CAEEL shuffled
diff --git a/sh3.gpr b/sh3.gpr
new file mode 100644
index 0000000..464436b
--- /dev/null
+++ b/sh3.gpr
@@ -0,0 +1,66 @@
+(Peptide)   Length:   53
+
+# ID   SH3
+# AC   PS90004
+# DE   Src homology domain SH3.
+
+Cons A    C    D    E    F    G    H    I    K    L    M    N    P    Q    R    S    T    V    W    Y   Gap  Len  ..
+ F  -20  -30  -30  -40   20  -30  -20   10  -20    0  -10  -20  -30  -30  -40  -20  -10    0  -50   20  260   30
+ I  -10  -50  -20  -30  -20  -30    0   10   10  -10   10  -10  -20  -10   10  -10    0   10  -40  -40  260   30
+ A   20  -30   10    0  -50   20  -20  -10  -10  -30  -20   10   10    0  -20   20   20    0  -80  -50  260   30
+ L  -30  -80  -50  -40   20  -60  -20   20  -40   60   40  -30  -30  -20  -30  -30  -20   10  -30    0  260   30
+ Y  -40  -20  -60  -60   90  -70    0  -10  -50  -10  -30  -30  -60  -50  -60  -40  -40  -40  -10  110  260   30
+ D   10  -60   30   30  -70    0    0  -20  -10  -40  -30   20    0   10  -20    0    0  -20  -90  -60  260   30
+ Y  -50  -30  -60  -60  100  -70  -10  -10  -20  -10  -20  -30  -60  -50  -50  -40  -40  -40  -10  110  260   30
+ K  -10  -60   10   10  -40  -20    0  -20   20  -30  -10   10  -10   10   10    0    0  -30  -70  -60  260   30
+ A   10  -40   10    0  -50   10  -10  -10    0  -30  -10   10    0    0    0   10   10  -10  -70  -60  260   30
+ R    0  -50    0    0  -50  -10    0  -10   10  -30  -10   10    0   10   10    0    0  -20  -50  -50  260   30
+!   11
+ R    0  -50   10   10  -60    0   10  -20   10  -40  -20   10    0   10   20   10    0  -20  -50  -50  260   30
+ E   10  -60   20   20  -60    0    0  -20  -10  -40  -20   10   10   10  -10    0    0  -30  -80  -60  260   30
+ D    0  -60   20   20  -60    0   10  -30    0  -50  -30   20  -10   20  -10    0    0  -40  -70  -40  260   30
+ D    0  -80   40   30  -60    0    0  -20  -10  -30  -20   20  -20   20  -20    0  -10  -30  -90  -60  260   30
+ L  -20  -80  -50  -50   20  -50  -30   30  -40   70   50  -40  -30  -30  -40  -30  -20   30  -40  -20  260   30
+ S   10  -40   10   10  -50   10    0  -20   10  -40  -20   10    0    0    0   10   10  -20  -60  -50  260   30
+ F  -30  -70  -60  -60   60  -50  -30   30  -20   50   30  -40  -50  -40  -50  -40  -30   10  -30   30  260   30
+ Q  -10  -60    0    0  -30  -20   10  -10   10  -20    0    0  -10   10   10  -10    0  -10  -60  -40  260   30
+ K  -10  -80    0   10  -30  -20    0  -20   30  -30    0   10    0   20   20    0    0  -30  -60  -60  260   30
+ G   20  -50   10    0  -70   70  -30  -40  -20  -60  -40   10  -10  -20  -40   20    0  -20 -100  -80  260   30
+!   21
+ D   10  -70   50   40  -80   10   10  -30    0  -50  -30   20  -10   20  -20    0    0  -40 -100  -60  260   30
+ I    0  -50  -10  -20  -20  -20  -10   20    0    0   10  -10  -20    0    0  -10    0   10  -60  -50  260   30
+ L  -20  -60  -50  -50   30  -50  -30   40  -30   60   40  -40  -40  -30  -40  -30  -20   30  -50    0  260   30
+ Q  -10  -50  -10  -10  -30  -20    0    0    0  -20  -10    0  -10    0    0  -10    0  -10  -60  -30  260   30
+ V    0  -40  -30  -40  -10  -30  -30   50  -30   30   30  -20  -20  -20  -30  -20    0   50  -80  -40  260   30
+ L  -10  -60  -30  -30  -10  -30  -20   20  -30   30   20  -20  -20  -20  -30  -20  -10   20  -50  -30  260   30
+ D    0  -60   30   30  -60    0   10  -30   20  -50  -20   20  -10   20   10    0    0  -40  -70  -50  260   30
+ K  -10  -60    0    0  -20  -10    0  -30   30  -40  -10   10  -10    0   10    0    0  -30  -60  -40  260   30
+ N   10  -40   10   10  -50    0    0  -20    0  -30  -20   10   10    0  -10   10   10  -10  -70  -50  260   30
+ X    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0   10
+!   31
+ G   10  -50    0    0  -50   10  -20  -10  -20  -30  -20    0    0  -10  -20    0    0  -10  -80  -60  260   30
+ G   10  -60   30   30  -70   30    0  -40  -10  -50  -40   20  -10   10  -20   10    0  -30 -100  -60  260   30
+ W  -90 -120  -90 -110   10 -110  -40  -80  -50  -30  -60  -60  -80  -70   30  -40  -80  -90  260    0  260   30
+ W  -70  -90  -90  -90    0  -90  -40  -50  -50  -10  -40  -60  -70  -60   20  -30  -60  -60  180  -10  260   30
+ K  -10  -70    0    0  -30  -20    0  -20   20  -30  -10   10  -10   10   20    0  -10  -30  -50  -50  260   30
+ G   20  -30    0  -10  -60   30  -30  -20  -30  -40  -30    0    0  -20  -30   10    0    0 -100  -60  260   30
+ Q  -20  -60    0    0  -30  -30   10  -20    0  -20  -10    0  -20   10   10  -10  -10  -30  -50  -30  260   30
+ X    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0   20
+ T    0  -40  -10  -10  -40    0  -20    0  -10  -20    0    0  -10  -10  -10    0   10    0  -70  -50  260   30
+ T    0  -50    0    0  -30  -10  -10  -10   10  -30  -10   10  -10    0    0   10   10  -10  -60  -40  260   30
+!   41
+ G    0  -50    0  -10  -50   30  -20  -30  -10  -50  -30    0  -10  -10  -10   10    0  -20  -70  -60  260   30
+ K    0  -60   10   10  -50  -10   10  -20   20  -40  -10   10  -10   20   20    0    0  -30  -60  -60  260   30
+ R  -10  -60  -10  -10  -50  -30   10  -10   10  -30  -10    0  -10   10   30  -10  -10  -20  -20  -60  260   30
+ G   10  -50    0    0  -60   60  -30  -30  -30  -50  -40    0  -10  -20  -40   10    0  -20 -100  -60  260   30
+ W  -50  -50  -50  -50   20  -60  -20  -20  -40  -10  -30  -30  -60  -50  -30  -30  -40  -40   40   30  260   30
+ F  -30  -50  -60  -60   60  -50  -30   40  -10   30   20  -40  -40  -50  -40  -30  -20   20  -40   30  260   30
+ P   20  -40  -10  -10  -70  -10    0  -30  -20  -40  -30  -10   80    0    0   10    0  -20  -80  -70  260   30
+ G   10  -30    0    0  -40   20  -10  -20    0  -30  -20    0    0  -10  -10   10   10  -10  -60  -50  260   30
+ N   10  -50   20   10  -50    0   10  -20   10  -40  -20   20    0    0    0   10   10  -20  -70  -40  260   30
+ Y  -50  -10  -70  -70  100  -80  -10  -10  -50  -10  -30  -30  -70  -60  -60  -40  -40  -50    0  130  260   30
+!   51
+ V    0  -30  -30  -50  -20  -20  -30   50  -30   20   20  -20  -20  -30  -40  -10    0   50  -80  -50  260   30
+ E   10  -60   20   30  -60    0    0  -20   10  -40  -20   10    0   20    0    0    0  -30  -80  -60  260   30
+ P    0  -50  -10  -10  -20  -20  -10  -20  -10  -30  -20    0   10  -10  -20    0  -10  -20  -60  -30  260   30
+ *  100  100  100  100  100  100  100  100  100  100  100  100  100  100  100  100  100  100  100  100
diff --git a/sh3.msf b/sh3.msf
new file mode 100644
index 0000000..2ff83c4
--- /dev/null
+++ b/sh3.msf
@@ -0,0 +1,86 @@
+
+ /usr/tmp/aaaa03740  MSF: 93  Type: N  January 01, 1776  12:00  Check: 871 ..
+
+ Name: ABL1_HUMAN_1     Len:    93  Check:  7415  Weight:  1.00
+ Name: BEB1_YEAST_1     Len:    93  Check:  6527  Weight:  1.00
+ Name: CC25_YEAST_1     Len:    93  Check:  2233  Weight:  1.00
+ Name: CICX_HUMAN_1     Len:    93  Check:  4047  Weight:  1.00
+ Name: GTPA_HUMAN_1     Len:    93  Check:  5690  Weight:  1.00
+ Name: MSAB_HUMAN_1     Len:    93  Check:  2663  Weight:  1.00
+ Name: MYSB_DICDI_1     Len:    93  Check:  3422  Weight:  1.00
+ Name: NCF1_HUMAN_1     Len:    93  Check:  5067  Weight:  1.00
+ Name: NCF1_HUMAN_2     Len:    93  Check:  4929  Weight:  1.00
+ Name: NCK_HUMAN_1      Len:    93  Check:  6368  Weight:  1.00
+ Name: NCK_HUMAN_2      Len:    93  Check:  3962  Weight:  1.00
+ Name: NCK_HUMAN_3      Len:    93  Check:  6499  Weight:  1.00
+ Name: P85A_BOVIN_1     Len:    93  Check:  4105  Weight:  1.00
+ Name: PIP5_HUMAN_1     Len:    93  Check:  6487  Weight:  1.00
+ Name: SCD2_SCHPO_1     Len:    93  Check:  4071  Weight:  1.00
+ Name: SCD2_SCHPO_2     Len:    93  Check:  2703  Weight:  1.00
+ Name: SEM5_CAEEL_1     Len:    93  Check:  4231  Weight:  1.00
+ Name: SEM5_CAEEL_2     Len:    93  Check:  5640  Weight:  1.00
+ Name: SRC_CHICK_1      Len:    93  Check:  8009  Weight:  1.00
+ Name: STE6_SCHPO_1     Len:    93  Check:  5061  Weight:  1.00
+ Name: VAV_HUMAN_1      Len:    93  Check:  9929  Weight:  1.00
+ Name: VAV_HUMAN_2      Len:    93  Check:  4259  Weight:  1.00
+ Name: YFJ4_YEAST_1     Len:    93  Check:  2459  Weight:  1.00
+ Name: YHR4_YEAST_1     Len:    93  Check:  7079  Weight:  1.00
+ Name: YHR4_YEAST_2     Len:    93  Check:  9409  Weight:  1.00
+ Name: ZO1_HUMAN_1      Len:    93  Check:  8607  Weight:  1.00
+
+//
+
+   ABL1_HUMAN_1  NDPNLFVALY DFV-----AS GDNTLSI--- ----TKGEKL RVLGY-----
+   BEB1_YEAST_1  GNFPMYIAIN EYF-----KR MEDELDM--- ----KPGDKI KVITD-----
+   CC25_YEAST_1  RPIGIVVAAY DFNYPIKKDS SSQLLSV--- ----QQGETI YILNK-----
+   CICX_HUMAN_1  PVAFAVRTNV GYN-----PS PGDEVPVQGV AITFEPKDFL HIKEK-----
+   GTPA_HUMAN_1  EDRRRVRAIL PYT----KVP DTDEISF--- ----LKGDMF IVHNE-----
+   MSAB_HUMAN_1  PVAFAVRTNV SYS-----AA HEDDVPVPGM AISFEAKDFL HVKEK-----
+   MYSB_DICDI_1  PSRPTAKALY DYD-----AS STDELSF--- ----KEGDII FIVQK-----
+   NCF1_HUMAN_1  IILQTYRAIA DYE-----KT SGSEMAL--- ----STGDVV EVVEK-----
+   NCF1_HUMAN_2  YAGEPYVAIK AYT-----AV EGDEVSL--- ----LEGEAV EVIHK-----
+    NCK_HUMAN_1  AEEVVVVAKF DYV-----AQ QEQELDI--- ----KKNERL WLLDD-----
+    NCK_HUMAN_2  ---------F NYM-----AE REDELSL--- ----IKGTKV IVMEK-----
+    NCK_HUMAN_3  QVLHVVQALY PFS-----SS NDEELNF--- ----EKGDVM DVIEK-----
+   P85A_BOVIN_1  AEGYQYRALY DYK-----KE REEDIDL--- ----HLGDIL TVNKGSLVAL
+   PIP5_HUMAN_1  MPQRTVKALY DYK-----AK RSDELSF--- ----CRGALI HNVSK-----
+   SCD2_SCHPO_1  PPRKVIRALY DYT-----AR KATEVSF--- ----AKGDFF HVIGR-----
+   SCD2_SCHPO_2  SQPLFGIVQF DFA-----AE RPDELEA--- ----KAGEAI IIIAR-----
+   SEM5_CAEEL_1  ---MEAVAEH DFQ-----AG SPDELSF--- ----KRGNTL KVLNK-----
+   SEM5_CAEEL_2  VETKFVQALF DFN-----PQ ESGELAF--- ----KRGDVI TLINK-----
+    SRC_CHICK_1  GGVTTFVALY DYE-----SR TETDLSF--- ----KKGERL QIVNN-----
+   STE6_SCHPO_1  -MRFQTTAIS DYE----NSS NPSFLKF--- ----SAGDTI IVIEV-----
+    VAV_HUMAN_1  ---------- ---------- ----LRL--- ----NPGDIV ELTKA-----
+    VAV_HUMAN_2  KYFGTAKARY DFC-----AR DRSELSL--- ----KEGDII KILNK-----
+   YFJ4_YEAST_1  TSSPKAVALY SFA-----GE ESGDLPF--- ----RKGDVI TILKK-----
+   YHR4_YEAST_1  SDDGKNKVLY AYV-----QK DDDEITI--- ----TPGDKI SLVAR-----
+   YHR4_YEAST_2  LPVRTMEAIY AYE-----AQ GDDEISI--- ----DPGDII TVIRG-----
+    ZO1_HUMAN_1  GDSFYIRTHF EYE-----KE SPYGLSF--- ----NKGEVF RAVDT-----
+
+   ABL1_HUMAN_1  ---------N HNGEWCEAQT K------NGQ GWVPSNYITP VNS
+   BEB1_YEAST_1  -------DEE YKDGWYFGRN LR----TNEE GLYPVVFTQK ITV
+   CC25_YEAST_1  ---------- NSSGWWDGLV IDDSNGKVNR GWFPQNFGRP LRD
+   CICX_HUMAN_1  ---------- YNNDWWIGRL VK---EGCEV GFIPS----- ---
+   GTPA_HUMAN_1  ---------- LEDGWMWVTN LR----TDEQ GLIVEDLVEE VGR
+   MSAB_HUMAN_1  ---------- FNNDWWIGRL VK---EGCEI GFIPS----- ---
+   MYSB_DICDI_1  ---------- DNGGWTQGEL K-----SGQK GWAPTNYLQY N--
+   NCF1_HUMAN_1  ---------- SESGWWFCQM K------AKR GWIPASFLEP LDS
+   NCF1_HUMAN_2  ---------- LLDGWWVIRK D------DVT GYFPSMYLQK SGQ
+    NCK_HUMAN_1  ---------- -SKSWWRVRN SM-----NKT GFVPSNYVER KNS
+    NCK_HUMAN_2  ---------- CSDGWWRGSY N------GQV GWFPSNYVTE EGD
+    NCK_HUMAN_3  --------PE NDPEWWKCRK I-----NGMV GLVPKNYVTV MQN
+   P85A_BOVIN_1  GFSDGQEAKP EEIGWLNGYN ET----TGER GDFPGTYVEY IGR
+   PIP5_HUMAN_1  ---------- EPGGWWKGDY G-----TRIQ QYFPSNYVED IST
+   SCD2_SCHPO_1  ---------E NDKAWYEVCN PA----AGTR GFVPVSHFEE IGK
+   SCD2_SCHPO_2  ---------- SNHEWLVAKP IG---RLGGP GLIPLSFIQL RDL
+   SEM5_CAEEL_1  ---------D EDPHWYKAEL D------GNE GFIPSNYIRM TEC
+   SEM5_CAEEL_2  ---------- DDPNWWEGQL N------NRR GIFPSNYVCP YNS
+    SRC_CHICK_1  ---------- TEGDWWLAHS LT----TGQT GYIPSNYVAP SDS
+   STE6_SCHPO_1  ---------- LEDGWCDGIC S------EKR GWFPTSCIDS SKI
+    VAV_HUMAN_1  ---------E AEQNWWEGRN TS----TNEI GWFPCNRVKP YVH
+    VAV_HUMAN_2  ---------K GQQGWWRGEI Y------GRV GWFPANYVEE DYS
+   YFJ4_YEAST_1  --------SD SQNDWWTGRV N------GRE GIFPANYVEL V--
+   YHR4_YEAST_1  ---------D TGSGWTKINN DT----TGET GLVPTTYIRI SSA
+   YHR4_YEAST_2  ---------D DGSGWTYGEC D------GLK GLFPTSYCK- ---
+    ZO1_HUMAN_1  ------LYNG KLGSWLAIRI GK-NHKEVER GIIPNKNRAE QLA
+
diff --git a/sh3.prf b/sh3.prf
new file mode 100644
index 0000000..c2310bf
--- /dev/null
+++ b/sh3.prf
@@ -0,0 +1,133 @@
+ID   SH3; MATRIX.
+AC   PS50002;
+DT   NOV-1995 (CREATED); NOV-1995 (DATA UPDATE); NOV-1995 (INFO UPDATE).
+DE   Src homology 3 (SH3) domain profile.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=62;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=57;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=0.9383; R2=0.016376; TEXT='OrigScore';
+MA   /CUT_OFF: LEVEL=0; SCORE=462; N_SCORE=8.5; MODE=1;
+MA   /DEFAULT: D=-20; I=-20; B1=-60; E1=-60; MI=-105; MD=-105; IM=-105; DM=-105;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='P'; M=-4,-8,-26,-7,-1,-19,-11,-11,-15,-3,-16,-9,-6,6,-3,-6,-2,-3,-14,-25,-15,-3;
+MA   /M: SY='E'; M=-5,-3,-25,0,4,-18,-8,-9,-17,-5,-15,-11,-4,-4,-3,-8,-1,-6,-14,-26,-14,0;
+MA   /M: M=-5,-8,-25,-8,-4,-17,-4,-14,-14,-5,-13,-8,-7,-6,-7,-6,-4,-7,-11,-24,-15,-6;
+MA   /M: M=-10,-6,-23,-7,-1,-9,-17,-8,-15,-1,-12,-6,-6,-6,-3,-1,-6,-4,-14,-21,-6,-2;
+MA   /M: SY='Y'; M=-5,-15,-21,-18,-9,-4,-24,-12,-1,-6,-1,1,-13,-17,-5,-5,-8,-1,0,-14,3,-8;
+MA   /M: SY='V'; M=2,-22,-14,-27,-23,7,-21,-17,11,-18,4,4,-20,-25,-22,-19,-9,-4,19,-15,4,-23;
+MA   /M: SY='R'; M=-9,-15,-24,-17,-9,-13,-25,-14,1,3,-6,1,-11,-19,-4,9,-9,-3,6,-22,-6,-8;
+MA   /M: SY='A'; M=38,-11,-9,-19,-11,-18,-5,-21,-7,-11,-9,-9,-11,-12,-12,-19,8,3,4,-23,-19,-11;
+MA   /M: SY='L'; M=-8,-20,-22,-22,-13,-2,-27,-14,11,-16,22,11,-18,-23,-11,-12,-18,-7,5,-21,-2,-13;
+MA   /M: SY='Y'; M=-17,-19,-26,-22,-20,30,-26,9,-2,-13,0,-1,-16,-28,-14,-11,-16,-9,-7,15,54,-19;
+MA   /M: SY='D'; M=-11,30,-28,43,14,-34,-6,-4,-33,-2,-27,-24,13,-4,0,-10,2,-8,-26,-35,-20,6;
+MA   /M: SY='Y'; M=-19,-23,-27,-26,-23,44,-29,6,1,-17,4,0,-20,-30,-20,-14,-20,-10,-6,22,61,-23;
+MA   /M: SY='E'; M=-6,5,-23,6,11,-22,-15,-3,-19,2,-18,-10,2,-7,6,-3,0,-4,-16,-28,-14,8;
+MA   /I: I=-6; MI=0; IM=0; B1=-50;
+MA   /M: SY='A'; M=16,-9,-20,-12,-5,-22,-2,-16,-17,-4,-18,-12,-6,2,-6,-8,5,-1,-11,-24,-20,-7;
+MA   /M: SY='E'; M=-4,-2,-25,-3,8,-23,-13,-6,-19,5,-19,-10,1,-7,7,6,2,-2,-16,-26,-15,6;
+MA   /M: SY='D'; M=-6,5,-24,7,7,-23,-10,-3,-22,2,-20,-12,4,-9,4,1,4,0,-18,-29,-14,5;
+MA   /M: SY='P'; M=-4,4,-24,9,9,-28,-6,-10,-26,-3,-25,-19,0,11,-2,-8,3,-4,-23,-31,-22,2;
+MA   /M: SY='D'; M=-10,18,-26,24,10,-29,-1,-4,-30,-1,-26,-20,10,-8,1,-6,3,-6,-25,-31,-17,5;
+MA   /M: SY='E'; M=-12,18,-28,28,35,-28,-14,3,-31,3,-22,-21,6,-6,9,-4,0,-9,-28,-31,-16,22;
+MA   /M: SY='L'; M=-8,-28,-18,-30,-21,7,-30,-21,21,-27,38,17,-27,-28,-20,-20,-24,-8,13,-21,-1,-21;
+MA   /M: SY='S'; M=3,0,-19,0,2,-22,-6,-10,-20,-5,-22,-15,3,-3,1,-5,15,8,-15,-30,-17,0;
+MA   /M: SY='F'; M=-12,-28,-20,-34,-25,36,-29,-20,13,-26,21,11,-22,-27,-27,-19,-20,-8,10,-8,11,-24;
+MA   /I: I=-6; MI=0; IM=0;
+MA   /M: SY='K'; M=-9,-1,-23,-2,5,-20,-17,-5,-20,14,-17,-8,1,-14,5,14,-4,-4,-16,-24,-11,4;
+MA   /M: SY='K'; M=-5,-4,-28,-3,9,-25,-16,-9,-22,17,-21,-11,-3,1,5,9,-5,-7,-18,-24,-15,6;
+MA   /M: SY='G'; M=-1,-3,-28,-3,-12,-29,50,-16,-37,-13,-29,-20,4,-18,-14,-14,1,-16,-28,-23,-27,-13;
+MA   /M: SY='D'; M=-14,30,-29,44,28,-34,-14,-1,-32,2,-24,-23,11,-8,7,-6,0,-9,-27,-35,-19,18;
+MA   /M: SY='I'; M=-8,-18,-23,-22,-14,-3,-27,-16,10,-7,2,6,-14,-18,-11,-7,-11,-4,10,-20,-2,-14;
+MA   /M: SY='I'; M=-10,-28,-18,-32,-25,11,-32,-19,24,-25,22,16,-24,-27,-21,-21,-20,-8,19,-18,4,-24;
+MA   /M: SY='Y'; M=-9,-7,-24,-10,-3,-8,-22,0,-7,-3,-7,-3,-4,-17,-1,-2,-5,-1,-8,-18,2,-3;
+MA   /M: SY='I'; M=-4,-27,-19,-32,-27,1,-32,-27,32,-24,19,14,-24,-26,-23,-23,-16,-5,32,-25,-5,-27;
+MA   /M: SY='L'; M=-7,-21,-18,-23,-16,-2,-26,-18,14,-20,18,9,-19,-23,-15,-17,-14,-5,11,-24,-5,-17;
+MA   /M: SY='E'; M=-6,14,-24,14,16,-24,-9,-2,-26,6,-23,-17,14,-11,5,3,3,-4,-23,-30,-16,10;
+MA   /M: SY='K'; M=-4,5,-22,6,6,-23,-14,-6,-21,11,-21,-11,3,-13,4,5,1,-2,-14,-26,-11,4;
+MA   /I: I=-5; MI=0; MD=-13; IM=0;
+MA   /M: SY='S'; M=-5,-1,-16,-1,-1,-12,-11,-5,-11,-5,-11,-8,0,-13,-3,-7,1,1,-8,-22,-7,-3; D=-3;
+MA   /I: I=-5; MI=-13; IM=-13; DM=-13;
+MA   /M: SY='D'; M=-10,22,-25,26,16,-27,-9,0,-26,-1,-23,-19,17,-8,3,-6,4,-4,-24,-34,-18,9;
+MA   /M: SY='D'; M=-4,6,-24,8,3,-27,3,-8,-25,-2,-23,-16,4,-7,-2,-7,1,-8,-20,-29,-19,0;
+MA   /M: SY='D'; M=-8,13,-27,16,7,-26,11,1,-31,-6,-26,-19,11,-13,-2,-9,2,-10,-27,-28,-16,2;
+MA   /M: SY='W'; M=-20,-40,-50,-40,-30,10,-20,-29,-20,-20,-20,-20,-40,-30,-20,-20,-40,-30,-30,148,31,-20;
+MA   /M: SY='W'; M=-16,-32,-32,-33,-26,11,-23,-20,-11,-19,-7,-9,-31,-29,-18,-18,-30,-19,-18,85,27,-20;
+MA   /M: SY='R'; M=-11,-5,-27,-5,4,-14,-21,-8,-15,9,-10,-6,-5,-15,2,10,-9,-7,-13,-18,-5,2;
+MA   /M: SY='G'; M=15,-16,-14,-20,-20,-19,17,-23,-11,-18,-12,-8,-11,-20,-19,-21,0,-8,0,-23,-21,-20;
+MA   /M: SY='R'; M=-12,-2,-26,-1,12,-23,-20,-2,-22,16,-17,-9,-1,-14,10,23,-5,-7,-17,-24,-10,9;
+MA   /M: SY='N'; M=-8,-2,-10,-6,-9,-11,-18,-5,-9,-9,-7,-6,2,-19,-9,-7,-3,-3,-7,-29,-8,-10;
+MA   /M: M=-8,-5,-22,-7,-4,-14,-15,-6,-8,-4,-6,-3,-3,-16,-5,-4,-7,-6,-7,-26,-9,-5;
+MA   /I: I=-4; MI=-12; MD=-12; IM=-12;
+MA   /M: SY='R'; M=-1,0,-12,-1,-2,-12,-4,-6,-11,1,-10,-7,1,-8,-2,3,3,3,-6,-16,-8,-3; D=-2;
+MA   /I: I=-4; MI=0; MD=-12; IM=0; DM=-12; E1=-50;
+MA   /M: SY='T'; M=-2,2,-13,-1,-2,-11,-7,-9,-11,-5,-10,-8,3,-10,-4,-7,7,12,-7,-21,-9,-3; D=-2;
+MA   /I: I=-4; MI=-12; IM=-12; DM=-12;
+MA   /M: SY='G'; M=-5,0,-23,0,-7,-26,28,-13,-30,-9,-23,-16,4,-19,-11,-9,-2,-13,-23,-26,-23,-9;
+MA   /M: SY='Q'; M=-10,3,-28,4,15,-28,-14,1,-24,13,-21,-10,3,-8,17,11,-2,-8,-23,-25,-13,15;
+MA   /M: SY='E'; M=-8,-6,-25,-6,10,-18,-21,-8,-13,4,-13,-7,-6,-10,8,7,-3,-3,-11,-22,-11,8;
+MA   /M: SY='G'; M=0,-10,-30,-10,-19,-29,67,-20,-39,-20,-28,-19,-1,-20,-19,-20,-1,-20,-29,-20,-29,-19;
+MA   /M: SY='Y'; M=-15,-27,-28,-30,-24,20,-29,-16,10,-23,14,7,-25,-27,-20,-19,-25,-13,2,20,21,-22;
+MA   /M: SY='I'; M=-8,-29,-21,-35,-28,22,-32,-25,26,-26,15,10,-23,-26,-28,-23,-17,-7,24,-14,7,-28;
+MA   /M: SY='P'; M=-8,-20,-38,-11,-1,-29,-19,-20,-19,-10,-29,-19,-20,84,-10,-20,-9,-9,-27,-30,-29,-10;
+MA   /M: SY='S'; M=11,-5,-10,-8,-5,-19,-3,-13,-17,-7,-20,-14,0,-12,-5,-10,17,8,-8,-31,-18,-5;
+MA   /M: SY='N'; M=-3,18,-19,8,-1,-21,-4,-2,-18,-2,-24,-16,28,-11,-1,-4,10,4,-19,-35,-19,-1;
+MA   /M: SY='Y'; M=-16,-20,-22,-23,-20,28,-28,6,-1,-13,1,-1,-17,-28,-15,-10,-17,-9,-6,13,50,-20;
+MA   /M: SY='V'; M=-5,-27,-15,-29,-25,1,-29,-25,23,-18,14,10,-25,-27,-23,-15,-14,-2,31,-25,-7,-25;
+MA   /M: SY='E'; M=-1,-1,-23,0,14,-24,-16,-6,-20,6,-16,-11,-3,-11,11,5,1,-1,-16,-24,-14,12;
+MA   /M: SY='E'; M=-9,-7,-27,-2,11,-20,-20,-10,-15,0,-14,-9,-9,11,0,-5,-7,-8,-17,-26,-14,4;
+MA   /M: M=-6,-13,-21,-15,-9,-8,-20,-11,0,-7,-3,0,-10,-17,-7,-6,-7,-5,0,-19,-3,-9;
+MA   /M: SY='D'; M=-8,9,-25,10,5,-23,-8,-5,-21,2,-19,-13,8,-10,-1,0,-1,-6,-18,-29,-15,1;
+MA   /M: SY='S'; M=-1,-4,-21,-5,-4,-18,-9,-6,-14,-7,-14,-10,-1,-7,-4,-5,4,-1,-11,-29,-14,-5;
+MA   /I: E1=0; IE=-105; DE=-105;
+NR   /RELEASE=32,49340;
+NR   /TOTAL=153(133); /POSITIVE=153(133); /UNKNOWN=0(0); /FALSE_POS=0(0);
+NR   /FALSE_NEG=0; /PARTIAL=3;
+CC   /TAXO-RANGE=??E?V; /MAX-REPEAT=4;
+DR   P00519, ABL1_HUMAN, T; P00520, ABL_MOUSE , T; P00522, ABL_DROME , T;
+DR   P00523, SRC_CHICK , T; P00524, SRC_RSVSR , T; P00525, SRC_AVISR , T;
+DR   P00526, SRC_RSVP  , T; P00527, YES_AVISY , T; P00528, SRC1_DROME, T;
+DR   P02549, SPCA_HUMAN, T; P03949, ABL1_CAEEL, T; P04821, CC25_YEAST, T;
+DR   P05433, GAGC_AVISC, T; P05480, SRCN_MOUSE, T; P06239, LCK_HUMAN , T;
+DR   P06240, LCK_MOUSE , T; P06241, FYN_HUMAN , T; P07751, SPCN_CHICK, T;
+DR   P07947, YES_HUMAN , T; P07948, LYN_HUMAN , T; P08103, HCK_MOUSE , T;
+DR   P08487, PIP4_BOVIN, T; P08630, SRC2_DROME, T; P08631, HCK_HUMAN , T;
+DR   P09324, YES_CHICK , T; P09769, FGR_HUMAN , T; P09851, GTPA_BOVIN, T;
+DR   P10447, ABL_FSVHY , T; P10569, MYSC_ACACA, T; P10686, PIP4_RAT  , T;
+DR   P10936, YES_XENLA , T; P11710, FUS1_YEAST, T; P12931, SRC_HUMAN , T;
+DR   P13115, SRC1_XENLA, T; P13116, SRC2_XENLA, T; P13395, SPCA_DROME, T;
+DR   P13406, FYN_XENLA , T; P14084, SRC_AVISS , T; P14085, SRC_AVIST , T;
+DR   P14234, FGR_MOUSE , T; P14317, HS1_HUMAN , T; P14598, NCF1_HUMAN, T;
+DR   P14771, SC25_YEAST, T; P15054, SRC_AVIS2 , T; P15498, VAV_HUMAN , T;
+DR   P15891, ABP1_YEAST, T; P16277, BLK_MOUSE , T; P16333, NCK_HUMAN , T;
+DR   P16546, FODA_MOUSE, T; P16885, PIP5_HUMAN, T; P17713, STK_HYDAT , T;
+DR   P19174, PIP4_HUMAN, T; P19517, CICB_RABIT, T; P19706, MYSB_ACACA, T;
+DR   P19878, NCF2_HUMAN, T; P20936, GTPA_HUMAN, T; P23726, P85B_BOVIN, T;
+DR   P23727, P85A_BOVIN, T; P24135, PIP5_RAT  , T; P24604, TEC_MOUSE , T;
+DR   P25020, SRC_RSVH1 , T; P25911, LYN_MOUSE , T; P26450, P85A_MOUSE, T;
+DR   P26674, STE6_SCHPO, T; P27446, FYN_XIPHE , T; P27447, YES_XIPHE , T;
+DR   P27637, YAI4_YEAST, T; P27870, VAV_MOUSE , T; P27986, P85A_HUMAN, T;
+DR   P29354, GRB2_HUMAN, T; P29355, SEM5_CAEEL, T; P29366, BEM1_YEAST, T;
+DR   P31007, DLG1_DROME, T; P31016, PSD9_RAT  , T; P31693, SRC_RSVPA , T;
+DR   P32577, CSK_RAT   , T; P32790, SLA1_YEAST, T; P32793, YHH6_YEAST, T;
+DR   P34092, MYSB_DICDI, T; P34109, MYSD_DICDI, T; P34258, YKA7_CAEEL, T;
+DR   P34416, YLZ3_CAEEL, T; P35991, BTK_MOUSE , T; P36006, MYS3_YEAST, T;
+DR   P38041, BOB1_YEAST, T; P38479, ABP1_SACEX, T; P38753, YHA2_YEAST, T;
+DR   P38822, YHR4_YEAST, T; P39447, ZO1_MOUSE , T; P39688, FYN_MOUSE , T;
+DR   P39743, R167_YEAST, T; P39969, BEB1_YEAST, T; P40073, SS81_YEAST, T;
+DR   P40996, SCD2_SCHPO, T; P41239, CSK_CHICK , T; P41240, CSK_HUMAN , T;
+DR   P41241, CSK_MOUSE , T; P41242, CTK_MOUSE , T; P41243, CTK_RAT   , T;
+DR   P42522, MYSC_DICDI, T; P42679, CTK_HUMAN , T; P42680, TEC_HUMAN , T;
+DR   P42681, TXK_HUMAN , T; P42682, TXK_MOUSE , T; P42683, LCK_CHICK , T;
+DR   P42684, ABL2_HUMAN, T; P42685, FRK_HUMAN , T; P42686, SRK1_SPOLA, T;
+DR   P42687, SPK1_DUGTI, T; P42690, SRK4_SPOLA, T; P43069, CC25_CANAL, T;
+DR   P43603, YFJ4_YEAST, T; P46108, CRK_HUMAN , T; P46109, CRKL_HUMAN, T;
+DR   Q00013, MPP1_HUMAN, T; Q01406, SRC8_CHICK, T; Q02639, CICB_HUMAN, T;
+DR   Q02640, CICX_HUMAN, T; Q02641, CICY_HUMAN, T; Q02977, YRK_CHICK , T;
+DR   Q03526, ITK_MOUSE , T; Q04736, YES_MOUSE , T; Q04929, CRK_CHICK , T;
+DR   Q05876, FYN_CHICK , T; Q06187, BTK_HUMAN , T; Q07014, LYN_RAT   , T;
+DR   Q07157, ZO1_HUMAN , T; Q07883, GRB2_CHICK, T; Q08012, DRK_DROME , T;
+DR   Q08289, MSAB_HUMAN, T; Q08881, ITK_HUMAN , T; Q09014, NCF1_MOUSE, T;
+DR   Q09746, YA65_SCHPO, T;
+DR   P09760, FLK_RAT   , P; P42688, SRK2_SPOLA, P; P42689, SRK3_SPOLA, P;
+DO   PDOC50002;
+//
+ P23727, P85A_BOVIN, T; P24135, PIP5_RAT  , T; P24604, TEC_MOUSE 
\ No newline at end of file
diff --git a/sh3.seq b/sh3.seq
new file mode 100644
index 0000000..cad78d0
--- /dev/null
+++ b/sh3.seq
@@ -0,0 +1,297 @@
+>sp|P03949|ABL1_CAEEL TYROSINE-PROTEIN KINASE ABL-1 (EC 2.7.1.112) (FRAGMENT).
+NNEWCEARLYSTRKNDASNQRRLGEIGWVPSNFIAPYNSLDKYTWYHGKISRSDSEAILG
+SGITGSFLVRESETSIGQYTISVRHDGRVFHYRINVDNTEKMFITQEVKFRTLGELVHHH
+SVHADGLICLLMYPASKKDKGRGLFSLSPNAPDEWELDRSEIIMHNKLGGGQYGDVYEGY
+WKRHDCTIAVKALKEDAMPLHEFLAEAAIMKDLHHKNLVRLLGVCTHEAPFYIITEFMCN
+GNLLEYLRRTDKSLLPPIILVQMASQIASGMSYLEARHFIHRDLAARNCLVSEHNIVKIA
+DFGLARFMKEDTYTAHAGAKFPIKWTAPEGLAFNTFSSKSDVWAFGVLLWEIATYGMAPY
+PGVELSNVYGLLENGFRMDGPQGCPPSVYRLMLQCWNWSPSDRPRFRDIHFNLENLISSN
+SLNDEVQKQLKKNNDKKLESDKRRSNVRERSDSKSRHSSHHDRDRDRESLHSRNSNPEIP
+NRSFIRTDDSVSFFNPSTTSKVTSFRAQGPPFPPPPQQNTKPKLLKSVLNSNARHASEEF
+ERNEQDDVVPLAEKNVR
+>sp|P00519|ABL1_HUMAN PROTO-ONCOGENE TYROSINE-PROTEIN KINASE ABL (EC 2.7.1.112) (P150) (C-ABL).
+MLEICLKLVGCKSKKGLSSSSSCYLEEALQRPVASDFEPQGLSEAARWNSKENLLAGPSE
+NDPNLFVALYDFVASGDNTLSITKGEKLRVLGYNHNGEWCEAQTKNGQGWVPSNYITPVN
+SLEKHSWYHGPVSRNAAEYLLSSGINGSFLVRESESSPGQRSISLRYEGRVYHYRINTAS
+DGKLYVSSESRFNTLAELVHHHSTVADGLITTLHYPAPKRNKPTVYGVSPNYDKWEMERT
+DITMKHKLGGGQYGEVYEGVWKKYSLTVAVKTLKEDTMEVEEFLKEAAVMKEIKHPNLVQ
+LLGVCTREPPFYIITEFMTYGNLLDYLRECNRQEVNAVVLLYMATQISSAMEYLEKKNFI
+HRDLAARNCLVGENHLVKVADFGLSRLMTGDTYTAHAGAKFPIKWTAPESLAYNKFSIKS
+DVWAFGVLLWEIATYGMSPYPGIDLSQVYELLEKDYRMERPEGCPEKVYELMRACWQWNP
+SDRPSFAEIHQAFETMFQESSISDEVEKELGKQGVRGAVSTLLQAPELPTKTRTSRRAAE
+HRDTTDVPEMPHSKGQGESDPLDHEPAVSPLLPRKERGPPEGGLNEDERLLPKDKKTNLF
+SALIKKKKKTAPTPPKRSSSFREMDGQPERRGAGEEEGRDISNGALAFTPLDTADPAKSP
+KPSNGAGVPNGALRESGGSGFRSPHLWKKSSTLTSSRLATGEEEGGGSSSKRFLRSCSAS
+CVPHGAKDTEWRSVTLPRDLQSTGRQFDSSTFGGHKSEKPALPRKRAGENRSDQVTRGTV
+TPPPRLVKKNEEAADEVFKDIMESSPGSSPPNLTPKPLRRQVTVAPASGLPHKEEAEKGS
+ALGTPAAAEPVTPTSKAGSGAPGGTSKGPAEESRVRRHKHSSESPGRDKGKLSRLKPAPP
+PPPAASAGKAGGKPSQSPSQEAAGEAVLGAKTKATSLVDAVNSDAAKPSQPGEGLKKPVL
+PATPKPQSAKPSGTPISPAPVPSTLPSASSALAGDQPSSTAFIPLISTRVSLRKTRQPPE
+RIASGAITKGVVLDSTEALCLAISRNSEQMASHSAVLEAGKNLYTFCVSYVDSIQQMRNK
+FAFREAINKLENNLRELQICPATAGSGPAATQDFSKLLSSVKEISDIVQR
+>sp|P39969|BEB1_YEAST BEB1 PROTEIN.
+MSNDREVPTLSQLNTTVSRDKDVSDTLSPDFDSKGSATGRDGGNFPMYIAINEYFKRMED
+ELDMKPGDKIKVITDDEEYKDGWYFGRNLRTNEEGLYPVVFTQKITVEKAPTLMRAKSTK
+RIYSPLTNEDPLLSSTFISENDSNSELPTPQPIETAASISRTANGKIERNLSLKNTMSDI
+DNALLEFKDDSIGPPDRFINSGRDEEHSITHETILSATDGLDVVESNSKPTTSSSTGFLN
+GDLENQATLINGIDTTKLNPVEAEFWSPEEITAYFIMEGYDVQSASRFQKHKISGKILLE
+LELVHLKELDINSFGTRFEIFKEIEKIKEAIRTNGRSLNRASKTNNANIYNQLMPPANVD
+QRASYRGHVRKTSQSLEDLPSQQNFIPTPRNTRNSSASKHRPKSLVFDSQEANANIAPDV
+QIPQVVEEMAGNENLFVSPRRAPKPPSYPSPAQPPKSPLLNNTRTSPSPAQLYSWQSPTL
+SFSGPKRTSYIDQYSSSDSNFNSRSALPKNNQGGGKALSPIPSPTRNSVRNEDSEGKLTS
+SSKRNSVPYYGYAPESSSDRKSSCSSHEEEQFQETMNTFERPTSSIYADGSTIASISNDK
+LAHEKEGKKKPTRHSSSLSSKSKSDSRRNSSLKRSSSASRTSSFKKSSFMLSPFRQQFTD
+NAARSSSPEENPITSMPSEKNSSPIVDKKSSKKSRSKRRSVSAKEAEIFTETVKDDKNKR
+SASEAIKGETLKGKSLRQMTARPVAKKKQTSAFIEGLRSISVKEAMKDADFSGWMSKKGS
+GAMSTWKTRFFTLHGTRLSYFSSTTDTRERGLIDITAHRVVPAKEDDKLVSLYAASTGKG
+RYCFKLLPPQPGSKKGLTFTQPRTHYFAVDNKEEMRGWMAALIKTTIDIDTSVPIISSYT
+TPTVSLSKAQEMLAEAREETKLREQQMLENEEDEDQFLWDQQQLQQQQHDNNQGQADRTI
+SASTQRTSDEDNTISTPNLSSANNTTIGSNGFSSPFLLASGLLSPGVARNSSMRGTEKKG
+KFSTEEDYFGDNSKHKTDKI
+>sp|P04821|CC25_YEAST CELL DIVISION CONTROL PROTEIN 25.
+MSDTNTSIPNTSSAREAGNASQTPSISSSSNTSTTTNTESSSASLSSSPSTSELTSIRPI
+GIVVAAYDFNYPIKKDSSSQLLSVQQGETIYILNKNSSGWWDGLVIDDSNGKVNRGWFPQ
+NFGRPLRDSHLRKHSHPMKKYSSSKSSRRSSLNSLGNSAYLHVPRNPSKSRRGSSTLSAS
+LSNAHNAETSSGHNNTVSMNNSPFSAPNDASHITPQSSNFNSNASLSQDMTKSADGSSEM
+NTNAIMNNNETNLQTSGEKAGPPLVAEETIKILPLEEIEMIINGIRSNIASTWSPIPLIT
+KTSDYKLVYYNKDLDIYCSELPLISNSIMESDDICDSEPKFPPNDHLVNLYTRDLRKNAN
+IEDSSTRSKQSESEQNRSSLLMEKQDSKETDGNNNSINDDDNNNENNKNEFNEAGPSSLN
+SLSAPDLTQNIQSRVVAPSRSSILAKSDIFYHYSRDIKLWTELQDLTVYYTKTAHKMFLK
+ENRLNFTKYFDLISDSIVFTQLGCRLMQHEIKAKSCSKEIKKIFKGLISSLSRISINSHL
+YFDSAFHRKKMDTMNDKDNDNQENNCSRTEGDDGKIEVDSVHDLVSVPLSGKRNVSTSTT
+DTLTPMRSSFSTVNENDMENFSVLGPRNSVNSVVTPRTSIQNSTLEDFSPSNKNFKSAKS
+IYEMVDVEFSKFLRHVQLLYFVLQSSVFSDDNTLPQLLPRFFKGSFSGGSWTNPFSTFIT
+DEFGNATKNKAVTSNEVTASSSKNSSISRIPPKMADAIASASGYSANSETNSQIDLKASS
+AASGSVFTPFNRPSHNRTFSRARVSKRKKKYPLTVDTLNTMKKKSSQIFEKLNNATGEHL
+KIISKPKSRIRNLEINSSTYEQINQNVLLLEILENLDLSIFINLKNLIKTPSILLDLESE
+EFLVHAMSSVSSVLTEFFDIKQAFHDIVIRLIMTTQQTTLDDPYLFSSMRSNFPVGHHEP
+FKNISNTPLVKGPFHKKNEQLALSLFHVLVSQDVEFNNLEFLNNSDDFKDACEKYVEISN
+LACIIVDQLIEERENLLNYAARMMKNNLTAELLKGEQEKWFDIYSEDYSDDDSENDEAII
+DDELGSEDYIERKAANIEKNLPWFLTSDYETSLVYDSRGKIRGGTKEALIEHLTSHELVD
+AAFNVTMLITFRSILTTREFFYALIYRYNLYPPEGLSYDDYNIWIEKKSNPIKCRVVNIM
+RTFLTQYWTRNYYEPGIPLILNFAKMVVSEKIPGAEDLLQKINEKLINENEKEPVDPKQQ
+DSVSAVVQTTKRDNKSPIHMSSSSLPSSASSAFFRLKKLKLLDIDPYTYATQLTVLEHDL
+YLRITMFECLDRAWGTKYCNMGGSPNITKFIANANTLTNFVSHTIVKQADVKTRSKLTQY
+FVTVAQHCKELNNFSSMTAIVSALYSSPIYRLKKTWDLVSTESKDLLKNLNNLMDSKRNF
+VKYRELLRSVTDVACVPFFGVYLSDLTFTFVGNPDFLHNSTNIINFSKRTKIANIVEEII
+SFKRFHYKLKRLDDIQTVIEASLENVPHIEKQYQLSLQVEPRSGNTKGSTHASSASGTKT
+AKFLSEFTDDKNGNFLKLGKKKPPSRLFR
+>sp|Q02640|CICX_HUMAN DIHYDROPRYRIDINE-SENSITIVE L-TYPE, BRAIN CALCIUM CHANNEL BETA-1-B1 SUBUNIT.
+MVQKTSMSRGPYPPSQEIPMEVFDPSPQGKYSKRKGRFKRSDGSTSSDTTSNSFVRQGSA
+ESYTSRPSDSDVSLEEDREALRKEAERQALAQLEKAKTKPVAFAVRTNVGYNPSPGDEVP
+VQGVAITFEPKDFLHIKEKYNNDWWIGRLVKEGCEVGFIPSPVKLDSLRLLQEQKLRQNR
+LGSSKSGDNSSSSLGDVVTGTRRPTPPASAKQKQKSTEHVPPYDVVPSMRPIILVGPSLK
+GYEVTDMMQKALFDFLKHRFDGRISITRVTADISLAKRSVLNNPSKHIIIERSNTRSSLA
+EVQSEIERIFELARTLQLVALDADTINHPAQLSKTSLAPIIVYIKITSPKVLQRLIKSRG
+KSQSKHLNVQIAASEKLAQCPPEMFDIILDENQLEDACEHLAEYLEAYWKATHPPSSTPP
+NPLLNRTMATAALRRSPAPVSNLQVQVLTSLRRNLGFWGGLESSQRGSVVPQEQEHAM
+>sp|P20936|GTPA_HUMAN GTPASE-ACTIVATING PROTEIN (GAP) (RAS P21 PROTEIN ACTIVATOR).
+MMAAEAGSEEGGPVTAGAGGGGAAAGSSAYPAVCRVKIPAALPVAAAPYPGLVETGVAGT
+LGGGAALGSEFLGAGSVAGALGGAGLTGGGTAAGVAGAAAGVAGAAVAGPSGDMALTKLP
+TSLLAETLGPGGGFPPLPPPPYLPPLGAGLGTVDEGDSLDGPEYEEEEVAIPLTAPPTNQ
+WYHGKLDRTIAEERLRQAGKSGSYLIRESDRRPGSFVLSFLSQMNVVNHFRIIAMCGDYY
+IGGRRFSSLSDLIGYYSHVSCLLKGEKLLYPVAPPEPVEDRRRVRAILPYTKVPDTDEIS
+FLKGDMFIVHNELEDGWMWVTNLRTDEQGLIVEDLVEEVGREEDPHEGKIWFHGKISKQE
+AYNLLMTVGQVCSFLVRPSDNTPGDYSLYFRTNENIQRFKICPTPNNQFMMGGRYYNSIG
+DIIDHYRKEQIVEGYYLKEPVPMQDQEQVLNDTVDGKEIYNTIRRKTKDAFYKNIVKKGY
+LLKKGKGKRWKNLYFILEGSDAQLIYFESEKRATKPKGLIDLSVCSVYVVHDSLFGRPNC
+FQIVVQHFSEEHYIFYFAGETPEQAEDWMKGLQAFCNLRKSSPGTSNKRLRQVSSLVLHI
+EEAHKLPVKHFTNPYCNIYLNSVQVAKTHAREGQNPVWSEEFVFDDLPPDINRFEITLSN
+KTKKSKDPDILFMRCQLSRLQKGHATDEWFLLSSHIPLKGIEPGSLRVRARYSMEKIMPE
+EEYSEFKELILQKELHVVYALSHVCGQDRTLLASILLRIFLHEKLESLLLCTLNDREISM
+EDEATTLFRATTLASTLMEQYMKATATQFVHHALKDSILKIMESKQSCELSPSKLEKNED
+VNTNLTHLLNILSELVEKIFMASEILPPTLRYIYGCLQKSVQHKWPTNTTMRTRVVSGFV
+FLRLICPAILNPRMFNIISDSPSPIAARTLILVAKSVQNLANLVEFGAKEPYMEGVNPFI
+KSNKHRMIMFLDELGNVPELPDTTEHSRTDLSRDLAALHEICVAHSDELRTLSNERGAQQ
+HVLKKLLAITELLQQKQNQYTKTNDVR
+>sp|Q08289|MSAB_HUMAN LAMBERT-EATON MYASTHENIC SYNDROME ANTIGEN B (MYSB).
+MVQRDMSKSPPTAAAAVAQEIQMELLENVAPAGALGAAAQSYGKGARRKNRFKGSDGSTS
+SDTTSNSFVRQGSADSYTSRPSDSDVSLEEDREAVRREAERQAQAQLEKAKTKPVAFAVR
+TNVSYSAAHEDDVPVPGMAISFEAKDFLHVKEKFNNDWWIGRLVKEGCEIGFIPSPVKLE
+NMRLQHEQRAKQGKFYSSKSGGNSSSSLGDIVPSSRKSTPPSSAIDIDATGLDAEENDIP
+ANHRSPKPSANSVTSPHSKEKRMPFFKKTEHTPPYDVVPSMRPVVLVGPSLKGYEVTDMM
+QKALFDFLKHRFEGRISITRVTADISLAKRSVLNNPSKHAIIERSNTRSSLAEVQSEIER
+IFELARTLQLVVLDADTINHPAQLSKTSLAPIIVYVKISSPKVLQRLIKSRGKSQAKHLN
+VQMVAADKLAQCPPELFDVILDENQLEDACEHLADYLEAYWKATHPPSSSLPNPLLSRTL
+ATSSLPLSPTLASNSQGSQGDQRTDRSAPIRSASKLKKNLVWNQSRNPSTALPPQPHTTT
+IAVGQVAASPGKRHLTRKPRRVETLPT
+>sp|P34092|MYSB_DICDI MYOSIN IB HEAVY CHAIN.
+MSKKVQAKQGTDDLVMLPKVSEDEICENLKKRYMNDFIYTNIGPVLISVNPFRNLNNSGP
+DFIEAYRGKHAQEVPPHVYQLAESAYRAMKNDQENQCVIISGESGAGKTEAAKLIMGYVS
+AISGSTEKVEYVKHVILESNPLLEAFGNAKTLRNNNSSRFGKYFEIQFDKAGDPVGGKIY
+NYLLEKSRVVYQNPGERNFHIFYQLLRGASAQEKRDYVLSSPESYYYLNQSQCYTVDGIN
+DVSDYAEVRQAMDTIGLTAQEQSDIIRIVACVLHIGNIYFIEDDKGNAAIYDPNALELAA
+SMLCIDSATLQNAILFRVINTGGAGGAGNRRSTYNVPQNVEQANGTRDALARTIYDRMFS
+WLVEKVNQSLSYYKSPYQNVIGILDIFGFEIFEKNGFEQFCINFVNEKLQQFFIELTLKA
+EQEEYVREGIKWEPIKYFNNQIVCDLIEGKSPPGIFSLLDDICSTLHAQSTGTDQKFLEK
+MAGIYDGHLHWRGMTGAFAIKHYAGEVTYEAEGFSDKNKDTLFFDLIEAIQCSKMPFLAS
+LFNEDTGSLQKKRPTTAGFKIKTSAGELMKALSQCTPHYIRCIKPNETKKAKDWENSRVK
+HQVQYLGLLENVRVRRAGFAYRNTFDKVLKRYKKLSSKTWGIWGEWKGDAIEGCKTIFQD
+MNLEAGQWQLGKTKVFIRHPETVFLLEEALDKKDFDCTAKIQKAFRNWKAKKHSLEQRAQ
+IAHMFKDKKERQRNSIDRKFTSDYIDFENQFGLQEAMQNAHKKERVVFADTVIKIDRRAK
+QKNYEMVLTDQALYFVEKSIKKKVLVHTLIRRVGLREIKGVSISTLSDNVIVFHLPEHDQ
+VIENDKKTEIIIVLVEYFKAIGGGSLNVQFSDRINYTLKKGEQKEISFQKSEQCPTLVVK
+KGGKGLIGTIASGLPSSTDSTPKNYNPNSMSQASSRPAPQQSAGRGRGMPQGAGQPQPQQ
+PQQQQRPMPQPQQGGGARPMPQPQQGGGARPMGAPQQGGAPQQGAGRQLPQPTQQGGAPG
+GRGAPMGRGAPGGGPAGAGGRPLPTVAKPAPQPSRPTAKALYDYDASSTDELSFKEGDII
+FIVQKDNGGWTQGELKSGQKGWAPTNYLQYN
+>sp|P14598|NCF1_HUMAN NEUTROPHIL CYTOSOL FACTOR 1 (NCF-1) (NCF-47K) (47 KD AUTOSOMAL CHRONIC GRANULOMATOUS DISEASE PROTEIN).
+MGDTFIRHIALLGFEKRFVPSQHYVYMFLVKWQDLSEKVVYRRFTEIYEFHKTLKEMFPI
+EAGAINPENRIIPHLPAPKWFDGQRAAENRQGTLTEYCSTLMSLPTKISRCPHLLDFFKV
+RPDDLKLPTDNQTKKPETYLMPKDGKSTATDITGPIILQTYRAIADYEKTSGSEMALSTG
+DVVEVVEKSESGWWFCQMKAKRGWIPASFLEPLDSPDETEDPEPNYAGEPYVAIKAYTAV
+EGDEVSLLEGEAVEVIHKLLDGWWVIRKDDVTGYFPSMYLQKSGQDVSQAQRQIKRGAPP
+RRSSIRNAHSIHQRSRKRLSQDAYRRNSVRFLQQRRRQARPGPQSPGSPLEEERQTQRSK
+PQPAVPPRPSADLILNRCSESTKRKLASAV
+>sp|P16333|NCK_HUMAN CYTOPLASMIC PROTEIN NCK.
+MAEEVVVVAKFDYVAQQEQELDIKKNERLWLLDDSKSWWRVRNSMNKTGFVPSNYVERKN
+SARKASIVKNLKDTLGIGKVKRKPSVPDSASPADDSFVDPGERLYDLNMPAYVKFNYMAE
+REDELSLIKGTKVIVMEKCSDGWWRGSYNGQVGWFPSNYVTEEGDSPLGDHVGSLSEKLA
+AVVNNLNTGQVLHVVQALYPFSSSNDEELNFEKGDVMDVIEKPENDPEWWKCRKINGMVG
+LVPKNYVTVMQNNPLTSGLEPSPPQCDYIRPSLTGKFAGNPWYYGKVTRHQAEMALNERG
+HEGDFLIRDSESSPNDFSVSLKAQGKNKHFKVQLKETVYCIGQRKFSTMEELVEHYKKAP
+IFTSEQGEKLYLVKHLS
+>sp|P23727|P85A_BOVIN PHOSPHATIDYLINOSITOL 3-KINASE REGULATORY ALPHA SUBUNIT (PI3-KINASE P85-ALPHA SUBUNIT) (PTDINS-3-KINASE P85-ALPHA) (PI3K).
+MSAEGYQYRALYDYKKEREEDIDLHLGDILTVNKGSLVALGFSDGQEAKPEEIGWLNGYN
+ETTGERGDFPGTYVEYIGRKKISPPTPKPRPPRPLPVAPGPSKTEADSEQQASTLPDLAE
+QFAPPDVAPPLLIKLVEAIEKKGLECSTLYRTQSSSNPAELRQLLDCDTASLDLEMFDVH
+VLADAFKRYLLDLPNPVIPVAVSSELISLAPEVQSSEEYIQLLKKLIRSPSIPHQYWLTL
+QYLLKHFFKLSQTSSKNLLNARVLSELFSPLLFRFPAASSENTEHLIKIIEILISTEWNE
+RQPAPALPPKPPKPTTVANNGMNNNMSLQDAEWYWGDISREEVNEKLRDTADGTFLVRDA
+STKMHGDYTLTLRKGGNNKLIKIFHRDGKYGFSDPLTFNSVVELINHYRNESLAQYNPKL
+DVKLLYPVSKYQQDQVVKEDNIEAVGKKLHEYNTQFQEKSREYDRLYEDYTRTSQEIQMK
+RTAIEAFNETIKIFEEQCQTQERYSKEYIEKFKREGNETEIQRIMHNYEKLKSRISEIVD
+SRRRLEEDLKKQAAEYREIDKRMNSIKPDLIQLRKTRDQYLMWLTQKGVRQKKLNEWLGN
+ENTEDQYSLVEDDEDLPHHDEKTWNVGSSNRNKAENLLRGKRDGTFLVRESSKQGCYACS
+VVVDGEVKHCVINKTATGYGFAEPYNLYSSLKELVLHYQHTSLVQHNDSLNVTLAYPVYA
+QQRR
+>sp|P16885|PIP5_HUMAN 1-PHOSPHATIDYLINOSITOL-4,5-BISPHOSPHATE PHOSPHODIESTERASE GAMMA 2 (EC 3.1.4.11) (PLC-GAMMA-2) (PHOSPHOLIPASE C-GAMMA-2) (PLC-IV).
+MSTTVNVDSLAEYEKSQIKRALELGTVMTVFSFRKSTPERRTVQVIMETRQVAWSKTADK
+IEGFLDIMEIKEIRPGKNSKDFERAKAVRQKEDCCFTILYGTQFVLSTLSLAADSKEDAV
+NWLSGLKILHQEAMNASTPTIIESWLRKQIYSVDQTRRNSISLRELKTILPLINFKVSSA
+KFLKDKFVEIGAHKDELSFEQFHLFYKKLMFEQQKSILDEFKKDSSVFILGNTDRPDASA
+VYLHDFQRFLIHEQQEHWAQDLNKVRERMTKFIDDTMRETAEPFLFVDEFLTYLFSRENS
+IWDEKYDAVDMQDMNNPLSHYWISSSHNTYLTGDQLRSESSPEAYIRCLRMGCRCIELDC
+WDGPDGKPVIYHGWTRTTKIKFDDVVQAIKDHAFVTSSFPVILSIEEHCSVEQQRHMAKA
+FKEVFGDLLLTKPTEASADQLPSPSQLREKIIIKHKKLGPRGDVDVNMEDKKDEHKQQGE
+LYMWDSIDQKWTRHYCAIADAKLSFSDDIEQTMEEEVPQDIPPTELHFGEKWFHKKVEKR
+TSAEKLLQEYCMETGGKDGTFLVRESETFPNDYTLSFWRSGRVQHCRIRSTMEGGTLKYY
+LTDNLRFRRMYALIQHYRETHLPCAEFELRLTDPVPNPNPHESKPWYYDSLSRGEAEDML
+MRIPRDGAFLIRKREGSDSYAITFRARGKVKHCRINRDGRHFVLGTSAYFESLVELVSYY
+EKHSLYRKMRLRYPVTPELLERYNTERDINSLYDVSRMYVDPSEINPSMPQRTVKALYDY
+KAKRSDELSFCRGALIHNVSKEPGGWWKGDYGTRIQQYFPSNYVEDISTADFEELEKQII
+EDNPLGSLCRGILDLNTYNVVKAPQGKNQKSFVFILEPKEQGDPPVEFATDRVEELFEWF
+QSIREITWKIDSKENNMKYWEKNQSIAIELSDLVVYCKPTSKTKDNLENPDFREIRSFVE
+TKADSIIRQKPVDLLKYNQKGLTRVYPKGQRVDSSNYDPFRLWLCGSQMVALNFQTADKY
+MQMNHALFSLNGRTGYVLQPESMRTEKYDPMPPESQRKILMTLTVKVLGARHLPKLGRSI
+ACPFVEVEICGAEYGNNKFKTTVVNDNGLSPIWAPTQEKVTFEIYDPNLAFLRFVVYEED
+MFSDPNFLAHATYPIKAVKSGFRSVPLKNGYSEDIELASLLVFCEMRPVLESEEELYSSC
+RQLRRRQEELNNQLFLYDTHQNLRNANRDALVKEFSVNENHSSCTRRNATRG
+>sp|P40996|SCD2_SCHPO SCD2 PROTEIN.
+MLKIKRTWKTHSRILDKDPFSIEPPRKVIRALYDYTARKATEVSFAKGDFFHVIGRENDK
+AWYEVCNPAAGTRGFVPVSHFEEIGKTVKSERDSDGSGQISFTDLTTNSSTTRSSISELH
+SGSQPLFGIVQFDFAAERPDELEAKAGEAIIIIARSNHEWLVAKPIGRLGGPGLIPLSFI
+QLRDLKTGAVIKDVSEAVLRISCIPRVEDWKRAAADYKKSSIPLGKFSDGETQTMPSLSP
+STENLQINNDVTYQAATDNSSTFPGSVANELTPLQTLESRTASIASKNKKDMSSEPTVVA
+AMVENYMIRDDQYWYLVRAVMSDGKHRNLCRYYEDFFNFQTKFLELFPNEAGRGDERRVI
+PYMPGPVDDVNELISSQRAMDLDVYLKEMCRLPARLLENELVKLFFLPLDGDVESPHPTS
+TMPEALPREPLSFSLPEKAPEKATNISIPESAPTTAGSTCKVKVRLGDETFALRVPSDIS
+FEDFCERLTNKLGECEHLSYRDTNANKVLPLNNVDDLRKACSQESGVLLFAERRRF
+>sp|P29355|SEM5_CAEEL SEX MUSCLE ABNORMAL PROTEIN 5.
+MEAVAEHDFQAGSPDELSFKRGNTLKVLNKDEDPHWYKAELDGNEGFIPSNYIRMTECNW
+YLGKITRNDAEVLLKKPTVRDGHFLVRQCESSPGEFSISVRFQDSVQHFKVLRDQNGKYY
+LWAVKFNSLNELVAYHRTASVSRTHTILLSDMNVETKFVQALFDFNPQESGELAFKRGDV
+ITLINKDDPNWWEGQLNNRRGIFPSNYVCPYNSNKSNSNVAPGFNFGN
+>sp|P00523|SRC_CHICK PROTO-ONCOGENE TYROSINE-PROTEIN KINASE SRC (EC 2.7.1.112) (P60-SRC).
+GSSKSKPKDPSQRRRSLEPPDSTHHGGFPASQTPNKTAAPDTHRTPSRSFGTVATEPKLF
+GGFNTSDTVTSPQRAGALAGGVTTFVALYDYESRTETDLSFKKGERLQIVNNTEGDWWLA
+HSLTTGQTGYIPSNYVAPSDSIQAEEWYFGKITRRESERLLLNPENPRGTFLVRESETTK
+GAYCLSVSDFDNAKGLNVKHYKIRKLDSGGFYITSRTQFSSLQQLVAYYSKHADGLCHRL
+TNVCPTSKPQTQGLAKDAWEIPRESLRLEVKLGQGCFGEVWMGTWNGTTRVAIKTLKPGN
+MSPEAFLQEAQVMKKLRHEKLVQLYAVVSEEPIYIVTEYMSKGSLLDFLKGEMGKYLRLP
+QLVDMAAQIASGMAYVERMNYVHRDLRAANILVGENLVCKVADFGLARLIEDNEYTARQG
+AKFPIKWTAPEAALYGRFTIKSDVWSFGILLTELTTKGRVPYPGMVNREVLDQVERGYRM
+PCPPECPESLHDLMCQCWRRDPEERPTFEYLQAFLEDYFTSTEPQYQPGENL
+>sp|P26674|STE6_SCHPO STE6 PROTEIN.
+MRFQTTAISDYENSSNPSFLKFSAGDTIIVIEVLEDGWCDGICSEKRGWFPTSCIDSSKI
+QNFFSSFHSSNEKDPNAQCCAPFHVEAHLQDSAWFEKHGVQAINSIPSSEEFLRKNLQND
+IHHLVKGILTTAAAVSQSIKKEGTQVIVFGIETVRSMVLSFPLIILSTLDENFLSEVAQV
+FSSLNLLPELSRMGCTYGELCIRFTKLLKQLANKFLFFFRPDVSFPSYFLGSLIAHEIHF
+LPWDFNMLCSNSVQSAHTNLQPDITSFVAILSLSHEAYHCTENEFWNLEAQKLTENTTQK
+VLQLVAEDALEAWKLDILEDIDRCIQCCRRFLSANQRINYSSSENNPFSFTSQDVEALKD
+ELSSNLCDLYLWSIDLEQISPSDCLLDNYSLFVDLLVTLKVSLLRIKSIIVQFSERIVFL
+SLEYKFLTNIQPELNDAEKSQLDGFDLNKTNWFDSKGLVCYLMKQTSPEPLLIRNLLFSF
+WSCNGKIEQDGKIKTATLVFIINYLLRTDIDSTFFTTIFLNTYASMISSSDLFSILGAHF
+RFICSLNFGKISFISHEFYRVSKRFLDILLIWFESYLVEELDNSKSIFFLFKIYKVFEVF
+VVPHFASAEELLHSLSHLLHHPSTKRSHKMLEGKELSQELEDLSLHNSPDPIIYKDELVL
+LLPPREIAKQLCILEFQSFSHISRIQFLTKIWDNLNRFSPKEKTSTFYLSNHLVNFVTET
+IVQEEEPRRRTNVLAYFIQVCDYLRELNNFASLFSIISALNSSPIHRLRKTWANLNSKTL
+ASFELLNNLTEARKNFSNYRDCLENCVLPCVPFLGVYFTDLTFLKTGNKDNFQNMINFDK
+RTKVTRILNEIKKFQSVGYMFNPINEVQELLNEVISRERNTNNIYQRSLTVEPRESEDQA
+LQRLLIDSGIF
+>sp|P15498|VAV_HUMAN VAV ONCOGENE.
+MELWRQCTHWLIQCRVLPPSHRVTWDGAQVCELAQALRDGVLLCQLLNNLLPHAINLREV
+NLRPQMSQFLCLKNIRTFLSTCCEKFGLKRSELFEAFDLFDVQDFGKVIYTLSALSWTPI
+AQNRGIMPFPTEEESVGDEDIYSGLSDQIDDTVEEDEDLYDCVENEEAEGDEIYEDLMRS
+EPVSMPPKMTEYDKRCCCLREIQQTEEKYTDTLGSIQQHFLKPLQRFLKPQDIEIIFINI
+EDLLRVHTHFLKEMKEALGTPGAPNLYQVFIKYKERFLVYGRYCSQVESASKHLDRVAAA
+REDVQMKLEECSQRANNGRFTLRDLLMVPMQRVLKYHLLLQELVKHTQEAMEQGNLRLAL
+DAMRDLAQCVNEVKRDNETLRQITNFQLSIENLDQSLAHYGRPKIDGELKITSVERRSKM
+DRYAFLLDKALLICKRRGDSYDLKDFVNLHSFQVRDDSSGDRDNKKWSHMFLLIEDQGAQ
+GYELFFKTRELKKKWMEQFEMAISNIYPENATANGHDFQMFSFEETTSCKACQMLLRGTF
+YQGYRCHRCRASAHKECLGRVPPCGRHGQDFPGTMKKDKLHRRAQDKKRNELGLPKMEVF
+QEYYGLPPPPGAIGPFLRLNPGDIVELTKAEAEQNWWEGRNTSTNEIGWFPCNRVKPYVH
+GPPQDLSVHLWYAGPMERAGAESILANRSDGTFLVRQRVKDAAEFAISIKYNVEVKHTVK
+IMTAEGLYRITEKKAFRGLTELVEFYQQNSLKDCFKSLDTTLQFPFKEPEKRTISRPAVG
+STKYFGTAKARYDFCARDRSELSLKEGDIIKILNKKGQQGWWRGEIYGRVGWFPANYVEE
+DYSEYC
+>sp|P43603|YFJ4_YEAST HYPOTHETICAL 40.4 KD PROTEIN IN PES4-HIS2 INTERGENIC REGION.
+MAGAGAGGMVGIELTDFVFILNTQDAVKSFSEFGTITLGGNVSVSAGPLGRSAEAAASAS
+AGGVAAVFAYSKSKGLFAGVSVEGSAIIERREANRKFYGDNCTAKMILSGRIRPPPAVDP
+LFRVLESRAFNYRPSNGGRGSFDDDEDDYYDDDDYYNDIPSSFSSTDASSTRPNTRSTRR
+RAQSGSRYTFDDDDDDDDYGTGYSRNSRLAPTNSGGSGGKLDDPSGASSYYASHRRSGTA
+QSRARSSRNRWADDEYDDYDDDYESGYRRGNGRDRTKDREVDDLSNRFSKSRISSASTPQ
+TSQGRFTAPTSPSTSSPKAVALYSFAGEESGDLPFRKGDVITILKKSDSQNDWWTGRVNG
+REGIFPANYVELV
+>sp|P38822|YHR4_YEAST HYPOTHETICAL 71.2 KD PROTEIN IN CDC12-ORC6 INTERGENIC REGION.
+MSADLSIGNEIKDSFKETHKWVQNNLKWLKDIEQFYRERAKLEKDYSERLSRLSAEYFNK
+KSSTSVPISVGDTPTTTPGSIEAAGVVAWNEILSQTDMISKDHDQLSTDFENHVANQLSG
+LFTKLDMTLSKINGFNNDMVNKKDNIYHELEKAKKDYDEACSTMEMARNRYTKASNDRNK
+KKLDEKEMEMNKCKNEYLIKINQANRTKDKYYFQDVPEVLDLLQDVNEAKTLFLNDLWLK
+AASVENDLGANVSKRLQAANSVVKQNKPSLNTAIFIKHNLKNWKEPQDFVYKPSPVWHDD
+EKFAVPSSLEVEDLRIKLAKAENDYNSLQDKTQNELSKLSTLNKIKHEMKTNEDNINATK
+FYDTLKEYLNVVSPFTSHETLKLQAEVQIESIQNNVPEEYDLSTDNIDLSKTKKKSGIFS
+KFKHNILNVDSKPSSGGSTGNGNGGPLHITSLFNTSRRTRLGSAPNNAGEDSDNNSIRTT
+STNNTKKTTQNSSDDGKNKVLYAYVQKDDDEITITPGDKISLVARDTGSGWTKINNDTTG
+ETGLVPTTYIRISSAATVKANDRGPAPEVPPPRRSTLPVRTMEAIYAYEAQGDDEISIDP
+GDIITVIRGDDGSGWTYGECDGLKGLFPTSYCK
+>sp|Q07157|ZO1_HUMAN TIGHT JUNCTION PROTEIN ZO-1.
+MEETAIWEQHTVTLHRAPGFGFGIAISGGRDNPHFQSGETSIVISDVLKGGPAEGQLQEN
+DRVAMVNGVSMDNVEHAFAVQQLRKSGKNAKITIRRKKKVQIPVSRPDPEPVSDNEEDSY
+DEEIHDPRSGRSGVVNRRSEKIWPRDRSASRERSLSPRSDRRSVASSQPAKPTKVTLVKS
+RKNEEYGLRLASHIFVKEISQDSLAARDGNIQEGDVVLKINGTVTENMSLTDAKTLIERS
+KGKLKMVVQRDERATLLNVPDLSDSIHSANASERDDISEIQSLASDHSGRSHDRPPRRSR
+SRSPDQRSEPSDHSRHSPQQPSNGSLRSRDEERISKPGAVSTPVKHADDHTPKTVEEVTV
+ERNEKQTPSLPEPKPVYAQVGNQMWIYLSVHLMVSYLIQLMKMGFLRPSMKLVKFRKGDS
+VGLRLAGGNDVGIFVAGVLEDSPAAKEGLEEGDQILRVNNVDFTNIIREEAVLFLLDLPK
+GEEVTILAQKKKDVYRRIVESDVGDSFYIRTHFEYEKESPYGLSFNKGEVFRAVDTLYNG
+KLGSWLAIRIGKNHKEVERGIIPNKNRAEQLASVQYTLPKTAGGDRADFWRFRGLRSSKR
+NLRKSREDLSAQPVQTKFPAYERVVLREAGFLRPVTIFGPIADVAREKLAREEPDIYQIA
+KSEPRDAGTDQRSSGYIRLHTIKQIIDQDKHALLDVTPNAVDRLNYAQWYPIVVFLNPDS
+KQGVKTMRMRLCPESRKSARKLYERSHKLAKNNHHLFTTTINLNSMNDGWYGALKEAVQQ
+QQNQLVWVSEGKADGATSDDLDLHDDRLSYLSAPGSEYSMYSTDSRHTSDYEDTDTEGGA
+YTDQELDETLNDEVGTPPESAITRSSEPVREDSSGMHHENQTYPPYSPQAQPQPIHRIDS
+PGFKPASQQKAEASSPVPYLSPETNPASSTSAVNHNVNLTNVRLEEPTPAPSTSYSPQAD
+SLRTPSTEAAHIMLRDQEPSLSSHVDPTKVYRKDPYPEEMMRQNHVLKQPAVSHPGHRPD
+KEPNLTYEPQLPYVEKQASRDLEQPTYRYESSSYTDQFSRNYEHRLRYEDRVPMYEEQWS
+YYDDKQPYPSRPPFDNQHSQDLDSRQHPEESSERGYFPRFEEPAPLSYDSRPRYEQAPRA
+SALRHEEQPAPGYDTHGRLRPEAQPHPSAGPKPAESKQYFEQYSRSYEQVPPQGFTSRAG
+HFEPLHGAAAVPPLIPSSQHKPEALPSNTKPLPPPPTQTEEEEDPAMKPQSVLTRVKMFE
+NKRSASLETKKDVNDTGSFKPPEVASKPSGAPIIGPKPTSQNQFSEHDKTLYRIPEPQKP
+QLKPPEDIVRSNHYDPEEDEEYYRKQLSYFDRRSFENKPPAHIAASHLSEPAKPAHSQNQ
+SNFSSYSSKGKPPEADGVDRSFGEKRYEPIQATPPPPPLPSQYAQPSQPVTSASLHIHSK
+GAHGEGNSVSLDFQNSLVSKPDPPPSQNKPATFRPPNREDTAQAAFYPQKSFPDKAPVNG
+TEQTQKTVTPAYNRFTPKPYTSSARPFERKFESPKFNHNLLPSETAHKPDLSSKTPTSPK
+TLVKSHSLAQPPEFDSGVETFSIHAEKPKYQINNISTVPKAIPVSPSAVEEDEDEDGHTV
+VATARGIFNSNGGVLSSIETGVSIIIPQGAIPEGVEQEIYFKVCRDNSILPPLDKEKGET
+LLSPLVMCGPHGLKFLKPVELRLPHCDPKTWQNKCLPGDPNYLVGANCVSVLIDHF
diff --git a/standard.random b/standard.random
new file mode 100644
index 0000000..bc04309
--- /dev/null
+++ b/standard.random
@@ -0,0 +1,3 @@
+Amino
+ .08713 .03347 .04687 .04953 .03977 .08861 .03362 .03689 .08048 .08536
+ .01475 .04043 .05068 .03826 .04090 .06958 .05854 .06472 .01049 .02992
diff --git a/sterr.f b/sterr.f
new file mode 100644
index 0000000..8f85cee
--- /dev/null
+++ b/sterr.f
@@ -0,0 +1,12 @@
+*----------------------------------------------------------------------*     
+* $Id: sterr.f,v 2.4 2003/02/19 08:38:25 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Parameter         (NERR=0) 
+      
+* For use under HP-UX, comment previous line and uncomment following
+* line 
+      
+C     Parameter         (NERR=7) 
+      
diff --git a/test.out b/test.out
new file mode 100644
index 0000000..96878fe
--- /dev/null
+++ b/test.out
@@ -0,0 +1,1337 @@
+#----------------------------------------------------------------------#
+# pftools test 1: ./pfsearch -f -C 6.0 sh3.prf sh3.seq
+#----------------------------------------------------------------------#
+   8.455    459 pos.        1 -      39 sp|P03949|ABL1_CAEEL TYROSINE-PROTEIN KINASE ABL-1 (EC 2.7.1.112) (FRAGMENT).
+  14.973    857 pos.       61 -     121 sp|P00519|ABL1_HUMAN PROTO-ONCOGENE TYROSINE-PROTEIN KINASE ABL (EC 2.7.1.112) (P150) (C-ABL).
+  12.958    734 pos.       43 -     107 sp|P39969|BEB1_YEAST BEB1 PROTEIN.
+  13.499    767 pos.       58 -     128 sp|P04821|CC25_YEAST CELL DIVISION CONTROL PROTEIN 25.
+  10.043    556 pos.      100 -     161 sp|Q02640|CICX_HUMAN DIHYDROPRYRIDINE-SENSITIVE L-TYPE, BRAIN CALCIUM CHANNEL BETA-1-B1 SUBUNIT.
+  11.812    664 pos.      279 -     341 sp|P20936|GTPA_HUMAN GTPASE-ACTIVATING PROTEIN (GAP) (RAS P21 PROTEIN ACTIVATOR).
+  10.289    571 pos.      114 -     175 sp|Q08289|MSAB_HUMAN LAMBERT-EATON MYASTHENIC SYNDROME ANTIGEN B (MYSB).
+  18.100   1048 pos.     1053 -    1111 sp|P34092|MYSB_DICDI MYOSIN IB HEAVY CHAIN.
+  15.316    878 pos.      156 -     215 sp|P14598|NCF1_HUMAN NEUTROPHIL CYTOSOL FACTOR 1 (NCF-1) (NCF-47K) (47 KD AUTOSOMAL CHRONIC GRANULOMATOUS DISEASE PROTEIN).
+  12.238    690 pos.      226 -     285 sp|P14598|NCF1_HUMAN NEUTROPHIL CYTOSOL FACTOR 1 (NCF-1) (NCF-47K) (47 KD AUTOSOMAL CHRONIC GRANULOMATOUS DISEASE PROTEIN).
+  16.315    939 pos.        2 -      61 sp|P16333|NCK_HUMAN CYTOPLASMIC PROTEIN NCK.
+  15.284    876 pos.      115 -     165 sp|P16333|NCK_HUMAN CYTOPLASMIC PROTEIN NCK.
+  17.036    983 pos.      190 -     252 sp|P16333|NCK_HUMAN CYTOPLASMIC PROTEIN NCK.
+  13.384    760 pos.        3 -      79 sp|P23727|P85A_BOVIN PHOSPHATIDYLINOSITOL 3-KINASE REGULATORY ALPHA SUBUNIT (PI3-KINASE P85-ALPHA SUBUNIT) (PTDINS-3-KINASE P85-ALPHA) (PI3K).
+  15.464    887 pos.      769 -     829 sp|P16885|PIP5_HUMAN 1-PHOSPHATIDYLINOSITOL-4,5-BISPHOSPHATE PHOSPHODIESTERASE GAMMA 2 (EC 3.1.4.11) (PLC-GAMMA-2) (PHOSPHOLIPASE C-GAMMA-2) (PLC-IV).
+  15.382    882 pos.       24 -      86 sp|P40996|SCD2_SCHPO SCD2 PROTEIN.
+  11.992    675 pos.      123 -     185 sp|P40996|SCD2_SCHPO SCD2 PROTEIN.
+  16.889    974 pos.        1 -      58 sp|P29355|SEM5_CAEEL SEX MUSCLE ABNORMAL PROTEIN 5.
+  18.837   1093 pos.      154 -     213 sp|P29355|SEM5_CAEEL SEX MUSCLE ABNORMAL PROTEIN 5.
+  20.295   1182 pos.       80 -     141 sp|P00523|SRC_CHICK PROTO-ONCOGENE TYROSINE-PROTEIN KINASE SRC (EC 2.7.1.112) (P60-SRC).
+  10.764    600 pos.        1 -      60 sp|P26674|STE6_SCHPO STE6 PROTEIN.
+  11.796    663 pos.      617 -     660 sp|P15498|VAV_HUMAN VAV ONCOGENE.
+  17.560   1015 pos.      783 -     843 sp|P15498|VAV_HUMAN VAV ONCOGENE.
+  18.542   1075 pos.      314 -     373 sp|P43603|YFJ4_YEAST HYPOTHETICAL 40.4 KD PROTEIN IN PES4-HIS2 INTERGENIC REGION.
+  13.089    742 pos.      493 -     555 sp|P38822|YHR4_YEAST HYPOTHETICAL 71.2 KD PROTEIN IN CDC12-ORC6 INTERGENIC REGION.
+  13.695    779 pos.      577 -     633 sp|P38822|YHR4_YEAST HYPOTHETICAL 71.2 KD PROTEIN IN CDC12-ORC6 INTERGENIC REGION.
+   9.323    512 pos.      504 -     572 sp|Q07157|ZO1_HUMAN TIGHT JUNCTION PROTEIN ZO-1.
+#----------------------------------------------------------------------#
+# pftools test 2: ./pfsearch -bx ecp.prf CVPBR322 | ./psa2msa -du
+#----------------------------------------------------------------------#
+>CVPBR322_1   63.920    271 pos.        1 -      41 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+TTCTCATGTTTGACAGCTTATCATC----GATAAGCTTTAATGCG
+>CVPBR322_2   45.534    240 pos.       25 -      65 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+CGATAAGCTTTAATGCGGTAGTTTA----TCACAGTTAAATTGCT
+>CVPBR322_3   55.617    257 pos.     1589 -    1629 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+CAACATGAATGGTCTTCGGTTTCCG----TGTTTCGTAAAGTCTG
+>CVPBR322_4   46.720    242 pos.     2274 -    2314 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+CAGATTGTACTGAGAGTGCACCATA----TGCGGTGTGAAATACC
+>CVPBR322_5   48.500    245 pos.     2296 -    2340 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+ATATGCGGTGTGAAATACCGCACAGATGCGTAAGGAGAAAATACC
+>CVPBR322_6   64.513    272 pos.     2931 -    2972 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+ACAGAGTTCTTGAAGTGGTGGCCTA---ACTACGGCTACACTAGA
+>CVPBR322_7   50.872    249 pos.     3207 -    3246 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+AAAAGGATCTTCACCTAGATCCTTT-----TAAATTAAAAATGAA
+>CVPBR322_8   45.534    240 pos.     3233 -    3274 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+AAATTAAAAATGAAGTTTTAAATCA---ATCTAAAGTATATATGA
+>CVPBR322_9   53.244    253 pos.     3240 -    3284 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+AAATGAAGTTTTAAATCAATCTAAAGTATATATGAGTAAACTTGG
+>CVPBR322_10   52.058    251 pos.     3350 -    3391 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+CATAGTTGCCTGACTCCCCGTCGTG---TAGATAACTACGATACG
+>CVPBR322_11   53.837    254 pos.     3788 -    3828 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+ACTGCATAATTCTCTTACTGTCATG----CCATCCGTAAGATGCT
+>CVPBR322_12   46.127    241 pos.     3796 -    3836 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+ATTCTCTTACTGTCATGCCATCCGT----AAGATGCTTTTCTGTG
+>CVPBR322_13   56.210    258 pos.     4133 -    4173 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+ACGGAAATGTTGAATACTCATACTC----TTCCTTTTTCAATATT
+>CVPBR322_14   53.244    253 pos.     4166 -    4207 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+TCAATATTATTGAAGCATTTATCAG---GGTTATTGTCTCATGAG
+>CVPBR322_15   52.058    251 pos.     4187 -    4227 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+TCAGGGTTATTGTCTCATGAGCGGA----TACATATTTGAATGTA
+>CVPBR322_16   56.803    259 pos.     4273 -    4312 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+AAGTGCCACCTGACGTCTAAGAAAC-----CATTATTATCATGAC
+>CVPBR322_17   47.906    244 pos.     4291 -    4331 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+AAGAAACCATTATTATCATGACATT----AACCTATAAAAATAGG
+>CVPBR322_18   47.906    244 pos.     4299 -    4342 J01749|CVPBR322 Cloning vector pBR322, complete genome.
+ATTATTATCATGACATTAACCTATA-AAAATAGGCGTATCACGAG
+>CVPBR322_19   50.279    248 pos.     4348 -    4308 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+AAGGGCCTCGTGATACGCCTATTTT----TATAGGTTAATGTCAT
+>CVPBR322_20   47.906    244 pos.     4336 -    4296 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+ATACGCCTATTTTTATAGGTTAATG----TCATGATAATAATGGT
+>CVPBR322_21   50.279    248 pos.     4323 -    4283 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+TATAGGTTAATGTCATGATAATAAT----GGTTTCTTAGACGTCA
+>CVPBR322_22   52.651    252 pos.     4232 -    4192 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+CTAAATACATTCAAATATGTATCCG----CTCATGAGACAATAAC
+>CVPBR322_23   50.872    249 pos.     4178 -    4135 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+TCAATAATATTGAAAAAGGAAGAGT-ATGAGTATTCAACATTTCC
+>CVPBR322_24   46.127    241 pos.     3954 -    3913 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+TGAGCACTTTTAAAGTTCTGCTATG---TGGCGCGGTATTATCCC
+>CVPBR322_25   46.720    242 pos.     3861 -    3821 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+ATGACTTGGTTGAGTACTCACCAGT----CACAGAAAAGCATCTT
+>CVPBR322_26   45.534    240 pos.     3569 -    3529 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+ACTACTTACTCTAGCTTCCCGGCAA----CAATTAATAGACTGGA
+>CVPBR322_27   47.313    243 pos.     3464 -    3420 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+TGATAAATCTGGAGCCGGTGAGCGTGGGTCTCGCGGTATCATTGC
+>CVPBR322_28   54.431    255 pos.     3301 -    3261 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+CATTGGTAACTGTCAGACCAAGTTT----ACTCATATATACTTTA
+>CVPBR322_29   51.465    250 pos.     3273 -    3232 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+CATATATACTTTAGATTGATTTAAA---ACTTCATTTTTAATTTA
+>CVPBR322_30   45.534    240 pos.     3267 -    3225 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+TACTTTAGATTGATTTAAAACTTCA--TTTTTAATTTAAAAGGAT
+>CVPBR322_31   46.127    241 pos.     3250 -    3210 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+AAACTTCATTTTTAATTTAAAAGGA----TCTAGGTGAAGATCCT
+>CVPBR322_32   53.244    253 pos.     3216 -    3173 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+AGATCCTTTTTGATAATCTCATGAC-CAAAATCCCTTAACGTGAG
+>CVPBR322_33   60.362    265 pos.     3131 -    3091 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+AGGATCTTCTTGAGATCCTTTTTTT----CTGCGCGTAATCTGCT
+>CVPBR322_34   47.313    243 pos.     2318 -    2274 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+GTGCGGTATTTCACACCGCATATGGTGCACTCTCAGTACAATCTG
+>CVPBR322_35   58.582    262 pos.       85 -      41 J01749|CVPBR322(-) Cloning vector pBR322, complete genome.
+ACACGGTGCCTGACTGCGTTAGCAATTTAACTGTGATAAACTACC
+#----------------------------------------------------------------------#
+# pftools test 3: ./pfscan -s GTPA_HUMAN prosite13.prf
+#----------------------------------------------------------------------#
+>C2_DOMAIN_2   10.353    680 pos.      594 -     676 PS50004|C2_DOMAIN_2 C2-domain profile.
+SSLVLHIEEAHKLPVKHFTNPYCNIYLNSVQVAKTHAREGQNPVWSEEFVFDDLPPDINR
+FEITLSNKTKKSKDPDILFMRCQ
+>PH_DOMAIN   16.616    659 pos.      474 -     577 PS50003|PH_DOMAIN PH domain profile.
+NIVKKGYLLKKGKGKRWKNLYFILEGSDAQLIYFESEKRATKPKGLIDLSVCSVYVVHDS
+LFGRPNCFQIVVQHFSEEHYIFYFAGETPEQAEDWMKGLQAFCN
+>SH2_1   21.898   1450 pos.      181 -     272 PS50001|SH2 Src homology 2 (SH2) domain profile.
+WYHGKLDRTIAEERLRQAGKSGSYLIRESDRRPGSFVLSFLSQMNVVNHFRIIAMCGDYY
+IGGRRFSSLSDLIGYYSHVSCLLKGEKLLYPV
+>SH2_2   20.059   1326 pos.      351 -     441 PS50001|SH2 Src homology 2 (SH2) domain profile.
+WFHGKISKQEAYNLLMTVGQVCSFLVRPSDNTPGDYSLYFRTNENIQRFKICPTPNNQFM
+MGGRYYNSIGDIIDHYRKEQIVEGYYLKEPV
+>SH3   11.812    664 pos.      279 -     341 PS50002|SH3 Src homology 3 (SH3) domain profile.
+EDRRRVRAILPYTKVPDTDEISFLKGDMFIVHNELEDGWMWVTNLRTDEQGLIVEDLVEE
+VGR
+>RAS_GTPASE_ACTIV_2   56.401   3900 pos.      748 -     942 PS50018|RAS_GTPASE_ACTIV_2 Ras GTPase-activating proteins profile.
+DRTLLASILLRIFLHEKLESLLLCTLNDREISMEDEATTLFRATTLASTLMEQYMKATAT
+QFVHHALKDSILKIMESKQSCELSPSKLEKNEDVNTNLTHLLNILSELVEKIFMASEILP
+PTLRYIYGCLQKSVQHKWPTNTTMRTRVVSGFVFLRLICPAILNPRMFNIISDSPSPIAA
+RTLILVAKSVQNLAN
+#----------------------------------------------------------------------#
+# pftools test 4: ./pfscan -by -C 2 CVPBR322 ecp.prf
+#----------------------------------------------------------------------#
+  63.920    271 pos.        1 -      41 NS00001|ECOLI_PROM_RP70 E. coli RNA POL sigma-70 promoter.
+#
+# P        1 *********TTGACA*********************TATAAT***       -1 
+# S        1 TTCTCATGTTTGACAGCTTATCATC----GATAAGCTTTAATGCG    -4321 
+#
+  55.617    257 pos.     1589 -    1629 NS00001|ECOLI_PROM_RP70 E. coli RNA POL sigma-70 promoter.
+#
+# P        1 *********TTGACA*********************TATAAT***       -1 
+# S     1589 CAACATGAATGGTCTTCGGTTTCCG----TGTTTCGTAAAGTCTG    -2733 
+#
+  64.513    272 pos.     2931 -    2972 NS00001|ECOLI_PROM_RP70 E. coli RNA POL sigma-70 promoter.
+#
+# P        1 *********TTGACA*********************TATAAT***       -1 
+# S     2931 ACAGAGTTCTTGAAGTGGTGGCCTA---ACTACGGCTACACTAGA    -1390 
+#
+  56.210    258 pos.     4133 -    4173 NS00001|ECOLI_PROM_RP70 E. coli RNA POL sigma-70 promoter.
+#
+# P        1 *********TTGACA*********************TATAAT***       -1 
+# S     4133 ACGGAAATGTTGAATACTCATACTC----TTCCTTTTTCAATATT     -189 
+#
+  56.803    259 pos.     4273 -    4312 NS00001|ECOLI_PROM_RP70 E. coli RNA POL sigma-70 promoter.
+#
+# P        1 *********TTGACA*********************TATAAT***       -1 
+# S     4273 AAGTGCCACCTGACGTCTAAGAAAC-----CATTATTATCATGAC      -50 
+#
+  60.362    265 pos.     3131 -    3091 NS00001|ECOLI_PROM_RP70(-) E. coli RNA POL sigma-70 promoter.
+#
+# P        1 *********TTGACA*********************TATAAT***       -1 
+# S     3131 AGGATCTTCTTGAGATCCTTTTTTT----CTGCGCGTAATCTGCT    -1271 
+#
+  58.582    262 pos.       85 -      41 NS00001|ECOLI_PROM_RP70(-) E. coli RNA POL sigma-70 promoter.
+#
+# P        1 *********TTGACA*********************TATAAT***       -1 
+# S       85 ACACGGTGCCTGACTGCGTTAGCAATTTAACTGTGATAAACTACC    -4321 
+#
+#----------------------------------------------------------------------#
+# pftools test 5: ./gtop -F 50 sh3.gpr | ./pfsearch -far - sh3.seq
+#                    | sort -nr
+#----------------------------------------------------------------------#
+    944 sp|P00523|SRC_CHICK PROTO-ONCOGENE TYROSINE-PROTEIN KINASE SRC (EC 2.7.1.112) (P60-SRC).
+    874 sp|P43603|YFJ4_YEAST HYPOTHETICAL 40.4 KD PROTEIN IN PES4-HIS2 INTERGENIC REGION.
+    839 sp|P29355|SEM5_CAEEL SEX MUSCLE ABNORMAL PROTEIN 5.
+    825 sp|P16333|NCK_HUMAN CYTOPLASMIC PROTEIN NCK.
+    819 sp|P15498|VAV_HUMAN VAV ONCOGENE.
+    805 sp|P16885|PIP5_HUMAN 1-PHOSPHATIDYLINOSITOL-4,5-BISPHOSPHATE PHOSPHODIESTERASE GAMMA 2 (EC 3.1.4.11) (PLC-GAMMA-2) (PHOSPHOLIPASE C-GAMMA-2) (PLC-IV).
+    764 sp|P23727|P85A_BOVIN PHOSPHATIDYLINOSITOL 3-KINASE REGULATORY ALPHA SUBUNIT (PI3-KINASE P85-ALPHA SUBUNIT) (PTDINS-3-KINASE P85-ALPHA) (PI3K).
+    750 sp|P34092|MYSB_DICDI MYOSIN IB HEAVY CHAIN.
+    744 sp|P14598|NCF1_HUMAN NEUTROPHIL CYTOSOL FACTOR 1 (NCF-1) (NCF-47K) (47 KD AUTOSOMAL CHRONIC GRANULOMATOUS DISEASE PROTEIN).
+    699 sp|P00519|ABL1_HUMAN PROTO-ONCOGENE TYROSINE-PROTEIN KINASE ABL (EC 2.7.1.112) (P150) (C-ABL).
+    633 sp|P40996|SCD2_SCHPO SCD2 PROTEIN.
+    619 sp|P38822|YHR4_YEAST HYPOTHETICAL 71.2 KD PROTEIN IN CDC12-ORC6 INTERGENIC REGION.
+    555 sp|P04821|CC25_YEAST CELL DIVISION CONTROL PROTEIN 25.
+    544 sp|P39969|BEB1_YEAST BEB1 PROTEIN.
+    466 sp|Q07157|ZO1_HUMAN TIGHT JUNCTION PROTEIN ZO-1.
+    329 sp|P26674|STE6_SCHPO STE6 PROTEIN.
+    303 sp|P03949|ABL1_CAEEL TYROSINE-PROTEIN KINASE ABL-1 (EC 2.7.1.112) (FRAGMENT).
+    298 sp|Q02640|CICX_HUMAN DIHYDROPRYRIDINE-SENSITIVE L-TYPE, BRAIN CALCIUM CHANNEL BETA-1-B1 SUBUNIT.
+    293 sp|Q08289|MSAB_HUMAN LAMBERT-EATON MYASTHENIC SYNDROME ANTIGEN B (MYSB).
+    279 sp|P20936|GTPA_HUMAN GTPASE-ACTIVATING PROTEIN (GAP) (RAS P21 PROTEIN ACTIVATOR).
+#----------------------------------------------------------------------#
+# pftools test 6: ./htop pfam_sh3.hmm  | ./pfsearch -f - sh3.seq
+                     | sort -nr
+#----------------------------------------------------------------------#
+  19.485 100384 pos.      317 -     373 sp|P43603|YFJ4_YEAST HYPOTHETICAL 40.4 KD PROTEIN IN PES4-HIS2 INTERGENIC REGION.
+  19.303  98748 pos.      157 -     211 sp|P29355|SEM5_CAEEL SEX MUSCLE ABNORMAL PROTEIN 5.
+  19.183  97669 pos.       83 -     139 sp|P00523|SRC_CHICK PROTO-ONCOGENE TYROSINE-PROTEIN KINASE SRC (EC 2.7.1.112) (P60-SRC).
+  18.790  94141 pos.     1056 -    1111 sp|P34092|MYSB_DICDI MYOSIN IB HEAVY CHAIN.
+  18.265  89412 pos.      786 -     841 sp|P15498|VAV_HUMAN VAV ONCOGENE.
+  17.931  86411 pos.        1 -      56 sp|P29355|SEM5_CAEEL SEX MUSCLE ABNORMAL PROTEIN 5.
+  17.706  84386 pos.      193 -     250 sp|P16333|NCK_HUMAN CYTOPLASMIC PROTEIN NCK.
+  17.657  83950 pos.      772 -     827 sp|P16885|PIP5_HUMAN 1-PHOSPHATIDYLINOSITOL-4,5-BISPHOSPHATE PHOSPHODIESTERASE GAMMA 2 (EC 3.1.4.11) (PLC-GAMMA-2) (PHOSPHOLIPASE C-GAMMA-2) (PLC-IV).
+  17.544  82931 pos.        5 -      59 sp|P16333|NCK_HUMAN CYTOPLASMIC PROTEIN NCK.
+  16.584  74299 pos.       27 -      84 sp|P40996|SCD2_SCHPO SCD2 PROTEIN.
+  16.486  73418 pos.      159 -     213 sp|P14598|NCF1_HUMAN NEUTROPHIL CYTOSOL FACTOR 1 (NCF-1) (NCF-47K) (47 KD AUTOSOMAL CHRONIC GRANULOMATOUS DISEASE PROTEIN).
+  16.430  72911 pos.       64 -     119 sp|P00519|ABL1_HUMAN PROTO-ONCOGENE TYROSINE-PROTEIN KINASE ABL (EC 2.7.1.112) (P150) (C-ABL).
+  15.759  66878 pos.       46 -     105 sp|P39969|BEB1_YEAST BEB1 PROTEIN.
+  15.511  64650 pos.      229 -     283 sp|P14598|NCF1_HUMAN NEUTROPHIL CYTOSOL FACTOR 1 (NCF-1) (NCF-47K) (47 KD AUTOSOMAL CHRONIC GRANULOMATOUS DISEASE PROTEIN).
+  15.503  64573 pos.      109 -     163 sp|P16333|NCK_HUMAN CYTOPLASMIC PROTEIN NCK.
+  14.963  59722 pos.      496 -     553 sp|P38822|YHR4_YEAST HYPOTHETICAL 71.2 KD PROTEIN IN CDC12-ORC6 INTERGENIC REGION.
+  14.515  55695 pos.      126 -     183 sp|P40996|SCD2_SCHPO SCD2 PROTEIN.
+  13.945  50565 pos.        3 -      58 sp|P26674|STE6_SCHPO STE6 PROTEIN.
+  13.506  46616 pos.      580 -     633 sp|P38822|YHR4_YEAST HYPOTHETICAL 71.2 KD PROTEIN IN CDC12-ORC6 INTERGENIC REGION.
+  13.399  45653 pos.      282 -     339 sp|P20936|GTPA_HUMAN GTPASE-ACTIVATING PROTEIN (GAP) (RAS P21 PROTEIN ACTIVATOR).
+  11.564  29159 pos.        6 -      77 sp|P23727|P85A_BOVIN PHOSPHATIDYLINOSITOL 3-KINASE REGULATORY ALPHA SUBUNIT (PI3-KINASE P85-ALPHA SUBUNIT) (PTDINS-3-KINASE P85-ALPHA) (PI3K).
+  11.218  26047 pos.       61 -     126 sp|P04821|CC25_YEAST CELL DIVISION CONTROL PROTEIN 25.
+  10.425  18915 pos.      601 -     658 sp|P15498|VAV_HUMAN VAV ONCOGENE.
+#----------------------------------------------------------------------#
+# pftools test 7: ./pfw -N 1000 sh3.msf |
+#                    ./pfmake -b -H 0.6 - blosum45.cmp
+#----------------------------------------------------------------------#
+ID   SEQUENCE_PROFILE; MATRIX.
+AC   ZZ99999;
+DT   Tue Dec  9 15:13:02 2003
+DE   Generated from MSF file: 'stdin'.
+MA   /GENERAL_SPEC: ALPHABET='ABCDEFGHIKLMNPQRSTVWYZ'; LENGTH=62;
+MA   /DISJOINT: DEFINITION=PROTECT; N1=6; N2=57;
+MA   /NORMALIZATION: MODE=1; FUNCTION=LINEAR; R1=0.0000000; R2=0.0100000; TEXT='No_units';
+MA   /CUT_OFF: LEVEL=0; SCORE=850; N_SCORE=8.5; MODE=1; TEXT='!';
+MA   /CUT_OFF: LEVEL=-1; SCORE=650; N_SCORE=6.5; MODE=1; TEXT='?';
+MA   /DEFAULT: M0=-8; D=-20; I=-20; B1=-60; E1=-60; MI=-105; MD=-105; IM=-105; DM=-105;
+MA   /I: B1=0; BI=-105; BD=-105;
+MA   /M: SY='P'; M=-1,-9,-25,-10,-4,-19,-4,-12,-14,-7,-16,-8,-6,3,-4,-9,0,-4,-13,-24,-14,-6;
+MA   /M: SY='D'; M=-7,2,-26,7,5,-23,-14,-9,-14,-6,-17,-11,-3,4,-2,-12,-2,-6,-12,-29,-15,0;
+MA   /M: M=-4,-11,-24,-11,-6,-12,-11,-13,-12,-6,-10,-8,-8,-7,-6,-1,-3,-4,-8,-23,-12,-7;
+MA   /M: M=-12,-13,-26,-15,-8,0,-11,-6,-14,-5,-10,-5,-8,-9,-8,0,-10,-9,-13,-16,-2,-9;
+MA   /M: SY='T'; M=-3,-13,-20,-17,-9,-4,-22,-14,-3,-5,-4,0,-11,-13,-6,-5,-4,5,1,-19,-2,-8;
+MA   /M: SY='V'; M=0,-20,-18,-24,-23,5,-19,-16,11,-17,2,4,-16,-24,-20,-18,-8,-3,16,-14,6,-22;
+MA   /M: SY='R'; M=-10,-14,-24,-15,-7,-15,-25,-13,-4,9,-9,-1,-10,-19,-1,19,-9,-5,4,-24,-9,-6;
+MA   /M: SY='A'; M=38,-11,-10,-20,-12,-16,-6,-21,-6,-11,-8,-8,-11,-12,-12,-19,9,7,5,-22,-18,-12;
+MA   /M: SY='L'; M=-8,-16,-24,-20,-12,-5,-26,-10,12,-16,17,9,-11,-22,-8,-12,-17,-9,3,-23,-4,-12;
+MA   /M: SY='Y'; M=-13,-18,-24,-22,-19,27,-26,4,-1,-13,1,-1,-15,-27,-16,-12,-14,-8,-3,6,40,-19;
+MA   /M: SY='D'; M=-6,26,-27,37,14,-33,-6,-6,-31,-3,-27,-24,11,-1,-1,-11,4,-7,-25,-35,-21,6;
+MA   /M: SY='Y'; M=-20,-23,-27,-26,-23,45,-30,8,0,-16,3,0,-20,-30,-19,-13,-20,-10,-7,24,65,-23;
+MA   /M: SY='E'; M=-1,1,-15,-2,5,-15,-16,-10,-13,-2,-14,-9,2,-14,-1,-6,4,4,-7,-29,-14,2;
+MA   /I: I=-4; MI=0; MD=-23; IM=0; DM=-23;
+MA   /M: SY='A'; M=21,-6,-18,-9,-3,-24,-6,-15,-16,1,-18,-12,-6,-4,-3,-8,6,-2,-8,-24,-18,-4;
+MA   /M: SY='E'; M=-3,-2,-23,0,13,-25,-11,-7,-22,7,-22,-13,0,-5,10,8,7,0,-17,-28,-17,11;
+MA   /M: SY='D'; M=-8,6,-25,8,7,-25,-6,0,-26,4,-24,-14,8,-9,5,7,6,-2,-21,-30,-16,5;
+MA   /M: SY='E'; M=-4,5,-26,11,14,-28,-4,-10,-27,-4,-25,-20,1,9,-1,-9,6,-2,-23,-31,-22,5;
+MA   /M: SY='D'; M=-12,25,-26,34,13,-30,-7,-2,-30,-2,-25,-21,12,-11,4,-8,5,-2,-25,-32,-14,8;
+MA   /M: SY='E'; M=-11,11,-28,20,40,-25,-14,-4,-28,3,-17,-19,1,-5,10,-5,-1,-8,-26,-29,-17,25;
+MA   /M: SY='L'; M=-8,-30,-20,-32,-23,6,-31,-23,26,-28,38,20,-28,-28,-21,-21,-25,-8,20,-22,-2,-23;
+MA   /M: SY='S'; M=2,4,-19,6,5,-24,-7,-9,-23,-3,-27,-19,7,1,0,-5,19,8,-16,-35,-20,1;
+MA   /M: SY='F'; M=-10,-29,-20,-35,-26,34,-30,-22,16,-27,20,11,-23,-27,-28,-21,-20,-8,13,-9,10,-26;
+MA   /I: I=-4; MI=0; MD=-21; IM=0; DM=-21;
+MA   /M: SY='K'; M=-6,2,-18,0,6,-21,-17,-5,-19,9,-16,-10,4,-14,3,4,-1,-2,-16,-28,-12,4;
+MA   /M: SY='K'; M=-3,-7,-28,-5,7,-26,-18,-11,-22,17,-21,-11,-7,10,4,11,-6,-7,-19,-23,-16,4;
+MA   /M: SY='G'; M=-1,-7,-30,-8,-17,-30,60,-18,-38,-13,-30,-19,2,-19,-17,-15,0,-18,-29,-21,-28,-17;
+MA   /M: SY='D'; M=-13,34,-28,48,29,-35,-12,-1,-34,2,-26,-25,14,-7,5,-7,1,-7,-28,-36,-20,17;
+MA   /M: SY='V'; M=-4,-18,-20,-24,-17,1,-25,-20,7,-7,1,5,-15,-20,-15,-6,-9,0,11,-19,-3,-16;
+MA   /M: SY='I'; M=-10,-30,-22,-35,-27,14,-34,-25,31,-28,25,17,-24,-26,-24,-24,-21,-8,23,-17,3,-27;
+MA   /M: SY='H'; M=-12,-6,-27,-7,1,-13,-23,6,-11,-1,-12,-5,-3,-15,1,1,-5,-3,-12,-16,1,-1;
+MA   /M: SY='V'; M=-2,-26,-17,-30,-26,0,-30,-26,29,-23,17,12,-23,-26,-24,-22,-14,-4,33,-26,-7,-26;
+MA   /M: SY='I'; M=-8,-22,-22,-26,-21,-3,-30,-17,22,-17,15,13,-17,-23,-16,-16,-15,-5,19,-24,-3,-20;
+MA   /M: SY='E'; M=-4,13,-24,12,14,-26,-5,0,-26,6,-24,-17,14,-11,5,1,4,-5,-24,-30,-17,9;
+MA   /M: SY='K'; M=-8,1,-27,2,5,-24,-12,-8,-26,24,-23,-12,1,-13,3,18,-5,-6,-17,-22,-10,3;
+MA   /I: I=-3; MI=0; MD=-13; IM=0; DM=-13;
+MA   /M: SY='N'; M=-6,2,-16,1,1,-10,-13,-2,-15,-6,-11,-10,3,-16,-5,-8,1,0,-14,-24,-5,-2; D=-3;
+MA   /I: I=-3; DM=-13;
+MA   /M: SY='E'; M=-8,13,-25,15,16,-25,-6,-3,-24,-1,-20,-16,12,-8,5,-5,3,-5,-24,-32,-18,10;
+MA   /M: SY='D'; M=-7,9,-27,11,1,-28,3,-2,-26,-3,-27,-17,10,-3,1,-7,4,-7,-24,-31,-19,0;
+MA   /M: SY='G'; M=-3,7,-27,9,0,-29,29,-7,-34,-10,-28,-20,9,-15,-7,-13,5,-11,-27,-28,-23,-3;
+MA   /M: SY='W'; M=-20,-40,-50,-40,-30,10,-20,-30,-20,-20,-20,-20,-40,-30,-20,-20,-40,-30,-30,150,30,-20;
+MA   /M: SY='W'; M=-15,-30,-25,-32,-25,7,-23,-20,-10,-19,-5,-7,-30,-28,-18,-18,-27,-14,-16,71,21,-19;
+MA   /M: SY='E'; M=-9,-5,-26,-5,3,-10,-21,-11,-11,3,-11,-8,-6,-16,-3,2,-9,-7,-9,-13,-4,0;
+MA   /M: SY='G'; M=6,-16,-13,-20,-22,-20,24,-23,-13,-21,-14,-9,-10,-21,-20,-22,-3,-12,-5,-24,-22,-22;
+MA   /M: SY='R'; M=-14,-3,-21,-3,6,-20,-20,0,-21,11,-16,-9,1,-16,10,24,-5,-6,-18,-24,-8,6;
+MA   /M: SY='N'; M=-9,-2,-12,-10,-12,-8,-19,-8,-2,-10,-4,-2,5,-18,-10,-10,-7,-3,-6,-27,-6,-12;
+MA   /M: M=-8,0,-24,0,-5,-16,-12,-13,-7,-7,-9,-7,0,-13,-9,-11,-4,-4,-6,-27,-11,-8;
+MA   /I: I=-4; MD=-22;
+MA   /M: SY='K'; M=-2,-1,-12,-2,-1,-12,-4,-6,-12,6,-11,-5,0,-7,0,6,2,3,-7,-14,-7,-1; D=-4;
+MA   /I: I=-4; MI=0; MD=-22; IM=0; DM=-22;
+MA   /M: SY='T'; M=1,-1,-11,-4,-2,-10,-3,-10,-10,-4,-7,-7,1,-8,-5,-5,6,12,-6,-17,-9,-3; D=-4;
+MA   /I: I=-4; DM=-22;
+MA   /M: SY='G'; M=-4,3,-13,0,-10,-25,22,-13,-27,-12,-24,-17,9,-21,-13,-12,0,-11,-20,-29,-24,-12;
+MA   /M: SY='E'; M=-9,1,-27,2,18,-24,-12,-5,-19,7,-16,-9,1,-11,10,5,-3,-7,-19,-26,-15,13;
+MA   /M: SY='R'; M=-10,-10,-25,-11,1,-18,-23,-10,-9,6,-12,-5,-7,-10,5,14,-4,1,-5,-24,-11,1;
+MA   /M: SY='G'; M=0,-10,-30,-10,-18,-30,66,-19,-39,-19,-30,-19,0,-20,-17,-19,0,-20,-30,-20,-29,-18;
+MA   /M: SY='W'; M=-16,-29,-31,-31,-25,23,-27,-19,3,-24,10,0,-27,-28,-22,-20,-28,-16,-5,40,23,-22;
+MA   /M: SY='F'; M=-11,-29,-21,-37,-29,32,-33,-24,23,-27,12,8,-22,-26,-29,-23,-17,-8,20,-8,12,-29;
+MA   /M: SY='P'; M=-10,-20,-39,-11,-1,-29,-20,-20,-18,-10,-28,-19,-20,84,-11,-20,-10,-10,-26,-30,-29,-11;
+MA   /M: SY='S'; M=6,-4,-7,-7,-4,-18,-8,-14,-14,-9,-17,-12,1,-15,-4,-10,16,11,-6,-33,-17,-4;
+MA   /M: SY='N'; M=-5,21,-18,10,-1,-19,-6,-1,-17,-1,-24,-15,31,-16,-2,-3,14,7,-18,-37,-17,-1;
+MA   /M: SY='Y'; M=-19,-17,-21,-21,-19,28,-27,11,-4,-13,0,-1,-14,-29,-14,-8,-17,-10,-10,11,49,-19;
+MA   /M: SY='V'; M=-6,-26,-14,-30,-26,1,-27,-26,22,-21,11,9,-23,-26,-24,-17,-13,-4,27,-25,-6,-26;
+MA   /M: SY='E'; M=-5,2,-21,4,22,-27,-18,-4,-25,10,-19,-13,-1,-9,16,9,1,-2,-21,-26,-15,18;
+MA   /M: SY='P'; M=-10,-9,-30,-4,8,-17,-22,-10,-12,-1,-11,-7,-11,12,-2,-6,-9,-8,-15,-23,-10,1;
+MA   /M: SY='I'; M=-7,-12,-22,-14,-10,-8,-22,-11,4,-9,-2,2,-9,-19,-5,-8,-3,-1,4,-22,-1,-9;
+MA   /M: SY='N'; M=-7,5,-24,6,-2,-22,6,-8,-22,-5,-19,-14,7,-17,-4,-5,2,-5,-17,-27,-15,-4;
+MA   /M: SY='S'; M=0,-1,-13,-3,-4,-19,-13,-4,-15,-4,-15,-10,2,-16,-2,-2,7,2,-9,-30,-13,-4;
+MA   /I: E1=0; IE=-105; DE=-105;
+CC   /GENERATED_BY="./pfmake -b -H 0.6 - blosum45.cmp";
+//
+#----------------------------------------------------------------------#
+# pftools test 8:./ptoh -L 1.15 ecp.prf
+#----------------------------------------------------------------------#
+# HMM v1.7
+45      # M -- length of model
+4       # alphabet length
+1       # alphabet type
+ACGT    # alphabet
+no      # Optional reference line annotation?
+no      # Optional consensus structure annotation?
+###MATCH_STATE 0 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.000000        # Symbol A probability
+0.000000        # Symbol C probability
+0.000000        # Symbol G probability
+0.000000        # Symbol T probability
+###DELETE_STATE 0 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 0 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 1 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.492674        # Symbol A probability
+0.161056        # Symbol C probability
+0.161056        # Symbol G probability
+0.185214        # Symbol T probability
+###DELETE_STATE 1 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 1 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 2 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.347990        # Symbol A probability
+0.198964        # Symbol C probability
+0.150446        # Symbol G probability
+0.302600        # Symbol T probability
+###DELETE_STATE 2 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 2 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 3 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.347990        # Symbol A probability
+0.150446        # Symbol C probability
+0.198964        # Symbol G probability
+0.302600        # Symbol T probability
+###DELETE_STATE 3 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 3 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 4 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.302600        # Symbol A probability
+0.198964        # Symbol C probability
+0.150446        # Symbol G probability
+0.347990        # Symbol T probability
+###DELETE_STATE 4 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 4 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 5 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.357012        # Symbol A probability
+0.204123        # Symbol C probability
+0.204123        # Symbol G probability
+0.234741        # Symbol T probability
+###DELETE_STATE 5 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 5 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 6 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.312748        # Symbol A probability
+0.178815        # Symbol C probability
+0.236482        # Symbol G probability
+0.271955        # Symbol T probability
+###DELETE_STATE 6 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 6 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 7 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.176792        # Symbol A probability
+0.233808        # Symbol C probability
+0.233808        # Symbol G probability
+0.355592        # Symbol T probability
+###DELETE_STATE 7 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 7 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 8 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.226936        # Symbol A probability
+0.149214        # Symbol C probability
+0.226936        # Symbol G probability
+0.396913        # Symbol T probability
+###DELETE_STATE 8 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 8 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 9 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.233808        # Symbol A probability
+0.355592        # Symbol C probability
+0.233808        # Symbol G probability
+0.176792        # Symbol T probability
+###DELETE_STATE 9 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 9 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 10 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.070255        # Symbol A probability
+0.080794        # Symbol C probability
+0.092913        # Symbol G probability
+0.756038        # Symbol T probability
+###DELETE_STATE 10 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 10 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 11 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.072668        # Symbol A probability
+0.072668        # Symbol C probability
+0.072668        # Symbol G probability
+0.781997        # Symbol T probability
+###DELETE_STATE 11 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 11 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 12 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.069414        # Symbol A probability
+0.091800        # Symbol C probability
+0.746985        # Symbol G probability
+0.091800        # Symbol T probability
+###DELETE_STATE 12 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 12 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 13 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.615515        # Symbol A probability
+0.132301        # Symbol C probability
+0.100038        # Symbol G probability
+0.152146        # Symbol T probability
+###DELETE_STATE 13 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 13 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 14 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.211563        # Symbol A probability
+0.489359        # Symbol C probability
+0.139106        # Symbol G probability
+0.159972        # Symbol T probability
+###DELETE_STATE 14 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 14 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 15 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.389953        # Symbol A probability
+0.146598        # Symbol C probability
+0.168588        # Symbol G probability
+0.294861        # Symbol T probability
+###DELETE_STATE 15 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 15 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 16 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.221968        # Symbol A probability
+0.221968        # Symbol C probability
+0.167840        # Symbol G probability
+0.388224        # Symbol T probability
+###DELETE_STATE 16 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 16 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 17 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 17 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 17 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 18 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 18 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 18 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 19 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 19 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 19 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 20 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 20 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 20 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 21 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 21 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 21 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 22 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 22 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 22 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 23 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 23 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 23 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 24 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 24 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 24 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 25 ( ) ( )
+0.070544        # t_m1
+0.929456        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 25 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 25 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 26 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 26 ( ) ( )
+0.075898        # t_m1
+0.924101        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 26 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 27 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 27 ( ) ( )
+0.082132        # t_m1
+0.917868        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 27 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 28 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 28 ( ) ( )
+0.179979        # t_m1
+0.820021        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 28 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 29 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 29 ( ) ( )
+0.671398        # t_m1
+0.328602        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 29 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 30 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 30 ( ) ( )
+0.667924        # t_m1
+0.332077        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 30 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 31 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###DELETE_STATE 31 ( ) ( )
+0.999998        # t_m1
+0.000001        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 31 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 32 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.191600        # Symbol A probability
+0.220340        # Symbol C probability
+0.144877        # Symbol G probability
+0.443183        # Symbol T probability
+###DELETE_STATE 32 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 32 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 33 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.248783        # Symbol A probability
+0.216333        # Symbol C probability
+0.248783        # Symbol G probability
+0.286101        # Symbol T probability
+###DELETE_STATE 33 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 33 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 34 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.176792        # Symbol A probability
+0.233808        # Symbol C probability
+0.233808        # Symbol G probability
+0.355592        # Symbol T probability
+###DELETE_STATE 34 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 34 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 35 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.204123        # Symbol A probability
+0.204123        # Symbol C probability
+0.357012        # Symbol G probability
+0.234741        # Symbol T probability
+###DELETE_STATE 35 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 35 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 36 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.200265        # Symbol A probability
+0.230305        # Symbol C probability
+0.304579        # Symbol G probability
+0.264851        # Symbol T probability
+###DELETE_STATE 36 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 36 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 37 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.069414        # Symbol A probability
+0.091800        # Symbol C probability
+0.091800        # Symbol G probability
+0.746985        # Symbol T probability
+###DELETE_STATE 37 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 37 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 38 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.838598        # Symbol A probability
+0.051239        # Symbol C probability
+0.051239        # Symbol G probability
+0.058924        # Symbol T probability
+###DELETE_STATE 38 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 38 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 39 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.234671        # Symbol A probability
+0.177445        # Symbol C probability
+0.177445        # Symbol G probability
+0.410440        # Symbol T probability
+###DELETE_STATE 39 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 39 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 40 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.539727        # Symbol A probability
+0.153424        # Symbol C probability
+0.153424        # Symbol G probability
+0.153424        # Symbol T probability
+###DELETE_STATE 40 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 40 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 41 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.481052        # Symbol A probability
+0.180845        # Symbol C probability
+0.157257        # Symbol G probability
+0.180845        # Symbol T probability
+###DELETE_STATE 41 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 41 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 42 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.051239        # Symbol A probability
+0.058924        # Symbol C probability
+0.051239        # Symbol G probability
+0.838598        # Symbol T probability
+###DELETE_STATE 42 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 42 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 43 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.308994        # Symbol A probability
+0.153625        # Symbol C probability
+0.268691        # Symbol G probability
+0.268691        # Symbol T probability
+###DELETE_STATE 43 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 43 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 44 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.207431        # Symbol A probability
+0.315477        # Symbol C probability
+0.238546        # Symbol G probability
+0.238546        # Symbol T probability
+###DELETE_STATE 44 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 44 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+###MATCH_STATE 45 ( ) ( )
+1.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.266231        # Symbol A probability
+0.266231        # Symbol C probability
+0.266231        # Symbol G probability
+0.201309        # Symbol T probability
+###DELETE_STATE 45 ( ) ( )
+0.000000        # t_m1
+1.000000        # t_d1
+0.000000        # t_i0
+###INSERT_STATE 45 ( ) ( )
+0.000000        # t_m1
+0.000000        # t_d1
+0.000000        # t_i0
+0.250000        # Symbol A probability
+0.250000        # Symbol C probability
+0.250000        # Symbol G probability
+0.250000        # Symbol T probability
+#----------------------------------------------------------------------#
+# pftools test 9: ./pfscale -N 14147368 -P 0.0001 -Q 0.000001 score.lis
+#                    | sed -n 1,25p
+#----------------------------------------------------------------------#
+# -LogP =  2.0437 +   0.00741886 * raw-score
+#
+#   rank raw-score  -logFreq  -logProb
+#
+       1    621.00    7.4517    6.6508
+       2    614.00    6.9746    6.5989
+       3    606.00    6.7527    6.5395
+       4    581.00    6.6066    6.3541
+       5    576.00    6.4975    6.3170
+       6    572.00    6.4103    6.2873
+       7    569.00    6.3378    6.2650
+       8    569.00    6.2756    6.2650
+       9    561.00    6.2213    6.2057
+      10    557.00    6.1730    6.1760
+      11    554.00    6.1295    6.1538
+      12    551.00    6.0900    6.1315
+      13    548.00    6.0538    6.1092
+      14    539.00    6.0203    6.0425
+      15    532.00    5.9893    5.9905
+      16    527.00    5.9603    5.9534
+      17    526.00    5.9332    5.9460
+      18    525.00    5.9076    5.9386
+      19    523.00    5.8835    5.9238
+      20    523.00    5.8606    5.9238
+      21    519.00    5.8389    5.8941
+#----------------------------------------------------------------------#
+# pftools test 10: ./pfsearch -y coils.prf MYSA_HUMAN
+#----------------------------------------------------------------------#
+  82.697   2354 pos.      848 -    1922 P13533|MYSA_HUMAN MYOSIN HEAVY CHAIN, CARDIAC MUSCLE ALPHA ISOFORM.
+#
+# P        5 efgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefga       -7
+# S      848 EKEMATMKEEFGRIKETLEKSEARRKELEEKMVSLLQEKNDLQLQVQAEQDNLNDAEERC    -1033
+#
+# P        2 bcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcde       -3
+# S      908 DQLIKNKIQLEAKVKEMNERLEDEEEMNAELTAKKRKLEDECSELKKDIDDLELTLAKVE     -973
+#
+# P        6 fgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgab       -6
+# S      968 KEKHATENKVKNLTEEMAGLDEIIAKLTKEKKALQEAHQQALDDLQAEEDKVNTLSKSKV     -913
+#
+# P        3 cdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdef       -2
+# S     1028 KLEQQVDDLEGSLEQEKKVRMDLERAKRKLEGDLKLTQESIMDLENDKLQLEEKLKKKEF     -853
+#
+# P        7 gabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabc       -5
+# S     1088 DINQQNSKIEDEQVLALQLQKKLKENQARIEELEEELEAERTARAKVEKLRSDLSRELEE     -793
+#
+# P        4 defgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefga-bcdefgabcdef       -2
+# S     1148 ISERLEEAGGATSVQIEMNKKREAEFQKMRRDLEEATLQHEATAAALrKKHADSVAELGE     -733
+#
+# P        7 gabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabc       -5
+# S     1208 QIDNLQRVKQKLEKEKSEFKLELDDVTSNMEQIIKAKANLEKVSRTLEDQANEYRVKLEE     -673
+#
+# P        4 defgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefg       -1
+# S     1268 AQRSLNDFTTQRAKLQTENGELSRQLEEKEALISQLTRGKLSYTQQMEDLKRQLEEEGKA     -613
+#
+# P        1 abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgab-cdefgabc       -5
+# S     1328 KNALAHALQSARHDCDLLREQYEEETEAKAELQRVLSKANSEVAQCRTKYEtDAIQRTEE     -553
+#
+# P        4 defgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefg       -1
+# S     1388 LEEAKKKLAQRLQDAEEAVEAVNAKCSSLEKTKHRLQNEIEDLMVDVERSNAAAAALDKK     -493
+#
+# P        1 abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcd       -4
+# S     1448 QRNFDKILAEWKQKYEESQSELESSQKEARSLSTELFKLKNAYEESLEHLETFKRENKNL     -433
+#
+# P        5 efgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefga       -7
+# S     1508 QEEISDLTEQLGEGGKNVHELEKVRKQLEVEKLELQSALEEAEASLEHEEGKILRAQLEF     -373
+#
+# P        2 bcdefgabc-defgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcd       -4
+# S     1568 NQIKAEIERkLAEKDEEMEQAKRNHQRVVDSLQTSLDAETRSRNEVLRVKKKMEGDLNEM     -313
+#
+# P        5 efgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefga       -7
+# S     1628 EIQLSHANRMAAEAQKQVKSLQSLLKDTQIQLDDAVRANDDLKENIAIVERRNNLLQAEL     -253
+#
+# P        2 bcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcde       -3
+# S     1688 EELRAVVEQTERSRKLADRELIETSERVQLLHSQNTSLINQKKKMDADLSQLQSEVEEAV     -193
+#
+# P        6 fgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdef-ga       -7
+# S     1748 QECRNAEEKAKKAITHAAMMAEELKKEQDTSAHLERMKKNMEQTIKDLQHRLDEAEQiAL     -133
+#
+# P        2 bcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcde       -3
+# S     1808 KGGKKQLQKLEARVRELEGELEAEQKRNAESVKGMRKSERRIKELTYQTEEDKKNLLRLQ      -73
+#
+# P        6 fgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcd       -4 
+# S     1868 DLVDKLQLKVKAYKRQAEEAEEQANTNLSKFRKVQHELDEAEERADIAESQVNKL      -18 
+#
+#----------------------------------------------------------------------#
+# pftools test 11: /bin/rm sh3.fsp
+#                 ./ptof -r -F -1.2 -I 0.6 -X -1.5 -B -0.5 sh3.prf >sh3.fsp
+#                 ./2ft < R76849.seq | ./pfsearch -fy -C 5.0 sh3.fsp -
+#                  /bin/rm sh3.fsp
+#----------------------------------------------------------------------#
+  10.764    600 pos.      186 -     347 x|gi|851481|gb|R76849|R76849_M yi63d09.r1 Homo sapiens cDNA clone 143921 5' similar to gb:M23379 GTPASE-ACTIVATING PROTEIN (HUMAN);.
+#
+# P       28 Y><D><Y><E>----<A><E><D><P><D><E><L><S><F>-<K><K><G><D><I><I     -103
+# S      186 YTPPLLYTHTQkkksVYTPPQRDTHTLODMOEKNIOKSVFFSpLLOKKKRGERDIYMCVF     -253
+#
+# P       83 ><Y><I><L><E><K><S><D><D><D><W><W><R><G><R><N><X><R><T><G><Q      -43
+# S      246 SHILCVFSHIONMOENILOREKRDMWGDMWGDMCVWGGVLYTQKNIFLOKRENTQRDMOE     -193
+#
+# P      143 ><E><G><Y><I><P><S><N><Y><V><E><E><X><D><S       -1 
+# S      306 NTQKRGAPLLYILCVLOEKRDTPLOSVOREKRERGVWGGAPR     -151 
+#
diff --git a/test.sh b/test.sh
new file mode 100644
index 0000000..5af3824
--- /dev/null
+++ b/test.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+echo "#----------------------------------------------------------------------#"
+echo "# pftools test 1: ./pfsearch -f -C 6.0 sh3.prf sh3.seq"
+echo "#----------------------------------------------------------------------#"
+./pfsearch -f -C 6.0 sh3.prf sh3.seq
+echo "#----------------------------------------------------------------------#"
+echo "# pftools test 2: ./pfsearch -bx ecp.prf CVPBR322 | ./psa2msa -du"
+echo "#----------------------------------------------------------------------#"
+./pfsearch -bx ecp.prf CVPBR322 | ./psa2msa -du
+echo "#----------------------------------------------------------------------#"
+echo "# pftools test 3: ./pfscan -s GTPA_HUMAN prosite13.prf"
+echo "#----------------------------------------------------------------------#"
+./pfscan -s GTPA_HUMAN prosite13.prf
+echo "#----------------------------------------------------------------------#"
+echo "# pftools test 4: ./pfscan -by -C 2 CVPBR322 ecp.prf"
+echo "#----------------------------------------------------------------------#"
+./pfscan -by -C 2 CVPBR322 ecp.prf
+echo "#----------------------------------------------------------------------#"
+echo "# pftools test 5: ./gtop -F 50 sh3.gpr | ./pfsearch -far - sh3.seq"
+echo "#                    | sort -nr"
+echo "#----------------------------------------------------------------------#"
+./gtop -F 50 sh3.gpr | ./pfsearch -far - sh3.seq | sort -nr
+echo "#----------------------------------------------------------------------#"
+echo "# pftools test 6: ./htop pfam_sh3.hmm  | ./pfsearch -f - sh3.seq"
+echo "                     | sort -nr"
+echo "#----------------------------------------------------------------------#"
+./htop pfam_sh3.hmm | ./pfsearch -f - sh3.seq | sort -nr
+echo "#----------------------------------------------------------------------#"
+echo "# pftools test 7: ./pfw -N 1000 sh3.msf |"
+echo "#                    ./pfmake -b -H 0.6 - blosum45.cmp"
+echo "#----------------------------------------------------------------------#"
+./pfw -N 1000 sh3.msf | ./pfmake -b -H 0.6 - blosum45.cmp
+echo "#----------------------------------------------------------------------#"
+echo "# pftools test 8:./ptoh -L 1.15 ecp.prf"
+echo "#----------------------------------------------------------------------#"
+./ptoh -L 1.15 ecp.prf
+echo "#----------------------------------------------------------------------#"
+echo "# pftools test 9: ./pfscale -N 14147368 -P 0.0001 -Q 0.000001 score.lis"
+echo "#                    | sed -n 1,25p"
+echo "#----------------------------------------------------------------------#"
+./pfscale -N 14147368 -P 0.0001 -Q 0.000001 score.lis | sed -n 1,25p
+echo "#----------------------------------------------------------------------#"
+echo "# pftools test 10: ./pfsearch -y coils.prf MYSA_HUMAN"
+echo "#----------------------------------------------------------------------#"
+./pfsearch -y coils.prf MYSA_HUMAN
+echo "#----------------------------------------------------------------------#"
+echo "# pftools test 11: /bin/rm sh3.fsp"
+echo "#                 ./ptof -r -F -1.2 -I 0.6 -X -1.5 -B -0.5 sh3.prf >sh3.fsp"
+echo "#                 ./2ft < R76849.seq | ./pfsearch -fy -C 5.0 sh3.fsp -"
+echo "#                  /bin/rm sh3.fsp"
+echo "#----------------------------------------------------------------------#"
+/bin/rm sh3.fsp; ./ptof -r -F -1.2 -I 0.6 -X -1.5 -B -0.5 sh3.prf > sh3.fsp ; ./2ft < R76849.seq | ./pfsearch -fy -C 5.0 sh3.fsp -; /bin/rm sh3.fsp
+
+
diff --git a/wprsm.f b/wprsm.f
new file mode 100644
index 0000000..b2afff3
--- /dev/null
+++ b/wprsm.f
@@ -0,0 +1,285 @@
+*----------------------------------------------------------------------*     
+* $Id: wprsm.f,v 2.13 2003/12/09 13:42:42 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine WPRSM(JSEQ,JMMA,LPMM,
+     *   LUNI,LOUT,LNOR,LREV,LPFA,OPTZ,OPTL,OPLU,NW,
+     *   CHID,CHAC,CHDE,OPTD,OPTR,LDRS,
+     *   IOPT,JALB,JALE,NALI,IPMB,IPME,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *   RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+
+* profile parameters
+
+      Include          'codat.f'
+
+      Real              RNOP(KNPM,MAXN)
+
+* logical switches 
+
+      Logical           LUNI
+      Logical           LOUT
+      Logical           LNOR
+      Logical           LREV
+      Logical           LPFA
+      Logical           OPTL
+      Logical           OPLU
+      Logical           OPTZ 
+      Logical           OPTD
+      Logical           OPTR
+
+      Logical           LPMM
+      Logical           LFCL
+      Logical           LDRS
+
+* function return types
+
+      Integer           Xblnk
+      External          Xblnk
+
+* sequence header 
+      
+      Character*(*)     CHID
+      Character*(*)     CHAC
+      Character*(*)     CHDE
+
+* Output fields 
+
+      Character*04      CHLE
+      Character*08      CHNS
+      Character*07      CHRS 
+      Character*24      CHLO 
+      Character*18      CHPP
+      Character*64      CHER 
+      Character*64      CHMI
+      Character*64      CHRP
+
+      Character*512     RCEX
+
+* prepare output fields 
+
+* - norm-score
+
+      If(LNOR) then
+         Call RtoN
+     *      (IOPT,XOPT,RNOP,KNPM,MAXN,INOR,IFUN,LSEQ,RAVE)
+         R=XOPT
+         If(R.GT.9999.999) R=9999.999 
+         If(R.LT.-999.999) R=-999.999
+         Write(CHNS,'(F8.3)') R
+      End if 
+
+* - cut-off level
+
+      If(OPTL.OR.OPLU) then
+         LFCL=.FALSE.
+         If(.NOT.OPTR) then
+            KI=0
+            KJ=0
+            Do I1=1,JCUT
+               Do I2=1,JCNM(I1)
+                  If(MCUT(I2,I1).EQ.MNUM) then
+                     If(KI.EQ.0) then
+                        KI=I1
+                        KJ=I2
+                     Else if(RCUT(I2,I1).LT.RCUT(KJ,KI)) then
+                        KI=I1
+                        KJ=I2
+                     End if
+                  End if
+               End do
+            End do
+            Do I1=1,JCUT
+               Do I2=1,JCNM(I1)
+                  If(MCUT(I2,I1).EQ.MNUM) then 
+                     If(XOPT.GE.RCUT(I2,I1)
+     *                  .AND.RCUT(I2,I1).GE.RCUT(KJ,KI)
+     *                  .AND.MCLE(I1).GE.MCLE(KI)) then
+                        LFCL=.TRUE.
+                        KI=I1
+                        KJ=I2
+                     End if
+                  End if
+               End do
+            End do
+         Else
+            KI=1
+            Do I1=2,JCUT
+               If(ICUT(I1).LT.ICUT(KI)) KI=I1
+            End do 
+            Do I1=1,JCUT
+               If(IOPT.GE.ICUT(I1).AND.ICUT(I1).GE.ICUT(KI)
+     *            .AND.MCLE(I1).GE.MCLE(KI)) then
+                  LFCL=.TRUE.
+                  KI=I1
+               End if
+            End do 
+         End if 
+         K=MCLE(KI)
+         If(.NOT.LFCL) then
+            Write(CHLE,'(''NA'')')
+         Else if(OPLU) then
+            CHLE=CCUT(KI)
+         Else if(K.LT.0.OR.K.GT.9) then 
+            Write(CHLE,'(''L='',I2)') K 
+         Else
+            Write(CHLE,'(''L='',I1,'' '')') K 
+         End if
+      End if  
+
+* - raw-score
+
+      I=IOPT
+      If(I.GT.999999) I=999999
+      If(I.LE.-99999) I=-99999
+      Write(CHRS,'(I7)') I
+      
+* - location in sequence
+
+      If(.NOT.LUNI.OR.LOUT) then 
+         If(LREV) then 
+            JALB=LSEQ-JALB+1
+            JALE=LSEQ-JALE+1
+         End if 
+         Write(CHLO,'('' pos. '',I8,'' -'',I8)') JALB,JALE
+         If(LREV) then 
+            JALB=LSEQ-JALB+1
+            JALE=LSEQ-JALE+1
+         End if 
+
+* - location in profile 
+
+         If(OPTZ) then 
+            Write(CHPP,'('' ['',I5,'','',I6,'']'')') IPMB,IPME
+         End if
+      End if 
+
+* - entry-ref 
+
+      L1=Lblnk(CHAC)
+      L2=Lblnk(CHID)
+      CHER=CHAC(1:L1) // CHID(1:L2)
+      LNER=MIN(61,L1+L2)
+
+      If(LREV) then 
+         CHER=CHER(1:LNER) // '(-)' 
+         LNER=LNER+3
+      End if 
+
+* - match-id
+
+      If(LPFA.AND.NALI.GT.1) then 
+         CHMI=CHID(1:L2) // '_'
+         Write(CHMI(L2+2:),*) JSEQ
+         J1=L2+1
+         Do I1=L2+2,Lblnk(CHMI)
+            If(CHMI(I1:I1).NE.' ') then 
+               J1=J1+1
+               CHMI(J1:J1)=CHMI(I1:I1)
+            End if
+         End do
+         CHMI(J1+1:J1+1)=' '
+         LNMI=J1
+         L2=J1
+      Else
+         CHMI=CHID(1:L2)
+         LNMI=L2
+      End if
+
+* - multiple repeat ID
+
+*      If(LPFA.AND.LPMM) then 
+*         CHMI=CHMI(1:L2) // '_REP'
+*         Write(CHMI(L2+5:),*) JMMA
+*         J1=L2+4
+*         Do I1=L2+5,Lblnk(CHMI) 
+*            If(CHMI(I1:I1).NE.' ') then 
+*               J1=J1+1
+*               CHMI(J1:J1)=CHMI(I1:I1)
+*            End if
+*         End do
+*         CHMI(J1+1:J1+1)=' '
+*         LNMI=J1
+*      End if
+
+* assemble ouput record
+
+      LNEX=0 
+
+      If(LPFA) then  
+         RCEX(LNEX+1:)='>' // CHMI // ' ' 
+         LNEX=LNEX+LNMI+2
+      End if 
+
+      If(OPTL.OR.OPLU) then
+         RCEX(LNEX+1:)=CHLE
+         LNEX=LNEX+4
+         If(OPLU) LNEX=LNEX-2
+      End if
+
+      If(LNOR.AND..NOT.LDRS) then 
+         RCEX(LNEX+1:)=CHNS
+         LNEX=LNEX+8
+      End if
+
+      RCEX(LNEX+1:)=CHRS
+      LNEX=LNEX+7
+
+      If(.NOT.LUNI.OR.LOUT) then 
+         RCEX(LNEX+1:)=CHLO
+         LNEX=LNEX+24
+         
+         If(OPTZ) then
+            RCEX(LNEX+1:)=CHPP
+            LNEX=LNEX+15
+         End if
+      End if   
+
+* - match ID, region nb and repeat nb for standard output and option -x
+      
+      If(.NOT.LPMM.AND.JMMA.GT.1) then
+         Write(CHRP,*) 'REGION',JSEQ
+         J1=6
+         Do I1=7,Lblnk(CHRP)
+            If(CHRP(I1:I1).NE.' ') then
+               J1=J1+1
+               CHRP(J1:J1)=CHRP(I1:I1)
+            End if
+         End do
+         RCEX(LNEX+1:)=CHRP(1:J1)
+         LNEX=LNEX+J1
+      End if
+
+      If(LPMM) then
+         Write(CHRP,*) JSEQ,'REP'
+         L2=Lblnk(CHRP)
+         Write(CHRP(L2+1:),*) JMMA
+         J1=L2
+         Do I1=L2+1,Lblnk(CHRP)
+            If(CHRP(I1:I1).NE.' ') then 
+               J1=J1+1
+               CHRP(J1:J1)=CHRP(I1:I1)
+            End if
+         End do
+         RCEX(LNEX+1:)=CHRP(1:J1)
+         LNEX=LNEX+J1
+      End if
+
+      RCEX(LNEX+2:)=CHER(1:LNER)
+      LNEX=LNEX+1+LNER
+
+      If(OPTD) then
+         L3=MAX(0,MIN(NW-LNEX-1,Xblnk(CHDE,64)))
+      Else
+         L3=MAX(0,MIN(510-LNEX-1,Xblnk(CHDE,64)))
+      End if
+      RCEX(LNEX+2:)=CHDE(1:L3)
+      LNEX=LNEX+1+L3
+
+* Write output record
+      Write(6,'(512A)')(RCEX(ii1:ii1),ii1=1,LNEX)
+
+ 100  Return 
+      End 
+
diff --git a/wrhmr.f b/wrhmr.f
new file mode 100644
index 0000000..285c8f7
--- /dev/null
+++ b/wrhmr.f
@@ -0,0 +1,141 @@
+*----------------------------------------------------------------------*     
+* $Id: wrhmr.f,v 2.4 2003/03/26 14:40:29 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine WRHMR
+     *   (NOUT,NERR,IDMP,RIHM,RMHM,LHMM,NABC,CABC,FLOW,RSCA,BLOG) 
+
+      Include         'pfind.f' 
+      Include         'hmdat.f'
+
+      Real*8           BLOG
+      Character        CABC(0:26)
+
+      Character*64     RCEX        
+      
+
+* Log to Prob
+
+      Do  10 I1=0,LHMM
+         Do I2=1,46
+            If     (RIHM(I2,I1).LE.FLOW) then
+               RIHM(I2,I1)=0.0
+            Else If(RIHM(I2,I1).LE.-6.0) then
+               RIHM(I2,I1)=0.000001
+            Else
+               RIHM(I2,I1)=EXP(RIHM(I2,I1))
+            End if 
+         End do
+         If(I1.GT.0) then  
+            Do I2=1,27
+               If     (RMHM(I2,I1).LE.FLOW) then
+                  RMHM(I2,I1)=0.0
+               Else If(RIHM(I2,I1).LE.-6.0) then
+                  RMHM(I2,I1)=0.000001
+               Else
+                  RMHM(I2,I1)=EXP(RMHM(I2,I1))
+               End if 
+            End do
+         End if 
+ 10   Continue
+
+* header 
+
+      Write(NOUT,'(''# HMM v1.7'')')
+      RSCA=RSCA/BLOG
+      Write(NERR,'(
+     *   ''# HMM converted from generalized profile'',
+     *   '' with pftools program htop.'',
+     *   /,''# Logarithic base of profile: '',F12.8,''.'',
+     *   /,''# Offset: profile score = '',E10.4,'' + Log(Prob).'')')
+     *   exp(BLOG),RSCA
+
+      Write(RCEX(1:8),'(I8)') LHMM 
+      Do I1=1,8
+         If(RCEX(I1:I1).NE.' ') Go to  12 
+      End do
+ 12   RCEX(1:8)=RCEX(I1:8) // RCEX(1:I1-1)
+      Write(NOUT,'(A8,''# M -- length of model'')') RCEX(1:8) 
+      If(NABC.EQ.4) then  
+         Write(NOUT,'(''4       # alphabet length'')') 
+         Write(NOUT,'(''1       # alphabet type'')') 
+         Write(NOUT,'( 4A,''    # alphabet'')')(CABC(ii1),ii1=1,NABC) 
+      Else
+         Write(NOUT,'(''20      # alphabet length'')') 
+         Write(NOUT,'(''3       # alphabet type'')') 
+         Write(NOUT,'(20A,''    # alphabet'')')(CABC(ii1),ii1=1,NABC) 
+      End if
+      Write(NOUT,
+     *   '(''no      # Optional reference line annotation?'')')
+      Write(NOUT,
+     *   '(''no      # Optional consensus structure annotation?'')')
+
+* make sure that meaningless parameter at pos. 0 equal 0 
+
+      Do I1=1,27
+         RMHM(I1,0)=0.0
+      End do
+
+* write HMM probabilites
+
+      Do  I1=0,LHMM
+
+* match state
+
+         Write(RCEX(1:8),'(I8)') I1
+         Do I2=1,8
+            If(RCEX(I2:I2).NE.' ') Go to  21 
+         End do
+ 21      RCEX='###MATCH_STATE ' // RCEX(I2:8)
+         RCEX=RCEX(1:Lblnk(RCEX)) // ' ( ) ( )'
+         Write(NOUT,'(64A)')(RCEX(ii1:ii1),ii1=1,Lblnk(RCEX))
+
+         Write(NOUT,'(F8.6,''        # t_m1'')') RIHM(MM,I1)
+         Write(NOUT,'(F8.6,''        # t_d1'')') RIHM(MD,I1)
+         Write(NOUT,'(F8.6,''        # t_i0'')') RIHM(MI,I1)
+
+         Do I2=1,NABC
+            Write(NOUT,
+     *         '(F8.6,''        # Symbol '',A,'' probability'')')
+     *         RMHM(I2,I1),CABC(I2)
+         End do 
+
+* delete state
+
+         Write(RCEX(1:8),'(I8)') I1
+         Do I2=1,8
+            If(RCEX(I2:I2).NE.' ') Go to  22 
+         End do
+ 22      RCEX='###DELETE_STATE ' // RCEX(I2:8)
+         RCEX=RCEX(1:Lblnk(RCEX)) // ' ( ) ( )'
+         Write(NOUT,'(64A)')(RCEX(ii1:ii1),ii1=1,Lblnk(RCEX))
+
+         Write(NOUT,'(F8.6,''        # t_m1'')') RIHM(DM,I1)
+         Write(NOUT,'(F8.6,''        # t_d1'')') RIHM(DD,I1)
+         Write(NOUT,'(F8.6,''        # t_i0'')') RIHM(DI,I1)
+
+* insert state 
+
+         Write(RCEX(1:8),'(I8)') I1
+         Do I2=1,8
+            If(RCEX(I2:I2).NE.' ') Go to  23 
+         End do
+ 23      RCEX='###INSERT_STATE ' // RCEX(I2:8)
+         RCEX=RCEX(1:Lblnk(RCEX)) // ' ( ) ( )'
+         Write(NOUT,'(64A)')(RCEX(ii1:ii1),ii1=1,Lblnk(RCEX))
+
+         Write(NOUT,'(F8.6,''        # t_m1'')') RIHM(IM,I1)
+         Write(NOUT,'(F8.6,''        # t_d1'')') RIHM(ID,I1)
+         Write(NOUT,'(F8.6,''        # t_i0'')') RIHM(II,I1)
+
+         Do I2=1,NABC
+            Write(NOUT,
+     *         '(F8.6,''        # Symbol '',A,'' probability'')')
+     *         RIHM(I2,I1),CABC(I2)
+         End do 
+
+      End do 
+
+ 100  Return
+      End 
diff --git a/wrprf.f b/wrprf.f
new file mode 100644
index 0000000..9482aa0
--- /dev/null
+++ b/wrprf.f
@@ -0,0 +1,1061 @@
+*----------------------------------------------------------------------*     
+* $Id: wrprf.f,v 2.9 2003/11/18 10:52:29 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine WRPRF
+     *   (NOUT,LLLT,LRNM,
+     *   CPID,CPAC,CPDT,CPDE,LHDR,CHDR,LFTR,CFTR,NABC,CABC,LPRF,LPCI,
+     *   CDIS,JDIP,MDIS,NDIP,
+     *   CNOR,JNOP,JNOR,MNOR,NNOR,NNPR,CNTX,RNOP,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT, 
+     *   IDMP,CHIP,IIPP,CHMP,IMPP,
+     *   BLOG,FABC,P0,
+     *   CHID,IIPD,CHMD,IMPD, 
+     *   IRC)
+
+      Include          'psdat.f'
+      Include          'gsdat.f'
+      Include          'djdat.f'
+      Include          'nodat.f'
+      Include          'codat.f'
+      Include          'pfdat.f'
+      Include          'dfdat.f'
+      Include          'sterr.f'
+
+* work fields
+      Integer           SLEN
+      Integer           LLEN
+      Parameter        (SLEN=78)
+      Parameter        (LLEN=132)
+      Parameter        (LBUF=512)
+
+      Character*512     CBLK
+      Character*512     CPAR
+      Character*512     RCEX
+      Character*16      CHRP(MAXN) 
+
+      Logical           LPRI
+      Logical           LLLT
+      Logical           LRNM
+
+* initiation, transition and termination score names
+
+      Character*2       CPSN(27:46)
+      Data              CPSN(27)/'B0'/
+      Data              CPSN(28)/'B1'/
+      Data              CPSN(29)/'E0'/
+      Data              CPSN(30)/'E1'/
+      Data              CPSN(31)/'BM'/
+      Data              CPSN(32)/'BI'/
+      Data              CPSN(33)/'BD'/
+      Data              CPSN(34)/'BE'/
+      Data              CPSN(35)/'MM'/
+      Data              CPSN(36)/'MI'/
+      Data              CPSN(37)/'MD'/
+      Data              CPSN(38)/'ME'/
+      Data              CPSN(39)/'IM'/
+      Data              CPSN(40)/'II'/
+      Data              CPSN(41)/'ID'/
+      Data              CPSN(42)/'IE'/
+      Data              CPSN(43)/'DM'/
+      Data              CPSN(44)/'DI'/
+      Data              CPSN(45)/'DD'/
+      Data              CPSN(46)/'DE'/
+      
+      IRC=0
+
+* prevent meaningless parameters from being printed
+
+      If(.NOT.LPCI) then 
+         IIPP(MM,   0)=IIPD(MM)
+         IIPP(MI,   0)=IIPD(MI)
+         IIPP(MD,   0)=IIPD(MD)
+         IIPP(ME,   0)=IIPD(ME)
+         IIPP(DM,   0)=IIPD(DM)
+         IIPP(DI,   0)=IIPD(DI)
+         IIPP(DD,   0)=IIPD(DD)
+         IIPP(DE,   0)=IIPD(DE)
+         IIPP(MM,LPRF)=IIPD(MM)
+         IIPP(IM,LPRF)=IIPD(IM)
+         IIPP(DM,LPRF)=IIPD(DM)
+         IIPP(BM,LPRF)=IIPD(BM)
+         IIPP(MD,LPRF)=IIPD(MD)
+         IIPP(ID,LPRF)=IIPD(ID)
+         IIPP(DD,LPRF)=IIPD(DD)
+         IIPP(BD,LPRF)=IIPD(BD)
+      End if
+      
+* write header
+
+* - ID line
+      
+      RCEX='ID   ' 
+     *   // CPID(1:Lblnk(CPID))
+     *   // '; MATRIX.'
+      Call wline(NOUT,LLLT,SLEN,RCEX)
+C      Write(NOUT,'(78A)')(RCEX(ii1:ii1),ii1=1,Lblnk(RCEX))
+
+* - AC line 
+      
+      IX=Lblnk(CPAC)
+      If(CPAC(IX:IX).EQ.'|') IX=IX-1
+      RCEX='AC   '  // CPAC(1:IX) // ';'
+      Call wline(NOUT,LLLT,SLEN,RCEX)
+C      Write(NOUT,'(78A)')(RCEX(ii1:ii1),ii1=1,Lblnk(RCEX))
+
+* - DT line
+      
+      If(CPDT.NE.' ') then
+         RCEX='DT   ' 
+     *      // CPDT(1:Lblnk(CPDT))
+         Call wline(NOUT,LLLT,SLEN,RCEX)
+C         Write(NOUT,'(132A)')(RCEX(ii1:ii1),ii1=1,Lblnk(RCEX))
+      End if 
+
+* - DE line
+      
+      RCEX='DE   ' 
+     *   // CPDE(1:Lblnk(CPDE))
+      Call wline(NOUT,LLLT,LLEN,RCEX)
+C      Write(NOUT,'(132A)')(RCEX(ii1:ii1),ii1=1,Lblnk(RCEX))
+
+* - Additional header lines
+
+      Do I1=1,LHDR
+         Call wline(NOUT,LLLT,LLEN,CHDR(I1))
+C         Write(NOUT,'(132A)')
+C     *      (CHDR(I1)(ii1:ii1),ii1=1,Lblnk(CHDR(I1)))
+      End do 
+
+* write /GENERAL_SPEC: block 
+
+      CBLK='/GENERAL_SPEC:'   
+      JB=14
+
+* - alphapet
+      
+      Write(CPAR,'(''ALPHABET='''''',26A)')(CABC(ii1),ii1=1,NABC) 
+      JP=12+NABC
+      CPAR(JP-1:JP)=''';'
+      If(JB+JP+1.GT.LBUF) Go to 900
+      CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+      JB=JB+JP+1
+
+* - length
+C      Write(CPAR,'(''LENGTH='',I6,'';'')') LPRF
+      CPAR='LENGTH='
+      Write(CPAR(8:),*)LPRF,';'
+      JP=Lblnk(CPAR)
+      Call slpar(CPAR,JP)
+      If(JB+JP+1.GT.LBUF) Go to 900
+      CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+      JB=JB+JP+1
+
+* - topology 
+
+      If(LPCI) then
+         If(JB+19.GT.LBUF) Go to 900
+         CBLK=CBLK(1:JB) // ' TOPOLOGY=CIRCULAR;'
+         JB=JB+19
+      End if
+
+
+* - HMM parameters:
+*** To be modified ?? Using write(...,*)
+      If(BLOG.NE.0) then 
+         Write(CPAR,'(''LOG_BASE='',F8.6,'';'')') BLOG
+         JP=18
+         Call slpar(CPAR,JP)
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+
+         If(P0.NE.1.0) then
+            Write(CPAR,'(''P0='',F6.4,'';'')') P0
+            JP=10
+            Call slpar(CPAR,JP)
+            If(JB+JP+1.GT.LBUF) Go to 900
+            CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+            JB=JB+JP+1
+         End if 
+      End if 
+***
+      Call wrblk(NOUT,LLLT,LLEN,CBLK,JB)
+      If(BLOG.NE.0) Call wrnul(NOUT,LRNM,LLLT,SLEN,NABC,FABC)
+
+* write /DISJOINT: block 
+
+      CBLK='/DISJOINT:'
+      JB=10
+
+* - definition
+
+      CPAR='DEFINITION=' // CDIS(MDIS)
+      JP=Lblnk(CPAR)+1
+      CPAR(JP:JP)=';'
+      If(JB+JP+1.GT.LBUF) Go to 900
+      CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+      JB=JB+JP+1
+
+* - parameters
+
+      KDIP=JDIP(MDIS)
+      JP=0
+      Do 20 I1=1,KDIP
+         Write(CPAR(JP+1:),*)'N',I1,'=',NDIP(I1),';'
+         JP=Lblnk(CPAR)+1
+ 20   Continue
+      Call slpar(CPAR,JP)
+      If(JB+JP+1.GT.LBUF) Go to 900
+      CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+      JB=JB+JP
+
+      Call wrblk(NOUT,LLLT,LLEN,CBLK,JB)
+
+* write /NORMALIZATION: block
+
+      LPRI=.FALSE.
+      Do  21 I1=1,JNOR
+         If(NNOR(I1).NE.NNPR(I1)) LPRI=.TRUE.
+ 21   Continue
+
+      Do  30 I1=1,JNOR
+
+         CBLK='/NORMALIZATION:'
+         JB=15
+
+* - mode 
+
+         Write(CPAR(1:),*)'MODE=',NNOR(I1),';' 
+         JP=Lblnk(CPAR)
+         Call slpar(CPAR,JP)
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+
+* - priority
+
+         If(LPRI) then
+            Write(CPAR(1:),*)'PRIORITY=',NNPR(I1),';' 
+            JP=Lblnk(CPAR)
+            Call slpar(CPAR,JP)
+            If(JB+JP+1.GT.LBUF) Go to 900
+            CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+            JB=JB+JP+1
+         End if         
+
+* - function
+
+         CPAR='FUNCTION=' // CNOR(MNOR(I1))
+         JP=Lblnk(CPAR)+1
+         CPAR(JP:JP)=';'
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+
+* - paramaters
+         
+         KNOP=JNOP(MNOR(I1))
+         JP=0
+         Do  22 I2=1,KNOP
+            If(ABS(RNOP(I2,I1)).LE.10.0
+     *         .AND.ABS(RNOP(I2,I1)).GT.0.0001
+     *         .OR.RNOP(I2,I1).EQ.0.0) then
+               Write(CHRP(I2),'(F10.7)') RNOP(I2,I1)
+            Else 
+               Write(CHRP(I2),*) RNOP(I2,I1)
+            End if
+            Write(CPAR(JP+1:),*)'R',I2,'=',CHRP(I2),'; '
+            JP=Lblnk(CPAR)+1
+ 22      Continue
+         Call slpar(CPAR,JP)
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP
+
+* - text
+
+         If(CNTX(I1).NE.' ') then 
+            CPAR='TEXT=''' // CNTX(I1)(1:Lblnk(CNTX(I1))) // ''''
+            JP=Lblnk(CPAR)+1
+            CPAR(JP:JP)=';'
+            If(JB+JP+1.GT.LBUF) Go to 900
+            CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+            JB=JB+JP+1
+         End if
+
+         Call wrblk(NOUT,LLLT,LLEN,CBLK,JB)
+
+ 30   Continue
+
+* write /CUT_OFF: block
+
+      Do  40 I1=1,JCUT
+
+         CBLK='/CUT_OFF:'
+         JB=9
+
+* - level
+
+         Write(CPAR,*)'LEVEL=',MCLE(I1),';' 
+         JP=Lblnk(CPAR)
+         Call slpar(CPAR,JP)
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+
+* - score
+
+         Write(CPAR,*)'SCORE=',ICUT(I1),';' 
+         JP=Lblnk(CPAR)
+         Call slpar(CPAR,JP)
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+
+* - normalized scores
+         
+         KCNM=JCNM(I1)
+         If(KCNM.GT.0) CPAR='N_SCORE='
+         JP=8
+         Do 32 I2=1,KCNM
+            If(I2.GT.1) then
+               JP=JP+2
+               CPAR(JP:JP)=','
+            End if
+            Write(CPAR(JP+1:),*)RCUT(I2,I1)
+            JP=Lblnk(CPAR)
+C         Write(CPAR,*)'(''N_SCORE='',G12.5,7('','',G12.5))')
+C     *      (RCUT(ii1,I1),ii1=1,KCNM)
+C         JP=8+13*KCNM
+ 32      Continue
+         JP=JP+2
+         CPAR(JP:JP)=';'
+         Call slpar(CPAR,JP)
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+
+* - normalization modes
+         
+         If(KCNM.GT.0) CPAR='MODE='
+         JP=5
+         Do 34 I2=1,KCNM
+            If(I2.GT.1) then
+               JP=JP+2
+               CPAR(JP:JP)=','
+            End if
+            Write(CPAR(JP+1:),*)MCUT(I2,I1)
+            JP=Lblnk(CPAR)
+ 34      Continue
+C         Write(CPAR,'(''MODE='',I6,7('','',I6))')
+C     *      (MCUT(ii1,I1),ii1=1,KCNM)
+C         JP=5+7*KCNM
+         JP=JP+2
+         CPAR(JP:JP)=';'
+         Call slpar(CPAR,JP)
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+         
+* - text
+
+         If(CCUT(I1).NE.' ') then 
+            CPAR='TEXT=''' // CCUT(I1)(1:Lblnk(CCUT(I1))) // ''''
+            JP=Lblnk(CPAR)+1
+            CPAR(JP:JP)=';'
+            If(JB+JP+1.GT.LBUF) Go to 900
+            CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+            JB=JB+JP+1
+         End if
+
+         Call wrblk(NOUT,LLLT,LLEN,CBLK,JB)
+
+ 40   Continue
+
+* write /DEFAULT: block 
+
+* - transfer defaults to pos. LPRF+1
+
+      I1=LPRF+1
+
+      Do  51 I2=0,46
+         IIPP(I2,I1)=IIPD(I2)
+ 51   Continue
+      CHIP(I1)=CHID
+      Do  52 I2=0,27
+         IMPP(I2,I1)=IMPD(I2)
+ 52   Continue
+      CHMP(I1)=CHMD
+
+* - reinitialize defaults for match and insert position  
+
+      CHID='-'
+      Do  53 I2=1,26 
+         IIPD(I2)=0
+ 53   Continue
+      
+      IIPD(B0)=0
+      IIPD(B1)=0
+      IIPD(E0)=0
+      IIPD(E1)=0
+
+      IIPD(BM)=0
+      IIPD(BI)=NLOW
+      IIPD(BD)=NLOW
+      IIPD(BE)=NLOW
+      IIPD(MM)=0
+      IIPD(MI)=NLOW
+      IIPD(MD)=NLOW
+      IIPD(ME)=0
+      IIPD(IM)=NLOW
+      IIPD(II)=0
+      IIPD(ID)=NLOW
+      IIPD(IE)=NLOW
+      IIPD(DM)=NLOW
+      IIPD(DI)=NLOW
+      IIPD(DD)=0
+      IIPD(DE)=NLOW
+
+      IIPD(I0)=0
+
+      CHMD='X'
+      Do  54 I2=1,26 
+         IMPD(I2)=0
+ 54   Continue
+
+      IMPD(M0)=0 
+      IMPD(D )=0
+
+      Do  55 I2=0,27
+         IMPP(I2,0)=NLOW
+ 55   Continue 
+
+* - symbols
+
+      CBLK='/DEFAULT:'
+      JB=9
+
+      If(CHMP(I1).NE.CHMD) then
+         Write(CPAR,'(''SY_M='''''',A,'''''';'')') CHMP(I1)
+         JP=9
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+      End if 
+
+      If(CHIP(I1).NE.CHID) then
+         Write(CPAR,'(''SY_I='''''',A,'''''';'')') CHIP(I1)
+         JP=9
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+      End if 
+
+* - match extension scores
+
+      K1=0
+      Do  56 I2=1,NABC
+         If(IMPP(I2,I1).NE.IMPD(I2)) K1=1
+ 56   Continue 
+      Do  57 I2=1,NABC
+         If(IMPP(I2,I1).NE.IMPP( 1,I1)) K1=2
+ 57   Continue 
+
+      If(K1.EQ.0) then
+         JP=0 
+      Else
+         CPAR='M='
+         JP=3
+         If(K1.EQ.1) then
+            If(IMPP( 1,I1).LE.NLOW) then
+               CPAR(JP:)='*'
+            Else 
+               Write(CPAR(JP:),*)IMPP( 1,I1)
+            End if 
+            JP=Lblnk(CPAR)+1
+            CPAR(JP:JP)=';'
+         Else
+            Do 58 I2=1,NABC
+               If(I2.GT.1) then
+                  JP=JP+2
+                  CPAR(JP:JP)=','
+               End if
+               If(IMPP(I2,I1).LE.NLOW) then 
+                  CPAR(JP+1:)='*'
+               Else
+                  Write(CPAR(JP+1:),*)IMPP(I2,I1)
+               End if
+               JP=Lblnk(CPAR)
+ 58         Continue
+            JP=JP+1
+            CPAR(JP:JP)=';'
+
+
+C            Write(CPAR,'(''M='',I6,25('','',I6))')
+C     *         (IMPP(ii1,I1),ii1=1,NABC)
+C            JP=2+NABC*7
+C            CPAR(JP:JP)=';'
+C            J2=JP-NABC*7+1
+C            Do  59 I2=1,NABC
+C               If(IMPP(I2,I1).EQ.NLOW) CPAR(J2:J2+5)='     *'
+C               J2=J2+7
+C 59         Continue
+         End if
+
+         Call slpar(CPAR,JP)
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+      End if
+
+* match extension score for unknown character
+
+      If(IMPP( 0,I1).NE.IMPD( 0)) then
+         CPAR='M0='
+         JP=4
+         If(IMPP( 0,I1).LE.NLOW) then
+            CPAR(JP:)='*'
+         Else
+            Write(CPAR(JP:),*)IMPP( 0,I1)
+         End if
+         JP=LBlnk(CPAR)+1
+         CPAR(JP:JP)=';'
+C         Call slpar(CPAR,JP)
+         Call slpar(CPAR,JP)
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+      End if 
+
+* - deletion extension score
+
+      If(IMPP(27,I1).NE.IMPD(27)) then
+         CPAR='D='
+         JP=3
+         If(IMPP(27,I1).LE.NLOW) then
+            CPAR(JP:)='*'
+         Else
+            Write(CPAR(JP:),*)IMPP(27,I1)
+         End if
+         JP=LBlnk(CPAR)+1
+         CPAR(JP:JP)=';'
+C         Call slpar(CPAR,JP)
+         Call slpar(CPAR,JP)
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+      End if 
+
+* - insert extension scores
+
+      K1=0
+      Do  61 I2=1,NABC
+         If(IIPP(I2,I1).NE.IIPD(I2)) K1=1
+ 61   Continue 
+      Do  62 I2=1,NABC
+         If(IIPP(I2,I1).NE.IIPP( 1,I1)) K1=2
+ 62   Continue 
+
+      If(K1.EQ.0) then
+         JP=0 
+      Else
+         CPAR='I='
+         JP=3
+         If(K1.EQ.1) then
+            If(IIPP( 1,I1).LE.NLOW) then 
+               CPAR(JP:)='*'
+            Else
+               Write(CPAR(JP:),*)IIPP( 1,I1)
+            End if 
+            JP=Lblnk(CPAR)+1
+            CPAR(JP:JP)=';'
+         Else
+            Do 64 I2=1,NABC
+               If(I2.GT.1) then
+                  JP=JP+2
+                  CPAR(JP:JP)=','
+               End if
+               If(IMPP(I2,I1).LE.NLOW) then 
+                  CPAR(JP+1:)='*'
+               Else
+                  Write(CPAR(JP+1:),*)IIPP(I2,I1)
+               End if
+               JP=Lblnk(CPAR)
+ 64         Continue
+            JP=JP+1
+            CPAR(JP:JP)=';'
+
+C            Write(CPAR,'(''I='',I6,25('','',I6))')
+C     *         (IIPP(ii1,I1),ii1=1,NABC)
+C            JP=2+NABC*7
+C            CPAR(JP:JP)=';'
+C            J2=JP-NABC*7+1
+C            Do  65 I2=1,NABC
+C               If(IIPP(I2,I1).EQ.NLOW) CPAR(J2:J2+5)='     *'
+C               J2=J2+7
+C 65         Continue
+         End if
+
+         Call slpar(CPAR,JP)
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+      End if
+
+      If(IIPP( 0,I1).NE.IIPD( 0)) then
+         CPAR='I0='
+         JP=4
+         Write(CPAR(JP:),*)IIPP( 0,I1)
+         JP=Lblnk(CPAR)+1
+         CPAR(JP:JP)=';'
+C         Call slpar(CPAR,JP)
+         Call slpar(CPAR,JP)
+         If(JB+JP+1.GT.LBUF) Go to 900
+         CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+         JB=JB+JP+1
+      End if 
+
+* - initiation, transition and termination scores
+
+      Do  67 I2=27,46
+         If(IIPP(I2,I1).NE.IIPD(I2)) then
+            If(IIPP(I2,I1).LE.NLOW) then
+               Write(CPAR,*) CPSN(I2),'=*'
+            Else
+               Write(CPAR,*)CPSN(I2),'=',IIPP(I2,I1)
+            End if 
+            JP=Lblnk(CPAR)+1
+            CPAR(JP:JP)=';'
+            Call slpar(CPAR,JP)
+            If(JB+JP+1.GT.LBUF) Go to 900
+            CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+            JB=JB+JP+1
+         End if 
+ 67   Continue  
+
+      Call wrblk(NOUT,LLLT,LLEN,CBLK,JB)
+
+* - restore previous defaults from pos. LPRF+1 
+
+      I1=LPRF+1
+
+      Do  68 I2=0,46
+         IIPD(I2)=IIPP(I2,I1)
+ 68   Continue
+      CHID=CHIP(I1)
+      Do  69 I2=0,27
+         IMPD(I2)=IMPP(I2,I1)
+ 69   Continue
+      CHMD=CHMP(I1)
+
+      Do  90 I1=0,LPRF
+
+* write /M: block 
+
+         If(I1.NE.0) then
+
+* - symbol
+
+            CBLK='/M:'
+            JB=3
+
+            If(CHMP(I1).NE.CHMD) then
+               Write(CPAR,'(''SY='''''',A,'''''';'')') CHMP(I1)
+               JP=7
+               If(JB+JP+1.GT.LBUF) Go to 900
+               CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+               JB=JB+JP+1
+            End if 
+
+* - match extension scores
+
+            K1=0
+            Do  71 I2=1,NABC
+               If(IMPP(I2,I1).NE.IMPD(I2)) K1=1
+ 71         Continue 
+            Do  72 I2=1,NABC
+               If(IMPP(I2,I1).NE.IMPP( 1,I1)) K1=2
+ 72         Continue 
+
+            If(K1.EQ.0) then
+               JP=0 
+            Else
+               CPAR='M='
+               JP=3
+               If(K1.EQ.1) then
+                  If(IMPP( 1,I1).LE.NLOW) then
+                     CPAR(JP:)='*'
+                  Else 
+                     Write(CPAR(JP:),*)IMPP( 1,I1)
+                  End if 
+                  JP=Lblnk(CPAR)+1
+                  CPAR(JP:JP)=';'
+               Else
+                  Do 73 I2=1,NABC
+                     If(I2.GT.1) then
+                        JP=JP+2
+                        CPAR(JP:JP)=','
+                     End if
+                     If(IMPP(I2,I1).LE.NLOW) then 
+                        CPAR(JP+1:)='*'
+                     Else
+                        Write(CPAR(JP+1:),*)IMPP(I2,I1)
+                     End if
+                     JP=Lblnk(CPAR)
+ 73               Continue
+                  JP=JP+1
+                  CPAR(JP:JP)=';'
+
+
+
+C                  Write(CPAR,'(''M='',I6,25('','',I6))')
+C     *               (IMPP(ii1,I1),ii1=1,NABC)
+C                  JP=2+NABC*7
+C                  CPAR(JP:JP)=';'
+C                  J2=JP-NABC*7+1
+C                  Do  75 I2=1,NABC
+C                     If(IMPP(I2,I1).EQ.NLOW) CPAR(J2:J2+5)='     *'
+C                     J2=J2+7
+C 75               Continue
+               End if
+
+               Call slpar(CPAR,JP)
+               If(JB+JP+1.GT.LBUF) Go to 900
+               CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+               JB=JB+JP+1
+            End if
+
+* match extension score for unknown character
+
+            If(IMPP( 0,I1).NE.IMPD( 0)) then
+               CPAR='M0='
+               JP=4
+               If(IMPP( 0,I1).LE.NLOW) then
+                  CPAR(JP:)='*'
+               Else
+                  Write(CPAR(JP:),*)IMPP( 0,I1)
+               End if
+               JP=LBlnk(CPAR)+1
+               CPAR(JP:JP)=';'
+C               Call slpar(CPAR,JP)
+               Call slpar(CPAR,JP)
+               If(JB+JP+1.GT.LBUF) Go to 900
+               CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+               JB=JB+JP+1
+            End if 
+
+* - deletion extension score
+
+            If(IMPP(27,I1).NE.IMPD(27)) then
+               CPAR='D='
+               JP=3
+               If(IMPP(27,I1).EQ.NLOW) then
+                  CPAR(JP:)='*'
+               Else
+                  Write(CPAR(JP:),*)IMPP(27,I1)
+               End if
+               JP=LBlnk(CPAR)+1
+               CPAR(JP:JP)=';'
+C               Call slpar(CPAR,JP)
+               Call slpar(CPAR,JP)
+               If(JB+JP+1.GT.LBUF) Go to 900
+               CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+               JB=JB+JP+1
+            End if 
+
+            Call wrblk(NOUT,LLLT,LLEN,CBLK,JB)
+
+         End if
+
+* write /I: block 
+
+         If(I1.NE.LPRF.OR..NOT.LPCI) then 
+
+            CBLK='/I:'
+            JB=3
+
+* - symbol
+
+            If(CHIP(I1).NE.CHID) then
+               Write(CPAR,'(''SY='''''',A,'''''';'')') CHIP(I1)
+               JP=7
+               If(JB+JP+1.GT.LBUF) Go to 900
+               CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+               JB=JB+JP+1
+            End if 
+
+* - insert extension scores
+
+            K1=0
+            Do  81 I2=1,NABC
+               If(IIPP(I2,I1).NE.IIPD(I2)) K1=1
+ 81         Continue 
+            Do  82 I2=1,NABC
+               If(IIPP(I2,I1).NE.IIPP( 1,I1)) K1=2
+ 82         Continue 
+
+            If(K1.EQ.0) then
+               JP=0 
+            Else
+               CPAR='I='
+               JP=3
+               If(K1.EQ.1) then
+                  If(IIPP( 1,I1).LE.NLOW) then
+                     CPAR(JP:)='*'
+                  Else 
+                     Write(CPAR(JP:),*)IIPP( 1,I1)
+                  End if 
+                  JP=Lblnk(CPAR)+1
+                  CPAR(JP:JP)=';'
+               Else
+                  Do 83 I2=1,NABC
+                     If(I2.GT.1) then
+                        JP=JP+2
+                        CPAR(JP:JP)=','
+                     End if
+                     If(IIPP(I2,I1).LE.NLOW) then 
+                        CPAR(JP+1:)='*'
+                     Else
+                        Write(CPAR(JP+1:),*)IIPP(I2,I1)
+                     End if
+                     JP=Lblnk(CPAR)
+ 83               Continue
+                  JP=JP+1
+                  CPAR(JP:JP)=';'
+
+
+
+C                  Write(CPAR,'(''I='',I6,25('','',I6))')
+C     *               (IIPP(ii1,I1),ii1=1,NABC)
+C                  JP=2+NABC*7
+C                  CPAR(JP:JP)=';'
+C                  J2=JP-NABC*7+1
+C                  Do  85 I2=1,NABC
+C                     If(IIPP(I2,I1).EQ.NLOW) CPAR(J2:J2+5)='     *'
+C                     J2=J2+7
+C 85               Continue
+               End if
+
+               Call slpar(CPAR,JP)
+               If(JB+JP+1.GT.LBUF) Go to 900
+               CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+               JB=JB+JP+1
+            End if
+
+* insert extension score for unknown character
+
+            If(IIPP( 0,I1).NE.IIPD( 0)) then
+               CPAR='I0='
+               JP=4
+               If(IIPP( 0,I1).LE.NLOW) then
+                  CPAR(JP:)='*'
+               Else
+                  Write(CPAR(JP:),*)IIPP( 0,I1)
+               End if
+               JP=LBlnk(CPAR)+1
+               CPAR(JP:JP)=';'
+C               Call slpar(CPAR,JP)
+               Call slpar(CPAR,JP)
+               If(JB+JP+1.GT.LBUF) Go to 900
+               CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+               JB=JB+JP+1
+            End if 
+
+* - initiation, transition and termination scores
+
+            Do  87 I2=27,46
+               If(IIPP(I2,I1).NE.IIPD(I2)) then
+                  If(IIPP(I2,I1).LE.NLOW) then
+                     Write(CPAR,*) CPSN(I2),'=*'
+                  Else
+                     Write(CPAR,*)CPSN(I2),'=',IIPP(I2,I1)
+                  End if 
+                  JP=Lblnk(CPAR)+1
+                  CPAR(JP:JP)=';'
+                  Call slpar(CPAR,JP)
+                  If(JB+JP+1.GT.LBUF) Go to 900
+                  CBLK(JB+2:JB+JP+1)=CPAR(1:JP)
+                  JB=JB+JP+1
+               End if 
+ 87         Continue  
+
+            If(CBLK.NE.'/I:') Call wrblk(NOUT,LLLT,LLEN,CBLK,JB)
+
+         End if 
+
+ 90   Continue
+
+* - Footer lines
+
+      Do I1=1,LFTR
+         Call wline(NOUT,LLLT,LLEN,CFTR(I1))
+C         Write(NOUT,'(132A)')
+C     *      (CFTR(I1)(ii1:ii1),ii1=1,Lblnk(CFTR(I1)))
+      End do 
+
+      Write(NOUT,'(''//'')')
+
+ 100  Return
+
+ 900  Write(NERR,*) 'Error: Line length exceeds buffer size (',
+     *   LBUF,').'
+      IRC=1
+      Go to 100
+
+      End
+*----------------------------------------------------------------------*
+      Subroutine slpar(CPAR,JP)
+
+      Character*(*)     CPAR
+
+      K1=0
+      Do  10 I1=1,JP
+         If(CPAR(I1:I1).NE.' '.OR.CPAR(I1-1:I1-1).EQ.';') then 
+            K1=K1+1
+            CPAR(K1:K1)=CPAR(I1:I1)
+         Else if
+     *         (CPAR(I1:I1+1).EQ.' ;'.AND.CPAR(K1:K1).EQ.'.') then
+            K1=K1+1
+            CPAR(K1:K1)='0' 
+         Else if
+     *         (CPAR(I1:I1+1).EQ.' ,'.AND.CPAR(K1:K1).EQ.'.') then
+            K1=K1+1
+            CPAR(K1:K1)='0' 
+         End if
+ 10   Continue
+      JP=K1
+      
+      Return
+      End
+*----------------------------------------------------------------------*
+      Subroutine wrblk(NOUT,LLLT,LEN,CBLK,JB)
+
+      Parameter        (LBUF=512)
+      Character*(*)     CBLK
+      Character*512     RCEX
+      Logical           LLLT
+      Integer           LEN
+      Integer           NW
+
+      RCEX='MA'
+
+
+      If(LLLT) then
+         NW=LEN
+      Else
+         NW=LBUF
+      End if
+
+      If(JB.LE.NW-5) then
+         RCEX(6:)=CBLK(1:JB)
+         Write(NOUT,'(512A)')(RCEX(ii1:ii1),ii1=1,JB+5)
+      Else
+         Do  14 I1=NW-6,1,-1
+            If(CBLK(I1:I1).EQ.';'
+     *         .OR.CBLK(I1:I1).EQ.',') go to 15 
+ 14      Continue
+ 15      RCEX(6:)=CBLK(1:I1)
+         Write(NOUT,'(512A)')(RCEX(ii1:ii1),ii1=1,I1+5)
+         RCEX='MA'
+         KB=I1+1
+         
+ 20      Continue
+         
+         Do  22 I1=KB,JB
+            If(CBLK(I1:I1).NE.' ') go to 23 
+ 22      Continue
+ 23      KB=I1
+         Do  24 I1=MIN(KB+NW-2,JB),KB,-1
+            If(   CBLK(I1:I1).EQ.';'
+     *         .OR.CBLK(I1:I1).EQ.',') go to  25
+ 24      Continue
+ 25      RCEX(9:)=CBLK(KB:I1)
+         Write(NOUT,'(512A)')(RCEX(ii1:ii1),ii1=1,Lblnk(RCEX))
+         RCEX='MA'
+         KB=I1+1
+         If(KB.LT.JB) go to  20 
+         
+      End if
+      
+      Return
+      End
+*----------------------------------------------------------------------*
+      Subroutine  wrnul(NOUT,LRNM,LLLT,LEN,NABC,FABC)
+
+      Parameter        (LBUF=512)
+      Real              FABC(0:26)
+      Character*512     RCEX
+      Logical           LRNM
+      Integer           NMRS
+      Logical           LLLT
+      Integer           LEN
+      Integer           NW
+
+      If(LLLT) then
+         NW=LEN
+      Else
+         NW=LBUF
+      End if
+      If(LRNM) then
+         NMRS=100
+      Else
+         NMRS=1
+      End if
+
+      RCEX='MA      P='
+      JP=11
+      Do 5, I1=1,NABC
+         Write(RCEX(JP:),*)NMRS*FABC(I1)
+         JN=Lblnk(RCEX)
+         If(RCEX(JN:JN).EQ.'.') then
+            JN=JN+1
+            RCEX(JN:JN)='0'
+         End if
+         If(I1.NE.NABC) then
+            JN=JN+1
+            RCEX(JN:JN)=','
+         End if
+
+         If(JN.GE.NW) then
+            Write(NOUT,'(512A)')(RCEX(ii1:ii1),ii1=1,JP)
+            RCEX(1:10)='MA        '
+ 3          If(RCEX(JP+1:JP+1).EQ.' ') then
+               JP=JP+1
+               Go to 3
+            End if
+    
+            RCEX(12:)=RCEX(JP:JN)
+            JP=13+JN-JP
+         Else
+            JP=JN+1
+         End if
+ 5    Continue
+      
+      If(JP.GT.10) then
+         RCEX(JP:JP)=';'
+         Write(NOUT,'(512A)')(RCEX(ii1:ii1),ii1=1,JP)
+      End if
+
+
+ 100  Return
+
+      End
+*----------------------------------------------------------------------*
+      Subroutine  wline(NOUT,LLLT,LEN,RCEX)
+      
+      Character*(*)     RCEX
+      Logical           LLLT
+      Integer           LEN
+      Integer           NW
+
+      NW=Lblnk(RCEX)
+      If(LLLT.AND.NW.GT.LEN) NW=LEN
+      Write(NOUT,'(512A)')(RCEX(ii1:ii1),ii1=1,NW)
+      
+ 100  Return
+      End
+
+
+
diff --git a/wrsam.f b/wrsam.f
new file mode 100644
index 0000000..809c705
--- /dev/null
+++ b/wrsam.f
@@ -0,0 +1,170 @@
+*----------------------------------------------------------------------*     
+* $Id: wrsam.f,v 2.4 2003/03/26 14:40:29 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine WRSAM
+     *   (NOUT,IDMP,RIHM,RMHM,LHMM,NABC,FABC,FLOW,RSCA,BLOG) 
+
+      Include         'pfind.f' 
+      Include         'hmdat.f'
+
+      Real             FABC(0:26)
+      Real*8           BLOG
+      Real             RPEX(64)
+
+* Log to Prob
+
+      Do  10 I1=0,LHMM
+         Do I2=1,46
+            If     (RIHM(I2,I1).LE.FLOW) then
+               RIHM(I2,I1)=0.0
+            Else If(RIHM(I2,I1).LE.-6.0) then
+               RIHM(I2,I1)=0.000001
+            Else
+               RIHM(I2,I1)=EXP(RIHM(I2,I1))
+            End if 
+         End do
+         If(I1.GT.0) then  
+            Do I2=1,27
+               If     (RMHM(I2,I1).LE.FLOW) then
+                  RMHM(I2,I1)=0.0
+               Else If(RIHM(I2,I1).LE.-6.0) then
+                  RMHM(I2,I1)=0.000001
+               Else
+                  RMHM(I2,I1)=EXP(RMHM(I2,I1))
+               End if 
+            End do
+         End if 
+ 10   Continue
+
+* header 
+
+      RSCA=RSCA/BLOG
+      Write(NOUT,'(
+     *   ''% HMM converted from generalized profile'',
+     *   '' with pftools program htop.'',
+     *   /,''% Logarithic base of profile: '',F12.8,''.'',
+     *   /,''% Offset: profile score = '',E10.4,'' + Log(Prob).'',
+     *   /,''MODEL:'')')
+     *   exp(BLOG),RSCA
+
+      If     (NABC.EQ.20) then 
+         Write(6,'(''alphabet protein'')')    
+         NPAR=49
+      Else if(NABC.EQ. 4) then
+         Write(6,'(''alphabet DNA'')')    
+         NPAR=17
+      Else
+         Go to 100
+      End if 
+
+* Write position 0
+
+      RPEX( 1)=0.0  
+      RPEX( 2)=0.0  
+      RPEX( 3)=0.0  
+
+      RPEX( 4)=0.0  
+      RPEX( 5)=0.0  
+      RPEX( 6)=0.0  
+
+      RPEX( 7)=0.0  
+      RPEX( 8)=RIHM(MI, 0)
+      RPEX( 9)=RIHM(II, 0)
+
+      J2=9
+      Do I2=1,NABC
+         J2=J2+1
+         RPEX(J2)=0
+      End do 
+      Do I2=1,NABC
+         J2=J2+1
+         RPEX(J2)=RIHM(I2, 0)
+      End do 
+
+      Write(NOUT,'(''Begin'',3(/,F8.6,2F9.6))')
+     *   (RPEX(ii1),ii1=1,9)
+      If(NABC.EQ.20) then
+         Write(NOUT,'(F8.6,4F9.6,7(/,F8.6,4F9.6))')
+     *      (RPEX(ii1),ii1=10,49)
+      Else
+         Write(NOUT,'(F8.6,3F9.6,/,F8.6,3F9.6)')
+     *      (RPEX(ii1),ii1=10,17)
+      End if
+
+* Write position 1 to LHMM 
+
+      Do  I1=1,LHMM
+
+         RPEX( 1)=RIHM(DD,I1-1)
+         RPEX( 2)=RIHM(MD,I1-1)
+         RPEX( 3)=RIHM(ID,I1-1)
+
+         RPEX( 4)=RIHM(DM,I1-1)
+         RPEX( 5)=RIHM(MM,I1-1)
+         RPEX( 6)=RIHM(IM,I1-1)
+
+         RPEX( 7)=RIHM(DI,I1  )
+         RPEX( 8)=RIHM(MI,I1  )
+         RPEX( 9)=RIHM(II,I1  )
+
+         J2=9
+         Do I2=1,NABC
+            J2=J2+1
+            RPEX(J2)=RMHM(I2,I1)
+         End do 
+         Do I2=1,NABC
+            J2=J2+1
+            RPEX(J2)=RIHM(I2,I1)
+         End do 
+
+         If(I1.LT.LHMM) then
+            Write(NOUT,'(/,I4,3(/,F8.6,2F9.6))')
+     *         I1,(RPEX(ii1),ii1=1,9)
+         Else 
+            Write(NOUT,'(/,''  -1'',3(/,F8.6,2F9.6))')
+     *         (RPEX(ii1),ii1=1,9)
+         End if
+         If(NABC.EQ.20) then
+            Write(NOUT,'(F8.6,4F9.6,7(/,F8.6,4F9.6))')
+     *         (RPEX(ii1),ii1=10,49)
+         Else
+            Write(NOUT,'(F8.6,3F9.6,/,F8.6,3F9.6)')
+     *         (RPEX(ii1),ii1=10,17)
+         End if
+
+      End do 
+
+* End 
+
+      RPEX( 1)=0.0
+      RPEX( 2)=0.0
+      RPEX( 3)=0.0
+
+      RPEX( 4)=RIHM(DM,LHMM)
+      RPEX( 5)=RIHM(MM,LHMM)
+      RPEX( 6)=RIHM(IM,LHMM)
+
+      RPEX( 7)=0.0
+      RPEX( 8)=0.0
+      RPEX( 9)=0.0
+
+      Do I2=10,9+2*NABC
+         RPEX(I2)=0.0
+      End do
+
+      Write(NOUT,'(/,''End'',3(/,F8.6,2F9.6))')
+     *   (RPEX(ii1),ii1=1,9)
+      If(NABC.EQ.20) then
+         Write(NOUT,'(F8.6,4F9.6,7(/,F8.6,4F9.6))')
+     *      (RPEX(ii1),ii1=10,49)
+      Else
+         Write(NOUT,'(F8.6,3F9.6,/,F8.6,3F9.6)')
+     *      (RPEX(ii1),ii1=10,17)
+      End if
+
+      Write(6,'(''ENDMODEL'')')    
+
+ 100  Return
+      End 
diff --git a/xali1.f b/xali1.f
new file mode 100644
index 0000000..39b4953
--- /dev/null
+++ b/xali1.f
@@ -0,0 +1,228 @@
+*----------------------------------------------------------------------*     
+* $Id: xali1.f,v 2.6 2003/01/15 14:49:05 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine XALI1
+     *   (LPRF,LPCI,
+     *   KCUT,IIPP,IMPP,IIPX,
+     *   BSEQ,LSEQ,ISEQ,
+     *   IOPM,IOPI,IOPD,
+     *   IOPT,LOPT,  
+     *   IRC)
+
+* profile and sequence fields :
+
+      Include           'ardim.f'
+      Include           'gsdat.f'
+      Include           'pfdat.f'
+      Include           'pxdat.f'
+
+* sequence
+
+      Integer           LSEQ
+      Integer           BSEQ
+      Integer*2         ISEQ(IDMS)
+
+* work fields
+
+      Integer           IOPM(0:IDMP)
+      Integer           IOPI(0:IDMP)
+      Integer           IOPD(0:IDMP)
+
+      Integer           KOPM
+
+      Logical           LOPT
+
+      IRC=0
+
+      IOPT=NLOW
+
+* beginning of sequence 
+
+      IOPM(0)=IIPX(YM, 0)
+      IOPI(0)=IIPX(YI, 0)
+      IOPD(0)=IIPX(YD, 0)
+
+      Do   8, I2=1,LPRF
+
+         KD=IOPD(I2-1)+IMPP( D,I2)
+
+         IOPM(I2)=MAX(KD+IIPP(DM,I2), 
+     *      IIPX(YM,I2))  
+         IOPI(I2)=MAX(KD+IIPP(DI,I2), 
+     *      IIPX(YI,I2))  
+         IOPD(I2)=MAX(KD+IIPP(DD,I2), 
+     *      IIPX(YD,I2))  
+ 8    Continue
+
+* - circular extensions:
+
+      If(LPCI) then
+         IOPM( 0)=MAX(IOPM( 0),IOPM(LPRF))
+         IOPI( 0)=MAX(IOPI( 0),IOPI(LPRF))
+         IOPD( 0)=MAX(IOPD( 0),IOPD(LPRF))
+
+         Do   9, I2=1, LPRF
+            KD=IOPD(I2-1)+IMPP( D,I2)
+            If(IOPD(I2).GE.KD+IIPP(DD,I2)) then
+               Go to 10
+            Else  
+               IOPM(I2)=MAX(KD+IIPP(DM,I2),IOPM(I2))
+               IOPI(I2)=MAX(KD+IIPP(DI,I2),IOPI(I2))
+               IOPD(I2)=    KD+IIPP(DD,I2)
+            End if
+ 9       Continue    
+ 10      Continue
+      End if 
+
+* -----------------------------------------------------------
+
+* internal sequence positions
+
+      Do  50 I1=BSEQ,LSEQ-1
+
+         J1=ISEQ(I1)
+         KI=IOPI( 0)+IIPP(J1, 0)
+
+         KOPM=IOPM( 0)
+
+         IOPM( 0)=MAX(KI+IIPP(IM, 0),IIPX(XM, 0))  
+         IOPI( 0)=MAX(KI+IIPP(II, 0),IIPX(XI, 0))  
+         IOPD( 0)=MAX(KI+IIPP(ID, 0),IIPX(XD, 0))  
+         IOPT    =MAX(KI+IIPX(IX, 0),IOPT) 
+
+* - circular match extensions (presumably not necessary)
+
+C             If(LPCI) then 
+C                KM=IOPM(LPRF-1)+IMPP(J1,LPRF)
+C                IOPM( 0)=MAX(IOPM( 0),KM+IIPP(MM, 0))                   
+C                IOPI( 0)=MAX(IOPI( 0),KM+IIPP(MI, 0))                   
+C                IOPD( 0)=MAX(IOPD( 0),KM+IIPP(MD, 0))                   
+C                IOPT    =MAX(IOPT    ,KM+IIPX(MX, 0)) 
+C             End if
+* -----------------------------------------------------------
+
+ 20      Continue
+
+
+         Do  38 I2=1,LPRF
+
+            KM=KOPM      +IMPP(J1,I2)
+            KI=IOPI(I2  )+IIPP(J1,I2)
+            KD=IOPD(I2-1)+IMPP( D,I2)
+
+            KOPM=IOPM(I2)
+
+            IOPM(I2)=MAX(KM+IIPP(MM,I2), 
+     *         KI+IIPP(IM,I2), 
+     *         KD+IIPP(DM,I2), 
+     *         IIPX(XM,I2))  
+            IOPI(I2)=MAX(KM+IIPP(MI,I2), 
+     *         KI+IIPP(II,I2), 
+     *         KD+IIPP(DI,I2), 
+     *         IIPX(XI,I2))  
+            IOPD(I2)=MAX(KM+IIPP(MD,I2), 
+     *         KI+IIPP(ID,I2), 
+     *         KD+IIPP(DD,I2), 
+     *         IIPX(XD,I2))  
+
+            IOPT    =MAX(IOPT,
+     *         KM+IIPX(MX,I2),
+     *         KI+IIPX(IX,I2),
+     *         KD+IIPX(DX,I2))
+
+ 38      Continue
+
+* - circular extensions
+
+         If(LPCI) then
+            
+            IOPM( 0)=MAX(IOPM( 0),IOPM(LPRF))
+            IOPI( 0)=MAX(IOPI( 0),IOPI(LPRF))
+            IOPD( 0)=MAX(IOPD( 0),IOPD(LPRF))
+            
+            Do  39, I2=1,LPRF
+               KD=IOPD(I2-1)+IMPP( D,I2)
+               If(IOPD(I2).GE.KD+IIPP(DD,I2)) then 
+                  Go to  40
+               Else
+                  IOPM(I2)=MAX(KD+IIPP(DM,I2),IOPM(I2))
+                  IOPI(I2)=MAX(KD+IIPP(DI,I2),IOPI(I2)) 
+                  IOPD(I2)=MAX(KD+IIPP(DD,I2),IOPD(I2)) 
+                  IOPT    =MAX(KD+IIPX(DX,I2),IOPT)
+               End if
+ 39         Continue
+ 40         Continue
+* -----------------------------------------------------------
+
+         End if 
+
+         If(.NOT.LOPT.AND.IOPT.GE.KCUT) go to 100
+
+ 50   Continue
+
+* end of sequence 
+
+      J1=ISEQ(LSEQ)
+
+      KI=IOPI( 0)+IIPP(J1, 0)
+
+      KOPM=IOPM( 0)
+
+      IOPD( 0)=MAX(KI+IIPP(ID, 0),IIPX(XD, 0))  
+      IOPT    =MAX(KI+IIPX(IY, 0),IOPT       ) 
+
+* - circular match extension (presumably not necessary)
+
+C             If(LPCI) then
+C                KM=IOPM(LPRF-1)+IIPP(J1,LPRF)
+C                IOPD( 0)=MAX(IOPD( 0),KM+IIPP(MD, 0))
+C                IOPT    =MAX(IOPT,    KM+IIPP(MY, 0))
+C             End if
+* -----------------------------------------------------------
+
+ 60   Continue
+
+      Do  68 I2=1,LPRF
+
+         KM=KOPM      +IMPP(J1,I2)
+         KI=IOPI(I2  )+IIPP(J1,I2)
+         KD=IOPD(I2-1)+IMPP( D,I2)
+
+         KOPM=IOPM(I2)
+
+         IOPD(I2)=MAX(KM+IIPP(MD,I2), 
+     *      KI+IIPP(ID,I2), 
+     *      KD+IIPP(DD,I2), 
+     *      IIPX(XD,I2))  
+
+         IOPT    =MAX(IOPT,
+     *      KM+IIPX(MY,I2),
+     *      KI+IIPX(IY,I2),
+     *      KD+IIPX(DY,I2))
+
+ 68   Continue
+
+* - circular extensions
+
+      If(LPCI) then
+
+         IOPD( 0)=MAX(IOPD( 0),IOPD(LPRF))
+
+         Do  69, I2=1,LPRF
+            KD=IOPD(I2-1)+IMPP( D,I2)
+            If(IOPD(I2).GE.KD+IIPP(DD,I2)) then 
+               Go to 100 
+            Else  
+               IOPD(I2)=MAX(KD+IIPP(DD,I2),IOPD(I2))
+               IOPT    =MAX(KD+IIPP(DY,I2),IOPT    )
+            End if
+ 69      Continue
+
+      End if 
+* -----------------------------------------------------------
+
+ 100  Return
+
+      End 
diff --git a/xalip.f b/xalip.f
new file mode 100644
index 0000000..122e98d
--- /dev/null
+++ b/xalip.f
@@ -0,0 +1,806 @@
+*----------------------------------------------------------------------*     
+* $Id: xalip.f,v 2.7 2003/01/15 14:50:24 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine XALIP(
+     *   NABC,LPRF,LPCI,N1,N2,
+     *   KCUT,IIPP,IMPP,CHIP,CHMP,IIPX,
+     *   BSEQ,LSEQ,ISEQ,LCKS,
+     *   IOPM,IOPI,IOPD,
+     *   IOMB,IOM1,IOM2,IOIB,IOI1,IOI2,IODB,IOD1,IOD2,
+     *   NALI,IALS,IALB,IAL1,IAL2,IALE,
+     *   LOPT,
+     *   IRC)
+
+*----------------------------------------------------------------------* 
+* Data Section 
+*----------------------------------------------------------------------* 
+
+* profile:
+
+      Include          'ardim.f'
+      Include          'gsdat.f'
+      Include          'pfdat.f'
+      Include          'pxdat.f'
+      Include          'sterr.f'
+
+* sequence
+
+      Integer           LSEQ
+      Integer           BSEQ
+      Integer*2         ISEQ(IDMS)
+      Logical           LCKS(IDMS)
+
+* alignments
+
+      Integer           IALS(IDMN)
+      Integer           IALB(IDMN)
+      Integer           IAL1(IDMN)
+      Integer           IAL2(IDMN)
+      Integer           IALE(IDMN)
+
+* alignment scores
+
+      Integer           IOPM(0:IDMP)
+      Integer           IOPI(0:IDMP)
+      Integer           IOPD(0:IDMP)
+
+* alignment positions
+
+      Integer           IOMB(0:IDMP)
+      Integer           IOM1(0:IDMP)
+      Integer           IOM2(0:IDMP)
+
+      Integer           IOIB(0:IDMP)
+      Integer           IOI1(0:IDMP)
+      Integer           IOI2(0:IDMP)
+
+      Integer           IODB(0:IDMP)
+      Integer           IOD1(0:IDMP)
+      Integer           IOD2(0:IDMP)
+
+
+* search control values 
+
+      Integer           IBEG 
+      Integer           ILCP
+      Integer           IFCP
+      Integer           NLCP
+      Integer           JLCP 
+      Integer           IFER 
+
+      Integer           NSCA
+
+* search only optimal match
+
+      Logical           LOPT
+
+*----------------------------------------------------------------------* 
+* Inititialization Section
+*----------------------------------------------------------------------* 
+
+      IRC=0
+
+* alignment list
+
+      IOPT=NLOW
+      NALI=0
+
+* search control fields  
+
+      IBEG=BSEQ-1
+      JLCP=LPRF/2
+      NSCA=0
+
+*----------------------------------------------------------------------* 
+* two-step-forwards-one-step-backwards loop  
+*----------------------------------------------------------------------* 
+
+ 11   Continue
+C       Write(6,'(''Searching range:'',I6,'' - '',I6)') IBEG,LSEQ
+
+      I1=IBEG
+      JALS=NLOW
+
+* initiate work arrays 
+      
+      Call InitR(
+     *   I1,LPCI,
+     *   N1,N2,BSEQ,LSEQ,
+     *   IDMP,LPRF,IIPP,IMPP,CHIP,CHMP,IIPX,  
+     *   IOPM,IOPI,IOPD,
+     *   IOMB,IOM1,IOM2,IOIB,IOI1,IOI2,IODB,IOD1,IOD2)
+
+* intitiate search control values 
+
+      ILCP=I1
+      IFCP=I1+1
+      NLCP=ILCP+JLCP
+
+* move one sequence position forward 
+
+      I1=I1+1
+
+*----------------------------------------------------------------------* 
+* loop over sequence positions 
+*----------------------------------------------------------------------* 
+
+ 12   Continue 
+
+      NSCA=NSCA+1
+
+      Call NextR( 
+     *   I1,LPCI,
+     *   NABC,LPRF,N1,N2,
+     *   KCUT,IDMP,IIPP,IMPP,CHIP,CHMP,IIPX,
+     *   IDMS,LSEQ,ISEQ,LCKS,
+     *   IOPM,IOPI,IOPD,
+     *   IOMB,IOM1,IOM2,IOIB,IOI1,IOI2,IODB,IOD1,IOD2,
+     *   JALS,JALB,JAL1,JAL2,JALE) 
+C          Write(6,'(20I6)') I1,(IOPM(ii1),ii1=0,LPRF)
+C          Write(6,'(20I6)') I1,(IOM1(ii1),ii1=0,LPRF)
+C          Write(6,'(20I6)') I1,(IOPI(ii1),ii1=0,LPRF)
+C          Write(6,'(20I6)') I1,(IOI1(ii1),ii1=0,LPRF)
+C          Write(6,'(20I6)') I1,(IOPD(ii1),ii1=0,LPRF)
+C          Write(6,'(20I6)') I1,(IOD1(ii1),ii1=0,LPRF)
+C          Write(6,'('''')')
+
+*----------------------------------------------------------------------* 
+* work arrays updated, what next ?
+*----------------------------------------------------------------------* 
+
+* if match found 
+
+      If(JALS.GE.KCUT) then
+
+* - determine first ENTRY of current row 
+
+         IFER=I1
+         Do 51 I2=N1,LPRF
+            If(IOD1(I2).LT.IFER) IFER=IOD1(I2)
+            If(IOM1(I2).LT.IFER) IFER=IOM1(I2)
+            If(IOI1(I2).LT.IFER) IFER=IOI1(I2)
+ 51      Continue
+
+         
+C                IFER=I1
+C                L1=-1
+C                L2=-1
+C                L3=-1
+C             Do 51 I2=N1,LPRF
+C                If(IOD1(I2).LT.IFER) then 
+C                   IFER=IOD1(I2)
+C                   L1=I2
+C                End if 
+C                If(IOM1(I2).LT.IFER) then
+C                   IFER=IOM1(I2)
+C                   L2=I2
+C                End if
+C                If(IOI1(I2).LT.IFER) then
+C                   IFER=IOI1(I2)
+C                   L3=I2
+C                End if
+C  51         Continue
+C             Write(6,'(5I8)') I1,IFER,L1,L2,L3
+
+         If(IFER.GT.JAL2.OR.I1.EQ.LSEQ) then 
+
+* - accept alingment
+            
+            NALI=NALI+1
+            IALS(NALI)=JALS
+            IALB(NALI)=JALB
+            IAL1(NALI)=JAL1
+            IAL2(NALI)=JAL2
+            IALE(NALI)=JALE
+C            Write(NERR,*) 'JAL1: ',JAL1,' JAL2: ',JAL2,' JALS: ',JALS,
+C     *         ' JALB: ',JALB,' JALE: ',JALE
+            If(JAL2.LT.JAL1) then  
+               Write(NERR,*) 'Error: Illegal alignment found' //
+     *            ' - no list produced.'
+               IRC=1
+               Go to 100
+            End if 
+            
+            If(NALI.GE.IDMN) then 
+               Write(NERR,*) 'Warning: Too many alignments found'
+     *            // ' - list may be imcomplete.'
+               IRC=-1
+               Go to 100
+            End if 
+
+* - protect sequence region 
+
+            Do  55 I2=JAL1,JAL2
+               LCKS(I2)=.TRUE.
+ 55         Continue
+
+* - exit if only searching for optimal alignment
+
+            If(LOPT.AND.NALI.GE.1) then
+               Go to 100
+            End if
+
+* - move backwards 
+
+C                Write(6,'('' interrupted at:'',I6)') I1
+            Go to 11
+
+* - or one sequence position forwards  
+
+         Else 
+            I1=I1+1 
+            If(I1.LE.LSEQ) Go to  12
+         End if 
+
+* if no match found
+
+      Else
+
+* - next check point reached ? 
+
+         If(I1.GE.NLCP) then
+            
+* - determine first ENTRY of current row 
+
+            IFER=I1
+            Do 56 I2=N1+1,LPRF
+               If(IOD1(I2).LT.IFER) IFER=IOD1(I2) 
+               If(IOM1(I2).LT.IFER) IFER=IOM1(I2) 
+               If(IOI1(I2).LT.IFER) IFER=IOI1(I2) 
+ 56         Continue
+
+* - update reinitialization point
+
+            If(IFER.GE.ILCP) then 
+               IBEG=IFCP-1
+               IFCP=IFirst(IDMP,LPRF,IOMB,IOIB,IODB)
+               ILCP=I1
+            End if 
+
+* - calculate next check point
+
+            NLCP=NLCP+JLCP
+
+         End if  
+
+* - move one sequence positions forwards 
+         
+         I1=I1+1 
+         If(I1.LE.LSEQ) Go to  12
+
+      End if 
+
+* done
+
+ 99   Continue 
+C       Write(6,'(''Sequence length:'',I6,'' -'',I6,
+C    *   '' positions scanned.'')') LSEQ,NSCA
+
+ 100  Return
+      End
+*----------------------------------------------------------------------*
+      Subroutine NextR( 
+     *   I1,LPCI,
+     *   NABC,LPRF,N1,N2,
+     *   KCUT,IDMP,IIPP,IMPP,CHIP,CHMP,IIPX,
+     *   IDMS,LSEQ,ISEQ,LCKS,
+     *   IOPM,IOPI,IOPD,
+     *   IOMB,IOM1,IOM2,IOIB,IOI1,IOI2,IODB,IOD1,IOD2,
+     *   JALS,JALB,JAL1,JAL2,JALE) 
+
+* profile:
+
+      Include          'pfdat.f'
+      Include          'pxdat.f'
+
+      Logical           LPCI
+
+* sequence
+
+      Integer           LSEQ
+      Integer*2         ISEQ(IDMS)
+      Logical           LCKS(IDMS)
+
+* alignments
+
+      Integer           JALS
+      Integer           JALB
+      Integer           JAL1
+      Integer           JAL2
+      Integer           JALE
+
+* alignment scores
+
+      Integer           IOPM(0:IDMP)
+      Integer           IOPI(0:IDMP)
+      Integer           IOPD(0:IDMP)
+
+* alignment positions
+
+      Integer           IOMB(0:IDMP)
+      Integer           IOM1(0:IDMP)
+      Integer           IOM2(0:IDMP)
+
+      Integer           IOIB(0:IDMP)
+      Integer           IOI1(0:IDMP)
+      Integer           IOI2(0:IDMP)
+
+      Integer           IODB(0:IDMP)
+      Integer           IOD1(0:IDMP)
+      Integer           IOD2(0:IDMP)
+
+* work fields 
+
+      Integer           DZ
+
+* initializations 
+
+      J1=ISEQ(I1)
+
+      IN=I1+1
+
+      If(I1.GE.LSEQ) then
+         MZ=MY
+         IZ=IY
+         DZ=DY
+      Else
+         MZ=MX
+         IZ=IX
+         DZ=DX
+      End if
+
+* disable match and insert vertices of protected region
+
+      If(LCKS(I1)) then 
+         IOPM(N1-1)=NLOW    
+         Do 10 I2=N1,N2-1
+            IOPM(I2)=NLOW 
+            IOPI(I2)=NLOW 
+ 10      Continue
+      End if 
+
+* profile positions 0 
+
+* - save previous match position
+
+      KOPM=IOPM( 0)
+      KOMB=IOMB( 0)
+      KOM1=IOM1( 0)
+      KOM2=IOM2( 0)
+
+      KI=IOPI( 0)+IIPP(J1, 0) 
+
+* - match position
+
+      JI=KI+IIPP(IM, 0)
+      If(JI.GT.IIPX(XM, 0)) then
+         IOPM( 0)=JI
+         IOMB( 0)=IOIB( 0)
+         IOM1( 0)=IOI1( 0)
+         IOM2( 0)=IOI2( 0)
+      Else
+         IOPM( 0)=IIPX(XM, 0)
+         IOMB( 0)=IN
+         IOM1( 0)=LSEQ+1
+         IOM2( 0)=0
+      End if
+
+* - deletion position
+
+      JI=KI+IIPP(ID, 0)
+      If(JI.GT.IIPX(XD, 0)) then
+         IOPD( 0)=JI
+         IODB( 0)=IOIB( 0)
+         IOD1( 0)=IOI1( 0)
+         IOD2( 0)=IOI2( 0)
+      Else
+         IOPD( 0)=IIPX(XD, 0)
+         IODB( 0)=IN
+         IOD1( 0)=LSEQ+1
+         IOD2( 0)=0
+      End if
+
+* - insert position
+
+      JI=KI+IIPP(II, 0)
+      If(JI.GT.IIPX(XI, 0)) then
+         IOPI( 0)=JI
+      Else
+         IOPI( 0)=IIPX(XI, 0)
+         IOIB( 0)=IN
+         IOI1( 0)=LSEQ+1
+         IOI2( 0)=0
+      End if
+
+* - circular match extensions (presumably not necessary)
+
+C       If(LPCI) then 
+C          KM=IOPM(LPRF-1)+IMPP(J1,LPRF)
+C          If(KM+IIPP(MM, 0).GT.IOPM( 0)) then
+C             IOPM( 0)=KM+IIPP(MM, 0)
+C             IOMB( 0)=IOMB(LPRF-1)
+C             IOM1( 0)=IOM1(LPRF-1)
+C             IOM2( 0)=IOM2(LPRF-1)
+C          End if
+C          If(KM+IIPP(MI, 0).GT.IOPI( 0)) then
+C             IOPI( 0)=KM+IIPP(MI, 0)
+C             IOIB( 0)=IOMB(LPRF-1)
+C             IOI1( 0)=IOM1(LPRF-1)
+C             IOI2( 0)=IOM2(LPRF-1)
+C          End if
+C          If(KM+IIPP(MD, 0).GT.IOPD( 0)) then
+C             IOPD( 0)=KM+IIPP(MD, 0)
+C             IODB( 0)=IOMB(LPRF-1)
+C             IOD1( 0)=IOM1(LPRF-1)
+C             IOD2( 0)=IOM2(LPRF-1)
+C          End if
+C       End if
+* -----------------------------------------------------------
+
+* profile positions 1 to LPRF  
+
+      Do  79 I2=1,LPRF
+
+         KM=KOPM       + IMPP(J1,I2)
+         KI=IOPI(I2  ) + IIPP(J1,I2)
+         KD=IOPD(I2-1) + IMPP( D,I2)
+
+* - update match vertex
+
+         JB=IIPX(XM,I2)
+         JM=KM          + IIPP(MM,I2)
+         JI=KI          + IIPP(IM,I2)
+         JD=KD          + IIPP(DM,I2)
+         KOPM=IOPM(I2)
+         Call Nstep(NEWM,IOPM(I2),JB,JM,JI,JD)
+
+* - update insert vertex
+
+         JB=IIPX(XI,I2)
+         JM=KM          + IIPP(MI,I2)
+         JI=KI          + IIPP(II,I2)
+         JD=KD          + IIPP(DI,I2)
+         Call Nstep(NEWI,IOPI(I2),JB,JM,JI,JD)
+
+* - update deletion vertex
+
+         JB=IIPX(XD,I2)
+         JM=KM          + IIPP(MD,I2)
+         JI=KI          + IIPP(ID,I2)
+         JD=KD          + IIPP(DD,I2)
+         Call Nstep(NEWD,IOPD(I2),JB,JM,JI,JD)
+
+* - compute alignment scores 
+
+         KM=KM+IIPX(MZ,I2)
+         KI=KI+IIPX(IZ,I2)
+         KD=KD+IIPX(DZ,I2)
+
+         KE=MAX(KM,KI,KD)
+
+* - check for new maxumum 
+
+         If(KE.GT.JALS) then
+            JALS=KE
+            If     (JALS.EQ.KD) then
+               JALB=IODB(I2-1)
+               JAL1=IOD1(I2-1)
+               JAL2=IOD2(I2-1)
+            Else if(JALS.EQ.KM) then
+               JALB=KOMB
+               JAL1=KOM1
+               JAL2=KOM2
+            Else
+               JALB=IOIB(I2)
+               JAL1=IOI1(I2)
+               JAL2=IOI2(I2)
+            End if
+            JALE=I1 
+            If(JAL1.EQ.0) JAL1=JALB
+            If(JAL2.EQ.0) JAL2=I1
+C             Write(6,'(7I8)'),I1,I2,JALS,JALB,JAL1,JAL2,JALE
+         End if 
+
+* - update alignment positions  
+
+         JOMB=IOMB(I2)
+         JOM1=IOM1(I2)
+         JOM2=IOM2(I2)
+         If     (NEWM.EQ.0) then 
+            IOMB(I2)=IN
+            IOM1(I2)=LSEQ+1
+            IOM2(I2)=0
+         Else if(NEWM.EQ.1) then 
+            IOMB(I2)=KOMB
+            IOM1(I2)=KOM1
+            IOM2(I2)=KOM2
+         Else if(NEWM.EQ.2) then 
+            IOMB(I2)=IOIB(I2) 
+            IOM1(I2)=IOI1(I2) 
+            IOM2(I2)=IOI2(I2)
+         Else
+            IOMB(I2)=IODB(I2-1) 
+            IOM1(I2)=IOD1(I2-1) 
+            IOM2(I2)=IOD2(I2-1)
+         End if  
+
+         If     (NEWD.EQ.0) then 
+            IODB(I2)=IN
+            IOD1(I2)=LSEQ+1
+            IOD2(I2)=0
+         Else if(NEWD.EQ.1) then 
+            IODB(I2)=KOMB
+            IOD1(I2)=KOM1
+            IOD2(I2)=KOM2
+         Else if(NEWD.EQ.2) then 
+            IODB(I2)=IOIB(I2) 
+            IOD1(I2)=IOI1(I2) 
+            IOD2(I2)=IOI2(I2)
+         Else
+            IODB(I2)=IODB(I2-1) 
+            IOD1(I2)=IOD1(I2-1) 
+            IOD2(I2)=IOD2(I2-1)
+         End if  
+
+         If     (NEWI.EQ.0) then 
+            IOIB(I2)=IN
+            IOI1(I2)=LSEQ+1
+            IOI2(I2)=0
+         Else if(NEWI.EQ.1) then 
+            IOIB(I2)=KOMB
+            IOI1(I2)=KOM1
+            IOI2(I2)=KOM2
+         Else if(NEWI.EQ.2) then 
+            Continue
+         Else
+            IOIB(I2)=IODB(I2-1) 
+            IOI1(I2)=IOD1(I2-1) 
+            IOI2(I2)=IOD2(I2-2)
+         End if  
+
+         KOMB=JOMB
+         KOM1=JOM1
+         KOM2=JOM2
+
+ 79   Continue
+
+* - circular extensions
+
+      If(LPCI) then
+         If(IOPM(LPRF).GT.IOPM( 0)) then 
+            IOPM( 0)=IOPM(LPRF)
+            IOMB( 0)=IOMB(LPRF)
+            IOM1( 0)=IOM1(LPRF)
+            IOM2( 0)=IOM2(LPRF)
+         End if
+         If(IOPI(LPRF).GT.IOPI( 0)) then 
+            IOPI( 0)=IOPI(LPRF)
+            IOIB( 0)=IOIB(LPRF)
+            IOI1( 0)=IOI1(LPRF)
+            IOI2( 0)=IOI2(LPRF)
+         End if
+         If(IOPD(LPRF).GT.IOPD( 0)) then 
+            IOPD( 0)=IOPD(LPRF)
+            IODB( 0)=IODB(LPRF)
+            IOD1( 0)=IOD1(LPRF)
+            IOD2( 0)=IOD2(LPRF)
+         End if
+
+         Do  89, I2=1,LPRF
+            KD=IOPD(I2-1)+IMPP( D,I2)
+            If(IOPD(I2).GE.KD+IIPP(DD,I2)) then
+               Go to  90
+            Else
+               If(KD+IIPP(DM,I2).GT.IOPM(I2)) then 
+                  IOPM(I2)=KD+IIPP(DM,I2)
+                  IOMB(I2)=IODB(I2-1)
+                  IOM1(I2)=IOD1(I2-1)
+                  IOM2(I2)=IOD2(I2-1)
+               End if
+               If(KD+IIPP(DI,I2).GT.IOPI(I2)) then 
+                  IOPI(I2)=KD+IIPP(DI,I2)
+                  IOIB(I2)=IODB(I2-1)
+                  IOI1(I2)=IOD1(I2-1)
+                  IOI2(I2)=IOD2(I2-1)
+               End if
+               IOPD(I2)=KD+IIPP(DD,I2)
+               IODB(I2)=IODB(I2-1)
+               IOD1(I2)=IOD1(I2-1)
+               IOD2(I2)=IOD2(I2-1)
+               IOPT    =MAX(KD+IIPX(DX,I2),IOPT)
+            End if
+
+* - - check for new maximum 
+
+            KE=KD+IIPX(DZ,I2)
+
+            If(KE.GT.JALS) then
+               JALS=KE
+               JALB=IODB(I2-1)
+               JAL1=IOD1(I2-1)
+               JAL2=IOD2(I2-1)
+               If(JAL1.EQ.0) JAL1=JALB
+               If(JAL2.EQ.0) JAL2=I1
+C                Write(6,'(7I8)') I1,I2,JALS,JALB,JAL1,JAL2,JALE
+
+
+            End if 
+ 89      Continue
+ 90      Continue
+
+      End if
+* -----------------------------------------------------------
+
+* entry and exit from protected regions:
+
+      IOM1(N1-1)=MIN(IOM1(N1-1),IN)
+      IOM2(N1-1)=IN
+
+      Do I2=N1,N2-1
+         IOM1(I2)=MIN(IOM1(I2),IN)
+         IOI1(I2)=MIN(IOI1(I2),IN)
+         IOM2(I2)=IN
+         IOI2(I2)=IN
+      End do 
+
+      Return 
+      End
+*----------------------------------------------------------------------*
+      Subroutine Nstep(JSTEP,NMAX,JB,JM,JI,JD)
+
+      NMAX=JB
+      JSTEP=0
+
+      If(JD.GT.NMAX) then
+         NMAX=JD
+         JSTEP=3
+      End if 
+
+      If(JM.GT.NMAX) then
+         NMAX=JM
+         JSTEP=1
+      End if 
+
+      If(JI.GT.NMAX) then
+         NMAX=JI
+         JSTEP=2
+      End if 
+      
+      Return
+      End 
+*----------------------------------------------------------------------*
+      Subroutine InitR(
+     *   I1,LPCI,
+     *   N1,N2,BSEQ,LSEQ,
+     *   IDMP,LPRF,IIPP,IMPP,CHIP,CHMP,IIPX,  
+     *   IOPM,IOPI,IOPD,
+     *   IOMB,IOM1,IOM2,IOIB,IOI1,IOI2,IODB,IOD1,IOD2)
+
+* profile
+
+      Include          'pfdat.f'
+      Include          'pxdat.f'
+
+      Logical           LPCI
+      Integer           BSEQ
+
+* alignment scores
+
+      Integer           IOPM(0:IDMP)
+      Integer           IOPI(0:IDMP)
+      Integer           IOPD(0:IDMP)
+
+* alignment positions
+
+      Integer           IOMB(0:IDMP)
+      Integer           IOM1(0:IDMP)
+      Integer           IOM2(0:IDMP)
+
+      Integer           IOIB(0:IDMP)
+      Integer           IOI1(0:IDMP)
+      Integer           IOI2(0:IDMP)
+
+      Integer           IODB(0:IDMP)
+      Integer           IOD1(0:IDMP)
+      Integer           IOD2(0:IDMP)
+*
+      Integer           ZM 
+      Integer           ZI 
+      Integer           ZD 
+*
+      If(I1.LT.BSEQ) then
+         ZM=YM
+         ZI=YI
+         ZD=YD
+      Else
+         ZM=XM
+         ZI=XI
+         ZD=XD
+      End if
+
+      IOPM( 0)=IIPX(ZM, 0)
+      IOPI( 0)=IIPX(ZI, 0)
+      IOPD( 0)=IIPX(ZD, 0)
+
+      Do   8 I2=1,LPRF
+
+         KD=IOPD(I2-1)+IMPP( D,I2)
+         
+         IOPM(I2)=MAX(IIPX(ZM,I2),
+     *      KD+IIPP(DM,I2)) 
+         IOPI(I2)=MAX(IIPX(ZI,I2),
+     *      KD+IIPP(DI,I2))
+         IOPD(I2)=MAX(IIPX(ZD,I2),
+     *      KD+IIPP(DD,I2))
+ 8    Continue     
+
+* - circular extensions 
+
+      If(LPCI) then
+         IOPM( 0)=MAX(IOPM( 0),IOPM(LPRF))
+         IOPI( 0)=MAX(IOPI( 0),IOPI(LPRF))
+         IOPD( 0)=MAX(IOPD( 0),IOPD(LPRF))
+
+         Do   9 I2=1, LPRF
+            KD=IOPD(I2-1)+IMPP( D,I2)
+            If(IOPD(I2).GE.KD+IIPP(DD,I2)) then
+               Go to 10
+            Else
+               IOPM(I2)=MAX(KD+IIPP(DM,I2),IOPM(I2))
+               IOPI(I2)=MAX(KD+IIPP(DI,I2),IOPI(I2))
+               IOPD(I2)=    KD+IIPP(DD,I2)
+            End if
+ 9       Continue
+ 10      Continue
+      End if
+* -----------------------------------------------------------
+
+* initialise begin, entry, exit positions
+
+      IN=I1+1
+      Do  20 I2=0,LPRF
+         IOMB(I2)=IN
+         IOM1(I2)=LSEQ+1
+         IOM2(I2)=0
+
+         IOIB(I2)=IN
+         IOI1(I2)=LSEQ+1
+         IOI2(I2)=0
+
+         IODB(I2)=IN
+         IOD1(I2)=LSEQ+1
+         IOD2(I2)=0
+ 20   Continue     
+
+* entry and exit positions within protected region
+
+      IOM1(N1-1)=IN
+      IOM2(N1-1)=IN
+
+      Do I2=N1,N2-1
+         IOM1(I2)=IN
+         IOM2(I2)=IN
+         IOI1(I2)=IN
+         IOI2(I2)=IN
+      End do 
+
+      Return
+      End 
+*----------------------------------------------------------------------*
+      Integer Function IFirst(IDMP,LPRF,IOMB,IOIB,IODB)
+
+      Integer           IOMB(0:IDMP)
+      Integer           IOIB(0:IDMP)
+      Integer           IODB(0:IDMP)
+
+      IFirst=IOMB(LPRF)
+      Do   9 I1=LPRF,0,-1
+         If(IOMB(I1).LT.IFirst) IFirst=IOMB(I1) 
+         If(IOIB(I1).LT.IFirst) IFirst=IOIB(I1) 
+         If(IODB(I1).LT.IFirst) IFirst=IODB(I1) 
+ 9    Continue
+
+      Return
+      End
diff --git a/xalit.f b/xalit.f
new file mode 100644
index 0000000..24394be
--- /dev/null
+++ b/xalit.f
@@ -0,0 +1,879 @@
+*----------------------------------------------------------------------*     
+* $Id: xalit.f,v 2.9 2003/04/11 13:43:53 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine XALIT
+     *   (CABC,LPRF,LPCI,N1,N2,
+     *   IIPP,IMPP,IIPX, 
+     *   LSEQ,ISEQ,LCKS, 
+     *   IOPM,IOPI,IOPD, 
+     *   LALI,CALI,CPMA,IMSC,
+     *   IOPT,JALB,JALE, 
+     *   NMAT,
+     *   PK2E,PK2B,PK3E,PK3B,
+     *   PJ1E,PJ1B,PLAL,
+     *   OPTM,
+     *   IPMB,IPME,
+     *   IRC) 
+
+* profile and sequence fields :
+
+      Include           'ardim.f'
+      Include           'gsdat.f'
+      Include           'pfdat.f'
+      Include           'pxdat.f'
+      Include           'sterr.f'
+
+* sequence
+
+      Integer           LSEQ
+      Integer*2         ISEQ(IDMS)
+      Logical           LCKS(IDMS)
+
+* alignment
+      
+      Integer           LALI
+      Character         CALI(IDMA)
+      Character         CPMA(IDMM)
+      Character         CH
+
+* multiple matches of circular profile
+
+      Integer           NMAT
+C      Integer           IMMB(IDMN,IDML)
+C      Integer           IMME(IDMN,IDML)
+      Integer           PK2E(*)
+      Integer           PK2B(*)
+      Integer           PK3E(*)
+      Integer           PK3B(*)
+      Integer           PJ1E(*)
+      Integer           PJ1B(*)
+      Integer           PLAL(*)
+      Integer           IMSC(*)
+C      Integer           IMMS(512)
+
+      Logical           OPTM
+
+* prune delete positions at beginning and end of multiple matches
+      Logical           LDFE
+* Logical Delete To Begin
+      Logical           LDTB
+* Position (in alignment) Delete To Begin
+      Integer           PDTB
+* Score Delete to Begin
+      Integer           SDTB
+* Temp Delete to Begin score
+      Integer           TDTB
+
+* work fields
+
+      Integer           TK1B
+      Integer           TK2B
+      Integer           TK3B
+      Integer           TJ1B
+      Integer           TLAL
+
+      Integer           IOPM(0:IDMP)
+      Integer           IOPI(0:IDMP)
+      Integer           IOPD(0:IDMP)
+
+      Integer           ZM
+      Integer           ZI
+      Integer           ZD
+
+      Integer           MZ
+      Integer           IZ
+      Integer           DZ
+
+      Integer           KOPM
+
+      Logical           LIMM
+
+
+      IRC=0
+      MLOW=NLOW/4*3
+
+C       If(NABC.LT.20) then 
+C          CABC(0)='N'
+C       Else 
+C          CABC(0)='X'
+C       End if    
+
+      If((LPRF+1)*(JALE-JALB+1).GT.IDMM) then
+         Write(NERR,*) ' Error: Alignment path matrix exceeds buffer ',
+     *      'size (',IDMM,').'
+         IRC=1
+         Go to 100
+      End if  
+      If((JALE-JALB+1).GT.IDMA) then
+         Write(NERR,*) ' Error: Alignment exceeds buffer ',
+     *      'size (',IDMA,').'
+         IRC=1
+         Go to 100
+      End if  
+
+      K1=0
+
+* beginning of sequence segment  
+
+      If(JALB.EQ.1) then
+         ZM=YM
+         ZI=YI
+         ZD=YD
+      Else
+         ZM=XM
+         ZI=XI
+         ZD=XD
+      End if
+      MZ=MX
+      IZ=IX
+      DZ=DX
+
+      K1=K1+1
+      I2=0
+
+      KM=NLOW
+      KI=NLOW
+      KD=NLOW
+
+      Call MaxP
+     *   (IOPM(I2),IOPI(I2),IOPD(I2),JM,JI,JD,KM,KI,KD,
+     *   IIPP(MM,I2),IIPP(MI,I2),IIPP(MD,I2),
+     *   IIPP(IM,I2),IIPP(II,I2),IIPP(ID,I2),
+     *   IIPP(DM,I2),IIPP(DI,I2),IIPP(DD,I2),
+     *   IIPX(ZM,I2),IIPX(ZI,I2),IIPX(ZD,I2))
+      Call Ncode(CPMA(K1),JM,JI,JD)
+      
+      Do   9, I2=1,LPRF
+
+         K1=K1+1
+
+         KM=NLOW
+         KI=NLOW 
+         KD=IOPD(I2-1)+IMPP( D,I2)
+
+         Call MaxP
+     *      (IOPM(I2),IOPI(I2),IOPD(I2),JM,JI,JD,KM,KI,KD,
+     *      IIPP(MM,I2),IIPP(MI,I2),IIPP(MD,I2),
+     *      IIPP(IM,I2),IIPP(II,I2),IIPP(ID,I2),
+     *      IIPP(DM,I2),IIPP(DI,I2),IIPP(DD,I2),
+     *      IIPX(ZM,I2),IIPX(ZI,I2),IIPX(ZD,I2))
+         Call Ncode(CPMA(K1),JM,JI,JD)
+
+ 9    Continue
+
+* - circular extensions
+
+      If(LPCI) then
+         L1=K1-LPRF
+         Call Dcode(CPMA(L1),LM,LI,LD)
+         If(IOPM( 0).LT.IOPM(LPRF)) then
+            IOPM( 0)=IOPM(LPRF)
+            LM=JM 
+         End if 
+         If(IOPI( 0).LT.IOPI(LPRF)) then
+            IOPI( 0)=IOPI(LPRF)
+            LI=JI 
+         End if 
+         If(IOPD( 0).LT.IOPD(LPRF)) then
+            IOPD( 0)=IOPD(LPRF)
+            LD=JD 
+         End if 
+         Call Ncode(CPMA(L1),LM,LI,LD)
+
+         Do I2=1,LPRF
+            L1=L1+1
+            KD=IOPD(I2-1)+IMPP( D,I2)
+            If(IOPD(I2).GE.KD+IIPP(DD,I2)) then
+               Go to  10
+            Else
+               Call Dcode(CPMA(L1),LM,LI,LD)
+               If(IOPM(I2).LT.KD+IIPP(DM,I2)) then
+                  IOPM(I2)=KD+IIPP(DM,I2)
+                  LM=3
+               End if 
+               If(IOPI(I2).LT.KD+IIPP(DI,I2)) then
+                  IOPI(I2)=KD+IIPP(DI,I2)
+                  LI=3
+               End if 
+               IOPD(I2)=KD+IIPP(DD,I2)
+               LD=3
+               Call Ncode(CPMA(L1),LM,LI,LD)
+            End if
+         End do
+ 10      Continue
+      End if
+C          Call wtrace(IDMP,IDMM,LPRF,CPMA,K1-LPRF,IOPM,IOPI,IOPD)
+* -----------------------------------------------------------
+
+
+* internal sequence positions
+
+      ZM=XM
+      ZI=XI
+      ZD=XD
+
+      Do  25 I1=JALB,JALE-1
+
+         If(LCKS(I1)) then
+            IOPM(N1-1)=NLOW
+            Do I2=N1,N2-1
+               IOPM(I2)=NLOW
+               IOPI(I2)=NLOW
+            End do 
+         End if
+
+         J1=ISEQ(I1)
+         K1=K1+1
+         I2=0
+
+         KM=NLOW
+         KI=IOPI( 0)+IIPP(J1, 0)
+         KD=NLOW
+
+         KOPM=IOPM( 0)
+
+         Call MaxP
+     *      (IOPM(I2),IOPI(I2),IOPD(I2),JM,JI,JD,KM,KI,KD,
+     *      IIPP(MM,I2),IIPP(MI,I2),IIPP(MD,I2),
+     *      IIPP(IM,I2),IIPP(II,I2),IIPP(ID,I2),
+     *      IIPP(DM,I2),IIPP(DI,I2),IIPP(DD,I2),
+     *      IIPX(ZM,I2),IIPX(ZI,I2),IIPX(ZD,I2))
+         Call Ncode(CPMA(K1),JM,JI,JD)
+
+         Do  19 I2=1,LPRF
+
+            K1=K1+1
+
+            KM=KOPM      +IMPP(J1,I2)
+            KI=IOPI(I2  )+IIPP(J1,I2)
+            KD=IOPD(I2-1)+IMPP( D,I2)
+
+            KOPM=IOPM(I2)
+
+            Call MaxP
+     *         (IOPM(I2),IOPI(I2),IOPD(I2),JM,JI,JD,KM,KI,KD,
+     *         IIPP(MM,I2),IIPP(MI,I2),IIPP(MD,I2),
+     *         IIPP(IM,I2),IIPP(II,I2),IIPP(ID,I2),
+     *         IIPP(DM,I2),IIPP(DI,I2),IIPP(DD,I2),
+     *         IIPX(ZM,I2),IIPX(ZI,I2),IIPX(ZD,I2))
+            Call Ncode(CPMA(K1),JM,JI,JD)
+ 19      Continue
+
+* - circular extensions
+
+         If(LPCI) then
+            L1=K1-LPRF
+            Call Dcode(CPMA(L1),LM,LI,LD)
+            If(IOPM( 0).LT.IOPM(LPRF)) then
+               IOPM( 0)=IOPM(LPRF)
+               LM=JM 
+            End if 
+            If(IOPI( 0).LT.IOPI(LPRF)) then
+               IOPI( 0)=IOPI(LPRF)
+               LI=JI 
+            End if 
+            If(IOPD( 0).LT.IOPD(LPRF)) then
+               IOPD( 0)=IOPD(LPRF)
+               LD=JD 
+            End if 
+            Call Ncode(CPMA(L1),LM,LI,LD)
+
+            Do I2=1,LPRF
+               L1=L1+1
+               KD=IOPD(I2-1)+IMPP( D,I2)
+               If(IOPD(I2).GE.KD+IIPP(DD,I2)) then
+                  Go to  20
+               Else
+                  Call Dcode(CPMA(L1),LM,LI,LD)
+                  If(IOPM(I2).LT.KD+IIPP(DM,I2)) then
+                     IOPM(I2)=KD+IIPP(DM,I2)
+                     LM=3
+                  End if 
+                  If(IOPI(I2).LT.KD+IIPP(DI,I2)) then
+                     IOPI(I2)=KD+IIPP(DI,I2)
+                     LI=3
+                  End if 
+                  IOPD(I2)=KD+IIPP(DD,I2)
+                  LD=3
+                  Call Ncode(CPMA(L1),LM,LI,LD)
+               End if
+            End do
+ 20         Continue
+         End if
+* -----------------------------------------------------------
+C          Call wtrace(IDMP,IDMM,LPRF,CPMA,K1-LPRF,IOPM,IOPI,IOPD)
+
+ 25   Continue
+
+* end of sequence 
+
+      If(JALE.EQ.LSEQ) then
+         MZ=MY
+         IZ=IY
+         DZ=DY
+      End if  
+
+      If(LCKS(JALE)) then
+         IOPM(N1-1)=NLOW
+         Do I2=N1,N2-1
+            IOPM(I2)=NLOW
+            IOPI(I2)=NLOW
+         End do 
+      End if
+
+      J1=ISEQ(JALE)
+      K1=K1+1
+      I2=0
+
+      KM=NLOW
+      KI=IOPI( 0)+IIPP(J1, 0)
+      KD=NLOW 
+
+      KOPM=IOPM( 0)
+
+      Call MaxP
+     *   (IOPM(I2),IOPI(I2),IOPD(I2),JM,JI,JD,KM,KI,KD,
+     *   IIPP(MM,I2),IIPP(MI,I2),IIPP(MD,I2),
+     *   IIPP(IM,I2),IIPP(II,I2),IIPP(ID,I2),
+     *   IIPP(DM,I2),IIPP(DI,I2),IIPP(DD,I2),
+     *   IIPX(ZM,I2),IIPX(ZI,I2),IIPX(ZD,I2))
+      Call Ncode(CPMA(K1),JM,JI,JD)
+
+      I2=0
+      If(KI+IIPX(IZ,I2).GE.IOPT) then
+         JS=1
+         Go to  50
+      End if
+
+      Do  29 I2=1,LPRF
+
+         K1=K1+1
+
+         KM=KOPM      +IMPP(J1,I2)
+         KI=IOPI(I2  )+IIPP(J1,I2)
+         KD=IOPD(I2-1)+IMPP( D,I2)
+
+         KOPM=IOPM(I2)
+
+         Call MaxP
+     *      (IOPM(I2),IOPI(I2),IOPD(I2),JM,JI,JD,KM,KI,KD,
+     *      IIPP(MM,I2),IIPP(MI,I2),IIPP(MD,I2),
+     *      IIPP(IM,I2),IIPP(II,I2),IIPP(ID,I2),
+     *      IIPP(DM,I2),IIPP(DI,I2),IIPP(DD,I2),
+     *      IIPX(ZM,I2),IIPX(ZI,I2),IIPX(ZD,I2))
+         Call Ncode(CPMA(K1),JM,JI,JD)
+
+         If     (KI+IIPX(IZ,I2).GE.IOPT) then 
+            JS=1
+            Go to  50
+         Else if(KM+IIPX(MZ,I2).GE.IOPT) then 
+            JS=2
+            Go to  50
+         Else if(KD+IIPX(DZ,I2).GE.IOPT) then 
+            JS=3
+            Go to  50
+         End if 
+
+ 29   Continue
+
+* - circular extensions
+
+      If(LPCI) then
+         L1=K1-LPRF
+         Call Dcode(CPMA(L1),LM,LI,LD)
+         If(IOPD( 0).LT.IOPD(LPRF)) then
+            IOPD( 0)=IOPD(LPRF)
+            LD=JD 
+         End if 
+         Call Ncode(CPMA(L1),LM,LI,LD)
+
+         Do I2=1,LPRF
+            L1=L1+1
+            KD=IOPD(I2-1)+IMPP( D,I2)
+            If(KD+IIPX(DZ,I2).GE.IOPT) then
+               JS=3
+               K1=L1
+            End if 
+            If(IOPD(I2).GE.KD+IIPP(DD,I2)) then
+               Go to  30
+            Else
+               Call Dcode(CPMA(L1),LM,LI,LD)
+               IOPD(I2)=KD+IIPP(DD,I2)
+               LD=3
+               Call Ncode(CPMA(L1),LM,LI,LD)
+            End if
+         End do
+ 30      Continue
+      End if
+* -----------------------------------------------------------
+
+ 50   Continue
+
+C          Call wtrace(IDMP,IDMM,LPRF,CPMA,K1-LPRF,IOPM,IOPI,IOPD)
+
+      K2=JALE
+      K3=I2
+      IPME=K3-LPRF-1
+C      Write(NERR,*) 'K1: ',K1,' K2: ',K2,' K3: ',K3,
+C     *   ' IPME: ',IPME,' OPTM: ',OPTM
+
+
+* trace back
+      
+      JO=0
+      K4=0
+      K5=IOPT
+      J1=0
+      Do  I1=LPRF,K3+1,-1
+         J1=J1+1
+         CALI(J1)='-'
+      End do
+
+      LIMM=.FALSE.
+      SDTB=MLOW
+      TDTB=MLOW
+      LDTB=.FALSE.
+ 60   Continue
+C       Write(6,'(5I5)') K1,K2,K3,JS
+
+* insert position
+
+C      Write(NERR,*)'JO: ',JO,' JS: ',JS
+
+      If     (JS.EQ.1) then 
+         LDTB=.FALSE.
+         If(LIMM.AND.OPTM) then
+            LDFE=.FALSE.
+            If(JO.EQ.1) then
+               IMSC(K4)=IMSC(K4)+IIPP(II,K3)
+C               Write(NERR,*)'Score: ',IIPP(II,K3)
+            Else if(JO.EQ.2) then
+               IMSC(K4)=IMSC(K4)+IIPP(MI,K3)
+C               Write(NERR,*)'Score: ',IIPP(IM,K3)
+            Else if(JO.EQ.3) then
+               IMSC(K4)=IMSC(K4)+IIPP(DI,K3)
+C               Write(NERR,*)'Score: ',IIPP(ID,K3)
+            End if
+            IMSC(K4)=IMSC(K4)+IIPP(ISEQ(K2),K3)
+C            Write(NERR,*)'Score: ',IIPP(ISEQ(K2),K3)
+         End if
+         J1=J1+1
+         CALI(J1)=Char(Ichar(CABC(ISEQ(K2)))+32)
+C         Write(NERR,*) 'CALI(',J1,'): ',CALI(J1),' No Match',
+C     *      ' JS: ',JS
+         K1=K1-LPRF-1
+         K2=K2-1
+
+* match position
+
+      Else if(JS.EQ.2) then
+         LDTB=.FALSE.
+         If(LIMM.AND.OPTM) then
+            If(JO.EQ.1) then
+               IMSC(K4)=IMSC(K4)+IMPP(ISEQ(K2),K3)
+C               Write(NERR,*)'Score: ',IMPP(ISEQ(K2),K3)
+               IMSC(K4)=IMSC(K4)+IIPP(MI,K3)
+C               Write(NERR,*)'Score: ',IIPP(MI,K3)
+            Else if(JO.EQ.2) then
+               LDFE=.FALSE.
+               IMSC(K4)=IMSC(K4)+IMPP(ISEQ(K2),K3)
+C               Write(NERR,*)'Score: ',IMPP(ISEQ(K2),K3)
+               IMSC(K4)=IMSC(K4)+IIPP(MM,K3)
+C               Write(NERR,*)'Score: ',IIPP(MM,K3)
+            Else if(JO.EQ.3) then
+               If((LDFE.EQV..TRUE.).AND.
+     *            (IIPX(MX,K3).GE.(IMSC(K4)+IIPP(MD,K3)))) then
+                  PK2E(K4)=K2
+                  PK3E(K4)=K3
+                  PJ1E(K4)=J1
+                  IMSC(K4)=IIPX(MX,K3)+IMPP(ISEQ(K2),K3)
+               Else
+                  IMSC(K4)=IMSC(K4)+IMPP(ISEQ(K2),K3)
+C               Write(NERR,*)'Score: ',IMPP(ISEQ(K2),K3)
+                  IMSC(K4)=IMSC(K4)+IIPP(MD,K3)
+C               Write(NERR,*)'Score: ',IIPP(MD,K3)
+               End if
+            End if
+            LDFE=.FALSE.
+         Else if(.NOT.LIMM.AND.OPTM) then
+            K4=K4+1
+            PK2E(K4)=K2
+            PK3E(K4)=K3
+            PJ1E(K4)=J1
+            If(K2.GE.LSEQ.AND.IIPX(MY,K3).GT.MLOW) then
+               IMSC(K4)=IIPX(MY,K3)
+C               Write(NERR,*)'Score: ',IIPX(MY,K3)
+            Else if(IIPX(MX,K3).GT.MLOW) then
+               IMSC(K4)=IIPX(MX,K3)
+C               Write(NERR,*)'Score: ',IIPX(MX,K3)
+            Else
+               IMSC(K4)=0
+C               Write(NERR,*)'Score: 0'
+            End if
+            IMSC(K4)=IMSC(K4)+IMPP(ISEQ(K2),K3)
+C            Write(NERR,*)'Score: ',IMPP(ISEQ(K2),K3)
+C            Write(NERR,*) 'End mult match nb: ',K4,' in match'
+C            Write(NERR,*) 'PK2E: ',PK2E(K4)
+C            Write(NERR,*) 'PK3E: ',PK3E(K4)
+C            Write(NERR,*) 'PJ1E: ',PJ1E(K4)
+            LIMM=.TRUE.
+            LDFE=.FALSE.
+            SDTB=MLOW
+            TDTB=MLOW
+         End if
+         J1=J1+1
+         CALI(J1)=CABC(ISEQ(K2))
+C         Write(NERR,*) 'CALI(',J1,'): ',CALI(J1),' Match',
+C     *      ' JS: ',JS
+         K1=K1-LPRF-2
+         K2=K2-1
+         K3=K3-1  
+         If(LPCI.AND.K3.EQ.0) then 
+            If(LIMM.AND.OPTM) then
+               PK2B(K4)=K2+1
+               PK3B(K4)=K3+1
+               PJ1B(K4)=J1
+               PLAL(K4)=PJ1B(K4)-PJ1E(K4)
+               If(K2.LE.1.AND.IIPX(YM,K3).GT.MLOW) then
+                  IMSC(K4)=IMSC(K4)+IIPX(YM,K3)
+C                  Write(NERR,*)'Score: ',IIPX(YM,K3)
+               Else if(IIPX(XM,K3).GT.MLOW) then
+                  IMSC(K4)=IMSC(K4)+IIPX(XM,K3)
+C                  Write(NERR,*)'Score: ',IIPX(XM,K3)
+*              Else
+*                 Do nothing
+               End if
+C               Write(NERR,*) 'Begin mult match nb: ',K4,' in match'
+C               Write(NERR,*) 'PK2B: ',PK2B(K4)
+C               Write(NERR,*) 'PK3B: ',PK3B(K4)
+C               Write(NERR,*) 'PJ1B: ',PJ1B(K4)
+C               Write(NERR,*) 'PLAL: ',PLAL(K4)
+               LIMM=.FALSE.
+            End if
+            K3=K3+LPRF
+            K1=K1+LPRF
+         End if
+
+* delete position
+
+      Else if(JS.EQ.3) then 
+         LDTB=.TRUE.
+         If(LIMM.AND.OPTM) then
+            If(JO.EQ.1) then
+               TDTB=IMSC(K4)+IIPX(XI,K3)
+               IMSC(K4)=IMSC(K4)+IMPP(D,K3)
+C               Write(NERR,*)'Score: ',IMPP(D,K3)
+               IMSC(K4)=IMSC(K4)+IIPP(DI,K3)
+C               Write(NERR,*)'Score: ',IIPP(DI,K3)
+            Else if(JO.EQ.2) then
+               TDTB=IMSC(K4)+IIPX(XM,K3)
+               IMSC(K4)=IMSC(K4)+IMPP(D,K3)
+C               Write(NERR,*)'Score: ',IMPP(D,K3)
+               IMSC(K4)=IMSC(K4)+IIPP(DM,K3)
+C               Write(NERR,*)'Score: ',IIPP(DM,K3)
+            Else if(JO.EQ.3) then
+               TDTB=IMSC(K4)+IIPX(XD,K3)
+               IMSC(K4)=IMSC(K4)+IMPP(D,K3)
+C               Write(NERR,*)'Score: ',IMPP(D,K3)
+               IMSC(K4)=IMSC(K4)+IIPP(DD,K3)
+C               Write(NERR,*)'Score: ',IIPP(DD,K3)
+            End if
+            If(TDTB.LT.MLOW) TDTB=MLOW
+            If(TDTB.GT.SDTB) then
+               SDTB=TDTB
+               TK1B=K1
+               TK2B=K2+1
+               TK3B=K3
+               TJ1B=J1
+               TLAL=TJ1B-PJ1E(K4)
+            End if
+         Else if(.NOT.LIMM.AND.OPTM) then
+            K4=K4+1
+            PK2E(K4)=K2
+            PK3E(K4)=K3
+            PJ1E(K4)=J1
+            If(K2.GE.LSEQ.AND.IIPX(DY,K3).GT.MLOW) then
+               IMSC(K4)=IIPX(DY,K3)
+C               Write(NERR,*)'Score: ',IIPX(DY,K3)
+            Else if(IIPX(DX,K3).GT.MLOW) then
+               IMSC(K4)=IIPX(DX,K3)
+C               Write(NERR,*)'Score: ',IIPX(DX,K3)
+            Else
+               IMSC(K4)=0
+            End if
+            IMSC(K4)=IMSC(K4)+IMPP(D,K3)
+C            Write(NERR,*)'Score: ',IMPP(D,K3)
+C            Write(NERR,*) 'End mult match nb: ',K4,' in del'
+C            Write(NERR,*) 'PK2E: ',PK2E(K4)
+C            Write(NERR,*) 'PK3E: ',PK3E(K4)
+C            Write(NERR,*) 'PJ1E: ',PJ1E(K4)
+            LIMM=.TRUE.
+            LDFE=.TRUE.
+            SDTB=NLOW
+            TDTB=NLOW
+         End if
+         J1=J1+1
+         CALI(J1)='-'
+C         Write(NERR,*) 'CALI(',J1,'): ',CALI(J1),' Deletion',
+C     *      ' JS: ',JS
+         K1=K1-1
+         K3=K3-1
+         If(LPCI.AND.K3.EQ.0) then 
+            If(LIMM.AND.OPTM) then
+               If(K2.LE.1.AND.IIPX(YD,K3).GT.MLOW) then
+                  IMSC(K4)=IMSC(K4)+IIPX(YD,K3)
+C                  Write(NERR,*)'Score: ',IIPX(YD,K3)
+               Else if(IIPX(XD,K3).GT.MLOW) then
+                  IMSC(K4)=IMSC(K4)+IIPX(XD,K3)
+C                  Write(NERR,*)'Score: ',IIPX(XD,K3)
+*              Else
+*                 Do nothing
+               End if
+               If(.NOT.LDTB.OR.IMSC(K4).LE.-99999
+     *            .OR.SDTB.LT.IMSC(K4)) then
+                  PK2B(K4)=K2+1
+                  PK3B(K4)=K3+1
+                  PJ1B(K4)=J1
+                  PLAL(K4)=PJ1B(K4)-PJ1E(K4)
+C                  Write(NERR,*) 'Begin mult match nb: ',K4,' in del'
+C                  Write(NERR,*) 'LDTB: ',LDTB
+C                  Write(NERR,*) 'IMSC: ',IMSC(K4)
+C                  Write(NERR,*) 'PK2B: ',PK2B(K4)
+C                  Write(NERR,*) 'PK3B: ',PK3B(K4)
+C                  Write(NERR,*) 'PJ1B: ',PJ1B(K4)
+C                  Write(NERR,*) 'PLAL: ',PLAL(K4)
+               Else
+                  IMSC(K4)=SDTB
+                  PK2B(K4)=TK2B
+                  PK3B(K4)=TK3B+1
+                  PJ1B(K4)=TJ1B
+                  PLAL(K4)=TLAL
+C                  Write(NERR,*) 'Begin mult match nb: ',K4,' in del_t_b'
+C                  Write(NERR,*) 'LDTB: ',LDTB
+C                  Write(NERR,*) 'IMSC: ',IMSC(K4)
+C                  Write(NERR,*) 'PK2B: ',PK2B(K4)
+C                  Write(NERR,*) 'PK3B: ',PK3B(K4)
+C                  Write(NERR,*) 'PJ1B: ',PJ1B(K4)
+C                  Write(NERR,*) 'PLAL: ',PLAL(K4)
+               End if
+               LIMM=.FALSE.
+            End if
+            K3=K3+LPRF
+            K1=K1+LPRF
+         End if
+      End if 
+
+* next traceback step
+
+      Call Dcode(CPMA(K1),JM,JI,JD)
+C      Write(NERR,*) 'K1: ',K1,' JM: ',JM,' JI: ',JI,
+C     *   ' JD: ',JD,' JS: ',JS
+
+      JO=JS
+
+      If     (JS.EQ.1) then 
+         JS=JI
+      Else if(JS.EQ.2) then
+         JS=JM
+      Else if(JS.EQ.3) then
+         JS=JD
+      End if
+
+      If(JS.NE.0) Go to 60
+
+C      Write(NERR,*) 'JS eq 0 for: ',K2
+      
+      If(LIMM.AND.OPTM) then
+         If(K2.LT.1) then
+            If(JO.EQ.1.AND.IIPX(YI,K3).GT.MLOW) then
+               IMSC(K4)=IMSC(K4)+IIPX(YI,K3)
+C               Write(NERR,*)'Score: ',IIPX(YI,K3)
+            Else if(JO.EQ.2.AND.IIPX(YM,K3).GT.MLOW) then
+               IMSC(K4)=IMSC(K4)+IIPX(YM,K3)
+C               Write(NERR,*)'Score: ',IIPX(YM,K3)
+            Else if(JO.EQ.3.AND.IIPX(YD,K3).GT.MLOW) then
+               IMSC(K4)=IMSC(K4)+IIPX(YD,K3)
+C               Write(NERR,*)'Score: ',IIPX(YD,K3)
+            End if
+         Else
+            If(JO.EQ.1.AND.IIPX(XI,K3).GT.MLOW) then
+               IMSC(K4)=IMSC(K4)+IIPX(XI,K3)
+C               Write(NERR,*)'Score: ',IIPX(XI,K3)
+            Else if(JO.EQ.2.AND.IIPX(XM,K3).GT.MLOW) then
+               IMSC(K4)=IMSC(K4)+IIPX(XM,K3)
+C               Write(NERR,*)'Score: ',IIPX(XM,K3)
+            Else if(JO.EQ.3.AND.IIPX(XD,K3).GT.MLOW) then
+               IMSC(K4)=IMSC(K4)+IIPX(XD,K3)
+C               Write(NERR,*)'Score: ',IIPX(XD,K3)
+            End if
+         End if
+         If(.NOT.LDTB.OR.IMSC(K4).LE.-99999
+     *      .OR.SDTB.LT.IMSC(K4)) then 
+            PK2B(K4)=K2+1
+            PK3B(K4)=K3+1
+            PJ1B(K4)=J1
+            PLAL(K4)=PJ1B(K4)-PJ1E(K4)
+         Else
+            IMSC(K4)=SDTB
+            PK2B(K4)=TK2B
+            PK3B(K4)=TK3B+1
+            PJ1B(K4)=TJ1B
+            PLAL(K4)=TLAL
+         End if
+C         Write(NERR,*) 'Begin mult match: ',K4
+C         Write(NERR,*) 'PK2B: ',PK2B(K4)
+C         Write(NERR,*) 'PK3B: ',PK3B(K4)
+C         Write(NERR,*) 'PJ1B: ',PJ1B(K4)
+C         Write(NERR,*) 'PLAL: ',PLAL(K4)
+      End if
+
+      If(K3.GE.LPRF) K3=0
+
+      Do I1=K3,1,-1
+C         Write(NERR,*) 'Add deletions'
+         J1=J1+1
+         CALI(J1)='-'
+      End do
+
+      LALI=J1
+      If(OPTM) then
+         NMAT=K4
+C         Write(NERR,*)'*** Scores:'
+C         Write(NERR,*)(IMSC(ii1),ii1=1,NMAT)
+      End if
+
+* reverse begin and end positions in alignment
+
+      If(OPTM) then
+         Do I1=1,NMAT
+            PJ1B(I1)=LALI-PJ1B(I1)+1
+            PJ1E(I1)=LALI-PJ1E(I1)
+         End do
+      End if
+
+* reverse alignment
+
+      J1=(LALI+1)/2
+      Do I1=LALI/2+1,LALI 
+         CH=CALI(I1)
+         CALI(I1)=CALI(J1)
+         CALI(J1)=CH         
+         J1=J1-1
+      End do
+
+      IPMB=K3+1
+
+ 100  Return
+
+      End 
+*----------------------------------------------------------------------*
+      Subroutine MaxP
+     *   (IOPM,IOPI,IOPD,JM,JI,JD,KM,KI,KD,
+     *   IMM,IMI,IMD,IIM,III,IID,
+     *   IDM,IDI,IDD,IZM,IZI,IZD)
+
+      JMM=KM+IMM
+      JMI=KM+IMI
+      JMD=KM+IMD
+      JIM=KI+IIM
+      JII=KI+III
+      JID=KI+IID
+      JDM=KD+IDM
+      JDI=KD+IDI
+      JDD=KD+IDD
+
+      IOPM=IZM
+      JM=0
+      IOPI=IZI
+      JI=0
+      IOPD=IZD
+      JD=0
+
+      If(JIM.GT.IOPM) then
+         IOPM=JIM
+         JM=1
+      End if
+      If(JMM.GT.IOPM) then
+         IOPM=JMM
+         JM=2
+      End if
+      If(JDM.GT.IOPM) then
+         IOPM=JDM
+         JM=3
+      End if
+
+      If(JII.GT.IOPI) then
+         IOPI=JII
+         JI=1
+      End if
+      If(JMI.GT.IOPI) then
+         IOPI=JMI
+         JI=2
+      End if
+      If(JDI.GT.IOPI) then
+         IOPI=JDI
+         JI=3
+      End if
+
+      If(JID.GT.IOPD) then
+         IOPD=JID
+         JD=1
+      End if
+      If(JMD.GT.IOPD) then
+         IOPD=JMD
+         JD=2
+      End if
+      If(JDD.GT.IOPD) then
+         IOPD=JDD
+         JD=3
+      End if
+
+      Return
+      End
+*----------------------------------------------------------------------*
+      Subroutine Ncode(CPMA,JM,JI,JD)
+
+      Character         CPMA
+
+      CPMA=Char(JM*16+JI*4+JD) 
+      Return 
+      End 
+*----------------------------------------------------------------------*
+      Subroutine Dcode(CPMA,JM,JI,JD)
+
+      Character         CPMA
+
+      JD=Ichar(CPMA)
+      JM=JD/16
+      JD=JD-JM*16
+      JI=JD/ 4
+      JD=JD-JI* 4
+      Return 
+      End 
+*----------------------------------------------------------------------*
+      Subroutine wtrace(IDMP,IDMM,LPRF,CPMA,K1,IOPM,IOPI,IOPD)
+
+      Character CPMA(IDMM)
+      Integer   IOPM(0:IDMP)
+      Integer   IOPI(0:IDMP)
+      Integer   IOPD(0:IDMP)
+
+      Integer   IM(20)
+      Integer   II(20)
+      Integer   ID(20)
+
+      J1=1
+      Do I1=K1,K1+LPRF
+         Call Dcode(CPMA(I1),IM(J1),II(J1),ID(J1))
+         J1=J1+1
+      End do
+
+      Write(6,'(I4)') K1/(LPRF+1)
+      Write(6,'(20(I4,I2))')(IOPM(ii1-1),IM(ii1),ii1=1,LPRF+1)
+      Write(6,'(20(I4,I2))')(IOPI(ii1-1),II(ii1),ii1=1,LPRF+1)
+      Write(6,'(20(I4,I2))')(IOPD(ii1-1),ID(ii1),ii1=1,LPRF+1)
+      Return
+      End
+
diff --git a/xprsm.f b/xprsm.f
new file mode 100644
index 0000000..881fea4
--- /dev/null
+++ b/xprsm.f
@@ -0,0 +1,468 @@
+*----------------------------------------------------------------------*     
+* $Id: xprsm.f,v 2.12 2003/12/09 13:42:42 vflegel Exp $
+*----------------------------------------------------------------------*     
+*       Version:  File under developpment for release 2.3
+*----------------------------------------------------------------------*     
+      Subroutine XPRSM(JSEQ,JMMA,LPMM,
+     *   LUNI,LOUT,LNOR,LREV,OPTZ,OPTL,OPLU,OPTB,
+     *   CHID,CHAC,CHFH,CPID,CPAC,OPTR,OPTF,LDRS,
+     *   IOPT,JALB,JALE,NALI,IPMB,IPME,
+     *   JCUT,MCLE,CCUT,ICUT,JCNM,RCUT,MCUT,
+     *   RNOP,KNPM,MAXN,INOR,IFUN,MNUM,LSEQ,RAVE)
+
+* profile parameters
+
+      Include          'codat.f'
+
+      Real              RNOP(KNPM,MAXN)
+
+* logical switches 
+
+      Logical           LUNI
+      Logical           LOUT
+      Logical           LNOR
+      Logical           LREV
+      Logical           OPTL
+      Logical           OPLU
+      Logical           OPTZ 
+      Logical           OPTB 
+      Logical           OPTR
+      Logical           OPTF
+
+      Logical           LPMM
+      Logical           LFCL
+      Logical           LDRS
+
+
+* sequence and profile header 
+      
+      Character*(*)     CHID
+      Character*(*)     CHAC
+      Character*(*)     CHFH
+      Character*(*)     CPID
+      Character*(*)     CPAC
+
+* Output fields 
+
+      Character*13      CHLE
+      Character*20      CHNS
+      Character*17      CHRS 
+      Character*64      CHLO
+      Character*21      CHSE
+      Character*17      CHTY
+      
+      Character*21      CHPP
+
+      Character*24      CHPS
+      Character*24      CHPE
+      Character*09      CHST 
+      Character*64      CHER 
+      Character*64      CHMN 
+      Character*22      CHRN 
+      Character*26      CHPN 
+      
+      Character*64      CHMO
+      Character*64      CHMI
+      Character*64      CHRP
+
+      Character*512     RCEX
+
+* prepare output fields 
+
+* - norm-score
+      If(LNOR) then
+         Call RtoN
+     *      (IOPT,XOPT,RNOP,KNPM,MAXN,INOR,IFUN,LSEQ,RAVE)
+         R=XOPT         
+
+         If(R.GT.9999.999) R=9999.999 
+         If(R.LT.-999.999) R=-999.999
+         CHNS='norm_score= '
+         Write(CHNS(13:),'(F8.3)') R
+
+         J1=11
+         Do I1=12,Lblnk(CHNS)
+            If(CHNS(I1:I1).NE.' ') then 
+               J1=J1+1
+               CHNS(J1:J1)=CHNS(I1:I1)
+               CHNS(I1:I1)=' '
+            End if
+         End do
+         ILNS=Lblnk(CHNS)
+
+*         Write(NERR,*) 'CHNS: ', CHNS,' ILNS: ',ILNS
+
+      End if 
+
+* - cut-off level
+
+      If(OPTL.OR.OPLU) then
+         LFCL=.FALSE.
+         If(.NOT.OPTR) then
+            KI=0
+            KJ=0
+            Do I1=1,JCUT
+               Do I2=1,JCNM(I1)
+                  If(MCUT(I2,I1).EQ.MNUM) then
+                     If(KI.EQ.0) then
+                        KI=I1
+                        KJ=I2
+                     Else if(RCUT(I2,I1).LT.RCUT(KJ,KI)) then
+                        KI=I1
+                        KJ=I2
+                     End if
+                  End if
+               End do
+            End do
+            Do I1=1,JCUT
+               Do I2=1,JCNM(I1)
+                  If(MCUT(I2,I1).EQ.MNUM) then 
+                     If(XOPT.GE.RCUT(I2,I1)
+     *                  .AND.RCUT(I2,I1).GE.RCUT(KJ,KI)
+     *                  .AND.MCLE(I1).GE.MCLE(KI)) then
+                        LFCL=.TRUE.
+                        KI=I1
+                        KJ=I2
+                     End if
+                  End if
+               End do
+            End do
+         Else
+            KI=1
+            Do I1=2,JCUT
+               If(ICUT(I1).LT.ICUT(KI)) KI=I1
+            End do 
+            Do I1=1,JCUT
+               If(IOPT.GE.ICUT(I1).AND.ICUT(I1).GE.ICUT(KI)
+     *            .AND.MCLE(I1).GE.MCLE(KI)) then
+                  LFCL=.TRUE.
+                  KI=I1
+               End if
+            End do 
+         End if 
+         K=MCLE(KI)
+         If(OPLU) then
+            If(.NOT.LFCL.OR.CCUT(KI)(1:1).EQ.' ') then
+               Write(CHLE,'(''level_tag=NA'')')
+            Else
+               Write(CHLE,'(''level_tag='',(A2))') CCUT(KI)
+            End if
+         Else
+            If(.NOT.LFCL) then
+               Write(CHLE,'(''level=NA'')')
+            Else
+               If(K.LT.0.OR.K.GT.9) then 
+                  Write(CHLE,'(''level='',I2,'' '')') K 
+               Else
+                  Write(CHLE,'(''level='',I1,''  '')') K 
+               End if
+            End if
+         End if
+         ILLE=Lblnk(CHLE)
+*         Write(NERR,*) 'CHLE: ', CHLE,' ILLE: ',ILLE
+      End if  
+      
+* - raw-score
+
+      I=IOPT
+      If(I.GT.999999) I=999999
+      If(I.LE.-99999) I=-99999
+      Write(CHRS,'(''raw_score='',I7)') I
+      J1=10
+      Do I1=11,Lblnk(CHRS)
+         If(CHRS(I1:I1).NE.' ') then 
+            J1=J1+1
+            CHRS(J1:J1)=CHRS(I1:I1)
+            CHRS(I1:I1)=' '
+         End if
+      End do
+      ILRS=Lblnk(CHRS)
+*      Write(NERR,*) 'CHRS: ', CHRS,' ILRS: ',ILRS
+      
+* - location in sequence
+
+      If(.NOT.LUNI.OR.LOUT) then 
+         If(LREV) then 
+            JALB=LSEQ-JALB+1
+            JALE=LSEQ-JALE+1
+            CHSE='seq_end= '
+            Write(CHSE(10:),*) JALB-LSEQ-1
+         Else 
+*         Write(CHLO,'('' pos. '',I6,'' -'',I6)') JALB,JALE
+            CHSE='seq_end= '
+            Write(CHSE(10:),*) JALE-LSEQ-1
+         End if
+         J1=8
+         Do I1=9,Lblnk(CHSE)
+            If(CHSE(I1:I1).NE.' ') then 
+               J1=J1+1
+               CHSE(J1:J1)=CHSE(I1:I1)
+               CHSE(I1:I1)=' '
+            End if
+         End do
+         ILSE=Lblnk(CHSE)
+
+         Write(CHLO,*) JALB,'-',JALE
+         J1=0
+         Do I1=1,Lblnk(CHLO)
+            If(CHLO(I1:I1).NE.' ') then 
+               J1=J1+1
+               CHLO(J1:J1)=CHLO(I1:I1)
+               CHLO(I1:I1)=' '
+            End if
+         End do
+         If(LREV) then 
+            JALB=LSEQ-JALB+1
+            JALE=LSEQ-JALE+1
+         End if 
+         ILLO=Lblnk(CHLO)
+*         Write(NERR,*) 'CHLO: ', CHLO,' ILLO: ',ILLO
+
+* - location in profile
+
+         If(OPTZ) then
+*            CHPS='motif_start= '
+*            Write(CHPS(14:),*) IPMB
+            Write(CHPS,'(''motif_start='',I7)') IPMB
+            J1=12
+            Do I1=13,Lblnk(CHPS)
+               If(CHPS(I1:I1).NE.' ') then 
+                  J1=J1+1
+                  CHPS(J1:J1)=CHPS(I1:I1)
+                  CHPS(I1:I1)=' '
+               End if
+            End do
+*            CHPE='motif_end= '
+*            Write(CHPE(12:),*) IPME
+            Write(CHPE,'(''motif_end='',I7)') IPME
+            J1=10
+            Do I1=11,Lblnk(CHPE)
+               If(CHPE(I1:I1).NE.' ') then 
+                  J1=J1+1
+                  CHPE(J1:J1)=CHPE(I1:I1)
+                  CHPE(I1:I1)=' '
+               End if
+            End do
+*            Write(CHPP,'('' ['',I5,'','',I6,'']'')') IPMB,IPME
+            ILPS=Lblnk(CHPS)
+*            Write(NERR,*) 'CHPS: ',CHPS,' ILPS: ',ILPS
+            ILPE=Lblnk(CHPE)
+*            Write(NERR,*) 'CHPE: ',CHPE,' ILPE: ',ILPE
+         End if
+      End if 
+
+* - entry-ref 
+
+      If(OPTF) then
+         L1=Lblnk(CHFH)
+         If (L1.EQ.0) then
+            CHMI='unknown'
+            ILMI=7
+         Else
+            CHMI=CHFH(1:L1)
+            ILMI=MIN(64,L1)
+         Endif
+      Else
+         L1=Lblnk(CHAC)
+         L2=Lblnk(CHID)
+         CHMI=CHAC(1:L1) // CHID(1:L2)
+         ILMI=MIN(64,L1+L2)
+C      CHER=CHAC(1:L1) // CHID(1:L2)
+C      LNER=MIN(64,L1+L2)
+      End if
+
+      If(OPTB) then
+         If(LREV) then 
+*         CHER=CHER(1:LNER) // '(-)' 
+*         LNER=LNER+3
+            CHST='strand=r' 
+         Else
+            CHST='strand=s'
+         End if 
+         ILST=8
+*        Write(NERR,*) 'CHST: ',CHST
+      End if 
+      
+*      ILER=Lblnk(CHER)
+*      Write(NERR,*) 'CHER: ',CHER,' ILER: ',ILER
+
+* - match-number
+
+      If(NALI.GT.1.AND..NOT.LPMM) then 
+         CHMN='match_nb= '
+         Write(CHMN(11:),*) JSEQ
+         J1=9
+         Do I1=10,Lblnk(CHMN)
+            If(CHMN(I1:I1).NE.' ') then 
+               J1=J1+1
+               CHMN(J1:J1)=CHMN(I1:I1)
+               CHMN(I1:I1)=' '
+            End if
+         End do
+         ILMN=Lblnk(CHMN)
+*         Write(NERR,*) 'CHMN: ',CHMN,' ILMN: ',ILMN
+      End if
+      If(.NOT.LPMM.AND.(JMMA.GT.1.OR.NALI.GT.1)) then
+         CHTY='match_type=region'
+         ILTY=17
+      End if
+
+* - multiple repeat number and type
+
+      If(LPMM) then
+         CHTY='match_type=repeat'
+         ILTY=17
+         CHRN='repeat_nb= '
+         Write(CHRN(12:),*) JMMA
+         J1=10
+         Do I1=11,Lblnk(CHRN)
+            If(CHRN(I1:I1).NE.' ') then 
+               J1=J1+1
+               CHRN(J1:J1)=CHRN(I1:I1)
+               CHRN(I1:I1)=' '
+            End if
+         End do
+         ILRN=Lblnk(CHRN)
+*         Write(NERR,*) 'CHRN: ',CHRN,' ILRN: ',ILRN
+
+* -- multiple repeat parent match number
+
+         If(NALI.GT.1) then 
+            CHPN='match_parent= '
+            Write(CHPN(15:),*) JSEQ
+            J1=13
+            Do I1=14,Lblnk(CHPN)
+               If(CHPN(I1:I1).NE.' ') then 
+                  J1=J1+1
+                  CHPN(J1:J1)=CHPN(I1:I1)
+                  CHPN(I1:I1)=' '
+               End if
+            End do
+            ILPN=Lblnk(CHPN)
+C            Write(NERR,*) 'CHPN: ',CHPN,' ILPN: ',ILPN
+         End if         
+      End if
+
+* - profile name (motif)
+
+      CHMO='motif= '
+      
+      L1=Lblnk(CPID)
+      L2=Lblnk(CPAC)
+      L3=6
+      If(L2-1.GT.0) then
+         CHMO=CHMO(1:L3) // CPAC(1:L2)
+         L3=L3+L2
+      End if
+      If(L1.GT.0) then
+         CHMO=CHMO(1:L3) // CPID(1:L1)
+      End if
+      If(L2-1.LE.0.AND.L1.EQ.0) then
+         CHMO=CHMO(1:6) // 'unknown'
+      End if
+
+      ILMO=Lblnk(CHMO)
+*      Write(NERR,*) 'CHMO: ',CHMO,' ILMO: ',ILMO
+
+* assemble ouput record
+
+      LNEX=0 
+
+      RCEX(LNEX+1:)='>' // CHMI 
+      LNEX=LNEX+ILMI+2
+
+      If(.NOT.LUNI.OR.LOUT) then 
+         RCEX(LNEX:)='/' // CHLO
+         LNEX=LNEX+ILLO+1
+      End if
+
+      RCEX(LNEX+1:)=CHMO 
+      LNEX=LNEX+ILMO+1
+
+      If(LNOR.AND..NOT.LDRS) then 
+         RCEX(LNEX+1:)=CHNS
+         LNEX=LNEX+ILNS+1
+      End if
+
+      RCEX(LNEX+1:)=CHRS
+      LNEX=LNEX+ILRS+1
+
+      If(OPTB) then 
+         RCEX(LNEX+1:)=CHST
+         LNEX=LNEX+ILST+1
+      End if
+
+      If(NALI.GT.1) then 
+         If(.NOT.LPMM) then
+            RCEX(LNEX+1:)=CHMN
+            LNEX=LNEX+ILMN+1
+         Else
+            RCEX(LNEX+1:)=CHPN
+            LNEX=LNEX+ILPN+1
+         End if
+      End if
+
+      If(.NOT.LPMM.AND.(JMMA.GT.1.OR.NALI.GT.1)) then
+         RCEX(LNEX+1:)=CHTY
+         LNEX=LNEX+ILTY+1
+      End if
+
+      If(LPMM) then
+         RCEX(LNEX+1:)=CHRN
+         LNEX=LNEX+ILRN+1
+         RCEX(LNEX+1:)=CHTY
+         LNEX=LNEX+ILTY+1
+      End if
+
+      If(OPTL.OR.OPLU) then
+         RCEX(LNEX+1:)=CHLE
+         LNEX=LNEX+ILLE+1
+*         If(OPLU) LNEX=LNEX-2
+      End if
+
+      If(.NOT.LUNI.OR.LOUT) then 
+*         RCEX(LNEX+1:)=CHLO
+*         LNEX=LNEX+ILLO
+         RCEX(LNEX+1:)=CHSE
+         LNEX=LNEX+ILSE+1
+         
+         If(OPTZ) then
+            RCEX(LNEX+1:)=CHPS
+            LNEX=LNEX+ILPS+1
+            RCEX(LNEX+1:)=CHPE
+            LNEX=LNEX+ILPE+1
+         End if
+      End if   
+
+* - match ID and repeat number for standard output and option -x
+      
+*      If (.NOT.LPFA.AND.LPMM) then
+*         Write(CHRP,*) JSEQ,'_REP'
+*         L2=Lblnk(CHRP)
+*         Write(CHRP(L2+1:),*) JMMA
+*         J1=L2
+*         Do I1=L2+1,Lblnk(CHRP)
+*            If(CHRP(I1:I1).NE.' ') then 
+*               J1=J1+1
+*               CHRP(J1:J1)=CHRP(I1:I1)
+*            End if
+*         End do
+*         RCEX(LNEX+1:)=CHRP(1:J1)
+*         LNEX=LNEX+J1
+*      End if
+
+*      RCEX(LNEX+2:)=CHER(1:LNER)
+*      LNEX=LNEX+1+LNER
+
+*      L3=MAX(0,MIN(NW-LNEX-1,Lblnk(CHDE)))
+*      RCEX(LNEX+2:)=CHDE(1:L3)
+*      LNEX=LNEX+1+L3
+
+* Write output record
+      If(LNEX.GT.512) then
+         LNEX=512
+      End if
+      Write(6,'(512A)')(RCEX(ii1:ii1),ii1=1,LNEX)
+
+ 100  Return 
+      End 
diff --git a/xpsa.5 b/xpsa.5
new file mode 100644
index 0000000..16b73f2
--- /dev/null
+++ b/xpsa.5
@@ -0,0 +1,370 @@
+.\"
+.\" $Id: xpsa.5,v 1.2 2003/04/28 13:50:24 vflegel Exp $
+.\" Copyright (c) 2003 Volker Flegel <Volker.Flegel at isb-sib.ch>
+.\" Process this file with
+.\" groff -man -Tascii <name>
+.\" for ascii output or
+.\" groff -man -Tps <name>
+.\" for postscript output
+.\"
+.TH XPSA 5 "April 2003" "pftools 2.3" "File formats"
+.\" ------------------------------------------------
+.\" Name section
+.\" ------------------------------------------------
+.SH NAME
+xpsa \- extended psa header
+.\" ------------------------------------------------
+.\" Description section
+.\" ------------------------------------------------
+.SH DESCRIPTION
+.B xpsa
+is an extension of the
+.BR psa (5)
+file format used by the
+.B pftools
+package to describe and store biological sequences.
+.PP
+.B xpsa
+uses
+.IR keyword = value
+pairs in the header to include information about the sequence or the alignment
+between the sequence and a
+.I PROSITE
+profile (or any other kind of motif). The syntax is therefore easily extensible. In this man-page, we focus on 
+the keywords defined and used by the
+.B pftools
+package. 
+.PP
+In the following text we will use the more general term
+.RI ' motif '
+when in fact our discussion refers specifically to
+.IR "PROSITE profiles" .
+Nevertheless the keywords defined here can be used by any kind of sequence analysis tool
+to store and transfer information.
+.PP
+None of the defined keywords are mandatory and analysis tools have often a length limit imposed
+on the header line. In order to keep the header line reasonnably short and user readable,
+these tools can easily remove individual
+.IR keyword = value
+pairs which are not important to the specific task at hand.
+.\" ------------------------------------------------
+.\" Syntax section
+.\" ------------------------------------------------
+.SH SYNTAX
+The general syntax of the
+.B xpsa
+header is given below. For examples please refer to the corresponding
+.I examples
+section.
+.PP
+The biological sequence itself starts on the next line following the header and may extend over several lines.
+If several sequences are contained in the same file, each must be preceded by a header line.
+.PP
+.sp
+Syntax of the header line:
+.sp
+.RS
+.BI > seq_id / seq_pos
+{
+.RI "[ "  keyword = value " | " free_text " ]" 
+}
+.RE
+.sp
+The header must start with a
+.RB ' > '
+followed by the fields detailed below:
+.RS
+.\" --- seq_id ---
+.TP
+.I seq_id
+typically the 
+.IR identifier \ or\  accession
+number of the sequence. This text field should not contain any spaces.
+.\" --- seq_pos ---
+.TP
+.I seq_pos
+this field describes the sequence coordinates where a
+motif matches. The positions are generally given as
+.IR start_pos \- end_pos
+pairs.
+.br
+If present, this field is separated from the
+.I seq_id
+by a
+.RB ' / '
+character.
+.\" --- keyword=value ---
+.TP
+.IR keyword = value
+is an optional list of defined 
+.IR keyword = value
+pairs. Each pair should be separated from the next or from free text by whitespaces.
+.br
+The
+.I keyword
+is case sensitive in the current implementation of the
+.B pftools
+package. It should not exceed 24 characters in length.
+.br
+The
+.I value
+can be numeric or alphanumeric. Values containing whitespaces should be enclosed in either
+.I single quotes
+or
+.IR "double quotes" .
+If the same type of quote appears inside the value it must be escaped using the
+.RB ' \(rs '
+character.
+.RS
+.TP
+Note:
+the
+.B pftools
+do not currently produce quote enclosed values.
+.RE
+.\" --- free_text ---
+.TP
+.I free_text
+typically this is a description of the sequence. It should not contain any of the defined
+.IR keyword = value
+pairs.
+.PP
+.RE
+Keywords used by the
+.BR pfsearch "(1) and " pfscan (1)
+programs:
+.RS
+.\" --- level ---
+.TP
+.I level
+the highest cut-off level (as a value) exceeded by the alignment.
+.br
+The characters
+.RB ' NA '
+indicate that the alignment score does not exceed any of the cut-off levels defined in the motif.
+.\" --- level_tag ---
+.TP
+.I level_tag
+the highest cut-off level (as a character string) exceeded by the alignment.
+.br
+The characters
+.RB ' NA '
+indicate that the alignment score does not exceed any of the cut-off levels defined in the motif.
+.RS
+.TP
+Note:
+.BR pfsearch "(1) and " pfscan (1)
+only report the first 2 characters of the level text string.
+.RE
+.\" --- match_nb ---
+.TP
+.I match_nb
+if the motif matches several times on the same sequence, each alignment is numbered incrementally.
+.br
+If the motif is circular, each single repeat is numbered incrementally with the key 
+.I repeat_nb
+(see below).
+.\" --- match_parent ---
+.TP
+.I match_parent
+for each single match of a circular motif, this key references the number of the parental total match of the circular
+motif.
+.RS
+.TP
+Note:
+if a circular motif matches only once on a given sequence,
+.BR pfsearch "(1) and " pfscan (1)
+do not report this key.
+.RE
+.\" --- match_type ---
+.TP
+.I match_type
+identifies the type of match. Either
+.B region
+for a complete match of a motif to a sequence, or
+.B repeat
+for a single repeat of a circular motif.
+.\" --- motif ---
+.TP
+.I motif
+the name or identifier of the motif.
+.\" --- motif_start ---
+.TP
+.I motif_start
+the motif position where the alignment begins.
+.\" --- motif_end ---
+.TP
+.I motif_end
+negative offset from the end of the alignment to the end of the motif.
+.\" --- norm_score ---
+.TP
+.I norm_score
+the normalized score of the alignment.
+.\" --- raw_score ---
+.TP
+.I raw_score
+the raw score of the alignment.
+.\" --- repeat_nb ---
+.TP
+.I repeat_nb
+if the motif is circular, each individual repeat is numbered incrementally with this keyword.
+.\" --- seq_end ---
+.TP
+.I seq_end
+negative offset from the end of the alignment to the end of the sequence.
+.br
+In combination with the information given by 
+.I seq_pos
+this allows to deduce the length of the query sequence.
+.\" --- strand ---
+.TP
+.I strand
+the sequence strand on which the motif matches, when the search includes the reverse complement of a DNA sequence.
+The
+.I value
+is either
+.B s
+for the sens or
+.B r
+for the reverse strand.
+.PP
+.RE
+Keywords used by the
+.BR pfmake "(1) and " pfw (1)
+programs:
+.RS
+.\" --- weight ---
+.TP
+.I weight
+the weight of a given sequence in a multiple alignment.
+.\" ------------------------------------------------
+.\" Examples section
+.\" ------------------------------------------------
+.SH EXAMPLES
+.TP
+(1)
+>PEX7/73-315
+.IR motif =WD_REP
+.IR raw_score =1336
+.IR match_nb =1
+.IR match_type =region
+.IR seq_end =-491 
+.br
+VTW[...]IYD
+.br
+>PEX7/540-801
+.IR motif =WD_REP
+.IR raw_score =1378
+.IR match_nb =2
+.IR match_type =region
+.IR seq_end =-5 
+.br
+SFD[...]PAS
+.br
+
+The 2 headers above describe 2 matches of the motif called
+.RI ' WD_REP '
+onto the sequence
+.RI ' PEX7 '.
+Each of the matches onto this single sequence is numbered using the the
+.I match_nb
+keyword.
+These matches are not individual repeats of a circular motif as can be seen with the
+.I region
+value of the
+.I match_type
+keyword.
+.br
+The first match starts at position 73 of the sequence and ends at position 315. This position is 491
+residues away from the end of the input sequence
+.RI ( seq_end ).
+.br
+The next line following the
+.BR xpsa (5)
+header line is the sequence of the match (it has been truncated here to help readability).
+.br
+The second match begins at position 540 of the sequence and terminates 5 residues before the end of the
+input sequence, that is at position 801.  
+.RE
+
+.TP
+(2)
+>PEX7/540-582
+.IR motif =WD_REP
+.IR norm_score =7.437
+.IR raw_score =180
+.IR match_parent =2
+.IR repeat_nb =1
+.IR match_type =repeat
+.IR level =-1
+.IR seq_end =-224
+.IR motif_start =1
+.IR motif_end =-1 
+.br
+SFD[...]PLQ
+.br
+
+This example illustrates the kind of header obtained when aligning a circular motif
+to a sequence. Each match of this motif (which we will call
+.I total
+match) can be composed of several individual repeats of the motif. Tools like
+.BR pfsearch "(1) and " pfscan (1)
+can output each total match followed by all its individual repeats. In this example
+we only show one of the indiviual repeats that is part of a total match between a circular profile
+and a sequence.
+.br
+The
+.BR xpsa (5)
+header above describes a single repeat of a match between a circular motif called 
+.RI ' WD_REP '
+and the sequence
+.RI ' PEX7 '.
+.br
+This is the first individual repeat of a match of the circular motif, as identified by the
+.I repeat_nb
+keyword. The other individual repeats have not been listed in this example.
+.br
+The total circular motif has at least 2 distinct matches on the
+.RI ' PEX7 '
+sequence, because this single repeat is part of the second match as described by the
+.I match_parent
+keyword. The parental matches have been ommited from this example, they would be numbered using the
+.I match_nb
+keyword.
+.br
+The normalized score of this motif exceeds the cut-off level number -1 
+.RI ( level
+keyword) which is specified in the motif.
+.br
+This match starts at position 1 of the profile
+.RI ( motif_start )
+and position 540 of the sequence, it ends at the end of the motif
+.RI ( motif_end =-1)
+and position 582 of the sequence.
+.br
+The next line following the
+.BR xpsa (5)
+header line is the sequence of the match (it has been truncated here to help readability).
+.RE
+.\" ------------------------------------------------
+.\" See also section
+.\" ------------------------------------------------
+.SH "SEE ALSO"
+.BR psa (5),
+.BR pfsearch (1),
+.BR pfscan (1),
+.BR pfw (1),
+.BR pfmake (1),
+.BR psa2msa (1)
+.\" ------------------------------------------------
+.\" Author section
+.\" ------------------------------------------------
+.SH "AUTHOR"
+This manual page was originally written by Volker Flegel.
+.br
+The
+.B pftools
+package was developped by Philipp Bucher.
+.br
+Any comments or suggestions should be addressed to <pftools at isb-sib.ch>.
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/pftools.git



More information about the debian-med-commit mailing list